From 7fa5bcaaa95fd99d8728cc096d46ac636138f8a3 Mon Sep 17 00:00:00 2001 From: hyunjun_cho <gusrkfl0609@ajou.ac.kr> Date: Fri, 3 Jul 2020 08:37:30 +0100 Subject: [PATCH] application rename --- app => app1 | Bin 8560 -> 8564 bytes app1.c | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) rename app => app1 (64%) create mode 100644 app1.c diff --git a/app b/app1 similarity index 64% rename from app rename to app1 index 30d7d7d7ee3fe0543326c4ae6df15bf0550dac29..76975a27e331406cfb380e310c319e4237c00bde 100755 GIT binary patch delta 750 zcmez1^u=j{0^^&FiuH^l8+ZJ=;OMQ-cZI3y)pw)mo0nIA&fC0&Q9_upWAa&%c*ZG{ zbw%Y37cnw0i10HpK!6a#W<~}E2`HbDL4;usBLjl~l+VB*#BhFct*CwdQ$_}c6Wojp zEDRtqUWQyI28ILyh$#vTVhr)j5c5E!5Ca3lS4IYg45+*SgE#{-L@7v`0VJ=(#K4e) zBrnW_tX_;k3RQhQ!+S;shBMrZ5CfR_7_`w0Fh|wE;DN@ELgQy6c|d?cjG+Qez5|6{ z&%m%0NkD;tfnf_0ALOGWObiSuP#+00i7{M6lYhv>z;Fc`f`SbE3?I<snV1<EGPoHT z5}+Y0gdC#v3=9nG7*T_)kcojIh7B4b47>~~$Ql?J7)+T_)!TwBfI1KqC7#R-3_k3P z3^FW`DD^|rABV&b1^KWLNdUxeMlulO<9;;xC1`vekcF&J2QzUqY~9Q&F`1FkaPtDm f0_M%Uvg$01CnlRJDoZ?(W?+D-1IIT+3j+fHO;khN delta 729 zcmez3^ucL@0^^H~iuH^lhZ)ytUoBpias2s*I8!!-Jf9$s%FSCCC4?E<C!ZCGXPi7) zS5)3`AtM8W2tN}81PC!~Vq{>Dfbtm`L>P86GB5~0`3wv~4Cf}-irUvdVPs%9!Oh6P z!T=KEWyoP-U`P;vn4-WS#t_F0F%LuvF)%QEVPs&)fXWLnh%+!jl!BxgK=Rs53=BC) z@<L3=>cto&QPtNoyklfwIK#~dF@TAWK?}_QGgJ)>?r8i-G=3J62Lu?z7|PM)+fn%S z3=B(<1QZw;7&asEK|VUn#K4dO^^qWx7{diL`3Fo43|F8bD9FIi@E%Q`k(q%ZgPV~d z0UE-B$RS$Kz`(GU5jDsPm>3vh*q|Z8z{{YFtbu`n!GsxAy$#3$r~^S!;=#<o;KR<y zAj1NQQeQOvu}J(-kPi!x1VH>IBm+S{?n9GbjK=2%S;z`?FcUY!md(5plNmQJlq_K0 VEF!DI!gzeLrJ^$9<H@m#;sC~$LR$a; diff --git a/app1.c b/app1.c new file mode 100644 index 0000000..4c3e467 --- /dev/null +++ b/app1.c @@ -0,0 +1,130 @@ +#include <fcntl.h> +#include <unistd.h> +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <math.h> +#include <errno.h> +#include <time.h> +#include <arpa/inet.h> + +#include <sys/socket.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/sysmacros.h> + +#define SMOKE_DEV_PATH "/dev/smoke_dev" +#define BUZZER_DEV_PATH "/dev/buzzer_dev" +#define HYDRO_DEV_PATH "/dev/hydro_dev" + +#define IOCTL_HYDRO_MAGIC_NUMBER 'h' + +#define INTERVAL 50000 +#define BUFF_SIZE 50 + +typedef struct{ + int hydro_int; + int hydro_double; + int temp_int; + int temp_double; +}HYDRO; + +#define IOCTL_CMD_HYDRO _IOR(IOCTL_HYDRO_MAGIC_NUMBER, 0, HYDRO) +int main(void) +{ + int client_socket; + struct sockaddr_in server_addr; + char buff[BUFF_SIZE+5] = "*Humidity:"; + char buff2[BUFF_SIZE+5] = "Temperature"; + + client_socket = socket(PF_INET, SOCK_STREAM, 0); + if(client_socket == -1) { + printf("socket fail\n"); + exit(1); + } + + memset(&server_addr, 0, sizeof(server_addr)); + server_addr.sin_family = AF_INET; + server_addr.sin_port = htons(4029); + server_addr.sin_addr.s_addr = inet_addr("192.168.10.6"); + + if(connect(client_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { + printf("connect error\n"); + return 1; + } + __pid_t pid; + int smoke_dev, smoke_data; + int buzzer_dev, buzzer_data = 400; + int hydro_dev; + HYDRO hydro_info; + char Temp[20], Hum[20]; + smoke_dev = open(SMOKE_DEV_PATH, O_RDONLY); + buzzer_dev = open(BUZZER_DEV_PATH, O_RDWR); + hydro_dev = open(HYDRO_DEV_PATH, O_RDONLY); + + if(smoke_dev < 0) { + printf("fail to open smoke detection sensor device\n"); + return 1; + } + + if(buzzer_dev < 0) { + printf("fail to open buzzer sensor device\n"); + return 1; + } + + if(hydro_dev < 0) { + printf("fail to open hydro sensor device\n"); + return 1; + } + + int count = 0; + + pid = fork(); + + if(pid) { + while(1) { + read(smoke_dev, &smoke_data, sizeof(int)); + printf("data : %d\n", smoke_data); + if(smoke_data > 600) { + write(buzzer_dev, &buzzer_data, sizeof(int)*2); + } + sleep(1); + } + } + else { + while(1) { + ioctl(hydro_dev, IOCTL_CMD_HYDRO, &hydro_info); + printf("temperature is %d.%d%%, humidity is %d.%d%%\n",hydro_info.temp_int, hydro_info.temp_double, hydro_info.hydro_int, hydro_info.hydro_double); + + if(hydro_info.temp_double > 100) + hydro_info.temp_double /= 100; + else if(hydro_info.temp_double > 10) + hydro_info.temp_double /= 10; + + if(hydro_info.hydro_double > 100) + hydro_info.hydro_double /= 100; + else if(hydro_info.hydro_double > 10) + hydro_info.hydro_double /= 10; + + sprintf(Temp, "%d.%dC", hydro_info.temp_int, hydro_info.temp_double); + sprintf(Hum, "%d.%d%%", hydro_info.hydro_int, hydro_info.hydro_double); + strcat(buff, Hum); + strcat(buff2, Temp); + printf("%s %s\n", Temp, Hum); + write(client_socket, buff2, strlen(buff2) + 1); + write(client_socket, buff, strlen(buff) + 1); + strcpy(buff, "*Humidity:"); + strcpy(buff2, "Temperature"); + //buff = "**Humidity:", buff2 = "Temperature"; + sleep(5); + + } + } + + close(client_socket); + close(smoke_dev); + close(buzzer_dev); + close(hydro_dev); + + return 0; +} -- GitLab