Documentation ¶
Overview ¶
Contains common and shared data types between OCPP 2.0 messages.
Index ¶
- Constants
- Variables
- func FormatTimestamp(t time.Time) string
- type AdditionalInfo
- type AuthorizationStatus
- type Certificate15118EVStatus
- type CertificateHashData
- type CertificateSigningUse
- type CertificateStatus
- type CertificateUse
- type ChargingLimitSourceType
- type ChargingProfile
- type ChargingProfileKindType
- type ChargingProfilePurposeType
- type ChargingRateUnitType
- type ChargingSchedule
- type ChargingSchedulePeriod
- type Component
- type ComponentVariable
- type DateTime
- type EVSE
- type GenericDeviceModelStatus
- type GenericStatus
- type GroupIdToken
- type HashAlgorithmType
- type IdToken
- type IdTokenInfo
- type IdTokenType
- type Location
- type Measurand
- type MessageContent
- type MessageFormatType
- type MeterValue
- type OCSPRequestDataType
- type Phase
- type PropertyViolation
- type ReadingContext
- type RecurrencyKindType
- type RemoteStartStopStatus
- type SampledValue
- type UnitOfMeasure
- type ValueFormat
- type Variable
Constants ¶
const ( ChargingProfilePurposeChargingStationExternalConstraints ChargingProfilePurposeType = "ChargingStationExternalConstraints" ChargingProfilePurposeChargingStationMaxProfile ChargingProfilePurposeType = "ChargingStationMaxProfile" ChargingProfilePurposeTxDefaultProfile ChargingProfilePurposeType = "TxDefaultProfile" ChargingProfilePurposeTxProfile ChargingProfilePurposeType = "TxProfile" ChargingProfileKindAbsolute ChargingProfileKindType = "Absolute" ChargingProfileKindRecurring ChargingProfileKindType = "Recurring" ChargingProfileKindRelative ChargingProfileKindType = "Relative" RecurrencyKindDaily RecurrencyKindType = "Daily" RecurrencyKindWeekly RecurrencyKindType = "Weekly" ChargingRateUnitWatts ChargingRateUnitType = "W" ChargingRateUnitAmperes ChargingRateUnitType = "A" ChargingLimitSourceEMS ChargingLimitSourceType = "EMS" ChargingLimitSourceOther ChargingLimitSourceType = "Other" ChargingLimitSourceSO ChargingLimitSourceType = "SO" ChargingLimitSourceCSO ChargingLimitSourceType = "CSO" )
const ( ReadingContextInterruptionBegin ReadingContext = "Interruption.Begin" ReadingContextInterruptionEnd ReadingContext = "Interruption.End" ReadingContextOther ReadingContext = "Other" ReadingContextSampleClock ReadingContext = "Sample.Clock" ReadingContextSamplePeriodic ReadingContext = "Sample.Periodic" ReadingContextTransactionBegin ReadingContext = "Transaction.Begin" ReadingContextTransactionEnd ReadingContext = "Transaction.End" ReadingContextTrigger ReadingContext = "Trigger" ValueFormatRaw ValueFormat = "Raw" ValueFormatSignedData ValueFormat = "SignedData" MeasurandCurrentExport Measurand = "Current.Export" MeasurandCurrentImport Measurand = "Current.Import" MeasurandCurrentOffered Measurand = "Current.Offered" MeasurandEnergyActiveExportRegister Measurand = "Energy.Active.Export.Register" MeasurandEnergyActiveImportRegister Measurand = "Energy.Active.Import.Register" MeasurandEnergyReactiveExportRegister Measurand = "Energy.Reactive.Export.Register" MeasurandEnergyReactiveImportRegister Measurand = "Energy.Reactive.Import.Register" MeasurandEnergyActiveExportInterval Measurand = "Energy.Active.Export.Interval" MeasurandEnergyActiveImportInterval Measurand = "Energy.Active.Import.Interval" MeasurandEnergyReactiveExportInterval Measurand = "Energy.Reactive.Export.Interval" MeasurandEnergyReactiveImportInterval Measurand = "Energy.Reactive.Import.Interval" MeasurandFrequency Measurand = "Frequency" MeasurandPowerActiveExport Measurand = "Power.Active.Export" MeasurandPowerActiveImport Measurand = "Power.Active.Import" MeasurandPowerFactor Measurand = "Power.Factor" MeasurandPowerOffered Measurand = "Power.Offered" MeasurandPowerReactiveExport Measurand = "Power.Reactive.Export" MeasurandPowerReactiveImport Measurand = "Power.Reactive.Import" MeasurandRPM Measurand = "RPM" MeasueandSoC Measurand = "SoC" MeasurandTemperature Measurand = "Temperature" MeasurandVoltage Measurand = "Voltage" PhaseL1 Phase = "L1" PhaseL2 Phase = "L2" PhaseL3 Phase = "L3" PhaseN Phase = "N" PhaseL1N Phase = "L1-N" PhaseL2N Phase = "L2-N" PhaseL3N Phase = "L3-N" PhaseL1L2 Phase = "L1-L2" PhaseL2L3 Phase = "L2-L3" PhaseL3L1 Phase = "L3-L1" LocationBody Location = "Body" LocationCable Location = "Cable" LocationEV Location = "EV" LocationInlet Location = "Inlet" LocationOutlet Location = "Outlet" UnitOfMeasureWh UnitOfMeasure = "Wh" UnitOfMeasureKWh UnitOfMeasure = "kWh" UnitOfMeasureVarh UnitOfMeasure = "varh" UnitOfMeasureKvarh UnitOfMeasure = "kvarh" UnitOfMeasureW UnitOfMeasure = "W" UnitOfMeasureKW UnitOfMeasure = "kW" UnitOfMeasureVA UnitOfMeasure = "VA" UnitOfMeasureKVA UnitOfMeasure = "kVA" UnitOfMeasureVar UnitOfMeasure = "var" UnitOfMeasureKvar UnitOfMeasure = "kvar" UnitOfMeasureA UnitOfMeasure = "A" UnitOfMeasureV UnitOfMeasure = "V" UnitOfMeasureCelsius UnitOfMeasure = "Celsius" UnitOfMeasureFahrenheit UnitOfMeasure = "Fahrenheit" UnitOfMeasureK UnitOfMeasure = "K" UnitOfMeasurePercent UnitOfMeasure = "Percent" )
const (
V2Subprotocol = "ocpp2.0"
)
Variables ¶
var DateTimeFormat = time.RFC3339
DateTimeFormat to be used for all OCPP messages.
The default dateTime format is RFC3339. Change this if another format is desired.
var Validate = ocppj.Validate
Validator used for validating all OCPP 2.0 messages. Any additional custom validations must be added to this object for automatic validation.
Functions ¶
func FormatTimestamp ¶
Types ¶
type AdditionalInfo ¶
type AuthorizationStatus ¶
type AuthorizationStatus string
const ( AuthorizationStatusAccepted AuthorizationStatus = "Accepted" AuthorizationStatusBlocked AuthorizationStatus = "Blocked" AuthorizationStatusExpired AuthorizationStatus = "Expired" AuthorizationStatusInvalid AuthorizationStatus = "Invalid" AuthorizationStatusConcurrentTx AuthorizationStatus = "ConcurrentTx" AuthorizationStatusNoCredit AuthorizationStatus = "NoCredit" AuthorizationStatusNotAllowedTypeEVSE AuthorizationStatus = "NotAllowedTypeEVS" AuthorizationStatusNotAtThisLocation AuthorizationStatus = "NotAtThisLocation" AuthorizationStatusNotAtThisTime AuthorizationStatus = "NotAtThisTime" AuthorizationStatusUnknown AuthorizationStatus = "Unknown" )
type Certificate15118EVStatus ¶
type Certificate15118EVStatus string
Certificate15118EVStatus
const ( Certificate15188EVStatusAccepted Certificate15118EVStatus = "Accepted" Certificate15118EVStatusFailed Certificate15118EVStatus = "Failed" )
type CertificateHashData ¶
type CertificateHashData struct { HashAlgorithm HashAlgorithmType `json:"hashAlgorithm" validate:"required,hashAlgorithm"` IssuerNameHash string `json:"issuerNameHash" validate:"required,max=128"` IssuerKeyHash string `json:"issuerKeyHash" validate:"required,max=128"` SerialNumber string `json:"serialNumber" validate:"required,max=20"` }
CertificateHashDataType
type CertificateSigningUse ¶
type CertificateSigningUse string
Indicates the type of the signed certificate that is returned. When omitted the certificate is used for both the 15118 connection (if implemented) and the Charging Station to CSMS connection. This field is required when a typeOfCertificate was included in the SignCertificateRequest that requested this certificate to be signed AND both the 15118 connection and the Charging Station connection are implemented.
const ( ChargingStationCert CertificateSigningUse = "ChargingStationCertificate" V2GCertificate CertificateSigningUse = "V2GCertificate" )
type CertificateStatus ¶
type CertificateStatus string
CertificateStatus
const ( CertificateStatusAccepted CertificateStatus = "Accepted" CertificateStatusSignatureError CertificateStatus = "SignatureError" CertificateStatusCertificateExpired CertificateStatus = "CertificateExpired" CertificateStatusCertificateRevoked CertificateStatus = "CertificateRevoked" CertificateStatusNoCertificateAvailable CertificateStatus = "NoCertificateAvailable" CertificateStatusCertChainError CertificateStatus = "CertChainError" CertificateStatusContractCancelled CertificateStatus = "ContractCancelled" )
type CertificateUse ¶
type CertificateUse string
Indicates the type of the requested certificate. It is used in GetInstalledCertificateIdsRequest and InstallCertificateRequest messages.
const ( V2GRootCertificate CertificateUse = "V2GRootCertificate" MORootCertificate CertificateUse = "MORootCertificate" CSOSubCA1 CertificateUse = "CSOSubCA1" CSOSubCA2 CertificateUse = "CSOSubCA2" CSMSRootCertificate CertificateUse = "CSMSRootCertificate" ManufacturerRootCertificate CertificateUse = "ManufacturerRootCertificate" )
type ChargingLimitSourceType ¶
type ChargingLimitSourceType string
type ChargingProfile ¶
type ChargingProfile struct { ChargingProfileId int `json:"chargingProfileId" validate:"gte=0"` TransactionId int `json:"transactionId,omitempty"` StackLevel int `json:"stackLevel" validate:"gt=0"` ChargingProfilePurpose ChargingProfilePurposeType `json:"chargingProfilePurpose" validate:"required,chargingProfilePurpose"` ChargingProfileKind ChargingProfileKindType `json:"chargingProfileKind" validate:"required,chargingProfileKind"` RecurrencyKind RecurrencyKindType `json:"recurrencyKind,omitempty" validate:"omitempty,recurrencyKind"` ValidFrom *DateTime `json:"validFrom,omitempty"` ValidTo *DateTime `json:"validTo,omitempty"` ChargingSchedule *ChargingSchedule `json:"chargingSchedule" validate:"required"` }
func NewChargingProfile ¶
func NewChargingProfile(chargingProfileId int, stackLevel int, chargingProfilePurpose ChargingProfilePurposeType, chargingProfileKind ChargingProfileKindType, schedule *ChargingSchedule) *ChargingProfile
type ChargingProfileKindType ¶
type ChargingProfileKindType string
type ChargingRateUnitType ¶
type ChargingRateUnitType string
type ChargingSchedule ¶
type ChargingSchedule struct { StartSchedule *DateTime `json:"startSchedule,omitempty" validate:"omitempty"` Duration *int `json:"duration,omitempty" validate:"omitempty,gte=0"` ChargingRateUnit ChargingRateUnitType `json:"chargingRateUnit" validate:"required,chargingRateUnit"` MinChargingRate *float64 `json:"minChargingRate,omitempty" validate:"omitempty,gte=0"` ChargingSchedulePeriod []ChargingSchedulePeriod `json:"chargingSchedulePeriod" validate:"required,min=1"` }
func NewChargingSchedule ¶
func NewChargingSchedule(chargingRateUnit ChargingRateUnitType, schedulePeriod ...ChargingSchedulePeriod) *ChargingSchedule
type ChargingSchedulePeriod ¶
type ChargingSchedulePeriod struct { StartPeriod int `json:"startPeriod" validate:"gte=0"` Limit float64 `json:"limit" validate:"gte=0"` NumberPhases *int `json:"numberPhases,omitempty" validate:"omitempty,gte=0"` }
func NewChargingSchedulePeriod ¶
func NewChargingSchedulePeriod(startPeriod int, limit float64) ChargingSchedulePeriod
type Component ¶
type Component struct { Name string `json:"name" validate:"required,max=50"` // Name of the component. Name should be taken from the list of standardized component names whenever possible. Case Insensitive. strongly advised to use Camel Case. Instance string `json:"instance,omitempty" validate:"omitempty,max=50"` // Name of instance in case the component exists as multiple instances. Case Insensitive. strongly advised to use Camel Case. EVSE *EVSE `json:"evse,omitempty" validate:"omitempty"` // Specifies the EVSE when component is located at EVSE level, also specifies the connector when component is located at Connector level. }
Component represents a physical or logical component.
type ComponentVariable ¶
type ComponentVariable struct { Component Component `json:"component" validate:"required"` // Component for which a report of Variable is requested. Variable Variable `json:"variable" validate:"required"` // Variable for which report is requested. }
ComponentVariable is used to report components, variables and variable attributes and characteristics.
type DateTime ¶
DateTime wraps a time.Time struct, allowing for improved dateTime JSON compatibility.
func NewDateTime ¶
Creates a new DateTime struct, embedding a time.Time struct.
func (*DateTime) FormatTimestamp ¶
Formats the UTC timestamp using the DateTimeFormat setting. This function is used during JSON marshaling as well.
func (*DateTime) MarshalJSON ¶
func (*DateTime) UnmarshalJSON ¶
type EVSE ¶
type EVSE struct { ID int `json:"id" validate:"gte=0"` // The EVSE Identifier. When 0, the ID references the Charging Station as a whole. ConnectorID *int `json:"connectorId,omitempty" validate:"omitempty,gte=0"` // An id to designate a specific connector (on an EVSE) by connector index number. }
EVSE represents the Electric Vehicle Supply Equipment, formerly referred to as connector(s).
type GenericDeviceModelStatus ¶
type GenericDeviceModelStatus string
Generic Device Model Status
const ( GenericDeviceModelStatusAccepted GenericDeviceModelStatus = "Accepted" GenericDeviceModelStatusRejected GenericDeviceModelStatus = "Rejected" GenericDeviceModelStatusNotSupported GenericDeviceModelStatus = "NotSupported" )
type GenericStatus ¶
type GenericStatus string
Generic Status
const ( GenericStatusAccepted GenericStatus = "Accepted" GenericStatusRejected GenericStatus = "Rejected" )
type GroupIdToken ¶
type GroupIdToken struct { IdToken string `json:"idToken" validate:"required,max=36"` Type IdTokenType `json:"type" validate:"required,idTokenType"` }
type HashAlgorithmType ¶
type HashAlgorithmType string
Hash Algorithms
const ( SHA256 HashAlgorithmType = "SHA256" SHA384 HashAlgorithmType = "SHA384" SHA512 HashAlgorithmType = "SHA512" )
type IdToken ¶
type IdToken struct { IdToken string `json:"idToken" validate:"required,max=36"` Type IdTokenType `json:"type" validate:"required,idTokenType"` AdditionalInfo []AdditionalInfo `json:"additionalInfo,omitempty" validate:"omitempty,dive"` }
type IdTokenInfo ¶
type IdTokenInfo struct { Status AuthorizationStatus `json:"status" validate:"required,authorizationStatus"` CacheExpiryDateTime *DateTime `json:"cacheExpiryDateTime,omitempty" validate:"omitempty"` ChargingPriority int `json:"chargingPriority,omitempty" validate:"min=-9,max=9"` Language1 string `json:"language1,omitempty" validate:"max=8"` Language2 string `json:"language2,omitempty" validate:"max=8"` GroupIdToken *GroupIdToken `json:"groupIdToken,omitempty"` PersonalMessage *MessageContent `json:"personalMessage,omitempty"` }
func NewIdTokenInfo ¶
func NewIdTokenInfo(status AuthorizationStatus) *IdTokenInfo
NewIdTokenInfo creates an IdTokenInfo. Optional parameters may be set afterwards on the initialized struct.
type IdTokenType ¶
type IdTokenType string
ID Token
const ( IdTokenTypeCentral IdTokenType = "Central" IdTokenTypeEMAID IdTokenType = "eMAID" IdTokenTypeISO14443 IdTokenType = "ISO14443" IdTokenTypeKeyCode IdTokenType = "KeyCode" IdTokenTypeLocal IdTokenType = "Local" IdTokenTypeNoAuthorization IdTokenType = "NoAuthorization" IdTokenTypeISO15693 IdTokenType = "ISO15693" )
type MessageContent ¶
type MessageContent struct { Format MessageFormatType `json:"format" validate:"required,messageFormat"` Language string `json:"language,omitempty" validate:"max=8"` Content string `json:"content" validate:"required,max=512"` }
type MessageFormatType ¶
type MessageFormatType string
ID Token Info
const ( MessageFormatASCII MessageFormatType = "ASCII" MessageFormatHTML MessageFormatType = "HTML" MessageFormatURI MessageFormatType = "URI" MessageFormatUTF8 MessageFormatType = "UTF8" )
type MeterValue ¶
type MeterValue struct { Timestamp *DateTime `json:"timestamp" validate:"required"` SampledValue []SampledValue `json:"sampledValue" validate:"required,min=1,dive"` }
type OCSPRequestDataType ¶
type OCSPRequestDataType struct { HashAlgorithm HashAlgorithmType `json:"hashAlgorithm" validate:"required,hashAlgorithm"` IssuerNameHash string `json:"issuerNameHash" validate:"required,max=128"` IssuerKeyHash string `json:"issuerKeyHash" validate:"required,max=128"` SerialNumber string `json:"serialNumber" validate:"required,max=20"` ResponderURL string `json:"responderURL,omitempty" validate:"max=512"` }
OCSPRequestDataType
type PropertyViolation ¶
type PropertyViolation struct { Property string // contains filtered or unexported fields }
func (*PropertyViolation) Error ¶
func (e *PropertyViolation) Error() string
type RecurrencyKindType ¶
type RecurrencyKindType string
type RemoteStartStopStatus ¶
type RemoteStartStopStatus string
Remote Start/Stop
const ( RemoteStartStopStatusAccepted RemoteStartStopStatus = "Accepted" RemoteStartStopStatusRejected RemoteStartStopStatus = "Rejected" )
type SampledValue ¶
type SampledValue struct { Value string `json:"value" validate:"required"` Context ReadingContext `json:"context,omitempty" validate:"omitempty,readingContext"` Format ValueFormat `json:"format,omitempty" validate:"omitempty,valueFormat"` Measurand Measurand `json:"measurand,omitempty" validate:"omitempty,measurand"` Phase Phase `json:"phase,omitempty" validate:"omitempty,phase"` Location Location `json:"location,omitempty" validate:"omitempty,location"` Unit UnitOfMeasure `json:"unit,omitempty" validate:"omitempty,unitOfMeasure"` }
type UnitOfMeasure ¶
type UnitOfMeasure string
type ValueFormat ¶
type ValueFormat string
type Variable ¶
type Variable struct { Name string `json:"name" validate:"required,max=50"` // Name of the variable. Name should be taken from the list of standardized variable names whenever possible. Case Insensitive. strongly advised to use Camel Case. Instance string `json:"instance,omitempty" validate:"omitempty,max=50"` // Name of instance in case the variable exists as multiple instances. Case Insensitive. strongly advised to use Camel Case. }
Variable is a reference key to a component-variable.