Releases: 0xCAFEDECAF/VanBus
Releases · 0xCAFEDECAF/VanBus
V0.4.1
General:
- Fix compiler warnings
- Replace deprecated attribute
ICACHE_RAM_ATTR
byIRAM_ATTR
- Update Arduino IDE setup scripts to cover version 3.1.2 of ESP8266 board package
README.md:
- Mention version of Arduino IDE
- Refer to ESP8266 board package version 3.1.2
src/VanBusRx.h:
- Add a few IDENs to be recognized by
TVanPacketRxDesc::IsSatnavPacket
src/VanBusRx.cpp:
- Remove unused code "flip three equal bits in a row" (seen this only once, ever)
- Add and invoke new method
TVanPacketRxDesc::CheckCrcFix
- Try to handle bit deletion errors
examples/PacketParser:
- Various small fixes and updates
- Add example of log output
- Prevent RX queue overrun
V0.4.0
General:
- Add support for ESP32 platform/architecture
- Added shell (
.sh
) and batch (.bat
) scripts that help to set up the Arduino IDE with all the correct board options
README.md:
- Fix broken links
src/VanBusRx.h:
- Move method
TVanPacketRxQueue::GetLastMediaAccessAt
from private to public
V0.3.4
General:
- Fix compiler warnings
README.md:
- Add note on clamping circuit
- Add note about the removal of the terminator resistors on the transceivers
- Document new method
TVanBus::SetDropPolicy
- Fix links
src/VanBus.h:
- Add method
TVanBus::SetDropPolicy
src/VanBusRx.cpp:
- Fix compilation error
- Small updates in the bit timing criteria
extras/Schematics:
- Add clamping circuit: seems to reduce amount of bit errors
examples/SendPacket:
- Add possibility to send also negative temperature values
examples/PacketParser:
- IDEN
0x8CE
(SATNAV_STATUS_3_IDEN
): add sat nav language codes
examples/DisplayNotifications:
- Add possibility to send also negative temperature values
V0.3.3
General:
- Moved code to
src/
subdir to adhere to '1.5 library format (rev. 2.2)' - Updated
README.md
- All lines end consistently with
"\n"
(no more lines ending with"\r\n"
) - Fix compiler warnings
src/VanBusRx.cpp:
- Implement simple packet drop policy for queue filling up
- Experiment: use time average of measured one-bit CPU cycles to adjust timing of bits
- If
(nBits == 0)
: reset jitter if last bit was actually flipped - If there are still 9 last read bits at end of packet, store those bits and keep the read result
VAN_RX_PACKET_OK
- Small updates in the bit timing criteria
src/VanBusRx.h:
- Move methods
getIfsDebugPacket
andgetIsrDebugPacket
down, to match as listed inREADME.md
- Moved method
_AdvanceHead
from .h file to .cpp file
extras/schematics:
- Added labels
examples/LiveWebPage:
- Rename IDEN
0xB0E
fromECU_IDEN
toSATNAV_GPS_INFO
examples/PacketParser:
- Rename IDEN
0xB0E
fromECU_IDEN
toSATNAV_GPS_INFO
V0.3.2
General:
- Updated README.md
VanBusRx.cpp:
- Decrease CPU load by using table-based CRC calculation
struct TIsrDebugData
,struct TIfsDebugData
: renamednCycles
tonCyclesMeasured
- Added new method
TVanPacketRxQueue::IsEnabled()
RxPinChangeIsr()
: save a few precious bytes of RAM- Prevent CPU monopolization by noise on bus
TVanPacketRxQueue::Disable()
: also runtimer1_disable()
, just in case- Improved keeping the
nQueued
counter up to date - Add extra patterns for SOF detection
- Small updates in the bit timing criteria
V0.3.1
General:
- Updated README.md
VanBus.h:
TVanBus::DumpStats(...)
: pass also optional parameterlongForm
class TVanBus
: add member functionsQueueSize()
,GetNQueued()
andGetMaxQueued()
VanBusRx.cpp:
TVanPacketRxDesc::CheckCrcAndRepair(...)
: try to fix packet by flipping three equal bits in a rowTVanPacketRxDesc::CheckCrcAndRepair(...)
: multiple fixes in the "Flip two bits" partTVanPacketRxDesc::CheckCrcAndRepair(...)
: check first with only the "uncertain bit" flipped- Better handling of unexpected new bit coming after an "ACK" (in which case it is not an "ACK" but the first "1" bit of the next byte)
- Add extra patterns for SOF detection
- Small updates in the bit timing criteria
VanBusRx.h:
- Added new method
TVanPacketRxQueue::GetNQueued()
, returning current number of packets waiting in Rx queue class TVanPacketRxQueue
:nQueued
andmaxQueued
must be declared volatile- Remove unnecessary debugging data/code (
isrData->nIsrs
)
V0.3.0
General:
- Added new header file 'VanBusVersion.h'
- Consistently use Unix-style LF line endings
VanBusRx:
- More flexible SOF detection and smarter handling of jitter and missed interrupts, leading to less CRC error packets
- New method GetMaxQueued() returning the highest fill level of the RX queue since boot time
- Improved ISR debugging (as enabled with #define VAN_RX_ISR_DEBUGGING): better functionality and reduced RAM usage
- TVanPacketRxDesc::IsQueueOverrun(): reads and clears overrun bit within same invocation
- TVanPacketRxDesc::CheckCrcAndRepair(...):
- Added optional parameter 'wantToCount', a pointer-to-method of class TVanPacketRxDesc, returning a boolean. It can be used to limit the repair statistics to take only specific types of packets into account.
- Process a new member field, 'uncertainBit1', which the RX pin ISR can set when it is not certain about a bit value.
- Re-introduced repair by flipping of two (non-consecutive) bits (but only the last bit in a sequence of same bit values is flipped).
- TVanPacketRxDesc::DumpRaw(...):
- Print the command flags also as HEX value
- Also print the ASCII character representation of each byte, if possible
- TVanPacketRxQueue::DumpStats: print also the highest fill level of the RX queue
- Use compiler directive 'inline __attribute__((always_inline))' for routines that are called by the RX pin ISR.
- nBitsTakingIntoAccountJitter(...): updates in the bit timing criteria
examples/LiveWebPage:
- Renamed TIME_IDEN (IDEN 984) to MFD_LANGUAGE_UNITS_IDEN and updated the parsing and displaying of these packets
- Improved repeat-handling (held-down button) of IR remote control
- Updated JSON data (PacketToJson.ino) to be in line with VanLiveConnect
- Print also ESP MAC address and CPU factor on startup, pass ESP reset reason and reset info via JSON data
examples/PacketParser:
- Renamed TIME_IDEN (IDEN 984) to MFD_LANGUAGE_UNITS_IDEN and updated the parsing of these packets
- SATNAV_STATUS_2_IDEN (IDEN 7CE) packets: added parsing of newly found field "guidance_language"
- SATNAV_GUIDANCE_IDEN (IDEN 64E) packets: added handling of 16-byte packets with two detailed instructions ("take left/right fork/exit, then ...")
- enum VanPacketFilter_t: added item VAN_PACKETS_SAT_NAV_PKTS
V0.2.5
General:
- Updated
README.md
- Code formatting
VanBusRx
:
- Added inter-frame space (IFS) debugging to be able to see why packets are sometimes missed
- Improved start of frame (SOF) detection to decrease the number of missed packets
examples/LiveWebPage.ino
:
- Improved handling (timing) of IR remote control
- Update JSON data (
PacketToJson.ino
) to be in line with VanLiveConnect - Various fixes in the HTML page (
LiveWebPage.ino
) - Websocket: send instead of broadcast
V0.2.4
VanBusRx
:
- Added optional 'longForm' parameter to
TVanPacketRxQueue::DumpStats
method - Added
#define VAN_BUX_RX_VERSION 000002004
- Added new method
TVanPacketRxDesc::Millis
returning packet time stamp in milliseconds
examples/DisplayNotifications.ino
:
- Re-trigger the shown notification every 7 seconds, so that it is displayed permanently
examples/PacketParser.ino
- Updated comment about sat nav street format
V0.2.3
General:
- Compiles also for ESP32 architecture (but not tested!)
LiveWebPage.ino
:
- Improved compile-time options in
Config.h
- Detecting and handling of button delay and repeat when held-down on IR remote control
- Various optimizations and improvements in packet parsing and handling (
PacketToJson.ino
)