当前位置: 首页 > news >正文

视频监控平台:支持交通部行业标准JT/T905协议(即:出租汽车服务管理信息系统)的源代码的函数和功能介绍及分享

目录

一、视频监控平台介绍

(一)概述

(二)视频接入能力介绍

(三)功能介绍

二、JT/T905协议介绍

(一)概述

(二)主要内容

1、设备要求

2、业务功能要求

3、技术功能要求

4、性能要求

5、接口要求

6、设备通信协议与数据格式

三、代码和解释

(一)代码和注释

(二)函数功能说明

1. 头文件保护

2. 包含必要的头文件

3. 引入命名空间std

4. CNetSdkForJT905类定义

5. 公共成员函数

6. 私有成员变量

四、效果展示


一、视频监控平台介绍

(一)概述

        威迪斯特视频监控接入平台AS-V1000,也可以称为:视频监控综合资源管理平台,视频监控平台,视频监控汇聚平台(或视频监控汇集平台),视频监控管理平台,视频监控综合管理平台,是一套集成了用户设备权限管理、视音频监控、大容量存储、电子地图的系统平台软件。它结合了现代视频技术、网络通讯技术、计算机控制技术、流媒体传输技术的综合解决方案,为用户提供了强大的、灵活的组网和应用能力。

(二)视频接入能力介绍

        系统平台能够实现接入不同品牌的视频监控平台、视频相关设备、外围设备等等;支持国际和国内的一些标准对接协议,包括sdk协议、GB/T28181协议、ehome协议等等。可以通过各种协议,接入IPC、DVR、DVS、NVR等设备,以及一些大型的视频监控平台,包括海康威视、浙江大华、苏州科达、杭州宇视等主流品牌的监控平台,对于有些特有品牌的平台, 也能够通过SDK接口、私有协议等方式接入进入本系统平台(国外品牌包括:Panasonicaxis);反过来,本平台也提供开放接口,能够接入到其他标准或者非标准的平台。

(三)功能介绍

        平台实现了丰富的功能,包含:实时多媒体数据转发和管理、移动流媒体转发管理、不间断录像、录像文件检索和回放、录像下载、设备状态管理、系统报警管理、视频转码、视频点播等等;整个平台具备稳定可靠、使用安全、兼容性强、接口开放、服务可堆叠、服务可多级级联、系统可平滑扩容等特点。

二、JT/T905协议介绍

(一)概述

        JT /T 905-2014是交通运输行业标准,即《出租汽车服务管理信息系统》;JT/T 905协议由交通运输部制定,旨在规范出租汽车服务管理信息系统运营专用设备的设计、开发、检验与安装。该协议涵盖了设备的基本构成、一般要求、业务功能要求、技术功能要求、性能要求、接口要求以及设备通信协议与数据格式等关键内容。

(二)主要内容

1、设备要求

        基本构成:协议规定了出租汽车服务管理信息系统运营专用设备的基本构成。

        一般要求:设备应符合国家相关标准,确保安全、稳定、可靠运行。

2、业务功能要求

        协议详细描述了出租汽车服务管理信息系统运营专用设备应支持的业务功能,包括但不限于订单管理、定位监控、服务评价等。

3、技术功能要求

        协议规定了设备应具备的技术功能,如数据传输、远程控制、数据存储等,确保系统的高效运行和数据的准确传输。

4、性能要求

        协议对设备的性能进行了具体规定,如响应时间、传输速度、存储容量等,以保证系统的稳定性和响应速度。

5、接口要求

        协议定义了设备之间的接口标准和通信协议,确保不同设备之间的兼容性和互联互通。

6、设备通信协议与数据格式

        协议规定了设备通信的协议和数据格式,确保数据的准确性和一致性,方便数据的处理和分析。

三、代码和解释

        这段C++头文件代码定义了一个名为 CNetSdkForJT905 的类,该类是为了通过交通部JT/T905协议,接入符合JT/T905协议的设备进行通信而设计的。

(一)代码和注释

以下是为代码和注释:


#if !defined(__NETSDK_FOR_JT905_H__)  // 如果__NETSDK_FOR_JT905_H__未定义,则定义它
#define __NETSDK_FOR_JT905_H__        // 定义__NETSDK_FOR_JT905_H__宏
#include "JT905NetSDKAPI.h"           // 包含JT905NetSDKAPI头文件
#include <string>                     // 包含string头文件
#include "NetSdkApp.h"                // 包含NetSdkApp头文件
// 使用std命名空间中的元素
using namespace std;
// CNetSdkForJT905类继承自CNetSdkApp
class CNetSdkForJT905 : public CNetSdkApp
{
public:// 构造函数CNetSdkForJT905();// 析构函数~CNetSdkForJT905();
public: // 公共成员函数// 设置海康威视设备报警回调函数int SetAlarmCallBack(long& UserData); // 为设备设置报警int SetupAlarm(long LoginID);    // 取消设备的报警int CancelAlarm(long lHandle);  // 初始化ZX模块int ZXInit(void);// 清理ZX模块int ZXClean(void);// ZX登录long ZXLogin(char* pDevIp, UINT16 DevPort, char* pUsername, char* pPasswd, char *pOnvifURL, long& UserData);// ZX登出int ZXLogout(long LoginID,long& UserData);// ZX实时播放long ZXRealPlay(long LoginID, int Channel, int StreamId, StreamInfo *pStreamInfo,/*VideoStreamCallBack CBFunc,*/ long& UserData);// 停止ZX实时播放int ZXStopRealPlay(long VideoHdl);// ZX保活bool ZXKeepAlive(long LoginID);// 设置ZX日期和时间int  ZXSetDateTime(long LoginID,int iYear, int iMonth, int iDay, int iHour, int iMinute, int iSecond);// 查找公共文件int ZXFindCommonFile(long LoginID,int Channel, char *pBeginTime, char *pEndTime, TRecordInfoQueryResp* RecordInfo, DevInfo *pDevInfo);// 开始回放long ZXPlayBackStart(long LoginID, int Channel, char *pBeginTime, char *pEndTime,long long& FileSize, long UserData, bool bDownLoad, DevInfo *pDevInfo);// 停止回放int ZXPlayBackStop(long PlayBackHdl);// 控制回放int ZXPlayBackControl(long PlayBackHdl, ZXPlayControl_E CMD, long& Postion,long AllFileTime=0);// 控制云台int ZXPtzControl(long LoginID, int channelid,int opt, int param1,TExtPtzInfo *pExtPtzInfo);// 开始被动解码long ZXStartPassiveDec(long LoginID, int Channel);// 发送被动数据int ZXSendPassiveData(long DecHdl, UINT8* pBuf, int BufLen);// 停止被动解码int ZXStopPassiveDec(long DecHdl);// 获取选项查询参数int ZXGetOptQueryParam(long LoginID, int channelid, int opt){return -1;}
private: // 私有成员变量char m_DevIp[IPSTR_MAX_LEN];   // 设备的IP地址int m_DevPort;                 // 设备的端口号CJT905NetSDKAPI m_JT905NetSDK; // JT905网络SDK实例// CMuduoTcpTransMgr *pMuduoT

(二)函数功能说明

        这段C++头文件代码定义了一个名为 CNetSdkForJT905 的类,该类是为了通过交通部JT/T905协议,接入符合JT/T905协议的设备进行通信而设计的。

1. 头文件保护

           #if !defined(__NETSDK_FOR_JT905_H__)

           #define __NETSDK_FOR_JT905_H__

      这两行代码是头文件保护机制,确保这个头文件不会被多次包含。如果__NETSDK_FOR_JT905_H__定义,则不会再次包含。

2. 包含必要的头文件

   #include "JT905NetSDKAPI.h"

   #include <string>

   #include "NetSdkApp.h"

        这些指令包含了其他相关的头文件,JT905NetSDKAPI.h可能包含了与JT/T905协议相关的API声明,<string>提供了C++标准库中的字符串支持,NetSdkApp.h可能包含了网络应用相关的类和函数声明。

3. 引入命名空间std

