Skip to content
This repository has been archived by the owner on Jun 12, 2024. It is now read-only.

Commit

Permalink
Convert sendAuthorize to OCPP message sending handler
Browse files Browse the repository at this point in the history
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
  • Loading branch information
Jérôme Benoit committed Mar 7, 2022
1 parent 93b4a42 commit 2e3d65a
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 36 deletions.
13 changes: 9 additions & 4 deletions src/charging-station/AutomaticTransactionGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {
import type ChargingStation from './ChargingStation';
import Constants from '../utils/Constants';
import PerformanceStatistics from '../performance/PerformanceStatistics';
import { RequestCommand } from '../types/ocpp/Requests';
import { Status } from '../types/AutomaticTransactionGenerator';
import Utils from '../utils/Utils';
import logger from '../utils/Logger';
Expand Down Expand Up @@ -269,11 +270,15 @@ export default class AutomaticTransactionGenerator {
if (this.chargingStation.hasAuthorizedTags()) {
const idTag = this.chargingStation.getRandomIdTag();
if (this.chargingStation.getAutomaticTransactionGeneratorRequireAuthorize()) {
this.chargingStation.getConnectorStatus(connectorId).authorizeIdTag = idTag;
// Authorize idTag
const authorizeResponse = await this.chargingStation.ocppRequestService.sendAuthorize(
connectorId,
idTag
);
const authorizeResponse: AuthorizeResponse =
(await this.chargingStation.ocppRequestService.sendMessageHandler(
RequestCommand.AUTHORIZE,
{
idTag,
}
)) as AuthorizeResponse;
this.connectorsStatus.get(connectorId).authorizeRequests++;
if (authorizeResponse?.idTagInfo?.status === AuthorizationStatus.ACCEPTED) {
this.connectorsStatus.get(connectorId).acceptedAuthorizeRequests++;
Expand Down
14 changes: 10 additions & 4 deletions src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import {
import { Client, FTPResponse } from 'basic-ftp';
import {
OCPP16AuthorizationStatus,
OCPP16AuthorizeResponse,
OCPP16StopTransactionReason,
} from '../../../types/ocpp/1.6/Transaction';

Expand Down Expand Up @@ -535,10 +536,15 @@ export default class OCPP16IncomingRequestService extends OCPPIncomingRequestSer
true;
authorized = true;
} else if (this.chargingStation.getMayAuthorizeAtRemoteStart()) {
const authorizeResponse = await this.chargingStation.ocppRequestService.sendAuthorize(
transactionConnectorId,
commandPayload.idTag
);
this.chargingStation.getConnectorStatus(transactionConnectorId).authorizeIdTag =
commandPayload.idTag;
const authorizeResponse: OCPP16AuthorizeResponse =
(await this.chargingStation.ocppRequestService.sendMessageHandler(
OCPP16RequestCommand.AUTHORIZE,
{
idTag: commandPayload.idTag,
}
)) as OCPP16AuthorizeResponse;
if (authorizeResponse?.idTagInfo?.status === OCPP16AuthorizationStatus.ACCEPTED) {
authorized = true;
}
Expand Down
18 changes: 0 additions & 18 deletions src/charging-station/ocpp/1.6/OCPP16RequestService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import {
AuthorizeRequest,
OCPP16AuthorizeResponse,
OCPP16StartTransactionResponse,
OCPP16StopTransactionReason,
OCPP16StopTransactionResponse,
Expand All @@ -23,8 +22,6 @@ import type ChargingStation from '../../ChargingStation';
import Constants from '../../../utils/Constants';
import { ErrorType } from '../../../types/ocpp/ErrorType';
import { JsonType } from '../../../types/JsonType';
import { OCPP16ChargePointErrorCode } from '../../../types/ocpp/1.6/ChargePointErrorCode';
import { OCPP16ChargePointStatus } from '../../../types/ocpp/1.6/ChargePointStatus';
import { OCPP16DiagnosticsStatus } from '../../../types/ocpp/1.6/DiagnosticsStatus';
import { OCPP16ServiceUtils } from './OCPP16ServiceUtils';
import OCPPError from '../../../exception/OCPPError';
Expand Down Expand Up @@ -63,21 +60,6 @@ export default class OCPP16RequestService extends OCPPRequestService {
);
}

public async sendAuthorize(
connectorId: number,
idTag?: string
): Promise<OCPP16AuthorizeResponse> {
const payload: AuthorizeRequest = {
...(!Utils.isUndefined(idTag) ? { idTag } : { idTag: Constants.DEFAULT_IDTAG }),
};
this.chargingStation.getConnectorStatus(connectorId).authorizeIdTag = idTag;
return (await this.sendMessage(
Utils.generateUUID(),
payload,
OCPP16RequestCommand.AUTHORIZE
)) as OCPP16AuthorizeResponse;
}

public async sendStartTransaction(
connectorId: number,
idTag?: string
Expand Down
15 changes: 5 additions & 10 deletions src/charging-station/ocpp/OCPPRequestService.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,16 @@
import {
AuthorizeResponse,
StartTransactionResponse,
StopTransactionReason,
StopTransactionResponse,
} from '../../types/ocpp/Transaction';
import {
DiagnosticsStatus,
IncomingRequestCommand,
RequestCommand,
ResponseType,
SendParams,
} from '../../types/ocpp/Requests';
import {
StartTransactionResponse,
StopTransactionReason,
StopTransactionResponse,
} from '../../types/ocpp/Transaction';

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';
Expand Down Expand Up @@ -333,7 +329,6 @@ export default abstract class OCPPRequestService {
params?: SendParams
): Promise<ResponseType>;

public abstract sendAuthorize(connectorId: number, idTag?: string): Promise<AuthorizeResponse>;
public abstract sendStartTransaction(
connectorId: number,
idTag?: string
Expand Down

0 comments on commit 2e3d65a

Please sign in to comment.