CS 452/652 Winter 2020 - Lecture 26
March 11, 2020
prev next
TC1 Demo Review
Start/Stop Robustness
- being able to quit your program - and restart
- without reload
- without reboot
- good for demos, but also helps development
- initialize BSS
- initialize data
- keep constants for initialization
- always/periodically check for exit key
Other Notes
- use headlights to (manually) detect locomotive's travel direction during initialization
- importance of robustness increases between TC1 and final project
- double-check kernel mechanisms: message passing & context switch
- double-check UART servers
- double-check priorities
- double-check main bottleneck: serialization at half-duplex COM1
Routing
Notes
- shortest path routing is often presented as optimal
but not always the best choice → bottlenecks!
- loop-free: common optimisation criterion required for consistent path computation
- from the perspective of different nodes
- especially in distributed setup
- run Dijkstra algorithm only for branch nodes
- use overlay data structure?
- mid-travel reverse - relevant for merge nodes
model as extra link → augment track data
Path Finding
- online: on-demand routing?
- compute path using track \ reserved route
- single-node Dijkstra (overlay) is probably doable online
- offline: determine loop-free alternative path with loop threshold!
- or take loop to get out of the way