S640 : Only 'passed' WMs are sealed at the end, counting pieces fixed, MeterTestRslt.Passed fixed.

This commit is contained in:
Milan Hanajik 2021-10-20 18:05:01 +02:00
parent 54cb6e4303
commit 3312dc40f8
2 changed files with 39 additions and 18 deletions

View File

@ -1539,17 +1539,18 @@ namespace TBF.BenchControl.Output.DB.SensusOracle
{
connection.Open();
OracleCommand cmd = new OracleCommand("SELECT iststueck FROM vt_auft_zaehlernr_pd " +
"WHERE auftragsnummer=:1 AND anbid=:2", connection);
OracleCommand cmd = new OracleCommand("SELECT iststueck FROM vt_auftrag_pd WHERE auftragsnummer=:1 AND anbid=:2", connection);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.AuftragsNummer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
OracleDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
auftrag.CurrentPcsCount = dr.GetInt32(0);
try { auftrag.CurrentPcsCount = dr.GetInt32(0); } catch { auftrag.CurrentPcsCount = 0; }
}
dr.Close();
cmd = new OracleCommand("SELECT erste_nummer, ltz_nummer, akt_nummer, erste_adresse, ltz_adresse," +
" prefix_adresse, suffix_adresse, akt_adresse " +
"FROM vt_auft_zaehlernr_pd " +
@ -1571,6 +1572,7 @@ namespace TBF.BenchControl.Output.DB.SensusOracle
}
dr.Close();
connection.Close();
return true;
}
@ -1604,15 +1606,22 @@ namespace TBF.BenchControl.Output.DB.SensusOracle
{
connection.Open();
OracleCommand cmd = new OracleCommand("UPDATE vt_auft_zaehlernr_pd SET akt_nummer=:1, akt_adresse=:2 " +
"WHERE auftragsnummer=:3 AND anbid=:4", connection);
OracleCommand cmd = new OracleCommand("UPDATE vt_auftrag_pd SET iststueck=:1 WHERE auftragsnummer=:2 AND anbid=:3", connection);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = auftrag.CurrentPcsCount });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.AuftragsNummer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
int updatedRows = cmd.ExecuteNonQuery();
cmd = new OracleCommand("UPDATE vt_auft_zaehlernr_pd SET akt_nummer=:1, akt_adresse=:2 " +
"WHERE auftragsnummer=:3 AND anbid=:4", connection);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = auftrag.CurrentSerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = auftrag.CurrentRadioAddress });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.AuftragsNummer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
updatedRows = Math.Min(cmd.ExecuteNonQuery(), updatedRows);
int updatedRows = cmd.ExecuteNonQuery();
connection.Close();
return updatedRows;

View File

@ -732,9 +732,19 @@ namespace TBF.BenchControl.TestMethods.S640Communication
: ord.CurrentSerialNr + 1;
Results.Entities.WaterMeter wm = ProcessData.BatchRslts.Batch.WaterMeters[i];
if (optoHeads[i] != null && optoHeads[i].PcbNumber != 0 && wm != null)
if (optoHeads[i] != null && optoHeads[i].PcbNumber != 0 && wm != null && !wm.Disabled)
{
if (wm.PassedFromTests())
if (!wm.PassedFromTests())
{
/// Red background
messages[i].BackColor = Color.Pink;
}
else if (ord.CurrentPcsCount >= ord.TargetPcsCount)
{
/// Disable the water meter to prevent sealing
wm.Disabled = true;
}
else
{
/// Assign numbers
wm.RadioAddress = string.Format("{0}{1}{2}", ord.RadioAddressPrefix, currentRadioAddress.ToString("D9"), ord.RadioAddressSuffix);
@ -749,11 +759,7 @@ namespace TBF.BenchControl.TestMethods.S640Communication
#endif
ord.CurrentSerialNr = currentSerialNr;
ord.CurrentRadioAddress = currentRadioAddress;
}
else
{
/// Red background
messages[i].BackColor = Color.Pink;
ord.CurrentPcsCount++;
}
}
}
@ -782,7 +788,11 @@ namespace TBF.BenchControl.TestMethods.S640Communication
string purchaseOrder = null;
for (int i = 0; i < optoHeads.Length; i++)
{
if (optoHeads[i] != null && optoHeads[i].PcbNumber != 0 && ProcessData.BatchRslts.Batch.WaterMeters[i] != null)
if (optoHeads[i] != null &&
optoHeads[i].PcbNumber != 0 &&
ProcessData.BatchRslts.Batch.WaterMeters[i] != null &&
!ProcessData.BatchRslts.Batch.WaterMeters[i].Disabled &&
(activity == S640Activity.Start || ProcessData.BatchRslts.Batch.WaterMeters[i].PassedFromTests()))
{
count++;
@ -814,7 +824,11 @@ namespace TBF.BenchControl.TestMethods.S640Communication
file.WriteLine(" <Meters>");
for (int i = 0; i < optoHeads.Length; i++)
{
if (optoHeads[i] != null && optoHeads[i].PcbNumber != 0 && ProcessData.BatchRslts.Batch.WaterMeters[i] != null)
if (optoHeads[i] != null &&
optoHeads[i].PcbNumber != 0 &&
ProcessData.BatchRslts.Batch.WaterMeters[i] != null &&
!ProcessData.BatchRslts.Batch.WaterMeters[i].Disabled &&
(activity == S640Activity.Start || ProcessData.BatchRslts.Batch.WaterMeters[i].PassedFromTests()))
{
Results.Entities.WaterMeter wm = ProcessData.BatchRslts.Batch.WaterMeters[i];
@ -920,9 +934,7 @@ namespace TBF.BenchControl.TestMethods.S640Communication
ProcessData.BatchRslts.Batch.WaterMeters[i] != null &&
!ProcessData.BatchRslts.Batch.WaterMeters[i].Disabled)
{
if ((Program.LocalSettings.OptoHeadsEnabled & (1L << i)) != 0 &&
optoHeads[i] != null &&
!commFailed)
if (enabledInConfiguration[i] && !commFailed)
{
meterRslt.TestDone = true;
meterRslt.Passed = true;