gsm編碼_pcm編碼是( )編碼_big5編碼轉換成unicode編碼

飛來科技  發布時間:2019-10-27 13:04:07

本文關鍵詞:gsm編碼

gsm編碼_pcm編碼是( )編碼_big5編碼轉換成unicode編碼

2018年03月16日 綜合 共 1357字 字號 評論關閉

gsm編碼_big5編碼轉換成unicode編碼_pcm編碼是( )編碼

通過ASCII碼對GSM PDU 7bit短信編碼

big5編碼轉換成unicode編碼_gsm編碼_pcm編碼是( )編碼

int8_t Gsm_Encode7bitFromAscii(char* pDest,uint16_t dSize, uint16_t* pLen,const char* pSrc,uint16_t sSize) 
{ 
  uint16_t nSrc;         
	uint16_t nDst;        
  uint16_t nChar;    
	uint8_t nLeft;
	uint16_t nSrcLength=sSize; 
	
	nSrc = 0;     
	nDst = 0;     
	while(nSrc<nSrcLength)     
	{   
		
		nChar = nSrc & 7;           
		if(nChar == 0)         
		{ 
		  nLeft = *pSrc;         
		}         
		else         
		{ 
      *pDest = (*pSrc << (8-nChar)) | nLeft;              
			nLeft = *pSrc >> nChar; 
      pDest++;             
		  nDst++;         
		}         
    pSrc++; 
	  nSrc++;     
	}     
  return nDst; 
}     

gsm編碼_pcm編碼是( )編碼_big5編碼轉換成unicode編碼

GSM PDU 7bit短信解碼:

pcm編碼是( )編碼_big5編碼轉換成unicode編碼_gsm編碼

/*
*函數功能:GSM PDU 7bit短信解碼
*輸入參數:pDest:存放ASCII碼的目的地址指針,
           dSize:存放ASCII碼的目的地址大小
           pSrc: PUD 7BIT 原地址
           sSize:原地址大小
*返回參數:0:轉換成功,-1:轉換失敗
*函數說明:
*/
int8_t Gsm_Decode7bitToASCII(char* pDest,uint16_t dSize, uint16_t* pLen,const char* pSrc,uint16_t sSize) 
{ 
   uint16_t nSrc,nDst;        
   uint16_t nByte;      
   uint8_t nLeft;  
   uint16_t nSrcLength;
   uint8_t ui8Array[3];
   uint8_t ui8Addr = 0;
	
	/*檢測數據有效性*/
	if((pDest == NULL)||(dSize == 0)||(pSrc == NULL)||(sSize == 0)||(pLen == NULL))
		return -1;
	
	/*如果目的地址空間不足,則直接返回錯誤*/
	if(dSize < (sSize*8/7+1)*2)
		return -1;
	
	nSrc = 0;     
	nDst = 0;     
        nByte = 0;     
	nLeft = 0;   
       nSrcLength=sSize;  
	
        while(nSrc<nSrcLength)     
	{ 
          ui8Array[ui8Addr] = (((unsigned char)(*pSrc) << nByte) | nLeft) & 0x7f;       
          nLeft = (unsigned char)(*pSrc)>> (7-nByte);     
          ui8Addr++;         
	  nDst++;     
          nByte++;     
             if(nByte == 7)         
		{ 
			if(ui8Addr==2)
			{
				ui8Addr = 0;
				*pDest++ = AsciiToHex(ui8Array[0],ui8Array[1]);
			}
			else if(ui8Addr>2)
			{
				return -1;
			}
			
      ui8Array[ui8Addr] = nLeft;     
      ui8Addr++;             
			nDst++;     
      nByte = 0;             
		  nLeft = 0;         
		}
		if(ui8Addr==2)
		{
			ui8Addr = 0;
			*pDest++ = AsciiToHex(ui8Array[0],ui8Array[1]);
		}
		else if(ui8Addr>2)
		{
			return -1;
		}		
         pSrc++;         
	  nSrc++;     
	}     
  *pLen = nDst; 
  return 0; 
} 

【上篇】字符串 處理的幾個方法

【下篇】STM32 ADC用到的 抗脈沖濾波算法

本文來自互聯網,由機器人自動采編,文章內容不代表本站觀點,請讀者自行辨別信息真偽,如有發現不適內容,請及時聯系站長處理。

    相關閱讀
    安徽快三300期走势