|
@@ -183,7 +183,7 @@ namespace CarMeterSystem
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (PbCache.collect != null && PbCache.collect.weightStatus != 0)
|
|
|
|
|
|
|
+ if (PbCache.collect != null && (PbCache.collect.weightStatus != 0 && localWeightStatus != true))
|
|
|
{
|
|
{
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
@@ -225,7 +225,7 @@ namespace CarMeterSystem
|
|
|
setMsg(PbCache.ResultMessage);
|
|
setMsg(PbCache.ResultMessage);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- else if (PbCache.collect.weightStatus == 0 && !PbCache.monitorResult.valid_park_status && PbCache.monitor.validParkStatus == "1")
|
|
|
|
|
|
|
+ else if ((PbCache.collect.weightStatus == 0 || localWeightStatus == true) && !PbCache.monitorResult.valid_park_status && PbCache.monitor.validParkStatus == "1")
|
|
|
{
|
|
{
|
|
|
//重量稳定,且对射验证不合格
|
|
//重量稳定,且对射验证不合格
|
|
|
vicPlayClass.GetVoicePlay("车辆超出秤台,请调整车位", PbCache.collect.carno);
|
|
vicPlayClass.GetVoicePlay("车辆超出秤台,请调整车位", PbCache.collect.carno);
|
|
@@ -236,7 +236,7 @@ namespace CarMeterSystem
|
|
|
setMsg(PbCache.ResultMessage);
|
|
setMsg(PbCache.ResultMessage);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- else if (PbCache.collect.weightStatus == 0 && PbCache.monitorResult.valid_frontInfraredRay_right_status && PbCache.monitor.validParkStatus == "1")
|
|
|
|
|
|
|
+ else if ((PbCache.collect.weightStatus == 0 || localWeightStatus == true) && PbCache.monitorResult.valid_frontInfraredRay_right_status && PbCache.monitor.validParkStatus == "1")
|
|
|
{
|
|
{
|
|
|
//重量稳定,且光栅不合格
|
|
//重量稳定,且光栅不合格
|
|
|
vicPlayClass.GetVoicePlay("车辆超出秤台,请调整车位", PbCache.collect.carno);
|
|
vicPlayClass.GetVoicePlay("车辆超出秤台,请调整车位", PbCache.collect.carno);
|
|
@@ -247,7 +247,7 @@ namespace CarMeterSystem
|
|
|
setMsg(PbCache.ResultMessage);
|
|
setMsg(PbCache.ResultMessage);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- else if (PbCache.collect.weightStatus == 0 && PbCache.monitorResult.valid_frontInfraredRay_left_status && PbCache.monitor.validParkStatus == "1")
|
|
|
|
|
|
|
+ else if ((PbCache.collect.weightStatus == 0 || localWeightStatus == true) && PbCache.monitorResult.valid_frontInfraredRay_left_status && PbCache.monitor.validParkStatus == "1")
|
|
|
{
|
|
{
|
|
|
//重量稳定,且光栅不合格
|
|
//重量稳定,且光栅不合格
|
|
|
vicPlayClass.GetVoicePlay("车辆超出秤台,请调整车位", PbCache.collect.carno);
|
|
vicPlayClass.GetVoicePlay("车辆超出秤台,请调整车位", PbCache.collect.carno);
|
|
@@ -1122,6 +1122,8 @@ namespace CarMeterSystem
|
|
|
private bool bRelation = true;
|
|
private bool bRelation = true;
|
|
|
private bool isShowRecover = true; //是否需要判断显示复磅按钮
|
|
private bool isShowRecover = true; //是否需要判断显示复磅按钮
|
|
|
|
|
|
|
|
|
|
+ private bool localWeightStatus = false; //本地判稳
|
|
|
|
|
+
|
|
|
//验证校秤数据
|
|
//验证校秤数据
|
|
|
private validCalibration vCalib = new validCalibration();
|
|
private validCalibration vCalib = new validCalibration();
|
|
|
|
|
|
|
@@ -1175,7 +1177,7 @@ namespace CarMeterSystem
|
|
|
int voiceNum = 0;
|
|
int voiceNum = 0;
|
|
|
private void timer1_Tick(object sender, EventArgs e)
|
|
private void timer1_Tick(object sender, EventArgs e)
|
|
|
{
|
|
{
|
|
|
- DualWeight();//rxh modify
|
|
|
|
|
|
|
+ //DualWeight();//rxh modify
|
|
|
}
|
|
}
|
|
|
private void DualWeight()
|
|
private void DualWeight()
|
|
|
{
|
|
{
|
|
@@ -1203,6 +1205,9 @@ namespace CarMeterSystem
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
ucWeightCarTJXJG1.setWgtBackColor(true);
|
|
ucWeightCarTJXJG1.setWgtBackColor(true);
|
|
|
|
|
+
|
|
|
|
|
+ // 自行判稳
|
|
|
|
|
+ localWeightStatus = CheckWeightStable(PbCache.collect.weight);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1286,7 +1291,7 @@ namespace CarMeterSystem
|
|
|
//2021年5月10日界面显示单位,调整为T
|
|
//2021年5月10日界面显示单位,调整为T
|
|
|
ucWeightCarTJXJG1.setWgt(Math.Round((double)PbCache.collect.weight / 1000, 2));
|
|
ucWeightCarTJXJG1.setWgt(Math.Round((double)PbCache.collect.weight / 1000, 2));
|
|
|
// 修改界面过磅状态红/绿图标
|
|
// 修改界面过磅状态红/绿图标
|
|
|
- ucWeightCarTJXJG1.setStable(PbCache.collect.weightStatus != 1 ? true : false);
|
|
|
|
|
|
|
+ ucWeightCarTJXJG1.setStable((PbCache.collect.weightStatus != 1 && localWeightStatus != false) ? true : false);
|
|
|
|
|
|
|
|
#region 远程计量交互代码
|
|
#region 远程计量交互代码
|
|
|
//lg.WriteLog(99, "PbCache.monitor:" + PbCache.monitor.ToString());
|
|
//lg.WriteLog(99, "PbCache.monitor:" + PbCache.monitor.ToString());
|
|
@@ -1413,7 +1418,7 @@ namespace CarMeterSystem
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (PbCache.collect.weightStatus == 0 && !PbCache.monitorResult.valid_park_status && PbCache.monitor.validParkStatus == "1")
|
|
|
|
|
|
|
+ if ((PbCache.collect.weightStatus == 0 || localWeightStatus == true) && !PbCache.monitorResult.valid_park_status && PbCache.monitor.validParkStatus == "1")
|
|
|
{
|
|
{
|
|
|
//重量稳定,且对射验证不合格
|
|
//重量稳定,且对射验证不合格
|
|
|
if (!isPlayCalibVoice)
|
|
if (!isPlayCalibVoice)
|
|
@@ -1427,7 +1432,7 @@ namespace CarMeterSystem
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (PbCache.collect.weightStatus == 0 && PbCache.monitorResult.valid_frontInfraredRay_right_status && PbCache.monitor.validParkStatus == "1")
|
|
|
|
|
|
|
+ if ((PbCache.collect.weightStatus == 0 || localWeightStatus == true) && PbCache.monitorResult.valid_frontInfraredRay_right_status && PbCache.monitor.validParkStatus == "1")
|
|
|
{
|
|
{
|
|
|
//重量稳定,且光栅不合格
|
|
//重量稳定,且光栅不合格
|
|
|
vicPlayClass.GetVoicePlay("车辆超出秤台,请调整车位", PbCache.collect.carno);
|
|
vicPlayClass.GetVoicePlay("车辆超出秤台,请调整车位", PbCache.collect.carno);
|
|
@@ -1438,7 +1443,7 @@ namespace CarMeterSystem
|
|
|
setMsg(PbCache.ResultMessage);
|
|
setMsg(PbCache.ResultMessage);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- if (PbCache.collect.weightStatus == 0 && PbCache.monitorResult.valid_frontInfraredRay_left_status && PbCache.monitor.validParkStatus == "1")
|
|
|
|
|
|
|
+ if ((PbCache.collect.weightStatus == 0 || localWeightStatus == true) && PbCache.monitorResult.valid_frontInfraredRay_left_status && PbCache.monitor.validParkStatus == "1")
|
|
|
{
|
|
{
|
|
|
//重量稳定,且光栅不合格
|
|
//重量稳定,且光栅不合格
|
|
|
vicPlayClass.GetVoicePlay("车辆超出秤台,请调整车位", PbCache.collect.carno);
|
|
vicPlayClass.GetVoicePlay("车辆超出秤台,请调整车位", PbCache.collect.carno);
|
|
@@ -1556,7 +1561,7 @@ namespace CarMeterSystem
|
|
|
#region 第一次查询,有车号,重量稳定,红外验证通过的情况只查一次
|
|
#region 第一次查询,有车号,重量稳定,红外验证通过的情况只查一次
|
|
|
|
|
|
|
|
//如果没有查过一次,且扫描到车号信息,且重量稳定
|
|
//如果没有查过一次,且扫描到车号信息,且重量稳定
|
|
|
- if ((bRailwayActual || sPreCarNo != TrackCarNo || firstCode != PbCache.strCode) && PbCache.collect.weightStatus == 0 && PbCache.monitorResult.valid_park_status)
|
|
|
|
|
|
|
+ if ((bRailwayActual || sPreCarNo != TrackCarNo || firstCode != PbCache.strCode) && (PbCache.collect.weightStatus == 0 || localWeightStatus == true) && PbCache.monitorResult.valid_park_status)
|
|
|
{
|
|
{
|
|
|
firstWgt = 0;
|
|
firstWgt = 0;
|
|
|
sPreCarNo = TrackCarNo;
|
|
sPreCarNo = TrackCarNo;
|
|
@@ -1739,7 +1744,7 @@ namespace CarMeterSystem
|
|
|
|
|
|
|
|
#region 毛皮净赋值;存在一次重量firstWgt的情况下才赋值毛皮净重
|
|
#region 毛皮净赋值;存在一次重量firstWgt的情况下才赋值毛皮净重
|
|
|
|
|
|
|
|
- if (PbCache.collect.weightStatus == 0 && firstWgt > 500)
|
|
|
|
|
|
|
+ if ((PbCache.collect.weightStatus == 0 || localWeightStatus == true) && firstWgt > 500)
|
|
|
{
|
|
{
|
|
|
if (Math.Abs(firstWgt - PbCache.collect.weight) > AppConfigCache.differenceWgt)
|
|
if (Math.Abs(firstWgt - PbCache.collect.weight) > AppConfigCache.differenceWgt)
|
|
|
{
|
|
{
|
|
@@ -1772,7 +1777,7 @@ namespace CarMeterSystem
|
|
|
//lg.WriteLog(37, string.Format("PbCache.monitor:{0},PbCache.monitor.isTakeOver:{1},bRailwayActual:{2},PbCache.collect.carno:{3},PbCache.collect.weightStatus:{4},ucWeightT1.isGreenWgt:{5},PbCache.isLockFrm:{6},isVoiceDownCar:{7},btnSave.Visible:{8}", PbCache.monitor, PbCache.monitor.isTakeOver, bRailwayActual, PbCache.collect.carno, PbCache.collect.weightStatus, ucWeightT1.isGreenWgt, PbCache.isLockFrm, isVoiceDownCar, btnSave.Visible));
|
|
//lg.WriteLog(37, string.Format("PbCache.monitor:{0},PbCache.monitor.isTakeOver:{1},bRailwayActual:{2},PbCache.collect.carno:{3},PbCache.collect.weightStatus:{4},ucWeightT1.isGreenWgt:{5},PbCache.isLockFrm:{6},isVoiceDownCar:{7},btnSave.Visible:{8}", PbCache.monitor, PbCache.monitor.isTakeOver, bRailwayActual, PbCache.collect.carno, PbCache.collect.weightStatus, ucWeightT1.isGreenWgt, PbCache.isLockFrm, isVoiceDownCar, btnSave.Visible));
|
|
|
//没有远程接管,且已查过一次数据,且界面未锁定的情况下,如果,有车号,重量稳定了,停车线验证通过,完成了扫码验证的情况下,则按钮可用
|
|
//没有远程接管,且已查过一次数据,且界面未锁定的情况下,如果,有车号,重量稳定了,停车线验证通过,完成了扫码验证的情况下,则按钮可用
|
|
|
if (PbCache.monitor != null && PbCache.monitor.isTakeOver == "0" && !bRailwayActual && !string.IsNullOrEmpty(PbCache.collect.carno)
|
|
if (PbCache.monitor != null && PbCache.monitor.isTakeOver == "0" && !bRailwayActual && !string.IsNullOrEmpty(PbCache.collect.carno)
|
|
|
- && PbCache.collect.weightStatus == 0 && ucWeightT1.isGreenWgt)
|
|
|
|
|
|
|
+ && (PbCache.collect.weightStatus == 0 || localWeightStatus == true) && ucWeightT1.isGreenWgt)
|
|
|
{
|
|
{
|
|
|
if (!PbCache.isLockFrm)
|
|
if (!PbCache.isLockFrm)
|
|
|
{
|
|
{
|
|
@@ -1840,7 +1845,7 @@ namespace CarMeterSystem
|
|
|
setMsgInfo(btnSave, "false", "2");//rxh add
|
|
setMsgInfo(btnSave, "false", "2");//rxh add
|
|
|
lg.WriteLog(14, "车号:" + PbCache.collect.carno + ";对射没对准【" + PbCache.monitorResult.valid_park_status + "】" +
|
|
lg.WriteLog(14, "车号:" + PbCache.collect.carno + ";对射没对准【" + PbCache.monitorResult.valid_park_status + "】" +
|
|
|
"||重量不是绿色【" + ucWeightT1.isGreenWgt + "】" +
|
|
"||重量不是绿色【" + ucWeightT1.isGreenWgt + "】" +
|
|
|
- "||重量不稳定 0:重量稳定; 1:重量不稳定; 2:空磅【" + PbCache.collect.weightStatus + "】" +
|
|
|
|
|
|
|
+ "||重量不稳定 0:重量稳定; 1:重量不稳定; 2:空磅weightStatus:【" + PbCache.collect.weightStatus + "】&& localWeightStatus:【" + localWeightStatus + "】" +
|
|
|
"||不是智能计量状态【" + PbCache.monitor.isTakeOver + "】" +
|
|
"||不是智能计量状态【" + PbCache.monitor.isTakeOver + "】" +
|
|
|
"||扫码编号为空隐藏【" + firstCode + "】" +
|
|
"||扫码编号为空隐藏【" + firstCode + "】" +
|
|
|
"||一次计量数据已经查询完成【" + bRailwayActual + "】" +
|
|
"||一次计量数据已经查询完成【" + bRailwayActual + "】" +
|
|
@@ -2357,7 +2362,7 @@ namespace CarMeterSystem
|
|
|
setMsg(PbCache.ResultMessage);
|
|
setMsg(PbCache.ResultMessage);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- else if (PbCache.collect.weightStatus == 0 && !PbCache.monitorResult.valid_park_status)
|
|
|
|
|
|
|
+ else if ((PbCache.collect.weightStatus == 0 || localWeightStatus == true) && !PbCache.monitorResult.valid_park_status)
|
|
|
{
|
|
{
|
|
|
//重量稳定,且对射验证不合格
|
|
//重量稳定,且对射验证不合格
|
|
|
vicPlayClass.GetVoicePlay("您的车辆未停到位", PbCache.collect.carno);
|
|
vicPlayClass.GetVoicePlay("您的车辆未停到位", PbCache.collect.carno);
|
|
@@ -2618,6 +2623,11 @@ namespace CarMeterSystem
|
|
|
{
|
|
{
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
|
|
+ // 20220930 By BourneCao
|
|
|
|
|
+ // 清楚本地判稳参数
|
|
|
|
|
+ localWeightStatus = false;
|
|
|
|
|
+ stableWeightList = null;
|
|
|
|
|
+
|
|
|
lg.WriteLog(27, ("车号:" + (string.IsNullOrEmpty(temporaryCarNo) ? "未识别" : temporaryCarNo)) + ";重量:" + PbCache.resultWgt + ";提示信息:" + PbCache.resultMsgAll);
|
|
lg.WriteLog(27, ("车号:" + (string.IsNullOrEmpty(temporaryCarNo) ? "未识别" : temporaryCarNo)) + ";重量:" + PbCache.resultWgt + ";提示信息:" + PbCache.resultMsgAll);
|
|
|
MeterWorkScheduledHelp meterWorkScheduledHelp1 = new MeterWorkScheduledHelp();
|
|
MeterWorkScheduledHelp meterWorkScheduledHelp1 = new MeterWorkScheduledHelp();
|
|
|
meterWorkScheduledHelp1.baseSpotNo = PbCache.sportInfo.baseSpotNo;
|
|
meterWorkScheduledHelp1.baseSpotNo = PbCache.sportInfo.baseSpotNo;
|
|
@@ -3116,5 +3126,41 @@ namespace CarMeterSystem
|
|
|
//this.StopRefreshData();
|
|
//this.StopRefreshData();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 重量采集列表
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ private List<int> stableWeightList = new List<int>();
|
|
|
|
|
+
|
|
|
|
|
+ private const int maxStableCount = 8;
|
|
|
|
|
+
|
|
|
|
|
+ private bool CheckWeightStable(int weight)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (stableWeightList == null)
|
|
|
|
|
+ {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (stableWeightList.Count < maxStableCount)
|
|
|
|
|
+ {
|
|
|
|
|
+ stableWeightList.Add(weight);
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ stableWeightList.RemoveAt(0);
|
|
|
|
|
+ stableWeightList.Add(weight);
|
|
|
|
|
+ int max = stableWeightList.Max();
|
|
|
|
|
+ int min = stableWeightList.Min();
|
|
|
|
|
+ var map = stableWeightList.GroupBy(x => x);
|
|
|
|
|
+ foreach (var item in map)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (item.Count() >= 4 && Math.Abs(max - item.Key) <= 40 && Math.Abs(item.Key - min) <= 40)
|
|
|
|
|
+ {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|