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:
46
tools/EVerest-main/lib/everest/ocpp/config/v2/CMakeLists.txt
Normal file
46
tools/EVerest-main/lib/everest/ocpp/config/v2/CMakeLists.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
# find all migration files, store only the filenames by showing relative to the folder
|
||||
set(MIGRATION_FILES_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/core_migrations")
|
||||
set(MIGRATION_FILES_DEVICE_MODEL_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/../common/device_model_migrations")
|
||||
|
||||
include(../CollectMigrationFiles.cmake)
|
||||
|
||||
collect_migration_files(
|
||||
LOCATION ${MIGRATION_FILES_LOCATION}
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_DATADIR}/everest/modules/OCPP201/core_migrations
|
||||
)
|
||||
|
||||
set(MIGRATION_FILE_VERSION_V2 ${TARGET_MIGRATION_FILE_VERSION} PARENT_SCOPE)
|
||||
|
||||
collect_migration_files(
|
||||
LOCATION ${MIGRATION_FILES_DEVICE_MODEL_LOCATION}
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_DATADIR}/everest/modules/OCPP201/device_model_migrations
|
||||
)
|
||||
|
||||
set(MIGRATION_DEVICE_MODEL_FILE_VERSION_V2 ${TARGET_MIGRATION_FILE_VERSION} PARENT_SCOPE)
|
||||
set(MIGRATION_FILES_SOURCE_DIR_V2 ${MIGRATION_FILES_LOCATION} PARENT_SCOPE)
|
||||
set(MIGRATION_FILES_DEVICE_MODEL_SOURCE_DIR_V2 ${MIGRATION_FILES_DEVICE_MODEL_LOCATION} PARENT_SCOPE)
|
||||
|
||||
option(LIBOCPP_INSTALL_STANDARDIZED_COMPONENT_CONFIG "Install the standardized components configs for OCPP2.0.1 and OCPP2.1" ON)
|
||||
option(LIBOCPP_INSTALL_CUSTOM_COMPONENT_CONFIG "Install the custom component configs for OCPP2.0.1 and OCPP2.1" OFF)
|
||||
|
||||
list(APPEND CONFIGS
|
||||
../logging.ini
|
||||
)
|
||||
|
||||
install(
|
||||
FILES ${CONFIGS}
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/everest/modules/OCPP201
|
||||
)
|
||||
|
||||
set(LIBOCPP_STANDARDIZED_COMPONENT_CONFIG_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../common/component_config/standardized" CACHE PATH "Path to standardized OCPP component configs")
|
||||
set(LIBOCPP_CUSTOM_COMPONENT_CONFIG_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../common/component_config/custom" CACHE PATH "Path to custom OCPP component configs")
|
||||
|
||||
if (LIBOCPP_INSTALL_STANDARDIZED_COMPONENT_CONFIG)
|
||||
message(STATUS "Using ocpp standardized component config file path: ${LIBOCPP_STANDARDIZED_COMPONENT_CONFIG_PATH}")
|
||||
install(DIRECTORY ${LIBOCPP_STANDARDIZED_COMPONENT_CONFIG_PATH}/ DESTINATION ${CMAKE_INSTALL_DATADIR}/everest/modules/OCPP201/component_config/standardized)
|
||||
endif()
|
||||
|
||||
if (LIBOCPP_INSTALL_CUSTOM_COMPONENT_CONFIG)
|
||||
message(STATUS "Using ocpp custom component config file path: ${LIBOCPP_CUSTOM_COMPONENT_CONFIG_PATH}")
|
||||
install(DIRECTORY ${LIBOCPP_CUSTOM_COMPONENT_CONFIG_PATH}/ DESTINATION ${CMAKE_INSTALL_DATADIR}/everest/modules/OCPP201/component_config/custom)
|
||||
endif()
|
||||
@@ -0,0 +1,88 @@
|
||||
PRAGMA foreign_keys = ON;
|
||||
|
||||
-- Authorization cache --
|
||||
CREATE TABLE AUTH_CACHE(
|
||||
ID_TOKEN_HASH TEXT PRIMARY KEY NOT NULL,
|
||||
ID_TOKEN_INFO TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- OCPP 2.0.1. Availability --
|
||||
-- Rows are the operative state (Operative/Inoperative) of the CS, all EVSEs, and all Connectors
|
||||
CREATE TABLE AVAILABILITY(
|
||||
EVSE_ID INT NOT NULL, -- EVSE_ID=0 AND CONNECTOR_ID=0 addresses the whole CS
|
||||
CONNECTOR_ID INT NOT NULL, -- A CONNECTOR_ID of 0 when EVSE_ID > 0 addresses the whole connector
|
||||
OPERATIONAL_STATUS TEXT NOT NULL, -- "Operative" or "Inoperative"
|
||||
PRIMARY KEY (EVSE_ID, CONNECTOR_ID),
|
||||
-- Consistency check: EVSE and connector IDs are positive, and if EVSE_ID is 0, CONNECTOR_ID must also be 0
|
||||
CHECK (EVSE_ID >= 0 AND CONNECTOR_ID >= 0 AND (EVSE_ID > 0 OR CONNECTOR_ID = 0))
|
||||
);
|
||||
|
||||
CREATE TABLE TRANSACTION_QUEUE(
|
||||
UNIQUE_ID TEXT PRIMARY KEY NOT NULL,
|
||||
MESSAGE TEXT NOT NULL,
|
||||
MESSAGE_TYPE TEXT NOT NULL,
|
||||
MESSAGE_ATTEMPTS INT NOT NULL,
|
||||
MESSAGE_TIMESTAMP TEXT NOT NULL
|
||||
);
|
||||
|
||||
|
||||
-- Auth list --
|
||||
CREATE TABLE AUTH_LIST_VERSION (
|
||||
ID INT PRIMARY KEY NOT NULL,
|
||||
VERSION INT
|
||||
);
|
||||
|
||||
CREATE TABLE AUTH_LIST (
|
||||
ID_TOKEN_HASH TEXT PRIMARY KEY NOT NULL,
|
||||
ID_TOKEN_INFO TEXT NOT NULL
|
||||
);
|
||||
|
||||
INSERT OR IGNORE INTO AUTH_LIST_VERSION (ID, VERSION) VALUES
|
||||
(0, 0);
|
||||
|
||||
|
||||
-- Metervalues --
|
||||
CREATE TABLE READING_CONTEXT_ENUM (
|
||||
ID INT PRIMARY KEY,
|
||||
READING_CONTEXT TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE MEASURAND_ENUM (
|
||||
ID INT PRIMARY KEY,
|
||||
MEASURAND TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE PHASE_ENUM (
|
||||
ID INT PRIMARY KEY,
|
||||
PHASE TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE LOCATION_ENUM (
|
||||
ID INT PRIMARY KEY,
|
||||
LOCATION TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE METER_VALUES (
|
||||
ROWID INTEGER PRIMARY KEY,
|
||||
TRANSACTION_ID TEXT NOT NULL,
|
||||
TIMESTAMP INT64 NOT NULL,
|
||||
READING_CONTEXT INTEGER REFERENCES READING_CONTEXT_ENUM (ID),
|
||||
CUSTOM_DATA TEXT,
|
||||
UNIQUE(TRANSACTION_ID, TIMESTAMP, READING_CONTEXT)
|
||||
);
|
||||
|
||||
CREATE TABLE METER_VALUE_ITEMS (
|
||||
METER_VALUE_ID INTEGER REFERENCES METER_VALUES (ROWID),
|
||||
VALUE REAL NOT NULL,
|
||||
MEASURAND INTEGER REFERENCES MEASURAND_ENUM (ID),
|
||||
PHASE INTEGER REFERENCES PHASE_ENUM (ID),
|
||||
LOCATION INTEGER REFERENCES LOCATION_ENUM (ID),
|
||||
CUSTOM_DATA TEXT,
|
||||
UNIT_CUSTOM_DATA TEXT,
|
||||
UNIT_TEXT TEXT,
|
||||
UNIT_MULTIPLIER INT,
|
||||
SIGNED_METER_DATA TEXT,
|
||||
SIGNING_METHOD TEXT,
|
||||
ENCODING_METHOD TEXT,
|
||||
PUBLIC_KEY TEXT
|
||||
);
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE AUTH_CACHE DROP COLUMN LAST_USED;
|
||||
ALTER TABLE AUTH_CACHE DROP COLUMN EXPIRY_DATE;
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE AUTH_CACHE ADD COLUMN LAST_USED INT64 NOT NULL DEFAULT 0;
|
||||
ALTER TABLE AUTH_CACHE ADD COLUMN EXPIRY_DATE INT64;
|
||||
@@ -0,0 +1 @@
|
||||
DROP TABLE NORMAL_QUEUE;
|
||||
@@ -0,0 +1,7 @@
|
||||
CREATE TABLE NORMAL_QUEUE(
|
||||
UNIQUE_ID TEXT PRIMARY KEY NOT NULL,
|
||||
MESSAGE TEXT NOT NULL,
|
||||
MESSAGE_TYPE TEXT NOT NULL,
|
||||
MESSAGE_ATTEMPTS INT NOT NULL,
|
||||
MESSAGE_TIMESTAMP TEXT NOT NULL
|
||||
);
|
||||
@@ -0,0 +1 @@
|
||||
DROP TABLE TRANSACTIONS;
|
||||
@@ -0,0 +1,9 @@
|
||||
CREATE TABLE TRANSACTIONS (
|
||||
TRANSACTION_ID TEXT NOT NULL UNIQUE,
|
||||
EVSE_ID INT NOT NULL UNIQUE,
|
||||
CONNECTOR_ID INT NOT NULL,
|
||||
TIME_START INT64 NOT NULL,
|
||||
SEQ_NO INT NOT NULL,
|
||||
CHARGING_STATE TEXT NOT NULL,
|
||||
ID_TAG_SENT INT NOT NULL
|
||||
);
|
||||
@@ -0,0 +1 @@
|
||||
DROP TABLE CHARGING_PROFILES;
|
||||
@@ -0,0 +1,7 @@
|
||||
CREATE TABLE CHARGING_PROFILES (
|
||||
ID INT PRIMARY KEY NOT NULL,
|
||||
EVSE_ID INT NOT NULL,
|
||||
STACK_LEVEL INT NOT NULL,
|
||||
CHARGING_PROFILE_PURPOSE TEXT NOT NULL,
|
||||
PROFILE TEXT NOT NULL
|
||||
);
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE CHARGING_PROFILES DROP COLUMN CHARGING_LIMIT_SOURCE;
|
||||
ALTER TABLE CHARGING_PROFILES DROP COLUMN TRANSACTION_ID;
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE CHARGING_PROFILES ADD COLUMN CHARGING_LIMIT_SOURCE TEXT NOT NULL DEFAULT 'CSO';
|
||||
ALTER TABLE CHARGING_PROFILES ADD COLUMN TRANSACTION_ID TEXT;
|
||||
@@ -0,0 +1,3 @@
|
||||
DROP INDEX IF EXISTS idx_der_controls_default_type;
|
||||
DROP INDEX IF EXISTS idx_der_controls_is_default;
|
||||
DROP TABLE IF EXISTS DER_CONTROLS;
|
||||
@@ -0,0 +1,25 @@
|
||||
CREATE TABLE IF NOT EXISTS DER_CONTROLS (
|
||||
-- CiString<36> cap per OCPP 2.1.
|
||||
CONTROL_ID TEXT PRIMARY KEY NOT NULL CHECK (length(CONTROL_ID) <= 36),
|
||||
IS_DEFAULT INTEGER NOT NULL CHECK (IS_DEFAULT IN (0, 1)),
|
||||
CONTROL_TYPE TEXT NOT NULL,
|
||||
IS_SUPERSEDED INTEGER NOT NULL DEFAULT 0 CHECK (IS_SUPERSEDED IN (0, 1)),
|
||||
PRIORITY INTEGER NOT NULL CHECK (PRIORITY >= 0),
|
||||
-- RFC 3339 shape: lex-comparison-safe. LIKE used so '_' is single-char wildcard.
|
||||
START_TIME TEXT CHECK (START_TIME IS NULL OR START_TIME LIKE '____-__-__T__:__:__%Z'),
|
||||
-- Upper bound matches MAX_DURATION_SECONDS (one year = 86400 * 365) in der_control.cpp.
|
||||
DURATION REAL CHECK (DURATION IS NULL OR (DURATION >= 0 AND DURATION <= 31536000)),
|
||||
CONTROL_JSON TEXT NOT NULL,
|
||||
-- R04.FR.07: when set, this row has been accepted but its supersede of
|
||||
-- PENDING_SUPERSEDE_ID is deferred until START_TIME <= now.
|
||||
PENDING_SUPERSEDE_ID TEXT,
|
||||
-- R04.FR.20/21: 1 once NotifyDERStartStop(started=true) has been emitted for
|
||||
-- this row. The scheduled-check pass flips this at the moment START_TIME <= now.
|
||||
STARTED_NOTIFIED INTEGER NOT NULL DEFAULT 0 CHECK (STARTED_NOTIFIED IN (0, 1))
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_der_controls_default_type
|
||||
ON DER_CONTROLS (IS_DEFAULT, CONTROL_TYPE);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_der_controls_is_default
|
||||
ON DER_CONTROLS (IS_DEFAULT);
|
||||
Reference in New Issue
Block a user