Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Video Receiver MVP in RH #285

Closed
ryaniftron opened this issue Mar 28, 2020 · 3 comments
Closed

Implement Video Receiver MVP in RH #285

ryaniftron opened this issue Mar 28, 2020 · 3 comments
Labels
enhancement New feature or request

Comments

@ryaniftron
Copy link
Collaborator

This issue is the next step of video receiver support following the planning state in #236 .

The MVP will not be tied to a specific brand of video receiver, however initial support will only be for a ClearView 2.0 receiver.

At a high level, the MVP serves the following purpose:
Provide a race director a built in tool in the RH app to monitor video receiver's status and control basic settings. The RH server will push useful content to video receivers's OSD's and change settings every heat as needed.

MVP Definition:

  • Host an MQTT Broker and add documentation for setup with RH

  • Create a video receiver module for managing messenging with receivers

  • Create an overview web page showing the states of all receivers

    • Unique ID (the receiver provides this upon connection)
    • Current node selected (0-7)
    • Connection Status- devices that disconnect stay in the table but will be seen inactive
    • Camera Type
    • Receiver type and protocol version
      • example: "CV2.0_v1.0" for CV2.0 product on v1.0 protocol
  • Create an overview for race tab showing up to N nodes of receivers

    • This pulls info from the heat and configures all the receivers
    • Only the "active" receivers's lock status shows up
    • The "active" receiver can be selected from a dropdown of devices on that node
  • The video receiver module should be capable of the following

    • set an individual receveir's node number
    • set a node's frequency
    • set a node's camera type
    • set a node's OSD content by field or by raw string
    • Receiving a periodic status message including the following
      • Unique ID (the receiver provides this upon connection)
      • Current node selected (0-7)
      • primary or spectator status
  • Pilots change which node they are on be changing their "node number" or "channel number" in the receiver. The exact implementation is up to the receiver manufacturer

@ryaniftron
Copy link
Collaborator Author

I updated clearview_interface_public to support being installed as a pip package, compatible with python 2.7 and 3.x. The advantage of this is any improvements and changes to the ClearView protocol do not affect RH's releases and do not need to increase the amount of code needed maintained by RH devs.

Next, I pulled that package into the VRxController and used it to format a frequency command.

Finally, I added in event registering in VRxController.

TODO: Flesh out connect/disconnect events
TODO: Determine event actions
TODO: Add database interactions (both get data and push data)

@ryaniftron
Copy link
Collaborator Author

Just an update on the progress of MVP: A lot of the backend is complete for VRx and the messaging. All of the above TODO's are complete.

UI is being worked on for /vrxstatus to satisfy the front end requirement for MVP, however the MVP should be revised and revisited with the latest discoveries.
The ESP32 supports selecting the node number in its web UI.

@ryaniftron
Copy link
Collaborator Author

This has been implemented and pushed to master. Closing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants