亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sms.c

?? w77E58開發(fā)的具備藍(lán)牙功能的GPS導(dǎo)航儀
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
#include <w77e58.h>
#include "global.h"
#include "io.h"
#include "timer.h"
#include "serial.h"
#include "gsm.h"



//用戶信息編碼方式 
#define GSM_7BIT        0 
#define GSM_8BIT        4 
#define GSM_UCS2        8      


// 短消息參數(shù)結(jié)構(gòu),編碼/解碼共用 
// 其中,字符串以0結(jié)尾 
#if 1
typedef struct 
{     
	char SCA[16];       // 短消息服務(wù)中心號(hào)碼(SMSC地址)     
	char TPA[16];       // 目標(biāo)號(hào)碼或回復(fù)號(hào)碼(TP-DA或TP-RA) 
	char TP_PID;        // 用戶信息協(xié)議標(biāo)識(shí)(TP-PID)     
	char TP_DCS;        // 用戶信息編碼方式(TP-DCS)     
	char TP_SCTS[16];   // 服務(wù)時(shí)間戳字符串(TP_SCTS), 接收時(shí)用到     
	char TP_UD[161];    // 原始用戶信息(編碼前或解碼后的TP-UD)     
	char index;         // 短消息序號(hào),在讀取時(shí)用到 
} SM_PARAM; 
#else
typedef struct 
{     
	char xdata SCA[16];        //_at_  0x000;          // 短消息服務(wù)中心號(hào)碼(SMSC地址)     
	char xdata TPA[16];        //_at_  0x016;          // 目標(biāo)號(hào)碼或回復(fù)號(hào)碼(TP-DA或TP-RA) 
	char xdata TP_PID;         //_at_  0x032;          // 用戶信息協(xié)議標(biāo)識(shí)(TP-PID)     
	char xdata TP_DCS;         // _at_  0x033;         // 用戶信息編碼方式(TP-DCS)     
	char xdata TP_SCTS[16];    // _at_  0x049;         // 服務(wù)時(shí)間戳字符串(TP_SCTS), 接收時(shí)用到     
	char xdata TP_UD[161];     // _at_  0x064;         // 原始用戶信息(編碼前或解碼后的TP-UD)     
	char xdata index;          // _at_  0x065;         // 短消息序號(hào),在讀取時(shí)用到 
} SM_PARAM; 


#endif

char xdata SCA1[16];        //_at_  0x000;          // 短消息服務(wù)中心號(hào)碼(SMSC地址)     
char xdata TPA1[16];        //_at_  0x016;          // 目標(biāo)號(hào)碼或回復(fù)號(hào)碼(TP-DA或TP-RA) 
char xdata TP_PID1;         //_at_  0x032;          // 用戶信息協(xié)議標(biāo)識(shí)(TP-PID)     
char xdata TP_DCS1;         // _at_  0x033;         // 用戶信息編碼方式(TP-DCS)     
char xdata TP_SCTS1[16];    // _at_  0x049;         // 服務(wù)時(shí)間戳字符串(TP_SCTS), 接收時(shí)用到     
char xdata TP_UD1[161];     // _at_  0x064;         // 原始用戶信息(編碼前或解碼后的TP-UD)     
char xdata index1;          // _at_  0x065;         // 短消息序號(hào),在讀取時(shí)用到 

//char xdata cmd[16]
//char xdata pdu[512];
//char xdata ans[256];       //Read GSM answer buff;   



int  gsmDecode7bit(uchar xdata * pSrc, char xdata * pDst, int xdata nSrcLength); 



/**************************************************************************************************************

   GSM_IO10: L->H-L,H=40-50 ms,wake up MCU,and gsm set IO11 to low.
   GSM_ROW4:              ,Wake up GSM.


   Host to GSM:   check GSM sleep? if yes,Host pull low GSM_ROW4 to low 50 ms,at once send AT command.
**************************************************************************************************************/


void gsmModule_init(void)
{

      GSM_PWON=HIGH;
      delay_ms(5);
      GSM_PWON=LOW;
      delay_ms(200);   //Over 120 ms,M32 power on.
      GSM_PWON=HIGH;
}




