RFPPF 4.0.3
See the version list below for details.
dotnet add package RFPPF --version 4.0.3
NuGet\Install-Package RFPPF -Version 4.0.3
<PackageReference Include="RFPPF" Version="4.0.3" />
<PackageVersion Include="RFPPF" Version="4.0.3" />
<PackageReference Include="RFPPF" />
paket add RFPPF --version 4.0.3
#r "nuget: RFPPF, 4.0.3"
#:package RFPPF@4.0.3
#addin nuget:?package=RFPPF&version=4.0.3
#tool nuget:?package=RFPPF&version=4.0.3
RFPPF {#mainpage}
RF-Networks Protocol Parser Framework
LICENSE
Copyright (C) 2019 RF-Networks Ltd. All Rights Reserved.
Changelog
3.0.0 - First version
3.0.2 - Check-In message voltage fix
- Check-In message voltage byte(15) is divided to 62.53.0.3 - Old protocol tag periodic message fix
- Old protocol tag periodic message max voltage raised up to 5V3.0.4 - GPIO sensor message change
- GPIO sensor message added trigger mask and value mask3.0.5 - GPS message added
- Receiver GPS message added3.0.6 - Old protocol receiver configuration message fix
- Receiver Configuration message bugfix3.0.7 - Old protocol receiver configuration messages added
- Receiver Configuration Voltage, External Voltage, Temperature messages added - Receiver Modem Voltage message added3.0.8 - Old protocol receiver configuration messages fix
- Receiver Configuration message bugfix3.0.9 - Old protocol receiver configuration external voltage messages fix
- Receiver Configuration External voltage message DataSize exception fix bugfix3.0.10 - Minor bugfixes
- Minor bugfixes3.0.11 - Old protocol receiver configuration temperature messages fix
- Receiver Configuration Temperature message DataSize exception fix bugfix (old versions of radio send 2 bytes instead of 1)3.0.12 - Java version fix
- Java version bugfixes3.0.13 - New message types added
- Mesh BME280 message changed - Mesh GPIO16, Analog3 messages added3.0.14 - Message factory fix for RFM protocol
- ParseMeshMessage function added3.0.15 - Bugfixes
- Minor bugfixes and Mesh message ToString function implemented3.0.16 - Bugfixes
- Mesh protocol parsing bugfix3.0.17 - Mesh scheduler messages
- Mesh scheduler messages implementation - Minor bugfixes3.0.18 - Mesh scheduler event messages
- Mesh scheduler event messages implementation3.0.19 - Bugfix
- Mesh set scheduler messages parsing bugfix3.0.20 - Bugfix
- Java version fixes3.0.21 - DS18B20 Sensor Bugfix
- DS18B20 Sensor mesh message size fixes3.0.22 - DS18B20 Sensor Bugfix
- DS18B20 Sensor mesh message temperature fixes3.0.23 - Bugfix
- Minor bugfixes3.0.24 - DiagnosticTestInfoMessage change
- DiagnosticTestInfoMessage structure change3.0.25 - DiagnosticTestInfoMessage fixes
- DiagnosticTestInfoMessage fixes3.0.26 - TesterCommandMessage fix
- TesterCommandMessage fix3.0.27 - TagAveragePulsesPerSecondMessage added
- TagAveragePulsesPerSecondMessage message type added3.0.28 - Old protocol parser fix
- Old protocol parser fix3.0.29 - TagAveragePulsesPerSecondMessage change
- TagAveragePulsesPerSecondMessage message structure change (Voltage removed)3.0.30 - TagAveragePulsesPerSecondMessage Java fix
- TagAveragePulsesPerSecondMessage message Java fix3.0.31 - C# Bug fix
- Data sensor missing messages type fix3.0.32 - Receiver Weight & Modbus Meter messages added
- Receiver Weight message added - Receiver Modbus Meter message added3.0.33 - Mesh protocol version 2 implemented
- Mesh protocol version 2 implemented3.0.34 - Mesh protocol check out message added
- Mesh protocol check out message added3.0.35 - DS18B20 Sensor Message parsing fix
- DS18B20 Sensor Message parsing fix3.0.36 - Old protocol Acknowledge Message parsing fix
- Old protocol Acknowledge Message parsing fix3.0.37 - Old protocol Extended Protocol with GPS message added
- Old protocol Extended Protocol with GPS message added3.0.38 - Old protocol Extended Protocol with PH & EC message added
- Old protocol Extended Protocol with PH & EC message added3.0.39 - Old protocol Extended Protocol with PH & EC message fix
- Old protocol Extended Protocol with PH & EC message fix3.0.40 - Old protocol Mesh & Mesh RSSI parsers added
- Old protocol Mesh & Mesh RSSI parsers added3.0.41 - Old protocol Mesh & Mesh RSSI parsers fix
- Old protocol Mesh & Mesh RSSI parsers fix3.0.42 - Old protocol Extended Protocol with magnitude message added
- Old protocol Extended Protocol with magnitude message added3.0.44 - Old protocol Extended Protocol with magnitude message fixes
- Old protocol Extended Protocol with magnitude message fixes3.0.45 - Bufgixes
- Tag Extended protocol message RSSI fix - Tag Extended protocol magnitude message added3.0.46 - Bufgixes
- Tag Extended protocol message GPS fix3.0.47 - Bufgixes
- Tag Extended protocol parsing fix3.0.48 - Tag Extended protocol Moistures array & Temperatures array messages
- Tag Extended protocol Moistures array & Temperatures array messages added3.0.49 - Mesh protocol messages bugfix
- Mesh protocol messages bugfix3.0.50 - Mesh protocol GPIOV2 & AnalogV2 messages
- Mesh protocol GPIOV2 & AnalogV2 messages added3.0.51 - Old protocol Receiver WhoIAm, PRCRequest and RPCResponse messages added
- Old protocol Receiver WhoIAm, PRCRequest and RPCResponse messages added3.0.52 - Bugfixes
- Bugfixes3.0.53 - Gateway messages added to GPRS message
- Gateway messages added to GPRS message - Old protocol Receiver WhoIAm, PRCRequest and RPCResponse messages are depricated3.0.54 - GPRS message Gateway messages generate functions added
- GPRS message Gateway messages generate functions added3.0.55 - GPRS message Gateway message generation function fix
- GPRS message Gateway message generation function fix3.0.56 - GPRS message parametrized constructor bugfix
- GPRS message parametrized constructor bugfix3.0.57 - GPRS WhoIAm message radio bootloader version field added
- GPRS WhoIAm message radio bootloader version field added3.0.58 - Old protocol tag pressure message pressure multiplier changed to 100
- Old protocol tag pressure message pressure multiplier changed to 103.0.59 - Java bit-stuffing decode bugfix
- Java bit-stuffing decode bugfix3.0.60 - Mesh protocol SI7021V2 message
- Mesh protocol SI7021V2 message added3.0.61 - Mesh protocol DiagnosticChildrenList message
- Mesh protocol DiagnosticChildrenList message added3.0.62 - Mesh protocol GPIOV2 message fix
- Mesh protocol GPIOV2 message fix3.0.63 - Mesh protocol CheckIn message change
- Mesh protocol CheckIn message Upload and Download error percentage fields added3.0.64 - Old protocol Extended Protocol CO2 and Binary data messages added
- Old protocol Extended Protocol CO2 and Binary data messages added3.0.65 - Old protocol Extended Protocol parsing fix
- Old protocol Extended Protocol parsing fix3.0.66 - Old protocol Extended Protocol message size fix
- Old protocol Extended Protocol message size fix3.0.67 - Mesh protocol PulseCounterV2 message added
- Mesh protocol PulseCounterV2 message added3.0.68 - Old protocol Extended Protocol Repeater message added
- Old protocol Extended Protocol Repeater message added4.0.0 - Architecture refactor: handler chains, Template Method parsers, decorators
- Handler chain (Chain of Responsibility) added for each protocol family: OldProtocol/Mesh (`MeshMessageHandler → ReceiverMessageHandler → TagMessageHandler → ErrorMessageHandler`), RFM (`RFMEnvelopeHandler → ErrorMessageHandler`), GPRS (`GPRSEnvelopeHandler → ErrorMessageHandler`) - `ProtocolParser` rewritten as a Template Method base handling buffer management and event firing; subclasses implement only `ParseFrame`; frame extraction moved into pluggable `IFrameDecoder` strategies (`BitStuffingFrameDecoder`, `AnchorLengthFrameDecoder`, `MagicHeaderFrameDecoder`) - `LoggingParserDecorator` and `FilteringParserDecorator` added - `MessageRegistry` converted to a Meyer's singleton with self-registering message types - Structured error reporting added: `ParseErrorCode` enum, `ParseException`, and `ErrorMessage.GetProperties()` now returns `Error`, `ErrorCode`, `RawFrame` - `MessageTypeId` enum expanded to cover all protocol families - Breaking: `MeshRSSIParser`, `SensorRecord.SensorRecords`, `SensorRecord.SensorMessage`, and `MessageFactory.ParseMeshMessage` deprecated in favour of `MeshParser`/`GetProperties()`; scheduled for removal in v5.0 - Bugfixes: `ProtocolParser.AppendBytes` missing `out` keyword corrected; `RFMParseContext` accessors fixed for .NET 4.6 compatibility4.0.1 - Frame decoding and CO2 message bugfixes
- `BitStuffingFrameDecoder` fixed to extract every complete frame present in the buffer per call instead of only the first one, so messages are no longer silently dropped or misattributed when multiple frames arrive together - `AnchorLengthFrameDecoder` now validates the anchor byte and resyncs instead of misreading trailing padding as a bogus extra frame - `TagExtendedProtocolCO2Message` now accepts both the standard 26-byte payload and the 27-byte variant produced when a reading is relayed through a repeater, instead of throwing "Payload is not correct" - `MeshRSSIMessage.ReceptionLevel` property added: null when RSSI is 0xFF (no reading), otherwise the negated RSSI value4.0.2 - Extended Protocol Repeater message dispatch fix
- `TagDataMessage.Parse` now dispatches `ExtendedProtocolMessageTypes.Repeater` to `TagExtendedProtocolRepeaterMessage` instead of falling through to the generic `TagExtendedProtocolMessage`, fixing repeater-relayed tag messages4.0.3 - Extended Protocol RSSI byte offset fix
- `TagExtendedProtocolRepeaterMessage.TagMessage` was trimming one byte too many (the outer message's own trailing RSSI byte) when re-deriving the nested tag message, shifting every field after the trim point by one byte — confirmed on real data where a CO2 message's Humidity byte was being read back as its RSSI - C++ `TagMessage::getRSSI()` is now `virtual`, with `TagExtendedProtocolMessage` overriding it to read the last byte of the (variable-length) body instead of the fixed offset that's only valid for classic 13-byte tag messages; the C# side of this override was already correct
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| .NET Framework | net46 is compatible. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.9 | 105 | 8/25/2026 |
| 4.0.8 | 87 | 8/25/2026 |
| 4.0.7 | 98 | 8/25/2026 |
| 4.0.6 | 92 | 8/24/2026 |
| 4.0.5 | 92 | 8/24/2026 |
| 4.0.4 | 105 | 8/24/2026 |
| 4.0.3 | 106 | 8/24/2026 |
| 4.0.2 | 98 | 8/23/2026 |
| 4.0.1 | 111 | 8/23/2026 |
| 3.0.68 | 270 | 6/17/2026 |
| 3.0.67 | 170 | 5/19/2026 |
| 3.0.66 | 400 | 8/26/2025 |
| 3.0.65 | 429 | 8/25/2025 |
| 3.0.64 | 415 | 8/25/2025 |
| 3.0.63 | 358 | 3/30/2025 |
| 3.0.62 | 358 | 3/10/2025 |
| 3.0.61 | 310 | 2/3/2025 |
| 3.0.60 | 279 | 1/30/2025 |
| 3.0.58 | 280 | 1/22/2025 |
| 3.0.57 | 292 | 1/21/2025 |
v4.0.3: TagExtendedProtocolRepeaterMessage.TagMessage dropped one byte too many when re-deriving the nested tag message, shifting its trailing fields (e.g. voltage/humidity byte misread as RSSI) instead of dropping only the CRC. v4.0.2: TagDataMessage now dispatches ExtendedProtocolMessageTypes.Repeater to TagExtendedProtocolRepeaterMessage (was falling through to the generic TagExtendedProtocolMessage, so repeater-relayed tag messages failed to unwrap/display). v4.0.1: BitStuffingFrameDecoder now extracts every complete frame per call instead of dropping/misattributing extras; AnchorLengthFrameDecoder validates the anchor byte and resyncs past trailing padding; TagExtendedProtocolCO2Message accepts the 27-byte repeater-relayed payload variant; MeshRSSIMessage.ReceptionLevel property added.