Эх сурвалжийг харах

1.新增 iso15118 hardcode 回覆,提供電樁測試使用
2.加入 SetDefaultFee Exception catch

Jessica Tseng 1 жил өмнө
parent
commit
2418318669

+ 1 - 0
EVCB_OCPP.WSServer/EVCB_OCPP.WSServer.csproj

@@ -46,6 +46,7 @@
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="Dapper, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">

+ 22 - 33
EVCB_OCPP.WSServer/Message/CoreProfileHandler.cs

@@ -167,6 +167,23 @@ namespace EVCB_OCPP.WSServer.Message
                                 confirm.status = DataTransferStatus.Accepted;
                                 confirm.data = JsonConvert.SerializeObject(new { txId = jo["txId"].Value<int>(), msgId = _request.messageId });
                             }
+
+
+                            if (_request.messageId == "Authorize")
+                            {
+                                string iso15118_token = string.Empty;
+                                JObject jo = JObject.Parse(_request.data);
+                                if (jo.ContainsKey("idToken"))
+                                {
+                                    iso15118_token = jo["idToken"].Value<string>();
+
+                                }
+
+                                confirm.status = DataTransferStatus.Accepted;
+                                confirm.data = JsonConvert.SerializeObject(new { certificateStatus = iso15118_token == "12345678901234" ? "Accepted" : "CertificateExpired", idTokenInfo = new  { status = iso15118_token=="12345678901234"? "Accepted" : "Invalid" }  });
+
+
+                            }
                             result.Message = confirm;
                             result.Success = true;
                         }
@@ -209,12 +226,12 @@ namespace EVCB_OCPP.WSServer.Message
                             {
                                 session.IsPending = true;
                             }
-                          
-                            var confirm = new BootNotificationConfirmation() { currentTime = DateTime.UtcNow, interval = session.IsPending.Value ? 5:heartbeat_interval , status = session.IsPending.Value ?RegistrationStatus.Pending : RegistrationStatus.Accepted };
+
+                            var confirm = new BootNotificationConfirmation() { currentTime = DateTime.UtcNow, interval = session.IsPending.Value ? 5 : heartbeat_interval, status = session.IsPending.Value ? RegistrationStatus.Pending : RegistrationStatus.Accepted };
+
+
 
 
-                          
-                           
                             result.Message = confirm;
                             result.Success = true;
                         }
@@ -863,7 +880,7 @@ namespace EVCB_OCPP.WSServer.Message
                                         db.Entry(machine).Property(x => x.BoardVersions).IsModified = true;
                                         await db.SaveChangesAsync();
                                     }
-                                }
+                                }                              
 
                                 if (_request.messageId == "ID_TxEnergy") //計費
                                 {
@@ -1244,34 +1261,6 @@ namespace EVCB_OCPP.WSServer.Message
 
                                 }
 
-                                #region 台泥
-                                if (_request.messageId == "ID_GetTxUserInfo")
-                                {
-                                    var txUserInfo = JsonConvert.DeserializeObject<ID_GetTxUserInfo>(_confirm.data);
-                                    if (session.CustomerId == new Guid("009E603C-79CD-4620-A2B8-D9349C0E8AD8"))
-                                    {
-                                        var request = new
-                                        {
-                                            ChargeBoxId = session.ChargeBoxId,
-                                            ConnectorId = txUserInfo.ConnectorId,
-                                            SessionId = txUserInfo.TxId,
-                                            SerialNo = txUserInfo.SerialNo,
-                                            StartTime = txUserInfo.StartTime.ToString(GlobalConfig.UTC_DATETIMEFORMAT),
-                                            VEMData = txUserInfo.VEMData
-                                        };
-
-                                        var response = httpClient.Post(GlobalConfig.TCC_API_URL + "start_session", new Dictionary<string, string>()
-                                        {
-                                            { "PartnerId",session.CustomerId.ToString()}
-
-                                        }, request, GlobalConfig.TCC_SALTKEY);
-
-                                        logger.Debug(JsonConvert.SerializeObject(response));
-                                    }
-
-                                }
-
-                                #endregion
                             }
                         }
                         break;

+ 1 - 1
EVCB_OCPP.WSServer/Properties/AssemblyInfo.cs

@@ -35,4 +35,4 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyVersion("1.2.1.0")]
 [assembly: AssemblyFileVersion("1.2.1.0")]
 
-[assembly: AssemblyInformationalVersion("9bfa630")]
+[assembly: AssemblyInformationalVersion("9a46efb")]

+ 56 - 48
EVCB_OCPP.WSServer/ProtalServer.cs

@@ -1562,57 +1562,65 @@ namespace EVCB_OCPP.WSServer
 
             if (string.IsNullOrEmpty(client.ChargeBoxId)) return displayPriceText;
 
-            using (SqlConnection conn = new SqlConnection(webConnectionString))
+            try
             {
-                var parameters = new DynamicParameters();
-                parameters.Add("@MachineId", client.MachineId, DbType.String, ParameterDirection.Input);
-                string displayPricestrSql = "";
-                string strSql = "";
-
-                if (client.IsAC)
+                using (SqlConnection conn = new SqlConnection(webConnectionString))
                 {
-                    displayPricestrSql = "   SELECT  [AC_BillingMethod] as BillingMethod,[AC_FeeName] as FeeName,[AC_Fee] as ChargingFeebyHour" +
-                "  ,[AC_ParkingFee] as ParkingFee, [Currency]  FROM[StationMachine]  left join[dbo].[Station]" +
-                "  on[StationMachine].StationId = Station.[Id]  where StationMachine.MachineId=@MachineId and Station.IsBilling=1; ";
+                    var parameters = new DynamicParameters();
+                    parameters.Add("@MachineId", client.MachineId, DbType.String, ParameterDirection.Input);
+                    string displayPricestrSql = "";
+                    string strSql = "";
 
-                    strSql = " SELECT CAST( [StartTime] as varchar(5)) StartTime,CAST( [EndTime] as varchar(5)) EndTime,[Fee]  FROM[StationMachine]  left join [dbo].[StationFee]" +
-                   " on[StationMachine].StationId = StationFee.StationId  where StationMachine.MachineId =@MachineId and StationFee.IsAC=1; ";
-                }
-                else
-                {
-                    displayPricestrSql = "   SELECT  [DC_BillingMethod] as BillingMethod,[DC_FeeName] as FeeName,[DC_Fee] as ChargingFeebyHour" +
-               "  ,[DC_ParkingFee] as ParkingFee, [Currency]  FROM[StationMachine]  left join[dbo].[Station]" +
-               "  on[StationMachine].StationId = Station.[Id]  where StationMachine.MachineId=@MachineId and Station.IsBilling=1; ";
+                    if (client.IsAC)
+                    {
+                        displayPricestrSql = "   SELECT  [AC_BillingMethod] as BillingMethod,[AC_FeeName] as FeeName,[AC_Fee] as ChargingFeebyHour" +
+                    "  ,[AC_ParkingFee] as ParkingFee, [Currency]  FROM[StationMachine]  left join[dbo].[Station]" +
+                    "  on[StationMachine].StationId = Station.[Id]  where StationMachine.MachineId=@MachineId and Station.IsBilling=1; ";
 
-                    strSql = " SELECT CAST( [StartTime] as varchar(5)) StartTime,CAST( [EndTime] as varchar(5)) EndTime,[Fee]  FROM[StationMachine]  left join [dbo].[StationFee]" +
-                   " on[StationMachine].StationId = StationFee.StationId  where StationMachine.MachineId =@MachineId and StationFee.IsAC=0; ";
+                        strSql = " SELECT CAST( [StartTime] as varchar(5)) StartTime,CAST( [EndTime] as varchar(5)) EndTime,[Fee]  FROM[StationMachine]  left join [dbo].[StationFee]" +
+                       " on[StationMachine].StationId = StationFee.StationId  where StationMachine.MachineId =@MachineId and StationFee.IsAC=1; ";
+                    }
+                    else
+                    {
+                        displayPricestrSql = "   SELECT  [DC_BillingMethod] as BillingMethod,[DC_FeeName] as FeeName,[DC_Fee] as ChargingFeebyHour" +
+                   "  ,[DC_ParkingFee] as ParkingFee, [Currency]  FROM[StationMachine]  left join[dbo].[Station]" +
+                   "  on[StationMachine].StationId = Station.[Id]  where StationMachine.MachineId=@MachineId and Station.IsBilling=1; ";
 
-                }
-                var result = await conn.QueryAsync<StationFee>(displayPricestrSql, parameters);
-                if (result.Count() == 0)
-                {
-                    return string.Empty;
-                }
-                var stationPrice = result.First();
+                        strSql = " SELECT CAST( [StartTime] as varchar(5)) StartTime,CAST( [EndTime] as varchar(5)) EndTime,[Fee]  FROM[StationMachine]  left join [dbo].[StationFee]" +
+                       " on[StationMachine].StationId = StationFee.StationId  where StationMachine.MachineId =@MachineId and StationFee.IsAC=0; ";
 
-                if (stationPrice.BillingMethod == 1)
-                {
-                    var chargingPriceResult = await conn.QueryAsync<ChargingPrice>(strSql, parameters);
-                    client.ChargingPrices = chargingPriceResult.ToList();
-                    if (string.IsNullOrEmpty(client.ChargingPrices[0].StartTime))
+                    }
+                    var result = await conn.QueryAsync<StationFee>(displayPricestrSql, parameters);
+                    if (result.Count() == 0)
+                    {
+                        return string.Empty;
+                    }
+                    var stationPrice = result.First();
+
+                    if (stationPrice.BillingMethod == 1)
                     {
-                        client.ChargingPrices = new List<ChargingPrice>();
+                        var chargingPriceResult = await conn.QueryAsync<ChargingPrice>(strSql, parameters);
+                        client.ChargingPrices = chargingPriceResult.ToList();
+                        if (string.IsNullOrEmpty(client.ChargingPrices[0].StartTime))
+                        {
+                            client.ChargingPrices = new List<ChargingPrice>();
+                        }
                     }
+
+                    displayPriceText = stationPrice.FeeName;
+                    client.BillingMethod = stationPrice.BillingMethod;
+                    client.Currency = stationPrice.Currency;
+                    client.ChargingFeebyHour = stationPrice.ChargingFeebyHour;
+                    client.ParkingFee = stationPrice.ParkingFee;
+                    client.IsBilling = true;
                 }
 
-                displayPriceText = stationPrice.FeeName;
-                client.BillingMethod = stationPrice.BillingMethod;
-                client.Currency = stationPrice.Currency;
-                client.ChargingFeebyHour = stationPrice.ChargingFeebyHour;
-                client.ParkingFee = stationPrice.ParkingFee;
-                client.IsBilling = true;
             }
-
+            catch (Exception ex)
+            {
+                logger.Error("SetDefaultFee",ex.ToString());
+            }
+           
             return displayPriceText;
         }
 
@@ -1838,16 +1846,16 @@ namespace EVCB_OCPP.WSServer
                     var dd = DateTime.UtcNow;
                     SqlParameter[] parameter =
                     {
-                      new SqlParameter("CreatedOn",dd),
-                      new SqlParameter("ChargeBoxId",clientData.ChargeBoxId==null?"unknown":clientData.ChargeBoxId.Replace("'","''")),
-                      new SqlParameter("MessageType",messageType.Replace("'","''")),
+                      new SqlParameter("CreatedOn",23){ Value=dd},
+                      new SqlParameter("ChargeBoxId",50){ Value=clientData.ChargeBoxId==null?"unknown":clientData.ChargeBoxId.Replace("'","''")},
+                      new SqlParameter("MessageType",50){ Value=messageType.Replace("'","''")},
                       new SqlParameter("Data",data.Replace("'","''")),
-                      new SqlParameter("Msg",errorMsg.Replace("'","''")),
-                      new  SqlParameter("IsSent",isSent),
-                      new  SqlParameter("EVSEEndPoint",clientData.RemoteEndPoint==null?"123":clientData.RemoteEndPoint.ToString()),
-                      new  SqlParameter("Session",clientData.SessionID==null?"123":clientData.SessionID)
+                      new SqlParameter("Msg",200){ Value=errorMsg.Replace("'","''")},
+                      new  SqlParameter("IsSent",1){ Value=isSent},
+                      new  SqlParameter("EVSEEndPoint",25){ Value=clientData.RemoteEndPoint==null?"123":clientData.RemoteEndPoint.ToString()},
+                      new  SqlParameter("Session",36){ Value=clientData.SessionID==null?"123":clientData.SessionID}
                };
-
+                  
                     db.Database.ExecuteSqlCommand(sp, parameter);
                 }
             }

BIN
SuperWebSocket/bin/Debug/SuperWebSocket.dll


BIN
SuperWebSocket/bin/Debug/SuperWebSocket.pdb