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:
Eric F
2026-06-08 00:38:27 -04:00
parent 468cfeaa50
commit d398a6ced2
7326 changed files with 1177561 additions and 7 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

View File

@@ -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

View File

@@ -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