import CommandStatistics, { CommandStatisticsData, PerfEntry } from '../types/CommandStatistics';
+import { IncomingRequestCommand, RequestCommand } from '../types/ocpp/1.6/Requests';
import CircularArray from './CircularArray';
import Configuration from './Configuration';
-import Constants from './Constants';
+import { MessageType } from '../types/ocpp/MessageType';
import { PerformanceEntry } from 'perf_hooks';
import Utils from './Utils';
import logger from './Logger';
return Statistics.instance;
}
- addMessage(command: string, messageType: number): void {
+ addMessage(command: RequestCommand | IncomingRequestCommand, messageType: MessageType): void {
switch (messageType) {
- case Constants.OCPP_JSON_CALL_MESSAGE:
+ case MessageType.CALL_MESSAGE:
if (this._commandsStatistics[command] && this._commandsStatistics[command].countRequest) {
this._commandsStatistics[command].countRequest++;
} else {
this._commandsStatistics[command].countRequest = 1;
}
break;
- case Constants.OCPP_JSON_CALL_RESULT_MESSAGE:
+ case MessageType.CALL_RESULT_MESSAGE:
if (this._commandsStatistics[command]) {
if (this._commandsStatistics[command].countResponse) {
this._commandsStatistics[command].countResponse++;
this._commandsStatistics[command].countResponse = 1;
}
break;
- case Constants.OCPP_JSON_CALL_ERROR_MESSAGE:
+ case MessageType.CALL_ERROR_MESSAGE:
if (this._commandsStatistics[command]) {
if (this._commandsStatistics[command].countError) {
this._commandsStatistics[command].countError++;
}
logPerformance(entry: PerformanceEntry, className: string): void {
- this.addPerformanceTimer(entry.name, entry.duration);
+ this.addPerformanceTimer(entry.name as RequestCommand | IncomingRequestCommand, entry.duration);
const perfEntry: PerfEntry = {} as PerfEntry;
perfEntry.name = entry.name;
perfEntry.entryType = entry.entryType;
perfEntry.startTime = entry.startTime;
perfEntry.duration = entry.duration;
- logger.info(`${this._logPrefix()} object ${className} method performance entry: %j`, perfEntry);
+ logger.info(`${this._logPrefix()} object ${className} method(s) performance entry: %j`, perfEntry);
}
- _display(): void {
+ start(): void {
+ this._displayInterval();
+ }
+
+ private _display(): void {
logger.info(this._logPrefix() + ' %j', this._commandsStatistics);
}
- _displayInterval(): void {
+ private _displayInterval(): void {
if (Configuration.getStatisticsDisplayInterval() > 0) {
setInterval(() => {
this._display();
}
}
- start(): void {
- this._displayInterval();
- }
-
private median(dataSet: number[]): number {
if (Array.isArray(dataSet) && dataSet.length === 1) {
return dataSet[0];
return (sortedDataSet[(middleIndex - 1)] + sortedDataSet[middleIndex]) / 2;
}
- private addPerformanceTimer(command: string, duration: number): void {
+ private addPerformanceTimer(command: RequestCommand | IncomingRequestCommand, duration: number): void {
// Map to proper command name
const MAPCOMMAND = {
sendMeterValues: 'MeterValues',
stopTransaction: 'StopTransaction',
};
if (MAPCOMMAND[command]) {
- command = MAPCOMMAND[command] as string;
+ command = MAPCOMMAND[command] as RequestCommand | IncomingRequestCommand;
}
// Initialize command statistics
if (!this._commandsStatistics[command]) {