Write given calibration factors function added, database almost implemented, version 1.5.88.
This commit is contained in:
parent
be1344034e
commit
db8598579d
5
TODO.txt
5
TODO.txt
@ -1,7 +1,8 @@
|
||||
iPerl:
|
||||
- MeterType v iPerl.WaterMeter zmenit na test parameter
|
||||
- spravne naimplementovat SerialNr pre iPerl WM
|
||||
- STOP nefunguje pocas communikacie
|
||||
- STOP nefunguje pocas communikacie, rozne chyby v cykle !!!
|
||||
- urobit purging sucasne s iPerlCommunication
|
||||
- v iPerlCommunication ponukat stringy v drop-down menu
|
||||
- na Process obrazovke posunut stupacku a rezervoar uplne doprava
|
||||
|
||||
- ked su Q3 part 1 a Q3 part 2 neda sa vybrat cez UI Q3 part 2
|
||||
|
||||
@ -18,7 +18,7 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(Database));
|
||||
public override string ToString() { return string.Format("ResultsWriters.Basic({0})", Cfg.ToString(1)); }
|
||||
|
||||
readonly DatabaseCfg writerCfg;
|
||||
readonly DatabaseCfg dbCfg;
|
||||
|
||||
OracleConnection conn; /// Oracle database connection
|
||||
|
||||
@ -45,7 +45,7 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
public Database(DatabaseCfg cfg)
|
||||
: base(cfg)
|
||||
{
|
||||
writerCfg = cfg;
|
||||
dbCfg = cfg;
|
||||
|
||||
switch (cfg.Separator)
|
||||
{
|
||||
@ -80,19 +80,12 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
///
|
||||
conn.Open();
|
||||
|
||||
OracleCommand cmd = new OracleCommand();
|
||||
cmd.Connection = conn;
|
||||
cmd.CommandText = string.Format("select Standort from ANBIETER_SD where ANBID = 4");
|
||||
string rslt = "none";
|
||||
OracleCommand cmd = new OracleCommand("select Standort from ANBIETER_SD where ANBID = 4", conn);
|
||||
OracleDataReader dr = cmd.ExecuteReader();
|
||||
dr.Read();
|
||||
if (dr.Read()) rslt = dr.GetString(0);
|
||||
|
||||
string rslt;
|
||||
if (dr.VisibleFieldCount > 0)
|
||||
{
|
||||
rslt = dr.GetString(0);
|
||||
}
|
||||
|
||||
conn.Dispose();
|
||||
conn.Close();
|
||||
}
|
||||
|
||||
public void RunDeviceBefore() {}
|
||||
@ -100,6 +93,7 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
|
||||
public void StopDevice()
|
||||
{
|
||||
if (conn != null) conn.Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -109,7 +103,7 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
/// <returns>Output string</returns>
|
||||
string ElSpaces(string item)
|
||||
{
|
||||
if (writerCfg.EliminateSpaces)
|
||||
if (dbCfg.EliminateSpaces)
|
||||
return item.Replace(" ", string.Empty);
|
||||
else
|
||||
return item;
|
||||
@ -124,16 +118,16 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
/// <returns>File name</returns>
|
||||
string GetFilename(DateTime time)
|
||||
{
|
||||
string directory = writerCfg.DestinationPath; /// Ends with "\\";
|
||||
string directory = dbCfg.DestinationPath; /// Ends with "\\";
|
||||
Directory.CreateDirectory(directory);
|
||||
|
||||
if (writerCfg.YearFolders)
|
||||
if (dbCfg.YearFolders)
|
||||
{
|
||||
directory = string.Format("{0}{1}\\", directory, time.Year.ToString());
|
||||
Directory.CreateDirectory(directory);
|
||||
}
|
||||
|
||||
if (writerCfg.MonthFolders)
|
||||
if (dbCfg.MonthFolders)
|
||||
{
|
||||
string monthStr /* = now.Month.ToString("D2")*/;
|
||||
switch (time.Month)
|
||||
@ -156,7 +150,7 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
Directory.CreateDirectory(directory);
|
||||
}
|
||||
|
||||
if (writerCfg.DayFolders)
|
||||
if (dbCfg.DayFolders)
|
||||
{
|
||||
directory = string.Format("{0}{1}\\", directory, time.Day.ToString("D2"));
|
||||
Directory.CreateDirectory(directory);
|
||||
@ -265,7 +259,13 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
}
|
||||
else
|
||||
{
|
||||
conn.Open(); /// Open the Oracle database
|
||||
/// Open the Oracle database
|
||||
conn.Open();
|
||||
|
||||
//string oradb = "Data Source=STARA_TEST.WORLD;User Id=deltachef;Password=deltachef;";
|
||||
//conn = new OracleConnection(oradb); // C#
|
||||
|
||||
//conn.Open();
|
||||
|
||||
for (int wmNr = 0; wmNr < Program.WMsCount; wmNr++) /// wmNr is 0-based
|
||||
{
|
||||
@ -277,7 +277,8 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
}
|
||||
}
|
||||
|
||||
conn.Dispose(); /// Close the Oracle database
|
||||
/// Close the Oracle database
|
||||
conn.Close();
|
||||
}
|
||||
}
|
||||
|
||||
@ -293,22 +294,156 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
|
||||
string pcbNr = unsortedResults[0].Meters[wmNr].SerialNr;
|
||||
|
||||
|
||||
OracleCommand cmd = new OracleCommand();
|
||||
cmd.Connection = conn;
|
||||
cmd.CommandText = string.Format("select MAX_Pruefindex from VT_ZAHLER_PD where VT_Fernum = {0}", pcbNr);
|
||||
|
||||
OracleDataReader dr = cmd.ExecuteReader();
|
||||
dr.Read();
|
||||
|
||||
string rslt;
|
||||
if (dr.VisibleFieldCount > 0)
|
||||
///
|
||||
/// Read a list of all prufindexes for a given PCB Number
|
||||
///
|
||||
IList<int> pruefindexes = new List<int>();
|
||||
{
|
||||
rslt = dr.GetString(0);
|
||||
OracleParameter parm = new OracleParameter();
|
||||
parm.OracleDbType = OracleDbType.Varchar2;
|
||||
parm.Value = pcbNr;
|
||||
|
||||
OracleCommand cmd1 = new OracleCommand("select MAX_Pruefindex from VT_ZAEHLER_PD where VT_Fernum = :1 AND ANBID = 4", conn);
|
||||
cmd1.Parameters.Add(parm);
|
||||
|
||||
OracleDataReader dr = cmd1.ExecuteReader();
|
||||
|
||||
while (dr.Read())
|
||||
{
|
||||
pruefindexes.Add(dr.GetInt32(0));
|
||||
}
|
||||
}
|
||||
|
||||
///
|
||||
/// Determine MAX_Pruefindex
|
||||
///
|
||||
int maxpruefindexLowPart = 0;
|
||||
foreach (var v in pruefindexes)
|
||||
{
|
||||
if ((v % 100) > maxpruefindexLowPart) maxpruefindexLowPart = (v % 100);
|
||||
}
|
||||
int MAX_Pruefindex = 100 * dbCfg.TestBenchId + maxpruefindexLowPart + 1;
|
||||
|
||||
|
||||
int Sekundaere_Adr;
|
||||
int Hydr_Pruefung;
|
||||
{
|
||||
bool passed = true;
|
||||
foreach (var r in results)
|
||||
{
|
||||
if (!r.DoNotEvaluate && !r.Meters[wmNr].Passed) passed = false;
|
||||
}
|
||||
|
||||
if (!passed)
|
||||
{
|
||||
/// Failed
|
||||
Sekundaere_Adr = 0;
|
||||
Hydr_Pruefung = 97; /// Hydr. tets failed, Pressure test passed
|
||||
}
|
||||
else
|
||||
{
|
||||
/// Passed
|
||||
Sekundaere_Adr = 1;
|
||||
if (maxpruefindexLowPart == 0)
|
||||
Hydr_Pruefung = 96;
|
||||
else
|
||||
Hydr_Pruefung = 224;
|
||||
}
|
||||
}
|
||||
|
||||
OracleParameter parm1 = new OracleParameter();
|
||||
parm1.OracleDbType = OracleDbType.Varchar2;
|
||||
parm1.Value = "BBAATMXX";
|
||||
|
||||
OracleParameter parm2 = new OracleParameter();
|
||||
parm2.OracleDbType = OracleDbType.Varchar2;
|
||||
parm2.Value = "IPBATMXX";
|
||||
|
||||
OracleParameter parm3 = new OracleParameter();
|
||||
parm3.OracleDbType = OracleDbType.Varchar2;
|
||||
parm3.Value = pcbNr;
|
||||
|
||||
OracleParameter parm4 = new OracleParameter();
|
||||
parm4.OracleDbType = OracleDbType.Int32;
|
||||
parm4.Value = MAX_Pruefindex;
|
||||
|
||||
OracleParameter parm5 = new OracleParameter();
|
||||
parm5.OracleDbType = OracleDbType.Int32;
|
||||
parm5.Value = -1;
|
||||
|
||||
OracleParameter parm6 = new OracleParameter();
|
||||
parm6.OracleDbType = OracleDbType.Int32;
|
||||
parm6.Value = Sekundaere_Adr;
|
||||
|
||||
OracleParameter parm7 = new OracleParameter();
|
||||
parm7.OracleDbType = OracleDbType.Int32;
|
||||
parm7.Value = Hydr_Pruefung;
|
||||
|
||||
OracleParameter parm8 = new OracleParameter();
|
||||
parm8.OracleDbType = OracleDbType.Int32;
|
||||
parm8.Value = 6;
|
||||
|
||||
OracleParameter parm9 = new OracleParameter();
|
||||
parm9.OracleDbType = OracleDbType.Int32;
|
||||
parm9.Value = 4; /// = ANBID Stara Tura
|
||||
|
||||
if (MAX_Pruefindex % 100 == 1)
|
||||
{
|
||||
OracleCommand cmd = new OracleCommand();
|
||||
cmd.Connection = conn;
|
||||
cmd.CommandText = "INSERT INTO VT_ZAEHLER_PD(Auftragsnummer, VT_Identnummer, VT_Fernum, Max_Pruefindex, Zaehlernummer, Sekundaere_Adr, Hydr_Pruefung, ID_Benutzer, ANBID) VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9)";
|
||||
cmd.Parameters.Add(parm1);
|
||||
cmd.Parameters.Add(parm2);
|
||||
cmd.Parameters.Add(parm3);
|
||||
cmd.Parameters.Add(parm4);
|
||||
cmd.Parameters.Add(parm5);
|
||||
cmd.Parameters.Add(parm6);
|
||||
cmd.Parameters.Add(parm7);
|
||||
cmd.Parameters.Add(parm8);
|
||||
cmd.Parameters.Add(parm9);
|
||||
int rowsUpdated = cmd.ExecuteNonQuery();
|
||||
}
|
||||
else
|
||||
{
|
||||
//OracleCommand cmd = new OracleCommand();
|
||||
//cmd.Connection = conn;
|
||||
//cmd.CommandText = "UPDATE VT_ZAEHLER_PD SET Auftragsnummer = :1, VT_Identnummer = :2, Max_Pruefindex = :4, Zaehlernummer = :5, Sekundaere_Adr= :6, Hydr_Pruefung= :7, ID_Benutzer= :8 WHERE VT_Fernum = :3 and ANBID = :9";
|
||||
//cmd.Parameters.Add(parm1);
|
||||
//cmd.Parameters.Add(parm2);
|
||||
//cmd.Parameters.Add(parm3);
|
||||
//cmd.Parameters.Add(parm4);
|
||||
//cmd.Parameters.Add(parm5);
|
||||
//cmd.Parameters.Add(parm6);
|
||||
//cmd.Parameters.Add(parm7);
|
||||
//cmd.Parameters.Add(parm8);
|
||||
//cmd.Parameters.Add(parm9);
|
||||
//int rowsUpdated = cmd.ExecuteNonQuery();
|
||||
|
||||
OracleTransaction transaction = conn.BeginTransaction();
|
||||
try
|
||||
{
|
||||
OracleCommand cmd = new OracleCommand();
|
||||
cmd.Connection = conn;
|
||||
cmd.CommandText = "UPDATE VT_ZAEHLER_PD SET Auftragsnummer = :1, VT_Identnummer = :2, Max_Pruefindex = :4, Zaehlernummer = :5, Sekundaere_Adr= :6, Hydr_Pruefung= :7, ID_Benutzer= :8 WHERE VT_Fernum = :3 and ANBID = :9";
|
||||
cmd.Parameters.Add(parm1);
|
||||
cmd.Parameters.Add(parm2);
|
||||
cmd.Parameters.Add(parm3);
|
||||
cmd.Parameters.Add(parm4);
|
||||
cmd.Parameters.Add(parm5);
|
||||
cmd.Parameters.Add(parm6);
|
||||
cmd.Parameters.Add(parm7);
|
||||
cmd.Parameters.Add(parm8);
|
||||
cmd.Parameters.Add(parm9);
|
||||
|
||||
int rowsUpdated = cmd.ExecuteNonQuery();
|
||||
|
||||
transaction.Commit();
|
||||
}
|
||||
catch
|
||||
{
|
||||
transaction.Rollback();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -362,7 +497,7 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
|
||||
if (i < resultItems.Count - 1)
|
||||
{
|
||||
if (!writerCfg.EliminateSpaces)
|
||||
if (!dbCfg.EliminateSpaces)
|
||||
{
|
||||
writer.Write(new string(' ', columnWidths[i] - resultItems[i].ClmnHeaderText.Length + 3));
|
||||
}
|
||||
@ -395,7 +530,7 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
|
||||
if (i < resultItems.Count - 1)
|
||||
{
|
||||
if (!writerCfg.EliminateSpaces)
|
||||
if (!dbCfg.EliminateSpaces)
|
||||
{
|
||||
writer.Write(new string(' ', columnWidths[i] - text.Length + 3));
|
||||
}
|
||||
@ -465,7 +600,7 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
|
||||
if (i < resultItems.Count - 1)
|
||||
{
|
||||
if (!writerCfg.EliminateSpaces)
|
||||
if (!dbCfg.EliminateSpaces)
|
||||
{
|
||||
writer.Write(new string(' ', columnWidths[i] - resultItems[i].ClmnHeaderText.Length + 3));
|
||||
}
|
||||
@ -497,7 +632,7 @@ namespace TBF.BenchControl.DB.SensusOracle
|
||||
|
||||
if (i < resultItems.Count - 1)
|
||||
{
|
||||
if (!writerCfg.EliminateSpaces)
|
||||
if (!dbCfg.EliminateSpaces)
|
||||
{
|
||||
writer.Write(new string(' ', columnWidths[i] - text.Length + 3));
|
||||
}
|
||||
|
||||
@ -521,7 +521,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
else if (activity.ToLower().Contains(SetTestModeStr.ToLower())) error = SetTestMode(wm, ref resultStr);
|
||||
else if (activity.ToLower().Equals(SetActiveModeStr.ToLower())) error = SetActiveMode(wm, ref resultStr);
|
||||
else if (activity.ToLower().Equals(ReadCalibrationStr.ToLower())) error = ReadCalibration(wm, ref resultStr);
|
||||
else if (activity.ToLower().Equals(WriteCalibrationFactorStr.ToLower())) error = WriteCalibrationFactor(wm, ref resultStr);
|
||||
else if (activity.ToLower().Contains(WriteCalibrationFactorStr.ToLower())) error = WriteCalibrationFactor(wm, ref resultStr);
|
||||
else if (activity.ToLower().Equals(ResetQ2CorrectionStr.ToLower())) error = ResetQ2Correction(wm, ref resultStr);
|
||||
else if (activity.ToLower().Equals(WriteQ2CorrectionStr.ToLower())) error = WriteQ2Correction(wm, ref resultStr);
|
||||
else
|
||||
@ -805,8 +805,23 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
|
||||
|
||||
CommErr error = CommErr.Write;
|
||||
|
||||
UInt16 newCalibFactor = 3000; /// Default value
|
||||
///
|
||||
if (activity.Length > WriteCalibrationFactorStr.Length)
|
||||
{
|
||||
string calibFactrorStr = activity.Substring(WriteCalibrationFactorStr.Length + 1);
|
||||
UInt16 val;
|
||||
if (UInt16.TryParse(calibFactrorStr, out val) && val > 0)
|
||||
{
|
||||
newCalibFactor = val; /// Update with specified value
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/// Write the calculated calibration factor
|
||||
UInt16 newCalibFactor = wm.CalculateNewCalibFactor(wm.CalibrationFactor);
|
||||
newCalibFactor = wm.CalculateNewCalibFactor(wm.CalibrationFactor);
|
||||
}
|
||||
|
||||
byte[] data = new byte[2] { (byte)(newCalibFactor & 0x00FF), (byte)((newCalibFactor >> 8) & 0x00FF) };
|
||||
for (int j = 0; j < MaxCommRetries; j++)
|
||||
{
|
||||
|
||||
@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("1.5.87.1")]
|
||||
[assembly: AssemblyFileVersion("1.5.87.1")]
|
||||
[assembly: AssemblyVersion("1.5.88.1")]
|
||||
[assembly: AssemblyFileVersion("1.5.88.1")]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user