
com.izivia.ocpp.core16.ChargePointOperations.kt Maven / Gradle / Ivy
The newest version!
package com.izivia.ocpp.core16
import com.izivia.ocpp.core16.impl.RealChargePointOperations
import com.izivia.ocpp.core16.model.authorize.AuthorizeReq
import com.izivia.ocpp.core16.model.authorize.AuthorizeResp
import com.izivia.ocpp.core16.model.bootnotification.BootNotificationReq
import com.izivia.ocpp.core16.model.bootnotification.BootNotificationResp
import com.izivia.ocpp.core16.model.datatransfer.DataTransferReq
import com.izivia.ocpp.core16.model.datatransfer.DataTransferResp
import com.izivia.ocpp.core16.model.diagnosticsstatusnotification.DiagnosticsStatusNotificationReq
import com.izivia.ocpp.core16.model.diagnosticsstatusnotification.DiagnosticsStatusNotificationResp
import com.izivia.ocpp.core16.model.firmwarestatusnotification.FirmwareStatusNotificationReq
import com.izivia.ocpp.core16.model.firmwarestatusnotification.FirmwareStatusNotificationResp
import com.izivia.ocpp.core16.model.heartbeat.HeartbeatReq
import com.izivia.ocpp.core16.model.heartbeat.HeartbeatResp
import com.izivia.ocpp.core16.model.metervalues.MeterValuesReq
import com.izivia.ocpp.core16.model.metervalues.MeterValuesResp
import com.izivia.ocpp.core16.model.starttransaction.StartTransactionReq
import com.izivia.ocpp.core16.model.starttransaction.StartTransactionResp
import com.izivia.ocpp.core16.model.statusnotification.StatusNotificationReq
import com.izivia.ocpp.core16.model.statusnotification.StatusNotificationResp
import com.izivia.ocpp.core16.model.stoptransaction.StopTransactionReq
import com.izivia.ocpp.core16.model.stoptransaction.StopTransactionResp
import com.izivia.ocpp.operation.information.CSMSCallbacks
import com.izivia.ocpp.operation.information.OperationExecution
import com.izivia.ocpp.operation.information.RequestMetadata
import com.izivia.ocpp.transport.ClientTransport
import java.net.ConnectException
/**
* Operations initiated by Charge Point
*/
interface ChargePointOperations : CSMSCallbacks {
companion object {
fun newChargePointOperations(
chargingStationId: String,
transport: ClientTransport,
csmsOperations: CSMSOperations
) =
RealChargePointOperations(chargingStationId, transport, csmsOperations)
}
@Throws(IllegalStateException::class, ConnectException::class)
fun connect()
@Throws(IllegalStateException::class, ConnectException::class)
fun close()
/**
* Sends a Heartbeat request to let the Central System know the Charge Point is still connected
*/
@Throws(IllegalStateException::class, ConnectException::class)
fun heartbeat(meta: RequestMetadata, request: HeartbeatReq): OperationExecution
/**
* Sends an Authorize request to the Central System if the identifier is authorize to start/stop
* to charge.
*/
@Throws(IllegalStateException::class, ConnectException::class)
fun authorize(meta: RequestMetadata, request: AuthorizeReq): OperationExecution
/**
* Sends periodic, possibly clock-aligned MeterValues
*/
@Throws(IllegalStateException::class, ConnectException::class)
fun meterValues(meta: RequestMetadata, request: MeterValuesReq): OperationExecution
/**
* Sends a StartTransaction request to the Central System to inform about a transaction that has been started.
* If this transaction ends a reservation the StartTransaction.req MUST contain the reservationId.
*/
@Throws(IllegalStateException::class, ConnectException::class)
fun startTransaction(
meta: RequestMetadata,
request: StartTransactionReq
): OperationExecution
/**
* Sends a StopTransaction request to the Central System to inform about a transaction that has been stopped.
*/
@Throws(IllegalStateException::class, ConnectException::class)
fun stopTransaction(
meta: RequestMetadata,
request: StopTransactionReq
): OperationExecution
/**
* Sends a notification to the Central System about a status change or an error within the Charge Point
*/
@Throws(IllegalStateException::class, ConnectException::class)
fun statusNotification(
meta: RequestMetadata,
request: StatusNotificationReq
): OperationExecution
/**
* Sends information to the Central System for a function not supported by OCPP
*/
@Throws(IllegalStateException::class, ConnectException::class)
fun dataTransfer(
meta: RequestMetadata,
request: DataTransferReq
): OperationExecution
/**
* Sends a request to the Central System with information about its configuration
* each time it boots or reboots
*/
@Throws(IllegalStateException::class, ConnectException::class)
fun bootNotification(
meta: RequestMetadata,
request: BootNotificationReq
): OperationExecution
/**
* Sends notifications to inform the Central System about the progress of the firmware update
*/
@Throws(IllegalStateException::class, ConnectException::class)
fun firmwareStatusNotification(
meta: RequestMetadata,
request: FirmwareStatusNotificationReq
): OperationExecution
/**
* Sends log information to the CSMS
*/
@Throws(IllegalStateException::class, ConnectException::class)
fun diagnosticsStatusNotification(
meta: RequestMetadata,
request: DiagnosticsStatusNotificationReq
): OperationExecution
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy