视频监控平台:支持交通部行业标准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.mfbz.cn/a/736875.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ajax实战01】数据管理网站总述

一&#xff1a;功能实现 登录和权限判断查看文章内容列表&#xff08;筛选和分页&#xff09;编辑文章&#xff08;数据回显&#xff09;删除文章发布文章&#xff08;图片上传&#xff0c;富文本编辑器&#xff09; 该网站最终实现&#xff1a;登录后台管理系统&#xff0c;…

理解 什么是 滚动更新,蓝绿部署,灰度发布 以及它们的区别

滚动更新&#xff0c;蓝绿部署&#xff0c;灰度发布 这3种 现代化的 发布模式相信很多人都听过&#xff0c; 但是并不是都能正确理解他们的作用和区别 滚动更新 Rolling Update 所谓滚动更新是for 那些多实例的service的。 假如1个 service 有n 个instance, 更新时并不是n 个…

鸿蒙开发系统基础能力:【@ohos.faultLogger (故障日志获取)】

故障日志获取 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import faultLogger from ohos.faultLoggerFaultType 故障类型枚举。 系统能力&#xff1a; 以下各项对应的系统能力…

【Python/Pytorch 】-- SVM算法

文章目录 文章目录 00 写在前面01 SVM算法简介02 SVM算法的基本原理线性SVM非线性SVM 03 基于Python 版本的SVM算法04 优化目标表达式理解&#xff1a;05 约束条件表达式理解 00 写在前面 SVM算法可以结合鲸鱼算法、飞蛾扑火算法、粒子群算法、灰狼算法、蝙蝠算法等等各种优化…

预训练是什么?

预训练是什么&#xff1f; 图像领域的预训练 在介绍图像领域的预训练之前&#xff0c;我们首先介绍下卷积神经网络&#xff08;CNN&#xff09;&#xff0c;CNN 一般用于图片分类任务&#xff0c;并且CNN 由多个层级结构组成&#xff0c;不同层学到的图像特征也不同&#xff…

qt 5.6 qmake手册

qt 5.6 qmake手册 &#xff08;笔者翻译的qmake手册&#xff0c;多数是机翻&#xff0c;欢迎评论区纠错修正&#xff09; Qmake工具有助于简化跨不同平台开发项目的构建过程。它自动生成Makefile&#xff0c;因此创建每个Makefile只需要几行信息。您可以将qmake用于任何软件项目…

细粒度图像分类论文阅读笔记

细粒度图像分类论文阅读笔记 摘要Abstract1. 用于细粒度图像分类的聚合注意力模块1.1 文献摘要1.2 研究背景1.3 本文创新点1.4 计算机视觉中的注意力机制1.5 模型方法1.5.1 聚合注意力模块1.5.2 通道注意力模块通道注意力代码实现 1.5.3 空间注意力模块空间注意力代码实现 1.5.…

20240624 每日AI必读资讯

&#x1f916;AI学会篡改奖励函数、欺骗研究者&#xff01;Claude团队&#xff1a;无法根除的行为&#xff0c;令人不安 - 实验中让AI可以访问自己的强化学习代码&#xff0c;并且提问&#xff1a;目前为止&#xff0c;我们总共进行了几轮强化学习&#xff1f;AI在自以为不会被…

三十八篇:架构大师之路:探索软件设计的无限可能

架构大师之路&#xff1a;探索软件设计的无限可能 1. 引言&#xff1a;架构的艺术与科学 在软件工程的广阔天地中&#xff0c;系统架构不仅是设计的骨架&#xff0c;更是灵魂所在。它如同建筑师手中的蓝图&#xff0c;决定了系统的结构、性能、可维护性以及未来的扩展性。本节…

测试测量-DMM直流精度

测试测量-DMM直流精度 最近去面试&#xff0c;发现了自己许多不足&#xff0c;比如我从未考虑过万用表准或者不准&#xff0c;或者万用表有多准&#xff1f; 在过去的实验室中&#xff0c;常用的DMM有KEYSIGHT 34401A以及 KEITHLEY THD2015&#xff0c;就以这两台为例&#x…

Typora + Hexo 图片路径问题(Typedown)

文章目录 1. 冲突来源2. 解决思路3. 实现1. typora图片路径2. hexo脚本 1. 冲突来源 Hexo上对于图片在md中的引用&#xff0c;使用了post_asset_folder: true配置&#xff0c;来更好的管理图片。 当一篇名为xxx.md的文章引用1.png图片时&#xff0c;默认让1.png保持在xxx文件夹…

eNSP启动设备失败,错误代码40,网卡配置正常,虚拟机导致的错误解决过程

安装eNSP后出现以下错误。 按照帮助文档&#xff0c;查看了相关软件&#xff0c;尤其是vitualbox的版本以及网卡问题。网卡设置正常&#xff0c;vitualbox也匹配成功。 附&#xff1a;vitualbox各个版本的下载地址&#xff1a; 关于网卡名称的修改方法&#xff0c;参照博客 …

【驱动篇】龙芯LS2K0300之单总线驱动

实验过程 实验目的&#xff1a; 在龙芯开发板上面使用单总线驱动DS18B20温度传感器 ① 根据原理图连接DS18B20模块 ② 将i2c0引脚的功能复用为GPIO ③ 注册字符设备&#xff0c;按照DS18B20的读写时序编写读写驱动接口 ④ 编写测试用例解析传感器的数值 原理图 将板子上…

【chatgpt】train_split_test的random_state

在使用train_test_split函数划分数据集时&#xff0c;random_state参数用于控制随机数生成器的种子&#xff0c;以确保划分结果的可重复性。这样&#xff0c;无论你运行多少次代码&#xff0c;只要使用相同的random_state值&#xff0c;得到的训练集和测试集划分就会是一样的。…

Linux_软硬链接

目录 1、软链接 2、软链接的使用方式 3、软链接的删除 4、硬链接 5、硬链接的使用方式 6、软硬链接的使用场景 7、软硬链接的区别 结语 前言&#xff1a; 在Linux操作系统中&#xff0c;有软链接和硬链接&#xff0c;他们是一种特殊的文件引用&#xff0c;主要用于与…

破碎的像素地牢探险:游戏分享

软件介绍 《破碎的像素地牢》是开源一款地牢冒险探索类的游戏&#xff0c;融合了日系RPG经典风格&#xff0c;玩家将控制主角进行未知场景的探索。除了经典地牢玩法外&#xff0c;游戏还添加了更多创意内容&#xff0c;如黑屏状态前的挑战性等&#xff0c;使得游戏更加富有挑战…

git 初基本使用-----------笔记

Git命令 下载git 打开Git官网&#xff08;git-scm.com&#xff09;&#xff0c;根据自己电脑的操作系统选择相应的Git版本&#xff0c;点击“Download”。 基本的git命令使用 可以在项目文件下右击“Git Bash Here” &#xff0c;也可以命令终端下cd到指定目录执行初始化命令…

【React】登录-封装Token的存取删方法--共享复用

在token.js中 // 封装存取方法const TOKENKEY token_keyfunction setToken (token) {return localStorage.setItem(TOKENKEY, token) }function getToken () {return localStorage.getItem(TOKENKEY) }function clearToken () {return localStorage.removeItem(TOKENKEY) }ex…

springboot3多模块实践

先帖下目录结构&#xff0c;直接在idea里面新建就行&#xff0c;删掉多余的文件 子模块的新建 根目录pom文件&#xff0c;注意modules、packaging&#xff0c;dependencyManagement统一管理依赖&#xff0c;子模块添加依赖的时候就不用加版本号 <?xml version"1.0…

富文本编辑器CKEditor

介绍 富文本编辑器不同于文本编辑器,它提供类似于 Microsoft Word 的编辑功能 在Django中,有可以现成的富文本三方模块django-ckeditor,具体安排方式: pip install django-ckeditor==6.5.1官网:Django CKEditor — Django CKEditor 6.7.0 documentation 使用方式 创建项…