@startuml
!include template.puml


activate main
main -> ee : EE_START_EXECUTION_REQUEST
activate ee
ee -> main : EE_START_EXECUTION_RESPONSE
main -> main : Update database
main -> wui : WUI_WORKFLOW_STATUS_NOTIFICATION
deactivate main



group DMSL Step
    ee -> fdapi : FDAPI_STEP_BEGIN_REQUEST
    activate fdapi
    fdapi -> fdapi : Wait for start of frame
    fdapi -> fdapi : Render frame
    fdapi -> ee : FDAPI_STEP_BEGIN_RESPONSE

    ee -> ee : Peripheral Settings (lighting on, etc.)

    ee -> ee : Imaging

    ee -> ee : Peripheral Settings (lighting off, etc.)

    ee -> ia : TrackObjectsRequest
    activate ia
    ia -> art : trackObjects
    activate art
    art --> ia : trackObjectsResponse
    deactivate art
    ia --> ee : trackObjectsResponse
    deactivate ia


    ee -> ee : Peripheral Settings (BFL lighting on)
    ee -> ee : Imaging
    ee -> ee : Peripheral Settings (BFL lighting off)


    ee -> ia : analyseImages
    activate ia

    ia -> ee : dataSample
    deactivate ia


    ee -> ic : IMAGE_COMPRESSOR_IMAGE_REQUEST
    activate ic
    ic --> ee : IMAGE_COMPRESSOR_IMAGE_RESPONSE
    note right of ic
    Suggest that image-compressor is modified
    to receive uncompressed camera data, and is
    expanded to also handle .png compression

    Image compressor runs asynchronously
    end note



    ee -> main : EE_SCREEN_STATUS_NOTIFICATION (+DMSL status)
    deactivate ee

    activate main
    main -> main : Database update
    main -> wui : WUI_WORKFLOW_STATUS_NOTIFICATION
    deactivate ic
    deactivate main
end group

@enduml