using Newtonsoft.Json; using OCPPPacket.Packet.DataTransfer; using OCPPPacket.Packet.Messages; using OCPPPacket.Packet.Messages.Core; using OCPPPacket.Packet.Messages.FirmwareManagement; using OCPPPacket.Packet.Status; using System; namespace OCPPServer.Handler { public class MakeConfirmationHandler { #region Core /// /// 建立 Authorize comfirm message /// /// AuthorizeRequest /// AuthorizationStatus /// public IConfirmation MakeAuthorizeConfirmation(AuthorizeRequest request, AuthorizationStatus authstatus) { AuthorizeConfirmation conf = new AuthorizeConfirmation(); conf.idTagInfo = new IdTagInfo(); conf.idTagInfo.expiryDate = new DateTime(2020, 06, 19, 09, 10, 00, 000);//date; conf.idTagInfo.parentIdTag = request.idTag; conf.idTagInfo.status = authstatus; return conf; } /// /// 建立 BootNotification comfirm message /// /// BootNotificationRequest /// public IConfirmation MakeBootNotificationConfirmation(BootNotificationRequest request) { BootNotificationConfirmation conf = new BootNotificationConfirmation(); conf.currentTime = DateTime.Now; conf.interval = 10; conf.status = RegistrationStatus.Accepted; return conf; } /// /// 建立 StatusNotification comfirm message /// /// StatusNotificationRequest /// public IConfirmation MakeStatusNotificationConfirmation(StatusNotificationRequest request) { StatusNotificationConfirmation conf = new StatusNotificationConfirmation(); return conf; } /// /// 建立 Heartbeat comfirm message /// /// HeartbeatRequest /// public IConfirmation MakeHeartbeatConfirmation(HeartbeatRequest request) { HeartbeatConfirmation conf = new HeartbeatConfirmation(); conf.currentTime = DateTime.Now; return conf; } /// /// 建立 ClearCache comfirm message /// /// ClearCacheRequest /// public IConfirmation MakeClearCacheConfirmation(ClearCacheRequest request) { ClearCacheConfirmation conf = new ClearCacheConfirmation(); conf.status = ClearCacheStatus.Accepted; return conf; } /// /// 建立 MeterValues comfirm message /// /// MeterValuesRequest /// public IConfirmation MakeMeterValuesConfirmation(MeterValuesRequest request) { MeterValuesConfirmation conf = new MeterValuesConfirmation(); return conf; } /// /// 建立 StartTransaction comfirm message /// /// StartTransactionRequest /// /// public IConfirmation MakeStartTransactionConfirmation(StartTransactionRequest request, out int transactionId) { StartTransactionConfirmation conf = new StartTransactionConfirmation(); conf.idTagInfo = new IdTagInfo(); conf.idTagInfo.expiryDate = new DateTime(2020, 06, 19, 09, 10, 00, 000); conf.idTagInfo.parentIdTag = request.idTag; conf.transactionId = new Random().Next(1, int.MaxValue); conf.idTagInfo.status = AuthorizationStatus.Accepted; // 一律回 "Accepted" transactionId = conf.transactionId; return conf; } /// /// 建立 Repeat StartTransaction comfirm message /// /// StartTransactionRequest /// /// public IConfirmation MakeRePeatStartTransactionConfirmation(StartTransactionRequest request, int transactionId) { StartTransactionConfirmation conf = new StartTransactionConfirmation(); conf.idTagInfo = new IdTagInfo(); conf.idTagInfo.expiryDate = new DateTime(2020, 06, 19, 09, 10, 00, 000); conf.idTagInfo.parentIdTag = request.idTag; conf.transactionId = transactionId; conf.idTagInfo.status = AuthorizationStatus.Accepted; // 一律回 "Accepted" return conf; } /// /// 建立 StopTransaction comfirm message /// /// StopTransactionRequest /// AuthorizationStatus /// public IConfirmation MakeStopTransactionConfirmation(StopTransactionRequest request, AuthorizationStatus authstatus) { StopTransactionConfirmation conf = new StopTransactionConfirmation(); conf.idTagInfo = new IdTagInfo(); conf.idTagInfo.expiryDate = new DateTime(2020, 06, 19, 09, 10, 00, 000); conf.idTagInfo.parentIdTag = request.idTag; conf.idTagInfo.status = authstatus; return conf; } /// /// 建立 GunStatus comfirm message /// /// public IConfirmation MakeGunStatusConfirmation() { DataTransferConfirmation conf = new DataTransferConfirmation(); conf.status = DataTransferStatus.Accepted; return conf; } /// /// 建立 ChargeComplete comfirm message /// /// public IConfirmation MakeChargeCompleteConfirmation() { DataTransferConfirmation conf = new DataTransferConfirmation(); conf.status = DataTransferStatus.Accepted; return conf; } /// /// 建立 Location comfirm message /// /// public IConfirmation MakeLocationConfirmation() { DataTransferConfirmation conf = new DataTransferConfirmation(); conf.status = DataTransferStatus.Accepted; return conf; } /// /// 建立 ChargingGunBMS comfirm message /// /// public IConfirmation MakeChargingGunBMSConfirmation() { DataTransferConfirmation conf = new DataTransferConfirmation(); conf.status = DataTransferStatus.Accepted; return conf; } /// /// 建立 UpgradeVersionConf comfirm message /// /// /// /// public IConfirmation MakeUpgradeVersionConfConfirmation(bool result, ProgramParam param) { DataTransferConfirmation conf = new DataTransferConfirmation(); conf.status = DataTransferStatus.Accepted; UpgradeVersionConf upgradeverConf = new UpgradeVersionConf(); upgradeverConf.param = param; if (!result) { upgradeverConf.SameAsServer = true; } else { upgradeverConf.SameAsServer = false; } conf.data = JsonConvert.SerializeObject(upgradeverConf); return conf; } #endregion Core #region FirmwareManagement /// /// 建立 DiagnosticsStatusNotification comfirm message /// /// public IConfirmation MakeDiagnosticsStatusNotificationConfirmation() { DiagnosticsStatusNotificationConfirmation conf = new DiagnosticsStatusNotificationConfirmation(); return conf; } /// /// 建立 FirmwareStatusNotification comfirm message /// /// public IConfirmation MakeFirmwareStatusNotificationConfirmation() { FirmwareStatusNotificationConfirmation conf = new FirmwareStatusNotificationConfirmation(); return conf; } #endregion FirmwareManagement #region DataTransfer public IConfirmation MakeAuthorizeDataConfConfirmation(AuthorizeData request, AuthorizeStatus authstatus) { DataTransferConfirmation conf = new DataTransferConfirmation(); conf.status = DataTransferStatus.Accepted; AuthorizeResult authorizeResult = new AuthorizeResult(); authorizeResult.expiryDate = new DateTime(2020, 06, 19, 09, 10, 00, 000);//date; authorizeResult.parentIdTag = request.idTag; authorizeResult.status = authstatus; conf.data = JsonConvert.SerializeObject(authorizeResult); return conf; } #endregion } }