#ifndef HC_12_H #define HC_12_H #include <stdio.h> #include <wiringPi.h> #include <wiringSerial.h> #include <unistd.h> #include <time.h> #include <string.h> #include <stdlib.h> #include <pthread.h> #include <sys/shm.h> #include <sys/wait.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include "../libconf/libconf.h" #define BUFFER 1024 #define MAIL "gomail -r \"%s\" -s \"%s\" -t \"%s\"" typedef struct CONF { char *mail; char *temperature; char *co; char *co2; char *MYSQL_ON; char *PUSH_MYSQL_DATA_TIME; char *MYSQL_HOST; char *MYSQL_PORT_; char *MYSQL_USRT; char *MYSQL_PASSWORD; char *MYSQL_DB; char *MYSQL_TABLES; } CONF; typedef struct DATA { // 存储实际传感器数据 float ds18b20; float ch4; float rp2040; float rp2040_f; float co; float co2; float ch4_; // boot time long long unsigned int boot_time_; // 超过阈值次数 int ds18b20_num; int ch4_num; int rp2040_num; int co_num; int co2_num; // 共享内存 int *ds18b20_shm; int *co_shm; int *co2_shm; // 第一次发送Mail标志 int ds18b20_1st; int ch4_1st; int co_1st; int co2_1st; // 持续浓度时候,等待时间再发送Mail int _time; } DATA; // 定义包含两个结构体的参数结构体 typedef struct { CONF *conf; DATA *data; } Thread; #endif