      using namespace std;

        这一行代码告诉编译器在接下来的代码中使用标准命名空间std,这样就可以直接使用标准库中的元素,如字符串(string)等,而不需要前缀std::。

4. CNetSdkForJT905类定义

        这个类继承自CNetSdkApp,它可能是一个与网络设备交互的基类。类中定义了许多成员函数,这些函数可能用于实现JT/T905协议所要求的视频设备控制和数据交互。

5. 公共成员函数

   - SetAlarmCallBack: 设置设备的报警回调函数。

   - SetupAlarm: 为设备设置报警。

   - CancelAlarm: 取消设备的报警。

   - ZXInit: 初始化某种操作。

   - ZXClean: 清理资源。

   - ZXLogin: 登录视频设备。

   - ZXLogout: 登出视频设备。

   - ZXRealPlay: 开始实时播放视频。

   - ZXStopRealPlay: 停止实时播放视频。

   - ZXKeepAlive: 保持与设备的连接活跃。

   - ZXSetDateTime: 设置设备的日期和时间。

   - ZXFindCommonFile: 查找共同的文件。

   - ZXPlayBackStart: 开始视频回放。

   - ZXPlayBackStop: 停止视频回放。

   - ZXPlayBackControl: 控制视频回放。

   - ZXPtzControl: 控制设备的PTZ(Pan-Tilt-Zoom)。

   - ZXStartPassiveDec: 开始被动解码。

   - ZXSendPassiveData: 发送被动数据。

   - ZXStopPassiveDec: 停止被动解码。

   - ZXGetOptQueryParam: 获取查询参数。

6. 私有成员变量

   - m_DevIp: 设备IP地址。

   - m_DevPort: 设备端口号。

   - m_JT905NetSDK: 可能是一个与JT/T905协议相关的网络SDK实例。

四、效果展示

        可以通过视频监控平台的web客户端,查看符合JT/T905的视频终端的视频图像,如下图示:

        由上图可以看出通过出租车内的符合协议T905JT设备,可以方便的获取出租车内的实时视频图像。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


相关文章:

  • 示例:推荐一个应用Adorner做的表单对话框
  • Linux ComfyUI安装使用;Stable Diffusion 3使用
  • day3-xss漏洞(米斯特web渗透测试)
  • 【已解决】在IDEA中使用Git拉取代码时提示:Can‘t update / master has no tracked branch
  • 昇思25天学习打卡营第1天|快速入门
  • Ubuntu 24.04 安装 libaio1 和 libaio-dev
  • 在C++中,构造器(Builder)模式的思考(《C++20设计模式》及常规设计模式对比)
  • 【database1】mysql:DDL/DML/DQL,外键约束/多表/子查询,事务/连接池
  • Python: create object
  • Trimesh介绍及基本使用
  • 【notes2】并发,IO,内存
  • EndNote 21 for Mac v21.3 文献管理软件安装
  • 微信小程序建议录音机
  • 数组 (java)
  • 一文读懂LLM API应用开发基础(万字长文)
  • Java多线程(4):使用线程池执行定时任务
  • LeetCode算法系列_0891_子序列宽度之和
  • Linux Process Manage
  • Python 基础起步 (十) 什么叫函数?
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Tornado学习笔记(1)
  • windows-nginx-https-本地配置
  • 从0实现一个tiny react(三)生命周期
  • 前端之React实战:创建跨平台的项目架构
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 微信小程序设置上一页数据
  • 一文看透浏览器架构
  • #13 yum、编译安装与sed命令的使用
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #mysql 8.0 踩坑日记
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (过滤器)Filter和(监听器)listener
  • (四)事件系统
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)用.Net的File控件上传文件的解决方案
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET CLR Hosting 简介
  • .NET Core中如何集成RabbitMQ
  • .net 简单实现MD5
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .net反编译工具
  • .NET文档生成工具ADB使用图文教程
  • @synthesize和@dynamic分别有什么作用?
  • @Transactional类内部访问失效原因详解
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [2016.7 test.5] T1
  • [BUG] Authentication Error