CloudTwin  ROS2 Humble
Digital twin for path and trajectory optimisation
Public Member Functions | Private Member Functions | Private Attributes | List of all members
App\Services\DtStatusService Class Reference

Public Member Functions

 __construct (private readonly DeliveryPlannerService $planner, private readonly DtTaskQueueService $taskQueue,)
 
 handleStatusEvent (array $payload, string $source='dt:socket-consume')
 

Private Member Functions

 completePlanAndActivateNext (DeliveryPlan $activePlan, Room $startRoom, string $source)
 
 forgetPlanPhase (DeliveryPlan $plan)
 
 getPlanPhase (DeliveryPlan $plan)
 
 handleStatusForActiveBatchPlan (DeliveryPlan $activePlan, string $state, ?string $targetRoom, string $source)
 
 isStartRoomCode (?string $roomCode, Room $startRoom)
 
 markOrderDelivered (Order $order)
 
 markOrderInTransit (Order $order)
 
 markOrderPending (Order $order)
 
 normalizeRoomCode (string $roomCode)
 
 planPhaseCacheKey (DeliveryPlan $plan)
 
 resolveCurrentRoom (?string $targetRoom, Room $startRoom)
 
 setPlanPhase (DeliveryPlan $plan, string $phase)
 
 waitBeforeNextOrderDispatch ()
 

Private Attributes

const NEXT_ORDER_DISPATCH_DELAY_MICROSECONDS = 2500000
 
const PLAN_PHASE_AWAITING_START = 'awaiting_start'
 
const PLAN_PHASE_DELIVERING = 'delivering'
 
const PLAN_PHASE_RETURNING_TO_START = 'returning_to_start'
 

Constructor & Destructor Documentation

◆ __construct()

App\Services\DtStatusService::__construct ( private readonly DeliveryPlannerService  $planner,
private readonly DtTaskQueueService  $taskQueue 
)

Member Function Documentation

◆ completePlanAndActivateNext()

App\Services\DtStatusService::completePlanAndActivateNext ( DeliveryPlan  $activePlan,
Room  $startRoom,
string  $source 
)
private
Returns
array<int, array{type: string, room: string}>

◆ forgetPlanPhase()

App\Services\DtStatusService::forgetPlanPhase ( DeliveryPlan  $plan)
private

◆ getPlanPhase()

App\Services\DtStatusService::getPlanPhase ( DeliveryPlan  $plan)
private

◆ handleStatusEvent()

App\Services\DtStatusService::handleStatusEvent ( array  $payload,
string  $source = 'dt:socket-consume' 
)
Parameters
array<string,mixed>$payload
Returns
array<int, array{type: string, room: string}>

◆ handleStatusForActiveBatchPlan()

App\Services\DtStatusService::handleStatusForActiveBatchPlan ( DeliveryPlan  $activePlan,
string  $state,
?string  $targetRoom,
string  $source 
)
private
Returns
array<int, array{type: string, room: string}>

◆ isStartRoomCode()

App\Services\DtStatusService::isStartRoomCode ( ?string  $roomCode,
Room  $startRoom 
)
private

◆ markOrderDelivered()

App\Services\DtStatusService::markOrderDelivered ( Order  $order)
private

◆ markOrderInTransit()

App\Services\DtStatusService::markOrderInTransit ( Order  $order)
private

◆ markOrderPending()

App\Services\DtStatusService::markOrderPending ( Order  $order)
private

◆ normalizeRoomCode()

App\Services\DtStatusService::normalizeRoomCode ( string  $roomCode)
private

◆ planPhaseCacheKey()

App\Services\DtStatusService::planPhaseCacheKey ( DeliveryPlan  $plan)
private

◆ resolveCurrentRoom()

App\Services\DtStatusService::resolveCurrentRoom ( ?string  $targetRoom,
Room  $startRoom 
)
private

◆ setPlanPhase()

App\Services\DtStatusService::setPlanPhase ( DeliveryPlan  $plan,
string  $phase 
)
private

◆ waitBeforeNextOrderDispatch()

App\Services\DtStatusService::waitBeforeNextOrderDispatch ( )
private

Member Data Documentation

◆ NEXT_ORDER_DISPATCH_DELAY_MICROSECONDS

const App\Services\DtStatusService::NEXT_ORDER_DISPATCH_DELAY_MICROSECONDS = 2500000
private

◆ PLAN_PHASE_AWAITING_START

const App\Services\DtStatusService::PLAN_PHASE_AWAITING_START = 'awaiting_start'
private

◆ PLAN_PHASE_DELIVERING

const App\Services\DtStatusService::PLAN_PHASE_DELIVERING = 'delivering'
private

◆ PLAN_PHASE_RETURNING_TO_START

const App\Services\DtStatusService::PLAN_PHASE_RETURNING_TO_START = 'returning_to_start'
private

The documentation for this class was generated from the following file: