Example #1
0
        private DevAccess.AinuoDetectModel GenerateSimDetect()
        {
            AinuoDetectModel detectModel = new AinuoDetectModel();
            string           strVal      = "";
            string           reStr       = "";

            if (nodeID == "2001")
            {
                strVal = @"1 3000 0000 0000 0000 0000 0 2
                          6 2200 1000 0000 0000 0000 0 1
                          3 0500 0000 0000 0000 0000 0 1
                          4 0037 0000 0000 0000 0000 0 1";
                strVal = strVal.Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "");
                Console.WriteLine(strVal);
            }
            else if (nodeID == "2003")
            {
                strVal = @"5 2200 2000 3500 1000 0000 0 1
                           5 2200 1000 2500 1000 0000 0 1";
                strVal = strVal.Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "");
                Console.WriteLine(strVal);
            }
            if (!detectModel.Parse(strVal, ref reStr))
            {
                Console.WriteLine("检测数据解析失败");
                return(null);
            }
            return(detectModel);
        }
Example #2
0
        private bool GetDetectResult(string barcode, AinuoDetectModel detectModel, float designPower, ref string detectCode, ref string strDetectVal, ref int checkResult)
        {
            detectCode = "";
            string ngDetect = "";
            bool   re       = true;

            checkResult = 0;
            if (detectModel == null)
            {
                checkResult  = 1;
                detectCode   = "1829";
                strDetectVal = "";
                ngDetect     = detectCodeMap["1829"];
                logRecorder.AddDebugLog(nodeName, barcode + "不良信项:" + ngDetect);
                return(re);
            }
            string logStr = barcode + "测试结果:";

            if (nodeID == "2001")
            {
                List <DevAccess.AinuoEnumDetectItem> detectItems = new List <DevAccess.AinuoEnumDetectItem>();
                detectItems.AddRange(new DevAccess.AinuoEnumDetectItem[] { DevAccess.AinuoEnumDetectItem.接地, DevAccess.AinuoEnumDetectItem.启动, DevAccess.AinuoEnumDetectItem.泄漏, DevAccess.AinuoEnumDetectItem.耐压 });
                foreach (DevAccess.AinuoDetectItemModel detectItem in detectModel.DetectItems)
                {
                    if (!detectItems.Contains(detectItem.detectItemType))
                    {
                        continue;
                    }
                    strDetectVal += detectItem.GetDataStr();
                }

                foreach (DevAccess.AinuoDetectItemModel detectItem in detectModel.DetectItems)
                {
                    if (!detectItems.Contains(detectItem.detectItemType))
                    {
                        continue;
                    }
                    logStr += (detectItem.detectItemType.ToString() + "测试数据:" + detectItem.GetDataStr() + ",");
                    if (detectItem.detectResult != DevAccess.AinuoEnumDetectResult.OK)
                    {
                        checkResult = 1;

                        //获取不良代码
                        if (detectItem.detectItemType == DevAccess.AinuoEnumDetectItem.启动)
                        {
                            string code = "1812";
                            detectCode += code + ",";
                            ngDetect    = ngDetect + detectCodeMap[code] + ",";
                        }
                        else if (detectItem.detectItemType == DevAccess.AinuoEnumDetectItem.接地)
                        {
                            string code = "1804";
                            detectCode += code + ",";
                            ngDetect    = ngDetect + detectCodeMap[code] + ",";
                        }
                        else if (detectItem.detectItemType == DevAccess.AinuoEnumDetectItem.耐压)
                        {
                            string code = "1805";
                            detectCode += code + ",";
                            ngDetect    = ngDetect + detectCodeMap[code] + ",";
                        }
                        else if (detectItem.detectItemType == DevAccess.AinuoEnumDetectItem.泄漏)
                        {
                            string code = "1806";
                            detectCode += code + ",";
                            ngDetect    = ngDetect + detectCodeMap[code] + ",";
                        }
                    }
                }

                //是否检测完成
                foreach (DevAccess.AinuoEnumDetectItem itemEnum in detectItems)
                {
                    bool schOK = false;
                    foreach (DevAccess.AinuoDetectItemModel detectItem in detectModel.DetectItems)
                    {
                        if (itemEnum == detectItem.detectItemType)
                        {
                            schOK = true;
                            break;
                        }
                    }
                    if (!schOK)
                    {
                        re = false;
                        break;
                    }
                }
            }
            else if (nodeID == "2003")
            {
                // List<DevAccess.AinuoEnumDetectItem> detectItems = new List<DevAccess.AinuoEnumDetectItem>();
                //detectItems.AddRange(new DevAccess.AinuoEnumDetectItem[] { DevAccess.AinuoEnumDetectItem.功率});
                //性能检测,判断是否合格,不再检测设备上判断,比较功率数值判断
                List <float> powerList = new List <float>();
                foreach (DevAccess.AinuoDetectItemModel detectItem in detectModel.DetectItems)
                {
                    if (detectItem.detectItemType != DevAccess.AinuoEnumDetectItem.功率)
                    {
                        //re = false;
                        continue;
                    }

                    strDetectVal += detectItem.GetDataStr();
                    powerList.Add(detectItem.detectParams[2].val);
                }
                logStr += strDetectVal;
                //获取不良代码

                if (powerList.Count() < 2)
                {
                    string code = "1829";
                    ngDetect   = ngDetect + detectCodeMap[code] + ",";
                    detectCode = code;
                    logRecorder.AddDebugLog(nodeName, string.Format("功率项数不足2条"));
                }
                else
                {
                    float powerMax = powerList[0];
                    float powerMin = powerList[1];
                    logStr = string.Format("功率检测结果,强档:{0}W,弱档{1}W", powerMax, powerMin);
                    if (detectModel.DetectItems[0].detectResult != AinuoEnumDetectResult.OK)
                    {
                        detectCode  = "1821";
                        ngDetect    = "强档功率NG";
                        logStr     += "强档功率NG";
                        checkResult = 1;
                    }
                    if (detectModel.DetectItems[1].detectResult != AinuoEnumDetectResult.OK)
                    {
                        detectCode  = "1821";
                        ngDetect    = "弱档功率NG";
                        logStr     += "弱档功率NG";
                        checkResult = 1;
                    }
                    if (checkRe == 0)
                    {
                        if ((int)powerMin == 0 && (int)powerMax != 0)
                        {
                            checkResult = 1;
                            string code = "1811";
                            ngDetect   = ngDetect + detectCodeMap[code] + ",";
                            detectCode = code;

                            //logStr += detectCodeMap[detectCode];
                        }
                        else if ((int)powerMax == 0 && (int)powerMin != 0)
                        {
                            checkResult = 1;
                            string code = "1810";
                            ngDetect   = ngDetect + detectCodeMap[code] + ",";
                            detectCode = code;
                            //logStr += detectCodeMap[detectCode];
                        }
                        else if ((int)powerMax == 0 && (int)powerMin == 0)
                        {
                            checkResult = 1;
                            string code = "1812";
                            ngDetect   = ngDetect + detectCodeMap[code] + ",";
                            detectCode = code;
                            //logStr += detectCodeMap[detectCode];
                        }
                        else if (powerMin > powerMax)
                        {
                            checkResult = 1;
                            string code = "1821";
                            ngDetect   = ngDetect + detectCodeMap[code] + ",";
                            detectCode = code;
                            //logStr += detectCodeMap[detectCode];
                        }
                        else if (powerMin < 10 || powerMin > 60 || powerMax < 60 || powerMax > 90)
                        //     else if (powerMin > designPower * 1.2 || powerMax > designPower * 1.2)
                        {
                            checkResult = 1;
                            string code = "1821";
                            ngDetect   = ngDetect + detectCodeMap[code] + ",";
                            detectCode = code;
                            //logStr += detectCodeMap[detectCode];
                        }
                        else
                        {
                            checkResult = 0;
                            detectCode  = "";
                        }
                    }
                }
            }

            logRecorder.AddDebugLog(nodeName, logStr);
            if (!string.IsNullOrWhiteSpace(ngDetect))
            {
                logRecorder.AddDebugLog(nodeName, barcode + "不良项:" + ngDetect);
            }
            if (checkRe != 0)
            {
                re = true;
            }

            return(re);
        }