Files
ch32v203-eth-node/include/config.h
2024-11-11 01:31:19 +06:00

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