Skip to content
joorhy edited this page May 10, 2013 · 4 revisions

一、模块功能

1.jo_core

  • 功能描述

二、通信协议

1.协议格式

(1).控制头信息

  • Start Code: 开始码,32bit,固定为JOSP;
  • Protocol Version: 协议版本,4bit,1~15;
  • Protocol Type: 协议类型,2bit,00-TCP,01-UDP;
  • Packet Flag: 包标志,2bit,0-未分包,1-开始包,2-中间包,3-结束包;
  • Command Type: 命令类型,8bit,0-255;
  • Packet Sequence: 包序号,16bit,0~65535;
  • Return Code: 错误码,8bit,0~255;
  • Reserved: 预留,8bit,值为0x00;
  • Expand Length: 扩展数据长度,16bit,0-65535;
  • User ID: 用户ID,256bit,MD5摘要;
  • CRC_32: 循环冗余校验码,32bit;

(2).登录

  • Command Type=0x01;
  • Expand Data:
  1. UserName:用户名,16Byte,由字母组成,区分大小写;
  2. PassWord:密码,16Byte,由字母、数字、下划写组成,区分大小写且不低于8位;

(3).登录返回

  • Command Type=0x02;

(4).退出

  • Command Type=0x03;

(5).退出返回

  • Command Type=0x04;

(6).获取资源列表

  • Command Type=0x05;

(7).资源列表返回

  • Command Type=0x06;
  • Expand Data:
  1. ResourseList:资源列表,可变长度,XML格式;

(8).打开实时媒体流

  • Command Type=0x07;
  • Expand Data:
  1. ResourceID:资源ID,256bit,MD5摘要;
  2. StreamType:码流类型,32bit,0-主码流,1-子码流;

(9).打开实时媒体流返回

  • Command Type=0x08;
  • Expand Data:
  1. StreamID:资源ID,256bit,MD5摘要;
  2. MediaCode:媒体类型,32bit,JOMS-JO数据类型;
  3. IFrameIval:I帧间隔,8bit;
  4. FramePerSecond:帧率,8bit;
  5. Width:视频宽度,16bit;
  6. Height:视频高度,16bit;

(10).关闭实时媒体流

  • Command Type=0x09;
  • Expand Data:
  1. StreamID:媒体流ID,256bit,MD5摘要;

(11).关闭实时媒体流返回

  • Command Type=0x0A;

(12).云镜控制

  • Command Type=0x0B;
  • Expand Data:
  1. ResourceID: 资源ID,256bit,MD5摘要;
  2. Sub Command: 云镜命令,16bit;
  1. JO_PTZ_UP 1 //向上旋转
  2. JO_PTZ_DOWN 2 //向下旋转
  3. JO_PTZ_LEFT 3 //向左旋转
  4. JO_PTZ_RIGHT 4 //向右旋转
  5. JO_PTZ_UP_LEFT 5 //左上旋转
  6. JO_PTZ_UP_RIGHT 6 //右上旋转
  7. JO_PTZ_DOWN_LEFT 7 //左下旋转
  8. JO_PTZ_DOWN_RIGHT 8 //右下旋转
  9. JO_PTZ_PRE_SET 9 //设置预置点
  10. JO_PTZ_PRE_CLR 10 //清除预置点
  11. JO_PTZ_GOTO_PRE 11 //转至预置点
  12. JO_PTZ_ZOOM_IN 12 //倍率变大
  13. JO_PTZ_ZOOM_OUT 13 //倍率变小
  14. JO_PTZ_FOCUS_NEAR 14 //焦点调近
  15. JO_PTZ_FOCUS_FAR 15 //焦点调远
  16. JO_PTZ_IRIS_OPEN 16 //光圈变大
  17. JO_PTZ_IRIS_CLOSE 17 //光圈变小
  18. JO_PTZ_PAN_AUTO 18 //自动扫描
  19. JO_PTZ_AUX_ON 19 //辅助设备打开
  20. JO_PTZ_AUX_OFF 20 //辅助设备关闭
  1. Param: 云镜控制速度,16bit;
  • Sub Command取值 18时,表示速度,取值范围为0255,0代表停止;
  • Sub Command取值 9~11时,表示预置点位置,取值范围为正整数;
  • Sub Command取值 1218时,表示速度,取值范围为0255,0代表停止;
  • Sub Command取值 19~20时,表示开关编号,取值范围为正整数;
  1. 1-灯光
  2. 2-雨刷
  3. 3-风扇

(13).云镜控制返回

  • Command Type=0x0C;

(14).历史数据查询

  • Command Type=0x0D;
  • Expand Data:
  1. ResourceID: 资源ID,256bit,MD5摘要;
  2. BeginTime: 开始时间,64bit,time_t格式;
  3. EndTime: 结束时间,64bit,time_t格式;

(15).历史数据查询返回

  • Command Type=0x0E;
  1. TimeList:n个BeginTime+EndTime的组合,BeginTime与EndTime的定义与14条相同;

(16).打开历史流媒体

  • Command Type=0x0F;
  1. ResourceID:资源ID,256bit,MD5摘要;
  2. BeginTime:开始时间,64bit;
  3. EndTime:结束时间,64bit;

(17).打开历史媒体流返回

  • Command Type=0x10;
  • Expand Data:
  1. StreamID:资源ID,256bit,MD5摘要;
  2. MediaCode:媒体类型,32bit,JOMS-JO数据类型;
  3. IFrameIval:I帧间隔,8bit;
  4. FramePerSecond:帧率,8bit;
  5. Width:视频宽度,16bit;
  6. Height:视频高度,16bit;

(18).数据头格式

  • StartCode:魔术字段,32bit,值为JOAV;
  • DataLen:数据长度(不包括头),32bit;
  • FrameType:帧类型,3-I帧,4-B帧,5-P帧,6-音频帧;
  • TimeStamp:时间戳,64bit;
  • FrameSeq:帧序列号,64bit;
  • IsLastFrame,结束标志,32bit;

(19).请求媒体数据(固定时间长度)

  • Command Type=0x11;
  • Expand Data:
  1. TimeStamp:开始时间,64bit,0-无效;
  2. TimeInterval:时间间隔,32bit,单位ms;

(20).请求媒体数据应答

  • Command Type=0x12;