Skip to content

Commit

Permalink
Update WiFiManager library
Browse files Browse the repository at this point in the history
  • Loading branch information
soylentOrange committed Oct 14, 2024
1 parent e0bacc3 commit 7f040ac
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 3 deletions.
2 changes: 1 addition & 1 deletion platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
platform = espressif32
framework = arduino
lib_deps =
https://github.com/tzapu/WiFiManager.git
https://github.com/PBRunot/WiFiManager.git#0404abde0d9d2da5c09be7d0cc669b1188bb1c81
https://github.com/me-no-dev/ESPAsyncWebServer.git
https://github.com/eModbus/eModbus.git
https://github.com/bblanchon/ArduinoJson.git
Expand Down
31 changes: 29 additions & 2 deletions src/localmodbus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ ModbusMessage FC02(ModbusMessage request) {
}

// FC03: worker do serve Modbus function code 0x03 (READ_HOLD_REGISTER)
// Gets the current temperature (from address 0x00 with a length of 4 Bytes)
ModbusMessage FC03(ModbusMessage request) {
uint16_t address; // requested register address
uint16_t words; // requested number of registers
Expand All @@ -141,6 +142,32 @@ ModbusMessage FC03(ModbusMessage request) {
return response;
}

// FC04: worker do serve Modbus function code 0x04 (READ_INPUT_REGISTER)
// Gets the current temperature (from address 0x00 with a length of 4 Bytes)
ModbusMessage FC04(ModbusMessage request) {
uint16_t address; // requested register address
uint16_t words; // requested number of registers
ModbusMessage response; // response message to be sent back

LOG_D("Worker for FC04\n");

// get request values
request.get(2, address);
request.get(4, words);

// return current temperature
if (address == 0 && words == 2) {
// Looks okay. Set up message with serverID, FC and length of data
response.add(request.getServerID(), request.getFunctionCode(), (uint8_t)(words * 2));
// add current temperature to response
response.add(temperatureRead());
} else {
// Set up error response.
response.setError(request.getServerID(), request.getFunctionCode(), ILLEGAL_DATA_ADDRESS);
}
return response;
}

// FC05: worker do serve Modbus function code 0x05 (WRITE_COIL)
ModbusMessage FC05(ModbusMessage request) {
uint16_t address; // requested coil
Expand Down Expand Up @@ -255,14 +282,14 @@ void setupLocalModbus(uint8_t serverID, ModbusClientRTU *rtu, ModbusBridgeWiFi *
_bridge = bridge;
_config = config;
_serverID = serverID;
bridge->registerWorker(serverID, READ_HOLD_REGISTER, &FC03);
//bridge->registerWorker(serverID, READ_HOLD_REGISTER, &FC03);
bridge->registerWorker(serverID, READ_INPUT_REGISTER, &FC04);
bridge->registerWorker(serverID, DIAGNOSTICS_SERIAL, &FC08);
}

void enableCoilWorkers() {
_bridge->registerWorker(_serverID, READ_COIL, &FC01);
_bridge->registerWorker(_serverID, WRITE_COIL, &FC05);
// _bridge->registerWorker(_serverID, WRITE_MULT_COILS, &FC0F);
}

void enableInputWorkers() {
Expand Down

0 comments on commit 7f040ac

Please sign in to comment.