51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
#ifndef CONFIG_H
|
|
#define CONFIG_H
|
|
|
|
#include <stdint.h>
|
|
|
|
// debug flags
|
|
#define DEBUG_MODE 1
|
|
|
|
// 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
|
|
uint8_t mac[6]; // MAC address
|
|
} 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, 1}
|
|
#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 config declaration
|
|
extern node_config_t NODE_CONFIG;
|
|
|
|
// RS485 devices configuration
|
|
#define RS485_DEVICE_COUNT 1
|
|
|
|
// RS485 devices declaration
|
|
extern const rs485_device_t RS485_DEVICES[RS485_DEVICE_COUNT];
|
|
|
|
#endif // CONFIG_H
|