Files
Eric F d398a6ced2 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
2026-06-08 00:38:27 -04:00

225 lines
6.2 KiB
C++

// SPDX-License-Identifier: Apache-2.0
// Copyright Pionix GmbH and Contributors to EVerest
#include <device_model/definitions.hpp>
#include <optional>
#include <ocpp/v2/ocpp_types.hpp>
using ocpp::CiString;
using ocpp::v2::DataEnum;
namespace EvseDefinitions {
EVSE get_evse(const int32_t evse_id, const std::optional<int32_t>& connector_id) {
EVSE evse;
evse.id = evse_id;
evse.connectorId = connector_id;
return evse;
}
namespace Characteristics {
const VariableCharacteristics AllowReset = [] {
VariableCharacteristics var;
var.dataType = DataEnum::boolean;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics AvailabilityState = [] {
VariableCharacteristics var;
var.dataType = DataEnum::OptionList;
var.supportsMonitoring = false;
var.valuesList = CiString<1000>("Available,Occupied,Reserved,Unavailable,Faulted");
return var;
}();
const VariableCharacteristics Available = [] {
VariableCharacteristics var;
var.dataType = DataEnum::boolean;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics EvseId = [] {
VariableCharacteristics var;
var.dataType = DataEnum::string;
var.supportsMonitoring = false;
return var;
}();
VariableCharacteristics EVSEPower = [] {
VariableCharacteristics var;
var.dataType = DataEnum::decimal;
var.supportsMonitoring = false;
var.unit = CiString<16>("W");
var.maxLimit = 0.0f; // will be updated at runtime
return var;
}();
const VariableCharacteristics SupplyPhases = [] {
VariableCharacteristics var;
var.dataType = DataEnum::integer;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics ISO15118EvseId = [] {
VariableCharacteristics var;
var.dataType = DataEnum::string;
var.supportsMonitoring = false;
var.minLimit = 7.0f;
var.maxLimit = 37.0f;
return var;
}();
} // namespace Characteristics
} // namespace EvseDefinitions
namespace ConnectorDefinitions {
namespace Characteristics {
const VariableCharacteristics AvailabilityState = [] {
VariableCharacteristics var;
var.dataType = DataEnum::OptionList;
var.supportsMonitoring = false;
var.valuesList = CiString<1000>("Available,Occupied,Reserved,Unavailable,Faulted");
return var;
}();
const VariableCharacteristics Available = [] {
VariableCharacteristics var;
var.dataType = DataEnum::boolean;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics ConnectorType = [] {
VariableCharacteristics var;
var.dataType = DataEnum::string;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics SupplyPhases = [] {
VariableCharacteristics var;
var.dataType = DataEnum::integer;
var.supportsMonitoring = false;
return var;
}();
} // namespace Characteristics
} // namespace ConnectorDefinitions
namespace V2XDefinitions {
namespace Characteristics {
const VariableCharacteristics Available = [] {
VariableCharacteristics var;
var.dataType = DataEnum::boolean;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics Enabled = [] {
VariableCharacteristics var;
var.dataType = DataEnum::boolean;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics SupportedEnergyTransferModes = [] {
VariableCharacteristics var;
var.dataType = DataEnum::MemberList;
var.supportsMonitoring = false;
var.valuesList =
"AC_single_phase,AC_two_phase,AC_three_phase,DC,AC_BPT,AC_BPT_DER,AC_DER,DC_BPT,DC_ACDP,DC_ACDP_BPT,WPT";
return var;
}();
const VariableCharacteristics SupportedOperationModes = [] {
VariableCharacteristics var;
var.dataType = DataEnum::MemberList;
var.supportsMonitoring = false;
var.valuesList = "Idle,ChargingOnly,CentralSetpoint,ExternalSetpoint,ExternalLimits,CentralFrequency,"
"LocalFrequency,LocalLoadBalancing";
return var;
}();
} // namespace Characteristics
} // namespace V2XDefinitions
namespace ISO15118Definitions {
namespace Characteristics {
const VariableCharacteristics Enabled = [] {
VariableCharacteristics var;
var.dataType = DataEnum::boolean;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics ServiceRenegotiationSupport = [] {
VariableCharacteristics var;
var.dataType = DataEnum::boolean;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics ProtocolSupported = [] {
VariableCharacteristics var;
var.dataType = DataEnum::string;
var.supportsMonitoring = false;
return var;
}();
} // namespace Characteristics
} // namespace ISO15118Definitions
namespace ConnectedEVDefinitions {
namespace Characteristics {
const VariableCharacteristics Available = [] {
VariableCharacteristics var;
var.dataType = DataEnum::boolean;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics VehicleId = [] {
VariableCharacteristics var;
var.dataType = DataEnum::string;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics ProtocolAgreed = [] {
VariableCharacteristics var;
var.dataType = DataEnum::string;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics VehicleCertificateLeaf = [] {
VariableCharacteristics var;
var.dataType = DataEnum::string;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics VehicleCertificateSubCa1 = [] {
VariableCharacteristics var;
var.dataType = DataEnum::string;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics VehicleCertificateSubCa2 = [] {
VariableCharacteristics var;
var.dataType = DataEnum::string;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics VehicleCertificateRoot = [] {
VariableCharacteristics var;
var.dataType = DataEnum::string;
var.supportsMonitoring = false;
return var;
}();
const VariableCharacteristics ProtocolSupportedByEV = [] {
VariableCharacteristics var;
var.dataType = DataEnum::string;
var.supportsMonitoring = false;
return var;
}();
} // namespace Characteristics
} // namespace ConnectedEVDefinitions