📄 serial.c,v
字号:
head 1.9;access;symbols;locks; strict;comment @ * @;1.9date 2004.12.16.09.13.47; author yr; state Exp;branches;next 1.8;deltatype text;permissions 644;commitid 60441c151c409e6;kopt kv;filename @serial.c@;1.8date 2004.12.14.08.14.36; author yr; state Exp;branches;next 1.7;deltatype text;permissions 644;commitid 1ba841bea0e84060;kopt kv;filename @serial.c@;1.7date 2004.12.14.07.55.08; author yr; state Exp;branches;next 1.6;deltatype text;permissions 644;commitid 1b4c41be9c573176;kopt kv;filename @serial.c@;1.6date 2004.12.07.08.53.29; author laj; state Exp;branches;next 1.5;deltatype text;permissions 644;commitid 88441b56f5b3aab;kopt kv;filename @serial.c@;1.5date 2004.12.06.13.42.59; author yr; state Exp;branches;next 1.4;deltatype text;permissions 644;commitid 8e441b461ce4a6e;kopt kv;filename @serial.c@;1.4date 2004.11.30.09.03.40; author tarbit; state Exp;branches;next 1.3;deltatype text;permissions 644;commitid d1c41ac375d1fed;kopt kv;filename @serial.c@;1.3date 2004.11.30.07.56.24; author tarbit; state Exp;branches;next 1.2;deltatype text;permissions 644;commitid d3c41ac27976c6b;kopt kv;filename @serial.c@;1.2date 2004.11.30.01.59.15; author yr; state Exp;branches;next 1.1;deltatype text;permissions 644;commitid ce041abd3ee5b38;kopt kv;filename @serial.c@;1.1date 2004.11.01.05.19.55; author yr; state Exp;branches;next ;deltatype text;permissions 644;commitid d404185c7771af5;kopt kv;filename @serial.c@;desc@@1.9log@add func_set_timer@text@#include <stdio.h> /*标准输入输出定义*/#include <stdlib.h> /*标准函数库定义*/#include <unistd.h> /*Unix 标准函数定义*/#include <sys/types.h> #include <sys/msg.h>#include <sys/ipc.h>#include <sys/stat.h> #include <fcntl.h> /*文件控制定义*/#include <termios.h> /*PPSIX 终端控制定义*/#include <errno.h> /*错误号定义*/#include <signal.h>#include <time.h>#include <string.h>#include <pthread.h>#include <sys/param.h>#include <Message.h>#include <Register.h>#include <alarm_num.h>void fn_operation(char *);int set_Parity(int, int, int, int);int OpenDev(char *);void fn_oprt_msg();void fn_msg_snd();void set_speed(int, int);void fn_read_port(int, char *);void handle_func();void func_sig_proc();void func_msg_regst();void func_read_alarm_set();void func_set_timer();void func_sigalarm_proc();void func_sign_nack();char alarm_set[3] = {0xff, 0xff, 0xff};char alarm_bit[3] = {0, 0, 0};char alarm_num = 0;char alarm_kind = 0;int main(){ func_sig_proc(); // func_read_alarm_set();//read alarm_set from set_record file; //set the port; int fd; fd = OpenDev("/dev/ttyS1"); set_speed(fd, 9600); if (set_Parity(fd,8,1,'n') == 0) { printf("Set Parity Error\n"); exit (0); } //create pthread! int ret; pthread_t id_msg; ret = pthread_create(&id_msg, NULL, (void *)fn_oprt_msg, NULL); if(ret != 0) { printf("pthread_create error!\n"); exit(1); } func_msg_regst(); func_set_timer(); while (1) { char recvbuf[6] = {0, 0, 0, 0, 0, 0}; fn_read_port(fd, recvbuf); fn_operation(recvbuf); fn_msg_snd();// printf("In the while.....\n"); } exit(0);}@1.8log@to merge two message into one@text@d12 1d31 3d65 1@1.7log@add alarm_kind & alarm_num@text@d33 2a34 2int alarm_num = 0;int alarm_kind = 0;@1.6log@to add the ! and send message to sysinfo@text@d34 1@1.5log@change the alarm_bit@text@d38 1a38 1 func_read_alarm_set();//read alarm_set from set_record file;@1.4log@modify@text@d19 1a19 1int fn_operation(char *);d23 1a23 1void fn_msg_snd(int);d29 1d31 2a32 1char alarm_set[4] = {0xff, 0xff, 0xff, 0};d37 3a39 2 char recvbuf[6]; int bit;d62 1a62 2 bit = 0; bzero(recvbuf, 6); d64 3a66 2 bit = fn_operation(recvbuf); fn_msg_snd(bit);d68 1@1.3log@modify@text@a33 2 func_msg_regst();//regist d35 2a36 1d39 1a39 2 char *dev = "/dev/ttyS1"; fd = OpenDev(dev);a45 1// printf("set up port successful!\n"); d55 2d59 2a60 2 int bit = 0; char recvbuf[6] = {0, 0, 0, 0, 0, 0}; a63 1// printf("In the while.....\n");@1.2log@change goto to while and use the alarm_num.h@text@d34 4d48 1a48 2 printf("set up port successful!\n"); a57 2 a61 1a62 1 a63 1d65 1a65 2 printf("In the while.....\n");a66 1@1.1log@added@text@d1 10a10 10#include <stdio.h> /*标准输入输出定义*/#include <stdlib.h> /*标准函数库定义*/#include <unistd.h> /*Unix 标准函数定义*/#include <sys/types.h> #include <sys/msg.h>#include <sys/ipc.h>#include <sys/stat.h> #include <fcntl.h> /*文件控制定义*/#include <termios.h> /*PPSIX 终端控制定义*/#include <errno.h> /*错误号定义*/d12 2a13 3#include <string.h>#include <pthread.h>d17 3a19 1void set_speed(int, int);a21 1d23 2a24 2void fn_msg_snd(int, char *);int fn_operation(char *);d27 2d31 1a31 2char alarm_arise[4] = {0, 0, 0, 0};a33 45 MSG sendmsg; struct sigaction act; sigset_t blockmask; key_t keyval0 = SERIAL_MSGQ; int msgq_id0 = 0; int fd; char *dev = "/dev/ttyS1"; int ret; pthread_t id_msg; //signal processor! //struct sigaction act; //sigset_t blockmask; sigemptyset(&blockmask); sigaddset(&blockmask, SIGINT); sigprocmask(SIG_BLOCK, &blockmask, NULL); act.sa_handler = handle_func; sigemptyset(&act.sa_mask); sigaddset(&act.sa_mask, SIGINT); sigaction(SIGINT, &act, NULL); sigprocmask(SIG_UNBLOCK,&blockmask, NULL); //regist message!! //MSG sendmsg; //key_t keyval0 = SERIAL_MSGQ; //int msgq_id0 = 0; if(msgq_id0 == 0) msgq_id0 = msgget(keyval0,IPC_CREAT); sendmsg.mtype = 100; sendmsg.pid = getpid(); sendmsg.from_service = ALARM_ARISE; sendmsg.data_type = REGIST; sendmsg.msg_data.answer_serv=0x00; msgsnd(msgq_id0, &sendmsg, (sizeof(MSG) - 4), 0); d35 2a36 2 //int fd; //char *dev = "/dev/ttyS1";d47 2a48 2 //int ret; //pthread_t id_msg;a56 1d59 3a61 3 int alarm_bit = 0; unsigned char recvbuf[6] = {0, 0, 0, 0, 0, 0}; d64 1a64 1 alarm_bit = fn_operation(recvbuf); d66 1a66 1 fn_msg_snd(alarm_bit, recvbuf);a68 1@
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -