在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 &l

本文介绍了如何在C语言中处理AT指令,特别是针对GSM、NBIOT和4G模块的编程。通过将IMEI和IMSI码转换为ASCII码,然后拼接成AT+QLWULDATAEX命令,用于数据上报到easyiot平台。文章提供了一个将数字字符串转换为ASCII的函数,并展示了如何使用这个函数来构建AT指令。
最低0.47元/天 解锁文章
1061

被折叠的 条评论
为什么被折叠?



