...
| PlantUML Macro | ||
|---|---|---|
| ||
@startuml
participant mm
participant rdkvfwupdater
participant iarmlib #Green
participant rfclib #Green
participant jsonlib #Green
participant upgradelib #Green
participant utilslib #Green
participant downloadlib #Green
participant xconfserver #Yellow
participant parsinglib #Green
participant ssrserver #Yellow
participant flashapp
mm -> rdkvfwupdater : trigger
rdkvfwupdater -> rdkvfwupdater : initial validation
alt validation success
rdkvfwupdater -> utilslib : get device details
utilslib --> rdkvfwupdater : device details
rdkvfwupdater -> rfclib : get rfc data
rfclib --> rdkvfwupdater : rfc data
rdkvfwupdater -> jsonlib : create json request
jsonlib -> parsinglib : generic JSON parse/construct
parsinglib --> jsonlib : result
jsonlib --> rdkvfwupdater : json payload
rdkvfwupdater -> upgradelib : request xconf connection
upgradelib -> downloadlib : connect to xconf server
downloadlib -> xconfserver : request
alt xconf response success
xconfserver --> downloadlib : success response
downloadlib --> upgradelib : success response
upgradelib --> rdkvfwupdater : success response
rdkvfwupdater -> jsonlib : parse json data
jsonlib -> parsinglib : generic JSON parse/construct
parsinglib --> jsonlib : result
alt parsing success
jsonlib --> rdkvfwupdater : success response
rdkvfwupdater -> rdkvfwupdater : process json data
alt new image different
rdkvfwupdater -> upgradelib : download image
upgradelib -> downloadlib : download image
downloadlib -> ssrserver : request
ssrserver --> downloadlib : server status
alt server status 0
downloadlib --> upgradelib : success response
upgradelib --> rdkvfwupdater : success response
rdkvfwupdater -> flashapp : flash image
flashapp --> rdkvfwupdater : flash status
rdkvfwupdater -> iarmlib : success status
iarmlib --> mm : success status
else server status 18 or 28
downloadlib --> upgradelib : chunkdownload
upgradelib --> rdkvfwupdater : chunkdownload
rdkvfwupdater -> flashapp : flash image
flashapp --> rdkvfwupdater : flash status
rdkvfwupdater -> iarmlib : success status
iarmlib --> mm : success status
else server status 58
rdkvfwupdater -> rdkvfwupdater : recovery download
else other server status
downloadlib --> upgradelib : retry download
upgradelib --> rdkvfwupdater : retry download
rdkvfwupdater -> iarmlib : fail status
iarmlib --> mm : fail status
end
else same image
rdkvfwupdater -> iarmlib : success status
iarmlib --> mm : success status
end
else parsing fail
rdkvfwupdater -> iarmlib : fail status
iarmlib --> mm : fail status
end
else xconf response fail
xconfserver --> downloadlib : fail response
downloadlib --> upgradelib : fail response
upgradelib --> rdkvfwupdater : fail response
rdkvfwupdater -> iarmlib : fail status
iarmlib --> mm : fail status
end
else validation fail
rdkvfwupdater -> iarmlib : error status
iarmlib --> mm : error status
end
@enduml |
NEW DEVICE SYSTEM :
| PlantUML Macro | ||
|---|---|---|
| ||
@startuml
skinparam componentStyle rectangle
skinparam packageStyle rectangle
' Layer 1: Device System Components
package "New Device System" {
[rdkvfwupdater Daemon] <<daemon>> as RDKV
[App Plugin] <<component>> as AppPlugin
[Firmware Update Library] <<library>> as FWUpdate
package "Common Utilities" {
[libdwnl] <<library>>
[libjsonparser] <<library>>
[libutils] <<library>>
}
[Flash Memory] <<storage>> as FlashMem
}
' Layer 2: External Network Servers
package "External Servers" {
[XConf Server] <<cloud>> as XConf
[SSR Server] <<cloud>> as SSR
}
' App Plugin interactions
AppPlugin --> FWUpdate : download + flash API calls
' Firmware update lib communicates with rdkvfwupdater
FWUpdate ..> RDKV : IPC Request\n(download/flash tasks)
RDKV ..> FWUpdate : IPC Response\n(task result)
' rdkvfwupdater uses common utilities and flash memory
RDKV --> libdwnl : fetch/download helpers
RDKV --> libjsonparser : parse JSON config
RDKV --> libutils : device info/utils
RDKV --> FlashMem : flash firmware
' Common utils interaction with servers
libdwnl --> XConf : fetch xconf data
libdwnl --> SSR : download firmware image
@enduml |
NEW DEVICE SYSTEM:
...
...
NEW DEVICE SYSTEM: