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

View File

@@ -0,0 +1,378 @@
---
asyncapi: 3.0.0
id: 'pionix:de:everest:slac_API'
info:
title: 'EVerest API definition for SLAC'
version: 1.0.0
description: >-
API for EVerest API clients implementing SLAC.
license:
name: Apache-2.0
url: https://opensource.org/licenses/Apache-2.0
tags:
- name: EVerest
- name: slac
servers:
default:
pathname: 'everest_api/1/slac/{module_id}'
host: 'localhost:1883'
description: default local MQTT
protocol: mqtt
variables:
module_id:
description: The ID of the module as defined in the EVerest config file.
defaultContentType: application/json
channels:
############ slac
receive_reset:
address: 'e2m/reset'
messages:
receive_reset:
$ref: '#/components/messages/receive_reset'
receive_enter_bcd:
address: 'e2m/enter_bcd'
messages:
receive_enter_bcd:
$ref: '#/components/messages/receive_enter_bcd'
receive_leave_bcd:
address: 'e2m/leave_bcd'
messages:
receive_leave_bcd:
$ref: '#/components/messages/receive_leave_bcd'
receive_dlink_terminate:
address: 'e2m/dlink_terminate'
messages:
receive_dlink_terminate:
$ref: '#/components/messages/receive_dlink_terminate'
receive_dlink_error:
address: 'e2m/dlink_error'
messages:
receive_dlink_error:
$ref: '#/components/messages/receive_dlink_error'
receive_dlink_pause:
address: 'e2m/dlink_pause'
messages:
receive_dlink_pause:
$ref: '#/components/messages/receive_dlink_pause'
send_state:
address: 'm2e/state'
messages:
send_state:
$ref: '#/components/messages/send_state'
send_dlink_ready:
address: 'm2e/dlink_ready'
messages:
send_dlink_ready:
$ref: '#/components/messages/send_dlink_ready'
send_request_error_routine:
address: 'm2e/request_error_routine'
messages:
send_request_error_routine:
$ref: '#/components/messages/send_request_error_routine'
send_ev_mac_address:
address: 'm2e/ev_mac_address'
messages:
send_ev_mac_address:
$ref: '#/components/messages/send_ev_mac_address'
############ errors
send_raise_error:
address: 'm2e/raise_error'
messages:
send_raise_error:
$ref: '#/components/messages/send_raise_error'
send_clear_error:
address: 'm2e/clear_error'
messages:
send_clear_error:
$ref: '#/components/messages/send_clear_error'
############ heartbeat
receive_heartbeat:
address: 'e2m/heartbeat'
messages:
receive_heartbeat:
$ref: '#/components/messages/receive_heartbeat'
send_communication_check:
address: 'm2e/communication_check'
messages:
send_communication_check:
$ref: '#/components/messages/send_communication_check'
operations:
############ slac
receive_reset:
title: 'Receive reset'
action: receive
channel:
$ref: '#/channels/receive_reset'
description: 'Direction: EVerest to Module'
receive_enter_bcd:
title: 'Receive enter_bcd'
action: receive
channel:
$ref: '#/channels/receive_enter_bcd'
description: 'Direction: EVerest to Module'
receive_leave_bcd:
title: 'Receive leave_bcd'
action: receive
channel:
$ref: '#/channels/receive_leave_bcd'
description: 'Direction: EVerest to Module'
receive_dlink_terminate:
title: 'Receive dlink_terminate'
action: receive
channel:
$ref: '#/channels/receive_dlink_terminate'
description: 'Direction: EVerest to Module'
receive_dlink_error:
title: 'Receive dlink_error'
action: receive
channel:
$ref: '#/channels/receive_dlink_error'
description: 'Direction: EVerest to Module'
receive_dlink_pause:
title: 'Receive dlink_pause'
action: receive
channel:
$ref: '#/channels/receive_dlink_pause'
description: 'Direction: EVerest to Module'
send_state:
title: 'Send state'
action: send
channel:
$ref: '#/channels/send_state'
description: 'Direction: Module to EVerest'
send_dlink_ready:
title: 'Send dlink_ready'
action: send
channel:
$ref: '#/channels/send_dlink_ready'
description: 'Direction: Module to EVerest'
send_request_error_routine:
title: 'Send request_error_routine'
action: send
channel:
$ref: '#/channels/send_request_error_routine'
description: 'Direction: Module to EVerest'
send_ev_mac_address:
title: 'Send ev_mac_address'
action: send
channel:
$ref: '#/channels/send_ev_mac_address'
description: 'Direction: Module to EVerest'
send_raise_error:
title: 'Send raise error'
action: send
channel:
$ref: '#/channels/send_raise_error'
description: 'Direction: Module to EVerest'
send_clear_error:
title: 'Send clear error'
action: send
channel:
$ref: '#/channels/send_clear_error'
receive_heartbeat:
title: 'Receive heartbeat'
action: receive
channel:
$ref: '#/channels/receive_heartbeat'
description: 'Direction: EVerest to Module'
send_communication_check:
title: 'Send communication check'
action: send
channel:
$ref: '#/channels/send_communication_check'
components:
messages:
receive_reset:
name: receive_reset
title: 'Reset SLAC'
summary: Reset SLAC
contentType: application/json
payload:
$ref: '#/components/schemas/Enabled'
examples:
- summary: ""
payload:
true
receive_enter_bcd:
name: receive_enter_bcd
title: 'Enter B/C/D'
summary: Signal pilot state change to B/C/D from A/E/F.
receive_leave_bcd:
name: receive_leave_bcd
title: 'Leave B/C/D'
summary: Signal pilot state change to A/E/F from B/C/D.
receive_dlink_terminate:
name: receive_dlink_terminate
title: 'Dlink terminate'
summary: Terminate the data link and become UNMATCHED.
receive_dlink_error:
name: receive_dlink_error
title: 'Dlink error'
summary: Terminate the data link and restart the matching process.
receive_dlink_pause:
name: receive_dlink_pause
title: 'Dlink pause'
summary: Request power saving mode, while staying MATCHED.
send_state:
name: send_state
title: 'SLAC state'
summary: Provides the state enum.
contentType: application/json
payload:
$ref: '#/components/schemas/SLACState'
examples:
- summary: "Example state MATCHED"
payload:
"state": "MATCHED"
send_dlink_ready:
name: send_dlink_ready
title: 'Dlink ready'
summary: >-
Inform higher layers about a change in data link status. Emits true
if link was set up and false when the link is shut down.
contentType: application/json
payload:
$ref: '#/components/schemas/DLinkStatus'
examples:
- summary: "Example dlink_ready true"
payload:
"dlink_ready": true
send_request_error_routine:
name: send_request_error_routine
title: 'Request error routine'
summary: >-
Inform the higher layer to execute the error routine for a SLAC connection
retry
contentType: application/json
payload:
type: 'null'
send_ev_mac_address:
name: send_ev_mac_address
title: 'EV MAC address'
summary: >-
Inform higher layers about the MAC address of the vehicle (upper case)
contentType: application/json
payload:
$ref: '#/components/schemas/MACAddress'
examples:
- summary: "Example MAC address"
payload:
"ev_mac_address": "AA:BB:CC:DD:EE:FF"
send_raise_error:
name: send_raise_error
title: 'Send raise error'
summary: Signal to EVerest that an error happened.
contentType: application/json
payload:
$ref: '#/components/schemas/Error'
examples:
- summary: "Example error message"
payload:
"type": "CommunicationFault"
"sub_type": "string"
"message": "string"
send_clear_error:
name: send_clear_error
title: 'Send clear error'
summary: Signal to EVerest that an error was resolved.
contentType: application/json
payload:
$ref: '#/components/schemas/Error'
examples:
- summary: Signal to EVerest that a previously raised error is no longer active.
payload:
"type": "CommunicationFault"
"sub_type": "string"
"message": "string"
receive_heartbeat:
name: receive_heartbeat
title: 'Receive heartbeat'
summary: Heartbeat produced by EVerest as configured via cfg_heartbeat_interval_ms in the EVerest configuration
contentType: application/json
payload:
$ref: '#/components/schemas/HeartBeatId'
examples:
- summary: "Heartbeat"
payload: 42
send_communication_check:
name: send_communication_check
title: 'Send communication check'
summary: Signal to EVerest that communication is good or check shall be stopped
contentType: application/json
payload:
$ref: '#/components/schemas/CommunicationCheck'
examples:
- summary: ""
payload:
true
schemas:
Enabled:
type: boolean
description: 'true: start SLAC after reset, false: stop SLAC'
SLACState:
type: object
properties:
state:
type: string
description: Provides the state enum.
enum:
- UNMATCHED
- MATCHING
- MATCHED
DLinkStatus:
type: object
properties:
dlink_ready:
type: boolean
description: >-
Inform higher layers about a change in data link status. Emits true
if link was set up and false when the link is shut down.
MACAddress:
type: object
properties:
ev_mac_address:
type: string
description: >-
Inform higher layers about the MAC address of the vehicle (upper case)
pattern: ^[A-F0-9]{2}(:[A-F0-9]{2}){5}$
Error:
type: object
properties:
type:
$ref: '#/components/schemas/ErrorEnum'
sub_type:
type: string
description: Sub-type of the error.
message:
type: string
description: Addition information about the error
ErrorEnum:
type: string
description: |
Type of Error
- CommunicationFault: 'The communication to the hardware or underlying driver is lost or has errors.'
- VendorError: 'Vendor specific error code. Will stop charging session.'
- VendorWarning: 'Vendor specific error code. Charging may continue.'
CommunicationCheck:
type: boolean
description: "Send 'true' at least every 'cfg_communication_check_to_s' seconds to signal module is alive. Send 'false' to stop communication check'"
HeartBeatId:
type: integer
description: "64bit unsigned integer. The id of every heartbeat increases by 1 and overflows when the maximum representable value is reached"