Skip to content

Commit

Permalink
rename config member
Browse files Browse the repository at this point in the history
  • Loading branch information
zivillian committed Jun 17, 2022
1 parent a8eee1b commit eb31416
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 54 deletions.
22 changes: 11 additions & 11 deletions include/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,22 @@
private:
Preferences *_prefs;
int16_t _tcpPort;
unsigned long _baud;
uint32_t _serialConfig;
unsigned long _modbusBaudRate;
uint32_t _modbusSerialConfig;
public:
Config();
void begin(Preferences *prefs);
uint16_t getTcpPort();
unsigned long getBaud();
uint32_t getSerialConfig();
void setTcpPort(uint16_t value);
void setBaud(unsigned long value);
uint8_t getDataBits();
void setDataBits(uint8_t value);
uint8_t getParity();
void setParity(uint8_t value);
uint8_t getStopBits();
void setStopBits(uint8_t value);
unsigned long getModbusBaudRate();
uint32_t getModbusSerialConfig();
void setModbusBaudRate(unsigned long value);
uint8_t getModbusDataBits();
void setModbusDataBits(uint8_t value);
uint8_t getModbusParity();
void setModbusParity(uint8_t value);
uint8_t getModbusStopBits();
void setModbusStopBits(uint8_t value);
};
#ifdef DEBUG
#define dbg(x...) debugSerial.print(x);
Expand Down
68 changes: 34 additions & 34 deletions src/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,75 +3,75 @@
Config::Config()
:_prefs(NULL)
,_tcpPort(502)
,_baud(9600)
,_serialConfig(SERIAL_8N1)
,_modbusBaudRate(9600)
,_modbusSerialConfig(SERIAL_8N1)
{}

void Config::begin(Preferences *prefs)
{
_prefs = prefs;
_tcpPort = _prefs->getUShort("tcpPort", _tcpPort);
_baud = _prefs->getULong("baud", _baud);
_serialConfig = _prefs->getULong("serialConfig", _serialConfig);
_modbusBaudRate = _prefs->getULong("modbusBaudRate", _modbusBaudRate);
_modbusSerialConfig = _prefs->getULong("modbusSerialConfig", _modbusSerialConfig);
}

uint16_t Config::getTcpPort(){
return _tcpPort;
}

unsigned long Config::getBaud(){
return _baud;
}

uint32_t Config::getSerialConfig(){
return _serialConfig;
}

void Config::setTcpPort(uint16_t value){
if (_tcpPort == value) return;
_tcpPort = value;
_prefs->putUShort("tcpPort", _tcpPort);
}

void Config::setBaud(unsigned long value){
if (_baud == value) return;
_baud = value;
_prefs->putULong("baud", _baud);
uint32_t Config::getModbusSerialConfig(){
return _modbusSerialConfig;
}

unsigned long Config::getModbusBaudRate(){
return _modbusBaudRate;
}

void Config::setModbusBaudRate(unsigned long value){
if (_modbusBaudRate == value) return;
_modbusBaudRate = value;
_prefs->putULong("modbusBaudRate", _modbusBaudRate);
}

uint8_t Config::getDataBits(){
return ((_serialConfig & 0xc) >> 2) + 5;
uint8_t Config::getModbusDataBits(){
return ((_modbusSerialConfig & 0xc) >> 2) + 5;
}

void Config::setDataBits(uint8_t value){
auto dataBits = getDataBits();
void Config::setModbusDataBits(uint8_t value){
auto dataBits = getModbusDataBits();
value -= 5;
value = (value << 2) & 0xc;
if (value == dataBits) return;
_serialConfig = (_serialConfig & 0xfffffff3) | value;
_prefs->putULong("serialConfig", _serialConfig);
_modbusSerialConfig = (_modbusSerialConfig & 0xfffffff3) | value;
_prefs->putULong("modbusSerialConfig", _modbusSerialConfig);
}

uint8_t Config::getParity(){
return _serialConfig & 0x3;
uint8_t Config::getModbusParity(){
return _modbusSerialConfig & 0x3;
}

void Config::setParity(uint8_t value){
auto parity = getParity();
void Config::setModbusParity(uint8_t value){
auto parity = getModbusParity();
value = value & 0x3;
if (parity == value) return;
_serialConfig = (_serialConfig & 0xfffffffc) | value;
_prefs->putULong("serialConfig", _serialConfig);
_modbusSerialConfig = (_modbusSerialConfig & 0xfffffffc) | value;
_prefs->putULong("modbusSerialConfig", _modbusSerialConfig);
}

uint8_t Config::getStopBits(){
return (_serialConfig & 0x30) >> 4;
uint8_t Config::getModbusStopBits(){
return (_modbusSerialConfig & 0x30) >> 4;
}

void Config::setStopBits(uint8_t value){
auto stopbits = getStopBits();
void Config::setModbusStopBits(uint8_t value){
auto stopbits = getModbusStopBits();
value = (value << 4) & 0x30;
if (stopbits == value) return;
_serialConfig = (_serialConfig & 0xffffffcf) | value;
_prefs->putULong("serialConfig", _serialConfig);
_modbusSerialConfig = (_modbusSerialConfig & 0xffffffcf) | value;
_prefs->putULong("modbusSerialConfig", _modbusSerialConfig);
}
2 changes: 1 addition & 1 deletion src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ void setup() {
wm.autoConnect();
dbgln("[wifi] finished");
dbgln("[modbus] start");
modbusSerial.begin(config.getBaud(), config.getSerialConfig());
modbusSerial.begin(config.getModbusBaudRate(), config.getModbusSerialConfig());
MBclient.setTimeout(1000);
MBclient.begin();
for (uint8_t i = 1; i < 248; i++)
Expand Down
16 changes: 8 additions & 8 deletions src/pages.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,23 +63,23 @@ void setupPages(AsyncWebServer *server, ModbusClientRTU *rtu, ModbusBridgeWiFi *
"<label for=\"baud\">Modbus baud rate</label>"
"</td>"
"<td>");
response->printf("<input type=\"number\" min=\"0\" id=\"baud\" name=\"baud\" value=\"%d\">", config->getBaud());
response->printf("<input type=\"number\" min=\"0\" id=\"baud\" name=\"baud\" value=\"%d\">", config->getModbusBaudRate());
response->print("</td>"
"</tr>"
"<tr>"
"<td>"
"<label for=\"data\">Modbus data bits</label>"
"</td>"
"<td>");
response->printf("<input type=\"number\" min=\"5\" max=\"8\" id=\"data\" name=\"data\" value=\"%d\">", config->getDataBits());
response->printf("<input type=\"number\" min=\"5\" max=\"8\" id=\"data\" name=\"data\" value=\"%d\">", config->getModbusDataBits());
response->print("</td>"
"</tr>"
"<tr>"
"<td>"
"<label for=\"parity\">Modbus parity</label>"
"</td>"
"<td>");
response->printf("<select id=\"parity\" name=\"parity\" data-value=\"%d\">", config->getParity());
response->printf("<select id=\"parity\" name=\"parity\" data-value=\"%d\">", config->getModbusParity());
response->print("<option value=\"0\">None</option>"
"<option value=\"2\">Even</option>"
"<option value=\"3\">Odd</option>"
Expand All @@ -91,7 +91,7 @@ void setupPages(AsyncWebServer *server, ModbusClientRTU *rtu, ModbusBridgeWiFi *
"<label for=\"stop\">Modbus stop bits</label>"
"</td>"
"<td>");
response->printf("<select id=\"stop\" name=\"stop\" data-value=\"%d\">", config->getStopBits());
response->printf("<select id=\"stop\" name=\"stop\" data-value=\"%d\">", config->getModbusStopBits());
response->print("<option value=\"1\">1 bit</option>"
"<option value=\"2\">1.5 bits</option>"
"<option value=\"3\">2 bits</option>"
Expand Down Expand Up @@ -122,22 +122,22 @@ void setupPages(AsyncWebServer *server, ModbusClientRTU *rtu, ModbusBridgeWiFi *
}
if (request->hasParam("baud", true)){
auto baud = request->getParam("baud", true)->value().toInt();
config->setBaud(baud);
config->setModbusBaudRate(baud);
dbgln("[webserver] saved baud");
}
if (request->hasParam("data", true)){
auto data = request->getParam("data", true)->value().toInt();
config->setDataBits(data);
config->setModbusDataBits(data);
dbgln("[webserver] saved data");
}
if (request->hasParam("parity", true)){
auto parity = request->getParam("parity", true)->value().toInt();
config->setParity(parity);
config->setModbusParity(parity);
dbgln("[webserver] saved parity");
}
if (request->hasParam("stop", true)){
auto stop = request->getParam("stop", true)->value().toInt();
config->setStopBits(stop);
config->setModbusStopBits(stop);
dbgln("[webserver] saved stop");
}
request->redirect("/");
Expand Down

0 comments on commit eb31416

Please sign in to comment.