class documentation

class BaseStartupSkill(ParentMixin['BaseMachineryItem'], BaseSkillContinuous):

Constructor: BaseStartupSkill(minimum_access_level, handle_status_change, **kwargs)

View In Hierarchy

The base for every startup skill. Manges status and mode changes of the parent BaseMachineryItem.

  • Startup skill not running --> MachineryItemState.OUT_OF_SERVICE state

  • 1+ finite skills running --> MachineryItemState.EXECUTING state / MachineryOperationMode.PROCESSING mode

  • 0 finite skills running --> MachineryItemState.NOT_EXECUTING state / MachineryOperationMode.SETUP mode

    (see SF-KL Skill specification V4).

Startup skills are never suspendable and have neither separate precondition nor feasibility checks.

The default implementation resets all subcomponents and skills of the parent component when in state SkillState.STARTING and halts all when in state SkillState.HALTING. Override the corresponding _handle_* methods for custom behavior.

Method __init__ Cooperative constructor.
Constant NAME Undocumented
Async Method _condition_startup_completed Return True.
Async Method _get_definition Undocumented
Async Method _handle_halting Undocumented
Async Method _handle_starting Undocumented
Async Method _handle_status_changes Undocumented
Instance Variable _handle_status_change_task Undocumented
def __init__(self, *, minimum_access_level: int = 2, handle_status_change: bool = True, **kwargs: dict[str, Any]):

Cooperative constructor.

NAME: str =

Undocumented

Value
'StartupSkill'
@override
async def _condition_startup_completed(self, user: UserAuthorization) -> bool:

Return True.

A Startup skill in state SkillState.RUNNING is required for parent's "Startup" being completed. A normal skill would check through the parent, but we need to always be able to start.

@override
async def _get_definition(self) -> UaObjectDefinition:

Undocumented

@override
async def _handle_halting(self):

Undocumented

@override
async def _handle_starting(self):

Undocumented

async def _handle_status_changes(self) -> Never:

Undocumented

_handle_status_change_task: asyncio.Task | None =

Undocumented