extend info by name
This commit is contained in:
parent
5ee153bd6a
commit
9d8a8d9ebd
@ -35,7 +35,7 @@ String MqttConfig::exec(String params) {
|
|||||||
*out << "broker ... set the broker's address" << endl;
|
*out << "broker ... set the broker's address" << endl;
|
||||||
*out << " followed by a restart, you need to" << endl;
|
*out << " followed by a restart, you need to" << endl;
|
||||||
*out << " about a minute" << endl;
|
*out << " about a minute" << endl;
|
||||||
*out << "add ...... add an mbus client, params: token address period" << endl;
|
*out << "add ...... add an mbus client, params: token name address period" << endl;
|
||||||
*out << "del ...... delete an mbus client, params: index" << endl;
|
*out << "del ...... delete an mbus client, params: index" << endl;
|
||||||
*out << "reset .... reset configuration" << endl;
|
*out << "reset .... reset configuration" << endl;
|
||||||
*out << " followed by a restart, you need to" << endl;
|
*out << " followed by a restart, you need to" << endl;
|
||||||
@ -49,7 +49,8 @@ String MqttConfig::exec(String params) {
|
|||||||
for (uint8_t i = 0; i < NUM_OF_DEVICES; i++) {
|
for (uint8_t i = 0; i < NUM_OF_DEVICES; i++) {
|
||||||
*out << i << ": " << mc->m_mbusDevTuple[i].token << ", " <<
|
*out << i << ": " << mc->m_mbusDevTuple[i].token << ", " <<
|
||||||
mc->m_mbusDevTuple[i].address << ", " <<
|
mc->m_mbusDevTuple[i].address << ", " <<
|
||||||
mc->m_mbusDevTuple[i].queryPeriod << endl;
|
mc->m_mbusDevTuple[i].queryPeriod << ", " <<
|
||||||
|
mc->m_mbusDevTuple[i].name << endl;
|
||||||
}
|
}
|
||||||
*out << "Broker: " << mc->m_mqttBroker << endl;
|
*out << "Broker: " << mc->m_mqttBroker << endl;
|
||||||
*out << "Watchdog resets: " << WDOG_RSTCNT << endl;
|
*out << "Watchdog resets: " << WDOG_RSTCNT << endl;
|
||||||
@ -74,6 +75,7 @@ String MqttConfig::exec(String params) {
|
|||||||
strncpy(paramBuf, params.c_str(), sizeof(paramBuf));
|
strncpy(paramBuf, params.c_str(), sizeof(paramBuf));
|
||||||
paramPtr = paramBuf;
|
paramPtr = paramBuf;
|
||||||
char *tokenStr = 0;
|
char *tokenStr = 0;
|
||||||
|
char *nameStr = 0;
|
||||||
char *addressStr = 0;
|
char *addressStr = 0;
|
||||||
char *periodStr = 0;
|
char *periodStr = 0;
|
||||||
if ((paramPtr != 0) && (*paramPtr != 0)){
|
if ((paramPtr != 0) && (*paramPtr != 0)){
|
||||||
@ -83,6 +85,9 @@ String MqttConfig::exec(String params) {
|
|||||||
if ((paramPtr != 0) && (*paramPtr != 0)){
|
if ((paramPtr != 0) && (*paramPtr != 0)){
|
||||||
tokenStr = strsep(¶mPtr, " ");
|
tokenStr = strsep(¶mPtr, " ");
|
||||||
}
|
}
|
||||||
|
if ((paramPtr != 0) && (*paramPtr != 0)){
|
||||||
|
nameStr = strsep(¶mPtr, " ");
|
||||||
|
}
|
||||||
if ((paramPtr != 0) && (*paramPtr != 0)){
|
if ((paramPtr != 0) && (*paramPtr != 0)){
|
||||||
addressStr = strsep(¶mPtr, " ");
|
addressStr = strsep(¶mPtr, " ");
|
||||||
}
|
}
|
||||||
@ -92,20 +97,25 @@ String MqttConfig::exec(String params) {
|
|||||||
|
|
||||||
if ((tokenStr != 0) && (*tokenStr != 0) &&
|
if ((tokenStr != 0) && (*tokenStr != 0) &&
|
||||||
(addressStr != 0) && (*addressStr != 0) &&
|
(addressStr != 0) && (*addressStr != 0) &&
|
||||||
(periodStr != 0) && (*periodStr != 0)) {
|
(periodStr != 0) && (*periodStr != 0) &&
|
||||||
|
(nameStr != 0) && (*nameStr != 0)) {
|
||||||
int token = atoi(tokenStr);
|
int token = atoi(tokenStr);
|
||||||
bool validToken = ! ((token <= 0) || (token > 250));
|
bool validToken = ! ((token <= 0) || (token > 250));
|
||||||
|
bool validName = strlen(nameStr) < MAX_LEN_OF_NAME;
|
||||||
int address = atoi(addressStr);
|
int address = atoi(addressStr);
|
||||||
bool validAddress = ! ((address <= 0) || (address > 250));
|
bool validAddress = ! ((address <= 0) || (address > 250));
|
||||||
int period = atoi(periodStr);
|
int period = atoi(periodStr);
|
||||||
bool validPeriod = ! ((period < 10) || (period > 3600));
|
bool validPeriod = ! ((period < 10) || (period > 3600));
|
||||||
|
|
||||||
if (validToken && validAddress && validPeriod) {
|
if (validToken && validAddress && validPeriod && validName) {
|
||||||
uint8_t i = 0;
|
uint8_t i = 0;
|
||||||
while (mc->m_mbusDevTuple[i].address != 0) {
|
while (mc->m_mbusDevTuple[i].address != 0) {
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
mc->m_mbusDevTuple[i] = { (uint8_t)token, (uint8_t)address, (uint16_t)period };
|
mc->m_mbusDevTuple[i].token = (uint8_t)token;
|
||||||
|
mc->m_mbusDevTuple[i].address = (uint8_t)address;
|
||||||
|
mc->m_mbusDevTuple[i].queryPeriod = (uint16_t)period;
|
||||||
|
strcpy(mc->m_mbusDevTuple[i].name, nameStr);
|
||||||
configWrite(CONFIG_DEVICES, sizeof(mc->m_mbusDevTuple), (char*)mc->m_mbusDevTuple);
|
configWrite(CONFIG_DEVICES, sizeof(mc->m_mbusDevTuple), (char*)mc->m_mbusDevTuple);
|
||||||
res = "done";
|
res = "done";
|
||||||
} else {
|
} else {
|
||||||
@ -118,6 +128,9 @@ String MqttConfig::exec(String params) {
|
|||||||
if (! validPeriod) {
|
if (! validPeriod) {
|
||||||
*out << "Invalid period " << periodStr << endl;
|
*out << "Invalid period " << periodStr << endl;
|
||||||
}
|
}
|
||||||
|
if (! validName) {
|
||||||
|
*out << "Invalid name " << nameStr << endl;
|
||||||
|
}
|
||||||
res = "failure";
|
res = "failure";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -138,7 +151,11 @@ String MqttConfig::exec(String params) {
|
|||||||
res = "illegal index";
|
res = "illegal index";
|
||||||
} else {
|
} else {
|
||||||
*out << "Index " << arg0 << " (" << idx << ") to be deleted" << endl;
|
*out << "Index " << arg0 << " (" << idx << ") to be deleted" << endl;
|
||||||
mc->m_mbusDevTuple[idx] = {0, 0, 0, 0};
|
mc->m_mbusDevTuple[idx].token = 0;
|
||||||
|
strcpy(mc->m_mbusDevTuple[idx].name, "-");
|
||||||
|
mc->m_mbusDevTuple[idx].address = 0;
|
||||||
|
mc->m_mbusDevTuple[idx].queryPeriod = 0;
|
||||||
|
mc->m_mbusDevTuple[idx].timer = 0;
|
||||||
configWrite(CONFIG_DEVICES, sizeof(mc->m_mbusDevTuple), (char*)mc->m_mbusDevTuple);
|
configWrite(CONFIG_DEVICES, sizeof(mc->m_mbusDevTuple), (char*)mc->m_mbusDevTuple);
|
||||||
res = "done";
|
res = "done";
|
||||||
}
|
}
|
||||||
@ -167,14 +184,15 @@ MqttClient::MqttClient(RequestSender *meterBusMaster) : m_mqttConfig(this),
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void MqttClient::sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token) {
|
void MqttClient::sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token, char *name) {
|
||||||
char strbuf[1024];
|
char strbuf[1024];
|
||||||
memset(strbuf, sizeof(strbuf), 0);
|
memset(strbuf, sizeof(strbuf), 0);
|
||||||
PString buf = PString(strbuf, sizeof(strbuf));
|
PString buf = PString(strbuf, sizeof(strbuf));
|
||||||
|
|
||||||
|
|
||||||
buf << "{ \"metadata\": { \"device\": \"MeterbusHub\", " <<
|
buf << "{ \"metadata\": { \"device\": \"MeterbusHub\", " <<
|
||||||
"\"token\": " << token <<
|
"\"token\": " << token << ", " <<
|
||||||
|
"\"name\": \"" << String(name) << "\""
|
||||||
"}, " <<
|
"}, " <<
|
||||||
"\"data\": {" <<
|
"\"data\": {" <<
|
||||||
"\"uptime\": " << m_uptime << ", " <<
|
"\"uptime\": " << m_uptime << ", " <<
|
||||||
@ -205,9 +223,9 @@ void MqttClient::sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MqttClient::sendError(uint8_t code, uint8_t token) {
|
void MqttClient::sendError(uint8_t code, uint8_t token, char *name) {
|
||||||
String msg = String("{ \"metadata\": { \"device\": \"MeterbusHub\", \"error\": ")
|
String msg = String("{ \"metadata\": { \"device\": \"MeterbusHub\", \"error\": ")
|
||||||
+ code + String(", \"token\": ") + token + String(" }, \"data\": { \"uptime\": ") + m_uptime + String("}}");
|
+ code + String(", \"token\": ") + token + String(", \"name\": ") + String(name) + String(" }, \"data\": { \"uptime\": ") + m_uptime + String("}}");
|
||||||
if (m_disconnectState == 0) {
|
if (m_disconnectState == 0) {
|
||||||
//Serial << "publishing " << msg << endl;
|
//Serial << "publishing " << msg << endl;
|
||||||
//Serial << "length: " << msg.length() << endl;
|
//Serial << "length: " << msg.length() << endl;
|
||||||
@ -222,10 +240,12 @@ void MqttClient::begin(CmdServer *cmdServer) {
|
|||||||
|
|
||||||
if (! configIsValid()) {
|
if (! configIsValid()) {
|
||||||
for (uint8_t i = 0; i < NUM_OF_DEVICES; i++) {
|
for (uint8_t i = 0; i < NUM_OF_DEVICES; i++) {
|
||||||
m_mbusDevTuple[i] = { 0, 0, 0, 0 };
|
m_mbusDevTuple[i].token = 0;
|
||||||
|
strcpy(m_mbusDevTuple[i].name, "-");
|
||||||
|
m_mbusDevTuple[i].address = 0;
|
||||||
|
m_mbusDevTuple[i].queryPeriod = 0;
|
||||||
|
m_mbusDevTuple[i].timer = 0;
|
||||||
}
|
}
|
||||||
m_mbusDevTuple[0] = { 1, 0x53, 10, 0 }; // light meter
|
|
||||||
m_mbusDevTuple[1] = { 2, 32, 10, 0 }; // electrity
|
|
||||||
configWrite(CONFIG_DEVICES, sizeof(m_mbusDevTuple), (char*)m_mbusDevTuple);
|
configWrite(CONFIG_DEVICES, sizeof(m_mbusDevTuple), (char*)m_mbusDevTuple);
|
||||||
|
|
||||||
strcpy(m_mqttBroker, MQTT_BROKER_DEFAULT);
|
strcpy(m_mqttBroker, MQTT_BROKER_DEFAULT);
|
||||||
@ -318,7 +338,7 @@ void MqttClient::exec() {
|
|||||||
sendBuffer[2] = m_mbusDevTuple[m_deviceIdx].address;
|
sendBuffer[2] = m_mbusDevTuple[m_deviceIdx].address;
|
||||||
sendBuffer[3] = (uint8_t)(sendBuffer[1] + sendBuffer[2]);
|
sendBuffer[3] = (uint8_t)(sendBuffer[1] + sendBuffer[2]);
|
||||||
sendBuffer[4] = 0x16;
|
sendBuffer[4] = 0x16;
|
||||||
m_meterBusMaster->sendBufferReady(5, m_mbusDevTuple[m_deviceIdx].token, this);
|
m_meterBusMaster->sendBufferReady(5, m_mbusDevTuple[m_deviceIdx].token, m_mbusDevTuple[m_deviceIdx].name, this);
|
||||||
} else {
|
} else {
|
||||||
Serial << "no send buffer ready" << endl;
|
Serial << "no send buffer ready" << endl;
|
||||||
}
|
}
|
||||||
|
@ -16,9 +16,10 @@
|
|||||||
|
|
||||||
|
|
||||||
#define NUM_OF_DEVICES 10
|
#define NUM_OF_DEVICES 10
|
||||||
|
#define MAX_LEN_OF_NAME 16
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t token;
|
uint8_t token;
|
||||||
|
char name[MAX_LEN_OF_NAME+1];
|
||||||
uint8_t address;
|
uint8_t address;
|
||||||
uint16_t queryPeriod;
|
uint16_t queryPeriod;
|
||||||
uint16_t timer;
|
uint16_t timer;
|
||||||
@ -43,8 +44,8 @@ public:
|
|||||||
MqttClient(RequestSender *meterBusMaster);
|
MqttClient(RequestSender *meterBusMaster);
|
||||||
void begin(CmdServer *cmdServer);
|
void begin(CmdServer *cmdServer);
|
||||||
void exec();
|
void exec();
|
||||||
virtual void sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token);
|
virtual void sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token, char *name);
|
||||||
virtual void sendError(uint8_t code, uint8_t token);
|
virtual void sendError(uint8_t code, uint8_t token, char *name);
|
||||||
friend class MqttConfig;
|
friend class MqttConfig;
|
||||||
private:
|
private:
|
||||||
MqttConfig m_mqttConfig;
|
MqttConfig m_mqttConfig;
|
||||||
|
@ -10,15 +10,17 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
static bool __configIsValid = false;
|
static bool __configIsValid = false;
|
||||||
|
const uint32_t CONFIG_MAGIC_TOKEN = 0xAffe0003;
|
||||||
|
|
||||||
|
|
||||||
void configInit() {
|
void configInit() {
|
||||||
uint32_t magic;
|
uint32_t magic;
|
||||||
configRead(CONFIG_MAGIC, 4, (char*)&magic);
|
configRead(CONFIG_MAGIC, 4, (char*)&magic);
|
||||||
__configIsValid = (magic != 0xdeadbeef);
|
__configIsValid = (magic != CONFIG_MAGIC_TOKEN);
|
||||||
|
|
||||||
if (! __configIsValid) {
|
if (! __configIsValid) {
|
||||||
Serial << "Initialize config" << endl;
|
Serial << "Initialize config" << endl;
|
||||||
uint32_t setMagic = 0xdeadbeef;
|
uint32_t setMagic = CONFIG_MAGIC_TOKEN;
|
||||||
configWrite(CONFIG_MAGIC, 4, (char*)&setMagic);
|
configWrite(CONFIG_MAGIC, 4, (char*)&setMagic);
|
||||||
} else {
|
} else {
|
||||||
Serial << "Config valid" << endl;
|
Serial << "Config valid" << endl;
|
||||||
|
7
config.h
7
config.h
@ -16,9 +16,10 @@ void configReset();
|
|||||||
void configRead(int addr, uint8_t len, char *buffer);
|
void configRead(int addr, uint8_t len, char *buffer);
|
||||||
void configWrite(int addr, uint8_t len, char *buffer);
|
void configWrite(int addr, uint8_t len, char *buffer);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define CONFIG_MAGIC 0 // 4
|
#define CONFIG_MAGIC 0 // 4
|
||||||
#define CONFIG_DEVICES 4 // 64
|
#define CONFIG_BROKER 4 // 64
|
||||||
#define CONFIG_BROKER 68 // 64
|
#define CONFIG_DEVICES 68 // 64
|
||||||
#define CONFIG_NEXT 132
|
|
||||||
|
|
||||||
#endif /* CONFIG_H_ */
|
#endif /* CONFIG_H_ */
|
||||||
|
@ -6,14 +6,14 @@
|
|||||||
|
|
||||||
class ResponseCallback {
|
class ResponseCallback {
|
||||||
public:
|
public:
|
||||||
virtual void sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token) =0;
|
virtual void sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token, char *name) =0;
|
||||||
virtual void sendError(uint8_t code, uint8_t token) = 0;
|
virtual void sendError(uint8_t code, uint8_t token, char *name) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class RequestSender {
|
class RequestSender {
|
||||||
public:
|
public:
|
||||||
virtual uint8_t *getSendBuffer() =0;
|
virtual uint8_t *getSendBuffer() =0;
|
||||||
virtual void sendBufferReady(uint16_t bufLen, uint8_t token, ResponseCallback *responseCallback) =0;
|
virtual void sendBufferReady(uint16_t bufLen, uint8_t token, char *name, ResponseCallback *responseCallback) =0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -99,12 +99,12 @@ String SendOctets::exec(String params) {
|
|||||||
if (err) {
|
if (err) {
|
||||||
return "error";
|
return "error";
|
||||||
} else {
|
} else {
|
||||||
m_meterBusMaster->sendBufferReady(sendBufLen, 1, this);
|
m_meterBusMaster->sendBufferReady(sendBufLen, 1, 0, this);
|
||||||
return "success";
|
return "success";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SendOctets::sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token) {
|
void SendOctets::sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token, char *name) {
|
||||||
Print *out = m_server;
|
Print *out = m_server;
|
||||||
out->print("SO RESP: ");
|
out->print("SO RESP: ");
|
||||||
uint16_t i = 0;
|
uint16_t i = 0;
|
||||||
@ -122,7 +122,7 @@ void SendOctets::sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLe
|
|||||||
out->println("");
|
out->println("");
|
||||||
}
|
}
|
||||||
|
|
||||||
void SendOctets::sendError(uint8_t code, uint8_t token) {
|
void SendOctets::sendError(uint8_t code, uint8_t token, char *name) {
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case 1:
|
case 1:
|
||||||
m_server->println("SO RESP: no resp.");
|
m_server->println("SO RESP: no resp.");
|
||||||
@ -160,12 +160,13 @@ uint8_t *MeterBusMaster::getSendBuffer() {
|
|||||||
return m_expectResponse ? 0 : m_sendBuffer;
|
return m_expectResponse ? 0 : m_sendBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeterBusMaster::sendBufferReady(uint16_t sendBufLen, uint8_t token, ResponseCallback *responseCallback) {
|
void MeterBusMaster::sendBufferReady(uint16_t sendBufLen, uint8_t token, char *name, ResponseCallback *responseCallback) {
|
||||||
m_cmdReadyToSend = true;
|
m_cmdReadyToSend = true;
|
||||||
m_retransmitCount = 0;
|
m_retransmitCount = 0;
|
||||||
m_sendBufLen = sendBufLen;
|
m_sendBufLen = sendBufLen;
|
||||||
m_responseCallback = responseCallback;
|
m_responseCallback = responseCallback;
|
||||||
m_token = token;
|
m_token = token;
|
||||||
|
m_name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeterBusMaster::prepareResponse(bool err, uint8_t in) {
|
void MeterBusMaster::prepareResponse(bool err, uint8_t in) {
|
||||||
@ -177,7 +178,7 @@ void MeterBusMaster::prepareResponse(bool err, uint8_t in) {
|
|||||||
if (err) {
|
if (err) {
|
||||||
//Serial << "r1" << endl;
|
//Serial << "r1" << endl;
|
||||||
if (m_responseCallback != 0) {
|
if (m_responseCallback != 0) {
|
||||||
m_responseCallback->sendError(1, m_token);
|
m_responseCallback->sendError(1, m_token, m_name);
|
||||||
}
|
}
|
||||||
expectedChars = 0;
|
expectedChars = 0;
|
||||||
state = 0;
|
state = 0;
|
||||||
@ -225,7 +226,7 @@ void MeterBusMaster::prepareResponse(bool err, uint8_t in) {
|
|||||||
if (expectedChars == 0) {
|
if (expectedChars == 0) {
|
||||||
//Serial << "r9" << endl;
|
//Serial << "r9" << endl;
|
||||||
if (m_responseCallback != 0) {
|
if (m_responseCallback != 0) {
|
||||||
m_responseCallback->sendResponse(m_recvBuffer, m_recvBufLen, m_token);
|
m_responseCallback->sendResponse(m_recvBuffer, m_recvBufLen, m_token, m_name);
|
||||||
}
|
}
|
||||||
m_expectResponse = false;
|
m_expectResponse = false;
|
||||||
m_token = 0;
|
m_token = 0;
|
||||||
|
@ -24,8 +24,8 @@ public:
|
|||||||
virtual String getCmdName() { return "SO"; }
|
virtual String getCmdName() { return "SO"; }
|
||||||
virtual String getHelp() { return "Send octets"; }
|
virtual String getHelp() { return "Send octets"; }
|
||||||
virtual String exec(String params);
|
virtual String exec(String params);
|
||||||
virtual void sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token);
|
virtual void sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token, char *name);
|
||||||
virtual void sendError(uint8_t code, uint8_t token);
|
virtual void sendError(uint8_t code, uint8_t token, char *name);
|
||||||
private:
|
private:
|
||||||
RequestSender *m_meterBusMaster;
|
RequestSender *m_meterBusMaster;
|
||||||
};
|
};
|
||||||
@ -62,7 +62,7 @@ public:
|
|||||||
void begin(CmdServer *cmdServer);
|
void begin(CmdServer *cmdServer);
|
||||||
void exec();
|
void exec();
|
||||||
uint8_t *getSendBuffer();
|
uint8_t *getSendBuffer();
|
||||||
void sendBufferReady(uint16_t bufLen, uint8_t token, ResponseCallback *responseCallback);
|
void sendBufferReady(uint16_t bufLen, uint8_t token, char *name, ResponseCallback *responseCallback);
|
||||||
friend class CalibrationSupport;
|
friend class CalibrationSupport;
|
||||||
private:
|
private:
|
||||||
SendOctets m_sendOctets;
|
SendOctets m_sendOctets;
|
||||||
@ -75,6 +75,7 @@ private:
|
|||||||
uint16_t m_recvBufLen;
|
uint16_t m_recvBufLen;
|
||||||
uint8_t m_retransmitCount;
|
uint8_t m_retransmitCount;
|
||||||
uint8_t m_token;
|
uint8_t m_token;
|
||||||
|
char *m_name;
|
||||||
ResponseCallback *m_responseCallback;
|
ResponseCallback *m_responseCallback;
|
||||||
uint8_t m_sendBuffer[SEND_BUFFER_SIZE];
|
uint8_t m_sendBuffer[SEND_BUFFER_SIZE];
|
||||||
uint8_t m_recvBuffer[RECEIVE_BUFFER_SIZE];
|
uint8_t m_recvBuffer[RECEIVE_BUFFER_SIZE];
|
||||||
|
@ -7,11 +7,11 @@ MeterBusServer::MeterBusServer(uint16_t port, RequestSender *meterBusMaster) :
|
|||||||
m_server(port), m_client(255), m_meterBusMaster(meterBusMaster) {
|
m_server(port), m_client(255), m_meterBusMaster(meterBusMaster) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeterBusServer::sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token) {
|
void MeterBusServer::sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token, char *name) {
|
||||||
m_server.write(responseBuffer, responseBufferLength);
|
m_server.write(responseBuffer, responseBufferLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeterBusServer::sendError(uint8_t code) {
|
void MeterBusServer::sendError(uint8_t code, uint8_t token, char *name) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ void MeterBusServer::exec() {
|
|||||||
*(sendBuffer + sendBufLen) = ch;
|
*(sendBuffer + sendBufLen) = ch;
|
||||||
sendBufLen++;
|
sendBufLen++;
|
||||||
}
|
}
|
||||||
m_meterBusMaster->sendBufferReady(sendBufLen, 1, this);
|
m_meterBusMaster->sendBufferReady(sendBufLen, 1, 0, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,8 +18,8 @@ public:
|
|||||||
MeterBusServer(uint16_t port, RequestSender *meterBusMaster);
|
MeterBusServer(uint16_t port, RequestSender *meterBusMaster);
|
||||||
void begin();
|
void begin();
|
||||||
void exec();
|
void exec();
|
||||||
virtual void sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token);
|
virtual void sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength, uint8_t token, char *name);
|
||||||
virtual void sendError(uint8_t code);
|
virtual void sendError(uint8_t code, uint8_t token, char *name);
|
||||||
private:
|
private:
|
||||||
EthernetServer m_server;
|
EthernetServer m_server;
|
||||||
EthernetClient m_client;
|
EthernetClient m_client;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user