description |
---|
How pFS is structured and configured |
pFS is structured into two parts: core and submodules. core
is representative of a system while submodules
tailor to individual hardware. An example of a submodule
would be aprs.py
. aprs.py
is the submodule
that pertains to and only to the APRS radio. The methods within aprs.py
would pertain only to interfacing with the APRS radio so messages can be sent and received through the physical APRS radio and be processed within the pFS
application. An example of a core
function would be power monitoring. In flight, it is the responsibility of core
to constantly read the current power levels of the CUBESAT and react accordingly. This functionality uses submodules
to read the report current energy levels from the power delivery system(EPS). Power monitoring is not specific to any one submodule
and affects the pFS
application as a whole, therefore core
is responsible for monitoring power levels.
More on core
here.
More on submodules
here. List of actual submodule
below.
-
config/config_default.yml
andconfig/config_custom.yml
- The
config_*.yml
files provide configuration information specific to eachsubmodule
and `core`- e.g. serial ports for each
submodule
(/dev/ttyUSB0
forAPRS
) - e.g. telemetry dump intervals
- e.g. structuring of
submodules
for startup(core
)
- e.g. serial ports for each
config_custom.yml
(if present) is given priority overconfig_default.yml
config_custom.yml
isgitignored
and is specific to each individual developer, butconfig_default.yml
provides the configuration specific to the environment onflight-pi
a
- Here is an excerpt of
config/config_default.yml
for theaprs
submodule
aprs: depends_on: - telemetry serial_port: /dev/ttyUSB0 telem_timeout: 70 message_spacing: 1
- The parent key
aprs
denotes that the following values are specific toaprs
a- The
depends_on
specifies a list of othersubmodules
on which the parent key(aprs
) needs to be able to access in flight - The other values(
serial_port
,telem_timeout
,message_spacing
) are constants specific toaprs
- The
- The
Here is a list of all the submodules
used in pFS
Everything listed here has a corresponding Python file in pFS
- antenna deployer
- Handles the deployment of the ISIS Antenna
- aprs
- Handles the receiving and sending of messages through the APRS radio
- command_ingest
- Handles the parsing and execution of command messages
- eps
- Handles the interfacing between
pFS
and the Clyde Space EPS(power management)
- Handles the interfacing between
- iridium
- Handles the receiving and sending of messages through the Iridium radio
- telemetry
- Handles the collection and formatting of telemetry data for the satellite as a whole