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

Daktronics RTD within Docker (remote data feed) #36

Closed
robere2 opened this issue Nov 11, 2022 · 8 comments
Closed

Daktronics RTD within Docker (remote data feed) #36

robere2 opened this issue Nov 11, 2022 · 8 comments
Labels
Complexity: HIGH This issue may require in-depth knowledge of module features and require significant testing Module: Graphics This issue pertains to the apps/graphics module Priority: LOW This issue isn't critical, security-related, or significantly beneficial to users. Type: Feature New feature or request

Comments

@robere2
Copy link
Member

robere2 commented Nov 11, 2022

Running within a Docker container with Daktronics RTD sync enabled is, from what I can tell, not easy outside of on Linux Docker hosts with a Linux container. I think the best solution for this is to have a way to supply a remote data feed. This could have a variety of other applications as well, such as:

  • transmitting from across the room via a Raspberry Pi
  • Running graphics completely remotely
    • This would likely require some sort or time code mechanism for anything outside of longterm graphics like bugs.
  • Backup data feeds in the event of failure
@robere2 robere2 added Priority: LOW This issue isn't critical, security-related, or significantly beneficial to users. Type: Feature New feature or request labels Nov 11, 2022
@robere2 robere2 transferred this issue from rpitv/glimpse-graphics Jan 1, 2024
@robere2 robere2 added the Module: Graphics This issue pertains to the apps/graphics module label Jan 1, 2024
@robere2 robere2 added the Complexity: HIGH This issue may require in-depth knowledge of module features and require significant testing label Apr 2, 2024
@ifrog800
Copy link
Contributor

Docker is not longer part of the stack to run the graphics module. However remote transmission of Daktronics RTD is becoming important especially with the limitations of RS232. Perhaps transmit the serial data over a websocket?

@asquared
Copy link
Member

asquared commented Jun 25, 2024 via email

@robere2
Copy link
Member Author

robere2 commented Jun 25, 2024

Can you clarify more about what limitations you're running into?

Originally this issue was because Windows Docker simply didn't allow us to pass through serial feeds, meaning we were building locally on the graphics machine instead of just pulling a container. Complete remote control (that is, hosting graphics entirely from the union) was a spitballing idea but latency for things like timers was a concern I hadn't thought about until later.

To give Andrew some context, the underlying graphics framework we're currently using (NodeCG) uses web sockets to communicate data from the controller and web interface to the HTML-rendered graphics, which are overlayed onto the video stream. This does seem to introduce some latency somewhere in the pipeline (at least when I was still actively working on this project) but it's small enough that it's pretty much been dismissed for now due to the flexibility and lower barrier to entry for new contributors. That's all to say, hooking into the existing WebSocket interface may be feasible without introducing even more latency.

My concern is more with the reliability of wireless data transfer for such a critical component. Where would you be transferring to/from? Would it be peer-to-peer or over the RPI wifi network? If you're concerned about cable runs and simply want to do this across the room, I believe Daktronics now sells direct wireless transmitter systems, but again, reliability scares me a bit if this is going to be "Plan A". There's no complete elimination of the serial connection, since you're going to need to hook into the RS232 output of the Daktronics AllSport or HFH control room repeater anyway.

If you go down to the transport layer over internet, I'd be tempted to say UDP would be better than a TCP connection.

@robere2
Copy link
Member Author

robere2 commented Jun 25, 2024

Correction, I suppose UDP would work for the clock but maybe not for more static information like the score. If latency is a big issue and you can get around the latency we've had in the past, you could split it into two streams, or I suppose rely on Sidearm as a backup for things like score if the packets get lost...

@asquared
Copy link
Member

asquared commented Jun 25, 2024 via email

@ifrog800
Copy link
Contributor

The remote RS232 reading end would be like a PI that's connected via ethernet to the production network switch in the control room. The "remote" reading is incase the new RS232 connection point from the ECAV TV Room over a CAT cable wouldn't reach the control room. The run is something like 100'.
Adding a remote reader could also help score sync basketball in the future. Depending on where that connection point is located it.

Andrew, you mentioned a long cable could bring capacitance problems.
Which CAT cable would you recommend to try first out of our stock:

Random information, the new Daktronics system supports an IP connection for data which I do not know much more about.

@asquared
Copy link
Member

asquared commented Jun 26, 2024 via email

@ifrog800
Copy link
Contributor

The new RS232 serial feed is in the TV Truck format 9600-8-N-1. Has fixed packet sizes and sets the data per commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Complexity: HIGH This issue may require in-depth knowledge of module features and require significant testing Module: Graphics This issue pertains to the apps/graphics module Priority: LOW This issue isn't critical, security-related, or significantly beneficial to users. Type: Feature New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants