📄 gprs.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 + -