SimulationBaseClass

class SimulationBaseClass.EventHandlerClass(eventName, eventRate=1000000000, eventActive=False, conditionFunction=None, actionFunction=None, conditionList=None, actionList=None, terminal=False)[source]

Bases: object

Event Handler Class

class SimulationBaseClass.SimBaseClass[source]

Bases: object

Simulation Base Class

AddModelToTask(TaskName, NewModel, ModelData=None, ModelPriority=-1)[source]

This function is responsible for passing on the logger to a module instance (model), adding the model to a particular task, and defining the order/priority that the model gets updated within the task.

Parameters:
  • (str) (TaskName) – Name of the task

  • (obj) (NewModel) – Model to add to the task

  • ModelData – None or struct containing, only used for C BSK modules

  • (int) (ModelPriority) – Priority that determines when the model gets updated. (Higher number = Higher priority)

Returns:

ConfigureStopTime(TimeStop)[source]

Set the simulation stop time in nano-seconds.

CreateNewProcess(procName, priority=-1)[source]

Creates a process and adds it to the sim

Parameters:
  • (str) (procName) – Name of process

  • (int) (priority) – Priority that determines when the model gets updated. (Higher number = Higher priority)

Returns:

simulationArchTypes.ProcessBaseClass object

CreateNewTask(TaskName, TaskRate, InputDelay=None, FirstStart=0)[source]

Creates a simulation task on the C-level with a specific update-frequency (TaskRate), an optional delay, and an optional start time.

Parameters:
  • TaskName (str) – Name of Task

  • TaskRate (int) – Number of nanoseconds to elapse before update() is called

  • InputDelay (int) – (depreciated, unimplemented) Number of nanoseconds simulating a lag of the particular task

  • FirstStart (int) – Number of nanoseconds to elapse before task is officially enabled

Returns:

simulationArchTypes.TaskBaseClass object

ExecuteSimulation()[source]

run the simulation until the prescribed stop time or termination.

InitializeSimulation()[source]

Initialize the BSK simulation. This runs the SelfInit() and Reset() methods on each module.

SetProgressBar(value)[source]

Shows a dynamic progress in the terminal while the simulation is executing.

ShowExecutionFigure(show_plots=False)[source]

Shows in what order the Basilisk processes, task lists and modules are executed

ShowExecutionOrder()[source]

Shows in what order the Basilisk processes, task lists and modules are executed

createNewEvent(eventName, eventRate=1000000000, eventActive=False, conditionList=None, actionList=None, terminal=False, conditionFunction=None, actionFunction=None)[source]

Create an event sequence that contains a series of tasks to be executed.

Parameters:
  • eventName (str) – Name of the event

  • eventRate (int) – Rate at which the event is checked in nanoseconds

  • eventActive (bool) – Whether the event is active or not

  • conditionList (list) – List of conditions to check for the event, expressed as strings of code to execute within the class.

  • actionList (list) – List of actions to perform when the event occurs, expressed as strings of code to execute within the class.

  • terminal (bool) – Whether this event should terminate the simulation when it occurs

  • conditionFunction (function) – Function to check if the event should occur. The function should take the simulation object as an argument and return a boolean. This is the preferred manner to set conditions as it enables the use of arbitrary packages and objects in events and allows for event code to be parsed by IDE tools.

  • actionFunction (function) – Function to execute when the event occurs. The function should take the simulation object as an argument. This is the preferred manner to set conditions as it enables the use of arbitrary packages and objects in events and allows for event code to be parsed by IDE tools.

disableTask(TaskName)[source]

Disable this particular task from being executed.

enableTask(TaskName)[source]

Enable this particular task to be executed.

setAllButCurrentEventActivity(currentEventName, activityCommand, useIndex=False)[source]

Set all event activity variables except for the currentEventName event. The useIndex flag can be used to prevent enabling or disabling every task, and instead only alter the ones that belong to the same group (for example, the same spacecraft). The distinction is made through an index set after the _ symbol in the event name. All events of the same group must have the same index.

class SimulationBaseClass.StructDocData(strName)[source]

Bases: object

Structure data documentation class

SimulationBaseClass.methodizeAction(actionList)[source]

Methodize an action list to a function

SimulationBaseClass.methodizeCondition(conditionList)[source]

Methodize a condition list to a function