1、唐旭:复习了一遍有关管理中心与设备间的通讯协议,整理并修改了部分内容。说明:MC=管理中心;VOD=视频点播服务器;LIVE=视频直播服务器;D=门口主机( 含有摄像头);R=户内分机(无摄像头)。协议头原协议头中的 time_stamp 及 des_dev_id 为垃圾字段,丢弃不用。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16FF or FEtype datalen sender_address serial_no dataid Subtype check_bit首字节=FF FE 为 BCD 编码datalen=后续字节长度,但整个协议的总长度不得大于 3
2、2K(媒体流) 或 4K(命令)。sender_adderss=数据发送者的地址。为 IP 地址(或 BCD 编码) 。serial_no=数据的序列号dataid = 数据标识 ,在应答时利用此标识表明应答哪个命令type 与 subtype 共同决定数据的类型check_bit=校验字节=第 1-15 字节相加取最后一位的值关于组播地址与 IP 地址的说明1 每台设备具有一个唯一的静态 IP 地址,该地址(包括子网掩码与网关地址) 在数据录入时一并录入。该 IP 地址与设备的 BCD 编码一一对应。2 每台门口机与围墙机(即含用摄像头的设备 )具有一个唯一的组播地址,在发送视频时,发送者(
3、门口机)将视频数据发送到这个组播地址中,而接收者 (MC 或者户内分机)则从这个组播地址接收视频。这个组播地址在数据录入时一并录入(或自动生成) 。3 树的每个父节点具有一个唯一的组播地址,该组播地址在数据录入时一并录入(或自动生成)。当 MC 向一组设备发送组播信息(如短信、升级等 )时,将数据发送到这个组播地址中,而接收者则监听这个组播地址,以获得相应的数据信息。4 各种通讯: 通道 发送目的 端口 方向 举例MC 请求通道 234.5.6.7 24201 MC 接收 设备发出的警报等信息设备发出的通讯握手请求控制通道 指定静态 IP 24202 MC 接收MC 发送MC 回发的信息 AC
4、KMC 回发的握手 ACKMC 发出的通讯握手请求MC 发出的控制命令音频通道 指定静态 IP 24203 MC 接收MC 发送视频通道 与门口机绑定的视频组播地址24204 MC 接收群发通道 与选中的树节点绑定的组播地址24205 MC 发送 MC 向一组设备发送短信MC 向一组设备发送新软件单发通道 指定静态 IP 24206 MC 发送 MC 向指定设备发送短信MC 向指定设备发送新软件AP 请求通道 234.5.6.8 24208 AP 接收 设备向 AP 发送请求VOD 请求通道234.5.6.11 24213 VOD 接收 设备向 VOD 发送请求VOD 控制通道指定静态 IP
5、24202 VOD 发送 VOD 回发请求结果VOD 连接通道TCP 连接 VOD 与 R双向通信Live 请求通道 234.5.6.12 24214 Live 接收 设备向 Live 发送请求Live 控制通道 指定静态 IP 24202 Live 发送 Live 应答设备的请求信息Live 音 视频通道234.5.6.100 234.5.6.19924215 Live 发送各种通讯详解:(十六制表示 )serial_no type subtype dataid data-part description命令应答 (从 PC 或设备发送的命令都需要进行应答 ,包括这里描述的所有请求和控制 )
6、06 00 维持原样 设备回应ACK15 00 维持原样设备回应NAK根据收到的信息决定通道,如从控制通道则利用控制通道发送,否则为请求通道serial_no type subtype data-part description信息输入01 00 代码/id/para设备向 MC 发送布撤防等报警信息请求通道控制信息0D 00 代码/id/paraMC 向指定设备发送控制命令控制通道MC 呼叫设备(户内分机 )09 01 MC 发出请求 控制通道09 11 设备回应:忙碌 控制通道:系统回应09 12 设备回应:拒绝 控制通道:人工接听09 13 设备回应:同意 控制通道:人工接听09 14
7、设备回应:免打扰 控制通道:系统回应赋值 1或 2 02 01 音频数据音频数据 音频通道:人工同意后才应该发送音频设备(户内分机)呼叫 MC09 01 设备发出请求 请求通道09 11 MC 回应:忙碌 控制通道:系统回应09 12 MC 回应:拒绝 控制通道:人工接听09 13 MC 回应:同意 控制通道:人工接听赋值 1或 2 02 01 音频数据音频数据 音频通道:人工同意后才应该发送音频MC 监视门口机08 01 MC 发出请求 控制通道08 11 设备回应:忙碌 控制通道:系统回应08 13 组播地址4 字节整数 设备回应:同意 控制通道:系统回应连续的序列号 03 02 视频数据
8、(I 帧)设备发出视频数据视频通道:回应同意后才会收到视频连续的序列号 03030405视频数据 (非 I 帧)设备发出视频数据视频通道门口机呼叫室内机08 21门口机呼叫室内机时通知管理中心,无须中心回复,中心收到后根据实际情况决定是否监视,监视的过程与MC 监视门口机相同请求通道门口机呼叫 MC07 01 组播地址4 字节整数 门口机发出请求 请求通道07 11 MC 回应:忙碌 控制通道:系统回应07 12 MC 回应:拒绝 控制通道:人工处理07 13 MC 回应:同意 控制通道:人工处理连续的序列号 03 02 视频数据(I 帧)设备发出视频数据视频通道:仅在人工同意后才会收到音视频
9、数据连续的序列号 03030405视频数据 (非 I 帧)设备发出视频数据视频通道赋值 1或 2 02 01 音频数据音频数据 音频通道MC 呼叫门口机07 01 MC 发出请求 控制通道07 11 设备回应:忙碌 控制通道:系统回应07 12 设备回应:拒绝 控制通道:人工处理07 13 组播地址4 字节整数 设备回应:同意 控制通道:人工处理连续的序列号 03 02 视频数据(I 帧)设备发出视频数据视频通道:仅在人工同意后才会收到音视频数据连续的序列号 03030405视频数据 (非 I 帧)设备发出视频数据视频通道赋值 1或 2 02 01 音频数据音频数据 音频通道中断当前会话05
10、01 发出中断请求 控制通道群发 / 单发序列号,必须从1 开始04 00 二进制数据体MC 向一组设备发出:软件升级或广告更新群发 / 单发通道04 21 公告,文本04 22 公告,图片04 23 公告,视频04 31 通知,文本04 32 通知,图片序列号,必须从1 开始04 33二进制数据体通知,视频群发 / 单发通道视频点播7C 31 请求节目列表 VOD 请求通道7C 32 节目数 + mediaItem_t 数组 发送节目列表 VOD 控制通道7C 01 整形数据标识视频 发出点播请求 VOD 请求通道7C 11 文件不存在 VOD 控制通道7C 12 服务器忙 VOD 控制通道
11、7C 13监听地址(int) + 端口(int)网络字节序VOD 控制通道连续的序列号 7C 02视频数据(I 帧)含音视频数据帧头(AV_FRAME_HEAD)视频数据 VOD 发送,VOD 连接通道连续的序列号 7C030405视频数据 (非 I 帧)含音视频数据帧头(AV_FRAME_HEAD)视频数据 VOD 发送,VOD 连接通道赋值 1或 2 7C 06音频数据含音视频数据帧头(AV_FRAME_HEAD)音频数据 VOD 发送,VOD 连接通道视频直播6D 01 频道号,整形 发出点播请求 Live 请求通道6D 13 音视频组播地址 网络字节序 回发组播地址 Live 控制通道
12、连续的序列号 6D 02视频数据(I 帧)含音视频数据帧头(AV_FRAME_HEAD)视频数据 Live 发送,组播通道连续的序列号 6D030405视频数据 (非 I 帧)含音视频数据帧头(AV_FRAME_HEAD)视频数据 Live 发送,组播通道赋值 1或 2 6D 06音频数据含音视频数据帧头(AV_FRAME_HEAD)音频数据 Live 发送,组播通道6E 01 查询频道列表 Live 请求通道6E 13 频道列表,以 0x13分隔多个频道标识 频道列表 Live 控制通道6F 01 频道数 + channelItem 数组 查询频道节目 Live 请求通道6F 13 节目数
13、+ mediaItem_t 数组 节目列表 Live 控制通道DSP 向中心验证身份10 01 16 个字节的身份识 别码DSP 向中心申请验证身份返回:ACK(06):身份正确NAK(15):不正确附表一:信息内容定义:定义输入信息的代码:代码/id/para,如果遇到关键字符/,请用/替换 id=终端的防区号(指探头) 协议头中 serial_no 表示在本智能网关上的第几个通道代码 格式定义 备注700 洗衣 向 MC 申请物业服务701 维修702 清洁附表二:控制内容定义定义不同的控制命令:代码/id/para 协议头中 serial_no 表示在本智能网关上的第几个通道 id=在该
14、通道上的第几个出口注意:设备在完成相应的控制后,一般应当返回相应的控制信息,如发送继电器开命令,则设备返回继电器打开信息。注意:设备现阶段无法做到返回相应的控制信息。在成功收到控制命令后返回 ACK。代码 格式定义 备注RC RC/id, 继电器 id 关RO RO/id, 继电器 id 开有关继电器开关的具体含义可以在定义设备类型时转换,如转换为开锁等。定义:id=1=开锁OP OP/id撤防远程布防CL CL/id布防远程撤防QD QD/id/para设备查询,查询设备类型和状态,包括智能家居与 DS 对应的。CF CF/id/para智能家居控制命令为智能家居使用,备用。VR VR/pa
15、ra视频丢帧率,如 VR/8,表示视频丢帧率为每秒钟丢失 8 帧每秒钟丢失帧数达到10 时发送该参数可以由用户定义附表三:1 监视限时 120 秒。超时后,系统应自动挂断,不用等待人工操作。2 通话不限时。但一定时间内如果没有收到音频数据(1000 毫秒) ,应自动挂断。3 用以升级的广告或软件,由另外的制作系统生成。MC 把它们视作普通文件一样对待。4 文本类短信的长度限制在 160 个字节。5 图片类短信,仅允许图片的格式为 JPEG。6 视频类短信,仅允许视频的格式为内部定义的 MPEG4 格式。遵循 MC 录像时存储的格式。允许单帧视频(即拍照 )。7 音频定义:一帧音频的大小为固定大
16、小,可从协议头中获得=640*4=2560 bytes。音频的格式为:16K 采样率, 16 位采样长度,立体声双声道。音频数据在发送,请在协议头的 serial_no 字段内交替填写 1 与 2。8 在向设备发送大容量数据时,如果一帧不能发送完成,则需要分为多帧发送。在两次发送之间需做少许的停顿,建议 10 毫秒。每一帧的长度建议不要超过 20K。附表四 VOD 过程描述1 室内机用请求通道向 VOD 请求节目列表2 VOD 用控制通道向室内机发送节目列表3 室内机向 VOD 请求通道发送播放文件请求4 若文件存在且没有超过支持的点播数,VOD 向室内机发送 VOD 的 IP 地址和监听端口
17、,否则发送文件不存在或服务器忙指令5 室内机通过 TCP 方式建立与 VOD 连接6 VOD 发送,室内机接收音视频数据7 停止,暂停和恢复播放由室内机本身控制,无须与服务器通信。附表五 Live 过程描述1 室内机向 Live 请求通道请求频道列表2 Live 向室内机发送频道列表3 室内机向 Live 请求通道请求频道节目列表4 Live 向室内机发送频道节目列表5 室内机向 Live 请求通道发送请求播放的频道6 Live 向室内机发送播放频道的组播地址和端口7 室内机从组播端口获得音视频数据8 暂停和恢复播放由室内机本身控制,无须与服务器通信。附表六 数据结构typedef struc
18、tBool bNew;clockInfo_t clock;UInt32 ID;UInt8 szText32; /medias descriptionmediaItem_t, *pmediaItem_t;typedef structUInt32 ID;UInt8 szText32; /channels descriptionchannelItem_t, *pchannelItem_t;/*/音视频数据祯头/*/typedef struct _AV_FRAME_HEADDWORD dwStreamFlag; /视频 0x5051, 音频 0x5052unsigned long nByteNum;long lTimestamp;AV_FRAME_HEAD;