1 北斗通信协议封装 1.1消息的格式 在Unicore协议中，输入和输出的语句被统称为消息。每条消息均为全ASCII字符组成的字符串.  消息的基本格式为： $MSGNAME,data1,data2,data3,…\r\n 所有的消息都以$（0x24）开始，后面紧跟着的是消息名。之后跟有不定数目的参数或数据。消息名与数据之间均以逗号（0x2C）进行分隔。最后，输入的消息可以以’\r’（0x0D）或’\n’（0x0A）或两者的任意组合结束。输出的消息以”\r\n”结束。消息名和参数中的字母均不区分大小写。 某些输入命令的某些参数可以省略（在命令描述中被标记为可选）。这些参数可以为空，即在两个逗号之间没有任何字符。这时如果没有特殊说明，该参数将被忽略，其控制的选项将不做改变。 某些消息名即可以用于输入的命令，也可以用于输出的信息。同样的消息名作为输入时用于设定参数或查询当前的配置。用于输出时则用于输出接收机信息或配置。 1.2数据类型 在Unicore协议中，消息中的数据包含下面几种类型： 字符串（STR） 字符串由最长32个除\r和\n之外的ASCII字符组成，如GPSL1。 无符号整数（UINT） 无符号整数的范围为0~4294967295，其有十进制和十六进制两种表示方法。十进制的无符号整数由0-9的ASCII字符组成。如123，4291075193。十六进制无符号整数以字符h开始，后面紧跟着0-9与A-F组成的字符串，最长8个字符（不含开始的h）。如hE10，hE41BA7C0。 有符号整数（INT） 有符号整数由0-9和负号的ASCII字符组成，其范围为- 2147483648~ 2147483647。如123217754，-245278。 双精度浮点（DOUBLE） 双精度浮点数据由0-9和负号、小数点的ASCII字符组成，其范围为-2^1023~2^1023。如3.1415926，-9024.12367225。 1.3 消息定义 1.3.1 北斗SIM卡查询 消息格式 $BDSIM 例    子 $BDSIM 描    述 查询BD模块SIM卡地址 类    型 输入 无参数 1.3.2 北斗SIM卡查询输出 消息格式 $BDSIM,ID,Frame,BID,Feature,Freq,Level,Flag,Sum 例    子 $BDSIM,250287,0,1001,8,0,1,0,2 描    述 北斗SIM卡查询输出 类    型 输出 参数定义 参数名称 参数类型 参数描述 ID UINT 本机SIM卡地址 Frame UINT 帧号 BID UINT 通播ID Feature UINT 用户特征 Freq UINT 服务频度 Level UINT 通信等级 Flag UINT 加密标志 Sum UINT 下属用户总数 1.3.3 北斗功率查询 消息格式 $BDPOW 例    子 $BDPOW 描    述 查询BD波束功率情况 类    型 输入 无参数 1.3.4 北斗功率查询输出 消息格式 $BDPOW,p0,p1,p2,p3,p4,p5 例    子 $BDPOW,1,4,0,0,1,3 描    述 查询BD波束功率情况输出 类    型 输出 参数定义 参数名称 参数类型 参数描述 px UINT X(0~5) 北斗通信波束信号强度 0 <-158dbW;  1 -156~-157dbw;  2 -154~-155dbw;  3 -152~-153dbw;  4  >-152dbw 1.3.5 北斗短信接收 消息格式 $BDRev,type,SndAddre,Msg 例    子 $BDRev,46,250287,test 描    述 接收北斗短信输出 类    型 输出 参数定义 参数名称 参数类型 参数描述 type STR 通信类别 SndAddre UINT 发信方地址 Msg STR 接收信息内容 1.3.6 北斗短信发送 消息格式 $BDSnd,DestID,DataLen,Msg 例    子 $BDRecv,274256,7,unicore 描    述 接收北斗短信输出 类    型 输入 参数定义 参数名称 参数类型 参数描述 DestID UINT 发送方SIM卡地址 DataLen UINT 发送方信息内容长度(单位：byte) Msg STR 信息发送内容 1.3.7 北斗短信反馈 消息格式 $BDSnd,SndStat 例    子 $BDSnd,Service unreachable! 描    述 北斗短信返回 类    型 输出 参数定义 参数名称 参数类型 参数描述 SndStat STR 反馈内容： 1   OK! 2   Fail! 3 Signal unlockled! 4   Power limited! 5   Service unreachable! 6   Encryption error! 7   CRC error! 8   unknown!  1.3.8 北斗系统自检  消息格式 $BDSCK, freq 例子 $BDSCK, 1 描述 北斗系统自检 类型 输入 参数定义 参数名称 参数类型 参数描述 freq UINT 自检频度 freq为零时代表单次检测； freq非零时代表连续自检, 自检频度为freq，单位秒(sec)。 1.3.9 北斗自检输出 消息格式 $BDSCK, icstat, hdstat, instat,postat 例子 $BDSCK, 0, 1,0, 343343 描述 输出 参数定义 参数名称 参数类型 参数描述 icstat UINT IC卡状态 (1) icstat&0x01 0~用户卡 1~管理卡 (2) icstat&0x20 0~正常 1~异常 hdstat UINT 硬件状态 0 ~硬件正常 1~硬件异常 instat UINT 入站状态 0~抑制状态 1~非抑制状态 posta STR 功率状态 chX(x~1…6)代表第x波束的功率值，具体参考1.3.4节功率输出。 1.3.10 北斗定位申请 消息格式 $BDPos,freq 例子 $BDPos,0 描述 输入 参数定义 参数名称 参数类型 参数描述 freq UINT freq为零代表单次定位； freq非零时代表连续定位，定位频度为freq，单位秒(sec)； 1.3.11 北斗定位信息 消息格式 $BDPos,lat,lon,hta,delth 例子 $BDPos,39.98,116.45,100.12,0.3 描述 输出 参数定义 参数名称 参数类型 参数描述 lat STR 纬度 lon STR 经度 hta STR 高度 delth STR 高度变化（delta-hta） 1.3.12 北斗时间查询 消息格式 $BDTIM,freq 例子 $BDTIM, 0 类型 输入 参数定义 参数名称 参数类型 参数描述 freq UINT freq为零时代表单次时间输出； freq非零时代表连续时间输出，时间输出频度为freq, 单位秒(sec)。 1.3.13 北斗时间输出 消息格式 $BDTIM,year,month,day,hour,minute,second 例子 $BDTIME,2013,8,2,10,30,31 类型 输出 参数定义 参数名称 参数类型 参数描述（北斗时） year UINT 年 month UINT 月 day UNIT 日 hour UINT 时 minute UINT 分 second UINT 秒 1.3.14 北斗结束指令 消息格式 $BDEnd,para 例子 $BDEnd,0 描述 输入 参数定义 参数名称 参数类型 参数描述 para UINT 0~代表结束北斗连续自检申请 1~代表结束北斗连续定位申请 2~代表结束北斗连续时间输出