public static bool insertRecord(qzj_record model) { bool result; try { OleDbConnection adoConn = new OleDbConnection(); adoConn.ConnectionString = strConn; adoConn.Open(); OleDbCommand cmd = adoConn.CreateCommand(); OleDbTransaction Trans = adoConn.BeginTransaction(); cmd.Transaction = Trans; Trans.Rollback(); try { logControl.saveLogInf("连接数据库成功"); string updatesql = SqlBuilderHelper.InsertSql <qzj_record>(model, "QZJ"); OleDbDataAdapter dataAdapter = new OleDbDataAdapter(); dataAdapter.InsertCommand = new OleDbCommand(updatesql, adoConn); dataAdapter.InsertCommand.CommandText = updatesql; if (dataAdapter.InsertCommand.ExecuteNonQuery() > 0) { result = true; logControl.saveLogInf("插入数据成功"); } else { result = false; logControl.saveLogInf("插入数据失败"); } dataAdapter.Dispose(); } catch (Exception er) { result = false; logControl.saveLogInf("更新数据发生异常:" + er.Message); Trans.Rollback(); } adoConn.Close(); } catch (Exception er) { result = false; logControl.saveLogInf("链接到数据库失败:" + er.Message); } return(result); }
private bool writeTestResult(qzj_record model) { if (System.IO.File.Exists(extlinkdir)) { ini.INIIO.WritePrivateProfileString("ExtLinkData", "Result_5147", model.LEFTTURNLEFT.ToString("0.0"), extlinkdir); ini.INIIO.WritePrivateProfileString("ExtLinkData", "Judge_5147", model.LEFTTURNLEFTPD == "合格"?"1":"2", extlinkdir); ini.INIIO.WritePrivateProfileString("ExtLinkData", "Result_5148", model.LEFTTURNRIGHT.ToString("0.0"), extlinkdir); ini.INIIO.WritePrivateProfileString("ExtLinkData", "Judge_5148", model.LEFTTURNRIGHTPD == "合格" ? "1" : "2", extlinkdir); ini.INIIO.WritePrivateProfileString("ExtLinkData", "Result_5149", model.RIGHTTURNRIGHT.ToString("0.0"), extlinkdir); ini.INIIO.WritePrivateProfileString("ExtLinkData", "Judge_5149", model.RIGHTTURNRIGHTPD == "合格" ? "1" : "2", extlinkdir); ini.INIIO.WritePrivateProfileString("ExtLinkData", "Result_5150", model.RIGHTTURNLEFT.ToString("0.0"), extlinkdir); ini.INIIO.WritePrivateProfileString("ExtLinkData", "Judge_5150", model.RIGHTTURNLEFTPD == "合格" ? "1" : "2", extlinkdir); ini.INIIO.WritePrivateProfileString("ExtLink", "ScanOK", "5", extlinkdir); return(true); } else { return(false); } }
private void test_Process() { try { int STABLETIME = (int)(controller.stable_time * 20); int TURNTIME = (int)(controller.turn_time * 20); int ZEROTIME = (int)(controller.zero_time * 20); string sendstring; double leftangle, rightangle; double leftturnleft = 0, leftturnright = 0, rightturnleft = 0, rightturnright = 0; bool leftturnleftpd = false, leftturnrightpd = false, rightturnleftpd = false, rightturnrightpd = false, zhpd = false; Msg(labelOrder3, panelOrder3, "请上转盘", 0); int carAlready = 0; /*while (carAlready < 30) * { * if (!controller.isCarAlready) carAlready = 0; * else carAlready++; * Thread.Sleep(50); * }*/ Thread.Sleep(1500); Msg(labelOrder3, panelOrder3, "车辆到位", 0); Thread.Sleep(1000); controller.setClearLeft(out sendstring); controller.setClearRight(out sendstring); Thread.Sleep(100); controller.straightCar(out sendstring); Thread.Sleep(100); controller.unLockTable(out sendstring); Thread.Sleep(1000); int stablecount = 0; Msg(labelOrder3, panelOrder3, "向左打方向盘", 0); //while (controller.angleLeft < 5) //{ // Msg(labelLeftData, panelLeftData, controller.angleLeft.ToString("0.0"), 0, Math.Abs(controller.angleLeft - vehiclemodel.LEFTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC ? Color.Lime : Color.Red); // Msg(labelRightData, panelRightData, controller.angleRight.ToString("0.0"), 0, Math.Abs(controller.angleRight - vehiclemodel.RIGHTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC ? Color.Lime : Color.Red); // Thread.Sleep(50); //} while (stablecount < TURNTIME)//大于5度2秒以上 { leftangle = controller.angleLeft; rightangle = controller.angleRight; Msg(labelLeftData, panelLeftData, leftangle.ToString("0.0"), 0, Math.Abs(leftangle - vehiclemodel.LEFTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC ? Color.Lime : Color.Red); Msg(labelRightData, panelRightData, rightangle.ToString("0.0"), 0, Math.Abs(-rightangle - vehiclemodel.RIGHTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC ? Color.Lime : Color.Red); if (controller.angleLeft < 5) { stablecount = 0; } else//显示过程中的最大值 { if (controller.workMode == controller.ENUM_WORDMODE.WORKMODE_DEBUG)//在调试模式下一直等到连续两秒左右都在合格范围内了才继续进行 { leftturnleft = leftangle; rightturnleft = rightangle; if ((Math.Abs(leftturnleft - vehiclemodel.LEFTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC) && (Math.Abs(-rightturnleft - vehiclemodel.RIGHTTURNLEFT) <= vehiclemodel.RIGHTTURNLEFTWC))//如果在合格范围内,开始计时 { stablecount++; } else { stablecount = 0; } } else//在检验模式下,要等到连续两秒左盘没有超过目前最大值时认为稳定 { /*if (leftangle > leftturnleft) * { * leftturnleft = leftangle; * rightturnleft = rightangle; * stablecount = 0; * } * else * { * stablecount++; * }*/ leftturnleft = leftangle; rightturnleft = rightangle; stablecount++; /* if ((Math.Abs(leftturnleft - vehiclemodel.LEFTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC) && (Math.Abs(-rightturnleft - vehiclemodel.RIGHTTURNLEFT) <= vehiclemodel.RIGHTTURNLEFTWC))//如果在合格范围内,开始计时 * { * stablecount++; * } * else * { * stablecount = 0; * }*/ } Msg(labelLzlldata, panelLzlldata, leftturnleft.ToString("0.0"), 0, Math.Abs(leftturnleft - vehiclemodel.LEFTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC ? Color.Lime : Color.Red); Msg(labelRzlldata, panelRzlldata, rightturnleft.ToString("0.0"), 0, Math.Abs(-rightturnleft - vehiclemodel.RIGHTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC ? Color.Lime : Color.Red); } Thread.Sleep(50); } stablecount = 0; Msg(labelOrder3, panelOrder3, "稳定1秒", 0); while (stablecount < STABLETIME) { leftangle = controller.angleLeft; rightangle = controller.angleRight; Msg(labelLeftData, panelLeftData, leftangle.ToString("0.0"), 0, Math.Abs(leftangle - vehiclemodel.LEFTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC ? Color.Lime : Color.Red); Msg(labelRightData, panelRightData, rightangle.ToString("0.0"), 0, Math.Abs(-rightangle - vehiclemodel.RIGHTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC ? Color.Lime : Color.Red); if (controller.angleLeft < 5) { stablecount = 0; } else//显示过程中的最大值 { if (controller.workMode == controller.ENUM_WORDMODE.WORKMODE_DEBUG)//在调试模式下一直等到连续两秒左右都在合格范围内了才继续进行 { leftturnleft = leftangle; rightturnleft = rightangle; if ((Math.Abs(leftturnleft - vehiclemodel.LEFTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC) && (Math.Abs(-rightturnleft - vehiclemodel.RIGHTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC))//如果在合格范围内,开始计时 { stablecount++; } else { stablecount = 0; } } else//在检验模式下,要等到连续两秒左盘没有超过目前最大值时认为稳定 { /*if (leftangle > leftturnleft) * { * leftturnleft = leftangle; * rightturnleft = rightangle; * stablecount = 0; * } * else * { * stablecount++; * }*/ leftturnleft = leftangle; rightturnleft = rightangle; stablecount++; } Msg(labelLzlldata, panelLzlldata, leftturnleft.ToString("0.0"), 0, Math.Abs(leftturnleft - vehiclemodel.LEFTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC ? Color.Lime : Color.Red); Msg(labelRzlldata, panelRzlldata, rightturnleft.ToString("0.0"), 0, Math.Abs(-rightturnleft - vehiclemodel.RIGHTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC ? Color.Lime : Color.Red); } Thread.Sleep(50); } leftturnleftpd = (Math.Abs(leftturnleft - vehiclemodel.LEFTTURNLEFT) <= vehiclemodel.LEFTTURNLEFTWC); Msg(labelllpd, panelllpd, leftturnleftpd ? "○" : "×", 0, leftturnleftpd ? Color.Lime : Color.Red); rightturnleftpd = (Math.Abs(-rightturnleft - vehiclemodel.RIGHTTURNLEFT) <= vehiclemodel.RIGHTTURNLEFTWC); Msg(labelrlpd, panelrlpd, rightturnleftpd ? "○" : "×", 0, rightturnleftpd ? Color.Lime : Color.Red); Msg(labelOrder3, panelOrder3, "右打方向", 0); stablecount = 0; while (controller.angleRight < 5) { leftangle = controller.angleLeft; rightangle = controller.angleRight; Msg(labelLeftData, panelLeftData, leftangle.ToString("0.0"), 0, Math.Abs(-leftangle - vehiclemodel.LEFTTURNRIGHT) <= vehiclemodel.LEFTTURNRIGHTWC ? Color.Lime : Color.Red); Msg(labelRightData, panelRightData, rightangle.ToString("0.0"), 0, Math.Abs(rightangle - vehiclemodel.RIGHTTURNRIGHT) <= vehiclemodel.RIGHTTURNRIGHTWC ? Color.Lime : Color.Red); Thread.Sleep(50); } Msg(labelOrder3, panelOrder3, "向右打方向盘", 0); stablecount = 0; while (stablecount < TURNTIME)//大于5度2秒以上 { leftangle = controller.angleLeft; rightangle = controller.angleRight; Msg(labelLeftData, panelLeftData, leftangle.ToString("0.0"), 0, Math.Abs(-leftangle - vehiclemodel.LEFTTURNRIGHT) <= vehiclemodel.LEFTTURNRIGHTWC ? Color.Lime : Color.Red); Msg(labelRightData, panelRightData, rightangle.ToString("0.0"), 0, Math.Abs(rightangle - vehiclemodel.RIGHTTURNRIGHT) <= vehiclemodel.RIGHTTURNRIGHTWC ? Color.Lime : Color.Red); if (controller.angleRight < 5) { stablecount = 0; } else//显示过程中的最大值 { if (controller.workMode == controller.ENUM_WORDMODE.WORKMODE_DEBUG)//在调试模式下一直等到连续两秒左右都在合格范围内了才继续进行 { leftturnright = leftangle; rightturnright = rightangle; if ((Math.Abs(-leftturnright - vehiclemodel.LEFTTURNRIGHT) <= vehiclemodel.LEFTTURNRIGHTWC) && (Math.Abs(rightturnright - vehiclemodel.RIGHTTURNRIGHT) <= vehiclemodel.RIGHTTURNRIGHTWC))//如果在合格范围内,开始计时 { stablecount++; } else { stablecount = 0; } } else//在检验模式下,要等到连续两秒左盘没有超过目前最大值时认为稳定 { /* if (rightangle > rightturnright) * { * rightturnright = rightangle; * leftturnright = leftangle; * stablecount = 0; * } * else * { * stablecount++; * }*/ rightturnright = rightangle; leftturnright = leftangle; stablecount++; } Msg(labelLzrldata, panelLzrldata, leftturnright.ToString("0.0"), 0, Math.Abs(-leftturnright - vehiclemodel.LEFTTURNRIGHT) <= vehiclemodel.LEFTTURNRIGHTWC ? Color.Lime : Color.Red); Msg(labelRzrldata, panelRzrldata, rightturnright.ToString("0.0"), 0, Math.Abs(rightturnright - vehiclemodel.RIGHTTURNRIGHT) <= vehiclemodel.RIGHTTURNRIGHTWC ? Color.Lime : Color.Red); } Thread.Sleep(50); } stablecount = 0; Msg(labelOrder3, panelOrder3, "稳定1秒", 0); while (stablecount < STABLETIME) { leftangle = controller.angleLeft; rightangle = controller.angleRight; Msg(labelLeftData, panelLeftData, leftangle.ToString("0.0"), 0, Math.Abs(-leftangle - vehiclemodel.LEFTTURNRIGHT) <= vehiclemodel.LEFTTURNRIGHTWC ? Color.Lime : Color.Red); Msg(labelRightData, panelRightData, rightangle.ToString("0.0"), 0, Math.Abs(rightangle - vehiclemodel.RIGHTTURNRIGHT) <= vehiclemodel.RIGHTTURNRIGHTWC ? Color.Lime : Color.Red); if (controller.angleRight < 5) { stablecount = 0; } else//显示过程中的最大值 { if (controller.workMode == controller.ENUM_WORDMODE.WORKMODE_DEBUG)//在调试模式下一直等到连续两秒左右都在合格范围内了才继续进行 { leftturnright = leftangle; rightturnright = rightangle; if ((Math.Abs(-leftturnright - vehiclemodel.LEFTTURNRIGHT) <= vehiclemodel.LEFTTURNRIGHTWC) && (Math.Abs(rightturnright - vehiclemodel.RIGHTTURNRIGHT) <= vehiclemodel.RIGHTTURNRIGHTWC))//如果在合格范围内,开始计时 { stablecount++; } else { stablecount = 0; } } else//在检验模式下,要等到连续两秒左盘没有超过目前最大值时认为稳定 { /*if (rightangle > rightturnright) * { * rightturnright = rightangle; * leftturnright = leftangle; * stablecount = 0; * } * else * { * stablecount++; * }*/ rightturnright = rightangle; leftturnright = leftangle; stablecount++; } Msg(labelLzrldata, panelLzrldata, leftturnright.ToString("0.0"), 0, Math.Abs(-leftturnright - vehiclemodel.LEFTTURNRIGHT) <= vehiclemodel.LEFTTURNRIGHTWC ? Color.Lime : Color.Red); Msg(labelRzrldata, panelRzrldata, rightturnright.ToString("0.0"), 0, Math.Abs(rightturnright - vehiclemodel.RIGHTTURNRIGHT) <= vehiclemodel.RIGHTTURNRIGHTWC ? Color.Lime : Color.Red); } Thread.Sleep(50); } leftturnrightpd = (Math.Abs(-leftturnright - vehiclemodel.LEFTTURNRIGHT) <= vehiclemodel.LEFTTURNRIGHTWC); Msg(labellrpd, panellrpd, leftturnrightpd ? "○" : "×", 0, leftturnrightpd ? Color.Lime : Color.Red); rightturnrightpd = (Math.Abs(rightturnright - vehiclemodel.RIGHTTURNRIGHT) <= vehiclemodel.RIGHTTURNRIGHTWC); Msg(labelrrpd, panelrrpd, rightturnrightpd ? "○" : "×", 0, rightturnrightpd ? Color.Lime : Color.Red); Msg(labelOrder3, panelOrder3, "请回零", 0); stablecount = 0; while (stablecount < ZEROTIME)//当左盘和右盘均回到规定的回零限值后 { leftangle = controller.angleLeft; rightangle = controller.angleRight; Msg(labelLeftData, panelLeftData, leftangle.ToString("0.0"), 0, controller.isLeftZero ? Color.Lime : Color.Red); Msg(labelRightData, panelRightData, rightangle.ToString("0.0"), 0, controller.isRightZero ? Color.Lime : Color.Red); if (!controller.isLeftZero || !controller.isRightZero) { stablecount = 0; } else { stablecount++; } Thread.Sleep(50); } zhpd = (leftturnleftpd && leftturnrightpd && rightturnleftpd && rightturnrightpd); Msg(labelOrder3, panelOrder3, zhpd ? "转向角 ○" : "转向角 ×", 0); controller.lockTable(out sendstring); Thread.Sleep(100); controller.backStraight(out sendstring); Thread.Sleep(1000); qzj_record record = new qzj_record(); record.CLID = System.Guid.NewGuid().ToString().Replace("-", ""); record.STATIONID = ""; record.LSH = ""; record.CLHP = VIN; record.VEHICLENAME = VEHICLENAME; record.MAXSPEED = ""; record.JCSJ = DateTime.Now; record.LEFTTURNLEFT = leftturnleft; record.RIGHTTURNLEFT = rightturnleft; record.LEFTTURNRIGHT = leftturnright; record.RIGHTTURNRIGHT = rightturnright; record.XZ = vehiclemodel.LEFTTURNLEFT.ToString() + "-" + vehiclemodel.LEFTTURNLEFTWC + "|" + vehiclemodel.RIGHTTURNLEFT.ToString() + "-" + vehiclemodel.RIGHTTURNLEFTWC + "|" + vehiclemodel.LEFTTURNRIGHT.ToString() + "-" + vehiclemodel.LEFTTURNRIGHTWC + "|" + vehiclemodel.RIGHTTURNRIGHT.ToString() + "-" + vehiclemodel.RIGHTTURNRIGHTWC; record.LEFTTURNLEFTPD = leftturnleftpd ? "合格" : "不合格"; record.RIGHTTURNLEFTPD = rightturnleftpd ? "合格" : "不合格"; record.LEFTTURNRIGHTPD = leftturnrightpd ? "合格" : "不合格"; record.RIGHTTURNRIGHTPD = rightturnrightpd ? "合格" : "不合格"; record.ZHPD = zhpd ? "合格" : "不合格"; record.HASUPLOAD = (workMode == ENUM_WORK_MODE.WORK_MODE_NET) ? "Y" : "N"; if (!SqlControl.insertRecord(record)) { Msg(labelOrder3, panelOrder3, "数据保存失败", 0); Thread.Sleep(2000); } else if (workMode == ENUM_WORK_MODE.WORK_MODE_NET) { if (!writeTestResult(record)) { Msg(labelOrder3, panelOrder3, "写结果数据失败", 0); Thread.Sleep(2000); } } stablecount = 0; /*while(stablecount<20)//车离开光电累计1秒后,检测流程退出 * { * if (!controller.isCarAlready) stablecount++; * Thread.Sleep(50); * }*/ Thread.Sleep(1500); controller.scanState = 0; CloseForm(); } catch (Exception er) { logControl.saveLogInf("[exception:]" + er.Message); CloseForm(); } }