Programmer's Manual - evanharbison02/Group-3-Small-Satellite-Repository- GitHub Wiki
Programmer's Manual
This manual documents the functions, data types, and interfaces in the satellite system's source code. It is meant to help future programmers understand, modify, and extend the system by explaining how the code is designed.
The manual is split into two sections:
- Satellite System source code
- Ground Station System source code
Each serves a different function in the mission, so each uses its own functions, data types, interfaces, algorithms, and logic. Any differences between the two are noted in the relevant section.
Satellite System
Source Libraries
Ground Station System
Although it is a sub-system of the CubeSat design, its source code is structured differently enough that it should be treated as a separate embedded device.
Command Structure and Mapping
Commands are covered in more detail in the Ground Station's source libraries section. Before then, it helps to understand how commands are structured and mapped, especially if you ever need to create a new one. Knowing these rules will help you build commands that match both the user experience and the source code logic.
Every command has two parts:
- Command name: the action the satellite should take
- Command arguments: the details that modify that action
Command Names
A command name is the action you want the satellite to perform.
Examples:
- "Go to..."
- "Walk the..."
- "Talk with..."
Command Arguments
Arguments modify or give detail to the action. A command can take no arguments or up to two, which is the limit in our Ground Station.
Examples:
- "Go to the beach" (one argument)
- "Walk the dog" (one argument)
- "Talk with your brother and sister" (two arguments)
- "Go" (no arguments)
Real-World Example
Take the instruction: "Go to the store and get milk."
- Command name: Go to
- Argument 1: store
- Argument 2: milk
Each of these parts is called a token. Using these tokens, the command for the Ground Station would look like this:
Go2 store milk