123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net.Sockets;
- using System.Text;
- using System.Threading.Tasks;
- namespace AwInitilizer.Procedure
- {
- public class BasicInfoUpdateProcedure : ProcedureBase
- {
- public BasicInfoUpdateProcedure() : base()
- {
- Name = "Basic Intlize";
- Content = "Set and check Model Name,SerilNumber,DateTime.";
- }
- internal override async Task<bool> Run()
- {
- if (!await base.CheckAndCreateSocket())
- {
- LogPair.Add("BaseUpdateSocketConnect","fail");
- InfoLog += "EVSE connect failed\n";
- return false;
- }
- //base.serialPortocol.OnMsgReceived += SerialPortocol_OnMsgReceived;
- if (!await serialPortocol.SetModelName(UpdateData.ModelName))
- {
- InfoLog += "Model Name update failed\n";
- Logger.Print("Model Name update Failed", isError: true);
- LogPair.Add("ModelNameWrite", "fail");
- return false;
- }
- else
- {
- Logger.Print("Model Name write Success");
- LogPair.Add("ModelNameWrite", "success");
- }
- if (!await serialPortocol.SetSerialNumber(UpdateData.SerialNumber))
- {
- InfoLog += "Serial Number update failed\n";
- Logger.Print("Serial Number update Failed", isError: true);
- LogPair.Add("SerialNumberWrite", "fail");
- return false;
- }
- else
- {
- Logger.Print("Serial Number write Success");
- LogPair.Add("SerialNumberWrite", "success");
- }
- var setDateTime = DateTime.Now.ToUniversalTime();
- if (!await serialPortocol.SetUTCTime(setDateTime))
- {
- InfoLog += "RTC update failed\n";
- Logger.Print("RTC update Failed", isError: true);
- LogPair.Add("RtcUpdate", "fail");
- return false;
- }
- else
- {
- Logger.Print("RTC update write Success");
- LogPair.Add("RtcUpdate", "success");
- }
- if (!await serialPortocol.SettingChangeConfirm())
- {
- InfoLog += "Setting save request failed\n";
- Logger.Print("Setting save Failed", isError: true);
- LogPair.Add("SettingSave", "fail");
- return false;
- }
- else
- {
- Logger.Print("Setting save Success");
- LogPair.Add("SettingSave", "success");
- }
- Logger.Print("Waiting EVSE reboot...");
- serialPortocol.Close();
- await Task.Delay(TimeSpan.FromMinutes(1));
- if (!await base.CheckAndCreateSocket())
- {
- InfoLog += "EVSE not found after reboot\n";
- Logger.Print("EVSE reboot timeout", isError: true);
- LogPair.Add("BaseUpdateSocketReConnect", "fail");
- return false;
- }
- var receivedModelName = await serialPortocol.GetModelName();
- LogPair.Add("ModelNameRead", receivedModelName);
- if (string.IsNullOrEmpty(receivedModelName))
- {
- InfoLog += "Model name get failed after reboot\n";
- Logger.Print("Model Name read Failed", isError: true);
- return false;
- }
- else
- {
- InfoLog += $"Get Updated Model Name { receivedModelName }\n";
- if (receivedModelName != UpdateData.ModelName)
- {
- InfoLog += "Updated Model Name Mismatched\n";
- Logger.Print("Stored Model Name Mismatched", isError: true);
- return false;
- }
- Logger.Print("Model Name update Success");
- }
- var receivedSeerialNumber = await serialPortocol.GetSerialNumber();
- LogPair.Add("SerialNumberRead", receivedSeerialNumber);
- if (string.IsNullOrEmpty(receivedSeerialNumber))
- {
- InfoLog += "Serial number get failed after reboot\n";
- InfoLog += serialPortocol.LatestNullMessage +"\n";
- Logger.Print("Stored Serial read Failed", isError: true);
- Logger.Print(serialPortocol.LatestNullMessage);
- return false;
- }
- else
- {
- InfoLog += $"Get Updated serial number { receivedSeerialNumber }\n";
- if (receivedSeerialNumber != UpdateData.SerialNumber)
- {
- InfoLog += "Updated serial number mismatched\n";
- Logger.Print("Stored Serial Number Mismatched", isError: true);
- return false;
- }
- Logger.Print("Serial Number update Success");
- }
- var receivedDateTime = await serialPortocol.GetUTCTime();
- LogPair.Add("RtcRead", receivedDateTime?.ToString("yyyyMMddHHmmss"));
- if (string.IsNullOrEmpty(receivedModelName))
- {
- InfoLog += "UTC Time receive failed after reboot\n";
- Logger.Print("UTC Time receive failed", isError: true);
- return false;
- }
- else
- {
- InfoLog += $"UTC Time received : {receivedDateTime.Value.ToString("yyyyMMddHHmmss")}\n";
- var diff = receivedDateTime.Value - DateTime.Now.ToUniversalTime();
- if (Math.Abs(diff.TotalSeconds) > 10)
- {
- InfoLog += "Stored UTC time Mismatched\n";
- Logger.Print("Stored UTC time Mismatched", isError: true);
- return false;
- }
- else
- {
- Logger.Print("Model Name update Success");
- }
- }
- return true;
- }
- }
- }
|