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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? uartcomm.c.bak

?? 用于小商品消費的SMS消費機程序
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
#include <api.h>
#include <console.h>
//#include <string.h>
//#include <ctype.h>
#include <SMS.h>

//MC35 state
#define GSM_POWER_OFF	0 
#define GSM_POWER_ON	1
#define GSM_CONFIGURED	2

unsigned short GSM_State = GSM_POWER_OFF; 

#define MAX_BUF_SIZE 1024

extern unsigned char gcCommMsgRow;
extern unsigned char CenterNo[12];
extern unsigned char SMSCenterNo[20];


static unsigned short String2Bytes(const unsigned char* pSrc, unsigned char* pDst, unsigned short nSrcLength)
{
        unsigned short i;
 
 for(i=0; i<nSrcLength; i+=2)
 {
  //輸出高4位
  if(*pSrc>='0' && *pSrc<='9')
   *pDst = (*pSrc - '0') << 4;
  else
   *pDst = (*pSrc - 'A' + 10) << 4;
  pSrc++;
 
  //輸出低4位
  if(*pSrc>='0' && *pSrc<='9')
   *pDst |= *pSrc - '0';
  else
   *pDst |= *pSrc - 'A' + 10;
  pSrc++;
  pDst++;
 }
 
 //返回目標數據長度
 return nSrcLength / 2;
}

//---------------------------------------------------------------------------
// 發送短消息
// pSrc: 源PDU參數指針
//---------------------------------------------------------------------------
unsigned char Send_SMS1(const SMS_Type *SMS)
{
 unsigned short nPduLength;      //PDU串長度
 unsigned char  nSmscLength;     //SMSC串長度
 unsigned char  Cmd[16], Pdu[256];
 
 nPduLength = Encode_PDU(SMS, Pdu); //根據PDU參數,編碼PDU串
 strcat(Pdu, "\x01a");  //以Ctrl-Z結束
 
 String2Bytes(Pdu, &nSmscLength, 2); //取PDU串中的SMSC信息長度
 nSmscLength++;  //加上長度字節本身
 
 //命令中的長度,不包括SMSC信息長度,以數據字節計
 sprintf(Cmd, "AT+CMGS=%d\r", nPduLength / 2 - nSmscLength); //生成命令
        Send_AT_Command(Cmd);     //先輸出命令串
        if(UART_wait_str("\r\n> ", 3000) == _true)
 {
                Send_AT_Command(Pdu);     //得到肯定回答,繼續輸出PDU串
                if(UART_wait_str("+CMGS:", 9000) == _true)
   return _true;
 }
 return _false;
}


/*
 * 斷開連接
 */
void UART_disconnect()
{
	typ_UART_stat_word Ustat;
	
//	clr_scr();	
//	move_cursor(0,0);
//	puts("UART_receive");
//	getch();

	Ustat.l_word = UART_stat();
	if (Ustat.bits.UART_on)
	{
		UART_init(UART_OFF);
		sys_msg(SM_GOTO_SLEEP);
	}
}

/* 
 * calc checksun as tcp/ip checksun
 */
unsigned short cal_chksum(const void *addr, int len)
{      
       int nleft=len;
       int sum=0;
       unsigned short *w= (unsigned short *)addr;
       unsigned short answer=0;

       while(nleft>1)
       {       sum+=*w++;
               nleft-=2;
       }
       if( nleft==1)
       {       *(unsigned char *)(&answer)=*(unsigned char *)w;
               sum+=answer;
       }
       sum=(sum>>16)+(sum&0xffff);
       sum+=(sum>>16);
       answer=~sum;
       return answer;
}
/*
// delay subroutine:
void delay_n_ms(int mscnt) {
  	for (;mscnt > 0; mscnt--)
    		delay_1ms();
}
*/
// puts via UART
void UART_puts(unsigned char *buf, int len) {
  	for(; len > 0; len--) {
    		while(UART_send_char(*buf));
    		buf++;
  	}
}

/*
 * 握手建立連接(當作發起端)
 */
 /*
short UART_connect()
{
	typ_msg_word msg_buffer;
        typ_UART_stat_word Ustat;
	unsigned char recBuf[MAX_BUF_SIZE];
	unsigned char sendBuf[6];
	unsigned short checksum=0,recLen=0; 
		
	SPT_set(64);
	UART_disconnect();
	
	msg_buffer.s_word = sys_msg(SM_STAY_AWAKE);
		
	UART_init(UART_ON | UART_232_ON | UART_8_DATA_BITS | UART_BAUD_115200);
	UART_fcntl(UART_fcntl(UART_F_INQ) | UART_F_NO_CTS);
	delay_n_ms(3);
	
	//握手數據幀: 一位的起始位:  0xBE 
        //             兩位的長度:    0x0006
        //             一位的握手數據:0xAA
        //             兩位的校驗位
        sendBuf[0] = 0xBE;
        sendBuf[1] = 0x00;
        sendBuf[2] = 0x06;
        sendBuf[3] = 0xAA;
        checksum = cal_chksum((void *)sendBuf, 4);
	sendBuf[4] = checksum >> 8;
	sendBuf[5] = checksum & 0xFF;
	UART_puts(sendBuf,6);
	
        SPT_set(64 );
        while(1)
	{
		msg_buffer.s_word = sys_msg(SM_STAY_AWAKE);
		if (msg_buffer.bits.comm_data)
			break;
		if (msg_buffer.bits.time_out)
		{
			UART_disconnect();
			return 1;
		}
	}
	
        //握手回復幀: 一位的起始位:0xBE
        //             兩位的長度:0x0001 
        //             一位的握手數據:0x55
        //             兩位的校驗位
        memset( (void*)recBuf, 0, sizeof(recBuf) );
	do {
		recBuf[recLen++] = (unsigned char)UART_get_char();
		if( 1 == recLen && recBuf[0] != 0xBE )
			recLen = 0;
		else if ( recLen > 3 && recLen == ( (((unsigned short)recBuf[1])<<8) + recBuf[2] ) )
			break;
		else if ( recLen == 6 )
			break;
		Ustat.l_word = UART_stat();
        } while (Ustat.bits.buff_data_available);
        
        if ( recLen != 6 || recBuf[0] != 0xBE || recBuf[3] != 0x55 || cal_chksum( (unsigned short *)recBuf,recLen) )
        {
 		UART_disconnect();       
        	return 3;
        }
	
	return 0;
}
*/
/*
 * 握手建立連接(當作響應端)
 */
short UART_open()
{
	typ_msg_word msg_buffer;
        typ_UART_stat_word Ustat;
	unsigned char recBuf[MAX_BUF_SIZE];
	unsigned char sendBuf[6];
	unsigned short checksum=0,recLen=0; 
		
	SPT_set(64);
	UART_disconnect();
	
	msg_buffer.s_word = sys_msg(SM_STAY_AWAKE);
	
	UART_init(UART_ON | UART_232_ON | UART_8_DATA_BITS | UART_BAUD_115200);
	UART_fcntl(UART_fcntl(UART_F_INQ) | UART_F_NO_CTS);
	delay_n_ms(3);
	
	SPT_set(64);
/*	
	while(1)
	{
		msg_buffer.s_word = sys_msg(SM_STAY_AWAKE);
		if (msg_buffer.bits.comm_data)
			break;
		if (msg_buffer.bits.time_out)
		{
			UART_disconnect();
			return 1;
		}
	}

        memset( (void*)recBuf,0,sizeof(recBuf) );
	do {
		recBuf[recLen++] = (unsigned char)UART_get_char();
		if( 1 == recLen && recBuf[0] != 0xBE )
			recLen = 0;
		else if ( recLen > 3 && recLen == ( (((unsigned short)recBuf[1])<<8) + recBuf[2] ) )
			break;
		else if (recLen == 6)
			break;
		Ustat.l_word = UART_stat();
        } while (Ustat.bits.buff_data_available);        
        
        if ( recLen != 6 || recBuf[0] != 0xBE || recBuf[3] != 0xAA || cal_chksum((unsigned short *)recBuf,recLen) )
        {
        	sendBuf[0] = 0xBE;
        	sendBuf[1] = 0x00;
        	sendBuf[2] = 0x06;
		sendBuf[3] = 0xFF;
		checksum = cal_chksum((void *)sendBuf, 4);
		sendBuf[4] = checksum >> 8;
		sendBuf[5] = checksum & 0xFF;
		UART_puts(sendBuf,6);
		UART_disconnect();
        	return 2;	
        }
        else
        {
        	sendBuf[0] = 0xBE;
        	sendBuf[1] = 0x00;
        	sendBuf[2] = 0x06;
		sendBuf[3] = 0x00;
		checksum = cal_chksum((void *)sendBuf, 4);
		sendBuf[4] = checksum >> 8;
		sendBuf[5] = checksum & 0xFF;
		UART_puts(sendBuf,6);
		return 0;	
	}
	*/
}

