Last unprefixed OCPP 2.0 type participating in a common union.
OperationalStatusEnumType → OCPP20OperationalStatusEnumType
matching the OCPP16AvailabilityType counterpart in the
AvailabilityType union.
type OCPP20NotifyCustomerInformationResponse,
type OCPP20NotifyReportRequest,
type OCPP20NotifyReportResponse,
+ OCPP20OperationalStatusEnumType,
OCPP20ReadingContextEnumType,
OCPP20RequestCommand,
type OCPP20RequestStartTransactionRequest,
type OCPP20UpdateFirmwareRequest,
type OCPP20UpdateFirmwareResponse,
OCPPVersion,
- OperationalStatusEnumType,
ReasonCodeEnumType,
RegistrationStatusEnumType,
ReportBaseEnumType,
chargingStation: ChargingStation,
evseId: number,
connectorId: number,
- operationalStatus: OperationalStatusEnumType,
+ operationalStatus: OCPP20OperationalStatusEnumType,
newConnectorStatus: OCPP20ConnectorStatusEnumType
): OCPP20ChangeAvailabilityResponse {
if (!chargingStation.evses.has(evseId)) {
}
const resolvedStatus =
- operationalStatus === OperationalStatusEnumType.Operative
+ operationalStatus === OCPP20OperationalStatusEnumType.Operative
? this.getRestoredConnectorStatus(chargingStation, connectorId)
: newConnectorStatus
private handleCsLevelInoperative (
chargingStation: ChargingStation,
- operationalStatus: OperationalStatusEnumType,
+ operationalStatus: OCPP20OperationalStatusEnumType,
newConnectorStatus: OCPP20ConnectorStatusEnumType
): OCPP20ChangeAvailabilityResponse | undefined {
let hasActiveTransactions = false
private handleEvseChangeAvailability (
chargingStation: ChargingStation,
evseId: number,
- operationalStatus: OperationalStatusEnumType,
+ operationalStatus: OCPP20OperationalStatusEnumType,
newConnectorStatus: OCPP20ConnectorStatusEnumType
): OCPP20ChangeAvailabilityResponse {
if (!chargingStation.evses.has(evseId)) {
const evseStatus = chargingStation.getEvseStatus(evseId)
if (
evseStatus != null &&
- operationalStatus === OperationalStatusEnumType.Inoperative &&
+ operationalStatus === OCPP20OperationalStatusEnumType.Inoperative &&
this.hasEvseActiveTransactions(evseStatus)
) {
logger.info(
if (evseStatus != null) {
evseStatus.availability = operationalStatus
}
- if (operationalStatus === OperationalStatusEnumType.Operative) {
+ if (operationalStatus === OCPP20OperationalStatusEnumType.Operative) {
this.sendRestoredEvseStatusNotifications(chargingStation, evseId)
} else {
this.sendEvseStatusNotifications(chargingStation, evseId, newConnectorStatus)
`${chargingStation.logPrefix()} ${moduleName}.handleRequestChangeAvailability: Received ChangeAvailability request with operationalStatus=${operationalStatus}${evseIdLabel}`
)
- if (operationalStatus === OperationalStatusEnumType.Inoperative) {
+ if (operationalStatus === OCPP20OperationalStatusEnumType.Inoperative) {
// G03.FR.07: Save current connector statuses before setting Inoperative
this.savePreInoperativeStatuses(chargingStation, evse?.id)
}
const newConnectorStatus =
- operationalStatus === OperationalStatusEnumType.Inoperative
+ operationalStatus === OCPP20OperationalStatusEnumType.Inoperative
? OCPP20ConnectorStatusEnumType.Unavailable
: OCPP20ConnectorStatusEnumType.Available
}
// CS-level change (no evse or evse.id === 0)
- if (operationalStatus === OperationalStatusEnumType.Inoperative) {
+ if (operationalStatus === OCPP20OperationalStatusEnumType.Inoperative) {
const result = this.handleCsLevelInoperative(
chargingStation,
operationalStatus,
evseStatus.availability = operationalStatus
}
}
- if (operationalStatus === OperationalStatusEnumType.Operative) {
+ if (operationalStatus === OCPP20OperationalStatusEnumType.Operative) {
this.sendRestoredAllConnectorsStatusNotifications(chargingStation)
} else {
this.sendAllConnectorsStatusNotifications(chargingStation, newConnectorStatus)
continue
}
if (
- evseStatus.availability !== OperationalStatusEnumType.Inoperative &&
+ evseStatus.availability !== OCPP20OperationalStatusEnumType.Inoperative &&
!this.hasEvseActiveTransactions(evseStatus)
) {
return evseId
type NetworkConnectionProfileType,
OCPP20ComponentName,
OCPP20FirmwareStatusEnumType,
+ OCPP20OperationalStatusEnumType,
OCPP20UnitEnumType,
type OCSPRequestDataType,
- OperationalStatusEnumType,
ReasonCodeEnumType,
ReportBaseEnumType,
ResetEnumType,
SignatureVerified = 'SignatureVerified',
}
+export enum OCPP20OperationalStatusEnumType {
+ Inoperative = 'Inoperative',
+ Operative = 'Operative',
+}
+
export enum OCPP20UnitEnumType {
AMP = 'A',
ARBITRARY_STRENGTH_UNIT = 'ASU',
OCPP20 = 'OCPP20',
}
-export enum OperationalStatusEnumType {
- Inoperative = 'Inoperative',
- Operative = 'Operative',
-}
-
export enum ReasonCodeEnumType {
CSNotAccepted = 'CSNotAccepted',
DuplicateProfile = 'DuplicateProfile',
MessageTriggerEnumType,
NetworkConnectionProfileType,
OCPP20FirmwareStatusEnumType,
+ OCPP20OperationalStatusEnumType,
OCSPRequestDataType,
- OperationalStatusEnumType,
ReportBaseEnumType,
ResetEnumType,
UploadLogStatusEnumType,
export interface OCPP20ChangeAvailabilityRequest extends JsonObject {
customData?: CustomDataType
evse?: OCPP20EVSEType
- operationalStatus: OperationalStatusEnumType
+ operationalStatus: OCPP20OperationalStatusEnumType
}
export type OCPP20ClearCacheRequest = EmptyObject
type OCPP16ReserveNowRequest,
type OCPP16StatusNotificationRequest,
} from './1.6/Requests.js'
-import { OCPP20FirmwareStatusEnumType, OperationalStatusEnumType } from './2.0/Common.js'
+import { OCPP20FirmwareStatusEnumType, OCPP20OperationalStatusEnumType } from './2.0/Common.js'
import {
type OCPP20BootNotificationRequest,
type OCPP20FirmwareStatusNotificationRequest,
export const AvailabilityType = {
...OCPP16AvailabilityType,
- ...OperationalStatusEnumType,
+ ...OCPP20OperationalStatusEnumType,
} as const
// eslint-disable-next-line @typescript-eslint/no-redeclare
-export type AvailabilityType = OCPP16AvailabilityType | OperationalStatusEnumType
+export type AvailabilityType = OCPP16AvailabilityType | OCPP20OperationalStatusEnumType
export type CancelReservationRequest = OCPP16CancelReservationRequest
import { OCPP20IncomingRequestService } from '../../../../src/charging-station/ocpp/2.0/OCPP20IncomingRequestService.js'
import {
ChangeAvailabilityStatusEnumType,
+ OCPP20OperationalStatusEnumType,
OCPPVersion,
- OperationalStatusEnumType,
} from '../../../../src/types/index.js'
import { Constants } from '../../../../src/utils/index.js'
import {
await it('should accept EVSE-level Inoperative when no ongoing transaction', () => {
const response = testableService.handleRequestChangeAvailability(station, {
evse: { id: 1 },
- operationalStatus: OperationalStatusEnumType.Inoperative,
+ operationalStatus: OCPP20OperationalStatusEnumType.Inoperative,
})
assert.strictEqual(response.status, ChangeAvailabilityStatusEnumType.Accepted)
const evseStatus = station.getEvseStatus(1)
- assert.strictEqual(evseStatus?.availability, OperationalStatusEnumType.Inoperative)
+ assert.strictEqual(evseStatus?.availability, OCPP20OperationalStatusEnumType.Inoperative)
})
// FR: G03.FR.02
await it('should accept CS-level Inoperative when no ongoing transaction', () => {
const response = testableService.handleRequestChangeAvailability(station, {
- operationalStatus: OperationalStatusEnumType.Inoperative,
+ operationalStatus: OCPP20OperationalStatusEnumType.Inoperative,
})
assert.strictEqual(response.status, ChangeAvailabilityStatusEnumType.Accepted)
if (evseId > 0) {
assert.strictEqual(
evseStatus.availability,
- OperationalStatusEnumType.Inoperative,
+ OCPP20OperationalStatusEnumType.Inoperative,
`EVSE ${String(evseId)} should be Inoperative`
)
}
const response = testableService.handleRequestChangeAvailability(station, {
evse: { id: 1 },
- operationalStatus: OperationalStatusEnumType.Inoperative,
+ operationalStatus: OCPP20OperationalStatusEnumType.Inoperative,
})
assert.strictEqual(response.status, ChangeAvailabilityStatusEnumType.Scheduled)
})
const response = testableService.handleRequestChangeAvailability(station, {
- operationalStatus: OperationalStatusEnumType.Inoperative,
+ operationalStatus: OCPP20OperationalStatusEnumType.Inoperative,
})
assert.strictEqual(response.status, ChangeAvailabilityStatusEnumType.Scheduled)
await it('should reject when EVSE does not exist', () => {
const response = testableService.handleRequestChangeAvailability(station, {
evse: { id: 999 },
- operationalStatus: OperationalStatusEnumType.Inoperative,
+ operationalStatus: OCPP20OperationalStatusEnumType.Inoperative,
})
assert.strictEqual(response.status, ChangeAvailabilityStatusEnumType.Rejected)
await it('should accept when already in requested state (idempotent)', () => {
const evseStatus = station.getEvseStatus(1)
if (evseStatus != null) {
- evseStatus.availability = OperationalStatusEnumType.Operative
+ evseStatus.availability = OCPP20OperationalStatusEnumType.Operative
}
const response = testableService.handleRequestChangeAvailability(station, {
evse: { id: 1 },
- operationalStatus: OperationalStatusEnumType.Operative,
+ operationalStatus: OCPP20OperationalStatusEnumType.Operative,
})
assert.strictEqual(response.status, ChangeAvailabilityStatusEnumType.Accepted)
- assert.strictEqual(evseStatus?.availability, OperationalStatusEnumType.Operative)
+ assert.strictEqual(evseStatus?.availability, OCPP20OperationalStatusEnumType.Operative)
})
await it('should set Operative after Inoperative, connectors return to Available', () => {
const evseStatus = station.getEvseStatus(1)
if (evseStatus != null) {
- evseStatus.availability = OperationalStatusEnumType.Inoperative
+ evseStatus.availability = OCPP20OperationalStatusEnumType.Inoperative
}
const response = testableService.handleRequestChangeAvailability(station, {
evse: { id: 1 },
- operationalStatus: OperationalStatusEnumType.Operative,
+ operationalStatus: OCPP20OperationalStatusEnumType.Operative,
})
assert.strictEqual(response.status, ChangeAvailabilityStatusEnumType.Accepted)
- assert.strictEqual(evseStatus?.availability, OperationalStatusEnumType.Operative)
+ assert.strictEqual(evseStatus?.availability, OCPP20OperationalStatusEnumType.Operative)
})
await it('should accept CS-level change with evse.id === 0', () => {
const response = testableService.handleRequestChangeAvailability(station, {
evse: { id: 0 },
- operationalStatus: OperationalStatusEnumType.Inoperative,
+ operationalStatus: OCPP20OperationalStatusEnumType.Inoperative,
})
assert.strictEqual(response.status, ChangeAvailabilityStatusEnumType.Accepted)
for (const [evseId, evseStatus] of station.evses) {
if (evseId > 0) {
- assert.strictEqual(evseStatus.availability, OperationalStatusEnumType.Inoperative)
+ assert.strictEqual(evseStatus.availability, OCPP20OperationalStatusEnumType.Inoperative)
}
}
})
type OCPP20RequestStartTransactionRequest,
RequestStartStopStatusEnumType,
} from '../../../../src/types/index.js'
-import { OperationalStatusEnumType } from '../../../../src/types/ocpp/2.0/Common.js'
+import { OCPP20OperationalStatusEnumType } from '../../../../src/types/ocpp/2.0/Common.js'
import {
OCPP20ChargingProfileKindEnumType,
OCPP20ChargingProfilePurposeEnumType,
],
]),
getConnectorStatus: (_connectorId: number): ConnectorStatus => ({
- availability: OperationalStatusEnumType.Operative,
+ availability: OCPP20OperationalStatusEnumType.Operative,
MeterValues: [],
status: ConnectorStatusEnum.Available,
transactionId: undefined,
assert(mockStation != null)
// Given: Connector with active transaction
mockStation.getConnectorStatus = (): ConnectorStatus => ({
- availability: OperationalStatusEnumType.Operative,
+ availability: OCPP20OperationalStatusEnumType.Operative,
MeterValues: [],
status: ConnectorStatusEnum.Occupied,
transactionId: 'existing-tx-123',
const existingTransactionId = 'existing-tx-456'
const existingTokenTag = 'EXISTING_TOKEN_002'
mockStation.getConnectorStatus = (): ConnectorStatus => ({
- availability: OperationalStatusEnumType.Operative,
+ availability: OCPP20OperationalStatusEnumType.Operative,
MeterValues: [],
status: ConnectorStatusEnum.Occupied,
transactionId: existingTransactionId,