rvc_bus 0.1.3 copy "rvc_bus: ^0.1.3" to clipboard
rvc_bus: ^0.1.3 copied to clipboard

RV-C bus topology tracker and device registry. Auto-discovers devices, maps function codes to names, and exposes reactive bus events.

rvc_bus #

RV-C bus topology tracker and device registry. Attaches to an RvcEcu event stream, auto-discovers devices via Address Claimed frames, maps RV-C device function codes to human-readable names, and exposes a reactive Stream<RvcBusEvent>.

Features #

  • Auto-discovery: detects new devices as they claim addresses
  • Device function lookup: maps RV-C function codes to names (Generator, Battery Charger, Inverter, Tank Sensor, etc.)
  • Online/offline tracking: configurable timeouts with reactive events
  • Sealed event hierarchy: exhaustive switch over all bus event types

Getting started #

dependencies:
  rvc_bus: ^0.1.0

Requires a running RvcEcu from package:rvc.

Usage #

Discover devices #

import 'package:rvc_bus/rvc_bus.dart';

// Attach to a running RvcEcu.
final registry = RvcBusRegistry(ecu);

registry.events.listen((event) => switch (event) {
  RvcDeviceAppeared(:final device) =>
    print('New: ${device.name.deviceTypeName} at 0x${device.address.toRadixString(16)}'),
  RvcDeviceDisappeared(:final address) =>
    print('Gone: 0x${address.toRadixString(16)}'),
  RvcDeviceWentOffline(:final address) =>
    print('Offline: 0x${address.toRadixString(16)}'),
  RvcDeviceCameOnline(:final device) =>
    print('Online: 0x${device.address.toRadixString(16)}'),
});

Query the registry #

for (final device in registry.onlineDevices) {
  print('0x${device.address.toRadixString(16)}: ${device.name.deviceTypeName}');
}

Bus event types #

Event When
RvcDeviceAppeared New source address seen
RvcDeviceWentOffline No frames within timeout
RvcDeviceCameOnline Previously offline device resumes
RvcDeviceDisappeared Device removed after extended silence

Testing #

dart test

License #

Apache 2.0 -- see LICENSE for details.

0
likes
150
points
5
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

RV-C bus topology tracker and device registry. Auto-discovers devices, maps function codes to names, and exposes reactive bus events.

Homepage
Repository (GitHub)
View/report issues

Topics

#can-bus #rvc #rv

License

unknown (license)

Dependencies

rvc

More

Packages that depend on rvc_bus