~aleteoryx/muditaos

ref: 7a8e35016dc0509858bfc3d3d67830734cc1b97a muditaos/module-services/service-cellular/doc/call_request_handling.puml -rw-r--r-- 1.5 KiB
7a8e3501 — Lefucjusz [MOS-1026] Add extended logging to Pure's charger driver 2 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
@startuml
skinparam BackgroundColor F0F0F0
participant ServiceCellular as cellular
participant RequestFactory as factory
participant IRequest as request
participant CellularRequestHandler as handler
participant DLCChannel as channel


?->     cellular + : ""call request""
cellular -> factory + : Create
factory -> factory : emergencyCheck()
alt is emergency and allowed
        factory -> request ** : <<create CallRequest>>
    factory --> cellular : <<CallRequest : IRequest>>
else is emergency and not allowed
    factory -> request : <<create RejectRequest>>
    factory --> cellular : <<RejectRequest : IRequest>>
end
note left: decision depends on the emergency\nnumber itself and state of SIM card
loop request types
    factory -> factory : <<regexmatch>>
    alt matched
        factory -> request : <<create matched request>>
        factory --> cellular : << matched : IRequest>>
    end
end
alt SIM not present
    factory -> request : <<create RejectRequest>>
    factory --> cellular : <<RejectRequest>>
else else
    factory -> request : <<create CallRequest>>
    factory --> cellular -: <<CallRequest>>
end
cellular ->request : command()
request --> cellular: <<command>>
cellular -> channel: cmd(command)
channel -->cellular : at::Result
cellular -> request +: Handle(CellularRequestHandler, at::Result)
request -> handler + : Handle(IRequest)
handler->? - : <<specific system actions>>
?<--    cellular -- : ""multicast response""
cellular -> request !! : delete
@enduml