tim-balloon / TIMflight

Flight MCP repo
0 stars 0 forks source link

Understand how blastcmd and COW work #75

Closed ianlowe13 closed 2 months ago

ianlowe13 commented 7 months ago

In flight we run a blastcmd daemon which listens on port 41414 for commands, presumably formatted in a UDP packet as a message which it can decode to figure out what to send to MCP.

On the ground, we use the formalism (no COW) "./blastcmd @target_ip command_name value1 value2 ... etc" which executes the blastcmd executable telling it the target for the message is a specific IP addr, and the message should contain a command name and a series of values if the command requires them. This all makes sense on the ground, simple IP link (probably TCP/IP, see netcmd.c).

In flight, we have a single link that works like this, the iridium pilot link is basically just an internet connection. Commanding over this seems the same as before, especially given the cow source code does not specify anything special for this link AND cow on the ground runs via "pilot" which is just an ethernet cable. We also have the options to send commands over TDRSS among other links and they have a secondary target called "COMM 1" or "COMM 2". These links go through the SIP to the payload FC, which is poorly understood on our end but needs to be understood so that we can have the test flight this summer.

I request that we document and understand how the flight commanding software works through the links not used on the ground.

shubhagrawal30 commented 6 months ago

https://github.com/tim-balloon/tim-logs/blob/main/commands/

ianlowe13 commented 2 months ago

This was figured out in Palestine during testing.