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

news2025/2/25 15:27:14

目录

一、视频监控平台介绍

(一)概述

(二)视频接入能力介绍

(三)功能介绍

二、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.coloradmin.cn/o/1854388.html

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

相关文章

leetcode 130被围绕的区域

思路 一个区域不能被围绕是这个区域有部分在边界 可以循环边界&#xff0c;找边界的区域&#xff08;利用深搜&#xff09;&#xff0c;这些都不能被围绕&#xff0c;其余的&#xff0c;能被围绕&#xff0c;应该从"O"变为”X“ 代码 static boolean[][] hasGo;/…

【python】python基于akshare企业财务数据对比分析可视化(源码+数据集+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

江协科技51单片机学习- p14 调试LCD1602显示屏

前言&#xff1a; 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记&#xff0c;在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用&#xff1a; 51单片机入门教程-2…

Java8 --- Gradle7.4整合IDEA

目录 一、Gradle整合IDEA 1.1、Groovy安装 1.1.1、配置环境变量 ​编辑 1.2、创建项目 ​编辑 1.3、Groovy基本语法 1.3.1、基本语法 1.3.2、引号 1.3.3、语句结构 1.3.4、数据类型 1.3.5、集合操作 1.4、使用Gradle创建普通Java工程 1.5、使用Gradle创建Java ss…

Linux内核开发-编写一个内核模块

0.前言 上一章&#xff08;点击返回上一章&#xff09;已经完成了将ubuntu原始内核替换成了自己编好的内核。本章开始编写一个内核模块。 1.内核模块 1.1 什么是内核模块 Linux内核模块可独立于内核之外进行编译&#xff0c;可以在内核运行时动态加载、卸载。内核模块以.ko…

C语言| 数组元素的删除

同数组元素的插入差不多。 数组元素的插入&#xff0c;是先移动要插入元素位置后面的所有元素&#xff0c;再插入新元素&#xff0c;长度1。 C语言| 数组的插入-CSDN博客 数组元素的删除&#xff0c;是先删除元素&#xff0c;再把后面的元素往前移动一位&#xff0c;而本程序…

Adobe XD最新2023资源百度云盘下载(附教程)

如大家所了解的&#xff0c;Adobe XD是一种基于矢量的UI和UX设计工具&#xff0c;可用于设计从智能手表应用程序到成熟网站的任何内容&#xff0c;功能非常强大且操作便捷。目前最新已推出2023版本。 Adobe XD解决了Photoshop和其他图形应用程序无法解决的两个主要问题&#xf…

数据库理论大题与编译原理大题(笔记)

目录 数据库&#xff08;求最小函数依赖&#xff09; 数据库&#xff08;求属性集的闭包和候选码&#xff09; 编译原理&#xff08;NFA ——> DFA&#xff09; 编译原理&#xff08;识别文法的活前缀 DFA 和 LR(0) 分析表&#xff09; 哈哈&#xff01;这是本人作者才…

2024.06.23 刷题日记

〇、前言 今天重点刷了回溯&#xff0c;以及常见的题目。 46. 全排列 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3…

[stm32]温湿度采集与OLED显示

一、I2C总线协议 I2C&#xff08;Inter-integrated circuit &#xff09;是一种允许从不同的芯片或电路与不同的主芯片通信的协议。它仅用于短距离通信&#xff0c;是一种用于两个或多个设备之间进行数据传输的串行总线技术&#xff0c;它可以让你在微处理器、传感器、存储器、…

【Flink metric】Flink指标系统的系统性知识:以便我们实现特性化数据的指标监控与分析

文章目录 一. Registering metrics&#xff1a;向flink注册新自己的metrics1. 注册metrics2. Metric types:指标类型2.1. Counter2.2. Gauge2.3. Histogram(ing)4. Meter 二. Scope:指标作用域1. User Scope2. System Scope ing3. User Variables 三. Reporter ing四. System m…

[图解]《分析模式》漫谈08-反射·Taylor Swift

1 00:00:02,200 --> 00:00:06,070 今天我们延续昨天的话题&#xff0c;反射 2 00:00:06,770 --> 00:00:08,580 后面多了一个Taylor Swift 3 00:00:08,590 --> 00:00:11,810 跟这有什么关系 4 00:00:12,390 --> 00:00:14,740 是这样&#xff0c;昨天我发了视频之…

SCI一区级 | Matlab实现BO-Transformer-LSTM多变量时间序列预测

SCI一区级 | Matlab实现BO-Transformer-LSTM多变量时间序列预测 目录 SCI一区级 | Matlab实现BO-Transformer-LSTM多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.【SCI一区级】Matlab实现BO-Transformer-LSTM多变量时间序列预测&#xff0c;贝叶斯…

Java项目:基于SSM框架实现的精品酒销售管理系统分前后台【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的精品酒销售管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功…

基于动力学的六自由度机器人阻抗恒力跟踪控制

1.整个代码的控制流程图如下&#xff1a; 2.正逆运动学计算 略 3.动力学模型 采用拉格朗日法计算机械臂的动力学模型&#xff0c;其输入的是机械臂的关节角度、角速度和角加速度&#xff1b;其中M、C、G本别是计算的惯性力、科式力和重力项&#xff0c;相关部分如下&#xf…

【2024德国留学】签证被拒的十种原因.....

目录 2024德国留学签证被拒的常见原因 一、德语水平不足 二、录取考试未通过 三、签证申请中的其他问题 一、选择适合自己的签证类型 二、准备面签材料 1. 确认预约邮件 2. 签证申请表 3. 自备3张证件照 4. 护照原件和复印件 5. 动机信 6. 个人简历 7. 学历证及其…

Linux应用系统快速部署:docker快速部署linux应用程序

目录 一、背景 &#xff08;一&#xff09;引入docker的起因 &#xff08;二&#xff09;docker介绍 &#xff08;三&#xff09;Docker部署的优势 1、轻量级和可移植性 2、快速部署和扩展 3、一致性 4、版本控制 5、安全性 6、资源隔离 7、简化团队协作 8、多容器…

Canvas绘制图片和区域

如何使用Canvas在图片上绘制区域&#xff1f; 一. 首先&#xff0c;我们需要初始化三个canvas画布&#xff08;初始化Canvas&#xff09; initCanvas() {// 初始化canvas画布let canvasWrap document.getElementsByClassName("canvas-wrap");this.wrapWidth canva…

从零入手人工智能(5)—— 决策树

1.前言 在上一篇文章《从零入手人工智能&#xff08;4&#xff09;—— 逻辑回归》中讲述了逻辑回归这个分类算法&#xff0c;今天我们的主角是决策树。决策树和逻辑回归这两种算法都属于分类算法&#xff0c;以下是决策树和逻辑回归的相同点&#xff1a; 分类任务&#xff1…

算法体系-23 第二十三节:暴力递归到动态规划(五)

一 求K次打击之后&#xff0c;英雄把怪兽砍死的概率 1.1 描述 给定3个参数&#xff0c;N&#xff0c;M&#xff0c;K 怪兽有N滴血&#xff0c;等着英雄来砍自己 英雄每一次打击&#xff0c;都会让怪兽流失[0~M]的血量 到底流失多少&#xff1f;每一次在[0~M]上等概率的获得一个…