123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- 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
- /// <summary>
- /// 建立 Authorize comfirm message
- /// </summary>
- /// <param name="request">AuthorizeRequest</param>
- /// <param name="authstatus">AuthorizationStatus</param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 建立 BootNotification comfirm message
- /// </summary>
- /// <param name="request">BootNotificationRequest</param>
- /// <returns></returns>
- public IConfirmation MakeBootNotificationConfirmation(BootNotificationRequest request)
- {
- BootNotificationConfirmation conf = new BootNotificationConfirmation();
- conf.currentTime = DateTime.Now;
- conf.interval = 10;
- conf.status = RegistrationStatus.Accepted;
- return conf;
- }
- /// <summary>
- /// 建立 StatusNotification comfirm message
- /// </summary>
- /// <param name="request">StatusNotificationRequest</param>
- /// <returns></returns>
- public IConfirmation MakeStatusNotificationConfirmation(StatusNotificationRequest request)
- {
- StatusNotificationConfirmation conf = new StatusNotificationConfirmation();
- return conf;
- }
- /// <summary>
- /// 建立 Heartbeat comfirm message
- /// </summary>
- /// <param name="request">HeartbeatRequest</param>
- /// <returns></returns>
- public IConfirmation MakeHeartbeatConfirmation(HeartbeatRequest request)
- {
- HeartbeatConfirmation conf = new HeartbeatConfirmation();
- conf.currentTime = DateTime.Now;
- return conf;
- }
- /// <summary>
- /// 建立 ClearCache comfirm message
- /// </summary>
- /// <param name="request">ClearCacheRequest</param>
- /// <returns></returns>
- public IConfirmation MakeClearCacheConfirmation(ClearCacheRequest request)
- {
- ClearCacheConfirmation conf = new ClearCacheConfirmation();
- conf.status = ClearCacheStatus.Accepted;
- return conf;
- }
- /// <summary>
- /// 建立 MeterValues comfirm message
- /// </summary>
- /// <param name="request">MeterValuesRequest</param>
- /// <returns></returns>
- public IConfirmation MakeMeterValuesConfirmation(MeterValuesRequest request)
- {
- MeterValuesConfirmation conf = new MeterValuesConfirmation();
- return conf;
- }
- /// <summary>
- /// 建立 StartTransaction comfirm message
- /// </summary>
- /// <param name="request">StartTransactionRequest</param>
- /// <param name="transactionId"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 建立 Repeat StartTransaction comfirm message
- /// </summary>
- /// <param name="request">StartTransactionRequest</param>
- /// <param name="transactionId"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 建立 StopTransaction comfirm message
- /// </summary>
- /// <param name="request">StopTransactionRequest</param>
- /// <param name="authstatus">AuthorizationStatus</param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 建立 GunStatus comfirm message
- /// </summary>
- /// <returns></returns>
- public IConfirmation MakeGunStatusConfirmation()
- {
- DataTransferConfirmation conf = new DataTransferConfirmation();
- conf.status = DataTransferStatus.Accepted;
- return conf;
- }
- /// <summary>
- /// 建立 ChargeComplete comfirm message
- /// </summary>
- /// <returns></returns>
- public IConfirmation MakeChargeCompleteConfirmation()
- {
- DataTransferConfirmation conf = new DataTransferConfirmation();
- conf.status = DataTransferStatus.Accepted;
- return conf;
- }
- /// <summary>
- /// 建立 Location comfirm message
- /// </summary>
- /// <returns></returns>
- public IConfirmation MakeLocationConfirmation()
- {
- DataTransferConfirmation conf = new DataTransferConfirmation();
- conf.status = DataTransferStatus.Accepted;
- return conf;
- }
- /// <summary>
- /// 建立 ChargingGunBMS comfirm message
- /// </summary>
- /// <returns></returns>
- public IConfirmation MakeChargingGunBMSConfirmation()
- {
- DataTransferConfirmation conf = new DataTransferConfirmation();
- conf.status = DataTransferStatus.Accepted;
- return conf;
- }
- /// <summary>
- /// 建立 UpgradeVersionConf comfirm message
- /// </summary>
- /// <param name="result"></param>
- /// <param name="param"></param>
- /// <returns></returns>
- 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
- /// <summary>
- /// 建立 DiagnosticsStatusNotification comfirm message
- /// </summary>
- /// <returns></returns>
- public IConfirmation MakeDiagnosticsStatusNotificationConfirmation()
- {
- DiagnosticsStatusNotificationConfirmation conf = new DiagnosticsStatusNotificationConfirmation();
- return conf;
- }
- /// <summary>
- /// 建立 FirmwareStatusNotification comfirm message
- /// </summary>
- /// <returns></returns>
- 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
- }
- }
|