Computer: Operation
Description
The operation computer is a more advanced guidance computer that allows for the scheduling of commands, power and TT&C budget checks and for custom operations to be configured. Typically, an operating computer provides the base code for a more complex computer to be developed by the user. This manual will describe the default behaviour that an operating computer allows for and how it can be configured.
Example Use Cases
- Guidance Modes: Adjust the guidance modes on the computer-based on power checks and mission budgets.
- Custom Operations: Allowing users to create custom functions based on input messages that are loaded from a TT&C connection.
Module Implementation
Since the operation computer deals with power budgets, the computer will attempt to connect all the power systems on the spacecraft if they have not already been connected. It will create a power network bus and will attach all power sources to the battery. This component is required by the computer and without a battery (Power Storage
) component, the computer will be unable to perform the budget checks.
The computer inherits all of the Guidance Computer
operations and allows for a range of pointing modes to be achieved. However, these operations are disabled under certain circumstances. The battery storage fraction \(f_p\) is checked on the update call. If \(f_p < f_\mathrm{min}\), where \(f_\mathrm{min}\) is the minimum fraction the battery can reach with a nominal system, then the computer changes to a Safe Mode
. When in safe mode, all essential systems are disabled and the computer sends a request to the reaction wheels (or external torque effectors) to do a safe-mode spin, allowing the spacecraft to catch sunlight power on the solar panels. This will continue until \(f_p > f_\mathrm{max}\), where \(f_\mathrm{max}\) is the recharge fraction. This functionality can be overridden by a custom computer.
The computer also reads Computer Cmd Messages
on the data storage buffer it is connected to. This enables users to send custom commands to the computer to be executed. These commands can include guidance commands (for the guidance computer to operate on) or specific commands that can perform specific actions on the computer. Additionally, custom commands can be entered which can be executed both in Unreal Blueprints and in C#, allowing for user-specific functionality. The command message is broken up into three values:
Property | Description |
---|---|
Authentication Key | An integer number associated with the computer’s private key. This must match perfectly otherwise the computer will ignore this value. |
Command | The name of the command to be executed. This should be a single-named command and can be one of the defaults or a custom one. |
Parameters | This is a comma-separated dictionary of optional parameters. Each parameter is passed into the command function which allows for additional properties to be manipulated for each command. |
The computer contains a Private Key; an integer number that is used to ensure only authorized commands can be executed. This is a simple replacement for a handshake procedure and this key is defaulted to \(0\). Only commands with the correct key will be run and all other commands deleted from the system.
When the command is loaded and the correct time is reached (if using epoch-timestamped data), then the command is checked with the key. If all is validated, then the command is executed. The following default commands exist:
Command | Description | Optional Parameters |
---|---|---|
guidance | Handles the attitude guidance changes for the operation computer and configures the direction that the computer should be oriented. | navigation (ENUM), pointing (ENUM), controller (ENUM), mapping (ENUM) |
camera | Handles the camera capturing or parameters update for the camera to configure taking images. | name (STRING) |
downlink | Handles the downlinking of state data that is stored within the database to a nearby ground station that is listening to the data. | storage (STRING), message_type (CLASS) |
register | Handles the registering of a new message to a particular storage system and enables the storing of some data. | storage (STRING), message_id (INT PTR), property_search (STRING), property_value (STRING), write_period (DOUBLE) |
ping | Handles a pinging command that requests the computer to ping its current timestamp on the computer as a message to the transmitter. | |
key | Handles the configuration of the private key that will ensure that the key can be changed via a command. | id (INT) |
delete | Handles the deletion of a particular data storage unit which clears all of the data within the unit. | storage (STRING) |
publish_string | Called when the action to publish a string of data is being executed. | data (STRING), key (STRING) |
If the command
property of the message does not line up with any of the functions above, then the OnCommandReceived
function will be called, passing in the command and parameters. This allows the user to override this function and create their own mapping of various commands. Users can turn the parameters string into a dictionary map and call specific elements with this.
Assumptions/Limitations
The computer is limited to the functionality that the user requests. The TT&C system is restricted to handling the commands in a specific way, and modifying this requires the user to override the class functions or to develop their own operation computer in blueprints or C# code.