add calibrationSupport
This commit is contained in:
@ -37,6 +37,17 @@ uint16_t stringToUInt8(String i, uint8_t index) {
|
|||||||
// =====================================================================================================
|
// =====================================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
String CalibrationSupport::exec(String params) {
|
||||||
|
MeterBusMaster *mbm = (MeterBusMaster*)m_meterBusMaster;
|
||||||
|
if (params.equalsIgnoreCase("sample")) {
|
||||||
|
mbm->sample();
|
||||||
|
} else if (params.equalsIgnoreCase("hold")) {
|
||||||
|
mbm->hold();
|
||||||
|
}
|
||||||
|
return "Done";
|
||||||
|
}
|
||||||
|
|
||||||
String MeasureCurrent::exec(String params) {
|
String MeasureCurrent::exec(String params) {
|
||||||
int currentInVal = analogRead(CURRENT_IN);
|
int currentInVal = analogRead(CURRENT_IN);
|
||||||
|
|
||||||
@ -108,10 +119,12 @@ void SendOctets::sendError(uint8_t code) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// =====================================================================================================
|
// =====================================================================================================
|
||||||
|
|
||||||
|
|
||||||
MeterBusMaster::MeterBusMaster() : m_sendOctets(this), m_measureCurrent(this),
|
MeterBusMaster::MeterBusMaster() : m_sendOctets(this), m_measureCurrent(this),
|
||||||
|
m_calibrationSupport(this),
|
||||||
m_cmdReadyToSend(false), m_cmdReadyFromRecv(false), m_expectResponse(false),
|
m_cmdReadyToSend(false), m_cmdReadyFromRecv(false), m_expectResponse(false),
|
||||||
m_sendBufLen(0), m_recvBufLen(0), m_retransmitCount(0), m_responseCallback(0) {
|
m_sendBufLen(0), m_recvBufLen(0), m_retransmitCount(0), m_responseCallback(0) {
|
||||||
pinMode(RX_EN_PIN, OUTPUT);
|
pinMode(RX_EN_PIN, OUTPUT);
|
||||||
@ -122,7 +135,8 @@ MeterBusMaster::MeterBusMaster() : m_sendOctets(this), m_measureCurrent(this),
|
|||||||
|
|
||||||
void MeterBusMaster::begin(CmdServer *cmdServer) {
|
void MeterBusMaster::begin(CmdServer *cmdServer) {
|
||||||
m_sendOctets.registerYourself(cmdServer);
|
m_sendOctets.registerYourself(cmdServer);
|
||||||
m_measureCurrent.registerYourself(cmdServer);
|
m_measureCurrent.registerYourself(cmdServer);
|
||||||
|
m_calibrationSupport.registerYourself(cmdServer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ const uint8_t RX_DISABLE = HIGH;
|
|||||||
|
|
||||||
const uint8_t CURRENT_IN = A0;
|
const uint8_t CURRENT_IN = A0;
|
||||||
const double U_UNIT = 4.9; // mV
|
const double U_UNIT = 4.9; // mV
|
||||||
const double R_SHUNT = 11.0;
|
const double R_SHUNT = 10.0;
|
||||||
|
|
||||||
|
|
||||||
class SendOctets : public Cmd, public ResponseCallback {
|
class SendOctets : public Cmd, public ResponseCallback {
|
||||||
@ -40,6 +40,17 @@ private:
|
|||||||
RequestSender *m_meterBusMaster;
|
RequestSender *m_meterBusMaster;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class CalibrationSupport : public Cmd {
|
||||||
|
public:
|
||||||
|
CalibrationSupport(RequestSender *meterBusMaster) : m_meterBusMaster(meterBusMaster) {}
|
||||||
|
virtual String getCmdName() { return "CS"; }
|
||||||
|
virtual String getHelp() { return "Calibration Support"; }
|
||||||
|
virtual String exec(String params);
|
||||||
|
private:
|
||||||
|
RequestSender *m_meterBusMaster;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const uint8_t SEND_BUFFER_SIZE = 30;
|
const uint8_t SEND_BUFFER_SIZE = 30;
|
||||||
const uint8_t RECEIVE_BUFFER_SIZE = 180;
|
const uint8_t RECEIVE_BUFFER_SIZE = 180;
|
||||||
@ -51,9 +62,11 @@ public:
|
|||||||
void exec();
|
void exec();
|
||||||
uint8_t *getSendBuffer();
|
uint8_t *getSendBuffer();
|
||||||
void sendBufferReady(uint16_t bufLen, ResponseCallback *responseCallback);
|
void sendBufferReady(uint16_t bufLen, ResponseCallback *responseCallback);
|
||||||
|
friend class CalibrationSupport;
|
||||||
private:
|
private:
|
||||||
SendOctets m_sendOctets;
|
SendOctets m_sendOctets;
|
||||||
MeasureCurrent m_measureCurrent;
|
MeasureCurrent m_measureCurrent;
|
||||||
|
CalibrationSupport m_calibrationSupport;
|
||||||
bool m_cmdReadyToSend;
|
bool m_cmdReadyToSend;
|
||||||
bool m_cmdReadyFromRecv;
|
bool m_cmdReadyFromRecv;
|
||||||
bool m_expectResponse;
|
bool m_expectResponse;
|
||||||
|
Reference in New Issue
Block a user