A satellite ground station can be operated using COSMOS agents if the antenna and radio are connected to a computer capable of running a standard operating system (Linux, Mac, Win) with an ethernet interface.
TODO: explain how to select the radio and antenna (change drivers?)
There are at least three COSMOS agents running on the ground station computer:
Agent antenna will controll the attitude of the antenna (elevation and azimuth), agent radio will control the transceiver (set frequency, compute doppler shift, etc.) and agent control if the bridge between the other two agents and the outside world, being able to receive and send C&C.
Let's run a ground station demo. First make sure you have the latest COSMOS/core software and COSMOS/nodes (as explained on the COSMOS 101 tutorial: https://bitbucket.org/cosmos/tutorial). We are going to be running the demo using the kauaicc_sim node. Go to the COSMOS/nodes folder (ex: /home/miguel/cosmos/nodes/kauaicc_sim) and check that you have this node installed. Also to facilitate your life make sure you have the COSMOS/bin folder populated with the three agents Agent Antenna, Agent Radio, Agent Control.
1. Agent Radio
Let's start agent radio
1 $ agent_radio kauaicc_sim uhf
Now we are going to check if agent_radio is working. The following command lists all the agents running in the same network.
the previous command should return a list of the available agents similar to this:
1 [0] 57653.8367122313 kauaicc_sim uhf 192.168.56.1 57047 59996
2 {"agent_pid":24732}[OK]
3 [1] 57653.8383072064 hiakasat nav 192.168.152.40 41311 59996
Agent [0] is running for the 'kauacc_sim' node with the name 'uhf', with the time tag in modified Julian Days (57653.8367122313) on the address 192.168.56.1. The process id (pid) is 24732. Agent [1] is running for the 'hiakasat' node with the name 'nav'.
list of available commands for the radio
1 List of available requests:
4 list of available requests for this agent
7 request to shutdown this agent
10 request to transition this agent to idle state
13 request to transition this agent to monitor state
16 request to transition this agent to run state
19 request the status of this agent
21 getvalue {"name1","name2",...}
22 get specified value(s) from agent
24 setvalue {"name1":value},{"name2":value},...}
25 set specified value(s) in agent
28 list the Namespace of the agent
31 Broadcast JSON packet to the default SEND port on local network
33 echo utc crc nbytes bytes
34 echo array of nbytes bytes, sent at time utc, with CRC crc.
37 return description JSON for Node
40 return description JSON for State vector
43 return description JSON for UTC Start time
46 return description JSON for Pieces
49 return description JSON for General Devices
52 return description JSON for Specific Devices
55 return description JSON for Ports
58 return description JSON for Targets
61 return description JSON for Aliases
64 Enable active control of the radio frequency
67 Disable active control of the radio frequency
70 returns the radio frequency
72 get_frequency get_frequency
73 returns the radio frequency
75 get_bandpass get_bandpass
76 returns the radio filter bandpass
79 returns the radio mode
81 get_powerin get_powerin
82 returns the current RX radio power
84 get_powerout get_powerout
85 returns the current TX radio power
87 set_frequency set_frequency Hz
88 sets the radio frequency
90 set_bandpass set_bandpass Hz
91 sets the radio filter bandpass
93 set_opmode set_opmode {am, amd, fm, fmd, dv, dvd, cw, cwr}
94 sets the radio operating mode
96 set_power set_maxpower watts
97 sets the maximum TX radio power
99 set_offset set_offset Hz
100 sets the radio frequency offset
2. Agent Antenna
Now let's start agent antenna
1 $ agent_antenna kauaicc_sim yagi
To print a list of commands for agent antenna execute the following command
1 $ agent_client kauaicc_sim yagi
This will print a large list of available requests (or commands) that can be executed remotelly on the 'yagi' agent
1 List of available requests:
4 list of available requests for this agent
7 request to shutdown this agent
10 request to transition this agent to idle state
13 request to transition this agent to monitor state
16 request to transition this agent to run state
19 request the status of this agent
21 getvalue {"name1","name2",...}
22 get specified value(s) from agent
24 setvalue {"name1":value},{"name2":value},...}
25 set specified value(s) in agent
28 list the Namespace of the agent
31 Broadcast JSON packet to the default SEND port on local network
33 echo utc crc nbytes bytes
34 echo array of nbytes bytes, sent at time utc, with CRC crc.
37 return description JSON for Node
40 return description JSON for State vector
43 return description JSON for UTC Start time
46 return description JSON for Pieces
49 return description JSON for General Devices
52 return description JSON for Specific Devices
55 return description JSON for Ports
58 return description JSON for Targets
61 return description JSON for Aliases
64 Supply next azimuth and elevation for tracking.
67 Toggle debug messages.
70 Return a report on the offset of the agent.
73 Return a report on the state of the agent.
75 jog jog {degrees aziumth} {degrees elevation}
76 Jog the antenna azimuth and elevation in degrees.
78 get_horizon get_horizon
79 Return the antennas minimu elevation in degrees.
82 Return the antenna azimuth and elevation in degrees.
84 set_azel set_azel aaa.a eee.e
85 Set the antenna azimuth and elevation in degrees.
88 Enable antenna motion.
91 Disable antenna motion.
94 Stop where you are and make it your new target.
97 Stop where you are, make it your new target AND disable antenna motion.
99 set_offset set_offset aaa.a eee.e
100 Set the antenna azimuth and elevation correction in degrees.
3. Agent Control
let's now start agent control
1 $ agent_control kauaicc_sim
4. Example operations
list the available antennas
1 $ agent kauaicc_sim control list_antennas
list the available radios
1 $ agent kauaicc_sim control list_radios
1 $ agent_client kauaicc_sim control list_tracks
now let's follow to another tutorial to understand COSMOS commanding capabilites: COSMOS Commands