55 lines
1.4 KiB
C
55 lines
1.4 KiB
C
#ifndef CONFIG_H
|
|
#define CONFIG_H
|
|
|
|
#include <stdint.h>
|
|
|
|
// 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
|