Procházet zdrojové kódy

修复KeyInfo数据结构中,类变量全为null导致的Bug。

sat23 před 3 roky
rodič
revize
24229b44af

+ 16 - 8
FactoryTool_CShare/Business/CommonMethod.cs

@@ -2431,7 +2431,7 @@ namespace MOKA_Factory_Tools
             dic.Add("FSN", sn);
 
             // 耐压值;
-            if ( returnObject != null && returnObject.Length > 0 && returnObject.Contains("Hightpot"))
+            if (returnObject != null && returnObject.Length > 0 && returnObject.Contains("Hightpot"))
             {
                 // 删除头尾[];
                 returnObject = returnObject.Remove(0, 1);
@@ -2440,10 +2440,18 @@ namespace MOKA_Factory_Tools
                 JObject jObject = JObject.Parse(returnObject);
                 string hightpot = JSON_SeleteNode(jObject, "Hightpot");
                 int pos = hightpot.LastIndexOf('/');
-                hightpot = hightpot.Substring(pos);
-                pos = hightpot.IndexOf("mA");
-                dic.Add("AC_I", hightpot.Substring(0, pos + 2));
-                dic.Add("DC_R", hightpot.Substring(pos + 2));
+                if (pos != -1)
+                {
+                    hightpot = hightpot.Substring(pos+1);
+                    pos = hightpot.IndexOf("mA");
+                    dic.Add("AC_I", hightpot.Substring(0, pos + 2));
+                    dic.Add("DC_R", hightpot.Substring(pos + 2));
+                }
+                else
+                {
+                    dic.Add("AC_I", "");
+                    dic.Add("DC_R", "");
+                }
             }
             else
             {
@@ -2580,11 +2588,11 @@ namespace MOKA_Factory_Tools
             try
             {
                 // 以DSN命名文件;
-                if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory+ @"\Kayla"))
+                if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory+ "Kayla"))
                 {
-                    Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + @"\Kayla");
+                    Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "Kayla");
                 }
-                string savefile = string.Format("{0}\\{1}\\{2}.csv", AppDomain.CurrentDomain.BaseDirectory, "Kayla", key.DSN);
+                string savefile = string.Format("{0}Kayla\\{1}.csv", AppDomain.CurrentDomain.BaseDirectory, key.DSN.data);
                 using (System.IO.StreamWriter file = new System.IO.StreamWriter(savefile, false))
                 {
                     foreach (KeyValuePair<string, string> kvp in dic)

+ 28 - 28
FactoryTool_CShare/Models/StructList.cs

@@ -273,35 +273,35 @@ namespace MOKA_Factory_Tools
 
     public class KeyInfo
     {
-        public KeyData DID { get; set; }
-        public KeyData Mac { get; set; }
-        public KeyData HDCP { get; set; }
-        public KeyData HDCP22 { get; set; }
-        public KeyData ESN { get; set; }
-        public KeyData WiDi { get; set; }
-        public KeyData Widevine { get; set; }
-        public KeyData CI_plus { get; set; }
-        public KeyData Attestation { get; set; }
-        public KeyData AttestationMD5 { get; set; }
-        public KeyData MGK { get; set; }
-        public KeyData Fairplay { get; set; }
-        public KeyData DSN { get; set; }
-        public KeyData WiFi_MAC { get; set; }
-        public KeyData BT_MAC { get; set; }
-        public KeyData LEK { get; set; }
-        public KeyData PEK { get; set; }
-        public KeyData Playready { get; set; }
-        public KeyData Hashkey { get; set; }
-        public KeyData ECP { get; set; }
-        public KeyData YouTube_KEY { get; set; }
-        public KeyData EDIDPid { get; set; }
-        public KeyData EDIDModelName { get; set; }
-        public KeyData ACASKey_Data { get; set; }
-        public KeyData ACASKey_Tool { get; set; }
-        public KeyData ACASKey_DataMd5 { get; set; }
-        public KeyData ACASKey_ToolMd5 { get; set; }
+        public KeyData DID = new KeyData();
+        public KeyData Mac = new KeyData();
+        public KeyData HDCP = new KeyData();
+        public KeyData HDCP22 = new KeyData();
+        public KeyData ESN = new KeyData();
+        public KeyData WiDi = new KeyData();
+        public KeyData Widevine = new KeyData();
+        public KeyData CI_plus = new KeyData();
+        public KeyData Attestation = new KeyData();
+        public KeyData AttestationMD5 = new KeyData();
+        public KeyData MGK = new KeyData();
+        public KeyData Fairplay = new KeyData();
+        public KeyData DSN = new KeyData();
+        public KeyData WiFi_MAC = new KeyData();
+        public KeyData BT_MAC = new KeyData();
+        public KeyData LEK = new KeyData();
+        public KeyData PEK = new KeyData();
+        public KeyData Playready = new KeyData();
+        public KeyData Hashkey = new KeyData();
+        public KeyData ECP = new KeyData();
+        public KeyData YouTube_KEY = new KeyData();
+        public KeyData EDIDPid = new KeyData();
+        public KeyData EDIDModelName = new KeyData();
+        public KeyData ACASKey_Data = new KeyData();
+        public KeyData ACASKey_Tool = new KeyData();
+        public KeyData ACASKey_DataMd5 = new KeyData();
+        public KeyData ACASKey_ToolMd5 = new KeyData();
         #region Kayla所需数据;
-        public KeyData _PSN { get; set; } 
+        public KeyData _PSN = new KeyData();
         #endregion
     }
 

+ 105 - 105
FactoryTool_CShare/Views/OperationPanel.cs

@@ -854,64 +854,64 @@ namespace MOKA_Factory_Tools
 
                         WriteDID.Checked = (keyInfo.DID.Length > 0 && m_writedid.Text != LResource.Skip);
                         if (WriteDID.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB DeviceID=" + keyInfo.DID);
+                            Log.WriteGetKeyLog("\r\nLocal DB DeviceID=" + keyInfo.DID.data);
                         WriteMac.Checked = (keyInfo.Mac.Length > 0 && m_writemac.Text != LResource.Skip);
                         if (WriteMac.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB Mac=" + keyInfo.Mac);
+                            Log.WriteGetKeyLog("\r\nLocal DB Mac=" + keyInfo.Mac.data);
                         WriteHDCP.Checked = (keyInfo.HDCP.Length > 0 && m_writehdcp.Text != LResource.Skip);
                         if (WriteHDCP.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB HDCP=" + keyInfo.HDCP);
+                            Log.WriteGetKeyLog("\r\nLocal DB HDCP=" + keyInfo.HDCP.data);
                         WriteHDCP22.Checked = (keyInfo.HDCP22.Length > 0 && m_writehdcp22.Text != LResource.Skip);
                         if (WriteHDCP22.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB HDCP22=" + keyInfo.HDCP22);
+                            Log.WriteGetKeyLog("\r\nLocal DB HDCP22=" + keyInfo.HDCP22.data);
                         WriteWiDi.Checked = (keyInfo.WiDi.Length > 0 && m_writewidi.Text != LResource.Skip);
                         if (WriteWiDi.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB WiDi=" + keyInfo.WiDi);
+                            Log.WriteGetKeyLog("\r\nLocal DB WiDi=" + keyInfo.WiDi.data);
                         WriteWidevine.Checked = (keyInfo.Widevine.Length > 0 && m_writewidevine.Text != LResource.Skip);
                         if (WriteWidevine.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB Widevine=" + keyInfo.Widevine);
+                            Log.WriteGetKeyLog("\r\nLocal DB Widevine=" + keyInfo.Widevine.data);
                         WriteESN.Checked = (keyInfo.ESN.Length > 0 && m_writeesn.Text != LResource.Skip);
                         if (WriteESN.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB ESN=" + keyInfo.ESN);
+                            Log.WriteGetKeyLog("\r\nLocal DB ESN=" + keyInfo.ESN.data);
                         WriteCiplus.Checked = (keyInfo.CI_plus.Length > 0 && m_writeci.Text != LResource.Skip);
                         if (WriteCiplus.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB Ci=" + keyInfo.CI_plus);
+                            Log.WriteGetKeyLog("\r\nLocal DB Ci=" + keyInfo.CI_plus.data);
                         WriteMGK.Checked = (keyInfo.MGK.Length > 0 && m_writeMGK.Text != LResource.Skip);
                         if (WriteMGK.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB MGK=" + keyInfo.MGK);
+                            Log.WriteGetKeyLog("\r\nLocal DB MGK=" + keyInfo.MGK.data);
                         WriteAttestation.Checked = (keyInfo.Attestation.Length > 0 && m_writeattestation.Text != LResource.Skip);
                         if (WriteAttestation.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB Attestation=" + keyInfo.Attestation);
+                            Log.WriteGetKeyLog("\r\nLocal DB Attestation=" + keyInfo.Attestation.data);
                         WriteFairplay.Checked = (keyInfo.Fairplay.Length > 0 && m_writeFairplay.Text != LResource.Skip);
                         if (WriteFairplay.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB Fairplay=" + keyInfo.Fairplay);
+                            Log.WriteGetKeyLog("\r\nLocal DB Fairplay=" + keyInfo.Fairplay.data);
                         WriteECP.Checked = (keyInfo.ECP.Length > 0 && m_writeECP.Text != LResource.Skip);
                         if (WriteECP.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB ECP=" + keyInfo.ECP);
+                            Log.WriteGetKeyLog("\r\nLocal DB ECP=" + keyInfo.ECP.data);
                         WriteWifiMac.Checked = (keyInfo.WiFi_MAC.Length > 0 && m_writeWifiMac.Text != LResource.Skip);
                         if (WriteWifiMac.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB WifiMac=" + keyInfo.WiFi_MAC);
+                            Log.WriteGetKeyLog("\r\nLocal DB WifiMac=" + keyInfo.WiFi_MAC.data);
                         WriteBTMac.Checked = (keyInfo.BT_MAC.Length > 0 && m_writeBTMac.Text != LResource.Skip);
                         if (WriteBTMac.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB BTMac=" + keyInfo.BT_MAC);
+                            Log.WriteGetKeyLog("\r\nLocal DB BTMac=" + keyInfo.BT_MAC.data);
                         WriteLEK.Checked = (keyInfo.LEK.Length > 0 && m_writeLEK.Text != LResource.Skip);
                         if (WriteLEK.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB LEK=" + keyInfo.LEK);
+                            Log.WriteGetKeyLog("\r\nLocal DB LEK=" + keyInfo.LEK.data);
                         WritePEK.Checked = (keyInfo.PEK.Length > 0 && m_writePEK.Text != LResource.Skip);
                         if (WritePEK.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB PEK=" + keyInfo.PEK);
+                            Log.WriteGetKeyLog("\r\nLocal DB PEK=" + keyInfo.PEK.data);
                         WritePlayready.Checked = (keyInfo.Playready.Length > 0 && m_writePlayready.Text != LResource.Skip);
                         if (WritePlayready.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB Playready=" + keyInfo.Playready);
+                            Log.WriteGetKeyLog("\r\nLocal DB Playready=" + keyInfo.Playready.data);
                         WriteHash.Checked = (keyInfo.Hashkey.Length > 0 && m_writeHash.Text != LResource.Skip);
                         if (WriteHash.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB Hashkey=" + keyInfo.Hashkey);
+                            Log.WriteGetKeyLog("\r\nLocal DB Hashkey=" + keyInfo.Hashkey.data);
                         WriteYouTube.Checked = (keyInfo.YouTube_KEY.Length > 0 && m_writeYouTube.Text != LResource.Skip);
                         if (WriteYouTube.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB YouTube_KEY=" + keyInfo.YouTube_KEY);
+                            Log.WriteGetKeyLog("\r\nLocal DB YouTube_KEY=" + keyInfo.YouTube_KEY.data);
                         WriteACASKey.Checked = (keyInfo.ACASKey_Data.Length > 0 && m_writeACASKey.Text != LResource.Skip);
                         if (WriteACASKey.Checked)
-                            Log.WriteGetKeyLog("\r\nLocal DB ACAS_KEY=" + keyInfo.ACASKey_Data);
+                            Log.WriteGetKeyLog("\r\nLocal DB ACAS_KEY=" + keyInfo.ACASKey_Data.data);
                         WriteDSN.Checked = midListNow.keytype == null ? false : midListNow.keytype.ContainsKey("DSN") && m_writeDSN.Text != LResource.Skip;
                         WritePSN.Checked = FunctionSettingNow.BarcodeWrite;
 
@@ -1533,73 +1533,73 @@ namespace MOKA_Factory_Tools
                 reportdata += "sn=" + SN + "&";
 
             if (WriteDID.Checked)
-                reportdata += "deviceid=" + keyInfo.DID + "&";
+                reportdata += "deviceid=" + keyInfo.DID.data + "&";
 
             if (WriteMac.Checked)
-                reportdata += "mac=" + keyInfo.Mac + "&";
+                reportdata += "mac=" + keyInfo.Mac.data + "&";
 
             if (WriteWifiMac.Checked)
-                reportdata += "wifimac=" + keyInfo.WiFi_MAC + "&";
+                reportdata += "wifimac=" + keyInfo.WiFi_MAC.data + "&";
 
             if (WriteBTMac.Checked)
-                reportdata += "btmac=" + keyInfo.BT_MAC + "&";
+                reportdata += "btmac=" + keyInfo.BT_MAC.data + "&";
 
             if (WriteHDCP.Checked)
-                reportdata += "hdcpkey=" + keyInfo.HDCP + "&";
+                reportdata += "hdcpkey=" + keyInfo.HDCP.data + "&";
 
             if (WriteHDCP22.Checked)
-                reportdata += "hdcpkey2=" + keyInfo.HDCP22 + "&";
+                reportdata += "hdcpkey2=" + keyInfo.HDCP22.data + "&";
 
             if (WriteESN.Checked)
-                reportdata += "netfilxesn=" + keyInfo.ESN + "&";
+                reportdata += "netfilxesn=" + keyInfo.ESN.data + "&";
 
             if (WriteWiDi.Checked)
-                reportdata += "widi=" + keyInfo.WiDi + "&";
+                reportdata += "widi=" + keyInfo.WiDi.data + "&";
 
             if (WritePEK.Checked)
-                reportdata += "pek=" + keyInfo.PEK + "&";
+                reportdata += "pek=" + keyInfo.PEK.data + "&";
 
             if (WriteYouTube.Checked)
-                reportdata += "youtubekey=" + keyInfo.YouTube_KEY + "&";
+                reportdata += "youtubekey=" + keyInfo.YouTube_KEY.data + "&";
 
             if (WriteWidevine.Checked)
-                reportdata += "widevine=" + keyInfo.Widevine + "&";
+                reportdata += "widevine=" + keyInfo.Widevine.data + "&";
 
             if (WriteCiplus.Checked)
-                reportdata += "cikey=" + keyInfo.CI_plus + "&";
+                reportdata += "cikey=" + keyInfo.CI_plus.data + "&";
 
             if (WriteAttestation.Checked)
-                reportdata += "attestationmd5=" + keyInfo.AttestationMD5 + "&";
+                reportdata += "attestationmd5=" + keyInfo.AttestationMD5.data + "&";
 
             if (WriteMGK.Checked)
-                reportdata += "mgk=" + keyInfo.MGK + "&";
+                reportdata += "mgk=" + keyInfo.MGK.data + "&";
 
             if (WriteFairplay.Checked)
-                reportdata += "fairplay=" + keyInfo.Fairplay + "&";
+                reportdata += "fairplay=" + keyInfo.Fairplay.data + "&";
 
             if (WriteECP.Checked)
-                reportdata += "ecp=" + keyInfo.ECP + "&";
+                reportdata += "ecp=" + keyInfo.ECP.data + "&";
 
             if (WriteLEK.Checked)
-                reportdata += "lek=" + keyInfo.LEK + "&";
+                reportdata += "lek=" + keyInfo.LEK.data + "&";
 
             if (WritePlayready.Checked)
-                reportdata += "playready=" + keyInfo.Playready + "&";
+                reportdata += "playready=" + keyInfo.Playready.data + "&";
 
             if (WriteHash.Checked)
-                reportdata += "hash=" + keyInfo.Hashkey + "&";
+                reportdata += "hash=" + keyInfo.Hashkey.data + "&";
 
             if (WriteEDIDPID.Checked)
-                reportdata += "EDIDPid=" + keyInfo.EDIDPid + "&";
+                reportdata += "EDIDPid=" + keyInfo.EDIDPid.data + "&";
 
             if (WriteEDIDName.Checked)
-                reportdata += "EDIDModeName=" + keyInfo.EDIDModelName + "&";
+                reportdata += "EDIDModeName=" + keyInfo.EDIDModelName.data + "&";
 
             if (WriteACASKey.Checked)
-                reportdata += "acas_tool=" + keyInfo.ACASKey_Tool + "&";
+                reportdata += "acas_tool=" + keyInfo.ACASKey_Tool.data + "&";
 
             if (WriteACASKey.Checked)
-                reportdata += "acas_data=" + keyInfo.ACASKey_Data + "&";
+                reportdata += "acas_data=" + keyInfo.ACASKey_Data.data + "&";
 
             if (ProjectIDNote.Text != LResource.SkipCovering)
                 reportdata += "projectid=" + ProjectIDText.Text + "&";
@@ -2404,8 +2404,8 @@ namespace MOKA_Factory_Tools
                         keyInfo.ACASKey_Tool.data = acaskey_tool;
                         keyInfo.ACASKey_ToolMd5.data = acaskey_toolmd5;
 
-                        Log.WriteGetKeyLog("\r\nACAS_KEY_DATA=" + keyInfo.ACASKey_Data + "\r\nACAS_KEY_MD5=" + keyInfo.ACASKey_DataMd5);
-                        Log.WriteGetKeyLog("\r\nACAS_KEY_TOOL=" + keyInfo.ACASKey_Tool + "\r\nACAS_KEY_TOOLMD5=" + keyInfo.ACASKey_ToolMd5);
+                        Log.WriteGetKeyLog("\r\nACAS_KEY_DATA=" + keyInfo.ACASKey_Data.data + "\r\nACAS_KEY_MD5=" + keyInfo.ACASKey_DataMd5);
+                        Log.WriteGetKeyLog("\r\nACAS_KEY_TOOL=" + keyInfo.ACASKey_Tool.data + "\r\nACAS_KEY_TOOLMD5=" + keyInfo.ACASKey_ToolMd5);
                     }
                     else
                     {
@@ -2508,13 +2508,13 @@ namespace MOKA_Factory_Tools
             //DID抄写
             if (WriteDID.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.DID))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.DID.data))
                 {
-                    ErrMsg = string.Format("DID format error!\r\n{0}", keyInfo.DID);
+                    ErrMsg = string.Format("DID format error!\r\n{0}", keyInfo.DID.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
-                byte[] DIDData = Encoding.ASCII.GetBytes(keyInfo.DID);
+                byte[] DIDData = Encoding.ASCII.GetBytes(keyInfo.DID.data);
                 Log.WriteInfoLog("Write DID...");
                 if (SerialCMD.SetDeviceID(TVPort, DIDData, out result, out data, out error, SerailDelay))
                 {
@@ -2763,13 +2763,13 @@ namespace MOKA_Factory_Tools
             //HDCP KEY抄写
             if (WriteHDCP.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.HDCP))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.HDCP.data))
                 {
-                    ErrMsg = string.Format("HDCP format error!\r\n{0}", keyInfo.HDCP);
+                    ErrMsg = string.Format("HDCP format error!\r\n{0}", keyInfo.HDCP.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
-                byte[] HDCPData = SerialInit.HexToByte(keyInfo.HDCP);
+                byte[] HDCPData = SerialInit.HexToByte(keyInfo.HDCP.data);
                 Log.WriteInfoLog("Write HDCP...");
                 if (SerialCMD.SetHDCPKey(TVPort, HDCPData, out result, out data, out error, SerailDelay))
                 {
@@ -2827,14 +2827,14 @@ namespace MOKA_Factory_Tools
             //HDCP22 KEY抄写
             if (WriteHDCP22.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.HDCP22))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.HDCP22.data))
                 {
-                    ErrMsg = string.Format("HDCP22 format error!\r\n{0}", keyInfo.HDCP22);
+                    ErrMsg = string.Format("HDCP22 format error!\r\n{0}", keyInfo.HDCP22.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
 
-                byte[] HDCP22Data = SerialInit.HexToByte(keyInfo.HDCP22);
+                byte[] HDCP22Data = SerialInit.HexToByte(keyInfo.HDCP22.data);
                 Log.WriteInfoLog("Write HDCP22...");
                 if (SerialCMD.SetHDCPKey22(TVPort, HDCP22Data, out result, out data, out error, SerailDelay))
                 {
@@ -2891,14 +2891,14 @@ namespace MOKA_Factory_Tools
             //ESN KEY抄写
             if (WriteESN.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.ESN))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.ESN.data))
                 {
-                    ErrMsg = string.Format("ESN format error!\r\n{0}", keyInfo.ESN);
+                    ErrMsg = string.Format("ESN format error!\r\n{0}", keyInfo.ESN.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
 
-                byte[] ESNData = SerialInit.HexToByte(keyInfo.ESN);
+                byte[] ESNData = SerialInit.HexToByte(keyInfo.ESN.data);
                 Log.WriteInfoLog("Write ESN...");
                 if (SerialCMD.SetNetflixESN(TVPort, ESNData, out result, out data, out error, SerailDelay))
                 {
@@ -2954,14 +2954,14 @@ namespace MOKA_Factory_Tools
             //WiDi KEY抄写
             if (WriteWiDi.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.WiDi))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.WiDi.data))
                 {
-                    ErrMsg = string.Format("WiDi format error!\r\n{0}", keyInfo.WiDi);
+                    ErrMsg = string.Format("WiDi format error!\r\n{0}", keyInfo.WiDi.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
 
-                byte[] WiDiData = SerialInit.HexToByte(keyInfo.WiDi);
+                byte[] WiDiData = SerialInit.HexToByte(keyInfo.WiDi.data);
                 Log.WriteInfoLog("Write WiDi...");
                 if (SerialCMD.SetWidi(TVPort, WiDiData, out result, out data, out error, SerailDelay))
                 {
@@ -3018,14 +3018,14 @@ namespace MOKA_Factory_Tools
             //PEK抄写
             if (WritePEK.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.PEK))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.PEK.data))
                 {
-                    ErrMsg = string.Format("PEK format error!\r\n{0}", keyInfo.PEK);
+                    ErrMsg = string.Format("PEK format error!\r\n{0}", keyInfo.PEK.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
 
-                byte[] PEKData = SerialInit.HexToByte(keyInfo.PEK);
+                byte[] PEKData = SerialInit.HexToByte(keyInfo.PEK.data);
                 Log.WriteInfoLog("Write PEK...");
                 if (SerialCMD.SetFireTVPEK(TVPort, PEKData, out result, out data, out error, SerailDelay))
                 {
@@ -3082,14 +3082,14 @@ namespace MOKA_Factory_Tools
             //Youtube key抄写
             if (WriteYouTube.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.YouTube_KEY))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.YouTube_KEY.data))
                 {
-                    ErrMsg = string.Format("YouTube format error!\r\n{0}", keyInfo.YouTube_KEY);
+                    ErrMsg = string.Format("YouTube format error!\r\n{0}", keyInfo.YouTube_KEY.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
 
-                byte[] YouTubeData = SerialInit.HexToByte(keyInfo.YouTube_KEY);
+                byte[] YouTubeData = SerialInit.HexToByte(keyInfo.YouTube_KEY.data);
                 Log.WriteInfoLog("Write YouTube key...");
                 if (SerialCMD.SetFireTVYoutube(TVPort, YouTubeData, out result, out data, out error, SerailDelay))
                 {
@@ -3146,14 +3146,14 @@ namespace MOKA_Factory_Tools
             //Widevine KEY抄写
             if (WriteWidevine.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.Widevine))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.Widevine.data))
                 {
-                    ErrMsg = string.Format("Widevine format error!\r\n{0}", keyInfo.Widevine);
+                    ErrMsg = string.Format("Widevine format error!\r\n{0}", keyInfo.Widevine.data);
                     Log.WriteErrorLog(ErrMsg);
                     //MessageBox.Show(LResource.WidevineFormatError + "\r\n" + keyInfo.Widevine);
                     goto end;
                 }
-                byte[] WidevineData = SerialInit.HexToByte(keyInfo.Widevine);
+                byte[] WidevineData = SerialInit.HexToByte(keyInfo.Widevine.data);
                 Log.WriteInfoLog("Write Widevine...");
                 if (SerialCMD.SetWidevine(TVPort, WidevineData, out result, out data, out error, SerailDelay))
                 {
@@ -3217,14 +3217,14 @@ namespace MOKA_Factory_Tools
             //CI plus KEY抄写
             if (WriteCiplus.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.CI_plus))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.CI_plus.data))
                 {
-                    ErrMsg = string.Format("CI_plus format error!\r\n{0}", keyInfo.CI_plus);
+                    ErrMsg = string.Format("CI_plus format error!\r\n{0}", keyInfo.CI_plus.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
 
-                byte[] CiplusData = SerialInit.HexToByte(keyInfo.CI_plus);
+                byte[] CiplusData = SerialInit.HexToByte(keyInfo.CI_plus.data);
                 Log.WriteInfoLog("Write CI plus...");
                 if (SerialCMD.SetCiKey(TVPort, CiplusData, out result, out data, out error, SerailDelay))
                 {
@@ -3288,13 +3288,13 @@ namespace MOKA_Factory_Tools
             //Attestation KEY抄写
             if (WriteAttestation.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.Attestation))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.Attestation.data))
                 {
-                    ErrMsg = string.Format("Attestation key format error!\r\n{0}", keyInfo.Attestation);
+                    ErrMsg = string.Format("Attestation key format error!\r\n{0}", keyInfo.Attestation.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
-                byte[] AttestationData = SerialInit.HexToByte(keyInfo.Attestation);
+                byte[] AttestationData = SerialInit.HexToByte(keyInfo.Attestation.data);
                 Log.WriteInfoLog("Write Attestation key...");
                 if (SerialCMD.SetAttestationKey(TVPort, AttestationData, out result, out data, out error, SerailDelay))
                 {
@@ -3359,13 +3359,13 @@ namespace MOKA_Factory_Tools
             //MGK KEY抄写
             if (WriteMGK.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.MGK))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.MGK.data))
                 {
-                    ErrMsg = string.Format("MGK format error!\r\n{0}", keyInfo.MGK);
+                    ErrMsg = string.Format("MGK format error!\r\n{0}", keyInfo.MGK.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
-                byte[] MGKData = SerialInit.HexToByte(keyInfo.MGK);
+                byte[] MGKData = SerialInit.HexToByte(keyInfo.MGK.data);
                 Log.WriteInfoLog("Write MGK...");
                 if (SerialCMD.SetMGKKey(TVPort, MGKData, out result, out data, out error, SerailDelay))
                 {
@@ -3431,13 +3431,13 @@ namespace MOKA_Factory_Tools
             //Fairplay KEY抄写
             if (WriteFairplay.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.Fairplay))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.Fairplay.data))
                 {
-                    ErrMsg = string.Format("Fairplay format error!\r\n{0}", keyInfo.Fairplay);
+                    ErrMsg = string.Format("Fairplay format error!\r\n{0}", keyInfo.Fairplay.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
-                byte[] FairplayData = SerialInit.HexToByte(keyInfo.Fairplay);
+                byte[] FairplayData = SerialInit.HexToByte(keyInfo.Fairplay.data);
                 Log.WriteInfoLog("Write Fairplay...");
                 if (SerialCMD.SetFireTVFairplay(TVPort, FairplayData, out result, out data, out error, SerailDelay))
                 {
@@ -3494,13 +3494,13 @@ namespace MOKA_Factory_Tools
             //ECP KEY抄写
             if (WriteECP.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.ECP))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.ECP.data))
                 {
-                    ErrMsg = string.Format("ECP format error!\r\n{0}", keyInfo.ECP);
+                    ErrMsg = string.Format("ECP format error!\r\n{0}", keyInfo.ECP.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
-                byte[] ECPData = SerialInit.HexToByte(keyInfo.ECP);
+                byte[] ECPData = SerialInit.HexToByte(keyInfo.ECP.data);
                 Log.WriteInfoLog("Write ECP...");
                 if (SerialCMD.SetECP(TVPort, ECPData, out result, out data, out error, SerailDelay))
                 {
@@ -3557,13 +3557,13 @@ namespace MOKA_Factory_Tools
             //LEK抄写
             if (WriteLEK.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.LEK))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.LEK.data))
                 {
-                    ErrMsg = string.Format("LEK format error!\r\n{0}", keyInfo.LEK);
+                    ErrMsg = string.Format("LEK format error!\r\n{0}", keyInfo.LEK.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
-                byte[] LEKData = SerialInit.HexToByte(keyInfo.LEK);
+                byte[] LEKData = SerialInit.HexToByte(keyInfo.LEK.data);
                 Log.WriteInfoLog("Write LEK...");
                 if (SerialCMD.SetFireTVLEK(TVPort, LEKData, out result, out data, out error, SerailDelay))
                 {
@@ -3620,13 +3620,13 @@ namespace MOKA_Factory_Tools
             //Playready抄写
             if (WritePlayready.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.Playready))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.Playready.data))
                 {
-                    ErrMsg = string.Format("Playready format error!\r\n{0}", keyInfo.Playready);
+                    ErrMsg = string.Format("Playready format error!\r\n{0}", keyInfo.Playready.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
-                byte[] PlayreadyData = SerialInit.HexToByte(keyInfo.Playready);
+                byte[] PlayreadyData = SerialInit.HexToByte(keyInfo.Playready.data);
                 Log.WriteInfoLog("Write Playready...");
                 if (SerialCMD.SetFireTVPlayready(TVPort, PlayreadyData, out result, out data, out error, SerailDelay))
                 {
@@ -3691,13 +3691,13 @@ namespace MOKA_Factory_Tools
             //Hash抄写
             if (WriteHash.Checked)
             {
-                if (!CommonMethod.IsNumberAndWord(keyInfo.Hashkey))
+                if (!CommonMethod.IsNumberAndWord(keyInfo.Hashkey.data))
                 {
-                    ErrMsg = string.Format("Hash format error!\r\n{0}", keyInfo.Hashkey);
+                    ErrMsg = string.Format("Hash format error!\r\n{0}", keyInfo.Hashkey.data);
                     Log.WriteErrorLog(ErrMsg);
                     goto end;
                 }
-                byte[] HashData = SerialInit.HexToByte(keyInfo.Hashkey);
+                byte[] HashData = SerialInit.HexToByte(keyInfo.Hashkey.data);
                 Log.WriteInfoLog("Write Hash...");
                 if (SerialCMD.SetFireTVHashkey(TVPort, HashData, out result, out data, out error, SerailDelay))
                 {
@@ -3871,9 +3871,9 @@ namespace MOKA_Factory_Tools
             if (WriteEDIDPID.Checked)
             {
                 // 4字节转成整数:0~65535,0x0000~0xffff;
-                if (Regex.IsMatch(keyInfo.EDIDPid, "^[A-Za-z0-9]{4}$"))
+                if (Regex.IsMatch(keyInfo.EDIDPid.data, "^[A-Za-z0-9]{4}$"))
                 {
-                    byte[] EDIDPidData = SerialInit.strToToHexByte(keyInfo.EDIDPid);
+                    byte[] EDIDPidData = SerialInit.strToToHexByte(keyInfo.EDIDPid.data);
                     Log.WriteInfoLog("Write EDID Pid...");
                     if (SerialCMD.SetEDIDPid(TVPort, EDIDPidData, out result, out data, out error, SerailDelay))
                     {
@@ -3926,10 +3926,10 @@ namespace MOKA_Factory_Tools
             // EDID Mode Name抄写;
             if (WriteEDIDName.Checked)
             {
-                if (Regex.IsMatch(keyInfo.EDIDModelName, @"^[A-Za-z0-9][A-Za-z0-9_ -]{0,12}$"))
+                if (Regex.IsMatch(keyInfo.EDIDModelName.data, @"^[A-Za-z0-9][A-Za-z0-9_ -]{0,12}$"))
                 {
                     // 长度为13字节;
-                    byte[] EDIDNameData = Encoding.ASCII.GetBytes(keyInfo.EDIDModelName);
+                    byte[] EDIDNameData = Encoding.ASCII.GetBytes(keyInfo.EDIDModelName.data);
                     Log.WriteInfoLog("Write EDID Mode Name...");
                     if (SerialCMD.SetEDIDModelName(TVPort, EDIDNameData, out result, out data, out error, SerailDelay))
                     {
@@ -3986,7 +3986,7 @@ namespace MOKA_Factory_Tools
                 // 2.将tool先抄写再抄写data;
                 Log.WriteInfoLog("Write ACAC Key...");
 #if false
-                byte[] ACASKeyTool = SerialInit.HexToByte(keyInfo.ACASKey_Tool);
+                byte[] ACASKeyTool = SerialInit.HexToByte(keyInfo.ACASKey_Tool.data);
                 if (SerialCMD.SetACASKeyTool(TVPort, ACASKeyTool, out result, out data, out error, SerailDelay))
                 {
                     //SetsuccessStatus(m_writeACASKey);
@@ -4036,7 +4036,7 @@ namespace MOKA_Factory_Tools
                     goto end;
                 }
 #endif
-                byte[] ACASKeyData = SerialInit.HexToByte(keyInfo.ACASKey_Data);
+                byte[] ACASKeyData = SerialInit.HexToByte(keyInfo.ACASKey_Data.data);
                 if (SerialCMD.SetACASKeyData(TVPort, ACASKeyData, out result, out data, out error, SerailDelay))
                 {
                     SetsuccessStatus(m_writeACASKey);
@@ -4617,13 +4617,13 @@ namespace MOKA_Factory_Tools
             {
                 if (FunctionSettingNow.MITVEnable)
                 {// 小米的DSN抄写不用这么多处理;
-                    if (!CommonMethod.IsNumberAndWord(keyInfo.DSN))
+                    if (!CommonMethod.IsNumberAndWord(keyInfo.DSN.data))
                     {
-                        ErrMsg = string.Format("DSN format error!\r\n{0}", keyInfo.DSN);
+                        ErrMsg = string.Format("DSN format error!\r\n{0}", keyInfo.DSN.data);
                         Log.WriteErrorLog(ErrMsg);
                         goto end;
                     }
-                    byte[] DSNData = System.Text.Encoding.ASCII.GetBytes(keyInfo.DSN);
+                    byte[] DSNData = System.Text.Encoding.ASCII.GetBytes(keyInfo.DSN.data);
                     Log.WriteInfoLog("Write DSN...");
                     if (SerialCMD.SetFireTVDSN(TVPort, DSNData, out result, out data, out error, SerailDelay))
                     {
@@ -4708,13 +4708,13 @@ namespace MOKA_Factory_Tools
                             if (CommonMethod.GetFireTVDsn(midListNow.host, orderNow, Encoding.ASCII.GetString(data), SN, psn, out string dsn, out error_psn, errorDBNow))
                             {
                                 keyInfo.DSN.data = dsn;
-                                if (!CommonMethod.IsNumberAndWord(keyInfo.DSN))
+                                if (!CommonMethod.IsNumberAndWord(keyInfo.DSN.data))
                                 {
-                                    ErrMsg = string.Format("DSN format error!\r\n{0}", keyInfo.DSN);
+                                    ErrMsg = string.Format("DSN format error!\r\n{0}", keyInfo.DSN.data);
                                     Log.WriteErrorLog(ErrMsg);
                                     goto end;
                                 }
-                                byte[] DSNData = System.Text.Encoding.ASCII.GetBytes(keyInfo.DSN);
+                                byte[] DSNData = System.Text.Encoding.ASCII.GetBytes(keyInfo.DSN.data);
                                 Log.WriteInfoLog("Write DSN...");
                                 if (SerialCMD.SetFireTVDSN(TVPort, DSNData, out result, out data, out error, SerailDelay))
                                 {