41#define CDRIVER_VERSION_MAJOR 2
42#define CDRIVER_VERSION_MINOR 0
52#define MDCP_CMD_LENGTH 32
53#define MDCP_CMD_TERMINATOR "#"
54#define MDCP_GET_CONTROLLER_CODE_CMD ":00#"
55#define MDCP_GET_VERSION_CMD ":01#"
56#define MDCP_REBOOT_CMD ":02#"
57#define MDCP_GET_TRACKING_MODE_CMD ":03#"
58#define MDCP_SET_TRACKING_MODE_CMD ":04%1u#"
59#define MDCP_GET_TRACKING_OFFSET_CMD ":05#"
60#define MDCP_ZERO_TRACKING_OFFSET_CMD ":06#"
61#define MDCP_DECREASE_TRACKING_OFFSET_CMD ":07#"
62#define MDCP_INCREASE_TRACKING_OFFSET_CMD ":08#"
63#define MDCP_GET_NUMBER_PROBES_CMD ":09#"
64#define MDCP_SAVE_CONTROLLER_SETTINGS_CMD ":10#"
65#define MDCP_SET_DEFAULT_SETTINGS_CMD ":11#"
66#define MDCP_GET_AMBIENT_TEMPERATURE_CMD ":12#"
67#define MDCP_GET_AMBIENT_OFFSET_CMD ":13#"
68#define MDCP_SET_AMBIENT_OFFSET_CMD ":14%1.2f#"
69#define MDCP_GET_HUMIDITY_CMD ":15#"
70#define MDCP_GET_DEWPOINT_CMD ":16#"
71#define MDCP_GET_TEMP_MODE_CMD ":17#"
72#define MDCP_SET_TEMP_MODE_C_CMD ":181#"
73#define MDCP_SET_TEMP_MODE_F_CMD ":182#"
74#define MDCP_SET_TRACKING_OFFSET_CMD ":19%d#"
75#define MDCP_GET_MAC_ADDRESS_CMD ":26#"
76#define MDCP_GET_IP_ADDRESS_CMD ":27#"
77#define MDCP_GET_CHANNEL_TEMPS_CMD ":28#"
78#define MDCP_SET_CH1_OFFSET_CMD ":29%01.2f#"
79#define MDCP_SET_CH2_OFFSET_CMD ":30%01.2f#"
80#define MDCP_SET_CH3_OFFSET_CMD ":31%01.2f#"
81#define MDCP_SET_CH4_OFFSET_CMD ":32%01.2f#"
82#define MDCP_ZERO_ALL_CH_OFFSET_CMD ":33#"
83#define MDCP_GET_ALL_CH_OFFSET_CMD ":34#"
84#define MDCP_SET_CH_100_CMD ":35%d#"
85#define MDCP_GET_CH_OVERIDE_CMD ":36%d#"
86#define MDCP_SET_CONTROLLER_MODE_CMD ":37%d#"
87#define MDCP_GET_CONTROLLER_MODE_CMD ":38#"
88#define MDCP_RESET_CH_100_CMD ":39%d#"
89#define MDCP_GET_ALL_CH_POWER_CMD ":40#"
90#define MDCP_SET_CH3_MODE_CMD ":41%d#"
91#define MDCP_GET_CH3_MODE_CMD ":42#"
92#define MDCP_SET_CH3_MANUAL_POWER_CMD ":43%d#"
96#define MDCP_RESPONSE_LENGTH 64
97#define MDCP_GET_CONTROLLER_CODE_RES "0%s"
98#define MDCP_GET_VERSION_RES "1%d"
99#define MDCP_REBOOT_RES ""
100#define MDCP_GET_TRACKING_MODE_RES "3%d"
101#define MDCP_SET_TRACKING_MODE_RES ""
102#define MDCP_GET_TRACKING_OFFSET_RES "5%d"
103#define MDCP_ZERO_TRACKING_OFFSET_RES ""
104#define MDCP_DECREASE_TRACKING_OFFSET_RES ""
105#define MDCP_INCREASE_TRACKING_OFFSET_RES ""
106#define MDCP_GET_NUMBER_PROBES_RES "9%d"
107#define MDCP_SAVE_CONTROLLER_SETTINGS_RES ""
108#define MDCP_SET_DEFAULT_SETTINGS_RES ""
109#define MDCP_GET_AMBIENT_TEMPERATURE_RES "a%f"
110#define MDCP_GET_AMBIENT_OFFSET_RES "b%f"
111#define MDCP_SET_AMBIENT_OFFSET_RES ""
112#define MDCP_GET_HUMIDITY_RES "c%f"
113#define MDCP_GET_DEWPOINT_RES "d%f"
114#define MDCP_GET_TEMP_MODE_RES "e%d"
115#define MDCP_SET_TEMP_MODE_C_RES ""
116#define MDCP_SET_TEMP_MODE_F_RES ""
117#define MDCP_SET_TRACKING_OFFSET_RES ""
118#define MDCP_GET_MAC_ADDRESS_RES "h%s"
119#define MDCP_GET_IP_ADDRESS_RES "i%s"
120#define MDCP_GET_CHANNEL_TEMPS_RES "j%f,%f,%f,%f"
121#define MDCP_SET_CH1_OFFSET_RES ""
122#define MDCP_SET_CH2_OFFSET_RES ""
123#define MDCP_SET_CH3_OFFSET_RES ""
124#define MDCP_SET_CH4_OFFSET_RES ""
125#define MDCP_ZERO_ALL_CH_OFFSET_RES ""
126#define MDCP_GET_ALL_CH_OFFSET_RES "k%f,%f,%f,%f"
127#define MDCP_SET_CH_100_RES ""
128#define MDCP_GET_CH_OVERIDE_RES "t%d"
129#define MDCP_SET_CONTROLLER_MODE_RES ""
130#define MDCP_GET_CONTROLLER_MODE_RES "u%d"
131#define MDCP_RESET_CH_100_RES ""
132#define MDCP_GET_ALL_CH_POWER_RES "l%d,%d,%d,%d"
133#define MDCP_SET_CH3_MODE_RES ""
134#define MDCP_GET_CH3_MODE_RES "m%d"
135#define MDCP_SET_CH3_MANUAL_POWER_RES ""
146 virtual bool SetPowerPort(
size_t port,
bool enabled)
override;
147 virtual bool SetDewPort(
size_t port,
bool enabled,
double dutyCycle)
override;
148 virtual bool SetVariablePort(
size_t port,
bool enabled,
double voltage)
override;
152 virtual bool SetUSBPort(
size_t port,
bool enabled)
override;
157 virtual bool ISNewNumber(
const char *dev,
const char *name,
double values[],
char *names[],
int n)
override;
158 virtual bool ISNewSwitch(
const char *dev,
const char *name,
ISState *states,
char *names[],
int n)
override;
159 virtual bool ISNewText(
const char *dev,
const char *name,
char *texts[],
char *names[],
int n)
override;
176 int myDCP4Firmware = 0;
177 float channelActive[4] = {1};
178 int msleep(
long duration);
179 bool sendCommand(
const char *
cmd,
char *response);
182 bool rebootController();
184 bool setChannelOffset(
unsigned int channel,
float value);
185 bool setAmbientOffset(
float value);
186 bool setTrackingMode(
unsigned int value);
187 bool setTrackingOffset(
int value);
188 bool setCh3Mode(
unsigned int value);
189 bool setCh3Output(
unsigned int value);
190 bool setChannelBoost(
unsigned int channel,
unsigned int value);
191 bool getActiveChannels();
201 static const uint8_t MDCP_READ_TIMEOUT { 10 };
202 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 successful connection...
Class to provide extended functionality for devices in addition to the functionality provided by INDI...
virtual bool SetAutoDewEnabled(size_t port, bool enabled) override
SetAutoDewEnabled Enable/disable automatic dew control.
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 SetPowerPort(size_t port, bool enabled) override
SetPowerPort Set power port on/off.
virtual bool initProperties() override
Initialize 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 CyclePower() override
CyclePower Cycle power to all ports.
virtual bool ISNewText(const char *dev, const char *name, char *texts[], char *names[], int n) override
Process the client newSwitch command.
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.
virtual bool SetLEDEnabled(bool enabled) override
SetLEDEnabled Enable/disable power LEDs.
virtual bool saveConfigItems(FILE *fp) override
saveConfigItems Save specific properties in the provide config file handler. Child class usually over...
virtual bool SetDewPort(size_t port, bool enabled, double dutyCycle) override
SetDewPort Set DEW/Dew port duty cycle.
virtual bool SetUSBPort(size_t port, bool enabled) override
SetUSBPort Set USB port on/off.
virtual bool SetVariablePort(size_t port, bool enabled, double voltage) override
SetVariablePort Set variable voltage port.