#pragma once enum RO // relay output channels { P4 = 0, P3 = 1, P2 = 2, P1 = 3, RO_4 = 4, FST_FLOOR = 5, GND_FLOOR = 6, PUMP_HT = 7, PUMP_IRR = 8, RETURN = 9, ZONE1 = 10, ZONE2 = 11, ZONE3 = 12, DRIP = 13, RO_14 = 14, RO_15 = 15, RO_MAX = 16 // unused to detect invalid values }; static const std::map RO_2str = { {RO::P1, "HPLimit1"}, {RO::P2, "HPLimit2"}, {RO::P3, "HPLimit3"}, {RO::P4, "HPLimit4"}, {RO::RO_4, "Out4"}, {RO::FST_FLOOR, "PianoPrimo"}, {RO::GND_FLOOR, "PianoTerra"}, {RO::PUMP_HT, "PompaRisc"}, {RO::PUMP_IRR, "PompaIrr"}, {RO::RETURN, "Ricircolo"}, {RO::ZONE1, "IrrZona1"}, {RO::ZONE2, "IrrZona2"}, {RO::ZONE3, "IrrZona3"}, {RO::DRIP, "IrrDrip"}, {RO::RO_14, "Out14"}, {RO::RO_15, "Out15"}, {RO::RO_MAX, "Invalid"}}; enum DI // digital input channels { CONFRESET = 0, RESTART = 1, DI_2 = 2, DI_3 = 3, DI_4 = 4, DI_5 = 5, DI_6 = 6, OTAENABLE = 7, PUMP_PRESSURE = 8, RAIN = 9, IRR_OVERRIDE = 10, DI_11 = 11, DI_12 = 12, DI_13 = 13, DI_14 = 14, DI_15 = 15, DI_MAX = 16 // unused to detect invalid values }; static const std::map DI_2str = { {DI::CONFRESET, "ConfigReset"}, {DI::RESTART, "Restart"}, {DI::DI_2, "In2"}, {DI::DI_3, "In3"}, {DI::DI_4, "In4"}, {DI::DI_5, "In5"}, {DI::DI_6, "In6"}, {DI::OTAENABLE, "OtaEnable"}, {DI::PUMP_PRESSURE, "IrrPumpPressure"}, {DI::RAIN, "IrrRainSensor"}, {DI::IRR_OVERRIDE, "IrrRainOverride"}, {DI::DI_11, "In11"}, {DI::DI_12, "In12"}, {DI::DI_13, "In13"}, {DI::DI_14, "In14"}, {DI::DI_15, "In15"}, {DI::DI_MAX, "Invalid"}};