Module: sys_model_task

struct ModelPriorityPair
#include <sys_model_task.h>

Structure used to pair a model and its requested priority.

Public Members

int32_t CurrentModelPriority

The current model priority. Higher goes first.

SysModel *ModelPtr

The model associated with this priority.

class SysModelTask
#include <sys_model_task.h>

Class used to group a set of models into one “Task” of execution.

Public Functions

SysModelTask()

The task constructor.

SysModelTask(uint64_t InputPeriod, uint64_t InputDelay = 0, uint64_t FirstStartTime = 0)

A construction option that allows the user to set some task parameters. Note that the only required argument is InputPeriod.

Parameters
  • uint64_t: InputPeriod The amount of nanoseconds between calls to this Task.

  • uint64_t: InputDelay How long to delay the input by in nanoseconds

  • uint64_t: FirstStartTime The offset in nanoseconds in a given frame to start the Task with.

~SysModelTask()

The destructor.

void AddNewObject(SysModel *NewModel, int32_t Priority = -1)

This method adds a new model into the Task list. Note that the Priority parameter is option as it defaults to -1 (lowest, latest)

Return

void

Parameters
  • SysModel*: NewModel The new model that we are adding to the Task

  • int32_t: Priority The selected priority of the model being added (highest goes first)

void SelfInitTaskList()

This method self-initializes all of the models that have been added to the Task.

Return

void

void CrossInitTaskList()

This method cross-initializes all of the models that have been added to the Task.

Return

void

void ExecuteTaskList(uint64_t CurrentSimTime)

This method executes all of the models on the Task during runtime. Then, it sets its NextStartTime appropriately.

Return

void

Parameters
  • CurrentSimNanos: The current simulation time in [ns]

void ResetTaskList(uint64_t CurrentSimTime)

This method resets all of the models that have been added to the Task at the CurrentSimTime. See sys_model_task.h for related method ResetTask()

Return

void

Parameters
  • uint64_t: CurrentSimTime The time to start at after reset

void ResetTask()
void enableTask()
void disableTask()
void updatePeriod(uint64_t newPeriod)

This method changes the period of a given task over to the requested period. It attempts to keep the same offset relative to the original offset that was specified at task creation.

Return

void

Parameters
  • uint64_t: newPeriod The period that the task should run at going forward

Public Members

std::vector<ModelPriorityPair> TaskModels

Array that has pointers to all task sysModels

std::string TaskName

Identifier for Task

uint64_t NextStartTime

[ns] Next time to start task

uint64_t NextPickupTime

[ns] Next time read Task outputs

uint64_t TaskPeriod

[ns] Cycle rate for Task

uint64_t PickupDelay

[ns] Time between dispatches

uint64_t FirstTaskTime

[ns] Time to start Task for first time

bool taskActive

Flag indicating whether the Task has been disabled

BSKLogger bskLogger

BSK Logging