/*
 * 發送數據
 * 參數 in: sendBuf  要發送的數據區(不包括一位開始位、2位長度位和2位校驗位)
 *        : sendLen  要發送的數據區的長度(byte)
 *
 * 返回: 0 發送成功  -1 發送失敗
 */
short UART_send(const void *sendBuf, unsigned short sendLen)
{
	typ_msg_word msg_buffer;
        typ_UART_stat_word Ustat;	
	unsigned char pBuf[MAX_BUF_SIZE];
	unsigned char recBuf[MAX_BUF_SIZE];
	unsigned short checksum=0,recLen=0; 
	
	if(sendLen + 5 > MAX_BUF_SIZE)
		return -1;
	
	Ustat.l_word = UART_stat();
	if (!Ustat.bits.UART_on)
		return 1;	
	move_cursor(0,gcCommMsgRow);
	puts("發送數據...");
	if(gcCommMsgRow<6)
		gcCommMsgRow += 2;
	else
		gcCommMsgRow = 2;
	
	pBuf[0] = 0xBE;
	pBuf[1] = (sendLen+5) >> 8;
	pBuf[2] = (sendLen+5) & 0xFF;	
	
	memcpy( (void *)&pBuf[3], sendBuf, sendLen );
	
	checksum = cal_chksum( (unsigned short *)pBuf, sendLen+3);
	pBuf[sendLen+3] = checksum >> 8;
	pBuf[sendLen+4] = checksum & 0xFF;
	
	UART_puts( pBuf, sendLen+5);
	
	SPT_set(64);	
	//等到確認數據到來
	while(1)
	{
		msg_buffer.s_word = sys_msg(SM_STAY_AWAKE);
		if (msg_buffer.bits.comm_data)
			break;
		if (msg_buffer.bits.time_out)
			return 2;
	}
	
        memset( (void*)recBuf,0,sizeof(recBuf) );
	do {
		recBuf[recLen++] = (unsigned char)UART_get_char();
		if( 1 == recLen && recBuf[0] != 0xBE )
			recLen = 0;
		else if ( recLen > 3 && recLen == ( (((unsigned short)recBuf[1])<<8) + recBuf[2] ) )
			break;
		else if (recLen == 6)
			break;
		Ustat.l_word = UART_stat();
        } while (Ustat.bits.buff_data_available);
        
        if ( recLen != 6 || recBuf[0] != 0xBE || recBuf[3] != 0x00 || cal_chksum((unsigned short *)recBuf,recLen) )
        	return 3;
        		
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久综合狠狠综合久久| 日本三级亚洲精品| 日本一区二区久久| 中文字幕精品三区| 久久日一线二线三线suv| 日韩欧美中文字幕精品| 日韩一区二区三区视频| 日韩精品一区二区三区视频在线观看| 欧美亚洲另类激情小说| 欧美视频日韩视频| 欧美日本国产视频| 欧美性生活一区| 欧美日韩一区视频| 欧美一区二区福利视频| 欧美一区二区三区在| 欧美成人伊人久久综合网| 2023国产精品| 中文字幕一区二区三中文字幕| 中文字幕在线不卡| 亚洲福利一区二区| 九色综合国产一区二区三区| 国产高清精品网站| 日本电影欧美片| 欧美日韩成人综合天天影院 | 国产精品天美传媒沈樵| 国产精品免费人成网站| 一区二区三区久久| 日本欧美一区二区在线观看| 国产成人免费视频一区| 色婷婷精品大在线视频| 日韩一区二区三区免费观看| 国产欧美日韩亚州综合 | 国模大尺度一区二区三区| 国产成人亚洲综合a∨婷婷图片| 成人国产电影网| 欧美日韩一二三区| 国产欧美日韩在线| 喷水一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美日韩一区二区三区免费看| 精品国产麻豆免费人成网站| 亚洲色图一区二区三区| 久久国产精品99精品国产| 成人黄色777网| 欧美伦理影视网| 国产精品色婷婷久久58| 日日摸夜夜添夜夜添精品视频| 国产精品自产自拍| 欧美麻豆精品久久久久久| 中文字幕在线观看一区| 久草中文综合在线| 欧美日韩国产另类不卡| 成人欧美一区二区三区在线播放| 奇米一区二区三区| 精品视频在线免费看| 成人欧美一区二区三区小说| 国产一区二区在线影院| 一本在线高清不卡dvd| 久久久久九九视频| 美女任你摸久久| 欧美日韩色一区| 亚洲精品欧美激情| 高清不卡一区二区在线| 91精品一区二区三区在线观看| 亚洲欧美另类小说| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产91色综合久久免费分享| 欧美日韩aaaaaa| 亚洲一区二区成人在线观看| 99久久久免费精品国产一区二区| 精品国产三级电影在线观看| 另类成人小视频在线| 欧美日韩精品欧美日韩精品| 一区二区三区中文字幕电影| www.66久久| 亚洲欧美日韩在线不卡| 久久这里只精品最新地址| 成人av网站大全| av电影在线观看完整版一区二区| 欧美精品一区二区在线观看| 久久成人免费电影| 久久亚洲春色中文字幕久久久| 欧美综合在线视频| 国产精品婷婷午夜在线观看| 成人av综合一区| 国产精品水嫩水嫩| 99re这里都是精品| 一级做a爱片久久| 欧美日韩欧美一区二区| 日韩国产在线一| 精品99久久久久久| 国产精品99久久久久久宅男| 欧美激情综合网| 不卡欧美aaaaa| 亚洲一区二区三区国产| 6080午夜不卡| 国产激情视频一区二区在线观看| 中文av一区二区| 欧美性色综合网| 麻豆精品视频在线| 亚洲欧美在线aaa| 欧美另类videos死尸| 精品中文字幕一区二区| 自拍偷拍欧美激情| 欧美老女人在线| 国产成人免费视频 | 91麻豆国产在线观看| 亚洲一区二区三区在线播放| 欧美高清视频不卡网| 韩国理伦片一区二区三区在线播放| 国产欧美一区二区三区沐欲| 91免费国产在线观看| 日本aⅴ免费视频一区二区三区| 精品国产青草久久久久福利| 色综合久久综合| 另类小说视频一区二区| 亚洲理论在线观看| 久久伊人中文字幕| 欧美色男人天堂| 福利电影一区二区三区| 天天做天天摸天天爽国产一区 | jizzjizzjizz欧美| 久久国产精品一区二区| 亚洲主播在线播放| 国产精品视频第一区| 欧美大片在线观看| 欧美视频一区二区| 99久久99久久久精品齐齐| 久久国产麻豆精品| 亚洲成人激情自拍| 亚洲乱码精品一二三四区日韩在线 | 国产91丝袜在线播放九色| 婷婷开心激情综合| 亚洲精选视频免费看| 国产日韩欧美激情| 久久综合丝袜日本网| 欧美精品1区2区3区| 日本韩国一区二区三区视频| 成人av免费在线| 国产一区二区成人久久免费影院 | 国内外精品视频| 日韩av一区二区在线影视| 亚洲激情图片qvod| 亚洲三级电影全部在线观看高清| 国产日韩在线不卡| 久久精品人人做人人综合| 91精品国产综合久久精品app | 视频一区视频二区中文| 一区二区视频在线| 一区二区在线观看视频在线观看| 国产精品乱码人人做人人爱| 国产亚洲欧美中文| 国产欧美日韩视频一区二区| 久久久精品国产免大香伊| 精品欧美乱码久久久久久1区2区| 4438x亚洲最大成人网| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日韩不卡在线| 精品视频1区2区| 在线不卡一区二区| 欧美一区二区在线免费观看| 欧美区在线观看| 在线观看91精品国产麻豆| 制服视频三区第一页精品| 日韩一区二区三区av| 欧美成人性战久久| 国产午夜精品一区二区三区嫩草| 国产清纯白嫩初高生在线观看91| 欧美激情艳妇裸体舞| 亚洲三级理论片| 天天综合网 天天综合色| 蜜桃一区二区三区在线观看| 精品综合久久久久久8888| 成人美女在线视频| 欧美撒尿777hd撒尿| 欧美成人午夜电影| 亚洲国产精品精华液ab| 亚洲免费观看在线视频| 日韩av电影免费观看高清完整版| 国产又黄又大久久| www.欧美日韩| 欧美疯狂性受xxxxx喷水图片| 日韩午夜精品电影| 国产精品福利电影一区二区三区四区 | 青青草伊人久久| 东方aⅴ免费观看久久av| 91黄色免费网站| 欧美tk丨vk视频| 亚洲欧洲www| 极品尤物av久久免费看| 色综合久久天天| 精品福利二区三区| 一区二区激情视频| 韩国欧美国产一区| 在线精品亚洲一区二区不卡| 精品久久久久99| 亚洲一区在线电影| 成人爽a毛片一区二区免费| 在线观看免费视频综合| 久久综合99re88久久爱|