最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)AT指令ASCII碼的拼接處理流程

 更新時間:2018年12月14日 11:33:07   作者:Engineer-Bruce_Yang  
今天小編就為大家分享一篇關于C語言實現(xiàn)AT指令ASCII碼的拼接處理流程,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

在GSM模塊、NBIOT模塊、4G模塊的C/C++編程當中,很多這樣的模塊已經(jīng)做成了標準的AT指令集,難免涉及到字符串的操作,比如拆分,拼接成一個AT指令。

眾所周知,AT指令我感覺太惡心,為啥要設計出格式如此復雜的指令發(fā)送和回復?不過既然有標準,那肯定也有應對方法。

最近在使用NBIOT---BC28模塊,我的任務是將IMEI碼與IMSI碼讀出來后,利用AT指令將其拼接起來后發(fā)到easyiot平臺,如圖所示:

最終我要在下位機上實現(xiàn)發(fā)送該命令將數(shù)據(jù)上報。

AT+QLWULDATAEX=57,01F00035000150FFFFFFCE3436303131313137343535363734353836373732363033303036393336350000016651A049580100040200013191,0x0100 //設備消息上報

程序源碼實現(xiàn):

首先需要將IMEI和IMSI碼的字符串中的字符全部轉換為ASCII碼,我們用到這個函數(shù):

//將字符串(只包含數(shù)字)全部轉換成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 = '\0';
 return 0 ;
 }
}

該函數(shù)源碼由我們?nèi)旱囊粋€資深軟件工程師提供,再經(jīng)過參考和修改而成,主要的作用如我所說:

比如傳入一個src字符串為:0123456789,那么相應的dest為30313233343536373839,前提是dest有足夠的內(nèi)存空間。

接下來實現(xiàn)源碼,傳入任意的IMSI碼與IMEI碼,瞬間轉化成可以發(fā)送的AT指令:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//將字符串(只包含數(shù)字)全部轉換成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 = '\0';
 return 0 ;
 }
}
void Send_Data_To_easyiot(char *__imsi,char *__imei,int property ,int status)
{
  char nb_code_buf[30] = {0};
 char nb_code_buf1[30] = {0};
 char cmd_buf[200] = {0};
 u8 serial = 0 ;
 u8 status_bit = 0 ;
  //IMSI整體轉ASCII 
 strnumber_to_asciistr(nb_code_buf,imei,15);
  //IMEI整體轉ASCII 
 strnumber_to_asciistr(nb_code_buf1,imsi,15);
 if(property == 1)
 serial = 2 ;
 else 
 serial = 1 ;
 if(status == 0)
 status_bit = 0x3A;
 else 
 status_bit = 0x3B;
 sprintf(cmd_buf,"AT+QLWULDATAEX=57,01F00035000150FFFFFFCE%s%s000001667A5DF5700%d00040%d0001%d%x,0x0100",nb_code_buf,nb_code_buf1,serial,status,status+30,status_bit);
 printf("拼接AT指令::%s\n",cmd_buf);
}
int main(void)
{
 int i ;
 char *_imei = "460111174556744";
 char *_imsi = "867726030069368";
 char imei[31];
 char imsi[31];
 char cmd_buf[150];
 char value = 0 ;
 int property = 0;
 int status = 1 ;
 printf("原來的imei:%s\n",_imei); 
 printf("原來的imsi:%s\n",_imsi); 
 Send_Data_To_easyiot(_imsi,_imei,1,1);
 return 0; 
} 

運行結果:

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接

相關文章

  • 詳解C++?中?shared_ptr?weak_ptr

    詳解C++?中?shared_ptr?weak_ptr

    shared_ptr?是一個標準的共享所有權的智能指針,允許多個指針指向同一個對象,定義在?memory?文件中,命名空間為?std,這篇文章主要介紹了C++?中?shared_ptr?weak_ptr,需要的朋友可以參考下
    2022-07-07
  • C語言關鍵字之a(chǎn)uto register詳解

    C語言關鍵字之a(chǎn)uto register詳解

    這篇文章主要為大家介紹了C語言關鍵字之a(chǎn)uto register,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 深入解析C++編程中的純虛函數(shù)和抽象類

    深入解析C++編程中的純虛函數(shù)和抽象類

    這篇文章主要介紹了深入解析C++編程中的純虛函數(shù)和抽象類,是C++入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • C語言 哈希查找詳解(哈希表的創(chuàng)建、處理沖突、查找等)

    C語言 哈希查找詳解(哈希表的創(chuàng)建、處理沖突、查找等)

    哈希表是一種非常重要的數(shù)據(jù)結構,并在大量的計算機科學和工程應用中發(fā)揮重要作用,了解哈希表的原理和實現(xiàn)方式,將有助于我們更好地理解這個數(shù)據(jù)結構及如何應用它來解決實際問題,這篇文章主要介紹了C語言 哈希查找(哈希表的創(chuàng)建、處理沖突、查找等),需要的朋友可以參考下
    2024-01-01
  • QT實現(xiàn)QMessageBox中文按鈕示例詳解

    QT實現(xiàn)QMessageBox中文按鈕示例詳解

    這篇文章主要為大家詳細介紹了QT實現(xiàn)QMessageBox中文按鈕的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-11-11
  • 淺析C++ 數(shù)據(jù)類型

    淺析C++ 數(shù)據(jù)類型

    這篇文章主要介紹了C++ 數(shù)據(jù)類型的相關資料,幫助大家更好的理解和學習c++,感興趣的朋友可以了解下
    2020-08-08
  • 從匯編看c++中多態(tài)的應用

    從匯編看c++中多態(tài)的應用

    本篇文章是對c++中多態(tài)的應用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++實現(xiàn)圖的鄰接矩陣存儲和廣度、深度優(yōu)先遍歷實例分析

    C++實現(xiàn)圖的鄰接矩陣存儲和廣度、深度優(yōu)先遍歷實例分析

    這篇文章主要介紹了C++實現(xiàn)圖的鄰接矩陣存儲和廣度、深度優(yōu)先遍歷,實例分析了C++實現(xiàn)圖的遍歷技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C語言源碼實現(xiàn)停車場管理系統(tǒng)

    C語言源碼實現(xiàn)停車場管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言源碼實現(xiàn)停車場管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C語言編程PAT乙級學習筆記示例分享

    C語言編程PAT乙級學習筆記示例分享

    這篇文章主要為大家介紹了C語言編程PAT乙級學習筆記實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05

最新評論

思茅市| 虹口区| 霸州市| 军事| 博乐市| 崇仁县| 盐池县| 海晏县| 遂平县| 黄平县| 凌海市| 兰考县| 家居| 洞头县| 桂林市| 白水县| 体育| 建瓯市| 上蔡县| 都江堰市| 濉溪县| 晋州市| 武乡县| 贵德县| 邵阳县| 鱼台县| 沅陵县| 曲阜市| 扎鲁特旗| 南城县| 灌南县| 漠河县| 松江区| 固原市| 铜陵市| 镇安县| 清新县| 白玉县| 黄石市| 栾城县| 修武县|