研究大华3G设备接入自主视频开发平台
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/fengshuiyue/article/details/24311977
近期项目上须要接入3G摄像头。因为3G设备的IP不是固定的,所以设计方案是设计一个server记录下登陆到该server上的全部3G设备的信息,这样其它server能够从该设备上获取到3G设备的相关信息后,能够与3G设备进行交互。
可是眼下各个厂家对3G设备主动注冊这块儿相关的文档极少,于是自己研究了一下大华3G设备的主动注冊。
眼下3G设备主动注冊有两种方式,一种是配置DDNS。一种是通过调用大华的车载DVR回调监听函数来实现。相应配置DDNS。这个方式适合单用户的远程控制摄像头,相应我们眼下的项目需求来说不适用,我们选用的另外一种方式。
一、DDNS设备接入方式
尽管配置DDNS不是适用项目型的情况。可是以下我把我查到的相关资料列举一下。为以后做个记录。
1.使用大华默认的DDNS,能够參考博客:http://blog.csdn.net/fengshuiyue/article/details/24313641
2.使用花生壳配置DDNS。參考地址:http://hsk.oray.com/case/
打开“使用花生壳+大华硬盘录像机搭建远程视频监控”这一项就可以,例如以下图:
二、3G设置主动注冊方式
1.通过web系统进入大华设置界面,设置设备自己主动注冊的IP和Port。例如以下图:
2.调用大华车载DVR服务监听接口,接口SDK例如以下图
3.调用监听接口简单測试project,代码例如以下
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include "dhnetsdk.h"
LLONG handle = 0;
int CALLBACK ffServiceCallBack( LLONG lHandle, char *ip,
WORD port, LONG lCommand, void *pParam, DWORD dwParamLen,
LDWORD dwUserData)
{
char* deviceNo = NULL;
if (lCommand==1)
{
std::cout<<"*******************************************************"<<std::endl;
deviceNo= (char*)pParam;
std::cout<<"ip:"<<ip<<",port:"<<port<<std::endl;
std::cout<<"lcommand value is "<<lCommand<<std::endl;
BOOL ret = CLIENT_ResponseDevReg( deviceNo, ip, port,
1);
if (ret)
{
std::cout<<"client_responseDevReg successfully"<<std::endl;
}else
{
std::cout<<"client_responseDevReg failed"<<std::endl;
}
}else
{
std::cout<<"*******************************************************"<<std::endl;
std::cout<<"ip:"<<ip<<",port:"<<port<<std::endl;
std::cout<<"lcommand value is "<<lCommand<<std::endl;
}
if (handle==0)
{
NET_DEVICEINFO lpDeviceInfo={0};
int error = 0;
handle = CLIENT_LoginEx(
ip,
port,
"admin",
"admin",
2,
deviceNo,
&lpDeviceInfo,
&error
);
switch (error)
{
case 1:
std::cout<<"password不对"<<std::endl;
break;
case 2:
std::cout<<"username不存在"<<std::endl;
break;
case 3:
std::cout<<"登录超时"<<std::endl;
break;
case 4:
std::cout<<"帐号已登录"<<std::endl;
break;
case 5:
std::cout<<"帐号已被锁定"<<std::endl;
break;
case 6:
std::cout<<"帐号被列为黑名单 "<<std::endl;
break;
case 7:
std::cout<<"资源不足,系统忙"<<std::endl;
break;
case 8:
std::cout<<"子连接失败"<<std::endl;
break;
case 9:
std::cout<<"主连接失败"<<std::endl;
break;
case 10:
std::cout<<"超过最大用户连接数"<<std::endl;
break;
}
std::cout<<"device sub id is " << deviceNo <<std::endl;
std::cout<<"device serialnum is "<< lpDeviceInfo.sSerialNumber <<std::endl;
if (handle)
{
std::cout<<"login successfully,device id is "<<handle<<std::endl;
}else{
std::cout<<"login failed"<<std::endl;
}
}
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
int i;
NET_DEVICEINFO deviceInfo ={0};
unsigned long lLogin;
//Initialize the SDK, set the disconnection callback functions
CLIENT_Init(NULL,0);
bool ret = CLIENT_ListenServer(
"192.168.1.116",
9500,
0,
ffServiceCallBack,
123
);
//std::cout<<"ret:"<<ret<<std::endl;
//CLIENT_Cleanup();
std::cin>>i;
return 0;
}
4.程序输出结果如图:
注: 大华设备的回调函数 fServiceCallBack 中的參数lCommand值能够1或-1。可是文档中并没有做相关的说明,故想问一下,这个參数在不同值时所代表的含义。
研究大华3G设备接入自主视频开发平台的更多相关文章
- 大华NVR设备接分别入宇视摄像机Onvif和RTSP主子码流的方案说明
需求提要 1.各个内网现场有多种网络摄像机IPC和网络硬盘录像机NVR设备: 2.需要将这些设备统一接入到云端中心平台,进行统一的视频直播和录像回放管理: 3.由于目前IPC设备都属于高清设备,主码流 ...
- 接入Gobelieve IM开发平台的DEMO代码
接入Gobelieve IM开发平台的DEMO代码, 请求头部: Authorization: Basic $base64(appid:$hex_md5(appsecret))意思是 appsecre ...
- iNeuOS工业互联平台,WEB组态(iNeuView)集成rtmp和websocket视频元件,支持海康、大华等摄像头实时显示视频
目 录 1. 概述... 1 2. 平台演示... 2 3. 硬件摄像头... 2 4. 视频流协议转换管理... 2 5. 组态视频元件 ...
- 海康威视,大华,宇视 的视频监控iOS Demo
原谅我只提供一个链接,我在这里写了两遍,最后加个链接页面卡死了,下面的demo,最好真机调试.(写博客还是在别的地方写复制到这里比较好!) 一个画面可以做,4个,9个,16个画面原理是一样的,集合到自 ...
- 大华门禁SDK二次开发(一)-技术沟通
项目中需要能够查询门禁信号和控制门禁设备,因此需要基于大华门禁SDK进行二次开发,开发语言C#.门禁开发中遇到了一些问题,经过与大华技术的邮件沟通也一一解决.做这个开发的时候,发现网上的资料比较少,想 ...
- 大华门禁SDK二次开发(二)-SignalR应用
经过与大华技术支持的沟通,门禁服务程序已经开发好了,可以正常接收门禁开关事件,可以发送开门命令.基于项目实时性要求,这里使用SignalR实现门禁状态.控制命令的实时传送. 几种场景需求 根据Sign ...
- 10分钟物联网设备接入阿里云IoT平台
前言最近尝试了一下阿里云IoT物联网平台,还是蛮强大的.在此记录一下学习过程.本教程不需要任何外围硬件,一台电脑和一根能上网的网线即可.算是一篇Hello World了.先上效果图 第一章 准备工作1 ...
- EasyNVR对接EasyCloud视频云平台进行云端录像
EasyCloud视频云平台是一套能够接入各种类型流,进行统一的设备管理.直播.录像.回放的视频平台,同时,EasyCloud视频云平台集成了云端运维功能,在云端就可以直接维护和控制各个现场的软件运行 ...
- 【视频开发】EasyIPCamera通过RTSP协议接入海康、大华等摄像机,摒弃私有SDK接入弊端
近期工作中需要开发一套视频监控系统,实现WEB端.手机APP端预览局域网内的道路监控摄像机,我负责一些后台服务的开发工作. 由于之前项目中的程序都是采用私有协议.各摄像机厂商的SDK进行视频监控系统开 ...
随机推荐
- 声明一个set集合,使用HashSet类,来保存十个字符串信息,然后通过这个集合,然后使用iterator()方法,得到一个迭代器,遍历所有的集合中所有的字符串;然后拿出所有的字符串拼接到一个StringBuffer对象中,然后输出它的长度和具体内容; 验证集合的remove()、size()、contains()、isEmpty()等
package com.lanxi.demo1_3; import java.util.HashSet; import java.util.Iterator; import java.util.Set ...
- shiro三连斩之第一斩
通过JavaSE,创建不同的 realm ,由简单到复杂一步步的深入的理解shiro完成认证与授权内在联系 推荐从下向上一步步的测试,每一个方法都有详细的注释,说明 从哪里来-->到哪里去,理 ...
- windows分驱
步骤/方法 1 鼠标右击“计算机” 2 选择“管理”标签 3 打开“计算机管理”窗口 选择“磁盘“>>”存储管理“,打开”磁盘管理“页面 如图: 右键单击选择要压缩的磁盘(本例 ...
- 每天一点Linux系列之—vim
- 初读"Thinking in Java"读书笔记之第四章 ---控制执行流程
true和false Java不允许将数字作为布尔值使用. 所有条件表达式都将布尔值作为判断条件,决定执行路径. if-lese 迭代 while,do-while,for为三个迭代语句. ,逗号操作 ...
- pytest自动化2:测试用例setup和teardown
前言: pytest支持函数和类两种用例方式,针对每种情况都有不同的代码 pytest用例运行级别 模块级(setup_module/teardown_module)开始于模块始末,全局的 函数级(s ...
- ubuntu 18.04启动samba图形管理界面
启动samba图形界面管理器出现错误: Failed to load module "canberra-gtk-module" 或 SystemError: could not o ...
- 马凯军201771010116《面向对象与程序设计Java》第十二周学习总结
一.理论与知识学习部分 Java的抽象窗口工具箱(Abstract Window Toolkit, AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类. 大部分AWT组件都 ...
- OOP跟我来
世界一切 归于尘土 all is object 两大杀手锏:对象 类 三大武器:封装:继承:多态 #!/usrself=Nonepython # -*- coding: utf-8 -*- # ...
- 黑客常用dos-cmd命令
黑客常用命令大全net user heibai lovechina /add 加一个heibai的用户密码为lovechina net localgroup Administrators heibai ...