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

bundle upload complete
need reset procedures

Robert 4 жил өмнө
parent
commit
2fbfc9cbaa

+ 24 - 0
AwInitilizer/Converter/PressStatusConverter.cs

@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AwInitilizer.Converter
+{
+    public static class PressStatusConverter
+    {
+        public static string ToPressString(this int from)
+        {
+            if(from == 0)
+            {
+                return "Unpress";
+            }
+            else if (from == 1)
+            {
+                return "Press";
+            }
+            return "Unknown";
+        }
+    }
+}

+ 2 - 0
AwInitilizer/MainViewModel.cs

@@ -117,6 +117,8 @@ namespace AwInitilizer
             }
         }
 
+        public TimeSpan UpdateElpased { get; set; }
+
         public MainViewModel()
         {
             _updateProcedure = new ObservableCollection<ProcedureBase>();

+ 74 - 0
AwInitilizer/MainWindow.xaml.cs

@@ -380,6 +380,10 @@ namespace AwInitilizer
 
         private async Task UpdateTask()
         {
+            DateTime startTime, stopTime;
+
+            startTime = DateTime.Now;
+
             ProcedureBase.UpdateData = ViewModel;
             ProcedureBase.Logger = this;
 
@@ -438,7 +442,12 @@ namespace AwInitilizer
                 //uxStatusBar.Content = $"Process {procedureList[procedureIndex].Name} Failed";
                 uxStatusBar.Content = string.Format((string)Application.Current.FindResource("StatusBarFailed"), procedureList[procedureIndex].Name);
             }
+
+            stopTime = DateTime.Now;
+            ViewModel.UpdateElpased = stopTime - startTime;
+
             CreateLogFile();
+            CreateUploadCustomterLogFile();
             ViewModel.IsUdatIng = false;
         }
 
@@ -452,6 +461,14 @@ namespace AwInitilizer
                 {
                     valuePairs.Add(pair.Key,val);
                 }
+                else if(pair.Value.ToLower().Contains("fail"))
+                {
+                    valuePairs.Add(pair.Key, 0);
+                }
+                else if (pair.Value.ToLower().Contains("success"))
+                {
+                    valuePairs.Add(pair.Key, 1);
+                }
                 else
                 {
                     valuePairs.Add(string.Format("{0}:{1}", pair.Key, pair.Value),1);
@@ -523,6 +540,63 @@ namespace AwInitilizer
             fileStream.Close();
         }
 
