Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
@@ -0,0 +1,49 @@
|
||||
@startuml
|
||||
|
||||
package libocpp {
|
||||
|
||||
class ChargePoint {
|
||||
- device_model: DeviceModel
|
||||
}
|
||||
|
||||
class DeviceModel {
|
||||
- device_model: DeviceModelStorageInterface
|
||||
+ get_device_model(): DeviceModelRepresentation
|
||||
+ get_value(...): T
|
||||
+ set_value(...): SetVariableStatusEnum
|
||||
}
|
||||
|
||||
interface DeviceModelStorageInterface {
|
||||
+ get_device_model(): DeviceModelRepresentation
|
||||
+ get_variable_attribute(...): std::optional<VariableAttribute>
|
||||
+ set_variable_attribute_value(...): bool
|
||||
}
|
||||
|
||||
class DeviceModelStorageSqlite implements DeviceModelStorageInterface
|
||||
|
||||
}
|
||||
|
||||
package "OCPP201 Module" {
|
||||
|
||||
class EverestDeviceModelStorage implements libocpp.DeviceModelStorageInterface
|
||||
class ComposedDeviceModelStorage implements libocpp.DeviceModelStorageInterface {
|
||||
- everest_storage: EverestDeviceModelStorage
|
||||
- libocpp_storage: DeviceModelStorageSqlite
|
||||
}
|
||||
}
|
||||
|
||||
note left of ChargePoint
|
||||
ChargePoint and DeviceModel are
|
||||
implemented within the library.
|
||||
end note
|
||||
|
||||
note right of ComposedDeviceModelStorage
|
||||
This implementation will be passed to libocpp's constructor
|
||||
end note
|
||||
|
||||
ChargePoint *-- DeviceModel
|
||||
DeviceModel *-- DeviceModelStorageInterface
|
||||
ComposedDeviceModelStorage *-- EverestDeviceModelStorage
|
||||
ComposedDeviceModelStorage *-- DeviceModelStorageSqlite
|
||||
|
||||
@enduml
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
@@ -0,0 +1,46 @@
|
||||
@startuml
|
||||
'https://plantuml.com/sequence-diagram
|
||||
!pragma teoz true
|
||||
participant CSMS order 10
|
||||
participant libocpp order 20
|
||||
participant ComposedDeviceModel order 30
|
||||
database DeviceModelStorageSqlite order 40
|
||||
database EverestDeviceModelStorage order 50
|
||||
|
||||
autonumber "<b><font color=red>"
|
||||
skinparam sequenceArrowThickness 2
|
||||
|
||||
== Get Device Model at startup ==
|
||||
|
||||
ComposedDeviceModel->ComposedDeviceModel: Initialize device model based on component config
|
||||
libocpp->ComposedDeviceModel: get_device_model
|
||||
loop For each variable defined in component config
|
||||
alt internally managed variable
|
||||
ComposedDeviceModel->InternalStorage: get_value
|
||||
InternalStorage->ComposedDeviceModel: get_value response
|
||||
else externally managed variable
|
||||
ComposedDeviceModel->ExternalStorage: get_value
|
||||
ExternalStorage->ComposedDeviceModel: get_value response
|
||||
end
|
||||
end
|
||||
ComposedDeviceModel->libocpp: get_device_model response
|
||||
|
||||
== SetVariables.req by CSMS ==
|
||||
CSMS->libocpp: SetVariables.req
|
||||
loop For each SetVariable request
|
||||
libocpp->libocpp: Logical internal validation
|
||||
libocpp->libocpp: Device Model validation
|
||||
alt request is valid
|
||||
libocpp->ComposedDeviceModel: set_value
|
||||
alt internally managed variable
|
||||
ComposedDeviceModel->InternalStorage: set_value
|
||||
InternalStorage->ComposedDeviceModel: set_value response
|
||||
else externally managed variable
|
||||
ComposedDeviceModel->ExternalStorage: set_value
|
||||
ExternalStorage->ComposedDeviceModel: set_value response
|
||||
end
|
||||
ComposedDeviceModel->libocpp: set_value response
|
||||
end
|
||||
end
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user