X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcharging-station%2Focpp%2FOCPPRequestService.ts;h=af23a1f4fcbdd55ac4c357dfc67c12e3c35d7e8e;hb=794aea9d3e6b713d55bf5adb06faa211206cfa77;hp=04cd508aa8903d805d6bda28d882d12d0db62e8a;hpb=e7aeea18e189dd087c8f951cf77a253e2818ae90;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/OCPPRequestService.ts b/src/charging-station/ocpp/OCPPRequestService.ts index 04cd508a..af23a1f4 100644 --- a/src/charging-station/ocpp/OCPPRequestService.ts +++ b/src/charging-station/ocpp/OCPPRequestService.ts @@ -1,20 +1,10 @@ import { - AuthorizeResponse, - StartTransactionResponse, - StopTransactionReason, - StopTransactionResponse, -} from '../../types/ocpp/Transaction'; -import { - DiagnosticsStatus, IncomingRequestCommand, RequestCommand, ResponseType, SendParams, } from '../../types/ocpp/Requests'; -import { BootNotificationResponse } from '../../types/ocpp/Responses'; -import { ChargePointErrorCode } from '../../types/ocpp/ChargePointErrorCode'; -import { ChargePointStatus } from '../../types/ocpp/ChargePointStatus'; import type ChargingStation from '../ChargingStation'; import Constants from '../../utils/Constants'; import { EmptyObject } from '../../types/EmptyObject'; @@ -22,11 +12,11 @@ import { ErrorType } from '../../types/ocpp/ErrorType'; import { HandleErrorParams } from '../../types/Error'; import { JsonType } from '../../types/JsonType'; import { MessageType } from '../../types/ocpp/MessageType'; -import { MeterValue } from '../../types/ocpp/MeterValues'; import OCPPError from '../../exception/OCPPError'; import type OCPPResponseService from './OCPPResponseService'; import PerformanceStatistics from '../../performance/PerformanceStatistics'; import Utils from '../../utils/Utils'; +import chalk from 'chalk'; import logger from '../../utils/Logger'; export default abstract class OCPPRequestService { @@ -34,6 +24,7 @@ export default abstract class OCPPRequestService { string, OCPPRequestService >(); + protected readonly chargingStation: ChargingStation; private readonly ocppResponseService: OCPPResponseService; @@ -43,6 +34,9 @@ export default abstract class OCPPRequestService { ) { this.chargingStation = chargingStation; this.ocppResponseService = ocppResponseService; + this.sendMessageHandler.bind(this); + this.sendResult.bind(this); + this.sendError.bind(this); } public static getInstance( @@ -50,13 +44,13 @@ export default abstract class OCPPRequestService { chargingStation: ChargingStation, ocppResponseService: OCPPResponseService ): T { - if (!OCPPRequestService.instances.has(chargingStation.id)) { + if (!OCPPRequestService.instances.has(chargingStation.hashId)) { OCPPRequestService.instances.set( - chargingStation.id, + chargingStation.hashId, new this(chargingStation, ocppResponseService) ); } - return OCPPRequestService.instances.get(chargingStation.id) as T; + return OCPPRequestService.instances.get(chargingStation.hashId) as T; } public async sendResult( @@ -158,6 +152,7 @@ export default abstract class OCPPRequestService { if (this.chargingStation.isWebSocketConnectionOpened()) { // Yes: Send Message const beginId = PerformanceStatistics.beginMeasure(commandName); + console.log(chalk`{blue >> Sending message = ${messageToSend}}`); // FIXME: Handle sending error this.chargingStation.wsConnection.send(messageToSend); PerformanceStatistics.endMeasure(commandName, beginId); @@ -219,7 +214,6 @@ export default abstract class OCPPRequestService { resolve(payload); } catch (error) { reject(error); - throw error; } finally { self.chargingStation.requests.delete(messageId); } @@ -325,51 +319,10 @@ export default abstract class OCPPRequestService { } } - public abstract sendHeartbeat(params?: SendParams): Promise; - public abstract sendBootNotification( - chargePointModel: string, - chargePointVendor: string, - chargeBoxSerialNumber?: string, - firmwareVersion?: string, - chargePointSerialNumber?: string, - iccid?: string, - imsi?: string, - meterSerialNumber?: string, - meterType?: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + public abstract sendMessageHandler( + commandName: RequestCommand, + commandParams?: JsonType, params?: SendParams - ): Promise; - public abstract sendStatusNotification( - connectorId: number, - status: ChargePointStatus, - errorCode?: ChargePointErrorCode - ): Promise; - public abstract sendAuthorize(connectorId: number, idTag?: string): Promise; - public abstract sendStartTransaction( - connectorId: number, - idTag?: string - ): Promise; - public abstract sendStopTransaction( - transactionId: number, - meterStop: number, - idTag?: string, - reason?: StopTransactionReason - ): Promise; - public abstract sendMeterValues( - connectorId: number, - transactionId: number, - interval: number - ): Promise; - public abstract sendTransactionBeginMeterValues( - connectorId: number, - transactionId: number, - beginMeterValue: MeterValue - ): Promise; - public abstract sendTransactionEndMeterValues( - connectorId: number, - transactionId: number, - endMeterValue: MeterValue - ): Promise; - public abstract sendDiagnosticsStatusNotification( - diagnosticsStatus: DiagnosticsStatus - ): Promise; + ): Promise; }