#ifndef CONFIG_H #define CONFIG_H #include // Debug flags #define DEBUG_MODE 1 // Device Bus Types typedef enum { BUS_RS485, BUS_ONEWIRE } bus_type_t; // Device Type Definitions typedef enum { DEVICE_RELAY = 1, DEVICE_SOIL_SENSOR = 2, DEVICE_THERMOMETER = 3 } device_type_t; // Node Configuration typedef struct { const char* id; // Unique identifier for the node const char* name; // Human readable name const char* location; // Optional location description } node_config_t; // RS485 Device Configuration typedef struct { uint8_t slave_id; // Modbus slave ID device_type_t type; // Type of device const char* name; // Device name (used in MQTT topics) } rs485_device_t; // Network Configuration #define MQTT_SERVER_IP {192, 168, 102, 100} #define MQTT_PORT 1883 // MQTT Configuration #define MQTT_KEEP_ALIVE_INTERVAL 60 #define MQTT_TX_BUFFER_SIZE 128 #define MQTT_RX_BUFFER_SIZE 128 #define MQTT_COMMAND_TIMEOUT_MS 1000 // Node Specific Configuration static const node_config_t NODE_CONFIG = { .id = "ch32-node1", .name = "CH32 Node 1", .location = "somewhere"}; // RS485 Devices Configuration #define RS485_DEVICE_COUNT 1 static const rs485_device_t RS485_DEVICES[RS485_DEVICE_COUNT] = { {.slave_id = 0x01, .type = DEVICE_RELAY, .name = "relay-1"}}; // {.slave_id = 0x02, .type = DEVICE_SOIL_SENSOR, .name = "soil-monitor-1"}}; #endif // CONFIG_H