예제 #1
0
파일: frmSA.cs 프로젝트: Test0222/Test02
        void HDLDeviceCheckFunctionsStepByStep(int intRowIndex)
        {
            string str1 = "";

            try
            {
                CsConst.MyBlnFinish = false;
                DateTime d1 = DateTime.Now;
                DateTime d2 = DateTime.Now;
                CsConst.MyBlnWait15FE = true;
                #region
                Boolean bIsSuccess           = false;
                String  sTestResult          = "通过";
                String  sMacInformation      = "";
                String  sHardwareInformation = "";
                switch (intRowIndex)
                {
                case 0: bIsSuccess = HdlUdpPublicFunctions.LocateDeviceWhereItIs(bSubNetId, bDeviceId); break;             // 自动定位

                case 1: bIsSuccess = HdlUdpPublicFunctions.CheckDeviceIfCouldBeFound(0x000E, bSubNetId, bDeviceId); break; //搜索设备

                case 2: bIsSuccess = HdlUdpPublicFunctions.CheckDeviceIfCouldBeFound(0xE548, bSubNetId, bDeviceId); break; // 简易编程搜索

                case 3:
                    CsConst.FastSearch = false;       // 读取版本信息
                    String sTmpVersion = HDLSysPF.ReadDeviceVersion(bSubNetId, bDeviceId, true);
                    if (sTmpVersion != null && sTmpVersion != "")
                    {
                        bIsSuccess   = true;
                        sTestResult += " " + sTmpVersion;
                    }
                    break;

                case 4:
                    bIsSuccess = HDLSysPF.ModifyDeviceMainRemark(bSubNetId, bDeviceId, "测试备注 + " + bDeviceId.ToString(), -1);
                    if (bIsSuccess == true)
                    {
                        sTestResult += "测试备注 + " + bDeviceId.ToString();
                    }
                    break;     // 修改备注

                case 5:
                    sMacInformation = HdlUdpPublicFunctions.ReadDeviceMacInformation(bSubNetId, bDeviceId, false);     // 根据MAC修改地址
                    if (sMacInformation != "")
                    {
                        bIsSuccess = HdlUdpPublicFunctions.ModifyDeviceAddressWithTwoDifferentways(bSubNetId, bDeviceId, sMacInformation,
                                                                                                   iMyDeviceType, bSubNetId, (Byte)(bDeviceId + 1), 0);
                        if (bIsSuccess == true)
                        {
                            bDeviceId = (Byte)(bDeviceId + 1);
                        }
                    }
                    break;

                case 6:                                                                                            // 一端口自动分配地址
                    sMacInformation = HdlUdpPublicFunctions.ReadDeviceMacInformation(bSubNetId, bDeviceId, false); // 根据MAC修改地址
                    if (sMacInformation != "")
                    {
                        bIsSuccess = HdlUdpPublicFunctions.ModifyDeviceAddressAutomaticallyWithIpModule(bSubNetId, bDeviceId, sMacInformation,
                                                                                                        iMyDeviceType, bSubNetId, (Byte)(bDeviceId + 1));
                        if (bIsSuccess == true)
                        {
                            bDeviceId = (Byte)(bDeviceId + 1);
                        }
                    }
                    break;

                case 7:
                    DialogResult result = MessageBox.Show("请确认已经按住按键并且LED变红!", "问题",       // 按住按键修改地址
                                                          MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
                    if (result == DialogResult.No)
                    {
                        sTestResult = "测试未通过";
                    }
                    else if (result == DialogResult.Yes)
                    {
                        bIsSuccess = HdlUdpPublicFunctions.ModifyDeviceAddressWithTwoDifferentways(bSubNetId, bDeviceId, "",
                                                                                                   iMyDeviceType, bSubNetId, (Byte)(bDeviceId + 1), 1);
                        if (bIsSuccess == true)
                        {
                            bDeviceId = (Byte)(bDeviceId + 1);
                        }
                    }
                    break;

                case 9:                                                                                            // 恢复出厂设置
                    sMacInformation = HdlUdpPublicFunctions.ReadDeviceMacInformation(bSubNetId, bDeviceId, false); // 根据MAC修改地址
                    if (sMacInformation != "")
                    {
                        bIsSuccess = HdlUdpPublicFunctions.IntialDeviceFactorySettings(bSubNetId, bDeviceId, sMacInformation, iMyDeviceType);
                        if (bIsSuccess == true)
                        {
                            bDeviceId = (Byte)(bDeviceId + 1);
                        }
                    }
                    break;

                case 8:                                                                                               // 读取硬件信息
                    sHardwareInformation = HdlUdpPublicFunctions.ReadDeviceHardwareInformation(bSubNetId, bDeviceId); // 根据MAC修改地址
                    if (sHardwareInformation != "")
                    {
                        bIsSuccess = true;
                    }
                    break;
                }

                if (intRowIndex == 0 && bIsSuccess == true)
                {
                    DialogResult result = MessageBox.Show("请确认是否可以找到设备!", "问题",
                                                          MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
                    if (result == DialogResult.No)
                    {
                        sTestResult = "测试未通过";
                    }
                }
                else if (intRowIndex == 4 && bIsSuccess == true)
                {
                    sTestResult = "请在测试完成后断电确认是否保存";
                }
                else if (intRowIndex == 9 && bIsSuccess == true) //恢复出厂后地址修改
                {
                    CsConst.myOnlines[cboDevA.SelectedIndex].bytSub  = bSubNetId;
                    CsConst.myOnlines[cboDevA.SelectedIndex].bytDev  = bDeviceId;
                    CsConst.myOnlines[cboDevA.SelectedIndex].DevName = bSubNetId.ToString() + "-" + bDeviceId.ToString() + "\\" + "测试备注 + " + bDeviceId.ToString().ToString();
                    numDevA.Value = bDeviceId;
                    cboDevA.Items[cboDevA.SelectedIndex] = CsConst.myOnlines[cboDevA.SelectedIndex].DevName;
                }
                else if (bIsSuccess == false)
                {
                    sTestResult = "测试未通过";
                }
                List <String> Tmp = new List <string> {
                    sTestResult, sHardwareInformation
                };
                HdlUdpPublicFunctions.UpdateDataGridWhenNeedsRefreshDisplay(dgvListA, Tmp, intRowIndex, 3, bIsSuccess);
                #endregion
            }
            catch
            {
            }
        }