/* * @Date: 2024-07-11 11:15:25 * @LastEditors: lzc56 563451665@qq.com * @LastEditTime: 2025-01-10 09:05:19 * @FilePath: \software\main\inc\main.h */ /* * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #ifndef __MAIN_H__ #define __MAIN_H__ #include #include #include #include "sdkconfig.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_task_wdt.h" #include "esp_system.h" #include "esp_app_desc.h" #include "esp_netif.h" #include "esp_event.h" #include "esp_log.h" //------------Protobuf---------------// #include "pb.h" #include "pb_encode.h" #include "pb_decode.h" #include "AlgCommunicate.pb.h" #ifdef __cplusplus extern "C" { #endif //--------------------------------------------------------配置 // 网络配置 typedef struct network_Config_T { char serialNumber[32]; char wifi_ssid[32]; char wifi_password[64]; char mqtt_ip[64]; int mqtt_port; char mqtt_username[64]; char mqtt_password[64]; } network_Config_t; // 系统配置 typedef struct System_Config_T { char device_ver[32]; char device_MAC[32]; char device_SN[32]; } System_Config_t; // 用户配置 typedef struct User_Config_T { // Basic char user_breathDay[32]; char user_name[32]; char user_age; char user_sex; char user_height; char user_weight; char user_timeZone; // Move int user_w_moveKeep; char user_w_moveOpen; // Leave int user_w_leaveKeep; // Breath char user_w_breathKeep; char user_w_breathMax; char user_w_breathMin; // Heartbeat char user_w_heartBeatKeep; char user_w_heartBeatMax; char user_w_heartBeatMin; // NightLight int user_nightLightEnable; } User_Config_t; // 预警消息 typedef struct WarningMsg_T { // 超过阈值时的滴答计数器 uint64_t Breath_OverThreshold_CountTick; uint64_t Heart_OverThreshold_CountTick; uint64_t Move_OverThreshold_CountTick; uint64_t Leave_OverThreshold_CountTick; // 超过阈值时的时间戳 uint64_t Breath_OverThreshold_TimeStamp; uint64_t Heart_OverThreshold_TimeStamp; uint64_t Move_OverThreshold_TimeStamp; uint64_t Leave_OverThreshold_TimeStamp; // 持续时间的记录(ms) uint64_t Breath_KeepTime_Record; uint64_t Heart_KeepTime_Record; uint64_t Move_KeepTime_Record; uint64_t Leave_KeepTime_Record; // 滴答定时器的时间记录 uint64_t SysTick_Count; } WarningMsg_t; //--------------------------------------------------------状态 typedef struct System_Status_T { uint64_t timeStamp; char net_ConnectStatus; char mqtt_ConnectStatus; char net_ReConfigStatus; } System_Status_t; //--------------------------------------------------------数据 typedef struct SingsData_T { char inOffBed; char heartBeat; char breathRate; char moveMent; } SingsData_t; typedef struct UploadData_T { //----------------------------------------------------------------体征数据 char heartBeat; // 心率 char breathRate; // 呼吸 char movement; // 体动 char bedStatus; // 在离床 //----------------------------------------------------------------设备数据 int32_t deviceHealth; // 设备健康 int32_t opticalFibre; // int32_t sensorLoad; // int32_t lightSignal; // long long timeStamp; // 时间戳 //----------------------------------------------------------------日志数据 float max; float opticalPower; float opticalPowerOrigin; float opticalPowerRecord; float opticalPowerRecord_2; //----------------------------------------------------------------日志数据 char logData[1024]; //----------------------------------------------------------------工厂数据 char factoryData[1024]; } UploadData_t; //--------------------------------------------------------宏定义 #define THE_VERSION 1 // 1表示康养 0表示BCS #define OPM_UPLOAD_SWITCH 0 // 1表示启动上传光功率 0表示不上传 #define CONNECTED 1 // 已经链接成功 #define DISCONNECTED 0 // 没有链接成功 #define SYS_LED_PIN_ON 1 #define SYS_LED_PIN_OFF 0 #define SYS_LED_PIN_NUM (GPIO_NUM_7) #if THE_VERSION #define DEFAULT_SN "105240901001" #define DEFAULT_MQTT_IP "114.215.254.18" #define DEFAULT_MQTT_PORT 1883 #define DEFAULT_MQTT_USERNAME "device" #define DEFAULT_MQTT_PASSWORD "sH9xBWo0wS4Xzy%nDlCH" #else #define DEFAULT_SN "105240901001" #define DEFAULT_MQTT_IP "miot.bewatec.com.cn" #define DEFAULT_MQTT_PORT 1884 #define DEFAULT_MQTT_USERNAME "device" #define DEFAULT_MQTT_PASSWORD "HSQz4QY1tWzwWFKM" #endif #define COM_OTA_MSG_OK 1 #define COM_OTA_MSG_DONE 3 #define COM_OTA_MSG_RESEND 2 extern SingsData_t SingsData; extern WarningMsg_t WarningMsg; extern UploadData_t UploadData; extern User_Config_t User_Config; extern System_Config_t System_Config; extern System_Status_t System_Status; extern network_Config_t network_Config; extern TimerHandle_t NetConfig_timer; extern EventGroupHandle_t ledEventGroup; extern EventGroupHandle_t xComEventGroup; extern SemaphoreHandle_t OTA_startSemaphore; extern SemaphoreHandle_t MQTT_startSemaphore; extern SemaphoreHandle_t OTA_deviceUpgradeDoneSemaphore; #ifdef __cplusplus } #endif #endif /* __MAIN_H__ */