Record_Protocol.H
资源名称:GPRS.rar [点击查看]
上传用户:zanguozi01
上传日期:2014-02-19
资源大小:155k
文件大小:9k
源码类别:
GPS编程
开发平台:
Others
- /********************************************************
- * 文件名: Record_Protocol.H
- * 创建时间:2005年6月22日
- * 创建人:
- * 版本号: 1.00
- * 功能: 定义车载终端与系统中心之间的无线协议
- * 文件属性:公共文件
- * 修改历史:(每条详述)
- 协议说明:
- 1,来自中心下行的针对行使记录仪的参数设置的数据
- 2,来自记录仪针对的参数设置的响应的数据
- 3,来自记录仪主动发送的数据,但却不是需要主控直接转发,而是需要重新组包向中心发送的数据
- 4,主控主动向记录仪发送的数据
- 故规定主控与记录仪之间的通讯协议的格式如下:
- 一,原来国标的通讯格式
- 通讯机发送给记录仪的数据格式
- 1,通讯机发送给记录仪的每帧数据格式
- a.起始字头(2字节,#AAH,#75H)
- b.命令字(1字节)
- c.数据块长度(2字节);
- d.保留(备用)字(1字节)
- e.数据块(若干字节)
- f.校验字节(1字节)
- 2,记录仪回送给通讯机的数据格式
- a.起始字头(2字节,#55H,#7AH);
- b.命令字(1字节);
- c.数据块长度(2字节);
- d.保留(备用)字(1字节);
- e.数据块(若干字节);
- f.校验字节(1字节)。
- 二,为了能使得GPS车载终端与记录仪更好形式的通讯,则需要修改GPS车载终端与记录仪之间的通讯协议为
- 1-1,通讯机发送给记录仪的每帧数据格式
- y.特征标志(1字节)
- a.起始字头(2字节,#AAH,#75H)
- b.命令字(1字节)
- c.数据块长度(2字节);
- d.保留(备用)字(1字节)
- e.数据块(若干字节)
- f.校验字节(1字节)
- g,包尾 (2字节,#0D,#0A)
- 2-1,记录仪回送给通讯机的数据格式
- y.特征标志(1字节)
- a.起始字头(2字节,#55H,#7AH)
- b.命令字(1字节)
- c.数据块长度(2字节)
- d.保留(备用)字(1字节)
- e.数据块(若干字节)
- f.校验字节(1字节)
- g,包尾 (2字节,#0D,#0A)
- 补充说明:
- 增加了:y.特征标志(1字节),这里的特征标志有三种值,0,1,2.
- 0:则表示是车载GPS主动发送给记录仪的命令。比如说(查询时间,并矫正,或者每一秒种的GPS数据点)
- 1:则表示是中心下行通过车载GPS终端向记录仪发送的命令(需要记录仪返回,并通过GPS返回中心的命令)
- 2:则表示是通过显示屏下行通过车载GPS终端向记录仪发送的命令(需要记录仪返回,并通过GPS返回显示屏的命令)
- 上载数据基本命令字列表见表A.15。
- 表A.15 上载命令字列表
- 命令字 功 能 记录仪回送信息
- 01H 采集驾驶员代码及对应的机动车驾驶证号码 设定的驾驶员代码及其对应的机动车驾驶证号码
- 02H 采集记录仪的实时时钟 记录仪的的实时时钟
- 03H 采集最近360h内的累计行驶里程数据 360h内的累计行驶里程数据
- 04H 采集记录仪中的车辆特征系数 设定的车辆特征系数
- 05H 采集最近360h内的行驶速度数据 360h内的行驶速度数据
- 06H 采集车辆VIN号、车牌号码、车牌分类 存储的车辆VIN号、车牌号码、分类
- 07H 采集记录仪中事故疑点数据 停车前20秒的速度数据,共10次。
- 08H 采集最近2个日历天内的累计行驶里程 最近2个日历天的累计行驶里程数据
- 09H 采集最近2个日历天内的行驶速度数据 最近2个日历天内的行驶速度数据
- 11H 采集最近2个日历天内的同一驾驶员连续驾驶
- 时间超过3小时的所有记录数据 最近2个日历天内驾驶超时数据
- 表A.16 下传命令字列表
- 命令字 功 能 计算机或数据采集仪发送的信息
- 81H 设置驾驶员代码、驾驶证号码 驾驶员代码、驾驶证号码
- 82H 设置记录仪中的车辆VIN号、车牌号码、分类 车辆VIN号、车牌号、分类
- C2H 设置记录仪时钟 北京时间时钟
- C3H 设置车辆特征系数 车辆特征系数
- 扩展命令字
- 命令字 功 能 记录仪回送信息
- 20H 设置跟踪的间隔距离 跟踪的间隔距离
- 30H 采集跟踪的间隔距离 跟踪的间隔距离
- 22H 设置疲劳驾驶休息时间范围 疲劳驾驶休息时间范围
- 32H 采集疲劳驾驶休息时间范围 疲劳驾驶休息时间范围
- 23H 设置限制使能 限制使能
- 33H 采集限制使能 限制使能
- 34H 采集指定时间段内车辆疲劳驾驶记录数据 指定时间段内车辆疲劳驾驶记录数据
- 35H 采集事故疑点数据 事故疑点数据
- 36H 采集当前驾驶员信息 当前驾驶员信息
- 37H 采集指定时刻GJL记录数据 指定时刻GJL记录数据
- 38H 采集指定时间段内的行驶里程和车辆总累计行驶里程 指定时间段内的行驶里程和车辆总累计行驶里程
- 暂时归纳这几点:
- 1,记录仪每一段时间会想显示终端发送当前的速度值,故超速报警部分的处理由车载GPS完成
- 2,如果属于中心下行通过车载GPS与记录仪之间的数据通讯实行报错机制,而只是单纯的显示终端和记录仪,
- 车载GPS与记录仪之间的数据通讯不产生报错机制
- 3,车载GPS一次可以接收0---32K的数据,可以依照记录仪合适的情形发送一包数据(如果数据需要多次传送才能发送完以后)
- 4,如果记录仪在接受判断属于中心下行的数据后,在发送返回数据前,不在发送主动发送的数据包,如果属于多次分包发送的数据
- 则在最后一个数据包未发送完前,也不进行其他数据的发送。
- 5,如果车载GPS在转发中心的查询数据后,如果没有接收到记录仪的返回数据,也不在主动发送其他数据包。
- 如果属于需要多次发送的数据,则记录仪发送一次数据后,则等待车载GPS通过TCP转发,然后,中心收到数据后,则发送一个
- 此数据包接收正确的包,然后转发给记录仪,记录仪则继续发送后面的数据,直至所有数据发送完成。
- 6,在多个数据包传递的过程中,车载GPS一旦收到中心向记录仪发送的数据,则车载GPS停止其他数据向记录仪的发送。
- 多次数据传递完成后,车载GPS一旦有收到记录仪不是向中心发送的数据,则车载GPS开始恢复主动向记录仪发送数据的方式。
- 除了不需要车载GPS判断数据包命令字的,只需要判断是来自那里的数据,且是需要向记录仪发送的数据
- 1,来自显示屏的需要转发给记录仪的数据命令格式
- '@','%',L, data,'$','&'
- 说明 包头(2字节 '@','%' )
- 整个数据的长度(1字节 L)
- 数据区 (N字节,data)
- 包尾(2字节 '$','&')
- 数据区的分析,如果属于传递给记录仪的命令字,则将此数据包的命令字去掉后的,在重新按记录仪与GPS之间的数据格式通讯
- 2,来自下行中心需要转发给记录仪的数据命令格式
- 说明:
- 解析数据包后,如果属于需要转发记
- 录仪的数据,则从新组包发送给记录仪后,则等待记录仪的返回数据,期间不发送其他类型的
- 数据给记录仪
- ********************************************************/
- /********************************************************
- 关于记录仪国家标准的命令集的定义
- ********************************************************/
- //下行
- #define G_GET_CODEVID 0x01 //采集驾驶员代码及对应的机动车驾驶证号码
- #define G_GET_TIME 0x02 //采集记录仪的实时时钟
- #define G_GET_ALLDISTANCE 0x03 //采集最近360h内的累计行驶里程数据
- #define G_GET_EIGENVALUE 0x04 //采集记录仪中的车辆特征系数
- #define G_GET_ALLSPEED 0x05 //采集最近360h内的行驶速度数据
- #define G_GET_VIN 0x06 //采集车辆VIN号、车牌号码、车牌分类
- #define G_GET_ACCIDENTDATA 0x07 //采集记录仪中事故疑点数据
- #define G_GET_TWODISTANCE 0x08 //采集最近2个日历天内的累计行驶里程
- #define G_GET_TWOSPEED 0x09 //采集最近2个日历天内的行驶速度数据
- #define G_GET_TWODATA 0x11 //采集最近2个日历天内的同一驾驶员连续驾驶时间超过3小时的所有记录数据
- #define G_SET_CODEVID 0x81 //设置驾驶员代码、驾驶证号码
- #define G_SET_VIN 0x82 //设置记录仪中的车辆VIN号、车牌号码、分类
- #define G_SET_TIME 0xC2 //设置记录仪时钟
- #define G_SET_EIGENVALUE 0xC3 //设置车辆特征系数
- //================================================
- //上行
- #define G_GET_CODEVID_ECHO 0x01 //设定的驾驶员代码及其对应的机动车驾驶证号码
- #define G_GET_TIME_ECHO 0x02 //记录仪的的实时时钟
- #define G_GET_ALLDISTANCE_ECHO 0x03 //360h内的累计行驶里程数据
- #define G_GET_EIGENVALUE_ECHO 0x04 //设定的车辆特征系数
- #define G_GET_ALLSPEED_ECHO 0x05 //360h内的行驶速度数据
- #define G_GET_VIN_ECHO 0x06 //存储的车辆VIN号、车牌号码、分类
- #define G_GET_ACCIDENTDATA_ECHO 0x07 //停车前20秒的速度数据,共10次。
- #define G_GET_TWODISTANCE_ECHO 0x08 //最近2个日历天的累计行驶里程数据
- #define G_GET_TWOSPEED_ECHO 0x09 //最近2个日历天内的行驶速度数据
- #define G_GET_TWODATA_EHCO 0x11 //最近2个日历天内驾驶超时数据
- #define G_SET_CODEVID_ECHO 0x81 //驾驶员代码、驾驶证号码
- #define G_SET_VIN_EHCO 0x82 //车辆VIN号、车牌号、分类
- #define G_SET_TIME_EHCO 0xC2 //北京时间时钟
- #define G_SET_EIGENVALUE_EHCO 0xC3 //车辆特征系数
- /********************************************************
- 关于记录仪与GPS通讯的扩展命令集的定义
- ********************************************************/
- //下行
- #define K_SET_INTERDISTANCE 0x20 //设置跟踪的间隔距离
- #define K_GET_INTERDISTANCE 0x30 //采集跟踪的间隔距离
- #define K_SET_TIRE_RESTTIME 0x22 //设置疲劳驾驶休息时间范围
- #define K_GET_TIRE_RESTTIME 0x32 //采集疲劳驾驶休息时间范围
- #define K_SET_LIMIT_SWITCH 0x23 //设置限制使能
- #define K_GET_LIMIT_SWITCH 0x33 //采集限制使能
- #define K_GET_TIREDATA 0x34 //采集指定时间段内车辆疲劳驾驶记录数据
- #define K_GET_ACCIDENTDATA 0x35 //采集事故疑点数据
- #define K_GET_DRIVEDATA 0x36 //采集当前驾驶员信息
- #define K_GET_GJLDATA 0x37 //采集指定时刻GJL记录数据
- #define K_GET_ALLDISTANCE 0x38 //采集指定时间段内的行驶里程和车辆总累计行驶里程
- #define K_SEND_GPSDATA 0x40 //每一秒种发送给记录仪的GPS相关数据
- //上行
- #define K_SET_INTERDISTANCE_ECHO 0x20 //设置跟踪的间隔距离响应
- #define K_GET_INTERDISTANCE_ECHO 0x30 //采集跟踪的间隔距离
- #define K_SET_TIRE_RESTTIME_ECHO 0x22 //疲劳驾驶休息时间范围
- #define K_GET_TIRE_RESTTIME_ECHO 0x32 //疲劳驾驶休息时间范围
- #define K_SET_LIMIT_SWITCH_ECHO 0x23 //设置限制使能
- #define K_GET_LIMIT_SWITCH_ECHO 0x33 //采集限制使能
- #define K_GET_TIREDATA_EHCO 0x34 //采集指定时间段内车辆疲劳驾驶记录数据
- #define K_GET_ACCIDENTDATA_ECHO 0x35 //采集事故疑点数据
- #define K_GET_DRIVEDATA_E_ECHO 0x4E //采集当前驾驶员信息
- #define K_GET_GJLDATA_ECHO 0x37 //采集指定时刻GJL记录数据
- #define K_GET_ALLDISTANCE_ECHO 0x38 //采集指定时间段内的行驶里程和车辆总累计行驶里程
- #define K_RECEIVE_RECORDDATA 0x40 //记录仪定时的发送相关记录仪的数据
- /********************************************************
- 补充说明:
- 根据GPS与记录仪通讯的有三种类型0,1,2三种。
- 在这里归纳如下:
- 可以通过类型0通讯的命令有:
- ********************************************************/