From 46229540bb553a7ded8412f3b053fcefb5056884 Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Wed, 21 Oct 2026 08:18:11 +0300 Subject: [PATCH] feat: initial --- .gitignore | 1 + zh_rf_config.h | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 .gitignore create mode 100644 zh_rf_config.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/zh_rf_config.h b/zh_rf_config.h new file mode 100644 index 0000000..d008956 --- /dev/null +++ b/zh_rf_config.h @@ -0,0 +1,65 @@ +#pragma once + +#include "stdint.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + typedef enum + { + OPEN = 1, + CLOSE = 0, + ALARM = 1, + DRY = 0 + } zh_rf_sensor_status_type_t; + + typedef struct + { + int16_t id; + int16_t type; + int16_t battery_voltage; + int16_t value_1; + int16_t value_2; + int16_t value_3; + int16_t value_4; + } zh_rf_sensor_transmitted_data_t; + +#define ZH_RF_SENSOR_TYPE \ + DF(ZH_RF_SENSOR_NONE, "") \ + DF(ZH_RF_SENSOR_BME280, "bme280") /* {id, ZH_RF_SENSOR_BME280, battery_voltage, humidity, temperature, pressure, 0} */ \ + DF(ZH_RF_SENSOR_BMP280, "bmp280") /* {id, ZH_RF_SENSOR_BMP280, battery_voltage, temperature, pressure, 0, 0} */ \ + DF(ZH_RF_SENSOR_BME680, "bme680") /* {id, ZH_RF_SENSOR_BME680, battery_voltage, humidity, temperature, pressure, quality} */ \ + DF(ZH_RF_SENSOR_TOUCH_SWITCH, "touch_switch") /* {id, ZH_RF_SENSOR_TOUCH_SWITCH, battery_voltage, 0, 0, 0, 0} */ \ + DF(ZH_RF_SENSOR_WATER_LEAKAGE, "water_leakage") /* {id, ZH_RF_SENSOR_WATER_LEAKAGE, battery_voltage, status (ALARM/DRY), 0, 0, 0} */ \ + DF(ZH_RF_SENSOR_PLANT_HUMIDITY, "plant_humidity") /* {id, ZH_RF_SENSOR_PLANT_HUMIDITY, battery_voltage, humidity, 0, 0, 0} */ \ + DF(ZH_RF_SENSOR_OPEN_CLOSE, "open_close") /* {id, ZH_RF_SENSOR_OPEN_CLOSE, battery_voltage, status (OPEN/CLOSE), 0, 0, 0} */ \ + DF(ZH_RF_SENSOR_MAX, "") + + typedef enum + { +#define DF(_value, _name) _value, + ZH_RF_SENSOR_TYPE +#undef DF + } zh_rf_sensor_type_t; + + const char *get_zh_rf_sensor_type_name(zh_rf_sensor_type_t value) + { + switch (value) + { +#define DF(_value, _name) \ + case _value: \ + return _name; + ZH_RF_SENSOR_TYPE +#undef DF + break; + default: + break; + } + return ""; + } + +#ifdef __cplusplus +} +#endif \ No newline at end of file