Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes
Fix request ID defaulting to "null" string
bugfix: Device state handling
Fix
toString(Request)
not available compiler errorFix issue with TX DONE interrupt on RP2040
Fix Modbus GenericRequest 'bad_node' error
Bugfix: Cannot flush uart from ISR (RS485)
Fix possible double-call during modbus execute event
Bugfix: activeConfig not set in Serial
Fix uninitialised default values
Fix RFSwitch output initialisation and idling
Improvements
Use nested namespaces (C++17)
Device::nodeIdMax()
is calculated, doesn't need to be virtualTidy up Device factory inheritance
Add devmgr
findDevice
method template to handle up-castingAdd device parameter to support minimum interval between transactions
Put
toString
function overloads in global namespaceOmit
command
from JSON responses if undefinedImprove DMX512
fade
optionquery
commandRequest::nodeSet()
andnodeAdjust()
, virtualisesetValue()
Improve RS485
Serial::open()
Revise modbus PDU structure
RS485 devices can override default transaction timeout
Add modbus
GenericRequest
support, plus transfer callback hookAllow RS485 per-request Slave Address override (e.g. for broadcast requests)
Reduce RS485 debug verbosity
Complete RS485 receive using timer to avoid premature request completion. This enables support for general RS232 communication where responses may be a bit bursty.
Add Custom class. May serve as a useful starting point for new devices.
New devices
Add RI-D35 modbus energy meter
Add STM8Relay modbus relay board support.
update
command to change stm8relay slave addressAdd NT18B07 NTC temperature sensor board
Add STS fan controller sample project
This is a real application used to control three PWM fans for cooling a hybrid solar inverter.
Uses RPi Pico as hardware can generate PWM and measure speed.