+        private void CreateUploadCustomterLogFile()
+        {
+            var fileName = ViewModel.SystemID + ViewModel.SerialNumber +"_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";
+            var folderName = "CustomerLog";
+            var filePath = Path.Combine(folderName, fileName);
+
+            if (File.Exists(fileName))
+            {
+                File.Delete(fileName);
+            }
+
+            if (!Directory.Exists("CustomerLog"))
+            {
+                Directory.CreateDirectory("CustomerLog");
+            }
+
+            CreateCustomerLog(filePath);
+        }
+
+        private void CreateCustomerLog(string filePath)
+        {
+            FileStream fileStream = new FileStream(filePath, FileMode.Create);
+            StreamWriter fileWriter = new StreamWriter(fileStream);
+
+            string borderString = "================================================================================";
+
+            //fileWriter.WriteLine("                           Switch Mode Power Supply");
+            fileWriter.WriteLine("                        Button Test and Firmware update");
+            fileWriter.WriteLine("                                  test report");
+            fileWriter.WriteLine("");
+
+            fileWriter.WriteLine("Test Program Name : {0,-30}    ", ViewModel.ModelName);
+            fileWriter.WriteLine("Serial No         : {0,-30}System Time  : {1}", ViewModel.SerialNumber,DateTime.Now.ToString());
+            fileWriter.WriteLine("Model Name        : {0,-30}Elapsed Time : {1}", ViewModel.ModelName, ViewModel.UpdateElpased.ToString(@"hh\:mm\:ss"));
+            fileWriter.WriteLine("LOT Number        :                               Environment  : ");
+            fileWriter.WriteLine("Order Number      :                               Inspector    : {0}", ViewModel.UserID);
+            fileWriter.WriteLine("Customer          :                               Test Result  : {0}", ViewModel.UpdateProcedure.Last().Status == ProcedureStatus.Success? "PASS":"Failed");
+            fileWriter.WriteLine("");
+
+            fileWriter.WriteLine(borderString);
+
+            for (int procedureIndex = 0; procedureIndex < ViewModel.UpdateProcedure.Count; procedureIndex++)
+            {
+                var procedure = ViewModel.UpdateProcedure[procedureIndex];
+                fileWriter.WriteLine("STEP.{0} : {1,-63}{2,6}", procedureIndex, procedure.Name, procedure.Status.ToString());
+                foreach (var logPair in procedure.LogPair)
+                {
+                    fileWriter.WriteLine("{0}:{1}", logPair.Key, logPair.Value);
+                }
+                fileWriter.WriteLine(borderString);
+            }
+
+
+            fileWriter.Close();
+            fileStream.Close();
+        }
+
         public void Print(string msg, bool isError = false)
         {
             DLL.SajetConnect.SajetTransLog(msg, isError);

+ 10 - 10
AwInitilizer/Procedure/BasicInfoUpdateProcedure.cs

@@ -19,7 +19,7 @@ namespace AwInitilizer.Procedure
         {
             if (!await base.CheckAndCreateSocket())
             {
-                LogPair.Add("BaseUpdateSocketConnect","0");
+                LogPair.Add("BaseUpdateSocketConnect","fail");
                 InfoLog += "EVSE connect failed\n";
                 return false;
             }
@@ -29,26 +29,26 @@ namespace AwInitilizer.Procedure
             {
                 InfoLog += "Model Name update failed\n";
                 Logger.Print("Model Name update Failed", isError: true);
-                LogPair.Add("ModelNameWrite", "0");
+                LogPair.Add("ModelNameWrite", "fail");
                 return false;
             }
             else
             {
                 Logger.Print("Model Name write Success");
-                LogPair.Add("ModelNameWrite", "1");
+                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", "0");
+                LogPair.Add("SerialNumberWrite", "fail");
                 return false;
             }
             else
             {
                 Logger.Print("Serial Number write Success");
-                LogPair.Add("SerialNumberWrite", "1");
+                LogPair.Add("SerialNumberWrite", "success");
             }
 
             var setDateTime = DateTime.Now.ToUniversalTime();
@@ -57,26 +57,26 @@ namespace AwInitilizer.Procedure
             {
                 InfoLog += "RTC update failed\n";
                 Logger.Print("RTC update Failed", isError: true);
-                LogPair.Add("RtcUpdate", "0");
+                LogPair.Add("RtcUpdate", "fail");
                 return false;
             }
             else
             {
                 Logger.Print("RTC update write Success");
-                LogPair.Add("RtcUpdate", "1");
+                LogPair.Add("RtcUpdate", "success");
             }
 
             if (!await serialPortocol.SettingChangeConfirm())
             {
                 InfoLog += "Setting save request failed\n";
                 Logger.Print("Setting save Failed", isError: true);
-                LogPair.Add("SettingSave", "0");
+                LogPair.Add("SettingSave", "fail");
                 return false;
             }
             else
             {
                 Logger.Print("Setting save Success");
-                LogPair.Add("SettingSave", "1");
+                LogPair.Add("SettingSave", "success");
             }
 
             Logger.Print("Waiting EVSE reboot...");
@@ -87,7 +87,7 @@ namespace AwInitilizer.Procedure
             {
                 InfoLog += "EVSE not found after reboot\n";
                 Logger.Print("EVSE reboot timeout", isError: true);
-                LogPair.Add("BaseUpdateSocketReConnect", "0");
+                LogPair.Add("BaseUpdateSocketReConnect", "fail");
                 return false;
             }
 

+ 0 - 52
AwInitilizer/Procedure/ButtonStatusCheckPorcedure.cs

@@ -269,58 +269,6 @@ namespace AwInitilizer.Procedure
             return null;
         }
 
-        private async Task<bool> CheckAllIdel()
-        {
-            try
-            {
-                using (Assist.WebClientTimeout webClient = new Assist.WebClientTimeout())
-                {
-                    NameValueCollection parameters = new NameValueCollection();
-                    parameters.Add("opt", "2");
-                    webClient.QueryString = parameters;
-
-                    using (Stream stream = await webClient.OpenReadTaskAsync($"https://{ServerIpAddress}/get_query_action.php"))
-                    // 使用 StreamReader 讀取 stream 內的字元
-                    using (StreamReader reader = new StreamReader(stream))
-                    {
-                        // 將 StreamReader 所讀到的字元轉為 string
-                        string request = reader.ReadToEnd();
-                        InfoLog += $"get status respons:\n{request}\n";
-                        LogPair.Add($"EvseStatus", request);
-                        Regex rx = new Regex("(SystemStatus)\\\": (\\d)");
-                        var matches = rx.Matches(request);
-                        bool isAllPassed = true;
-                        for (int matchIndex = 0; matchIndex < matches.Count; matchIndex++)
-                        {
-                            var match = matches[matchIndex];
-                            if (match.Groups.Count != 3)
-                            {
-                                InfoLog += $"Connector {matchIndex} status string mismatched\n";
-                                Logger.Print($"Connector {matchIndex} status string mismatched", isError: true);
-                                isAllPassed = false;
-                            }
-                            else
-                            {
-                                if (match.Groups[2].Value != "1")
-                                {
-                                    InfoLog += $"Connector {matchIndex} status not Idel\n";
-                                    Logger.Print($"Connector {matchIndex} status not Idel", isError: true);
-                                    isAllPassed = false;
-                                }
-                            }
-                        }
-
-                        return isAllPassed;
-                    }
-                }
-                return true;
-            }
-            catch (Exception e)
-            {
-                return false;
-            }
-        }
-
         private string GetBtnStatusString(int status)
         {
             if (status == 1)

+ 3 - 0
AwInitilizer/Procedure/FirmwareBundleUploadProcedure.cs

@@ -41,9 +41,12 @@ namespace AwInitilizer.Procedure
             {
                 Logger.Print("Wait restart timeout", isError: true);
                 InfoLog += "Wait restart timeout\n";
+                LogPair.Add($"UploadStartWait", "fail");
                 return false;
             }
 
+            LogPair.Add($"UploadStartWait", "0");
+
             //upload firmware
             var updateList = UpdateData.FirmwareUpdateModels;
             //open all file stream

+ 1 - 1
AwInitilizer/Procedure/FourGenModuleCheckProcedure.cs

@@ -20,7 +20,7 @@ namespace AwInitilizer.Procedure
             if (!await base.CheckAndCreateSocket())
             {
                 InfoLog += "EVSE connect failed\n";
-                LogPair.Add("FourgenSocketConnect", "0");
+                LogPair.Add("FourgenSocketConnect", "fail");
                 return false;
             }