从gprs上传过来的ID号上传协议中如何正确得到id号?

xiuzhang_2000   2009-8-6 15:53 楼主
gprs模块连接服务器后发送自己的id号, ID号的格式为:AAH+01H+ID(10 byte)+LRC(1 byte)+0DH

我测试发现传递到服务器显示为:?8110001115?
如何获取:8110001115(为实际id)
刚开始我这样理解:id号的格式为AAH+01H+ID(10 byte)+LRC(1 byte)+0DH
那么我就从第三个字符开始截取10个字符就可以得到id号,但是发现获取的id不正确,结果是:?811000

回复评论 (9)

用byte数组存放接收到的内容,数组从0开始的,所以从数组的第2个元素开始,取10byte就是ID了。
点赞  2009-8-6 16:23
由于0xAA和0x01都是不可见字符,如果用字符串截取,可能有问题。
点赞  2009-8-6 16:26
引用: 引用 2 楼 liuxu2559 的回复:
由于0xAA和0x01都是不可见字符,如果用字符串截取,可能有问题。

具体应该如何解决?
点赞  2009-8-6 16:48
服务器软件你是用什么语言写的啊?
点赞  2009-8-6 16:53
把接收到的数据放在byte数组Arr,

  1. string ID="";
  2. for(int i=0;i<10;i++)
  3. {
  4.     ID=ID+Arr[i+2];
  5. }
点赞  2009-8-6 16:55
引用: 引用 4 楼 liuxu2559 的回复:
服务器软件你是用什么语言写的啊?

用c语言写的!
点赞  2009-8-6 17:11
  1. ;
  2. memcpy(ID,&RecData[2],10);  /*RecData是接收到的unsigned char 数组*/
点赞  2009-8-6 17:20
汗。。完全是语法问题。
点赞  2009-8-8 14:49

问题解决了!
点赞  2009-8-8 18:25
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复