微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 传感器 > 大型货车超载超速实时检测系统

大型货车超载超速实时检测系统

时间:03-18 来源:3721RD 点击:

#include <time.h>nclude <time.h>

//#include <sys/signal.h>

#include <pthread.h>

#include "tty.h"

#include "gprs.h"

/*--------------------------------------------------------*/

#define ENDMINITERM 27 /* ESC to quit miniterm */

#define FALSE 0

#define TRUE 1

/*--------------------------------------------------------*/

volatile int STOP=FALSE;

int GET_GPRS_OK=FALSE;

int baud=B115200;

int get_baudrate(int argc,char** argv);

char * cmd[20]={

"at",

"ate1",

"at+chfa=1", //设置通话通道为1,AT+CHFA 命令切换主副音频通道

"at+clvl=100", //设置受话器音量最大, AT+CLVL 命令可以调节输出音频信号增益

"at+cmic=1,10" //设置通道1的话筒增益

// "atd12345678\r",

};

void * keyshell() ;

/* modem input handler */

void* gprs_show(void * data)

{

while(1)

{

if(GET_GPRS_OK){

GET_GPRS_OK=FALSE;

printf("%s",GPRS_BUF);

GPRS_parse(GPRS_BUF,&gps_info);

GPRS_show();

}

usleep(100);

if(STOP)break;

}

}

/* modem input handler */

void* gprs_read(void * data)

{

int i=0;

char c;

char buf[1024];

printf("\nread modem\n");

while (STOP==FALSE)

{

tty_read(&c,1);

printf("%c",c);

}

printf("exit from reading modem\n");

return NULL;

}

int main(int argc,char** argv)

{

int ok;

pthread_t th_a, th_b, th_show;

void * retval;

if(argc < 2) {

printf (" Default baudrate is 115200 bps. If not, please enter the baudrate as a parameter\n");

}

else

baud=get_baudrate(argc, argv);

tty_init();

pthread_create(&th_a, NULL, keyshell, 0);

pthread_create(&th_b, NULL, gprs_read, 0);

pthread_create(&th_show, NULL, gprs_show, 0);

while(!STOP){

usleep(100000);

}

tty_end();

exit(0);

}

int get_baudrate(int argc,char** argv)

{

int v=atoi(argv[1]);

switch(v){

case 4800:

return B4800;

case 9600:

return B9600;

case 19200:

return B19200;

case 38400:

return B38400;

case 57600:

return B57600;

case 115200:

return B115200;

default:

return -1;

}

}

void gprs_init()

{

int i;

for(i=0; i<5; i++) {

tty_writecmd(cmd[i], strlen(cmd[i]));

}

}

void gprs_hold()

{

tty_writecmd("at", strlen("at"));

tty_writecmd("ath", strlen("ath"));

}

void gprs_ans()

{

tty_writecmd("at", strlen("at"));

tty_writecmd("ata", strlen("ata"));

}

void gprs_call(char *number, int num)

{

tty_write("atd", strlen("atd"));

tty_write(number, num);

tty_write(";\r", strlen(";\r"));

usleep(200000);

}

void gprs_msg(char *number, int num)

{

char ctl[]={26,0};

char text[]="Welcome to use up-tech embedded platform!";

tty_writecmd("at", strlen("at"));

tty_writecmd("at", strlen("at"));

tty_writecmd("at+cmgf=1", strlen("at+cmgf=1"));

tty_write("at+cmgs=", strlen("at+cmgs="));

tty_write("\"", strlen("\""));

tty_write(number, strlen(number));

tty_write("\"", strlen("\""));

tty_write(";\r", strlen(";\r"));

tty_write(text, strlen(text));

tty_write(ctl, 1);

usleep(300000);

}

void gprs_baud(char *baud,int num)

{

tty_write("at+ipr=", strlen("at+ipr="));

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top