/************************************************************************************************
*                   int gsmEncode7bit(const char* pSrc, unsigned char* pDst, int nSrcLength) 
* 7-bit編碼 
* pSrc: 源字符串指針 
* pDst: 目標(biāo)編碼串指針 
* nSrcLength: 源字符串長(zhǎng)度 
* 返回: 目標(biāo)編碼串長(zhǎng)度
***************************************************************************************/
int gsmEncode7bit(char xdata* pSrc, unsigned char xdata* pDst, int xdata nSrcLength) 
{   
      int xdata nSrc;               // 源字符串的計(jì)數(shù)值     
      int xdata nDst;               // 目標(biāo)編碼串的計(jì)數(shù)值    
      int xdata nChar;              // 當(dāng)前正在處理的組內(nèi)字符字節(jié)的序號(hào),范圍是0-7   
      unsigned char xdata nLeft;    // 上一字節(jié)殘余的數(shù)據(jù)    
      // 計(jì)數(shù)值初始化     
      nSrc = 0;     
      nDst = 0;   
 	  
      // 將源串每8個(gè)字節(jié)分為一組,壓縮成7個(gè)字節(jié) 
      // 循環(huán)該處理過(guò)程,直至源串被處理完  
      // 如果分組不到8字節(jié),也能正確處理  
      while(nSrc<nSrcLength) 
      {        
         // 取源字符串的計(jì)數(shù)值的最低3位         
         nChar = nSrc & 7;           
         
		 // 處理源串的每個(gè)字節(jié)      
         if(nChar == 0)        
         {             
           // 組內(nèi)第一個(gè)字節(jié),只是保存起來(lái),待處理下一個(gè)字節(jié)時(shí)使用             
           nLeft = *pSrc;         
         }  
         else  
         {             
           
	       // 組內(nèi)其它字節(jié),將其右邊部分與殘余數(shù)據(jù)相加,得到一個(gè)目標(biāo)編碼字節(jié)             
           *pDst = (*pSrc << (8-nChar))| nLeft;             
           // 將該字節(jié)剩下的左邊部分,作為殘余數(shù)據(jù)保存起來(lái)             
           nLeft = *pSrc >> nChar;       
           // 修改目標(biāo)串的指針和計(jì)數(shù)值 
           pDst++;             
		   nDst++;          
         }             
       
	     
		 // 修改源串的指針和計(jì)數(shù)值         
         pSrc++; 
		 nSrc++;  
      }          
     
      // 返回目標(biāo)串長(zhǎng)度     
      return nDst;  
}      

int gsmEncode8bit(char xdata * pSrc, unsigned char xdata* pDst, int xdata nSrcLength)
{



}

/*****************************************************************************************************
*             int gsmDecode7bit(const unsigned char* pSrc, char* pDst, int nSrcLength) 
*
* 7-bit解碼 
* pSrc: 源編碼串指針 
* pDst: 目標(biāo)字符串指針 
* nSrcLength: 源編碼串長(zhǎng)度 
* 返回: 目標(biāo)字符串長(zhǎng)度 
*******************************************************************************************************/
//int gsmDecode7bit(const unsigned char* pSrc, char* pDst, int nSrcLength) 
int gsmDecode7bit(uchar xdata * pSrc, char xdata * pDst, int xdata nSrcLength) 
{ 
     int xdata nSrc;               // 源字符串的計(jì)數(shù)值     
     int xdata nDst;               // 目標(biāo)解碼串的計(jì)數(shù)值     
     int xdata nByte;              // 當(dāng)前正在處理的組內(nèi)字節(jié)的序號(hào),范圍是0-6     
     unsigned char xdata nLeft;    // 上一字節(jié)殘余的數(shù)據(jù)        
     
     // 計(jì)數(shù)值初始化     
     nSrc = 0;     
	 nDst = 0;    
     // 組內(nèi)字節(jié)序號(hào)和殘余數(shù)據(jù)初始化     
     nByte = 0;     
	 nLeft = 0;    
     // 將源數(shù)據(jù)每7個(gè)字節(jié)分為一組,解壓縮成8個(gè)字節(jié)     
     // 循環(huán)該處理過(guò)程,直至源數(shù)據(jù)被處理完     
     // 如果分組不到7字節(jié),也能正確處理     
     while(nSrc<nSrcLength)     
     {         
       // 將源字節(jié)右邊部分與殘余數(shù)據(jù)相加,去掉最高位,得到一個(gè)目標(biāo)解碼字節(jié)    
       *pDst = ((*pSrc << nByte) | nLeft) & 0x7f;         
       // 將該字節(jié)剩下的左邊部分,作為殘余數(shù)據(jù)保存起來(lái)         
        nLeft = *pSrc >> (7-nByte); 
       // 修改目標(biāo)串的指針和計(jì)數(shù)值         
        pDst++;         
		nDst++;   
       // 修改字節(jié)計(jì)數(shù)值         
        nByte++;              
       // 到了一組的最后一個(gè)字節(jié)         
       if(nByte == 7)         
       {             
          // 額外得到一個(gè)目標(biāo)解碼字節(jié)             
          *pDst = nLeft; 
          // 修改目標(biāo)串的指針和計(jì)數(shù)值             
          pDst++;             
		  nDst++; 
          // 組內(nèi)字節(jié)序號(hào)和殘余數(shù)據(jù)初始化             
          nByte = 0;             
          nLeft = 0;         
       }              
       // 修改源串的指針和計(jì)數(shù)值         
       pSrc++;         
       nSrc++;     
     }          
     *pDst = 0;          
     // 返回目標(biāo)串長(zhǎng)度     
     return nDst; 
} 

