From adbfd5f92f6b55fcb2af371c1172ffe39b9ab540 Mon Sep 17 00:00:00 2001 From: shiv3 Date: Tue, 20 Aug 2024 19:23:28 +0900 Subject: [PATCH] Fix to connect concurrency --- src/components/TopPage.tsx | 7 ++++--- src/cp/ChargePoint.ts | 15 ++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/components/TopPage.tsx b/src/components/TopPage.tsx index 81e29f9..db00513 100644 --- a/src/components/TopPage.tsx +++ b/src/components/TopPage.tsx @@ -62,9 +62,10 @@ interface transactionInfo { const ExperimentalView: React.FC = ({cps, tagIDs}) => { const handleAllConnect = () => { console.log("Connecting all charge points"); - cps.forEach((cp) => { - cp.connect(); - }); + const chunk = 100; + cps.flatMap((_, i, a) => i % chunk ? [] : [a.slice(i, i + chunk)]).forEach((cps) => { + Promise.all(cps.map((cp) => cp.connect())) + }) } const handleAllDisconnect = () => { diff --git a/src/cp/ChargePoint.ts b/src/cp/ChargePoint.ts index d48e707..824bb28 100644 --- a/src/cp/ChargePoint.ts +++ b/src/cp/ChargePoint.ts @@ -1,9 +1,9 @@ -import { Connector } from "./Connector"; -import { OCPPWebSocket } from "./OCPPWebSocket"; -import { OCPPMessageHandler } from "./OCPPMessageHandler"; -import { Logger } from "./Logger"; -import { OCPPStatus, OCPPAvailability } from "./OcppTypes"; -import { Transaction } from "./Transaction.ts"; +import {Connector} from "./Connector"; +import {OCPPWebSocket} from "./OCPPWebSocket"; +import {OCPPMessageHandler} from "./OCPPMessageHandler"; +import {Logger} from "./Logger"; +import {OCPPStatus, OCPPAvailability} from "./OcppTypes"; +import {Transaction} from "./Transaction.ts"; import * as ocpp from "./OcppTypes.ts"; export class ChargePoint { @@ -15,7 +15,8 @@ export class ChargePoint { public _status: OCPPStatus = OCPPStatus.Unavailable; private _error: string = ""; - public _errorCallback: (error: string) => void = () => {}; + public _errorCallback: (error: string) => void = () => { + }; private _heartbeat: number | null = null; private _statusChangeCallback: