|
@@ -1,6 +1,6 @@
|
|
|
-using EVCB_OCPP.Packet.Messages;
|
|
|
-using EVCB_OCPP.Packet.Messages.Basic;
|
|
|
+using EVCB_OCPP.Packet.Messages.Basic;
|
|
|
using EVCB_OCPP.Packet20.Features;
|
|
|
+using EVCB_OCPP.Packet20.Messages;
|
|
|
using Newtonsoft.Json;
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
using NLog;
|
|
@@ -10,7 +10,9 @@ using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
-
|
|
|
+using I20Request = EVCB_OCPP.Packet20.Messages.IRequest;
|
|
|
+using I20Confirmation = EVCB_OCPP.Packet20.Messages.IConfirmation;
|
|
|
+using EVCB_OCPP.Packet.Messages;
|
|
|
|
|
|
namespace EVCB_OCPP.WSServer.Message
|
|
|
{
|
|
@@ -47,7 +49,7 @@ namespace EVCB_OCPP.WSServer.Message
|
|
|
|
|
|
private List<Profile> profiles = new List<Profile>()
|
|
|
{
|
|
|
- new CoreProfile(),
|
|
|
+ new CoreProfile(),
|
|
|
|
|
|
};
|
|
|
|
|
@@ -78,12 +80,12 @@ namespace EVCB_OCPP.WSServer.Message
|
|
|
Actions action = Actions.None;
|
|
|
Enum.TryParse<Actions>(msg.Action, out action);
|
|
|
result.Action = msg.Action;
|
|
|
- if (baseResult.Request != null)
|
|
|
+ if (baseResult.Request20 != null)
|
|
|
{
|
|
|
- if (baseResult.Request.Validate())
|
|
|
+ if (baseResult.Request20.Validate())
|
|
|
{
|
|
|
result.Id = TYPENUMBER_CALL;
|
|
|
- result.Message = baseResult.Request;
|
|
|
+ result.Message = baseResult.Request20;
|
|
|
|
|
|
}
|
|
|
else
|
|
@@ -92,7 +94,7 @@ namespace EVCB_OCPP.WSServer.Message
|
|
|
string replyMsg = BasicMessageHandler.GenerateCallError(msg.Id, OCPPErrorCodes.OccurenceConstraintViolation.ToString(),
|
|
|
OCPPErrorDescription.OccurenceConstraintViolation);
|
|
|
result.Id = TYPENUMBER_CALL;
|
|
|
- result.Message = baseResult.Request;
|
|
|
+ result.Message = baseResult.Request20;
|
|
|
result.Success = false;
|
|
|
result.CallErrorMsg = replyMsg;
|
|
|
result.Exception = new Exception("Validation Failed");
|
|
@@ -104,7 +106,7 @@ namespace EVCB_OCPP.WSServer.Message
|
|
|
|
|
|
string replyMsg = BasicMessageHandler.GenerateCallError(msg.Id, OCPPErrorCodes.OccurenceConstraintViolation, OCPPErrorDescription.OccurenceConstraintViolation);
|
|
|
result.Id = TYPENUMBER_CALL;
|
|
|
- result.Message = baseResult.Request;
|
|
|
+ result.Message = baseResult.Request20;
|
|
|
result.Success = false;
|
|
|
result.CallErrorMsg = replyMsg;
|
|
|
result.Exception = baseResult.Exception;
|
|
@@ -114,55 +116,55 @@ namespace EVCB_OCPP.WSServer.Message
|
|
|
break;
|
|
|
case TYPENUMBER_CALLRESULT:
|
|
|
{
|
|
|
- BasicMessageResult baseResult = UnPackPayloadbyCallResult(client.queue, msg.Id, msg.Payload.ToString());
|
|
|
-
|
|
|
- if (baseResult.Confirmation != null)
|
|
|
- {
|
|
|
-
|
|
|
- if (baseResult.Confirmation.Validate())
|
|
|
- {
|
|
|
- result.Id = TYPENUMBER_CALLRESULT;
|
|
|
- result.Message = baseResult.Confirmation;
|
|
|
- result.Action = baseResult.Confirmation.GetRequest().Action;
|
|
|
-
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- string replyMsg = BasicMessageHandler.GenerateCallError(msg.Id, OCPPErrorCodes.OccurenceConstraintViolation.ToString(),
|
|
|
- OCPPErrorDescription.OccurenceConstraintViolation);
|
|
|
- result.Id = TYPENUMBER_CALLRESULT;
|
|
|
- result.Message = baseResult.Confirmation;
|
|
|
- result.Success = false;
|
|
|
- result.CallErrorMsg = replyMsg;
|
|
|
- result.Exception = new Exception("Validate Failed");
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- string replyMsg = BasicMessageHandler.GenerateCallError(msg.Id, OCPPErrorCodes.OccurenceConstraintViolation.ToString(),
|
|
|
- OCPPErrorDescription.OccurenceConstraintViolation);
|
|
|
- result.Id = TYPENUMBER_CALLRESULT;
|
|
|
- result.Message = baseResult.Confirmation;
|
|
|
- result.Success = false;
|
|
|
- result.CallErrorMsg = replyMsg;
|
|
|
- result.Exception = baseResult.Exception;
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
}
|
|
|
break;
|
|
|
case TYPENUMBER_CALLERROR:
|
|
|
{
|
|
|
result.Id = TYPENUMBER_CALLERROR;
|
|
|
- var sentRequest = UnPackPayloadbyCallError(client.queue, msg.Id);
|
|
|
+
|
|
|
|
|
|
- if (sentRequest != null)
|
|
|
- {
|
|
|
- IRequest request = sentRequest as IRequest;
|
|
|
- result.Action = request.Action;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- result.Message = sentRequest;
|
|
|
- result.ReceivedErrorCode = string.Format("ErrorMsg {0}:{1}", ((CallErrorMessage)msg).ErrorCode, ((CallErrorMessage)msg).ErrorDescription);
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
}
|
|
@@ -269,8 +271,9 @@ namespace EVCB_OCPP.WSServer.Message
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- result.Request = JsonConvert.DeserializeObject(payload, feature.GetRequestType()) as IRequest;
|
|
|
+ string tt = "{ \"connectorId\": 1, \"evseId\": 1, \"connectorStatus\": \"Occupied\", \"timestamp\": \"2020-10-28T08:28:47Z\"}";
|
|
|
+ var gg = JsonConvert.DeserializeObject(tt, typeof(StatusNotificationRequest));
|
|
|
+ result.Request20 = JsonConvert.DeserializeObject(payload, feature.GetRequestType()) as I20Request;
|
|
|
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -283,12 +286,12 @@ namespace EVCB_OCPP.WSServer.Message
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- private BasicMessageResult UnPackPayloadbyCallResult(Queue requestQueue, string uniqueId, string payload)
|
|
|
+ private BasicMessageResult UnPackPayloadbyCallResult(EVCB_OCPP.Packet20.Messages.Basic.Queue requestQueue, string uniqueId, string payload)
|
|
|
{
|
|
|
BasicMessageResult result = new BasicMessageResult();
|
|
|
try
|
|
|
{
|
|
|
- IRequest request = requestQueue.RestoreRequest(uniqueId);
|
|
|
+ I20Request request = requestQueue.RestoreRequest(uniqueId);
|
|
|
Feature feature = null;
|
|
|
foreach (var profile in profiles)
|
|
|
{
|
|
@@ -303,9 +306,10 @@ namespace EVCB_OCPP.WSServer.Message
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- IConfirmation confrim = JsonConvert.DeserializeObject(payload, feature.GetConfirmationType()) as IConfirmation;
|
|
|
+
|
|
|
+ I20Confirmation confrim = JsonConvert.DeserializeObject(payload, feature.GetConfirmationType()) as I20Confirmation;
|
|
|
confrim.SetRequest(request);
|
|
|
- result.Confirmation = confrim;
|
|
|
+ result.Confirmation20 = confrim;
|
|
|
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -318,15 +322,19 @@ namespace EVCB_OCPP.WSServer.Message
|
|
|
|
|
|
}
|
|
|
|
|
|
- private IRequest UnPackPayloadbyCallError(Queue requestQueue, string uniqueId)
|
|
|
+ private I20Request UnPackPayloadbyCallError(EVCB_OCPP.Packet20.Messages.Basic.Queue requestQueue, string uniqueId)
|
|
|
{
|
|
|
- IRequest sentMsg = requestQueue.RestoreRequest(uniqueId);
|
|
|
+ I20Request sentMsg = requestQueue.RestoreRequest(uniqueId);
|
|
|
|
|
|
return sentMsg;
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
+
|
|
|
}
|
|
|
}
|