Skip to content

Commit d68c4f1

Browse files
authored
Merge pull request #22 from juherr/feature/ocpp-configuration
Feature: implements missing action from Core profile
2 parents d7735e5 + acf1dba commit d68c4f1

File tree

7 files changed

+670
-54
lines changed

7 files changed

+670
-54
lines changed

src/components/Connector.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React, {useState, useEffect} from "react";
22
import {ChargePoint} from "../cp/ChargePoint.ts";
33
import * as ocpp from "../cp/OcppTypes";
4+
import { OCPPAvailability } from "../cp/OcppTypes";
45

56
interface ConnectorProps {
67
id: number;
@@ -13,8 +14,8 @@ const Connector: React.FC<ConnectorProps> = ({id: connector_id, cp,idTag}) => {
1314
const [connectorStatus, setConnectorStatus] = useState<ocpp.OCPPStatus>(
1415
ocpp.OCPPStatus.Unavailable
1516
);
16-
const [availability, setAvailability] = useState<string>(
17-
ocpp.OCPPAvailability.Operative
17+
const [availability, setAvailability] = useState<OCPPAvailability>(
18+
"Operative"
1819
);
1920
const [meterValue, setMeterValue] = useState<number>(0);
2021
const [tagId, setIdTag] = useState<string>(idTag);
@@ -223,12 +224,12 @@ const ConnectorStatus: React.FC<{ status: string }> = ({status}) => {
223224
return <span className={statusColor(status)}>{status}</span>;
224225
};
225226

226-
const ConnectorAvailability: React.FC<{ availability: string }> = ({availability,}) => {
227-
const availabilityColor = (a: string) => {
227+
const ConnectorAvailability: React.FC<{ availability: OCPPAvailability }> = ({availability,}) => {
228+
const availabilityColor = (a: OCPPAvailability) => {
228229
switch (a) {
229-
case ocpp.OCPPAvailability.Operative:
230+
case "Operative":
230231
return "text-green-500";
231-
case ocpp.OCPPAvailability.Inoperative:
232+
case "Inoperative":
232233
return "text-red-500";
233234
default:
234235
return "text-black";

src/cp/ChargePoint.ts

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export class ChargePoint {
2828
| null = null;
2929
private _availabilityChangeCallbacks: Map<
3030
number,
31-
(availability: string) => void
31+
(availability: OCPPAvailability) => void
3232
> = new Map();
3333

3434
constructor(id: string,
@@ -121,7 +121,7 @@ export class ChargePoint {
121121

122122
setAvailabilityChangeCallback(
123123
connectorId: number,
124-
callback: (availability: string) => void
124+
callback: (availability: OCPPAvailability) => void
125125
): void {
126126
this._availabilityChangeCallbacks.set(connectorId, callback);
127127
}
@@ -320,23 +320,24 @@ export class ChargePoint {
320320

321321
public updateConnectorAvailability(
322322
connectorId: number,
323-
newAvailability: string
324-
): void {
323+
newAvailability: OCPPAvailability
324+
): boolean {
325325
const connector = this.getConnector(connectorId);
326-
if (connector) {
327-
connector.availability! = newAvailability;
328-
if (newAvailability === OCPPAvailability.Inoperative) {
329-
this.updateConnectorStatus(connectorId, OCPPStatus.Unavailable);
330-
} else if (newAvailability === OCPPAvailability.Operative) {
331-
this.updateConnectorStatus(connectorId, OCPPStatus.Available);
332-
}
333-
const callback = this._availabilityChangeCallbacks.get(connectorId);
334-
if (callback) {
335-
callback(newAvailability);
336-
}
337-
} else {
326+
if (!connector) {
338327
this._logger.error(`Connector ${connectorId} not found`);
328+
return false;
329+
}
330+
connector.availability = newAvailability;
331+
if (newAvailability === "Inoperative") {
332+
this.updateConnectorStatus(connectorId, OCPPStatus.Unavailable);
333+
} else if (newAvailability === "Operative") {
334+
this.updateConnectorStatus(connectorId, OCPPStatus.Available);
335+
}
336+
const callback = this._availabilityChangeCallbacks.get(connectorId);
337+
if (callback) {
338+
callback(newAvailability);
339339
}
340+
return true;
340341
}
341342

342343
public setTransactionID(connectorId: number, transactionId: number): void {

0 commit comments

Comments
 (0)