isEmptyString,
isNotEmptyArray,
isNotEmptyString,
- isNullOrUndefined,
isUndefined,
isValidTime,
logger,
Constants.DEFAULT_ATG_CONFIGURATION
)
}
- if (isNullOrUndefined(stationTemplate.idTagsFile) || isEmptyString(stationTemplate.idTagsFile)) {
+ if (stationTemplate.idTagsFile == null || isEmptyString(stationTemplate.idTagsFile)) {
logger.warn(
`${logPrefix} Missing id tags file in template file ${templateFile}. That can lead to issues with the Automatic Transaction Generator`
)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
connectors.get(connectorId)!.chargingProfiles = []
}
- } else if (
- connectorId > 0 &&
- isNullOrUndefined(connectors.get(connectorId)?.transactionStarted)
- ) {
+ } else if (connectorId > 0 && connectors.get(connectorId)?.transactionStarted == null) {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
initializeConnectorStatus(connectors.get(connectorId)!)
}
chargingProfiles,
chargingStation.logPrefix()
)
- if (!isNullOrUndefined(result)) {
+ if (result != null) {
limit = result?.limit
chargingProfile = result?.chargingProfile
switch (chargingStation.stationInfo?.currentOutType) {
chargingStation.getNumberOfPhases(),
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
chargingStation.stationInfo.voltageOut!,
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- limit!
+ limit
)
break
case CurrentType.DC:
chargingProfile?.chargingSchedule?.chargingRateUnit === ChargingRateUnitType.WATT
? limit
: // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- DCElectricUtils.power(chargingStation.stationInfo.voltageOut!, limit!)
+ DCElectricUtils.power(chargingStation.stationInfo.voltageOut!, limit)
}
const connectorMaximumPower =
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
chargingStation.stationInfo.maximumPower! / chargingStation.powerDivider
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- if (limit! > connectorMaximumPower) {
+ if (limit > connectorMaximumPower) {
logger.error(
`${chargingStation.logPrefix()} ${moduleName}.getChargingStationConnectorChargingProfilesPowerLimit: Charging profile id ${chargingProfile?.chargingProfileId} limit ${limit} is greater than connector id ${connectorId} maximum ${connectorMaximumPower}: %j`,
result
const connectorStatus = chargingStation.getConnectorStatus(connectorId)!
for (const chargingProfile of chargingProfiles) {
const chargingSchedule = chargingProfile.chargingSchedule
- if (
- isNullOrUndefined(chargingSchedule?.startSchedule) &&
- connectorStatus?.transactionStarted === true
- ) {
+ if (chargingSchedule?.startSchedule == null && connectorStatus?.transactionStarted === true) {
logger.debug(
`${logPrefix} ${moduleName}.getLimitFromChargingProfiles: Charging profile id ${chargingProfile.chargingProfileId} has no startSchedule defined. Trying to set it to the connector current transaction start date`
)
// OCPP specifies that if startSchedule is not defined, it should be relative to start of the connector transaction
chargingSchedule.startSchedule = connectorStatus?.transactionStart
}
- if (
- !isNullOrUndefined(chargingSchedule?.startSchedule) &&
- !isDate(chargingSchedule?.startSchedule)
- ) {
+ if (chargingSchedule?.startSchedule != null && !isDate(chargingSchedule?.startSchedule)) {
logger.warn(
`${logPrefix} ${moduleName}.getLimitFromChargingProfiles: Charging profile id ${chargingProfile.chargingProfileId} startSchedule property is not a Date instance. Trying to convert it to a Date instance`
)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
chargingSchedule.startSchedule = convertToDate(chargingSchedule?.startSchedule)!
}
- if (
- !isNullOrUndefined(chargingSchedule?.startSchedule) &&
- isNullOrUndefined(chargingSchedule?.duration)
- ) {
+ if (chargingSchedule?.startSchedule != null && chargingSchedule?.duration == null) {
logger.debug(
`${logPrefix} ${moduleName}.getLimitFromChargingProfiles: Charging profile id ${chargingProfile.chargingProfileId} has no duration defined and will be set to the maximum time allowed`
)
// OCPP specifies that if duration is not defined, it should be infinite
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- chargingSchedule.duration = differenceInSeconds(maxTime, chargingSchedule.startSchedule!)
+ chargingSchedule.duration = differenceInSeconds(maxTime, chargingSchedule.startSchedule)
}
if (!prepareChargingProfileKind(connectorStatus, chargingProfile, currentDate, logPrefix)) {
continue
prepareRecurringChargingProfile(chargingProfile, currentDate, logPrefix)
break
case ChargingProfileKindType.RELATIVE:
- if (!isNullOrUndefined(chargingProfile.chargingSchedule.startSchedule)) {
+ if (chargingProfile.chargingSchedule.startSchedule != null) {
logger.warn(
`${logPrefix} ${moduleName}.prepareChargingProfileKind: Relative charging profile id ${chargingProfile.chargingProfileId} has a startSchedule property defined. It will be ignored or used if the connector has a transaction started`
)
return false
}
if (
- isNullOrUndefined(chargingProfile.chargingSchedule.startSchedule) ||
- isNullOrUndefined(chargingProfile.chargingSchedule.duration)
+ chargingProfile.chargingSchedule.startSchedule == null ||
+ chargingProfile.chargingSchedule.duration == null
) {
logger.error(
`${logPrefix} ${moduleName}.canProceedChargingProfile: Charging profile id ${chargingProfile.chargingProfileId} has no startSchedule or duration defined`
return false
}
if (
- !isNullOrUndefined(chargingProfile.chargingSchedule.startSchedule) &&
+ chargingProfile.chargingSchedule.startSchedule != null &&
!isValidTime(chargingProfile.chargingSchedule.startSchedule)
) {
logger.error(
return false
}
if (
- !isNullOrUndefined(chargingProfile.chargingSchedule.duration) &&
+ chargingProfile.chargingSchedule.duration != null &&
!Number.isSafeInteger(chargingProfile.chargingSchedule.duration)
) {
logger.error(
): boolean => {
if (
chargingProfile.chargingProfileKind === ChargingProfileKindType.RECURRING &&
- isNullOrUndefined(chargingProfile.recurrencyKind)
+ chargingProfile.recurrencyKind == null
) {
logger.error(
`${logPrefix} ${moduleName}.canProceedRecurringChargingProfile: Recurring charging profile id ${chargingProfile.chargingProfileId} has no recurrencyKind defined`
}
if (
chargingProfile.chargingProfileKind === ChargingProfileKindType.RECURRING &&
- isNullOrUndefined(chargingProfile.chargingSchedule.startSchedule)
+ chargingProfile.chargingSchedule.startSchedule == null
) {
logger.error(
`${logPrefix} ${moduleName}.canProceedRecurringChargingProfile: Recurring charging profile id ${chargingProfile.chargingProfileId} has no startSchedule defined`
interval: Interval,
logPrefix: string
): void => {
- if (isNullOrUndefined(chargingProfile.chargingSchedule.duration)) {
+ if (chargingProfile.chargingSchedule.duration == null) {
logger.warn(
`${logPrefix} ${moduleName}.checkRecurringChargingProfileDuration: Recurring ${
chargingProfile.chargingProfileKind
)
chargingProfile.chargingSchedule.duration = differenceInSeconds(interval.end, interval.start)
} else if (
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- chargingProfile.chargingSchedule.duration! > differenceInSeconds(interval.end, interval.start)
+ chargingProfile.chargingSchedule.duration > differenceInSeconds(interval.end, interval.start)
) {
logger.warn(
`${logPrefix} ${moduleName}.checkRecurringChargingProfileDuration: Recurring ${
isEmptyArray,
isNotEmptyArray,
isNotEmptyString,
- isNullOrUndefined,
isUndefined,
logger,
sleep
let compositeSchedule: OCPP16ChargingSchedule | undefined
for (const chargingProfile of chargingProfiles) {
if (
- isNullOrUndefined(chargingProfile.chargingSchedule?.startSchedule) &&
+ chargingProfile.chargingSchedule?.startSchedule == null &&
connectorStatus?.transactionStarted === true
) {
logger.debug(
chargingProfile.chargingSchedule.startSchedule = connectorStatus?.transactionStart
}
if (
- !isNullOrUndefined(chargingProfile.chargingSchedule?.startSchedule) &&
+ chargingProfile.chargingSchedule?.startSchedule != null &&
!isDate(chargingProfile.chargingSchedule?.startSchedule)
) {
logger.warn(
)!
}
if (
- !isNullOrUndefined(chargingProfile.chargingSchedule?.startSchedule) &&
- isNullOrUndefined(chargingProfile.chargingSchedule?.duration)
+ chargingProfile.chargingSchedule?.startSchedule != null &&
+ chargingProfile.chargingSchedule?.duration == null
) {
logger.debug(
`${chargingStation.logPrefix()} ${moduleName}.handleRequestGetCompositeSchedule: Charging profile id ${
// OCPP specifies that if duration is not defined, it should be infinite
chargingProfile.chargingSchedule.duration = differenceInSeconds(
maxTime,
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- chargingProfile.chargingSchedule.startSchedule!
+ chargingProfile.chargingSchedule.startSchedule
)
}
if (
}
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const connectorStatus = chargingStation.getConnectorStatus(connectorId!)
- if (!isNullOrUndefined(connectorId) && isNotEmptyArray(connectorStatus?.chargingProfiles)) {
+ if (connectorId != null && isNotEmptyArray(connectorStatus?.chargingProfiles)) {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
connectorStatus!.chargingProfiles = []
logger.debug(
)
return OCPP16Constants.OCPP_CLEAR_CHARGING_PROFILE_RESPONSE_ACCEPTED
}
- if (isNullOrUndefined(connectorId)) {
+ if (connectorId == null) {
let clearedCP = false
if (chargingStation.hasEvses) {
for (const evseStatus of chargingStation.evses.values()) {
}
let { retrieveDate } = commandPayload
if (
- !isNullOrUndefined(chargingStation.stationInfo.firmwareStatus) &&
+ chargingStation.stationInfo.firmwareStatus != null &&
chargingStation.stationInfo.firmwareStatus !== OCPP16FirmwareStatus.Installed
) {
logger.warn(
return OCPP16Constants.OCPP_TRIGGER_MESSAGE_RESPONSE_ACCEPTED
case OCPP16MessageTrigger.StatusNotification:
setTimeout(() => {
- if (!isNullOrUndefined(connectorId)) {
+ if (connectorId != null) {
chargingStation.ocppRequestService
.requestHandler<OCPP16StatusNotificationRequest, OCPP16StatusNotificationResponse>(
chargingStation,
{
connectorId,
errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- status: chargingStation.getConnectorStatus(connectorId!)?.status
+ status: chargingStation.getConnectorStatus(connectorId)?.status
},
{
triggerMessage: true
handleFileException,
isNotEmptyArray,
isNotEmptyString,
- isNullOrUndefined,
isUndefined,
logPrefix,
logger,
// Persist previous value on connector
if (connector != null) {
if (
- !isNullOrUndefined(connector.energyActiveImportRegisterValue) &&
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- connector.energyActiveImportRegisterValue! >= 0 &&
- !isNullOrUndefined(connector.transactionEnergyActiveImportRegisterValue) &&
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- connector.transactionEnergyActiveImportRegisterValue! >= 0
+ connector.energyActiveImportRegisterValue != null &&
+ connector.energyActiveImportRegisterValue >= 0 &&
+ connector.transactionEnergyActiveImportRegisterValue != null &&
+ connector.transactionEnergyActiveImportRegisterValue >= 0
) {
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- connector.energyActiveImportRegisterValue! += energyValueRounded
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- connector.transactionEnergyActiveImportRegisterValue! += energyValueRounded
+ connector.energyActiveImportRegisterValue += energyValueRounded
+ connector.transactionEnergyActiveImportRegisterValue += energyValueRounded
} else {
connector.energyActiveImportRegisterValue = 0
connector.transactionEnergyActiveImportRegisterValue = 0
const sampledValuePhase = phase ?? sampledValueTemplate?.phase
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
return {
- ...(!isNullOrUndefined(sampledValueTemplate.unit) && {
+ ...(sampledValueTemplate.unit != null && {
unit: sampledValueTemplate.unit
}),
- ...(!isNullOrUndefined(sampledValueContext) && { context: sampledValueContext }),
- ...(!isNullOrUndefined(sampledValueTemplate.measurand) && {
+ ...(sampledValueContext != null && { context: sampledValueContext }),
+ ...(sampledValueTemplate.measurand != null && {
measurand: sampledValueTemplate.measurand
}),
- ...(!isNullOrUndefined(sampledValueLocation) && { location: sampledValueLocation }),
- ...(!isNullOrUndefined(value) && { value: value.toString() }),
- ...(!isNullOrUndefined(sampledValuePhase) && { phase: sampledValuePhase })
+ ...(sampledValueLocation != null && { location: sampledValueLocation }),
+ ...(value != null && { value: value.toString() }),
+ ...(sampledValuePhase != null && { phase: sampledValuePhase })
} as SampledValue
}