设备通用

 

5.1 设备升级

 

5.1.1 功能介绍

局域网下平台/客户端/Web通过ISAPI协议,对设备进行升级。

 

5.1.2 集成流程

以平台为例,对设备进行升级如下:

  1. 设备升级:

对设备固件升级 POST /ISAPI/System/updateFirmware ;

  1. 获取设备升级的进度:

获取设备升级的进度 GET /ISAPI/System/upgradeStatus ;

  1. 重启设备:

重启设备 PUT /ISAPI/System/reboot 。

 

5.2 时间校时

 

5.2.1 功能介绍

时间校时是指针对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使

设备能够提供基于统一时间的多种应用。当前支持的校时类型有:NTP校时、手动校时、卫星校时、萤石平台校时、GB28181校时等。当前重点说明下NTP的校时原理:

 

5.2.1.1 NTP校时

运行NTP的本地系统,既可以接收来自其他时钟源的同步(自身作为客户端),又可以作为时钟源同步其他的时钟(自身作为服务端),并且可以和其他设备互相同步。

NTP的基本工作原理如图所示。Device A和Device B通过网络相连,它们都有自己独立的系统时钟,需要通过NTP实现各自系统时钟的自动同步。为便于理解,作如下假设:

在Device A和Device B的系统时钟同步之前,Device A的时钟设定为10:00:00am,Device B的时

钟设定为11:00:00am。

Device B作为NTP时间服务器,即Device A将使自己的时钟与Device B的时钟同步。

NTP报文在Device A和Device B之间单向传输所需要的时间为1秒。

系统时钟同步的工作过程如下:

Device A发送一个NTP报文给Device B,该报文带有它离开Device A时的时间戳,该时间戳为

10:00:00am(T1)。

当此NTP报文到达Device B时,Device B加上自己的时间戳,该时间戳为11:00:01am(T2)。

当此NTP报文离开Device B时,Device B再加上自己的时间戳,该时间戳为11:00:02am(T3)。

当Device A接收到该响应报文时,Device A的本地时间为10:00:03am(T4)。

至此,Device A已经拥有足够的信息来计算两个重要的参数:

NTP报文的往返时延Delay=(T4-T1)-(T3-T2)=2秒。

Device A相对Device B的时间差offset=((T2-T1)+(T3-T4))/2=1小时。

这样,Device A就能够根据这些信息来设定自己的时钟,使之与Device B的时钟同步。

……

5.3.1.2 事件消息语法

触发监听报警事件之后,报警分为携带二进制数据(如图片)和不携带二进制数据。

不携带二进制数据:

设备发送数据HTTP请求Headers中的Content-Type 通常为application/xml 或

application/json ,示例如下。

设备发送报警报文

POST Request_URI HTTP/1.1 <!--/Request_URI,来自于URI(POST

/ISAPI/Event/notification/httpHosts)的创建 -->

Host: data_gateway_ip:port <!--Host:指定设备访问的http服务器的域名/IP 地址和端口号,此

处来自于URI(POST /ISAPI/Event/notification/httpHosts)的创建,根据实际情况填充;-->

Accept-Language: zh-cn

Date: YourDate

Content-Type: application/xml; <!--部分报警走json格式,所以要求上层解析的时候,根据

Content-Type字段进行区分-->

Content-Length: text_length

Connection: keep-alive <!--设备端与接收服务端保持长连接,提升传输性能-->

<EventNotificationAlert/>

监听主机应答

HTTP/1.1 200 OK

Date: YourDate

Connection: close

 

携带二进制数据:

设备发送数据的格式为HTTP表单格式(multipart/form-data)。HTTP请求Headers中的Content-

Type 通常为multipart/form-data, boundary=<frontier> ,其中boundary是一个变量,用于将整

个HTTP Body分割成多个单元,每个单元为一份数据,都有各自的Headers和body。详细格式说明参

考RFC 1867 (Form-based File Upload in HTML),示例如下,请注意boundary前面和后面的横线-- 。

设备发送报警报文

POST Request_URI HTTP/1.1 <!--Request_URI,来自于URI(POST

/ISAPI/Event/notification/httpHosts)的创建-->

Host: device_ip:port <!--Host:指定设备访问的http服务器的域名/IP 地址和端口号,此处来自于

URI(POST /ISAPI/Event/notification/httpHosts)的创建,根据实际情况填充;-->

Accept-Language: zh-cn

Date: YourDate

Content-Type: multipart/form-data;boundary=<frontier>

Content-Length: text_length

Connection: keep-alive <!--设备端与接收服务端保持长连接,提升传输性能-->

--<frontier>

Content-Disposition: form-data; name="Event_Type"

Content-Type: text/xml <!--部分报警走json格式,所以要求上层解析的时候,根据Content-Type

字段进行区分-->

<EventNotificationAlert/>

--<frontier>

Content-Disposition: form-data; name="Picture_Name"

Content-Length: image_length

Content-Type: image/jpeg

[图片数据]

--<frontier>--

监听主机应答

HTTP/1.1 200 OK

Date: YourDate

Connection: close

 



……

申请完整协议文件
如需要完整协议开发文档,请填写以下申请信息,我们会在收到信息的一周内与您联系并提供完整内容
联系我们
售后服务
close
qrCode
微信小程序
扫码登录微信小程序,可轻松查阅海量资料与视频