37 #define CDRIVER_VERSION_MAJOR 1
38 #define CDRIVER_VERSION_MINOR 0
48 #define MDCP_CMD_LENGTH 32
49 #define MDCP_CMD_TERMINATOR "#"
50 #define MDCP_GET_CONTROLLER_CODE_CMD ":00#"
51 #define MDCP_GET_VERSION_CMD ":01#"
52 #define MDCP_REBOOT_CMD ":02#"
53 #define MDCP_GET_TRACKING_MODE_CMD ":03#"
54 #define MDCP_SET_TRACKING_MODE_CMD ":04%1u#"
55 #define MDCP_GET_TRACKING_OFFSET_CMD ":05#"
56 #define MDCP_ZERO_TRACKING_OFFSET_CMD ":06#"
57 #define MDCP_DECREASE_TRACKING_OFFSET_CMD ":07#"
58 #define MDCP_INCREASE_TRACKING_OFFSET_CMD ":08#"
59 #define MDCP_GET_NUMBER_PROBES_CMD ":09#"
60 #define MDCP_SAVE_CONTROLLER_SETTINGS_CMD ":10#"
61 #define MDCP_SET_DEFAULT_SETTINGS_CMD ":11#"
62 #define MDCP_GET_AMBIENT_TEMPERATURE_CMD ":12#"
63 #define MDCP_GET_AMBIENT_OFFSET_CMD ":13#"
64 #define MDCP_SET_AMBIENT_OFFSET_CMD ":14%1.2f#"
65 #define MDCP_GET_HUMIDITY_CMD ":15#"
66 #define MDCP_GET_DEWPOINT_CMD ":16#"
67 #define MDCP_GET_TEMP_MODE_CMD ":17#"
68 #define MDCP_SET_TEMP_MODE_C_CMD ":181#"
69 #define MDCP_SET_TEMP_MODE_F_CMD ":182#"
70 #define MDCP_SET_TRACKING_OFFSET_CMD ":19%d#"
71 #define MDCP_GET_MAC_ADDRESS_CMD ":26#"
72 #define MDCP_GET_IP_ADDRESS_CMD ":27#"
73 #define MDCP_GET_CHANNEL_TEMPS_CMD ":28#"
74 #define MDCP_SET_CH1_OFFSET_CMD ":29%01.2f#"
75 #define MDCP_SET_CH2_OFFSET_CMD ":30%01.2f#"
76 #define MDCP_SET_CH3_OFFSET_CMD ":31%01.2f#"
77 #define MDCP_SET_CH4_OFFSET_CMD ":32%01.2f#"
78 #define MDCP_ZERO_ALL_CH_OFFSET_CMD ":33#"
79 #define MDCP_GET_ALL_CH_OFFSET_CMD ":34#"
80 #define MDCP_SET_CH_100_CMD ":35%d#"
81 #define MDCP_GET_CH_OVERIDE_CMD ":36%d#"
82 #define MDCP_SET_CONTROLLER_MODE_CMD ":37%d#"
83 #define MDCP_GET_CONTROLLER_MODE_CMD ":38#"
84 #define MDCP_RESET_CH_100_CMD ":39%d#"
85 #define MDCP_GET_ALL_CH_POWER_CMD ":40#"
86 #define MDCP_SET_CH3_MODE_CMD ":41%d#"
87 #define MDCP_GET_CH3_MODE_CMD ":42#"
88 #define MDCP_SET_CH3_MANUAL_POWER_CMD ":43%d#"
92 #define MDCP_RESPONSE_LENGTH 64
93 #define MDCP_GET_CONTROLLER_CODE_RES "0%s"
94 #define MDCP_GET_VERSION_RES "1%d"
95 #define MDCP_REBOOT_RES ""
96 #define MDCP_GET_TRACKING_MODE_RES "3%d"
97 #define MDCP_SET_TRACKING_MODE_RES ""
98 #define MDCP_GET_TRACKING_OFFSET_RES "5%d"
99 #define MDCP_ZERO_TRACKING_OFFSET_RES ""
100 #define MDCP_DECREASE_TRACKING_OFFSET_RES ""
101 #define MDCP_INCREASE_TRACKING_OFFSET_RES ""
102 #define MDCP_GET_NUMBER_PROBES_RES "9%d"
103 #define MDCP_SAVE_CONTROLLER_SETTINGS_RES ""
104 #define MDCP_SET_DEFAULT_SETTINGS_RES ""
105 #define MDCP_GET_AMBIENT_TEMPERATURE_RES "a%f"
106 #define MDCP_GET_AMBIENT_OFFSET_RES "b%f"
107 #define MDCP_SET_AMBIENT_OFFSET_RES ""
108 #define MDCP_GET_HUMIDITY_RES "c%f"
109 #define MDCP_GET_DEWPOINT_RES "d%f"
110 #define MDCP_GET_TEMP_MODE_RES "e%d"
111 #define MDCP_SET_TEMP_MODE_C_RES ""
112 #define MDCP_SET_TEMP_MODE_F_RES ""
113 #define MDCP_SET_TRACKING_OFFSET_RES ""
114 #define MDCP_GET_MAC_ADDRESS_RES "h%s"
115 #define MDCP_GET_IP_ADDRESS_RES "i%s"
116 #define MDCP_GET_CHANNEL_TEMPS_RES "j%f,%f,%f,%f"
117 #define MDCP_SET_CH1_OFFSET_RES ""
118 #define MDCP_SET_CH2_OFFSET_RES ""
119 #define MDCP_SET_CH3_OFFSET_RES ""
120 #define MDCP_SET_CH4_OFFSET_RES ""
121 #define MDCP_ZERO_ALL_CH_OFFSET_RES ""
122 #define MDCP_GET_ALL_CH_OFFSET_RES "k%f,%f,%f,%f"
123 #define MDCP_SET_CH_100_RES ""
124 #define MDCP_GET_CH_OVERIDE_RES "t%d"
125 #define MDCP_SET_CONTROLLER_MODE_RES ""
126 #define MDCP_GET_CONTROLLER_MODE_RES "u%d"
127 #define MDCP_RESET_CH_100_RES ""
128 #define MDCP_GET_ALL_CH_POWER_RES "l%d,%d,%d,%d"
129 #define MDCP_SET_CH3_MODE_RES ""
130 #define MDCP_GET_CH3_MODE_RES "m%d"
131 #define MDCP_SET_CH3_MANUAL_POWER_RES ""
144 virtual bool ISNewNumber(
const char *dev,
const char *name,
double values[],
char *names[],
int n)
override;
145 virtual bool ISNewSwitch(
const char *dev,
const char *name,
ISState *states,
char *names[],
int n)
override;
161 int myDCP4Firmware = 0;
162 bool ch3ManualPower =
false;
163 float channelActive[4] = {1};
164 int msleep(
long duration);
165 bool sendCommand(
const char *
cmd,
char *response);
168 bool rebootController();
170 bool setChannelOffset(
unsigned int channel,
float value);
171 bool setAmbientOffset(
float value);
172 bool setTrackingMode(
unsigned int value);
173 bool setTrackingOffset(
int value);
174 bool setCh3Mode(
unsigned int value);
175 bool setCh3Output(
unsigned int value);
176 bool setChannelBoost(
unsigned int channel,
unsigned int value);
177 bool getActiveChannels();
187 static const uint8_t MDCP_READ_TIMEOUT { 10 };
188 static const long MDCP_SMALL_DELAY { 50 };
The Serial class manages connection with serial devices including Bluetooth. Serial communication is ...
The TCP class manages connection with devices over the network via TCP/IP. Upon successfull connectio...
Class to provide extended functionality for devices in addition to the functionality provided by INDI...
virtual const char * getDefaultName() override
virtual bool ISNewSwitch(const char *dev, const char *name, ISState *states, char *names[], int n) override
Process the client newSwitch command.
virtual bool initProperties() override
Initilize properties initial state and value. The child class must implement this function.
virtual void TimerHit() override
Callback function to be called once SetTimer duration elapses.
virtual bool updateProperties() override
updateProperties is called whenever there is a change in the CONNECTION status of the driver....
virtual ~MyDCP4ESP()=default
virtual bool ISNewNumber(const char *dev, const char *name, double values[], char *names[], int n) override
Process the client newNumber command.