www.pudn.com > seria1.rar > serial.c,v


head	1.9;
access;
symbols;
locks; strict;
comment	@ * @;


1.9
date	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.8
date	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.7
date	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.6
date	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.5
date	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.4
date	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.3
date	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.2
date	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.1
date	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.9
log
@add func_set_timer
@
text
@#include       /*标准输入输出定义*/
#include      /*标准函数库定义*/
#include      /*Unix 标准函数定义*/
#include   
#include 
#include 
#include    
#include       /*文件控制定义*/
#include     /*PPSIX 终端控制定义*/
#include       /*错误号定义*/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

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.8
log
@to merge two message into one
@
text
@d12 1
d31 3
d65 1
@


1.7
log
@add alarm_kind & alarm_num
@
text
@d33 2
a34 2
int	alarm_num = 0;
int	alarm_kind = 0;
@


1.6
log
@to add the ! and send message to sysinfo
@
text
@d34 1
@


1.5
log
@change the alarm_bit
@
text
@d38 1
a38 1
	func_read_alarm_set();//read alarm_set from set_record file;
@


1.4
log
@modify
@
text
@d19 1
a19 1
int 	fn_operation(char *);
d23 1
a23 1
void 	fn_msg_snd(int);
d29 1
d31 2
a32 1
char 	alarm_set[4] = {0xff, 0xff, 0xff, 0};
d37 3
a39 2
	char recvbuf[6];
	int bit;
d62 1
a62 2
		bit = 0;
		bzero(recvbuf, 6);		
d64 3
a66 2
		bit = fn_operation(recvbuf);	
		fn_msg_snd(bit);
d68 1
@


1.3
log
@modify
@
text
@a33 2
	func_msg_regst();//regist 

d35 2
a36 1

d39 1
a39 2
	char *dev = "/dev/ttyS1";
	fd = OpenDev(dev);
a45 1
//	printf("set up port successful!\n");	
d55 2
d59 2
a60 2
		int     bit = 0;
		char 	recvbuf[6] = {0, 0, 0, 0, 0, 0};		
a63 1
//		printf("In the while.....\n");
@


1.2
log
@change goto to while and use the alarm_num.h
@
text
@d34 4
d48 1
a48 2
	printf("set up port successful!\n");	

a57 2
	

a61 1

a62 1
	
a63 1

d65 1
a65 2

		printf("In the while.....\n");
a66 1

@


1.1
log
@added
@
text
@d1 10
a10 10
#include           /*标准输入输出定义*/
#include          /*标准函数库定义*/
#include          /*Unix 标准函数定义*/
#include       
#include     
#include     
#include        
#include           /*文件控制定义*/
#include         /*PPSIX 终端控制定义*/
#include           /*错误号定义*/
d12 2
a13 3

#include     
#include     
d17 3
a19 1
void 	set_speed(int, int);
a21 1

d23 2
a24 2
void 	fn_msg_snd(int, char *);
int 	fn_operation(char *);
d27 2
d31 1
a31 2
char	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 2
a36 2
	//int 	fd;
	//char *dev = "/dev/ttyS1";
d47 2
a48 2
        //int     ret;
	//pthread_t id_msg;
a56 1

d59 3
a61 3
		int     alarm_bit = 0;
		unsigned char	recvbuf[6] = {0, 0, 0, 0, 0, 0};
	
d64 1
a64 1
		alarm_bit = fn_operation(recvbuf);	
d66 1
a66 1
		fn_msg_snd(alarm_bit, recvbuf);
a68 1

@