Browse Source

1、EDID抄写对数据的过滤:使用正则表达式处理;
2、ACASKey抄写处理。

sat23 3 years ago
parent
commit
0e61bfcc84

+ 18 - 0
SCBC Factory Tools/LResource.Designer.cs

@@ -753,6 +753,24 @@ namespace MOKA_Factory_Tools {
             }
             }
         }
         }
         
         
+        /// <summary>
+        ///   查找类似 The EDID Model Name Format error! 的本地化字符串。
+        /// </summary>
+        internal static string EDIDModelNameFormatError {
+            get {
+                return ResourceManager.GetString("EDIDModelNameFormatError", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 The EDID PID formal error! 的本地化字符串。
+        /// </summary>
+        internal static string EDIDPIDFormatError {
+            get {
+                return ResourceManager.GetString("EDIDPIDFormatError", resourceCulture);
+            }
+        }
+        
         /// <summary>
         /// <summary>
         ///   查找类似 Fail to enter factory  的本地化字符串。
         ///   查找类似 Fail to enter factory  的本地化字符串。
         /// </summary>
         /// </summary>

+ 6 - 0
SCBC Factory Tools/LResource.resx

@@ -348,6 +348,12 @@
   <data name="ECPFormatError" xml:space="preserve">
   <data name="ECPFormatError" xml:space="preserve">
     <value>ECP format error!</value>
     <value>ECP format error!</value>
   </data>
   </data>
+  <data name="EDIDModelNameFormatError" xml:space="preserve">
+    <value>The EDID Model Name Format error!</value>
+  </data>
+  <data name="EDIDPIDFormatError" xml:space="preserve">
+    <value>The EDID PID formal error!</value>
+  </data>
   <data name="EnterFactoryError" xml:space="preserve">
   <data name="EnterFactoryError" xml:space="preserve">
     <value>Fail to enter factory </value>
     <value>Fail to enter factory </value>
   </data>
   </data>

+ 6 - 0
SCBC Factory Tools/LResource.zh-CN.resx

@@ -348,6 +348,12 @@
   <data name="ECPFormatError" xml:space="preserve">
   <data name="ECPFormatError" xml:space="preserve">
     <value>获取的ECP不符合规则</value>
     <value>获取的ECP不符合规则</value>
   </data>
   </data>
+  <data name="EDIDModelNameFormatError" xml:space="preserve">
+    <value>EDID Model Name 格式错误!</value>
+  </data>
+  <data name="EDIDPIDFormatError" xml:space="preserve">
+    <value>EDID PID 格式错误!</value>
+  </data>
   <data name="EnterFactoryError" xml:space="preserve">
   <data name="EnterFactoryError" xml:space="preserve">
     <value>串口指令进工厂失败!</value>
     <value>串口指令进工厂失败!</value>
   </data>
   </data>

+ 1 - 0
SCBC Factory Tools/Models/StructList.cs

@@ -209,6 +209,7 @@ namespace MOKA_Factory_Tools
         public string EDIDPid { get; set; }
         public string EDIDPid { get; set; }
         public string EDIDModelName { get; set; }
         public string EDIDModelName { get; set; }
         public string ACASKey { get; set; }
         public string ACASKey { get; set; }
+        public string ACASKeyMd5 { get; set; }
     }
     }
 
 
     public class FireTVKey
     public class FireTVKey

+ 10 - 0
SCBC Factory Tools/Program.cs

@@ -13,6 +13,16 @@ namespace MOKA_Factory_Tools
         [STAThread]
         [STAThread]
         static void Main()
         static void Main()
         {
         {
+            bool bret = false;
+            bret = System.Text.RegularExpressions.Regex.IsMatch("", @"^[A-Za-z0-9][A-Za-z0-9_ ]{0,12}$");
+            bret = System.Text.RegularExpressions.Regex.IsMatch("1", @"^[A-Za-z0-9][A-Za-z0-9_ ]{0,12}$");
+            bret = System.Text.RegularExpressions.Regex.IsMatch("123", @"^[A-Za-z0-9][A-Za-z0-9_ ]{0,12}$");
+            bret = System.Text.RegularExpressions.Regex.IsMatch("12 3", @"^[A-Za-z0-9][A-Za-z0-9_ ]{0,12}$");
+            bret = System.Text.RegularExpressions.Regex.IsMatch("12_3", @"^[A-Za-z0-9][A-Za-z0-9_ ]{0,12}$");
+            bret = System.Text.RegularExpressions.Regex.IsMatch("_123", @"^[A-Za-z0-9][A-Za-z0-9_ ]{0,12}$");
+            bret = System.Text.RegularExpressions.Regex.IsMatch(" 123", @"^[A-Za-z0-9][A-Za-z0-9_ ]{0,12}$");
+            bret = System.Text.RegularExpressions.Regex.IsMatch("123123- 23123", @"^[A-Za-z0-9][A-Za-z0-9_ -]{0,12}$");
+
             Application.EnableVisualStyles();
             Application.EnableVisualStyles();
             Application.SetCompatibleTextRenderingDefault(false);
             Application.SetCompatibleTextRenderingDefault(false);
             Application.Run(new login());
             Application.Run(new login());

+ 70 - 50
SCBC Factory Tools/Views/OperationPanel.cs

@@ -2275,7 +2275,8 @@ namespace MOKA_Factory_Tools
                     if (CommonMethod.GetKeys(midListNow.host, "ACAS_KEY", SN, midListNow.keytype["ACAS_KEY"], errorDBNow, out string acaskey, out error, orderNow, out string md5))
                     if (CommonMethod.GetKeys(midListNow.host, "ACAS_KEY", SN, midListNow.keytype["ACAS_KEY"], errorDBNow, out string acaskey, out error, orderNow, out string md5))
                     {
                     {
                         keyInfo.ACASKey = acaskey;
                         keyInfo.ACASKey = acaskey;
-                        Log.WriteGetKeyLog("\r\nACAS_KEY=" + keyInfo.ACASKey);
+                        keyInfo.ACASKeyMd5 = md5;
+                        Log.WriteGetKeyLog("\r\nACAS_KEY=" + keyInfo.ACASKey + "\r\nACAS_KEY_MD5=" + keyInfo.ACASKeyMd5);
                     }
                     }
                     else
                     else
                     {
                     {
@@ -3675,44 +3676,53 @@ namespace MOKA_Factory_Tools
             if (WriteEDIDPID.Checked)
             if (WriteEDIDPID.Checked)
             {
             {
                 // 4字节转成整数:0~65535,0x0000~0xffff;
                 // 4字节转成整数:0~65535,0x0000~0xffff;
-                //byte[] EDIDPidData = Encoding.ASCII.GetBytes(keyInfo.EDIDPid);
-                byte[] EDIDPidData = SerialInit.strToToHexByte(keyInfo.EDIDPid);
-                Log.WriteInfoLog("Write EDID Pid...");
-                if (SerialCMD.SetEDIDPid(TVPort, EDIDPidData, out result, out data, out error, SerailDelay))
+                if (Regex.IsMatch(keyInfo.EDIDPid, "^[A-Za-z0-9]{4}$"))
                 {
                 {
-                    SetsuccessStatus(m_writeEDIDPID);
-                    keycontent += "EDIDPid=" + keyInfo.EDIDPid + "&";
-                    Log.WriteInfoLog("Read EDID Pid...");
-                    if (readCheckNow.EDIDPIDReadcheck ? SerialCMD.ReadEDIDPid(TVPort, out result, out data, out error, SerailDelay) : true)
+                    byte[] EDIDPidData = SerialInit.strToToHexByte(keyInfo.EDIDPid);
+                    Log.WriteInfoLog("Write EDID Pid...");
+                    if (SerialCMD.SetEDIDPid(TVPort, EDIDPidData, out result, out data, out error, SerailDelay))
                     {
                     {
-                        if (readCheckNow.EDIDPIDReadcheck)
+                        SetsuccessStatus(m_writeEDIDPID);
+                        keycontent += "EDIDPid=" + keyInfo.EDIDPid + "&";
+                        Log.WriteInfoLog("Read EDID Pid...");
+                        if (readCheckNow.EDIDPIDReadcheck ? SerialCMD.ReadEDIDPid(TVPort, out result, out data, out error, SerailDelay) : true)
                         {
                         {
-                            if (SerialInit.BytesCompare_Base64(data, EDIDPidData))
+                            if (readCheckNow.EDIDPIDReadcheck)
                             {
                             {
-                                SetsuccessStatus(m_readEDIDPID);
-                            }
-                            else
-                            {
-                                SetfailStatus(m_readEDIDPID);
-                                Log.WriteErrorLog(SN + "   contrast EDID PID fail");
-                                MessageBox.Show(LResource.ContrastEDIDPIDError);
-                                goto end;
+                                if (SerialInit.BytesCompare_Base64(data, EDIDPidData))
+                                {
+                                    SetsuccessStatus(m_readEDIDPID);
+                                }
+                                else
+                                {
+                                    SetfailStatus(m_readEDIDPID);
+                                    Log.WriteErrorLog(SN + "   contrast EDID PID fail");
+                                    MessageBox.Show(LResource.ContrastEDIDPIDError);
+                                    goto end;
+                                }
                             }
                             }
                         }
                         }
+                        else
+                        {
+                            SetfailStatus(m_readEDIDPID);
+                            Log.WriteErrorLog(SN + "   read EDID PID fail");
+                            MessageBox.Show(LResource.ReadEDIDPIDError);
+                            goto end;
+                        }
                     }
                     }
                     else
                     else
                     {
                     {
-                        SetfailStatus(m_readEDIDPID);
-                        Log.WriteErrorLog(SN + "   read EDID PID fail");
-                        MessageBox.Show(LResource.ReadEDIDPIDError);
+                        SetfailStatus(m_writeEDIDPID);
+                        Log.WriteErrorLog(SN + "   Write EDID PID fail");
+                        MessageBox.Show(LResource.WriteEDIDPidError);
                         goto end;
                         goto end;
                     }
                     }
                 }
                 }
                 else
                 else
                 {
                 {
                     SetfailStatus(m_writeEDIDPID);
                     SetfailStatus(m_writeEDIDPID);
-                    Log.WriteErrorLog(SN + "   Write EDID PID fail");
-                    MessageBox.Show(LResource.WriteEDIDPidError);
+                    Log.WriteErrorLog(SN + "   The EDID PID Format Error!");
+                    MessageBox.Show(LResource.EDIDPIDFormatError);
                     goto end;
                     goto end;
                 }
                 }
             }
             }
@@ -3720,44 +3730,54 @@ namespace MOKA_Factory_Tools
             // EDID Mode Name抄写;
             // EDID Mode Name抄写;
             if (WriteEDIDName.Checked)
             if (WriteEDIDName.Checked)
             {
             {
-                // 长度为13字节;
-                byte[] EDIDNameData = Encoding.ASCII.GetBytes(keyInfo.EDIDModelName);
-                Log.WriteInfoLog("Write EDID Mode Name...");
-                if (SerialCMD.SetEDIDModelName(TVPort, EDIDNameData, out result, out data, out error, SerailDelay))
+                if (Regex.IsMatch(keyInfo.EDIDModelName, @"^[A-Za-z0-9][A-Za-z0-9_ -]{0,12}$"))
                 {
                 {
-                    SetsuccessStatus(m_writeEDIDName);
-                    keycontent += "EDIDModeName=" + keyInfo.EDIDModelName + "&";
-                    Log.WriteInfoLog("Read EDID Mode Name...");
-                    if (readCheckNow.EDIDModeNameReadcheck ? SerialCMD.ReadEDIDModelName(TVPort, out result, out data, out error, SerailDelay) : true)
+                    // 长度为13字节;
+                    byte[] EDIDNameData = Encoding.ASCII.GetBytes(keyInfo.EDIDModelName);
+                    Log.WriteInfoLog("Write EDID Mode Name...");
+                    if (SerialCMD.SetEDIDModelName(TVPort, EDIDNameData, out result, out data, out error, SerailDelay))
                     {
                     {
-                        if (readCheckNow.EDIDModeNameReadcheck)
+                        SetsuccessStatus(m_writeEDIDName);
+                        keycontent += "EDIDModeName=" + keyInfo.EDIDModelName + "&";
+                        Log.WriteInfoLog("Read EDID Mode Name...");
+                        if (readCheckNow.EDIDModeNameReadcheck ? SerialCMD.ReadEDIDModelName(TVPort, out result, out data, out error, SerailDelay) : true)
                         {
                         {
-                            if (SerialInit.BytesCompare_Base64(data, EDIDNameData))
-                            {
-                                SetsuccessStatus(m_readEDIDName);
-                            }
-                            else
+                            if (readCheckNow.EDIDModeNameReadcheck)
                             {
                             {
-                                SetfailStatus(m_readEDIDName);
-                                Log.WriteErrorLog(SN + "   contrast EDID Mode Name fail");
-                                MessageBox.Show(LResource.ContrastEDIDModelNameError);
-                                goto end;
+                                if (SerialInit.BytesCompare_Base64(data, EDIDNameData))
+                                {
+                                    SetsuccessStatus(m_readEDIDName);
+                                }
+                                else
+                                {
+                                    SetfailStatus(m_readEDIDName);
+                                    Log.WriteErrorLog(SN + "   contrast EDID Mode Name fail");
+                                    MessageBox.Show(LResource.ContrastEDIDModelNameError);
+                                    goto end;
+                                }
                             }
                             }
                         }
                         }
+                        else
+                        {
+                            SetfailStatus(m_readEDIDName);
+                            Log.WriteErrorLog(SN + "   read EDID Mode Name fail");
+                            MessageBox.Show(LResource.ReadEDIDModelNameError);
+                            goto end;
+                        }
                     }
                     }
                     else
                     else
                     {
                     {
-                        SetfailStatus(m_readEDIDPID);
-                        Log.WriteErrorLog(SN + "   read EDID Mode Name fail");
-                        MessageBox.Show(LResource.ReadEDIDModelNameError);
+                        SetfailStatus(m_writeEDIDName);
+                        Log.WriteErrorLog(SN + "   Write EDID Mode Name fail");
+                        MessageBox.Show(LResource.WriteEDIDModelNameError);
                         goto end;
                         goto end;
                     }
                     }
                 }
                 }
                 else
                 else
                 {
                 {
-                    SetfailStatus(m_writeEDIDPID);
-                    Log.WriteErrorLog(SN + "   Write EDID Mode Name fail");
-                    MessageBox.Show(LResource.WriteEDIDModelNameError);
+                    SetfailStatus(m_writeEDIDName);
+                    Log.WriteErrorLog(SN + "   The EDID Model Name Format Error!");
+                    MessageBox.Show(LResource.EDIDModelNameFormatError);
                     goto end;
                     goto end;
                 }
                 }
             }
             }
@@ -3771,7 +3791,7 @@ namespace MOKA_Factory_Tools
                 if (SerialCMD.SetACASKey(TVPort, ACASKeyData, out result, out data, out error, SerailDelay))
                 if (SerialCMD.SetACASKey(TVPort, ACASKeyData, out result, out data, out error, SerailDelay))
                 {
                 {
                     SetsuccessStatus(m_writeACASKey);
                     SetsuccessStatus(m_writeACASKey);
-                    keycontent += "ACACKey=" + keyInfo.ACASKey + "&";
+                    keycontent += "ACACKeyMd5=" + keyInfo.ACASKeyMd5 + "&";
                     Log.WriteInfoLog("Check ACAS Key...");
                     Log.WriteInfoLog("Check ACAS Key...");
                     if (writeCheckNow.ACASKeyCheckcheck ? SerialCMD.CheckACASKey(TVPort, out result, out data, out error, SerailDelay) : true)
                     if (writeCheckNow.ACASKeyCheckcheck ? SerialCMD.CheckACASKey(TVPort, out result, out data, out error, SerailDelay) : true)
                     {
                     {
@@ -3781,7 +3801,7 @@ namespace MOKA_Factory_Tools
                         {
                         {
                             if (readCheckNow.ACASIDReadcheck)
                             if (readCheckNow.ACASIDReadcheck)
                             {
                             {
-                                if (SerialInit.BytesCompare_Base64(data, ACASKeyData))
+                                if (CommonMethod.CompareMD5(ACASKeyData, data))
                                 {
                                 {
                                     SetsuccessStatus(m_readACASKey);
                                     SetsuccessStatus(m_readACASKey);
                                 }
                                 }