//int gsmDecode8bit(const unsigned char* pSrc, char* pDst, int nSrcLength) 
int gsmDecode8bit(uchar xdata * pSrc, char xdata * pDst, int xdata nSrcLength) 
{


}



/***********************************************************************************************
     需要指出的是,7-bit的字符集與ANSI標(biāo)準(zhǔn)字符集不完全一致,在0x20以下也排布了一些可打印字符,但英文字母、
 阿拉伯?dāng)?shù)字和常用符號(hào)的位置 兩者是一樣的。用上面介紹的算法收發(fā)純英文短消息,一般情況應(yīng)該是夠用了。
 如果是法語(yǔ)、德語(yǔ)、西班牙語(yǔ)等,含有 “?”、 “é”這一類字 符,則要按上面編碼的輸出去查表,請(qǐng)參閱GSM 03.38
 的規(guī)定。
***********************************************************************************************/

#if 0


/************************************************************************************************
UCS2編碼是將每個(gè)字符(1-2個(gè)字節(jié))按照ISO/IEC10646的規(guī)定,轉(zhuǎn)變?yōu)?6位的Unicode寬字符。在Windows系統(tǒng)中,特
別是在2000/XP中,可以簡(jiǎn)單地調(diào)用API 函數(shù)實(shí)現(xiàn)編碼和解碼。如果沒(méi)有系統(tǒng)的支持,比如用單片機(jī)控制手機(jī)模塊收
發(fā)短消息,只好用查表法解決了。
Windows 用C實(shí)現(xiàn)UCS2編碼和解碼的算法如下:
*************************************************************************************************/


/*************************************************************************************************
// UCS2編碼 
// pSrc: 源字符串指針 
// pDst: 目標(biāo)編碼串指針 
// nSrcLength: 源字符串長(zhǎng)度 
// 返回: 目標(biāo)編碼串長(zhǎng)度 
**************************************************************************************************/
int gsmEncodeUcs2(const char* pSrc, unsigned char* pDst, int nSrcLength) 
{  
      	   
	   int nDstLength;        // UNICODE寬字符數(shù)目     

	   WCHAR wchar[128];      // UNICODE串緩沖區(qū)          
	   // 字符串-->UNICODE串     
	   nDstLength = ::MultiByteToWideChar(CP_ACP, 0, pSrc, nSrcLength, wchar, 128);  
	  // 高低字節(jié)對(duì)調(diào),輸出     
	  for(int i=0; i<nDstLength; i++)     
	  {         
	    // 先輸出高位字節(jié)
	    *pDst++ = wchar[i] >> 8;  
	    // 后輸出低位字節(jié)         
	    *pDst++ = wchar[i] & 0xff;     
	  }          

	  // 返回目標(biāo)編碼串長(zhǎng)度     
	  return nDstLength * 2; 
}      


/**************************************************************************************************
// UCS2解碼 
// pSrc: 源編碼串指針 
// pDst: 目標(biāo)字符串指針 
// nSrcLength: 源編碼串長(zhǎng)度 
// 返回: 目標(biāo)字符串長(zhǎng)度 
**************************************************************************************************/
int gsmDecodeUcs2(const unsigned char* pSrc, char* pDst, int nSrcLength) 
{     
	 int nDstLength;        // UNICODE寬字符數(shù)目     

	 WCHAR wchar[128];      // UNICODE串緩沖區(qū)          
	 // 高低字節(jié)對(duì)調(diào),拼成UNICODE     
	 for(int i=0; i<nSrcLength/2; i++)     
	 {         
	     // 先高位字節(jié)         
	     wchar[i] = *pSrc++ << 8;              
	     // 后低位字節(jié)         
	     wchar[i]  = *pSrc++;     
	 }          
	 // UNICODE串-->字符串     
	 nDstLength = ::WideCharToMultiByte(CP_ACP, 0, wchar, nSrcLength/2, pDst, 160, NULL, NULL);          
	 // 輸出字符串加個(gè)結(jié)束符         
	 pDst[nDstLength] = '\0';              
	 // 返回目標(biāo)字符串長(zhǎng)度     
	 
	 return nDstLength; 
} 
#endif




