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); }
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); }