视频监控平台:支持交通部行业标准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 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/33007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[最全]设计模式实战(一)UML六大原则

UML类图 UML类图是学习设计模式的基础,学习设计模式,主要关注六种关系。即:继承、实现、组合、聚合、依赖和关联。 UML类图基本用法 继承关系用空心三角形+实线来表示。实现接口用空心三角形+虚线来表示。eg:大雁是最能飞的,它实现了飞翔接口。 关联关系用实线箭头来表示…

OOM日志分析

目录 1. 日志分析2. MAT 工具2.1 日志打印方式2.1.1 HeapDumpOnOutOfMemoryError&#xff08;推荐&#xff09;2.1.2 jmp 命令 2.2 MAT分析方式2.2.1 饼图分析2.2.2 树形图分析2.2.2 泄漏疑点 3. 优化 首先说一下结论&#xff1a;通过MAT工具分析才是最精准的&#xff0c;直接通…

2025秋招NLP算法面试真题(二)-史上最全Transformer面试题:灵魂20问帮你彻底搞定Transformer

简单介绍 之前的20个问题的文章在这里&#xff1a; https://zhuanlan.zhihu.com/p/148656446 其实这20个问题不是让大家背答案&#xff0c;而是为了帮助大家梳理 transformer的相关知识点&#xff0c;所以你注意看会发现我的问题也是有某种顺序的。 本文涉及到的代码可以在…

微信小程序建议录音机

在小程序中实现录音机功能&#xff0c;可以通过使用小程序提供的wx.getRecorderManager() API来获取录音管理对象&#xff0c;然后使用这个对象的start()方法来开始录音&#xff0c;使用stop()方法来停止录音&#xff0c;并使用onStop()方法来监听录音的结束。以下是一个简单的…

Spring响应式编程之Reactor核心接口

响应式流的核心接口 核心接口包括&#xff1a;Publisher<T>、Subscriber<T>、Subscription 和 Processo<T,R> &#xff08;1&#xff09;Publisher<T> Publisher接口代表数据流的生产者&#xff0c;根据收到的请求向Subscriber发布数据。接口定义如…

C语言中的字符输入/输出和验证输入

在C语言中&#xff0c;字符输入/输出功能允许程序与用户进行交互&#xff0c;读取用户的输入信息并展示输出结果。同时&#xff0c;验证输入的作用在于确保用户输入的数据符合预期&#xff0c;以提高程序的稳定性和可靠性&#xff0c;防止无效输入引发的错误或异常行为&#xf…

JavaWeb——MySQL:DDL操作库

目录 1.DDL&#xff1a;查询数据库&#xff1b; 1.1 查询数据库 1.2 创建数据库 1.DDL&#xff1a;查询数据库&#xff1b; 具体操作&#xff1a;增 删 查 用 &#xff1b; 1.1 查询数据库 SQL语句&#xff1a;show databases; 由于我创建过一些数据库&#xff0c;我查询的…

[Spring Boot]Netty-UDP客户端

文章目录 简述Netty-UDP集成pom引入ClientHandler调用 消息发送与接收在线UDP服务系统调用 简述 最近在一些场景中需要使用UDP客户端进行&#xff0c;所以开始集成新的东西。本文集成了一个基于netty的SpringBoot的简单的应用场景。 Netty-UDP集成 pom引入 <!-- netty --…

计算机专业:昔日万金油,明日科技潮头的弄潮儿

高考后的十字路口&#xff1a;计算机专业&#xff0c;依旧闪耀吗&#xff1f; 随着2024年高考的尘埃落定&#xff0c;数百万青春洋溢的脸庞再次凝视着未来的迷雾&#xff0c;试图在繁星点点的专业宇宙中找到那颗最亮的星——计算机科学与技术。长久以来&#xff0c;计算机专业…

【408考点之数据结构】特殊矩阵压缩存储的代码实现

特殊矩阵压缩存储的代码实现 为了更好地理解特殊矩阵的压缩存储&#xff0c;下面提供一些C语言的代码示例&#xff0c;展示如何实现这些矩阵的压缩存储和操作。 1. 稀疏矩阵的三元组表示 #include <stdio.h>#define MAX_TERMS 100typedef struct {int row;int col;int…

Java 比较器

Java 比较器 文章目录 Java 比较器自然排序java.lang.Comparable对象排序java.util.Comparator两种方式的对比 基本数据类型&#xff0c;可以直接使用比较运算符进行比较&#xff0c;但引用数据类型不能直接通过运算符进行比较运算。 实现对象的排序&#xff0c;可以考虑两种方…

【目标检测】DAB-DETR

一、引言 论文&#xff1a; DAB-DETR: Dynamic Anchor Boxes are Better Queries for DETR 作者&#xff1a; IDEA 代码&#xff1a; DAB-DETR 注意&#xff1a; 该算法是对DETR的改进&#xff0c;在学习该算法前&#xff0c;建议掌握多头注意力、Sinusoidal位置编码、DETR等相…

Android jetpack Room的简单使用

文章目录 项目添加ksp插件添加 room 引用开始使用room1. 创建bean2. 创建 dao类3. 创建database类 数据库升级复制数据库到指定路径参考文献 项目添加ksp插件 注意&#xff0c;因为ksp插件 是跟项目中使用的kotlin的版本要保持一致的&#xff0c;否则会报错的 首先我们去 https…

【06】数据模型和工作量证明-工作量证明

1. 工作量证明的背景 比特币是通过工作量证明来竞争记账权,并获得比特币奖励。简单来讲就是谁能够根据区块数据更快的计算得到满足条件的哈希值,谁就可以胜出,这个块才会被添加到区块链中。我们把这个过程称为挖矿。比特币每10分钟产生1个区块。 2. 工作量证明算法 1. 获…

追梦与立足:专业与学校的双重选择

在人生的关键节点上&#xff0c;选择总是如影随形。对于即将步入大学的学生而言&#xff0c;选择一个合适的专业和学校&#xff0c;无疑是人生道路上的一大抉择。特别是在分数限制下&#xff0c;如何在追梦与立足之间找到平衡点&#xff0c;做出明智的双重选择&#xff0c;成为…

C# Chart 不间断补充

基础步骤 1: 添加引用步骤 2: 创建图表控件步骤 3: 配置图表步骤 4: 添加数据系列步骤 5: 显示图表一个简单的示例注意事项 个人学习首先其次目前用到的判断某个 Series 是否存在设置某个 ChartAreas 的XY轴坐标的范围 基础 在 C# 中使用图表通常涉及到以下几个步骤。这里以 W…

Python18 数据结构与数据类型转换

1.python中的数据结构 在Python中&#xff0c;数据结构是用来存储、组织和管理数据的方式&#xff0c;以便有效地执行各种数据操作。Python提供了几种内置的数据结构&#xff0c;每种都有其特定的用途和操作方法。以下是Python中一些主要的数据结构&#xff1a; 1.列表&#…

攻防世界-2-1

下载附件&#xff0c;发现是一张损坏的png文件&#xff0c;扔winhex里面修改文件头 修改之后发现还是打不开&#xff0c;提示CRC错误&#xff0c;脚本跑一下 循环冗余校验CRC&#xff08;Cyclic Redundancy Check&#xff09;是数据通信领域常用的一种数据传输检错技术。通过在…

记录Nuxt3部署线上pm2启动项目修改端口

看官方文档&#xff1a; TNND&#xff0c;修改这个端口号顶个P用&#xff0c;毛用也没有 实际上应该是这样&#xff1a; 好了&#xff0c;误人子弟&#xff5e;

Windows 11 version 23H2 中文版、英文版 (x64、ARM64) 下载 (updated Jun 2024)

Windows 11 version 23H2 中文版、英文版 (x64、ARM64) 下载 (updated Jun 2024) Windows 11, version 23H2&#xff0c;企业版 arm64 x64 请访问原文链接&#xff1a;https://sysin.org/blog/windows-11/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者…