5.2. Demon

Stałe demona:

//prefiksy portów wej/wyj
const char *PORT_RELBRD_PREFIX = "relbrd:"; // to jest do usunięcia - brak wsparcia
const char *PORT_RPI_GPIO_PREFIX = "rpi:gpio:";
const char *PORT_RPI_1W_PREFIX = "rpi:1w:";
const char *PORT_RPI_I2C_MINIPH_PREFIX = "rpi:i2c:miniph:";
const char *PORT_RPI_I2C_PCA9685_PREFIX = "rpi:i2c:pca9685:";
const char *PORT_RPI_I2C_ADS1115_PREFIX = "rpi:i2c:ads1115:";
const char *PORT_DUMMY_PREFIX = "dummy:";
const char *PORT_TEXT_FILE_PREFIX = "rpi:system:txtfile:";

//prefiksy portów wejściowych
const char *INPUT_RPI_1W_PREFIX = "rpi:1w:";
const char *INPUT_DUMMY_PREFIX = "dummy:";
const char *INPUT_RPI_I2C_MINIPH_PREFIX = "rpi:i2c:miniph";
const char *INPUT_RPI_I2C_ADS1115_PREFIX = "rpi:i2c:ads1115:";

const int E_DEV  = -1;
const int E_INFO = 0;
const int E_WARN = 1;
const int E_CRIT = 2;
const int E_SQL  = 3;

// typ urządzenia
const int DEV_INPUT = 1;
const int DEV_OUTPUT = 2;
const int DEV_OUTPUT_PWM = 3;

Definicje struktur:

struct _interfaces {
	int id;
	char address[128];
	char name[30];
	int type;
	int state;
	int new_state;
	int draw;
	double measured_value;
	double raw_measured_value;
	int override_value;
	int override_expire;
	int was_error_last_time;
	int service_val;
	int dashboard;
	double conf;
} interfaces[100];

struct _timers {
	int id;
	int timeif;
	int action;
	int interfaceidthen;
	char days[7]; 
} timers[100];

typedef struct
{
	char* db_host;
	char* db_user; 
	char* db_password;
	char* db_database;
	int dontfork;
	int stat_freq;
	int inputs_freq;
	int devel_freq;
	int reload_freq;
	int bind_port;
	char* bind_address;
} configuration;