GaloisInc / BESSPIN-Tool-Suite

The core tool of the BESSPIN Framework.
Other
5 stars 2 forks source link

Demonstator laundry list #1243

Closed podhrmic closed 2 years ago

podhrmic commented 3 years ago

Known issues as of 8/3:

High Priority:

Medium Priority:

Low Priority:

Backlog

dmzimmerman commented 3 years ago

On the libusb side, something like the script at http://billauer.co.il/blog/2013/02/usb-reset-ehci-uhci-linux/ might work to kick the USB devices, but the tool would have to be updated to do that in the event that it loses a device and then re-identify all the USB devices once they're (hopefully) back as the USB TTYs might (OK, probably will) change.

dmzimmerman commented 3 years ago

I have attempted to group the above tasks by priority (where "priority" here is more like "impact on demonstrator usage").

podhrmic commented 3 years ago

@EthanJamesLew a short sketch how the infotainment should work:

EthanJamesLew commented 3 years ago

@podhrmic

Infotainment Notes

From the issue #1243

a short sketch how the infotainment should work:

  • Infotainment client / UI
    • listens to port 5013
    • sends CAN_ID_BUTTON_PRESSED to port 5002
    • listens for CAN_ID_X/Y/Z/R on port 5013 and displays the update on the map
  • Infotainment Server (3x)
    • listens for CAN_ID_BUTTON_PRESSED on port 5002
    • sends CAN_ID_INFOTAINMENT_STATE to port 5002
  • Ignition
    • selects which server to listen to based on the active scenario
    • listens for CAN_ID_INFOTAINMENT_STATE on port 5002 from the whitelisted server
    • updates volume/music based on the CAN_ID_INFOTAINMENT_STATE message
    • when it receives position update from BeamNG it sends CAN_ID_X/Y/Z/R message to port 5013

Thin Client Implementation

Ignition UI / Player Handler Implementation

Infotainment Server

dmzimmerman commented 3 years ago

The infotainment server (on the SSITH processors) currently forwards the X, Y, Z, R messages (and keeps track of the car's position, so that duplicative ones - if the car sits in the same place for a long time - don't go to the thin client and cause GPS jitter). Only those messages should go to 5013. That's what I think is described above in infotainment.py right now (it only forwards GPS messages from the active infotainment server, not from BeamNG, to the thin client).