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

Source Libraries