⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gprs.c

📁 一個用c編程的gprs發送簡訊程式,可設定手機號碼與簡訊發送,簡訊使用UCS1編碼格式
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <ctype.h>
#include <string.h>
#include <limits.h>
#include <termios.h>
#include <sys/signal.h>
#include <sys/time.h>
#include <sys/select.h>
#include <sys/types.h>
#include <asm/io.h>

int fd;

int init_serial(int BAUDRATE,char *MODEMDEVICE){
   		struct termios options;
  		fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY | O_NDELAY);
  		fcntl(fd, F_SETFL, 0);
  		tcgetattr(fd, &options);
  		cfsetospeed(&options,BAUDRATE);    //add ok!
  		options.c_cflag |= (BAUDRATE | CS8 | CLOCAL | CREAD);  //8-n-1 && baudrate
  		options.c_lflag=0;
  		options.c_cc[VTIME]=1;
  		options.c_cc[VMIN]=7;    //wait 6 signal to read
  		options.c_lflag &= (ICANON | ECHO | ECHOE | ISIG); 
  		options.c_iflag &= ( IGNPAR | ICRNL);
  		options.c_oflag &= OPOST; 
  		tcflush(fd,TCIFLUSH);
  		tcsetattr(fd, TCSANOW, &options);
  		system("chmod a+rw /dev/ttyS0");
  		system("chmod a+rw /dev/ttyS1");
  		return fd;
}
	
void PrintHEX(unsigned char ch){
	unsigned char HighBit;
	unsigned char HEXBit[2];

	HighBit=ch/16;
	if(HighBit>9)HighBit=HighBit+7;   
	HEXBit[0]=0x30+HighBit;        //0x30 chang to 30

	ch=ch%16;
	if(ch>9)ch=ch+7;
	HEXBit[1]=0x30+ch;
	HEXBit[2]=0x00;
	printf("%s ",HEXBit);
}

int main(){

	int res,count,count1;

	char cmgf[10]={'a','t','+','c','m','g','f','=','0',0x0d};
	char cmgs[11]={'a','t','+','c','m','g','s','=','2','6',0x0d};
	//char pn[12]={'8','8','9','6','0','1','3','3','5','6','7','4'};
	char TP[8]={'0','0','0','8','0','0','0','C'};
	char meg[24]={'5','B','B','6','4','E','2','D','7','6','7','C','7','5','1','F','7','0','6','B','7','0','7','D'};
	char header[10]={'0','0','1','1','0','0','0','C','9','1'};
	char pn[12]={'8','8','9','6','7','8','0','3','8','3','8','1'};
	//char TP[8]={'0','0','0','8','0','0','0','C'};
	//char meg[24]={'5','B','B','6','4','E','2','D','7','6','7','C','7','5','1','F','7','0','6','B','7','0','7','D'};
	char ctrlz[1]={0x1A};
	
	char buf1[255],buf2[255];

	bzero(buf1,255);	
	bzero(buf2,255);

	printf("no open ttys1\n");
	fd = init_serial(B57600,"/dev/ttyS1");
	printf("open ttys1\n");
	if(fd<0)printf("Open RS232 fail\n");

//-----------------------------------------------------------------------------------------------------------
	write(fd,cmgf,sizeof(cmgf));

	res=read(fd,buf1,sizeof(buf1));

	printf("==>\n");
	for(count=0;count<res;count++)printf("%c",buf1[count]);
	printf("\n");		

//-----------------------------------------------------------------------------------------------------------

	write(fd,cmgs,sizeof(cmgs));      write(fd,ctrlz,sizeof(ctrlz));

	res=read(fd,buf1,sizeof(buf1));

	printf("==>\n");
	for(count=0;count<res;count++)printf("%c",buf1[count]);
	printf("\n");		

//-----------------------------------------------------------------------------------------------------------

	write(fd,header,sizeof(header));
	write(fd,pn,sizeof(pn));
	write(fd,TP,sizeof(TP));
	write(fd,meg,sizeof(meg));
	write(fd,ctrlz,sizeof(ctrlz));
	
	printf("==>\n");
	for(count1=0;count1<3;count1++){
		res=read(fd,buf1,sizeof(buf1));
		for(count=0;count<res;count++)printf("%c",buf1[count]);
		printf("\n");
	}
			

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -