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

📄 user_define_func.c,v

📁 linux下的串口通讯
💻 C,V
📖 第 1 页 / 共 3 页
字号:
		//send message to network		sndmsg_network.mtype = 1;                sndmsg_network.data_type = ALARM_SEND;                sndmsg_network.msg_data.alarm_send[0] = alarm_bit[0];                sndmsg_network.msg_data.alarm_send[1] = alarm_bit[1];                sndmsg_network.msg_data.alarm_send[2] = alarm_bit[2];d451 12a462 1                if(msgsnd(msgid_network, (MSG *)&sndmsg_network, sizeof(MSG)-4, IPC_NOWAIT) == -1)d464 1a464 1                        printf("sndmsg_network msgsnd error!\n");@1.8log@delete the alarm_upset@text@d393 2a394 1	MSG	sndmsg_arise;d397 1d403 4a406 4		//send message!                                             	        sndmsg_arise.mtype = 1;        	sndmsg_arise.data_type = SYSINFO;	        sndmsg_arise.msg_data.sys_info = ALARM;d413 1a413 1		if(msgsnd(msgid_sysinfo, (MSG *)&sndmsg_arise, sizeof(MSG)-4, IPC_NOWAIT) == -1)d415 1a415 1       	        	printf("sndmsg_arise msgsnd error!\n");d418 19@1.7log@change the read and write style of arise_record@text@a276 1	char 	alarm_upset[3];@1.6log@change msgtype from SERVMANGE to SYSINFO@text@d285 1a285 1        fread(alarm_upset, 1, 3, fp2);a286 6        //To set the last context of alarm_set[4]        for(i=0; i<3; i++)        {                alarm_set[i] = alarm_upset[2-i];        }@1.5log@modify@text@d24 2a25 1extern  char    alarm_set[4];d275 20d360 1a360 1int fn_operation(char * buffer)d362 1a362 1	int	alarm_bit;	d365 7a371 7		case 0xd2: alarm_bit = 1; alarm_num = RESCUE_ONE; break; // alarm_bit = alarm_set[0] & 0x01;		case 0xe8: alarm_bit = 1; alarm_num = RESCUE_TWO; break;		case 0xd3: alarm_bit = 1; alarm_num = SMOKE_ONE; break;		case 0xdb: alarm_bit = 1; alarm_num = SMOKE_TWO; break;		case 0xe9: alarm_bit = 1; alarm_num = SMOKE_THREE; break;		case 0xd5: alarm_bit = 1; alarm_num = GAS_ONE; break;		case 0xea: alarm_bit = 1; alarm_num = GAS_TWO; break;d374 8a381 8		case 0xd8: alarm_bit = alarm_set[1] & 0x01; alarm_num = DOOR_MAG_ONE; break;		case 0xed: alarm_bit = alarm_set[1] & 0x02; alarm_num = DOOR_MAG_TWO; break;		case 0xd9: alarm_bit = alarm_set[1] & 0x04; alarm_num = WIN_MAG_ONE; break;		case 0xde: alarm_bit = alarm_set[1] & 0x08; alarm_num = WIN_MAG_TWO; break;		case 0xee: alarm_bit = alarm_set[1] & 0x10; alarm_num = WIN_MAG_THREE; break;		case 0xd6: alarm_bit = alarm_set[1] & 0x20; alarm_num = INFRARED_ONE; break;		case 0xdc: alarm_bit = alarm_set[1] & 0x40; alarm_num = INFRARED_TWO; break;		case 0xeb: alarm_bit = alarm_set[1] & 0x80; alarm_num = INFRARED_THREE; break;d384 5a388 5		case 0xd7: alarm_bit = alarm_set[2] & 0x01; alarm_num = CURTAIN_ONE; break;		case 0xdd: alarm_bit = alarm_set[2] & 0x02; alarm_num = CURTAIN_TWO; break;		case 0xec: alarm_bit = alarm_set[2] & 0x04; alarm_num = CURTAIN_THREE; break;		case 0xda: alarm_bit = alarm_set[2] & 0x08; alarm_num = QUAKE_ONE; break;		case 0xef: alarm_bit = alarm_set[2] & 0x10; alarm_num = QUAKE_TWO; break;d390 1a390 1		case 0xdf: alarm_bit = alarm_set[2] & 0x80; alarm_num = AROUND_PROTECT; break;d393 1a393 1	return alarm_bit;d398 1a398 1void fn_msg_snd(int alarm_bit)d402 1a402 1	int	msgid_serv;d404 1d406 1a406 1	if(alarm_bit)d410 2a411 2        	sndmsg_arise.data_type = ALARM_ARISE;	        sndmsg_arise.msg_data.alarm_num = alarm_num;d413 1a413 1		if((msgid_serv = msgget(SERVMANAGE_MSGQ, IPC_CREAT)) == -1)d415 1a415 1               		printf("SERIAL_MSGQ get error!\n");d418 1a418 1		if(msgsnd(msgid_serv, (MSG *)&sndmsg_arise, sizeof(MSG)-4, IPC_NOWAIT) == -1)d420 1a420 1       	        	printf("sndmsg_alarm, msgsnd error!\n");d423 10d438 3@1.4log@modify@text@a400 9		//receive message for test!		if(msgrcv(msgid_serv, (MSG *)&rcvmsg_arise, 80, 0, 0) == -1)		{			printf("SERV_MSGQ msgrcv error!\n");			exit(1);		}		printf("The message from SERV_MSGQ data_type:%x\n",rcvmsg_arise.data_type);	        printf("The message from SERV_MSGQ alarm_num:%x\n",rcvmsg_arise.msg_data.alarm_num);@1.3log@change %d to %x in the fn_msg_snd@text@d191 3a193 4        key_t keyval0 = SERIAL_MSGQ;        int msgq_id0 = 0;        if(msgq_id0 == 0)                msgq_id0 = msgget(keyval0,IPC_CREAT);                                                                                                               d196 1a196 1        sendmsg.from_service    = ALARM_ARISE;d199 1a199 1        msgsnd(msgq_id0, &sendmsg, (sizeof(MSG) - 4), 0);a223 1	printf("In the thread!\n");d235 1a235 1        printf("msgid_serial = %d\n",msgid_serial);d249 1a249 1		printf("in the pthread!\n"); d264 5a268 5			printf("In the serial!\n");			printf("The message from SERIAL_MSGQ data_type:%x\n",rcvmsg_serial.data_type);	        	printf("The message from SERIAL_MSGQ alarm[0]:%x\n",rcvmsg_serial.msg_data.alarm[0]);	        	printf("The message from SERIAL_MSGQ alarm[1]:%x\n",rcvmsg_serial.msg_data.alarm[1]);			printf("The msssage from SERIAL_MSGQ alarm[2]:%x\n",rcvmsg_serial.msg_data.alarm[2]);@1.2log@change goto to while and use the alarm_num.h@text@d410 2a411 2		printf("The message from SERV_MSGQ data_type:%d\n",rcvmsg_arise.data_type);	        printf("The message from SERV_MSGQ alarm_num:%d\n",rcvmsg_arise.msg_data.alarm_num);@1.1log@added@text@d1 12a12 14#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     <string.h>#include     <pthread.h>                                                                                                                             //#include <sys/signal.h>a13 3//#include <sys/param.h>//#include <time.h>                                                                                                                             d16 1a16 6//#include <color.h>//#include <switchkey.h>//#include <gui.h>d25 1a25 3extern  char    alarm_arise[4];d179 6d186 37a222 1//--------------------------------------------------------------------------------------------------------------------------a243 1                                                                                                                             a247 1                                                                                                                             a248 1                                                                                                                             a272 1        	d275 1a275 1//--------------------------------------------------------------------------------------------------------------------------d280 1d289 2a290 1label_1:a292 1                                                                                                                             d297 1a297 1               if(read(fdcom, &sign, 1) > 0){                                                                                                              a298 1			d301 1d306 1a306 2                	goto label_1;		}d309 1d311 2a312 2label_2:a314 1                                                                                                                     a324 1		int i;d329 1d331 2a332 2        else{                                                                                                                     	printf("readlen != 6\n");d334 2a335 3                goto label_2;	}	d339 1a339 1//--------------------------------------------------------------------------------------------------------------------------d346 7a352 7		case 0xd2: alarm_bit = 1; alarm_arise[0] |= 0x01; break; // alarm_bit = alarm_set[0] & 0x01;		case 0xe8: alarm_bit = 1; alarm_arise[0] |= 0x02; break;		case 0xd3: alarm_bit = 1; alarm_arise[0] |= 0x04; break;		case 0xdb: alarm_bit = 1; alarm_arise[0] |= 0x08; break;		case 0xe9: alarm_bit = 1; alarm_arise[0] |= 0x10; break;		case 0xd5: alarm_bit = 1; alarm_arise[0] |= 0x20; break;		case 0xea: alarm_bit = 1; alarm_arise[0] |= 0x40; break;d355 8a362 8		case 0xd8: alarm_bit = alarm_set[1] & 0x01; alarm_arise[1] |= 0x01; break;		case 0xed: alarm_bit = alarm_set[1] & 0x02; alarm_arise[1] |= 0x02; break;		case 0xd9: alarm_bit = alarm_set[1] & 0x04; alarm_arise[1] |= 0x04; break;		case 0xde: alarm_bit = alarm_set[1] & 0x08; alarm_arise[1] |= 0x08; break;		case 0xee: alarm_bit = alarm_set[1] & 0x10; alarm_arise[1] |= 0x10; break;		case 0xd6: alarm_bit = alarm_set[1] & 0x20; alarm_arise[1] |= 0x20; break;		case 0xdc: alarm_bit = alarm_set[1] & 0x40; alarm_arise[1] |= 0x40; break;		case 0xeb: alarm_bit = alarm_set[1] & 0x80; alarm_arise[1] |= 0x80; break;d365 5a369 5		case 0xd7: alarm_bit = alarm_set[2] & 0x01; alarm_arise[2] |= 0x01; break;		case 0xdd: alarm_bit = alarm_set[2] & 0x02; alarm_arise[2] |= 0x02; break;		case 0xec: alarm_bit = alarm_set[2] & 0x04; alarm_arise[2] |= 0x04; break;		case 0xda: alarm_bit = alarm_set[2] & 0x08; alarm_arise[2] |= 0x08; break;		case 0xef: alarm_bit = alarm_set[2] & 0x10; alarm_arise[2] |= 0x10; break;d371 1a371 1		case 0xdf: alarm_bit = alarm_set[2] & 0x80; alarm_arise[2] |= 0x80; break;a373 7/*	//unsigned int 	temp = 0x00000001;	if(buffer[0] == 0x01)          //switch(buffer[0]),命令字        {		alarm_bit =*((unsigned int *)alarm_set) & (temp << ((int)buffer[1]-1));			        }*/d378 2a379 2//-------------------------------------------------------------------------------------------------------------------------void fn_msg_snd(int alarm_bit, char *buffer)d384 2d387 5a391 7        {		//send message!                                                                                                                                             sndmsg_arise.mtype = 1;                sndmsg_arise.data_type = ALARM_ARISE;                sndmsg_arise.msg_data.alarm[0] = alarm_arise[0];                sndmsg_arise.msg_data.alarm[1] = alarm_arise[1];                sndmsg_arise.msg_data.alarm[2] = alarm_arise[2];d394 5d400 3a402 11                	printf("SERIAL_MSGQ get error!\n");              	  	exit(1);        	}			if(msgsnd(msgid_serv, (MSG *)&sndmsg_arise, sizeof(MSG)-4, IPC_NOWAIT) == -1)	        {        	        printf("sndmsg_alarm, msgsnd error!\n");                	exit(1);        	}                                                                                                             d411 4a414 4                printf("The message from SERV_MSGQ alarm[0]:%d\n",rcvmsg_arise.msg_data.alarm[0]);                printf("The message from SERV_MSGQ alarm[1]:%d\n",rcvmsg_arise.msg_data.alarm[1]);                printf("The message from SERV_MSGQ alarm[2]:%d\n",rcvmsg_arise.msg_data.alarm[2]);        }d416 1d418 1a418 9//--------------------------------------------------------------------------------------------------------------------------void handle_func(){	printf("End of serial!\n");        _exit(0);                                                                                                                             }@

⌨️ 快捷键说明

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