C语言实现语言实现AT指令指令ASCII码的拼接处理流程码的拼接处理流程
今天小编就为大家分享一篇关于C语言实现AT指令ASCII码的拼接处理流程,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起
跟随小编来看看吧
在GSM模块、NBIOT模块、4G模块的C/C++编程当中,很多这样的模块已经做成了标准的AT指令集,难免涉及到字符串的操作,比如拆分,拼接成一个AT指令。
众所周知,AT指令我感觉太恶心,为啥要设计出格式如此复杂的指令发送和回复?不过既然有标准,那肯定也有应对方法。
最近在使用NBIOT---BC28模块,我的任务是将IMEI码与IMSI码读出来后,利用AT指令将其拼接起来后发到easyiot平台,如图所示:
最终我要在下位机上实现发送该命令将数据上报。
AT+QLWULDATAEX=57,01F00035000150FFFFFFCE3436303131313137343535363734353836373732363033303036393336350000016651A049580100040200013191,0x0100
//设备消息上报
程序源码实现:程序源码实现:
首先需要将IMEI和IMSI码的字符串中的字符全部转换为ASCII码,我们用到这个函数:
//将字符串(只包含数字)全部转换成ascii
int strnumber_to_asciistr(char *dest,const char *src,int len)
{
int i = 0 ;
if(0 == len || NULL == src || NULL == dest)
return -1;
else
{
for(i = 0 ; i < len ; i++,src++)
{
if(*src < '0' || *src > '9')
return -2 ;
*dest++ = "0123456789"[*src >> 4];
*dest++ = "0123456789"[*src & 0x0f];
}
*dest = ' ';
return 0 ;
}
}
该函数源码由我们群的一个资深软件工程师提供,再经过参考和修改而成,主要的作用如我所说: