Emission ON Sequence Diagram

sequenceDiagram %% API Registered Routine: Emission ON (Section: NLOS) participant User as "API Call" participant EmissionON as "Emission ON" User->>+EmissionON: Call Emission ON participant CheckLaserstatus as "Check Laser status" participant CheckStatusPLD2 as "Check Status PLD2" participant CheckStatusPLD1 as "Check Status PLD1" participant CheckStatusIdler as "Check Status Idler" participant CheckStatusSeed as "Check Status Seed" EmissionON->>+CheckLaserstatus: Execute Check Laser Status CheckLaserstatus->>+CheckStatusPLD2: Execute Check PLD2 CheckStatusPLD2->>CheckStatusPLD2: Check STATUS - read_digital (name: STATUS, portnum: 3) CheckStatusPLD2->>CheckStatusPLD2: Check TECG - read_digital (name: TEC G, portnum: 3) CheckStatusPLD2->>CheckStatusPLD2: Format Output Values - output_values (values: ["prev('Check STATUS')","prev('Check TECG')"]) alt minimum(prev('Format Output Values'))==0 CheckStatusPLD2->>CheckStatusPLD2: Raise Error - raise_exception (e: Error in PLD2) end CheckStatusPLD2-->>-CheckLaserstatus: Complete CheckLaserstatus->>+CheckStatusPLD1: Execute Check PLD1 CheckStatusPLD1->>CheckStatusPLD1: Check STATUS - read_digital (name: STATUS, portnum: 2) CheckStatusPLD1->>CheckStatusPLD1: Check TECG - read_digital (name: TEC G, portnum: 2) CheckStatusPLD1->>CheckStatusPLD1: Format Output Values - output_values (values: ["prev('Check STATUS')","prev('Check TECG')"]) alt minimum(prev('Format Output Values'))==0 CheckStatusPLD1->>CheckStatusPLD1: Raise Error - raise_exception (e: Error in PLD1) end CheckStatusPLD1-->>-CheckLaserstatus: Complete CheckLaserstatus->>+CheckStatusIdler: Execute Check Idler CheckStatusIdler->>CheckStatusIdler: Check 1PGM - read_digital (name: 1PGM, portnum: 1) CheckStatusIdler->>CheckStatusIdler: Check TECG - read_digital (name: TEC G, portnum: 1) CheckStatusIdler->>CheckStatusIdler: Check INTERLOCK - read_digital (name: INTRLCK, portnum: 1) CheckStatusIdler->>CheckStatusIdler: Format Output Values - output_values (values: ["prev('Check 1PGM')","prev('Check TECG')","prev('Check INTERLOCK')"]) alt minimum(prev('Format Output Values'))==0 CheckStatusIdler->>CheckStatusIdler: Raise Error - raise_exception (e: Error in idler) end CheckStatusIdler-->>-CheckLaserstatus: Complete CheckLaserstatus->>+CheckStatusSeed: Execute Check Seed CheckStatusSeed->>CheckStatusSeed: Check TECG - read_digital (name: TEC G, portnum: 0) CheckStatusSeed->>CheckStatusSeed: Check INTERLOCK - read_digital (name: INTRLCK, portnum: 0) CheckStatusSeed->>CheckStatusSeed: Format Output Values - output_values (values: ["prev('Check TECG')","prev('Check INTERLOCK')"]) alt minimum(prev('Format Output Values'))==0 CheckStatusSeed->>CheckStatusSeed: Raise Error - raise_exception (e: Error in seed) end CheckStatusSeed-->>-CheckLaserstatus: Complete CheckLaserstatus-->>-EmissionON: Complete EmissionON->>EmissionON: Check PLD1 Imoni - read_analog (name: Imoni, portnum: 2) alt is_value_in_between(prev('Check PLD1 Imoni'), 280, 320)==False EmissionON->>EmissionON: Raise Exception - raise_exception (e: Emission on Error: Laser not armed) end EmissionON->>EmissionON: PULSE1 PLD2 - write_digital (name: PULSE1, portnum: 3, state: true) EmissionON-->>-User: Emission ON Complete
Zoom: 100%