Holux m241 通讯协议
M241支持两种命令1 MTK定义的命令以$PMTK开头,2Holux自己定义的设备命令以$HoLux开头
各命令都以回车和换行结束,即\#13\#10
命令中*以后的数据异或校验和,需要校验的数据是从$后面开始的第一字符至*前的字符
整个命令都是ASCII码,例如:810,实际发送的是38 31 30
PC ->241 $PHLX810*35\#13\#10 查询记录器的名字
M241->PC $PHLX852,GR241*3D\#13\#10 回答记录器的名字
$PMTK001,-1,0*1F\#13\#10
PC ->241 $PMTK182,2,1*3A\#13\#10 查询记录器状态
M241->PC $PMTK182,3,1,1*26\#13\#10 SPI状态,RDY准备好,SPI接口连存储器
$PMTK001,182,2,3*25\#13\#10 回答182号命令,2,3(有效命令执行失败\成功)
PC ->241 $PMTK400*36\#13\#10; API_Query_Fix_Ctl
M241->PC $PMTK500,1000,0,0,0.0,0.0*1A\#13\#10;
说明:Packet Meaning:These parameters control the rate of position fixing activity.
DataField:FixInterval: Position fix interval. (msec). [ >= 200]
PC ->241 $PMTK182,2,3*38\#13\#10 QUERY LOG STATUS 3:sec,查询记录器多少秒存储一次
M241->PC $PMTK182,3,3,100*24\#13\#10 10sec(0.1秒为单位)
$PMTK001,182,2,3*25\#13\#10 回答182号命令,2,3(有效命令执行失败\成功)
PC ->241 $PMTK182,2,4*3F\#13\#10 QUERY LOG STATUS 4:dis,查询距离
M241->PC $PMTK182,3,4,500*27\#13\#10 回答距离50m(单位0.1m)
$PMTK001,182,2,3*25\#13\#10
PC ->241 $PMTK182,2,6*3D\#13\#10; RCD METHOD 查询rcd模式,存储器满之后如何处理
M241->PC $PMTK182,3,6,2*22\#13\#10 回复rcd模式, 1: OVP(覆盖) 2: STP(停止)
$PMTK001,182,2,3*25\#13\#10
PC ->241 $PMTK182,2,8*33\#13\#10 查询RCD地址,下个地理点记录的flash地址
M241->PC $PMTK182,3,8,000002DC*1B\#13\#10 回复ADDR ,000002DC(根据地理点数据多少不同,由此可以获得剩余存储容量)
$PMTK001,182,2,3*25\#13\#10
PC ->241 $HOLUX241,1*6C\#13\#10 屏幕上log消失,usb图标出现,进入USB联机时给液晶屏显示用
M241->PC ======ShowTLog_Destructor========\#13\#10 log消失
======USB_Constructor========\#13\#10 usb符号显示
$HOLUX001,1*6A\#13\#10 估计是对1号命令的回答
$PMTK001,-1,0*1F\#13\#10 Acknowledge of PMTK command,不清楚意思,凡是机器定义的通讯协议($HOLUX开头)执行完毕都会返回此回答
说明:PC发完这条指令之后,以上会暂停从串口输出gps数据,不加操作,延时10秒左右又会输出GPS数据
PC ->241 $HOLUX241,3*6E\#13\#10 询问固件版本
M241->PC $HOLUX001,3,113*77\#13\#10 回答固件版本113
$PMTK001,-1,0*1F\#13\#10 不清楚应该是Acknowledge of PMTK command,-1命令,无效命令
PC ->241 $HOLUX241,7*6A\#13\#10 询问硬件版本
M241->PC $HOLUX001,7,02*42\#13\#10 回答硬件版本02
$PMTK001,-1,0*1F\#13\#10 不清楚应该是Acknowledge of PMTK command,-1命令,无效命令
PC ->241 $PMTK182,2,9*32\#13\#10 询问FLASH ID
M241->PC $PMTK182,3,9,C22015C2*19\#13\#10 回答ID C22015C2(更象是URAT_USB的型号)
$PMTK001,182,2,3*25\#13\#10
PC ->241 $PMTK182,2,8*33\#13\#10 询问RCD地址
M241->PC $PMTK182,3,8,000002DC*1B\#13\#10 回答RCD地址000002DC
$PMTK001,182,2,3*25\#13\#10
PC ->241 $HOLUX241,5*68\#13\#10 询问M241->PC的使用者ID
M241->PC $HOLUX001,5,liuyuhong_HHUC*79\#13\#10 回答,liuyuhong_HHUC
$PMTK001,-1,0*1F\#13\#10
PC ->241 $PMTK182,7,1F0000,14*50\#13\#10 读GPS地理点记录,开始地址(1F0000),读取长度(40个)
M241->PC $PMTK182,8,001F0000,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF*5A\#13\#10 回答记录开始的地址和数据
$PMTK001,182,7, 3*20\#13\#10有效命令
注:是否1F0000内有特殊内容,不知道
读轨迹数据同以上命令,只是起始地址和长度不同而已,每800H个形成一个回答,如若没有传输完毕,再次来一个回答,最后回答$PMTK001,182,7, 3*20\#13\#10有效命令
以上其实就是读地理记录的命令
PC ->241 $HOLUX241,8*65\#13\#10 //不清楚
M241->PC $HOLUX001,8,0*7F\#13\#10 回答0
$PMTK001,-1,0*1F\#13\#10
PC ->241 $HOLUX241,10*5C\#13\#10 询问时区
M241->PC $HOLUX001,10,+08:00*6F\#13\#10 回答+8:00
$PMTK001,-1,0*1F\#13\#10
PC ->241 $HOLUX241,11*5D\#13\#10 不清楚
M241->PC $HOLUX001,11,0*47\#13\#10 回答0
$PMTK001,-1,0*1F\#13\#10
PC ->241 $HOLUX241,6*6B\#13\#10 维持USB联机状态,否则延时一段时间后自动返回输出gps数据状态,每隔一段时间就发一次
M241->PC $PMTK001,-1,0*1F\#13\#10 回答无效命令
PC ->241 $HOLUX241,2*6F\#13\#10 初始化命令,退出与USB的连接用
M241->PC $HOLUX001,2*69\#13\#10 回答2号命令
$PMTK001,-1,0*1F\#13\#10 此时关闭串口,后面的回答其实PC软件已收不到
=== 显示液晶等初始化信息,应该是调试程序留下的
$PMTK010,001*2E //回应系统启动
-----------------以上是我分析的----------------以下从网上抄来的------------------------------
PC ->241 $HOLUX241,4,SleepyCat1224*20\#13\#10 给M241写入使用者名字SleepyCat1224
PC ->241 $PMTK182,1,6,1*23\#13\#10 设置存储模式为 覆盖
PC ->241 $PMTK182,1,6,2*20\#13\#10 设置存储模式为 记录满停止
PC ->241 $PMTK182,1,3,100*26\#13\#10 设置记录时间间隔为 100*0.1s=10S
PC ->241 $PMTK182,1,4,500*25\#13\#10 设置记录距离间隔为50公尺
PC ->241 $HOLUX241,9,0*78\#13\#10 以时间方式记录地理信息
PC ->241 $HOLUX241,9,1*79\#13\#10 以距离方式记录地理信息
PC ->241 $PMTK182,6,1*3E\#13\#10 擦除记录
本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/Blog/Archive_Thread.asp?SID=30428
M241支持两种命令1 MTK定义的命令以$PMTK开头,2Holux自己定义的设备命令以$HoLux开头
各命令都以回车和换行结束,即\#13\#10
命令中*以后的数据异或校验和,需要校验的数据是从$后面开始的第一字符至*前的字符
整个命令都是ASCII码,例如:810,实际发送的是38 31 30
PC ->241 $PHLX810*35\#13\#10 查询记录器的名字
M241->PC $PHLX852,GR241*3D\#13\#10 回答记录器的名字
$PMTK001,-1,0*1F\#13\#10
PC ->241 $PMTK182,2,1*3A\#13\#10 查询记录器状态
M241->PC $PMTK182,3,1,1*26\#13\#10 SPI状态,RDY准备好,SPI接口连存储器
$PMTK001,182,2,3*25\#13\#10 回答182号命令,2,3(有效命令执行失败\成功)
PC ->241 $PMTK400*36\#13\#10; API_Query_Fix_Ctl
M241->PC $PMTK500,1000,0,0,0.0,0.0*1A\#13\#10;
说明:Packet Meaning:These parameters control the rate of position fixing activity.
DataField:FixInterval: Position fix interval. (msec). [ >= 200]
PC ->241 $PMTK182,2,3*38\#13\#10 QUERY LOG STATUS 3:sec,查询记录器多少秒存储一次
M241->PC $PMTK182,3,3,100*24\#13\#10 10sec(0.1秒为单位)
$PMTK001,182,2,3*25\#13\#10 回答182号命令,2,3(有效命令执行失败\成功)
PC ->241 $PMTK182,2,4*3F\#13\#10 QUERY LOG STATUS 4:dis,查询距离
M241->PC $PMTK182,3,4,500*27\#13\#10 回答距离50m(单位0.1m)
$PMTK001,182,2,3*25\#13\#10
PC ->241 $PMTK182,2,6*3D\#13\#10; RCD METHOD 查询rcd模式,存储器满之后如何处理
M241->PC $PMTK182,3,6,2*22\#13\#10 回复rcd模式, 1: OVP(覆盖) 2: STP(停止)
$PMTK001,182,2,3*25\#13\#10
PC ->241 $PMTK182,2,8*33\#13\#10 查询RCD地址,下个地理点记录的flash地址
M241->PC $PMTK182,3,8,000002DC*1B\#13\#10 回复ADDR ,000002DC(根据地理点数据多少不同,由此可以获得剩余存储容量)
$PMTK001,182,2,3*25\#13\#10
PC ->241 $HOLUX241,1*6C\#13\#10 屏幕上log消失,usb图标出现,进入USB联机时给液晶屏显示用
M241->PC ======ShowTLog_Destructor========\#13\#10 log消失
======USB_Constructor========\#13\#10 usb符号显示
$HOLUX001,1*6A\#13\#10 估计是对1号命令的回答
$PMTK001,-1,0*1F\#13\#10 Acknowledge of PMTK command,不清楚意思,凡是机器定义的通讯协议($HOLUX开头)执行完毕都会返回此回答
说明:PC发完这条指令之后,以上会暂停从串口输出gps数据,不加操作,延时10秒左右又会输出GPS数据
PC ->241 $HOLUX241,3*6E\#13\#10 询问固件版本
M241->PC $HOLUX001,3,113*77\#13\#10 回答固件版本113
$PMTK001,-1,0*1F\#13\#10 不清楚应该是Acknowledge of PMTK command,-1命令,无效命令
PC ->241 $HOLUX241,7*6A\#13\#10 询问硬件版本
M241->PC $HOLUX001,7,02*42\#13\#10 回答硬件版本02
$PMTK001,-1,0*1F\#13\#10 不清楚应该是Acknowledge of PMTK command,-1命令,无效命令
PC ->241 $PMTK182,2,9*32\#13\#10 询问FLASH ID
M241->PC $PMTK182,3,9,C22015C2*19\#13\#10 回答ID C22015C2(更象是URAT_USB的型号)
$PMTK001,182,2,3*25\#13\#10
PC ->241 $PMTK182,2,8*33\#13\#10 询问RCD地址
M241->PC $PMTK182,3,8,000002DC*1B\#13\#10 回答RCD地址000002DC
$PMTK001,182,2,3*25\#13\#10
PC ->241 $HOLUX241,5*68\#13\#10 询问M241->PC的使用者ID
M241->PC $HOLUX001,5,liuyuhong_HHUC*79\#13\#10 回答,liuyuhong_HHUC
$PMTK001,-1,0*1F\#13\#10
PC ->241 $PMTK182,7,1F0000,14*50\#13\#10 读GPS地理点记录,开始地址(1F0000),读取长度(40个)
M241->PC $PMTK182,8,001F0000,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF*5A\#13\#10 回答记录开始的地址和数据
$PMTK001,182,7, 3*20\#13\#10有效命令
注:是否1F0000内有特殊内容,不知道
读轨迹数据同以上命令,只是起始地址和长度不同而已,每800H个形成一个回答,如若没有传输完毕,再次来一个回答,最后回答$PMTK001,182,7, 3*20\#13\#10有效命令
以上其实就是读地理记录的命令
PC ->241 $HOLUX241,8*65\#13\#10 //不清楚
M241->PC $HOLUX001,8,0*7F\#13\#10 回答0
$PMTK001,-1,0*1F\#13\#10
PC ->241 $HOLUX241,10*5C\#13\#10 询问时区
M241->PC $HOLUX001,10,+08:00*6F\#13\#10 回答+8:00
$PMTK001,-1,0*1F\#13\#10
PC ->241 $HOLUX241,11*5D\#13\#10 不清楚
M241->PC $HOLUX001,11,0*47\#13\#10 回答0
$PMTK001,-1,0*1F\#13\#10
PC ->241 $HOLUX241,6*6B\#13\#10 维持USB联机状态,否则延时一段时间后自动返回输出gps数据状态,每隔一段时间就发一次
M241->PC $PMTK001,-1,0*1F\#13\#10 回答无效命令
PC ->241 $HOLUX241,2*6F\#13\#10 初始化命令,退出与USB的连接用
M241->PC $HOLUX001,2*69\#13\#10 回答2号命令
$PMTK001,-1,0*1F\#13\#10 此时关闭串口,后面的回答其实PC软件已收不到
=== 显示液晶等初始化信息,应该是调试程序留下的
$PMTK010,001*2E //回应系统启动
-----------------以上是我分析的----------------以下从网上抄来的------------------------------
PC ->241 $HOLUX241,4,SleepyCat1224*20\#13\#10 给M241写入使用者名字SleepyCat1224
PC ->241 $PMTK182,1,6,1*23\#13\#10 设置存储模式为 覆盖
PC ->241 $PMTK182,1,6,2*20\#13\#10 设置存储模式为 记录满停止
PC ->241 $PMTK182,1,3,100*26\#13\#10 设置记录时间间隔为 100*0.1s=10S
PC ->241 $PMTK182,1,4,500*25\#13\#10 设置记录距离间隔为50公尺
PC ->241 $HOLUX241,9,0*78\#13\#10 以时间方式记录地理信息
PC ->241 $HOLUX241,9,1*79\#13\#10 以距离方式记录地理信息
PC ->241 $PMTK182,6,1*3E\#13\#10 擦除记录
本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/Blog/Archive_Thread.asp?SID=30428