PER Firmware
Loading...
Searching...
No Matches
linker.BusLinker Class Reference

Public Member Functions

 __init__ (self, str bus_name)
 
 add_message (self, Message msg)
 
 link (self)
 

Public Attributes

 bus_name = bus_name
 
int next_avail_id = 1
 
DefaultDict[int, List[Message]] msgs_by_prio = defaultdict(list)
 
DefaultDict[int, Set[int]] overrides_by_prio = defaultdict(set)
 
Set[int] all_used_ids = set()
 
int all_used_ids = 1
 

Protected Member Functions

 _validate_overrides (self)
 
 _link_priority_group (self, int priority)
 

Member Function Documentation

◆ _link_priority_group()

linker.BusLinker._link_priority_group ( self,
int priority )
protected
Pass 2: Assign IDs to dynamic messages in this priority group.
Respects the 'Water Level' (next_avail_id) and skips reserved overrides.

◆ _validate_overrides()

linker.BusLinker._validate_overrides ( self)
protected
Pass 1: Validate that overrides respect priority monotonicity.
An override in Priority 0 (e.g. 0x10) must be < an override in Priority 1 (e.g. 0x20).

◆ link()

linker.BusLinker.link ( self)
Execute the two-pass linking algorithm

The documentation for this class was generated from the following file: