From caa2e49a01dca9b3ce1c7310f0af0421b8df0cc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BD=A6=E4=BA=B2?= <李彦亲@163.com> Date: Fri, 11 Feb 2022 16:31:53 +0800 Subject: [PATCH] =?UTF-8?q?Signed-off-by:=20=E6=9D=8E=E5=BD=A6=E4=BA=B2=20?= =?UTF-8?q?<=E6=9D=8E=E5=BD=A6=E4=BA=B2@163.com>?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- smart_greenhouse_sever/.vscode/settings.json | 4 +- smart_greenhouse_sever/Makefile | 2 +- smart_greenhouse_sever/main | Bin 41720 -> 0 bytes smart_greenhouse_sever/mysqlite | Bin 12288 -> 0 bytes smart_greenhouse_sever/src/main.c | 9 +- smart_greenhouse_sever/src/modul.c | 170 ++++++----- smart_greenhouse_sever/src/serial.c | 9 +- smart_greenhouse_sever/src/server.c | 302 ++++++++++--------- 8 files changed, 270 insertions(+), 226 deletions(-) delete mode 100644 smart_greenhouse_sever/main delete mode 100644 smart_greenhouse_sever/mysqlite diff --git a/smart_greenhouse_sever/.vscode/settings.json b/smart_greenhouse_sever/.vscode/settings.json index 8d259e6..6eb2619 100644 --- a/smart_greenhouse_sever/.vscode/settings.json +++ b/smart_greenhouse_sever/.vscode/settings.json @@ -1,7 +1,5 @@ { "files.associations": { - "*.S": "arm", - "*.dts": "arm", - "signal.h": "c" + "server.h": "c" } } \ No newline at end of file diff --git a/smart_greenhouse_sever/Makefile b/smart_greenhouse_sever/Makefile index 5f9cc3d..04c78d3 100644 --- a/smart_greenhouse_sever/Makefile +++ b/smart_greenhouse_sever/Makefile @@ -2,7 +2,7 @@ # OBJS= main.c server.c convert.c srv.c tcp.c sqlite.c sqlite3.c modul.c shm.c serial.c OBJS= ./src/*.c CC=gcc -TARGET=main +TARGET=smart_greenhouse $(TARGET):$(OBJS) $(CC) $^ -o $@ -lpthread -lsqlite3 -ldl diff --git a/smart_greenhouse_sever/main b/smart_greenhouse_sever/main deleted file mode 100644 index 4a584b050e06e42670bd11570efc9cee5951d08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41720 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 diff --git a/smart_greenhouse_sever/src/main.c b/smart_greenhouse_sever/src/main.c index a5a2338..f1b2f87 100644 --- a/smart_greenhouse_sever/src/main.c +++ b/smart_greenhouse_sever/src/main.c @@ -1,13 +1,6 @@ -/************************************************************************* - > File Name: main.c - > Author: lei - > Mail: - > Created Time: Thu 30 Aug 2018 09:14:46 AM CST - ************************************************************************/ - #include #include "../inc/server.h" -//#include "./include/camera_process.h" +//#include "../include/camera_process.h" #include #include diff --git a/smart_greenhouse_sever/src/modul.c b/smart_greenhouse_sever/src/modul.c index 019fcc3..f0dade3 100644 --- a/smart_greenhouse_sever/src/modul.c +++ b/smart_greenhouse_sever/src/modul.c @@ -5,19 +5,20 @@ #include "../inc/serial.h" #include "../inc/server.h" -#define ZGB_DATA_SIZE 36 - -//extern int zgbfd; +#define ZGB_DATA_SIZE 36 +// #define ZGB_NWK_ID 0x02 +// extern int zgbfd; extern char *p_shm; extern char cmd_buf[1]; extern float value[8]; -//m0的环境变量 -struct env_char{ - //char smog; +// m0的环境变量 +struct env_char +{ + // char smog; char led_one; char led_two; char fan; - //char buzz; + // char buzz; char h_tem; char l_tem; char h_hum; @@ -32,8 +33,8 @@ struct env_char env_char_data; //读取共享内存数据 void read_cmd() { - read_shm(p_shm+11,cmd_buf,1); - printf("cmd_buf[0] = %d\r\n",cmd_buf[0]); + read_shm(p_shm + 11, cmd_buf, 1); + // printf("cmd_buf[0] = %d\r\n", cmd_buf[0]); } /*void read_secure() @@ -42,40 +43,40 @@ void read_cmd() printf("p_shm = %.2f\r\n",p_shm[12]); }*/ -//zigbee初始化 +// zigbee初始化 int zigbee_init(char *devpath, int baudrate) { return serial_init(devpath); } -//zigbee采集数据 +// zigbee采集数据 int zigbee_get_dat(int fd) { int i = 0; ssize_t ret; unsigned char buf[ZGB_DATA_SIZE]; memset(buf, 0, sizeof(buf)); - //fprintf(stdout,"hi\n"); + // fprintf(stdout,"tip\n"); ret = serial_recv_exact_nbytes(fd, buf, sizeof(buf)); - //fprintf(stdout,"hi1\n"); - if (ret == sizeof(buf)) + // fprintf(stdout,"tips\n"); + if (ret == sizeof(buf)) { - if (buf[0] == 0xBB) + if (buf[0] == 0xBB) { memset(&data, 0, sizeof(struct env)); data.id = (int)buf[1]; - data.tem = (float)((buf[5]*10 + buf[4])/10) ; - data.hum = (float)((buf[7]*10 + buf[6])/10) ; - //data.smog = (int)buf[16]; - data.light = (int)((buf[23] << 24) + (buf[22] << 16) + (buf[21] << 8) + buf[20]); - //printf("smog = %d\r\n",data.smog); + data.tem = (float)((buf[5] * 10 + buf[4]) / 10); + data.hum = (float)((buf[7] * 10 + buf[6]) / 10); + // data.smog = (int)buf[16]; + data.light = (int)((buf[23] << 24) + (buf[22] << 16) + (buf[21] << 8) + buf[20]); + // printf("smog = %d\r\n",data.smog); env_char_data.l_tem = buf[4]; env_char_data.h_tem = buf[5]; env_char_data.l_hum = buf[6]; env_char_data.h_hum = buf[7]; - //env_char_data.smog = buf[16]; //烟雾浓度 - //printf("smog = %d\r\n",(int)buf[16]); + // env_char_data.smog = buf[16]; //烟雾浓度 + // printf("smog = %d\r\n",(int)buf[16]); env_char_data.first_light = buf[20]; env_char_data.second_light = buf[21]; env_char_data.third_light = buf[22]; @@ -83,102 +84,123 @@ int zigbee_get_dat(int fd) data.led = buf[24]; data.fan = buf[25]; - //data.buzz = buf[26]; - + // data.buzz = buf[26]; env_char_data.led_one = buf[24]; env_char_data.fan = buf[25]; - //env_char_data.buzz = buf[26]; + // env_char_data.buzz = buf[26]; env_char_data.led_two = buf[27]; } } return ret; } -//zigbee发送命令 +// zigbee发送命令 int zigbee_exe_cmd(int fd, unsigned char *p) { - unsigned char buf[ZGB_DATA_SIZE] = {0xdd, 0x06, 0x24, 0x00, 0x00}; - if (strstr(p, "LIGHT_ON") != NULL){ + unsigned char buf[ZGB_DATA_SIZE] = {0xdd, data.id, 0x24, 0x00, 0x00}; + if (strstr(p, "LIGHT_ON") != NULL) + { buf[4] = 0x00; - } else if (strstr(p, "LIGHT_OFF") != NULL){ + } + else if (strstr(p, "LIGHT_OFF") != NULL) + { buf[4] = 0x01; - } else if (strstr(p, "BUZZ_ON") != NULL){ + } + else if (strstr(p, "BUZZ_ON") != NULL) + { buf[4] = 0x02; - } else if (strstr(p, "BUZZ_OFF") != NULL){ + } + else if (strstr(p, "BUZZ_OFF") != NULL) + { buf[4] = 0x03; - } else if (strstr(p, "FAN_ON") != NULL){ + } + else if (strstr(p, "FAN_ON") != NULL) + { buf[4] = 0x04; - } else if (strstr(p, "FAN_OFF") != NULL){ + } + else if (strstr(p, "FAN_OFF") != NULL) + { buf[4] = 0x08; - } else if (strstr(p, "SHU_ON") != NULL){ + } + else if (strstr(p, "SHU_ON") != NULL) + { buf[4] = 0x09; - } else if (strstr(p, "SHU_OFF") != NULL){ + } + else if (strstr(p, "SHU_OFF") != NULL) + { buf[4] = 0x0a; - } + } int ret = serial_send_exact_nbytes(fd, buf, sizeof(buf)); return ret; } -//AP发送给m0命令 +//发送给m0命令 void send_cmd_m0(int signum) { read_cmd(); - if(cmd_buf[0] == 1) + if (cmd_buf[0] == 1) { - printf("Living now:ON = %d\r\n",cmd_buf[0]); - zigbee_exe_cmd(zgbfd,"LIGHT_ON"); //led1 + printf("光照灯:ON = %d\r\n", cmd_buf[0]); + zigbee_exe_cmd(zgbfd, "LIGHT_ON"); // led1 } - - else if(cmd_buf[0] == 2) + + else if (cmd_buf[0] == 2) { - printf("Living now:OFF = %d\r\n",cmd_buf[0]); - zigbee_exe_cmd(zgbfd,"LIGHT_OFF"); //led1 + printf("光照灯:OFF = %d\r\n", cmd_buf[0]); + zigbee_exe_cmd(zgbfd, "LIGHT_OFF"); // led1 } - - else if(cmd_buf[0] == 3) + + else if (cmd_buf[0] == 3) { - printf("Bedroom now:ON = %d\r\n",cmd_buf[0]); - zigbee_exe_cmd(zgbfd,"SHU_ON"); //led2 + printf("数码管:ON = %d\r\n", cmd_buf[0]); + zigbee_exe_cmd(zgbfd, "SHU_ON"); //数码管 } - - else if(cmd_buf[0] == 4) + + else if (cmd_buf[0] == 4) { - printf("Bedroom now:OFF = %d\r\n",cmd_buf[0]); - zigbee_exe_cmd(zgbfd,"SHU_OFF"); //led2 + printf("数码管:OFF = %d\r\n", cmd_buf[0]); + zigbee_exe_cmd(zgbfd, "SHU_OFF"); //数码管 } - - else if(cmd_buf[0] == 5) + + else if (cmd_buf[0] == 5) { - printf("Aircondition now:ON = %d\r\n",cmd_buf[0]); - zigbee_exe_cmd(zgbfd,"FAN_ON"); //fan + printf("风扇:ON = %d\r\n", cmd_buf[0]); + zigbee_exe_cmd(zgbfd, "FAN_ON"); // fan } - - else if(cmd_buf[0] == 6) + + else if (cmd_buf[0] == 6) { - printf("Aircondition now:OFF%d\r\n",cmd_buf[0]); - zigbee_exe_cmd(zgbfd,"FAN_OFF"); //fan - printf("Aircondition now:OFF%d\r\n",cmd_buf[0]); + zigbee_exe_cmd(zgbfd, "FAN_OFF"); // fan + printf("风扇:OFF=%d\r\n", cmd_buf[0]); } + else if (cmd_buf[0] == 7) + { + zigbee_exe_cmd(zgbfd, "BUZZ_ON"); // BUZZ + printf("蜂鸣器:ON=%d\r\n", cmd_buf[0]); + } + else if (cmd_buf[0] == 8) + { + zigbee_exe_cmd(zgbfd, "BUZZ_OFF"); // BUZZ + printf("蜂鸣器:OFF=%d\r\n", cmd_buf[0]); + } } -/*void send_alarm_m0(int signo) +/* void send_alarm_m0(int signo) { read_secure(); - printf("data_tem = %f\r\n",data.tem); - printf("value[1] = %.2f\r\n",value[1]); - printf("value[0] = %.2f\r\n",value[0]); - if(data.tem < value[0] || data.tem > value[1] || data.hum < value[2] || data.hum > value[3] || data.light < value[4] || data.light > value[5]) - zigbee_exe_cmd(zgbfd,"BUZZ_ON"); + printf("data_tem = %f\r\n", data.tem); + printf("value[1] = %.2f\r\n", value[1]); + printf("value[0] = %.2f\r\n", value[0]); + if (data.tem < value[0] || data.tem > value[1] || data.hum < value[2] || data.hum > value[3] || data.light < value[4] || data.light > value[5]) + zigbee_exe_cmd(zgbfd, "BUZZ_ON"); else - zigbee_exe_cmd(zgbfd,"BUZZ_OFF"); -}*/ - -//zigbee退出 + zigbee_exe_cmd(zgbfd, "BUZZ_OFF"); +} + */ +// zigbee退出 int zigbee_exit(int fd) { + //处理申请的内存等 return serial_exit(fd); } - - - diff --git a/smart_greenhouse_sever/src/serial.c b/smart_greenhouse_sever/src/serial.c index 3465031..bfa1601 100644 --- a/smart_greenhouse_sever/src/serial.c +++ b/smart_greenhouse_sever/src/serial.c @@ -203,7 +203,7 @@ int serial_Set(int fd,int speed,int flow_ctrl,int databits,int stopbits,int pari int serial_init(char *devpath) { - printf("串口设备地址:%s\n",devpath); + // printf("串口设备地址:%s\n",devpath); int fd_comport = FALSE; //打开串口 if((fd_comport=serial_open(devpath))<0) @@ -228,14 +228,14 @@ ssize_t serial_recv_exact_nbytes(int fd, void *buf, size_t count) assert(buf != NULL); while (total != count) { - fprintf(stdout,"%d\n",fd); - fprintf(stdout,"hi..\n"); + // fprintf(stdout,"%d\n",fd); + // fprintf(stdout,"hi..\n"); ret = read(fd, buf + total, count - total); /*int i = 0; for (i = 0; i < 36; i++){ printf("%.2x ", buf1[i]); }*/ - fprintf(stdout,"hi2\n"); + // fprintf(stdout,"hi2\n"); if (ret == -1) { perror("serial->recv"); @@ -259,6 +259,7 @@ ssize_t serial_send_exact_nbytes(int fd, unsigned char *buf, size_t count) ssize_t total = 0; assert(buf != NULL); + //循环打印一下 //int i = 0; /*for (i = 0; i < 36; i++){ printf("%.2x ", buf[i]); diff --git a/smart_greenhouse_sever/src/server.c b/smart_greenhouse_sever/src/server.c index 29deab7..1561e26 100644 --- a/smart_greenhouse_sever/src/server.c +++ b/smart_greenhouse_sever/src/server.c @@ -1,4 +1,3 @@ - #include #include #include @@ -17,7 +16,7 @@ #include "../inc/serial.h" #define SPORT 7777 -#define LISNUM 1024 +#define LISNUM 1024 #define BUFFER_SIZE 128 char env_buf[12]; char cmd_buf[5]; @@ -30,40 +29,40 @@ char get_history_data[72][25]; float value[8] = {0}; void read_env(int signo) { - read_shm(p_shm,env_buf,sizeof(env_char_data)); + read_shm(p_shm, env_buf, sizeof(env_char_data)); } int service_process() { int i = 0; - char led1,led2,fan; - int socketId,connfd = 0; + char led1, led2, fan , buzz_l; + int socketId, connfd = 0; int ret = 0; int recv_len = 0; - struct sockaddr_in serveraddr,clientaddr; - socklen_t server_len,client_len; - - char *buf_ope = NULL; + struct sockaddr_in serveraddr, clientaddr; + socklen_t server_len, client_len; + + char *buf_ope = NULL; char *s = "//"; char cmd[BUFFER_SIZE] = {0}; - pid_t pid,pid_zigbee; + pid_t pid, pid_zigbee; int signo = 0; - + char *pPath = NULL; - struct sqlite3 *pdb = NULL; - char dbName[] = "./mysqlite"; - char tabname1[] = "rt_data"; - char tabname2[] = "max_data"; + struct sqlite3 *pdb = NULL; + char dbName[] = "./mysqlite"; + char tabname1[] = "rt_data"; + char tabname2[] = "max_data"; //获取pPath - pPath = getPath(dbName); - //open or create db - pdb = SqlOpen(pPath); - SqlCreatTable(pdb,tabname1); - SqlCreatTable1(pdb,tabname2); + pPath = getPath(dbName); + // open or create db + pdb = SqlOpen(pPath); + SqlCreatTable(pdb, tabname1); + SqlCreatTable1(pdb, tabname2); //创建zigbee进程 pid_zigbee = fork(); - if(pid_zigbee < 0) + if (pid_zigbee < 0) { perror("zigbee process fail!"); return -1; @@ -72,37 +71,41 @@ int service_process() { int i = 0; char buf[1] = {'\0'}; - AA: zgbfd = serial_init("/dev/ttyUSB0"); + + //等待打开串口设备 + AA: + zgbfd = serial_init("/dev/ttyUSB0"); if (zgbfd == -1) { - sleep(1); + sleep(2); goto AA; } else fprintf(stdout, "init zigbee success\n"); - - //创建共享内存 + + //创建共享内存(ipcs -m ,ipcrm -m shmid ,共享内存查看管理 ) p_shm = create_shm(); - while(1) + while (1) { - //send_alarm_m0(signo); + // send_alarm_m0(signo); send_cmd_m0(signo); ret = zigbee_get_dat(zgbfd); - if(ret < 0) - { + if (ret < 0) + { perror("env_recv:"); } - SqlInsert(pdb,tabname1,data.tem,data.hum,data.light,0); - //sqlSelected(tabname1,pdb); + SqlInsert(pdb, tabname1, data.tem, data.hum, data.light, 0); + // sqlSelected(tabname1,pdb); //写入共享内存 - write_shm(p_shm,&env_char_data,sizeof(env_char_data)); - signal(SIGUSR2,read_env); - sleep(2); - } + write_shm(p_shm, &env_char_data, sizeof(env_char_data)); + //进程间通信信号 + signal(SIGUSR2, read_env); + sleep(1); + } } //建立socket连接 - socketId = socket(AF_INET,SOCK_STREAM,0); - if(socketId < 0) + socketId = socket(AF_INET, SOCK_STREAM, 0); + if (socketId < 0) { perror("create socket error"); return -1; @@ -111,14 +114,14 @@ int service_process() //设置sockaddr_in结构体的相关参数 server_len = sizeof(struct sockaddr_in); - memset(&serveraddr,0,server_len); + memset(&serveraddr, 0, server_len); serveraddr.sin_family = AF_INET; serveraddr.sin_port = htons(SPORT); serveraddr.sin_addr.s_addr = INADDR_ANY; //绑定 - ret = bind(socketId,(struct sockaddr *)&serveraddr,server_len); - if(ret < 0) + ret = bind(socketId, (struct sockaddr *)&serveraddr, server_len); + if (ret < 0) { perror("bind error"); return -1; @@ -126,8 +129,8 @@ int service_process() printf("bind succeed!\r\n"); //建立监听队列 - ret = listen(socketId,LISNUM); - if(ret < 0) + ret = listen(socketId, LISNUM); + if (ret < 0) { perror("listen error"); return -1; @@ -136,167 +139,194 @@ int service_process() //等待客户端的连接(并发服务器) client_len = sizeof(clientaddr); - memset(&clientaddr,0,client_len); - signal(SIGCHLD,SIG_IGN); - while(1) + memset(&clientaddr, 0, client_len); + signal(SIGCHLD, SIG_IGN); + while (1) { - connfd = accept(socketId,(struct sockaddr *)&clientaddr,&client_len); - if(connfd < 0) + connfd = accept(socketId, (struct sockaddr *)&clientaddr, &client_len); + if (connfd < 0) { perror("connected error"); return -1; } printf("connected succeed!\r\n"); - //通信 pid = fork(); - if(pid < 0) + if (pid < 0) { perror("create process error"); return -1; } - if(pid == 0) + if (pid == 0) { - recv_len = recv(connfd,cmd,BUFFER_SIZE,0); - while(recv_len > 0) + recv_len = recv(connfd, cmd, BUFFER_SIZE, 0); + while (recv_len > 0) { + printf("套接字数据:%s\n", cmd); //查询历史数据 - if(0 == strncmp(cmd,"SearchHistoryData",17)) + if (0 == strncmp(cmd, "SearchHistoryData", 17)) { - //p_shm = create_shm(); - //read_env(signo); - //send(connfd,env_buf,sizeof(env_buf),0); - printf("cmd = %s\r\n",cmd); - for(i = 0; i < 11; i++) + // p_shm = create_shm(); + // read_env(signo); + // send(connfd,env_buf,sizeof(env_buf),0); + // printf("cmd = %s\r\n", cmd); + for (i = 0; i < 11; i++) { - printf("buf = %d\r\n",env_buf[i]); - } + printf("buf = %d\r\n", env_buf[i]); + } } //设置安全阈值 - else if(0 == strncmp(cmd,"SetSecureValue:",15)) + else if (0 == strncmp(cmd, "SetSecureValue:", 15)) { - //p_shm = create_shm(); - buf_ope = strtok(cmd+15,s); - while(buf_ope != NULL) + // p_shm = create_shm(); + buf_ope = strtok(cmd + 15, s); + while (buf_ope != NULL) { value[i] = atof(buf_ope); - printf("value = %.2f\r\n",value[i]); + printf("value = %.2f\r\n", value[i]); i++; - buf_ope = strtok(NULL,s); + buf_ope = strtok(NULL, s); } /*write_shm(p_shm,value,sizeof(value)/sizeof(value[0])); signal(SIGUSR1,send_alarm_m0); printf("value[1] = %.2f\r\n",value[1]); printf("p_shm[1] = %.2f\r\n",p_shm[1]);*/ //将阈值插入到数据库 - SqlInsert1(pdb,tabname2,*value,*(value+1),*(value+2),*(value+3),*(value+4),*(value+5),*(value+6),*(value+7)); - //sqlSelected(tabname2,pdb); + SqlInsert1(pdb, tabname2, *value, *(value + 1), *(value + 2), *(value + 3), *(value + 4), *(value + 5), *(value + 6), *(value + 7)); + // sqlSelected(tabname2,pdb); } - //解析到是主界面 - else if(strncmp(cmd,"ThisIsWidget",12)) + else if (0 == strncmp(cmd, "ThisIsWidget", 12)) { p_shm = create_shm(); read_env(signo); - send(connfd,env_buf,sizeof(env_buf),0); - printf("cmd = %s\r\n",cmd); - for(i = 0; i < 11; i++) - printf("buf = %d\r\n",env_buf[i]); + send(connfd, env_buf, sizeof(env_buf), 0); + printf("主界面刷新\r\n"); + // for (i = 0; i < 11; i++) + // printf("buf = %d\r\n", env_buf[i]); } - - //解析客厅灯 - else if(0 == strncmp(cmd,"Livingroom:ON",13)) + + //解析光照灯 + else if (0 == strncmp(cmd, "Lamp:ON\n", 8)) { - printf("cmd = %s\r\n",cmd); - memset(cmd,0,sizeof(cmd)); - strncpy(cmd,"Livingroom:open",15); - send(connfd,cmd,sizeof(cmd),0); + // printf("lyq = %s\n", cmd); + memset(cmd, 0, sizeof(cmd)); + strncpy(cmd, "Lamp:open", 10); + // printf("cmdlyq: %s\r\n", cmd); + // lyq send(connfd, cmd, sizeof(cmd), 0); led1 = 1; - write_shm(p_shm+11,&led1,1); - printf("p_shm = %d\r\n",p_shm[11]); - signal(SIGUSR1,send_cmd_m0); + write_shm(p_shm + 11, &led1, 1); + printf("p_shm:\n %d\r\n", p_shm[11]); + signal(SIGUSR1, send_cmd_m0); } - - else if(0 == strncmp(cmd,"Livingroom:OFF",14)) + else if (0 == strncmp(cmd, "Lamp:OFF\n", 9)) { - p_shm = create_shm(); - printf("cmd = %s\r\n",cmd); - memset(cmd,0,sizeof(cmd)); - strncpy(cmd,"Livingroom:close",16); - send(connfd,cmd,sizeof(cmd),0); + // p_shm = create_shm(); + // printf("cmd = %s\r\n", cmd); + memset(cmd, 0, sizeof(cmd)); + strncpy(cmd, "Lamp:close\n", 16); + // lyq send(connfd, cmd, sizeof(cmd), 0); led1 = 2; - write_shm(p_shm+11,&led1,1); - printf("p_shm = %d\r\n",p_shm[11]); - signal(SIGUSR1,send_cmd_m0); + write_shm(p_shm + 11, &led1, 1); + printf("p_shm = %d\r\n", p_shm[11]); + signal(SIGUSR1, send_cmd_m0); } - //解析卧室灯 - else if(0 == strncmp(cmd,"Bedroom:ON",10)) - { - p_shm = create_shm(); - printf("cmd = %s\r\n",cmd); - memset(cmd,0,sizeof(cmd)); - strncpy(cmd,"Bedroom:open",10); - send(connfd,cmd,sizeof(cmd),0); + //解析温控灯 + else if (0 == strncmp(cmd, "TemCtl:ON\n", 11)) + { + // p_shm = create_shm(); + // printf("cmd = %s\r\n", cmd); + memset(cmd, 0, sizeof(cmd)); + strncpy(cmd, "TemCtl:open", 12); + // lyq send(connfd, cmd, sizeof(cmd), 0); led2 = 3; - write_shm(p_shm+11,&led2,1); - printf("p_shm = %d\r\n",p_shm[11]); - signal(SIGUSR1,send_cmd_m0); + write_shm(p_shm + 11, &led2, 1); + printf("p_shm = %d\r\n", p_shm[11]); + signal(SIGUSR1, send_cmd_m0); } - else if(0 == strncmp(cmd,"Bedroom:OFF",11)) + else if (0 == strncmp(cmd, "TemCtl:OFF\n", 12)) { - p_shm = create_shm(); - printf("cmd = %s\r\n",cmd); - memset(cmd,0,sizeof(cmd)); - strncpy(cmd,"Bedroom:close",13); - send(connfd,cmd,sizeof(cmd),0); + // p_shm = create_shm(); + // printf("cmd = %s\r\n", cmd); + memset(cmd, 0, sizeof(cmd)); + strncpy(cmd, "Bedroom:close", 13); + // lyq send(connfd, cmd, sizeof(cmd), 0); led2 = 4; - write_shm(p_shm+11,&led2,1); - printf("p_shm = %d\r\n",p_shm[11]); - signal(SIGUSR1,send_cmd_m0); + write_shm(p_shm + 11, &led2, 1); + printf("p_shm = %d\r\n", p_shm[11]); + signal(SIGUSR1, send_cmd_m0); } - //解析空调 - else if(0 == strncmp(cmd,"Aircondition:ON",15)) + //解析风扇 + else if (0 == strncmp(cmd, "Fan:ON\n", 8)) { - p_shm = create_shm(); - printf("cmd = %s\r\n",cmd); - memset(cmd,0,sizeof(cmd)); - strncpy(cmd,"Aircondition:open",17); - send(connfd,cmd,sizeof(cmd),0); + // p_shm = create_shm(); + // printf("cmd = %s\r\n", cmd); + memset(cmd, 0, sizeof(cmd)); + strncpy(cmd, "Fan:open", 9); + // lyq send(connfd, cmd, sizeof(cmd), 0); fan = 5; - write_shm(p_shm+11,&fan,1); - printf("p_shm = %d\r\n",p_shm[11]); - signal(SIGUSR1,send_cmd_m0); + write_shm(p_shm + 11, &fan, 1); + printf("p_shm = %d\r\n", p_shm[11]); + signal(SIGUSR1, send_cmd_m0); } - else if(0 == strncmp(cmd,"Aircondition:OFF",16)) + else if (0 == strncmp(cmd, "Fan:OFF\n", 9)) { - p_shm = create_shm(); - printf("cmd = %s\r\n",cmd); - memset(cmd,0,sizeof(cmd)); - strncpy(cmd,"Aircondition:close",18); - send(connfd,cmd,sizeof(cmd),0); + // p_shm = create_shm(); + // printf("cmd = %s\r\n", cmd); + memset(cmd, 0, sizeof(cmd)); + strncpy(cmd, "Fan:close", 10); + // lyq send(connfd, cmd, sizeof(cmd), 0); fan = 6; - write_shm(p_shm+11,&fan,1); - printf("p_shm = %d\r\n",p_shm[11]); - signal(SIGUSR1,send_cmd_m0); + write_shm(p_shm + 11, &fan, 1); + printf("p_shm = %d\r\n", p_shm[11]); + signal(SIGUSR1, send_cmd_m0); } - recv_len = recv(connfd,cmd,BUFFER_SIZE,0); + //解析buzz + else if (0 == strncmp(cmd, "BUZZ:ON\n", 9)) + { + // p_shm = create_shm(); + // printf("cmd = %s\r\n", cmd); + memset(cmd, 0, sizeof(cmd)); + strncpy(cmd, "BUZZ:open", 9); + // lyq send(connfd, cmd, sizeof(cmd), 0); + buzz_l = 7; + write_shm(p_shm + 11, &buzz_l, 1); + printf("p_shm = %d\r\n", p_shm[11]); + signal(SIGUSR1, send_cmd_m0); + } + + else if (0 == strncmp(cmd, "BUZZ:OFF\n", 10)) + { + // p_shm = create_shm(); + // printf("cmd = %s\r\n", cmd); + memset(cmd, 0, sizeof(cmd)); + strncpy(cmd, "BUZZ:close", 10); + // lyq send(connfd, cmd, sizeof(cmd), 0); + buzz_l = 8; + write_shm(p_shm + 11, &buzz_l, 1); + printf("p_shm = %d\r\n", p_shm[11]); + signal(SIGUSR1, send_cmd_m0); + } + memset(cmd, 0, sizeof(cmd)); + recv_len = recv(connfd, cmd, BUFFER_SIZE, 0); } } //关闭连接 + // delete_shm(p_shm); close(connfd); } //关闭socket close(socketId); free(pPath); - pPath = NULL; - pdb = NULL; + pPath = NULL; + pdb = NULL; return 0; }