PER Firmware
Loading...
Searching...
No Matches
linker.BusLinker Class Reference
Collaboration diagram for linker.BusLinker:
[legend]

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)
 

Constructor & Destructor Documentation

◆ __init__()

linker.BusLinker.__init__ ( self,
str bus_name )

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.
Here is the caller graph for this function:

◆ _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).
Here is the caller graph for this function:

◆ add_message()

linker.BusLinker.add_message ( self,
Message msg )

◆ link()

linker.BusLinker.link ( self)
Execute the two-pass linking algorithm
Here is the call graph for this function:

Member Data Documentation

◆ all_used_ids [1/2]

Set[int] linker.BusLinker.all_used_ids = set()

◆ all_used_ids [2/2]

int linker.BusLinker.all_used_ids = 1

◆ bus_name

linker.BusLinker.bus_name = bus_name

◆ msgs_by_prio

DefaultDict[int, List[Message]] linker.BusLinker.msgs_by_prio = defaultdict(list)

◆ next_avail_id

int linker.BusLinker.next_avail_id = 1

◆ overrides_by_prio

DefaultDict[int, Set[int]] linker.BusLinker.overrides_by_prio = defaultdict(set)

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