/*************************************************************************************************
用以上編碼和解碼模塊,還不能將短消息字符串編碼為PDU串需要的格式,也不能直接將PDU串中的用戶信息解碼為

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费成人av在线播放| 国产视频一区在线观看| 一区二区三区在线免费观看| 国产精品中文欧美| 成人免费在线视频| 欧美一区二视频| 国产不卡视频在线观看| 国产性天天综合网| 欧美在线观看禁18| 国产成人夜色高潮福利影视| 亚洲精品国久久99热| 2024国产精品| 91黄色免费版| 国产传媒日韩欧美成人| 五月婷婷综合激情| 国产精品美女久久久久久2018| 在线不卡的av| 色偷偷一区二区三区| 日产精品久久久久久久性色| 亚洲激情校园春色| 久久久久久久久久久99999| 制服丝袜亚洲网站| 色猫猫国产区一区二在线视频| 国产精品原创巨作av| 日本网站在线观看一区二区三区 | 日本aⅴ免费视频一区二区三区| 久久精品一区二区| 69久久99精品久久久久婷婷| 91国偷自产一区二区开放时间 | 欧美精品一区二区三区在线| 色婷婷精品久久二区二区蜜臀av| 精品一区精品二区高清| 欧美aaaaa成人免费观看视频| 亚洲精品网站在线观看| 亚洲女爱视频在线| 中文字幕av资源一区| 国产日韩欧美在线一区| 欧美成人精品福利| 91精品国产色综合久久| 91精品国产综合久久久蜜臀图片| hitomi一区二区三区精品| 成人黄色av电影| 丰满少妇久久久久久久| 国产成人午夜片在线观看高清观看| 视频一区中文字幕国产| 三级久久三级久久久| 亚洲gay无套男同| 一区二区三区在线观看动漫| 亚洲黄色小视频| 亚洲精品久久7777| 偷拍与自拍一区| 午夜视频在线观看一区| 午夜精品视频在线观看| 午夜日韩在线电影| 亚洲综合色噜噜狠狠| 亚洲久草在线视频| 亚洲一区免费在线观看| 亚洲免费av高清| 亚洲免费观看在线视频| 亚洲中国最大av网站| 亚洲精品国久久99热| 一区二区日韩av| 婷婷综合另类小说色区| 婷婷综合另类小说色区| 三级不卡在线观看| 欧美aⅴ一区二区三区视频| 国产一区二区免费看| 国产91丝袜在线观看| 成人深夜在线观看| 91婷婷韩国欧美一区二区| 色屁屁一区二区| 国产午夜三级一区二区三| 国产精品天天看| 亚洲男帅同性gay1069| 亚洲欧美另类久久久精品| 亚洲va韩国va欧美va精品| 青青草国产成人av片免费| 久久99精品国产麻豆不卡| 国产精选一区二区三区| 国产91丝袜在线18| 91麻豆国产在线观看| 欧美一a一片一级一片| 欧美一级夜夜爽| 久久久久久久久久久久久女国产乱| 亚洲国产成人午夜在线一区| 一区二区三区蜜桃网| 奇米精品一区二区三区在线观看一 | aaa欧美色吧激情视频| 在线视频国内自拍亚洲视频| 欧美一级精品在线| 欧美高清在线精品一区| 亚洲午夜一区二区三区| 久久99热这里只有精品| 99在线精品视频| 欧美一区二区精品| 国产精品久久三| 日韩成人精品在线观看| 国产999精品久久| 欧美人狂配大交3d怪物一区 | 日韩美女视频在线| 日韩一区在线看| 美女在线观看视频一区二区| 顶级嫩模精品视频在线看| 在线观看免费成人| 久久―日本道色综合久久| 亚洲欧美激情视频在线观看一区二区三区| 奇米精品一区二区三区在线观看| 成人午夜精品在线| 91精品国产一区二区| 中文字幕免费不卡在线| 亚洲午夜精品网| 国产成人av自拍| 欧美精三区欧美精三区| 中文在线免费一区三区高中清不卡| 亚洲午夜在线观看视频在线| 国产成人免费视频一区| 91精品国产91久久综合桃花 | 精品国产伦一区二区三区观看方式| 亚洲精品亚洲人成人网在线播放| 激情综合网av| 欧美日韩亚洲综合在线| 久久久久国产精品人| 亚洲午夜一区二区三区| 成人免费高清视频| 精品久久久三级丝袜| 亚洲国产精品尤物yw在线观看| 国产成人在线视频网站| 日韩欧美中文一区| 夜夜夜精品看看| 色综合色狠狠综合色| 中文字幕av一区二区三区免费看| 久久精品久久精品| 一区二区中文字幕在线| 国产乱子伦视频一区二区三区| 日韩午夜在线播放| 午夜影院久久久| 91久久一区二区| 国产欧美精品一区二区色综合| 天天综合网 天天综合色| proumb性欧美在线观看| 久久久久97国产精华液好用吗| 蜜桃一区二区三区四区| 91精品国产品国语在线不卡| 亚洲韩国一区二区三区| 91黄色免费观看| 亚洲一区视频在线| 欧美在线观看视频一区二区 | 久久99国产精品麻豆| 欧美一区二区三区日韩视频| 一区二区三区欧美日韩| 91在线精品一区二区| 国产精品激情偷乱一区二区∴| 懂色av中文一区二区三区| 久久久精品国产99久久精品芒果| 激情都市一区二区| 久久蜜桃一区二区| 奇米在线7777在线精品| 欧美日韩亚洲另类| 偷偷要91色婷婷| 欧美tk丨vk视频| 国产一区二区在线电影| 久久综合久久99| 波多野洁衣一区| 亚洲免费在线看| 欧美性猛交xxxxxx富婆| 亚洲福中文字幕伊人影院| 7777精品伊人久久久大香线蕉| 视频在线在亚洲| 久久影院午夜片一区| 粉嫩久久99精品久久久久久夜| 中文字幕免费不卡在线| 93久久精品日日躁夜夜躁欧美| 亚洲精品乱码久久久久久| 欧美三级在线看| 蜜桃传媒麻豆第一区在线观看| 欧美电影精品一区二区| 国产成人免费视频网站| 亚洲激情在线激情| 3d动漫精品啪啪| 国产精品 欧美精品| 国产视频视频一区| av午夜精品一区二区三区| 国产女同性恋一区二区| 国产99精品在线观看| 国产午夜亚洲精品理论片色戒| 色狠狠一区二区| 日本欧美在线观看| 欧美va亚洲va| 色综合天天在线| 青青草97国产精品免费观看无弹窗版 | 久久综合色8888| 色哟哟一区二区在线观看| 日本最新不卡在线| 亚洲国产高清aⅴ视频| 欧美日韩一级视频| 国产福利精品一区二区| 亚洲综合色网站| 精品不卡在线视频| 国产麻豆成人精品| 一区二区三区欧美亚洲|