2015-08-19 12:17:02 +00:00
///
2017-03-14 12:30:01 +00:00
/// Copyright (c) 2015-2017 Sensus Metering Systems
2015-08-19 12:17:02 +00:00
///
using System ;
using System.Collections.Generic ;
2016-02-18 00:08:14 +00:00
using System.Globalization ;
2015-08-19 12:17:02 +00:00
using System.IO ;
using log4net ;
2015-08-19 15:45:29 +00:00
using Oracle.DataAccess.Client ; // ODP.NET Oracle managed provider
using Oracle.DataAccess.Types ;
2016-08-02 21:08:16 +00:00
using Config ;
2015-12-04 16:17:20 +00:00
using Config.Entities ;
2015-08-19 12:17:02 +00:00
using TBF.BenchControl ;
2016-03-02 19:02:30 +00:00
using TBF.BenchControl.Sequences ;
2015-08-19 12:17:02 +00:00
using TBF.Resources ;
namespace TBF.BenchControl.DB.SensusOracle
{
2016-01-08 09:23:36 +00:00
public enum Retv
2015-12-18 18:05:13 +00:00
{
OK ,
Error ,
}
2015-08-19 15:45:29 +00:00
public class Database : ComponentBase , IOperation , GenericDevices . IResultsWriter , Generic . IDevice
2015-08-19 12:17:02 +00:00
{
private static readonly ILog log = LogManager . GetLogger ( typeof ( Database ) ) ;
2016-02-08 15:34:37 +00:00
public override string ToString ( ) { return string . Format ( "Sensus-Oracle-Database({0})" , Cfg . ToString ( 1 ) ) ; }
2015-08-19 12:17:02 +00:00
2015-10-23 12:00:22 +00:00
const int Anbid_StaraTura = 4 ;
2015-08-19 12:17:02 +00:00
2016-02-09 14:04:18 +00:00
public static DatabaseCfg DBCfg ;
2016-01-06 21:37:19 +00:00
string separatorStr ;
2015-08-19 15:45:29 +00:00
/// <summary>
2015-08-19 12:17:02 +00:00
/// Result items to print
/// </summary>
2016-01-06 21:37:19 +00:00
IList < Results . ItemSpec > rsltItems ;
2015-08-19 12:17:02 +00:00
/// <summary>
/// Results to print
/// </summary>
2016-01-06 21:37:19 +00:00
Results . Entities . Batch batch ;
2016-02-09 07:31:14 +00:00
OracleConnection connection ; /// Oracle database connection
2016-02-08 15:34:37 +00:00
StreamWriter writer ; /// Results to disk
StreamWriter logger ; /// Logs specified by LU
2015-11-12 23:03:33 +00:00
2015-08-19 12:17:02 +00:00
2017-03-22 09:25:07 +00:00
///
/// Information extracted from VT_PRUEFPUNKT_SOLL_SD for a given watermeter by query:
/// SELECT * FROM VT_PRUEFPUNKT_SOLL_SD WHERE ANBID=4 AND ID_WZTyp=x AND Rev_WZTyp=y
///
class TestInfo
{
public int PruefungsNr ;
public string QBezeichnung ;
public TestInfo ( int p , string q ) { PruefungsNr = p ; QBezeichnung = q ; }
public override string ToString ( ) { return string . Format ( "({0},{1})" , PruefungsNr , QBezeichnung ) ; }
}
///
static int id_WZTyp ;
static int rev_WZTyp ;
static IList < TestInfo > testInfos = new List < TestInfo > ( ) ;
2016-01-06 21:37:19 +00:00
public Database ( ) { }
2015-08-19 12:17:02 +00:00
2016-08-05 12:32:36 +00:00
public Database ( Generic . IComponentCfg cfg )
2015-08-19 12:17:02 +00:00
: base ( cfg )
{
2016-08-05 12:32:36 +00:00
DBCfg = cfg as DatabaseCfg ;
2015-08-19 12:17:02 +00:00
2016-08-05 12:32:36 +00:00
switch ( DBCfg . Separator )
2015-08-19 12:17:02 +00:00
{
default :
2016-01-08 09:23:36 +00:00
case Separator . None : separatorStr = string . Empty ; break ;
case Separator . Space : separatorStr = " " ; break ;
case Separator . Tabulator : separatorStr = "\t" ; break ;
case Separator . Comma : separatorStr = "," ; break ;
case Separator . Semicolon : separatorStr = ";" ; break ;
2015-08-19 12:17:02 +00:00
}
log . Debug ( this . ToString ( ) ) ;
}
2015-08-19 15:45:29 +00:00
public void Initialize ( )
{
2017-03-14 12:30:01 +00:00
switch ( DBCfg . DBUsed )
{
case DBUsed . Production :
connection = new OracleConnection ( "Data Source=STARA01.WORLD;User Id=deltachef;Password=deltachef;" ) ;
break ;
case DBUsed . Quality :
connection = new OracleConnection ( "Data Source=STARA_TEST.WORLD;User Id=deltachef;Password=deltachef;" ) ; /// TODO: Quality database specification
break ;
case DBUsed . Test :
connection = new OracleConnection ( "Data Source=STARA_TEST.WORLD;User Id=deltachef;Password=deltachef;" ) ;
break ;
default :
connection = null ;
break ;
}
2015-08-20 16:14:22 +00:00
2016-02-09 14:04:18 +00:00
if ( DBCfg . DebugLevel = = DebugMode . Simulate ) return ;
2016-01-08 18:18:45 +00:00
2015-08-21 12:30:47 +00:00
///
/// Do something with the database to see if the connection works well
///
2017-03-14 12:30:01 +00:00
if ( connection ! = null )
{
connection . Open ( ) ;
string rslt = "none" ;
OracleCommand cmd = new OracleCommand ( "select Standort from ANBIETER_SD where ANBID = 4" , connection ) ;
OracleDataReader dr = cmd . ExecuteReader ( ) ;
if ( dr . Read ( ) ) rslt = dr . GetString ( 0 ) ;
dr . Close ( ) ;
connection . Close ( ) ;
}
2015-08-21 12:30:47 +00:00
}
2015-08-19 15:45:29 +00:00
public void RunDeviceBefore ( ) { }
public void RunDeviceAfter ( ) { }
public void StopDevice ( )
{
2016-02-09 07:31:14 +00:00
if ( connection ! = null ) connection . Dispose ( ) ;
2015-08-19 15:45:29 +00:00
}
2015-08-19 12:17:02 +00:00
/// <summary>
/// Eliminate spaces conditionally, depesing on bool WriterCfg.EliminateSpaces
/// </summary>
/// <param name="item">Input string</param>
/// <returns>Output string</returns>
string ElSpaces ( string item )
{
2016-02-09 14:04:18 +00:00
if ( DBCfg . EliminateSpaces )
2015-08-19 12:17:02 +00:00
return item . Replace ( " " , string . Empty ) ;
else
return item ;
}
/// <summary>
/// Returns a file name derived from a DateTime structure.
/// Creates directories on this path as a side effect.
/// </summary>
/// <param name="time">Date and time</param>
/// <returns>File name</returns>
2016-02-08 15:34:37 +00:00
string GetFileName ( DateTime time )
2015-08-19 12:17:02 +00:00
{
2016-02-09 14:04:18 +00:00
string directory = DBCfg . DestinationPath ; /// Ends with "\\";
2015-08-19 12:17:02 +00:00
Directory . CreateDirectory ( directory ) ;
2016-02-09 14:04:18 +00:00
if ( DBCfg . YearFolders )
2015-08-19 12:17:02 +00:00
{
directory = string . Format ( "{0}{1}\\" , directory , time . Year . ToString ( ) ) ;
Directory . CreateDirectory ( directory ) ;
}
2016-02-09 14:04:18 +00:00
if ( DBCfg . MonthFolders )
2015-08-19 12:17:02 +00:00
{
2016-02-08 15:34:37 +00:00
directory = string . Format ( "{0}{1}\\" , directory , time . Month . ToString ( "D2" ) ) ;
2015-08-19 12:17:02 +00:00
Directory . CreateDirectory ( directory ) ;
}
2016-02-09 14:04:18 +00:00
if ( DBCfg . DayFolders )
2015-08-19 12:17:02 +00:00
{
directory = string . Format ( "{0}{1}\\" , directory , time . Day . ToString ( "D2" ) ) ;
Directory . CreateDirectory ( directory ) ;
}
return string . Format ( "{0}{1}{2}{3}-{4}{5}.txt" , directory , ( time . Year % 100 ) . ToString ( "D2" ) ,
time . Month . ToString ( "D2" ) , time . Day . ToString ( "D2" ) , time . Hour . ToString ( "D2" ) , time . Minute . ToString ( "D2" ) ) ;
}
2016-02-08 15:34:37 +00:00
/// <summary>
/// Returns a file name derived from a DateTime structure.
/// Creates directories on this path as a side effect.
/// </summary>
/// <param name="time">Date and time</param>
/// <returns>File name</returns>
string GetLogFileName ( DateTime time )
{
2016-02-09 14:04:18 +00:00
string directory = DBCfg . LogFolderPath ; /// Ends with "\\";
2016-02-08 15:34:37 +00:00
Directory . CreateDirectory ( directory ) ;
2016-02-09 14:04:18 +00:00
if ( DBCfg . YearFolders )
2016-02-08 15:34:37 +00:00
{
directory = string . Format ( "{0}{1}\\" , directory , time . Year . ToString ( ) ) ;
Directory . CreateDirectory ( directory ) ;
}
2016-02-09 14:04:18 +00:00
if ( DBCfg . MonthFolders )
2016-02-08 15:34:37 +00:00
{
directory = string . Format ( "{0}{1}\\" , directory , time . Month . ToString ( "D2" ) ) ;
Directory . CreateDirectory ( directory ) ;
}
2016-02-09 14:04:18 +00:00
if ( DBCfg . DayFolders )
2016-02-08 15:34:37 +00:00
{
directory = string . Format ( "{0}{1}\\" , directory , time . Day . ToString ( "D2" ) ) ;
Directory . CreateDirectory ( directory ) ;
}
return string . Format ( "{0}{1}_{2}.log" , directory , time . Hour . ToString ( "D2" ) , time . Minute . ToString ( "D2" ) ) ;
}
2015-08-19 12:17:02 +00:00
/// <summary>
/// Writes the test cycle results into a file, Events: Event.ResultsWritten
/// </summary>
/// <param name="procedure">Procedure to print the results of</param>
/// <param name="unsortedResults">Results to write into the file</param>
/// <returns>Reference to the operation</returns>
2016-01-06 21:37:19 +00:00
public IOperation WriteResultsOp ( Results . Entities . Batch batch )
2015-08-19 12:17:02 +00:00
{
2016-01-06 21:37:19 +00:00
this . batch = batch ;
2015-08-19 12:17:02 +00:00
2016-05-28 11:40:58 +00:00
string fname = GetLogFileName ( batch . StartTime ) ;
2015-08-19 12:17:02 +00:00
2016-05-28 11:40:58 +00:00
try
2016-02-08 15:34:37 +00:00
{
2016-05-28 11:40:58 +00:00
logger = new StreamWriter ( System . IO . File . Create ( fname ) ) ;
2016-02-08 15:34:37 +00:00
}
catch
{
logger = null ;
log . ErrorFormat ( "Was not able to open LU log file {0}" , fname ) ;
}
2015-08-19 12:17:02 +00:00
return this ;
}
/// <summary>Start this operation</summary>
public void Start ( )
{
2015-12-18 18:05:13 +00:00
}
2015-11-12 23:03:33 +00:00
2015-12-18 18:05:13 +00:00
/// <summary>Run this operation</summary>
/// <returns>Event.ResultsWritten or Event.Error</returns>
public Event Run ( )
{
2016-01-08 09:23:36 +00:00
if ( batch . WaterMeters . Count = = 0 ) return Event . ResultsWritten ;
2015-12-18 18:05:13 +00:00
2016-01-08 09:23:36 +00:00
bool anyError = false ;
2017-02-14 12:25:43 +00:00
#if ORACLE_DB
2017-03-14 12:30:01 +00:00
if ( DBCfg . DebugLevel ! = DebugMode . Simulate & & connection ! = null )
2016-01-08 18:18:45 +00:00
{
2016-02-19 16:53:43 +00:00
if ( WriteResultsToDatabase ( connection , batch , false ) = = Retv . Error ) anyError = true ;
2016-01-08 18:18:45 +00:00
}
2016-01-08 09:23:36 +00:00
#endif
2016-02-08 15:34:37 +00:00
2017-03-22 09:25:07 +00:00
WriteLogsToDisk ( logger , batch ) ;
2016-01-10 13:13:33 +00:00
if ( anyError )
2015-12-18 18:05:13 +00:00
{
2016-01-08 18:18:45 +00:00
return Event . ResultsNotWritten ;
2015-12-18 18:05:13 +00:00
}
else
{
return Event . ResultsWritten ;
}
}
/// <summary>Stop this operation</summary>
public void Stop ( )
{
}
2015-08-19 12:17:02 +00:00
2016-02-18 00:51:54 +00:00
public static Retv WriteLogsToDisk ( StreamWriter logger , Results . Entities . Batch batch )
2016-04-07 13:37:49 +00:00
{
2017-02-14 12:25:43 +00:00
#if TURA_IPERL | | TURA_SPECIAL
2016-02-08 15:34:37 +00:00
if ( logger = = null ) return Retv . Error ;
2016-02-18 00:08:14 +00:00
Results . Entities . WaterMeter wm0 = null ;
foreach ( var wm in batch . WaterMeters ) if ( wm ! = null ) { wm0 = wm ; break ; }
if ( wm0 = = null ) return Retv . Error ;
Results . Entities . WaterMeterData wmData = wm0 . WaterMeterData ;
2016-02-18 00:51:54 +00:00
Results . Entities . MeterTestRslt adj = wm0 . GetMeterTestRslt ( string . Format ( "Adjustment" ) ) ;
2016-02-18 00:08:14 +00:00
Results . Entities . MeterTestRslt q1 = wm0 . GetMeterTestRslt ( string . Format ( "Q1" ) ) ;
Results . Entities . MeterTestRslt q2 = wm0 . GetMeterTestRslt ( string . Format ( "Q2" ) ) ;
Results . Entities . MeterTestRslt q3 = wm0 . GetMeterTestRslt ( string . Format ( "Q3" ) ) ;
if ( adj = = null | | q1 = = null | | q2 = = null | | q3 = = null ) return Retv . Error ;
2016-02-08 15:34:37 +00:00
try
{
logger . WriteLine ( "[Wasserzähler-Daten]" ) ;
logger . WriteLine ( string . Format ( "PruefPunkte={0}" , 3 ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Typ={0}" , batch . ProcedureName ) ) ; /// iP 020 Q3_4 R160 A XXXX
logger . WriteLine ( string . Format ( "MetroKlasse={0}" , wmData . MetrologicalClass ) ) ;
logger . WriteLine ( string . Format ( "Zulassungszeichen={0}" , wmData . ApprovalInfo ) ) ;
2016-05-01 08:04:05 +00:00
logger . WriteLine ( string . Format ( "Qn={0}" , wmData . Q3_Qn . ToString ( "F1" , Program . AltCulture ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Impulsrate={0}" , q3 . PulsesPerLiter . ToString ( Program . AltCulture ) ) ) ; /// 50,000
logger . WriteLine ( string . Format ( "WZid={0}" , wmData . WMTypeId ) ) ;
logger . WriteLine ( string . Format ( "RevWzTyp={0}" , wmData . WMTypeRev ) ) ;
logger . WriteLine ( string . Format ( "RevPruefstandWzTyp=2" ) ) ; /// 2
logger . WriteLine ( string . Format ( "Durchfluss-5=0,0" ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "Prüfzeit-5=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "Prüfbereich100_110-5=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "PrüfbereichMin-5=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "PrüfbereichMax-5=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "QBezeichnung-5=" ) ) ; ///
logger . WriteLine ( string . Format ( "Durchfluss-4=0,0" ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "Prüfzeit-4=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "Prüfbereich100_110-4=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "PrüfbereichMin-4=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "PrüfbereichMax-4=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "QBezeichnung-4=" ) ) ; ///
logger . WriteLine ( string . Format ( "Durchfluss-3=0,0" ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "Prüfzeit-3=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "Prüfbereich100_110-3=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "PrüfbereichMin-3=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "PrüfbereichMax-3=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "QBezeichnung-3=" ) ) ; ///
logger . WriteLine ( string . Format ( "Durchfluss-2=0,0" ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "Prüfzeit-2=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "Prüfbereich100_110-2=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "PrüfbereichMin-2=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "PrüfbereichMax-2=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "QBezeichnung-2=" ) ) ; ///
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "Durchfluss-1={0}" , Units . ConvertTo ( Unit . lph , adj . Qto ( ) ) . ToString ( "F1" , Program . AltCulture ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Prüfzeit-1={0}" , adj . TargetTime ( ) . ToString ( "F0" ) ) ) ;
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "Prüfbereich100_110-1={0}" , 0 ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "PrüfbereichMin-1={0}" , 90 ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMax-1={0}" , 100 ) ) ;
logger . WriteLine ( string . Format ( "QBezeichnung-1=Just" ) ) ;
logger . WriteLine ( string . Format ( "Durchfluss-0=0,0" ) ) ;
logger . WriteLine ( string . Format ( "Prüfzeit-0=0" ) ) ;
logger . WriteLine ( string . Format ( "Prüfbereich100_110-0=0" ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMin-0=0" ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMax-0=0" ) ) ;
logger . WriteLine ( string . Format ( "QBezeichnung-0=" ) ) ;
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "Durchfluss1={0}" , Units . ConvertTo ( Unit . lph , q1 . Qfrom ( ) ) . ToString ( "F1" , Program . AltCulture ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Prüfzeit1={0}" , q1 . TargetTime ( ) . ToString ( "F0" ) ) ) ;
logger . WriteLine ( string . Format ( "Prüfbereich100_1101={0}" , 1 ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMin1={0}" , 100 ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMax1={0}" , 110 ) ) ;
logger . WriteLine ( string . Format ( "QBezeichnung1=Q1" ) ) ;
logger . WriteLine ( string . Format ( "PosFehlergrenze1={0}" , q1 . ErrLimHi ( ) . ToString ( "F1" , Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "NegFehlergrenze1={0}" , q1 . ErrLimLo ( ) . ToString ( "F1" , Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "PosFehlergrenzeWarm1=0,0" ) ) ;
logger . WriteLine ( string . Format ( "NegFehlergrenzeWarm1=0,0" ) ) ;
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "Durchfluss2={0}" , Units . ConvertTo ( Unit . lph , q2 . Qfrom ( ) ) . ToString ( "F1" , Program . AltCulture ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Prüfzeit2={0}" , q2 . TargetTime ( ) . ToString ( "F0" ) ) ) ;
logger . WriteLine ( string . Format ( "Prüfbereich100_1102={0}" , 1 ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMin2={0}" , 100 ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMax2={0}" , 110 ) ) ;
logger . WriteLine ( string . Format ( "QBezeichnung2=Q2" ) ) ;
logger . WriteLine ( string . Format ( "PosFehlergrenze2={0}" , q2 . ErrLimHi ( ) . ToString ( "F1" , Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "NegFehlergrenze2={0}" , q2 . ErrLimLo ( ) . ToString ( "F1" , Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "PosFehlergrenzeWarm2=0,0" ) ) ;
logger . WriteLine ( string . Format ( "NegFehlergrenzeWarm2=0,0" ) ) ;
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "Durchfluss3={0}" , Units . ConvertTo ( Unit . lph , q3 . Qto ( ) ) . ToString ( "F1" , Program . AltCulture ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Prüfzeit3={0}" , q3 . TargetTime ( ) . ToString ( "F0" ) ) ) ;
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "Prüfbereich100_1103={0}" , 0 ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "PrüfbereichMin3={0}" , 90 ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMax3={0}" , 100 ) ) ;
logger . WriteLine ( string . Format ( "QBezeichnung3=Q3" ) ) ;
logger . WriteLine ( string . Format ( "PosFehlergrenze3={0}" , q3 . ErrLimHi ( ) . ToString ( "F1" , Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "NegFehlergrenze3={0}" , q3 . ErrLimLo ( ) . ToString ( "F1" , Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "PosFehlergrenzeWarm3=0,0" ) ) ;
logger . WriteLine ( string . Format ( "NegFehlergrenzeWarm3=0,0" ) ) ;
logger . WriteLine ( string . Format ( "Durchfluss4=0,0" ) ) ;
logger . WriteLine ( string . Format ( "Prüfzeit4=0" ) ) ;
logger . WriteLine ( string . Format ( "Prüfbereich100_1104=0" ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMin4=0" ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMax4=0" ) ) ;
logger . WriteLine ( string . Format ( "QBezeichnung4=" ) ) ;
logger . WriteLine ( string . Format ( "PosFehlergrenze4=0,0" ) ) ;
logger . WriteLine ( string . Format ( "NegFehlergrenze4=0,0" ) ) ;
logger . WriteLine ( string . Format ( "PosFehlergrenzeWarm4=0,0" ) ) ;
logger . WriteLine ( string . Format ( "NegFehlergrenzeWarm4=0,0" ) ) ;
logger . WriteLine ( string . Format ( "Durchfluss5=0,0" ) ) ;
logger . WriteLine ( string . Format ( "Prüfzeit5=0" ) ) ;
logger . WriteLine ( string . Format ( "Prüfbereich100_1105=0" ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMin5=0" ) ) ;
logger . WriteLine ( string . Format ( "PrüfbereichMax5=0" ) ) ;
logger . WriteLine ( string . Format ( "QBezeichnung5=" ) ) ;
logger . WriteLine ( string . Format ( "PosFehlergrenze5=0,0" ) ) ;
logger . WriteLine ( string . Format ( "NegFehlergrenze5=0,0" ) ) ;
logger . WriteLine ( string . Format ( "PosFehlergrenzeWarm5=0,0" ) ) ;
logger . WriteLine ( string . Format ( "NegFehlergrenzeWarm5=0,0" ) ) ;
logger . WriteLine ( string . Format ( "GetriebeImpulse=2,000" ) ) ; /// 2,000
logger . WriteLine ( string . Format ( "OptikAufsetzen=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "Warm_Kalt=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "Füllzeit=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "EvakVorneZeit=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "EvakHintenZeit={0}" , 0 ) ) ; /// 90
logger . WriteLine ( string . Format ( "Spüllzeit={0}" , 0 ) ) ; /// 60
logger . WriteLine ( string . Format ( "Spüldurchfluss={0}" , 0 ) ) ; /// 5000,0
logger . WriteLine ( string . Format ( "Abpresszeit={0}" , 0 ) ) ; /// 60
logger . WriteLine ( string . Format ( "Abpressdruck={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "Entwässerzeit={0}" , 0 ) ) ; /// 10
logger . WriteLine ( string . Format ( "DinA4_Format={0}" , 0 ) ) ; /// 0
logger . WriteLine ( string . Format ( "Netzwerk_Format={0}" , 0 ) ) ; /// 0
logger . WriteLine ( string . Format ( "Zählernr_Format={0}" , 0 ) ) ; /// 1
logger . WriteLine ( string . Format ( "WZ_Gruppe=24" ) ) ; /// 24 - iPerl
logger . WriteLine ( string . Format ( "MittelwertTiefe={0}" , 0 ) ) ; /// 1
logger . WriteLine ( string . Format ( "EndKriterium={0}" , 0 ) ) ; /// 0
logger . WriteLine ( string . Format ( "Justieren={0}" , 1 ) ) ; /// 1
logger . WriteLine ( string . Format ( "Bemerkung=" ) ) ; ///
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "Gesamtprüfzeit={0}" , ( adj . TargetTime ( ) + q1 . TargetTime ( ) + q2 . TargetTime ( ) + q3 . TargetTime ( ) ) . ToString ( "F0" ) ) ) ;
logger . WriteLine ( string . Format ( "Gegenprüfung={0}" , 0 ) ) ; /// 0
logger . WriteLine ( string . Format ( "Geändert_von={0}" , 6 ) ) ; /// 4459
logger . WriteLine ( string . Format ( "Geändert_am={0:dd.MM.yyyy HH:mm:ss}" , DateTime . Now ) ) ; /// 29.05.2015 13:46:17
2016-02-08 15:34:37 +00:00
for ( int i = 0 ; i < batch . WaterMeters . Count ; i + + )
{
Results . Entities . WaterMeter wMtr = batch . WaterMeters [ i ] ;
2016-02-18 00:51:54 +00:00
adj = wMtr . GetMeterTestRslt ( string . Format ( "Adjustment" ) ) ;
2016-02-18 00:08:14 +00:00
q1 = wMtr . GetMeterTestRslt ( string . Format ( "Q1" ) ) ;
q2 = wMtr . GetMeterTestRslt ( string . Format ( "Q2" ) ) ;
q3 = wMtr . GetMeterTestRslt ( string . Format ( "Q3" ) ) ;
2016-02-08 15:34:37 +00:00
logger . WriteLine ( string . Empty ) ;
logger . WriteLine ( string . Format ( "[Zählerdaten_{0}]" , i + 1 ) ) ;
2016-02-18 00:08:14 +00:00
if ( wMtr = = null | | adj = = null | | q1 = = null | | q2 = = null | | q3 = = null )
{
logger . WriteLine ( "geprüft=0" ) ;
}
else
{
logger . WriteLine ( "geprüft=1" ) ;
2016-02-18 00:51:54 +00:00
logger . WriteLine ( string . Format ( "Zählernummer=" ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "FertigsNr={0}" , wMtr . SerialNr ) ) ;
2016-03-10 09:12:15 +00:00
logger . WriteLine ( string . Format ( "bestanden={0}" , wMtr . Passed ? 1 : 0 ) ) ; /// 1
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Prüfflag={0}" , wMtr . HydrPruefung ) ) ; /// 96
logger . WriteLine ( string . Format ( "FestWertWZ=0" ) ) ; /// 0
logger . WriteLine ( string . Format ( "Dicht={0}" , 1 ) ) ; /// 1
logger . WriteLine ( string . Format ( "PrüfIndex={0}" , wMtr . Pruefindex ) ) ; /// 7301
logger . WriteLine ( string . Format ( "GeprüftIndex=1" ) ) ; /// 1
logger . WriteLine ( string . Format ( "Q-1bestanden=1" ) ) ;
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "Durchfluss-1={0}" , Utils . DoubleToStr ( Units . ConvertTo ( Unit . lph , adj . FlowVolume ( ) ) , 5 , true ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Fehler-1={0}" , adj . Error . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "ZeitImpulse-1={0}" , adj . TestTime . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "Impulse-1=0" ) ) ;
logger . WriteLine ( string . Format ( "Volumen-1={0}" , adj . VolumeMeter . ToString ( Program . AltCulture ) ) ) ;
2016-11-02 12:46:32 +00:00
logger . WriteLine ( string . Format ( "KorrFehler-1={0}" , adj . Error . ToString ( Program . AltCulture ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "KorrDurchfluss-1={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Q-1KorrBestanden={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Anfangsstand-1={0}" , 0 ) ) ; /// TODO
logger . WriteLine ( string . Format ( "Endstand-1={0}" , 0 ) ) ; /// TODO
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "QMittelwert-1={0}" , Utils . DoubleToStr ( Units . ConvertTo ( Unit . lph , adj . FlowVolume ( ) ) , 5 , true ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "QStandardAbweichung-1={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "ImpedanzMittelwert-1=0,00000" ) ) ;
logger . WriteLine ( string . Format ( "AusfallGrund-1={0}" , 0 ) ) ;
2016-03-07 08:08:32 +00:00
logger . WriteLine ( string . Format ( "Q1bestanden={0}" , q1 . Passed ? 1 : 0 ) ) ;
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "Durchfluss1={0}" , Utils . DoubleToStr ( Units . ConvertTo ( Unit . lph , q1 . FlowVolume ( ) ) , 5 , true ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Fehler1={0}" , q1 . Error . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "ZeitImpulse1={0}" , q1 . TestTime . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "Impulse1={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Volumen1={0}" , q1 . VolumeMeter . ToString ( Program . AltCulture ) ) ) ;
2016-11-02 12:46:32 +00:00
logger . WriteLine ( string . Format ( "KorrFehler1={0}" , q1 . Error . ToString ( Program . AltCulture ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "KorrDurchfluss1={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Q1KorrBestanden={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Anfangsstand1={0}" , 0 ) ) ; /// TODO
logger . WriteLine ( string . Format ( "Endstand1={0}" , 0 ) ) ; /// TODO
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "QMittelwert1={0}" , Utils . DoubleToStr ( Units . ConvertTo ( Unit . lph , q1 . FlowVolume ( ) ) , 5 , true ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "QStandardAbweichung1={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "ImpedanzMittelwert1=0,00000" ) ) ;
logger . WriteLine ( string . Format ( "AusfallGrund1={0}" , 0 ) ) ;
2016-03-07 08:08:32 +00:00
logger . WriteLine ( string . Format ( "Q2bestanden={0}" , q2 . Passed ? 1 : 0 ) ) ;
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "Durchfluss2={0}" , Utils . DoubleToStr ( Units . ConvertTo ( Unit . lph , q2 . FlowVolume ( ) ) , 5 , true ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Fehler2={0}" , q2 . Error . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "ZeitImpulse2={0}" , q2 . TestTime . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "Impulse2={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Volumen2={0}" , q2 . VolumeMeter . ToString ( Program . AltCulture ) ) ) ;
2016-11-02 12:46:32 +00:00
logger . WriteLine ( string . Format ( "KorrFehler2={0}" , q2 . WaterMeter . Q2CorrectionDone ? q2 . WaterMeter . Q2ErrWOCorrection . ToString ( Program . AltCulture )
: q2 . Error . ToString ( Program . AltCulture ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "KorrDurchfluss2={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Q2KorrBestanden={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Anfangsstand2={0}" , 0 ) ) ; /// TODO
logger . WriteLine ( string . Format ( "Endstand2={0}" , 0 ) ) ; /// TODO
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "QMittelwert2={0}" , Utils . DoubleToStr ( Units . ConvertTo ( Unit . lph , q2 . FlowVolume ( ) ) , 5 , true ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "QStandardAbweichung2={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "ImpedanzMittelwert2=0,00000" ) ) ;
logger . WriteLine ( string . Format ( "AusfallGrund2={0}" , 0 ) ) ;
2016-03-07 08:08:32 +00:00
logger . WriteLine ( string . Format ( "Q3bestanden={0}" , q3 . Passed ? 1 : 0 ) ) ;
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "Durchfluss3={0}" , Utils . DoubleToStr ( Units . ConvertTo ( Unit . lph , q3 . FlowVolume ( ) ) , 5 , true ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Fehler3={0}" , q3 . Error . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "ZeitImpulse3={0}" , q3 . TestTime . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "Impulse3={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Volumen3={0}" , q3 . VolumeMeter . ToString ( Program . AltCulture ) ) ) ;
2016-11-02 12:46:32 +00:00
logger . WriteLine ( string . Format ( "KorrFehler3={0}" , q3 . Error . ToString ( Program . AltCulture ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "KorrDurchfluss3={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Q3KorrBestanden={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Anfangsstand3={0}" , 0 ) ) ; /// TODO
logger . WriteLine ( string . Format ( "Endstand3={0}" , 0 ) ) ; /// TODO
2016-10-27 12:54:37 +00:00
logger . WriteLine ( string . Format ( "QMittelwert3={0}" , Utils . DoubleToStr ( Units . ConvertTo ( Unit . lph , q3 . FlowVolume ( ) ) , 5 , true ) ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "QStandardAbweichung3={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "ImpedanzMittelwert3=0,00000" ) ) ;
logger . WriteLine ( string . Format ( "AusfallGrund3={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "AusfallGrundGesamt={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "AuftragNum={0}" , wMtr . PurchaseOrder ) ) ;
logger . WriteLine ( string . Format ( "MaterialNum={0}" , 38140500 ) ) ;
logger . WriteLine ( string . Format ( "Prefix={0}" , "8SEN01" ) ) ;
logger . WriteLine ( string . Format ( "Suffix=" ) ) ;
logger . WriteLine ( string . Format ( "Palette={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "Umkarton={0}" , 0 ) ) ;
logger . WriteLine ( string . Format ( "ZNr_komplett=" ) ) ;
logger . WriteLine ( string . Format ( "OptikBewertung=0,00000" ) ) ;
logger . WriteLine ( string . Format ( "IdProduziert={0}" , 0 ) ) ; /// 61
logger . WriteLine ( string . Format ( "Calibration_alt={0}" , wMtr . OrigCalibFactor ) ) ;
logger . WriteLine ( string . Format ( "Calibration={0}" , wMtr . CalibFactor ) ) ;
logger . WriteLine ( string . Format ( "Firmware={0}" , "05.66" ) ) ; /// 05.66
logger . WriteLine ( string . Format ( "FlexFlowFehler={0}" , 0 ) ) ; /// 0
logger . WriteLine ( string . Format ( "FlexFlowAuftrag={0}" , 0 ) ) ; /// 4248189
logger . WriteLine ( string . Format ( "JustierWert=0,2" ) ) ; /// 0,2
logger . WriteLine ( string . Format ( "Corrected2Hz={0}" , wMtr . Hz2CorrectionDone ? 1 : 0 ) ) ;
logger . WriteLine ( string . Format ( "Q2Corrected={0}" , wMtr . Q2CorrectionDone ? 1 : 0 ) ) ;
2017-03-31 12:17:18 +00:00
logger . WriteLine ( string . Format ( "Q2CorrectionRight={0}" , wMtr . Q2CorrRFlow ) ) ;
logger . WriteLine ( string . Format ( "Q2CorrectionLeft={0}" , wMtr . Q2CorrLFlow ) ) ;
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Q2CorrectionFlowRight={0}" , wMtr . Q2CorrFlowRight ) ) ;
logger . WriteLine ( string . Format ( "FlowDirectionRight={0}" , wMtr . Q2CorrFlowRight ) ) ;
logger . WriteLine ( string . Format ( "Position={0}" , wMtr . WMPosition ) ) ;
}
2016-02-08 15:34:37 +00:00
}
2016-03-02 19:02:30 +00:00
logger . WriteLine ( string . Empty ) ;
logger . WriteLine ( "[Prüfdaten]" ) ;
///
logger . WriteLine ( string . Format ( "Startzeit={0}" , batch . StartTime . ToString ( "HH:mm:ss" ) ) ) ;
logger . WriteLine ( string . Format ( "Endezeit={0}" , batch . EndTime . ToString ( "HH:mm:ss" ) ) ) ;
logger . WriteLine ( string . Format ( "Datum={0}" , batch . StartTime . ToString ( "dd.MM.yyyy" ) ) ) ;
logger . WriteLine ( string . Format ( "GesamtDauer={0}" , batch . EndTime . Subtract ( batch . StartTime ) . TotalSeconds ) ) ;
logger . WriteLine ( string . Format ( "Dichtprüfung={0}" , 0 ) ) ; /// 1
///
logger . WriteLine ( string . Format ( "Q-5_geprüft={0}" , 0 ) ) ; /// 0
///
logger . WriteLine ( string . Format ( "Q-4_geprüft={0}" , 0 ) ) ; /// 0
///
logger . WriteLine ( string . Format ( "Q-3_geprüft={0}" , 0 ) ) ; /// 0
///
logger . WriteLine ( string . Format ( "Q-2_geprüft={0}" , 0 ) ) ; /// 0
///
logger . WriteLine ( string . Format ( "Q-1_geprüft={0}" , 1 ) ) ; /// 1
logger . WriteLine ( string . Format ( "Prüfvolumen-1={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "Prüfmasse-1={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "Temp1_P-1={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp2_P-1={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp3_P-1={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp4_P-1={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp5_P-1={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp6_P-1={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp7_P-1={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "Temp8_P-1={0}" , 0 ) ) ; /// 0,0
2016-12-19 12:49:21 +00:00
logger . WriteLine ( string . Format ( "Druck1_P-1={0}" , adj . TestRslt . PressUpMean . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "Druck2_P-1={0}" , adj . TestRslt . PressDownMean . ToString ( Program . AltCulture ) ) ) ;
2016-03-02 19:02:30 +00:00
logger . WriteLine ( string . Format ( "K-Faktor-1={0}" , 0 ) ) ; /// 0,00000000
logger . WriteLine ( string . Format ( "Q_Waage-1={0}" , 0 ) ) ; /// 3880,87469
logger . WriteLine ( string . Format ( "Q_Vergleich-1={0}" , 0 ) ) ; /// 3869,47056
logger . WriteLine ( string . Format ( "Fehler_Vergleich-1={0}" , 0 ) ) ; /// -0,29472
logger . WriteLine ( string . Format ( "VZ_ZeitImpulse-1={0}" , 0 ) ) ; /// 500,14362
logger . WriteLine ( string . Format ( "VZ_Impulse-1={0}" , 0 ) ) ; /// 645097
logger . WriteLine ( string . Format ( "ZeitImpulse_VZ-1={0}" , 0 ) ) ; /// 976843
logger . WriteLine ( string . Format ( "VorwahlZähler-1={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "VZ_Nummer-1={0}" , 0 ) ) ; /// 1
logger . WriteLine ( string . Format ( "Anfangsgewicht-1={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "Endgewicht-1={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "MinDurchfluss-1={0}" , 0 ) ) ; /// 3862,00000
logger . WriteLine ( string . Format ( "MaxDurchfluss-1={0}" , 0 ) ) ; /// 3876,00000
logger . WriteLine ( string . Format ( "Q_Einstellzeit-1={0}" , 0 ) ) ; /// 7,28
logger . WriteLine ( string . Format ( "Pumpennummer-1={0}" , 0 ) ) ; /// 2
logger . WriteLine ( string . Format ( "Drehzahl-1={0}" , 0 ) ) ; /// 2269
logger . WriteLine ( string . Format ( "DAW_Wert-1={0}" , 0 ) ) ; /// 1501
logger . WriteLine ( string . Format ( "Leitfähigkeit-1={0}" , 0 ) ) ; /// 545,05
logger . WriteLine ( string . Format ( "LuftDruck-1={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "LuftFeuchtigkeit-1={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "HyDruck-1={0}" , 0 ) ) ; /// 6,2
logger . WriteLine ( string . Format ( "VorratsDruckHy-1={0}" , 0 ) ) ; /// 6,3
logger . WriteLine ( string . Format ( "Anfangsgewicht2_-1={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "Endgewicht2_-1={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "Prüfmasse2_-1={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "GegenWaage-1={0}" , 0 ) ) ; /// 0
///
logger . WriteLine ( string . Format ( "Q0_geprüft={0}" , 0 ) ) ; /// 0
///
logger . WriteLine ( string . Format ( "Q1_geprüft={0}" , 1 ) ) ; /// 1
logger . WriteLine ( string . Format ( "Prüfvolumen1={0}" , 0 ) ) ; /// 3,73655
logger . WriteLine ( string . Format ( "Prüfmasse1={0}" , 0 ) ) ; /// 3,72610
logger . WriteLine ( string . Format ( "Temp1_P1={0}" , 0 ) ) ; /// 20,0
logger . WriteLine ( string . Format ( "Temp2_P1={0}" , 0 ) ) ; /// 20,0
logger . WriteLine ( string . Format ( "Temp3_P1={0}" , 0 ) ) ; /// 20,0
logger . WriteLine ( string . Format ( "Temp4_P1={0}" , 0 ) ) ; /// 20,0
logger . WriteLine ( string . Format ( "Temp5_P1={0}" , 0 ) ) ; /// 20,0
logger . WriteLine ( string . Format ( "Temp6_P1={0}" , 0 ) ) ; /// 20,0
logger . WriteLine ( string . Format ( "Temp7_P1={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "Temp8_P1={0}" , 0 ) ) ; /// 0,0
2016-12-19 12:49:21 +00:00
logger . WriteLine ( string . Format ( "Druck1_P1={0}" , q1 . TestRslt . PressUpMean . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "Druck2_P1={0}" , q1 . TestRslt . PressDownMean . ToString ( Program . AltCulture ) ) ) ;
2016-03-02 19:02:30 +00:00
logger . WriteLine ( string . Format ( "K-Faktor1={0}" , 0 ) ) ; /// 0,99820080
logger . WriteLine ( string . Format ( "Q_Waage1={0}" , 0 ) ) ; /// 26,89887
logger . WriteLine ( string . Format ( "Q_Vergleich1={0}" , 0 ) ) ; /// 26,83427
logger . WriteLine ( string . Format ( "Fehler_Vergleich1={0}" , 0 ) ) ; /// -0,24014
logger . WriteLine ( string . Format ( "VZ_ZeitImpulse1={0}" , 0 ) ) ; /// 500,07962
logger . WriteLine ( string . Format ( "VZ_Impulse1={0}" , 0 ) ) ; /// 4473091
logger . WriteLine ( string . Format ( "ZeitImpulse_VZ1={0}" , 0 ) ) ; /// 976718
logger . WriteLine ( string . Format ( "VorwahlZähler1={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "VZ_Nummer1={0}" , 0 ) ) ; /// 3
logger . WriteLine ( string . Format ( "Anfangsgewicht1={0}" , 0 ) ) ; /// 4,66535
logger . WriteLine ( string . Format ( "Endgewicht1={0}" , 0 ) ) ; /// 8,39145
logger . WriteLine ( string . Format ( "MinDurchfluss1={0}" , 0 ) ) ; /// 26,73800
logger . WriteLine ( string . Format ( "MaxDurchfluss1={0}" , 0 ) ) ; /// 27,04800
logger . WriteLine ( string . Format ( "Q_Einstellzeit1={0}" , 0 ) ) ; /// 4,17
logger . WriteLine ( string . Format ( "Pumpennummer1={0}" , 0 ) ) ; /// 3
logger . WriteLine ( string . Format ( "Drehzahl1={0}" , 0 ) ) ; /// 1743
logger . WriteLine ( string . Format ( "DAW_Wert1={0}" , 0 ) ) ; /// 2700
logger . WriteLine ( string . Format ( "Leitfähigkeit1={0}" , 0 ) ) ; /// 543,10
logger . WriteLine ( string . Format ( "LuftDruck1={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "LuftFeuchtigkeit1={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "HyDruck1={0}" , 0 ) ) ; /// 6,2
logger . WriteLine ( string . Format ( "VorratsDruckHy1={0}" , 0 ) ) ; /// 6,3
logger . WriteLine ( string . Format ( "Anfangsgewicht2_1={0}" , 0 ) ) ; /// 37,94400
logger . WriteLine ( string . Format ( "Endgewicht2_1={0}" , 0 ) ) ; /// 37,94200
logger . WriteLine ( string . Format ( "Prüfmasse2_1={0}" , 0 ) ) ; /// -0,00200
logger . WriteLine ( string . Format ( "GegenWaage1={0}" , 0 ) ) ; /// 1
///
logger . WriteLine ( string . Format ( "Q2_geprüft={0}" , 1 ) ) ; /// 1
logger . WriteLine ( string . Format ( "Prüfvolumen2={0}" , 0 ) ) ; /// 4,65370
logger . WriteLine ( string . Format ( "Prüfmasse2={0}" , 0 ) ) ; /// 4,64078
logger . WriteLine ( string . Format ( "Temp1_P2={0}" , 0 ) ) ; /// 19,9
logger . WriteLine ( string . Format ( "Temp2_P2={0}" , 0 ) ) ; /// 19,9
logger . WriteLine ( string . Format ( "Temp3_P2={0}" , 0 ) ) ; /// 19,9
logger . WriteLine ( string . Format ( "Temp4_P2={0}" , 0 ) ) ; /// 19,9
logger . WriteLine ( string . Format ( "Temp5_P2={0}" , 0 ) ) ; /// 19,9
logger . WriteLine ( string . Format ( "Temp6_P2={0}" , 0 ) ) ; /// 19,9
logger . WriteLine ( string . Format ( "Temp7_P2={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "Temp8_P2={0}" , 0 ) ) ; /// 0,0
2016-12-19 12:49:21 +00:00
logger . WriteLine ( string . Format ( "Druck1_P2={0}" , q2 . TestRslt . PressUpMean . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "Druck2_P2={0}" , q2 . TestRslt . PressDownMean . ToString ( Program . AltCulture ) ) ) ;
2016-03-02 19:02:30 +00:00
logger . WriteLine ( string . Format ( "K-Faktor2={0}" , 0 ) ) ; /// 0,99822140
logger . WriteLine ( string . Format ( "Q_Waage2={0}" , 0 ) ) ; /// 41,84627
logger . WriteLine ( string . Format ( "Q_Vergleich2={0}" , 0 ) ) ; /// 41,68738
logger . WriteLine ( string . Format ( "Fehler_Vergleich2={0}" , 0 ) ) ; /// -0,37970
logger . WriteLine ( string . Format ( "VZ_ZeitImpulse2={0}" , 0 ) ) ; /// 400,35379
logger . WriteLine ( string . Format ( "VZ_Impulse2={0}" , 0 ) ) ; /// 166897
logger . WriteLine ( string . Format ( "ZeitImpulse_VZ2={0}" , 0 ) ) ; /// 781941
logger . WriteLine ( string . Format ( "VorwahlZähler2={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "VZ_Nummer2={0}" , 0 ) ) ; /// 2
logger . WriteLine ( string . Format ( "Anfangsgewicht2={0}" , 0 ) ) ; /// 0,02457
logger . WriteLine ( string . Format ( "Endgewicht2={0}" , 0 ) ) ; /// 4,66535
logger . WriteLine ( string . Format ( "MinDurchfluss2={0}" , 0 ) ) ; /// 40,43333
logger . WriteLine ( string . Format ( "MaxDurchfluss2={0}" , 0 ) ) ; /// 42,23333
logger . WriteLine ( string . Format ( "Q_Einstellzeit2={0}" , 0 ) ) ; /// 3,80
logger . WriteLine ( string . Format ( "Pumpennummer2={0}" , 0 ) ) ; /// 3
logger . WriteLine ( string . Format ( "Drehzahl2={0}" , 0 ) ) ; /// 1743
logger . WriteLine ( string . Format ( "DAW_Wert2={0}" , 0 ) ) ; /// 500
logger . WriteLine ( string . Format ( "Leitfähigkeit2={0}" , 0 ) ) ; /// 543,10
logger . WriteLine ( string . Format ( "LuftDruck2={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "LuftFeuchtigkeit2={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "HyDruck2={0}" , 0 ) ) ; /// 6,2
logger . WriteLine ( string . Format ( "VorratsDruckHy2={0}" , 0 ) ) ; /// 6,3
logger . WriteLine ( string . Format ( "Anfangsgewicht2_2={0}" , 0 ) ) ; /// 37,95000
logger . WriteLine ( string . Format ( "Endgewicht2_2={0}" , 0 ) ) ; /// 37,94400
logger . WriteLine ( string . Format ( "Prüfmasse2_2={0}" , 0 ) ) ; /// -0,00600
logger . WriteLine ( string . Format ( "GegenWaage2={0}" , 0 ) ) ; /// 1
///
logger . WriteLine ( string . Format ( "Q3_geprüft={0}" , 1 ) ) ; /// 1
logger . WriteLine ( string . Format ( "Prüfvolumen3={0}" , 0 ) ) ; /// 107,76493
logger . WriteLine ( string . Format ( "Prüfmasse3={0}" , 0 ) ) ; /// 107,46800
logger . WriteLine ( string . Format ( "Temp1_P3={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp2_P3={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp3_P3={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp4_P3={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp5_P3={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp6_P3={0}" , 0 ) ) ; /// 19,8
logger . WriteLine ( string . Format ( "Temp7_P3={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "Temp8_P3={0}" , 0 ) ) ; /// 0,0
2016-12-19 12:49:21 +00:00
logger . WriteLine ( string . Format ( "Druck1_P3={0}" , q3 . TestRslt . PressUpMean . ToString ( Program . AltCulture ) ) ) ;
logger . WriteLine ( string . Format ( "Druck2_P3={0}" , q3 . TestRslt . PressDownMean . ToString ( Program . AltCulture ) ) ) ;
2016-03-02 19:02:30 +00:00
logger . WriteLine ( string . Format ( "K-Faktor3={0}" , 0 ) ) ; /// 0,99824190
logger . WriteLine ( string . Format ( "Q_Waage3={0}" , 0 ) ) ; /// 3874,27093
logger . WriteLine ( string . Format ( "Q_Vergleich3={0}" , 0 ) ) ; /// 3867,08324
logger . WriteLine ( string . Format ( "Fehler_Vergleich3={0}" , 0 ) ) ; /// -0,18552
logger . WriteLine ( string . Format ( "VZ_ZeitImpulse3={0}" , 0 ) ) ; /// 100,13594
logger . WriteLine ( string . Format ( "VZ_Impulse3={0}" , 0 ) ) ; /// 129078
logger . WriteLine ( string . Format ( "ZeitImpulse_VZ3={0}" , 0 ) ) ; /// 195578
logger . WriteLine ( string . Format ( "VorwahlZähler3={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "VZ_Nummer3={0}" , 0 ) ) ; /// 1
logger . WriteLine ( string . Format ( "Anfangsgewicht3={0}" , 0 ) ) ; /// 11,20800
logger . WriteLine ( string . Format ( "Endgewicht3={0}" , 0 ) ) ; /// 118,67600
logger . WriteLine ( string . Format ( "MinDurchfluss3={0}" , 0 ) ) ; /// 3862,00000
logger . WriteLine ( string . Format ( "MaxDurchfluss3={0}" , 0 ) ) ; /// 3872,00000
logger . WriteLine ( string . Format ( "Q_Einstellzeit3={0}" , 0 ) ) ; /// 26,37
logger . WriteLine ( string . Format ( "Pumpennummer3={0}" , 0 ) ) ; /// 2
logger . WriteLine ( string . Format ( "Drehzahl3={0}" , 0 ) ) ; /// 2269
logger . WriteLine ( string . Format ( "DAW_Wert3={0}" , 0 ) ) ; /// 1501
logger . WriteLine ( string . Format ( "Leitfähigkeit3={0}" , 0 ) ) ; /// 543,10
logger . WriteLine ( string . Format ( "LuftDruck3={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "LuftFeuchtigkeit3={0}" , 0 ) ) ; /// 0,0
logger . WriteLine ( string . Format ( "HyDruck3={0}" , 0 ) ) ; /// 6,2
logger . WriteLine ( string . Format ( "VorratsDruckHy3={0}" , 0 ) ) ; /// 6,3
logger . WriteLine ( string . Format ( "Anfangsgewicht2_3={0}" , 0 ) ) ; /// 0,00818
logger . WriteLine ( string . Format ( "Endgewicht2_3={0}" , 0 ) ) ; /// 0,00800
logger . WriteLine ( string . Format ( "Prüfmasse2_3={0}" , 0 ) ) ; /// -0,00018
logger . WriteLine ( string . Format ( "GegenWaage3={0}" , 0 ) ) ; /// 1
///
logger . WriteLine ( string . Format ( "Q4_geprüft={0}" , 0 ) ) ; /// 0
///
logger . WriteLine ( string . Format ( "Q5_geprüft={0}" , 0 ) ) ; /// 0
///
logger . WriteLine ( string . Format ( "FüllenDruck={0}" , 0 ) ) ; /// 0,00
logger . WriteLine ( string . Format ( "EvakVorneDruck={0}" , 0 ) ) ; /// 0,00
logger . WriteLine ( string . Format ( "EvakHintenDruck={0}" , 0 ) ) ; /// -1,00
logger . WriteLine ( string . Format ( "Spüldurchfluss={0}" , 0 ) ) ; /// 4722,00
logger . WriteLine ( string . Format ( "AbpressDruck={0}" , 0 ) ) ; /// 20,13
logger . WriteLine ( string . Format ( "AbpressDruckVorne={0}" , 0 ) ) ; /// 20,16
logger . WriteLine ( string . Format ( "AbpressDruckBeginn={0}" , 0 ) ) ; /// 0,00
logger . WriteLine ( string . Format ( "EntwässernDruck={0}" , 0 ) ) ; /// -1,00
logger . WriteLine ( string . Format ( "ZaehlwerktestAnfang={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "ZaehlwerktestEnde={0}" , 0 ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "ZaehlwerktestImpulse={0}" , 0 ) ) ; /// 0
logger . WriteLine ( string . Format ( "MeldungZaehler={0}" , 0 ) ) ; /// 0
2016-02-08 15:34:37 +00:00
logger . WriteLine ( string . Empty ) ;
2016-03-02 19:02:30 +00:00
logger . WriteLine ( "[allgemein]" ) ;
///
2016-02-18 00:08:14 +00:00
logger . WriteLine ( string . Format ( "Prüfer={0}" , 6 ) ) ; /// 1047
logger . WriteLine ( string . Format ( "PrüferID={0}" , 6 ) ) ; /// 246
logger . WriteLine ( string . Format ( "AuftragKompakt={0}" , 0 ) ) ; /// 4248189
logger . WriteLine ( string . Format ( "VariantenCode={0}" , "IP" ) ) ; /// IPRO04CMECAZDKAMMXB1AA2011201101AEUAA1XX314NM1XXXLX
logger . WriteLine ( string . Format ( "SollStückzahl={0}" , 3 ) ) ; /// 1000
logger . WriteLine ( string . Format ( "IstStückzahl={0}" , 3 ) ) ; /// 61
logger . WriteLine ( string . Format ( "Bemerkung=§" ) ) ; /// §
logger . WriteLine ( string . Format ( "BetriebsArt={0}" , 3 ) ) ; /// C
logger . WriteLine ( string . Format ( "BuchstabenVorEtikett=8SEN01" ) ) ; /// 8SEN01
logger . WriteLine ( string . Format ( "BuchstabenNachEtikett=" ) ) ; ///
logger . WriteLine ( string . Format ( "StehenderStartStop={0}" , 0 ) ) ; /// 0
logger . WriteLine ( string . Format ( "ID_WzPruefreihe={0}" , batch . BatchNr ) ) ; /// 2583
logger . WriteLine ( string . Format ( "ID_Pruefstand={0}" , 18000 + batch . TestBenchId ) ) ; /// 18004
logger . WriteLine ( string . Format ( "DichteKorrektur=0,00000" ) ) ; /// 0,00000
logger . WriteLine ( string . Format ( "LuftauftriebsKorrekturfaktor=1,00000" ) ) ; /// 1,00100
logger . WriteLine ( string . Format ( "ProgrammVersion={0}" , Program . Version ) ) ;
logger . WriteLine ( string . Format ( "LetzteAenderung={0}" , Program . BuildDateTime . ToShortDateString ( ) ) ) ;
logger . WriteLine ( string . Format ( "QuarzTakt={0}" , 0 ) ) ; /// 1953,125
2016-02-08 15:34:37 +00:00
/// Close the file
logger . Close ( ) ;
logger = null ;
}
catch ( Exception exc )
{
log . ErrorFormat ( "Results not saved to disk: {0}" , exc . Message ) ;
return Retv . Error ;
}
2016-02-08 16:03:07 +00:00
#endif
2016-03-15 02:45:34 +00:00
return Retv . OK ; /// OK
2017-02-14 12:25:43 +00:00
}
2016-02-08 15:34:37 +00:00
2017-02-14 12:25:43 +00:00
#if ORACLE_DB
2016-02-19 16:53:43 +00:00
public static Retv WriteResultsToDatabase ( OracleConnection conn , Results . Entities . Batch batch , bool safeMode )
2015-12-18 18:05:13 +00:00
{
2016-02-09 07:31:14 +00:00
OracleTransaction transaction = null ;
2016-01-08 09:23:36 +00:00
try
{
2016-02-09 07:31:14 +00:00
conn . Open ( ) ; /// Open the Oracle database
transaction = conn . BeginTransaction ( ) ;
SaveBatchData ( conn , batch ) ;
2015-12-18 18:05:13 +00:00
2016-01-08 09:23:36 +00:00
foreach ( var wMtr in batch . WaterMeters )
2015-08-19 12:17:02 +00:00
{
2016-02-19 16:53:43 +00:00
SaveSingleWM2DB ( conn , wMtr , safeMode ) ;
2016-01-08 09:23:36 +00:00
}
2015-12-18 18:05:13 +00:00
2016-01-08 09:23:36 +00:00
transaction . Commit ( ) ;
}
catch ( Exception exc )
{
2016-02-09 07:31:14 +00:00
if ( transaction ! = null ) transaction . Rollback ( ) ;
2015-08-20 16:14:22 +00:00
2016-06-22 14:35:38 +00:00
log . ErrorFormat ( "Results of batch {0} not written to ORACLE database: {1}" ,
2016-01-08 09:23:36 +00:00
batch . BatchNr , exc . Message ) ;
conn . Close ( ) ;
return Retv . Error ;
2015-08-19 12:17:02 +00:00
}
2015-12-18 18:05:13 +00:00
2016-01-08 09:23:36 +00:00
conn . Close ( ) ;
2015-12-18 18:05:13 +00:00
return Retv . OK ;
2015-08-19 12:17:02 +00:00
}
2015-08-20 16:14:22 +00:00
2015-08-19 12:17:02 +00:00
/// <summary>
2015-08-20 16:14:22 +00:00
/// Write one meter results into the database
2015-08-19 12:17:02 +00:00
/// </summary>
2015-11-10 22:29:14 +00:00
/// <param name="wmNr">0-based water meter number</param>
/// <param name="results">Sorted list of results to save</param>
2016-02-19 16:53:43 +00:00
static void SaveSingleWM2DB ( OracleConnection conn , Results . Entities . WaterMeter wm , bool safeMode )
2015-08-19 12:17:02 +00:00
{
2016-01-08 09:23:36 +00:00
if ( string . IsNullOrEmpty ( wm . SerialNr ) ) return ; /// No database activity possible w/o PCB number
2016-02-19 16:53:43 +00:00
if ( safeMode & & ! wm . Passed ) return ;
2015-11-10 22:29:14 +00:00
2015-08-21 12:30:47 +00:00
///
/// Read a list of all prufindexes for a given PCB Number
///
IList < int > pruefindexes = new List < int > ( ) ;
{
OracleParameter parm = new OracleParameter ( ) ;
parm . OracleDbType = OracleDbType . Varchar2 ;
2016-01-08 09:23:36 +00:00
parm . Value = wm . SerialNr ;
2015-08-20 16:14:22 +00:00
2016-04-06 06:49:59 +00:00
OracleCommand cmd1 = new OracleCommand ( "SELECT Pruefindex FROM VT_ZAEHLER_PINDEX_PD WHERE VT_Fernum = :1 AND ANBID = 4" , conn ) ;
2015-08-21 12:30:47 +00:00
cmd1 . Parameters . Add ( parm ) ;
OracleDataReader dr = cmd1 . ExecuteReader ( ) ;
2016-01-16 15:58:41 +00:00
while ( dr . Read ( ) ) { pruefindexes . Add ( dr . GetInt32 ( 0 ) ) ; }
dr . Close ( ) ;
}
2016-05-25 11:18:34 +00:00
{
OracleParameter parm = new OracleParameter ( ) ;
parm . OracleDbType = OracleDbType . Varchar2 ;
parm . Value = wm . SerialNr ;
2015-08-19 12:17:02 +00:00
2016-05-25 11:18:34 +00:00
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 ) ) ; }
dr . Close ( ) ;
}
///
2015-08-21 12:30:47 +00:00
/// Determine MAX_Pruefindex
///
int maxpruefindexLowPart = 0 ;
foreach ( var v in pruefindexes )
2015-08-20 16:14:22 +00:00
{
2015-08-21 12:30:47 +00:00
if ( ( v % 100 ) > maxpruefindexLowPart ) maxpruefindexLowPart = ( v % 100 ) ;
2015-08-20 16:14:22 +00:00
}
2016-02-09 14:04:18 +00:00
int MAX_Pruefindex = 100 * DBCfg . TestBenchId + maxpruefindexLowPart + 1 ;
2015-08-20 16:14:22 +00:00
2015-08-21 12:30:47 +00:00
int Hydr_Pruefung ;
2016-01-08 09:23:36 +00:00
if ( wm . Passed )
2015-08-22 18:37:43 +00:00
{
/// Passed
if ( maxpruefindexLowPart = = 0 )
Hydr_Pruefung = 96 ;
2015-08-21 12:30:47 +00:00
else
2015-08-22 18:37:43 +00:00
Hydr_Pruefung = 224 ;
2015-08-21 12:30:47 +00:00
}
2015-11-12 23:03:33 +00:00
else
2015-08-22 18:37:43 +00:00
{
2016-01-08 09:23:36 +00:00
/// Failed
Hydr_Pruefung = 97 ; /// Hydr. test failed, Pressure test passed
2015-11-12 23:03:33 +00:00
}
2015-08-21 12:30:47 +00:00
2016-02-18 00:08:14 +00:00
wm . Pruefindex = MAX_Pruefindex ;
wm . HydrPruefung = Hydr_Pruefung ;
2016-02-09 07:31:14 +00:00
SaveOrUpdateWM ( conn , wm , MAX_Pruefindex , Hydr_Pruefung ) ;
2016-01-08 09:23:36 +00:00
}
2015-11-10 22:29:14 +00:00
2015-10-23 12:00:22 +00:00
2016-01-08 09:23:36 +00:00
/// <summary>
/// Save common batch data
/// </summary>
/// <param name="b">Batch</param>
2016-08-02 21:08:16 +00:00
static void SaveBatchData ( OracleConnection conn , Results . Entities . Batch b )
{
OracleParameter parm ;
OracleCommand cmd = new OracleCommand ( "INSERT INTO VT_PRUEFREIHE_PD(" +
"ANBID, ID_Pruefstand, ID_WzPruefreihe, ID_WZTyp, Rev_WZTyp, Rev_Pruefstand_WZTyp, " +
"StartDatumZeit, EndDatumZeit, Betriebsart, QVzKontakt, " +
"FuellenBegDruck, DruckEvakVorne, DruckEvakHinten, DruckBeiAbpressen, " +
"Druckentwaessern, SpuelDurchflussIst, ProgrammVersion)" +
" VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17)" , conn ) ;
parm = new OracleParameter ( "ANBID" , OracleDbType . Int32 ) ; parm . Value = Anbid_StaraTura ; cmd . Parameters . Add ( parm ) ; ///:1
parm = new OracleParameter ( "ID_Pruefstand" , OracleDbType . Int32 ) ; parm . Value = 18000 + b . TestBenchId ; cmd . Parameters . Add ( parm ) ; ///:2
parm = new OracleParameter ( "ID_WzPruefreihe" , OracleDbType . Int32 ) ; parm . Value = b . BatchNr ; cmd . Parameters . Add ( parm ) ; ///:3
2016-01-16 15:58:41 +00:00
parm = new OracleParameter ( "ID_WZTyp" , OracleDbType . Int32 ) ; parm . Value = b . WaterMeters [ 0 ] . WaterMeterData . WMTypeId ; cmd . Parameters . Add ( parm ) ; ///:4
2016-08-02 21:08:16 +00:00
parm = new OracleParameter ( "Rev_WZTyp" , OracleDbType . Int32 ) ; parm . Value = b . WaterMeters [ 0 ] . WaterMeterData . WMTypeRev ; cmd . Parameters . Add ( parm ) ; ///:5
parm = new OracleParameter ( "Rev_Pruefstand_WZTyp" , OracleDbType . Int32 ) ; parm . Value = 1 ; cmd . Parameters . Add ( parm ) ; ///:6
parm = new OracleParameter ( "StartDatumZeit" , OracleDbType . TimeStamp ) ; parm . Value = b . StartTime ; cmd . Parameters . Add ( parm ) ; ///:7
parm = new OracleParameter ( "EndDatumZeit" , OracleDbType . TimeStamp ) ; parm . Value = b . EndTime ; cmd . Parameters . Add ( parm ) ; ///:8
parm = new OracleParameter ( "Betriebsart" , OracleDbType . Varchar2 ) ; parm . Value = "" ; cmd . Parameters . Add ( parm ) ; ///:9
parm = new OracleParameter ( "QVzKontakt" , OracleDbType . Double ) ; parm . Value = 0 ; cmd . Parameters . Add ( parm ) ; ///:10
parm = new OracleParameter ( "FuellenBegDruck" , OracleDbType . Double ) ; parm . Value = 0 ; cmd . Parameters . Add ( parm ) ; ///:11
parm = new OracleParameter ( "DruckEvakVorne" , OracleDbType . Double ) ; parm . Value = 0 ; cmd . Parameters . Add ( parm ) ; ///:12
parm = new OracleParameter ( "DruckEvakHinten" , OracleDbType . Double ) ; parm . Value = 0 ; cmd . Parameters . Add ( parm ) ; ///:13
parm = new OracleParameter ( "DruckBeiAbpressen" , OracleDbType . Double ) ; parm . Value = 0 ; /*TODO*/ cmd . Parameters . Add ( parm ) ; ///:14
parm = new OracleParameter ( "Druckentwaessern" , OracleDbType . Double ) ; parm . Value = 0 ; cmd . Parameters . Add ( parm ) ; ///:15
parm = new OracleParameter ( "SpuelDurchflussIst" , OracleDbType . Double ) ; parm . Value = 0 ; /*TODO*/ cmd . Parameters . Add ( parm ) ; ///:16
parm = new OracleParameter ( "ProgrammVersion" , OracleDbType . Varchar2 ) ; parm . Value = "TBF v." + b . ProgramVersion ; cmd . Parameters . Add ( parm ) ; ///:17
cmd . ExecuteNonQuery ( ) ; /// Returns nr. of updated rows
2017-03-22 09:25:07 +00:00
if ( ( id_WZTyp ! = b . WaterMeters [ 0 ] . WaterMeterData . WMTypeId ) | | ( rev_WZTyp ! = b . WaterMeters [ 0 ] . WaterMeterData . WMTypeRev ) | | testInfos . Count = = 0 )
{
testInfos . Clear ( ) ;
id_WZTyp = b . WaterMeters [ 0 ] . WaterMeterData . WMTypeId ;
rev_WZTyp = b . WaterMeters [ 0 ] . WaterMeterData . WMTypeRev ;
OracleCommand cmd1 = new OracleCommand ( "SELECT PruefungsNr, PosFehlerKalt, QBezeichnung FROM VT_PRUEFPUNKT_SOLL_SD WHERE ANBID=4 AND ID_WZTyp=:1 AND Rev_WZTyp=:2" , conn ) ;
parm = new OracleParameter ( "ID_WZTyp" , OracleDbType . Int32 ) ; parm . Value = id_WZTyp ; cmd1 . Parameters . Add ( parm ) ; ///:1
parm = new OracleParameter ( "Rev_WZTyp" , OracleDbType . Int32 ) ; parm . Value = rev_WZTyp ; cmd1 . Parameters . Add ( parm ) ; ///:2
2016-08-02 21:08:16 +00:00
2017-03-22 09:25:07 +00:00
OracleDataReader dr = cmd1 . ExecuteReader ( ) ;
while ( dr . Read ( ) )
{
int pruefungsNr = dr . GetInt32 ( 0 ) ;
double errLimHi = dr . GetDouble ( 1 ) ;
string qBezeichnung = dr . GetString ( 2 ) ;
if ( qBezeichnung = = "Q2" & & errLimHi > 2.0 ) qBezeichnung = "Q2adj" ;
2017-03-23 14:14:53 +00:00
if ( qBezeichnung . ToLower ( ) . Contains ( "just" ) & & pruefungsNr = = - 1 ) qBezeichnung = "Adjustment" ;
if ( qBezeichnung . Contains ( "Q" ) | | qBezeichnung = = "Adjustment" )
{
testInfos . Add ( new TestInfo ( pruefungsNr , qBezeichnung ) ) ;
log . WarnFormat ( "VT_PRUEFPUNKT_SOLL_SD info : ID_WZTyp={0} Rev_WZTyp={1} PruefungsNr={2} PosFehlerKalt={3} QBezeichnung={4}" ,
id_WZTyp , rev_WZTyp , pruefungsNr , errLimHi , qBezeichnung ) ;
}
2017-03-22 09:25:07 +00:00
}
dr . Close ( ) ;
}
foreach ( var testInfo in testInfos )
2016-08-02 21:08:16 +00:00
{
2017-03-22 09:25:07 +00:00
Results . Entities . TestRslt tr = b . GetTestRslt ( testInfo . QBezeichnung , 0 ) ;
2016-08-15 11:44:18 +00:00
2017-03-22 09:25:07 +00:00
if ( tr = = null ) tr = b . GetTestRslt ( testInfo . QBezeichnung , 1 ) ; /// TODO: Remove this workaround for large watermeters with multiple parts at Q3
2016-08-15 11:44:18 +00:00
2016-08-02 21:08:16 +00:00
if ( tr = = null ) continue ;
OracleCommand cmd2 = new OracleCommand ( "INSERT INTO VT_PRUEFDURCHFLUSS_PD(" +
"ANBID, ID_Pruefstand, ID_WzPruefreihe, PruefungsNr, " +
"PVOL, PMasse, MinDurchfluss, MaxDurchfluss, " +
"Q_ist, KFaktor, Q_VZ, F_VZ, RegelEinstellZeit, Drehzahl, " +
"BeginnDruck_Vorne, BeginnDruck_Hinten, EndDruck_Vorne, EndDruck_Hinten, " +
"TVWZ, IVWZ, Verwendeter_VZ, BeginnGewicht, EndGewicht)" +
" VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, " +
":16, :17, :18, :19, :20, :21, :22, :23)" , conn ) ;
parm = new OracleParameter ( "ANBID" , OracleDbType . Int32 ) ; parm . Value = Anbid_StaraTura ; cmd2 . Parameters . Add ( parm ) ; ///:1
parm = new OracleParameter ( "ID_Pruefstand" , OracleDbType . Int32 ) ; parm . Value = 18000 + b . TestBenchId ; cmd2 . Parameters . Add ( parm ) ; ///:2
parm = new OracleParameter ( "ID_WzPruefreihe" , OracleDbType . Int32 ) ; parm . Value = b . BatchNr ; cmd2 . Parameters . Add ( parm ) ; ///:3
2017-03-22 09:25:07 +00:00
parm = new OracleParameter ( "PruefungsNr" , OracleDbType . Int32 ) ; parm . Value = testInfo . PruefungsNr ; cmd2 . Parameters . Add ( parm ) ; ///:4
2016-08-02 21:08:16 +00:00
///
parm = new OracleParameter ( "PVOL" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . l , tr . VolumeCTV ) ; cmd2 . Parameters . Add ( parm ) ; ///:5
parm = new OracleParameter ( "PMasse" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . kg , tr . MassEnd - tr . MassStart ) ; cmd2 . Parameters . Add ( parm ) ; ///:6
parm = new OracleParameter ( "MinDurchfluss" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . lph , tr . FlowMin ) ; cmd2 . Parameters . Add ( parm ) ; ///:7
parm = new OracleParameter ( "MaxDurchfluss" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . lph , tr . FlowMax ) ; cmd2 . Parameters . Add ( parm ) ; ///:8
double Q_ist = ( tr . VolumeMaster ! = 0 ) ? ( tr . FlowVolume * tr . VolumeCTV / tr . VolumeMaster ) : ( double ) tr . FlowVolume ;
parm = new OracleParameter ( "Q_ist" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . lph , Q_ist ) ; cmd2 . Parameters . Add ( parm ) ; ///:9
parm = new OracleParameter ( "KFaktor" , OracleDbType . Double ) ; parm . Value = tr . ConstMaster ; cmd2 . Parameters . Add ( parm ) ; ///:10
parm = new OracleParameter ( "Q_VZ" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . lph , tr . FlowVolume ) ; cmd2 . Parameters . Add ( parm ) ; ///:11
parm = new OracleParameter ( "F_VZ" , OracleDbType . Double ) ; parm . Value = tr . ErrorMaster ; cmd2 . Parameters . Add ( parm ) ; ///:12
parm = new OracleParameter ( "RegelEinstellZeit" , OracleDbType . Double ) ; parm . Value = ( double ) tr . FlowSetTime ; cmd2 . Parameters . Add ( parm ) ; ///:13
parm = new OracleParameter ( "Drehzahl" , OracleDbType . Int32 ) ; parm . Value = 0 ; /* TODO */ cmd2 . Parameters . Add ( parm ) ; ///:14
///
parm = new OracleParameter ( "BeginnDruck_Vorne" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . bar , tr . PressUpStart ) ; cmd2 . Parameters . Add ( parm ) ; ///:15
parm = new OracleParameter ( "BeginnDruck_Hinten" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . bar , tr . PressDownStart ) ; cmd2 . Parameters . Add ( parm ) ; ///:16
parm = new OracleParameter ( "EndDruck_Vorne" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . bar , tr . PressUpEnd ) ; cmd2 . Parameters . Add ( parm ) ; ///:17
parm = new OracleParameter ( "EndDruck_Hinten" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . bar , tr . PressDownEnd ) ; cmd2 . Parameters . Add ( parm ) ; ///:18
///
parm = new OracleParameter ( "TVWZ" , OracleDbType . Double ) ; parm . Value = tr . TestTime ; cmd2 . Parameters . Add ( parm ) ; ///:19
parm = new OracleParameter ( "IVWZ" , OracleDbType . Int32 ) ; parm . Value = tr . PulsesMaster ; cmd2 . Parameters . Add ( parm ) ; ///:20
parm = new OracleParameter ( "Verwendeter_VZ" , OracleDbType . Int32 ) ; parm . Value = 0 ; /* TODO */ cmd2 . Parameters . Add ( parm ) ; ///:21
parm = new OracleParameter ( "BeginnGewicht" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . kg , tr . MassStart ) ; cmd2 . Parameters . Add ( parm ) ; ///:22
parm = new OracleParameter ( "EndGewicht" , OracleDbType . Double ) ; parm . Value = Units . ConvertTo ( Unit . kg , tr . MassEnd ) ; cmd2 . Parameters . Add ( parm ) ; ///:23
cmd2 . ExecuteNonQuery ( ) ; /// Returns nr. of updated rows
}
2016-02-09 13:30:21 +00:00
log . InfoFormat ( "Batch data saved, batchNr={0}" , b . BatchNr ) ;
2016-08-02 21:08:16 +00:00
}
2015-11-10 22:29:14 +00:00
2016-02-09 07:31:14 +00:00
static void SaveOrUpdateWM ( OracleConnection conn , Results . Entities . WaterMeter wm , int max_Pruefindex , int hydr_Pruefung )
2016-01-08 09:23:36 +00:00
{
int sekundaere_Adr = wm . Passed ? 1 : 0 ;
2016-12-22 07:24:31 +00:00
int idBenutzer = 6 ; // = wm.Batch.UserNumber;
2016-01-08 09:23:36 +00:00
if ( max_Pruefindex % 100 = = 1 )
{
OracleCommand cmd = new OracleCommand ( "INSERT INTO VT_ZAEHLER_PD(Auftragsnummer, VT_Identnummer, VT_Fernum, Max_Pruefindex, Zaehlernummer, Sekundaere_Adr, Hydr_Pruefung, ID_Benutzer, ANBID, Baujahr) VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10)" , conn ) ;
OracleParameter parm ;
parm = new OracleParameter ( "Auftragsnummer" , OracleDbType . Varchar2 ) ; parm . Value = wm . PurchaseOrder ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "VT_Identnummer" , OracleDbType . Varchar2 ) ; parm . Value = "IPBATMXX" ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "VT_Fernum" , OracleDbType . Varchar2 ) ; parm . Value = wm . SerialNr ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "Max_Pruefindex" , OracleDbType . Int32 ) ; parm . Value = max_Pruefindex ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "Zaehlernummer" , OracleDbType . Int32 ) ; parm . Value = - 1 ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "Sekundaere_Adr" , OracleDbType . Int32 ) ; parm . Value = sekundaere_Adr ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "Hydr_Pruefung" , OracleDbType . Int32 ) ; parm . Value = hydr_Pruefung ; cmd . Parameters . Add ( parm ) ;
2016-03-18 04:44:25 +00:00
parm = new OracleParameter ( "ID_Benutzer" , OracleDbType . Int32 ) ; parm . Value = idBenutzer ; cmd . Parameters . Add ( parm ) ;
2016-01-08 09:23:36 +00:00
parm = new OracleParameter ( "ANBID" , OracleDbType . Int32 ) ; parm . Value = Anbid_StaraTura ; cmd . Parameters . Add ( parm ) ;
2016-02-09 14:04:18 +00:00
parm = new OracleParameter ( "Baujahr" , OracleDbType . Int32 ) ; parm . Value = DBCfg . Baujahr ; cmd . Parameters . Add ( parm ) ;
2016-01-08 09:23:36 +00:00
cmd . ExecuteNonQuery ( ) ;
2016-02-09 13:30:21 +00:00
log . InfoFormat ( "VT_ZAEHLER_PD inserted, PcbNr={0}, pos={1}, maxPruefix={2}" , wm . SerialNr , wm . WMPosition , max_Pruefindex ) ;
}
2016-01-08 09:23:36 +00:00
else
2015-11-10 22:29:14 +00:00
{
2016-01-08 09:23:36 +00:00
OracleCommand cmd = new OracleCommand ( "UPDATE VT_ZAEHLER_PD SET Auftragsnummer = :1, VT_Identnummer = :2, Max_Pruefindex = :3, Hydr_Pruefung= :4, ID_Benutzer= :5, Baujahr= :6 WHERE VT_Fernum = :7 and ANBID = :8" , conn ) ;
OracleParameter parm ;
parm = new OracleParameter ( "Auftragsnummer" , OracleDbType . Varchar2 ) ; parm . Value = wm . PurchaseOrder ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "VT_Identnummer" , OracleDbType . Varchar2 ) ; parm . Value = "IPBATMXX" ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "Max_Pruefindex" , OracleDbType . Int32 ) ; parm . Value = max_Pruefindex ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "Hydr_Pruefung" , OracleDbType . Int32 ) ; parm . Value = hydr_Pruefung ; cmd . Parameters . Add ( parm ) ;
2016-03-18 04:44:25 +00:00
parm = new OracleParameter ( "ID_Benutzer" , OracleDbType . Int32 ) ; parm . Value = idBenutzer ; cmd . Parameters . Add ( parm ) ;
2016-02-09 14:04:18 +00:00
parm = new OracleParameter ( "Baujahr" , OracleDbType . Int32 ) ; parm . Value = DBCfg . Baujahr ; cmd . Parameters . Add ( parm ) ;
2016-01-08 09:23:36 +00:00
parm = new OracleParameter ( "VT_Fernum" , OracleDbType . Varchar2 ) ; parm . Value = wm . SerialNr ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "ANBID" , OracleDbType . Int32 ) ; parm . Value = Anbid_StaraTura ; cmd . Parameters . Add ( parm ) ;
cmd . ExecuteNonQuery ( ) ;
2016-02-09 13:30:21 +00:00
log . InfoFormat ( "VT_ZAEHLER_PD updated, PcbNr={0}, pos={1}, maxPruefix={2}" , wm . SerialNr , wm . WMPosition , max_Pruefindex ) ;
}
2016-01-08 09:23:36 +00:00
{
OracleCommand cmd = new OracleCommand ( "INSERT INTO VT_ZAEHLER_PINDEX_PD(" +
"VT_Fernum, Pruefindex, ANBID, ID_Pruefstand, ID_WzPruefreihe, Hydr_Pruefung, " +
"ReedKontakt, ReedKontaktOK, ReedKontaktZeit, KorrImprate, FestWertWZ, PtestOK, " +
"Zaehlerstand, WT_Platz_NR, WZgut, ID_Benutzer, AnzahlPruefungen)" +
" VALUES (:1, :2, :3, :4, :5, :6, 0, 0, 0, :7, 0, :8, 0, :9, :10, :11, :12)" , conn ) ;
OracleParameter parm ;
parm = new OracleParameter ( "VT_Fernum" , OracleDbType . Varchar2 ) ; parm . Value = wm . SerialNr ; cmd . Parameters . Add ( parm ) ;
2016-04-06 06:49:59 +00:00
parm = new OracleParameter ( "Pruefindex" , OracleDbType . Int32 ) ; parm . Value = max_Pruefindex ; cmd . Parameters . Add ( parm ) ;
2016-01-08 09:23:36 +00:00
parm = new OracleParameter ( "ANBID" , OracleDbType . Int32 ) ; parm . Value = Anbid_StaraTura ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "ID_Pruefstand" , OracleDbType . Int32 ) ; parm . Value = 18000 + wm . Batch . TestBenchId ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "ID_WzPruefreihe" , OracleDbType . Int32 ) ; parm . Value = wm . Batch . BatchNr ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "Hydr_Pruefung" , OracleDbType . Int32 ) ; parm . Value = hydr_Pruefung ; cmd . Parameters . Add ( parm ) ;
// ReedKontakt
// ReedKontaktOK
// ReedKontaktZeit
parm = new OracleParameter ( "KorrImprate" , OracleDbType . Double ) ; parm . Value = wm . OrigCalibFactor ; cmd . Parameters . Add ( parm ) ;
// FestWertWZ
parm = new OracleParameter ( "PtestOK" , OracleDbType . Int32 ) ; parm . Value = 0 ; /*TODO*/ cmd . Parameters . Add ( parm ) ;
// Zaehlerstand
parm = new OracleParameter ( "WT_Platz_NR" , OracleDbType . Int32 ) ; parm . Value = wm . WMPosition ; cmd . Parameters . Add ( parm ) ;
parm = new OracleParameter ( "WZgut" , OracleDbType . Int32 ) ; parm . Value = wm . Passed ? 1 : 0 ; cmd . Parameters . Add ( parm ) ;
2016-03-18 04:44:25 +00:00
parm = new OracleParameter ( "ID_Benutzer" , OracleDbType . Int32 ) ; parm . Value = idBenutzer ; cmd . Parameters . Add ( parm ) ;
2016-01-08 09:23:36 +00:00
parm = new OracleParameter ( "AnzahlPruefungen" , OracleDbType . Int32 ) ; parm . Value = 3 ; cmd . Parameters . Add ( parm ) ;
cmd . ExecuteNonQuery ( ) ;
2016-02-09 13:30:21 +00:00
log . InfoFormat ( "VT_ZAEHLER_PINDEX_PD inserted, PcbNr={0}, pos={1}, pruefix={2}" , wm . SerialNr , wm . WMPosition , max_Pruefindex % 100 ) ;
}
2016-01-08 09:23:36 +00:00
2017-03-22 09:25:07 +00:00
foreach ( var testInfo in testInfos )
{
Results . Entities . MeterTestRslt mtr = wm . GetMeterTestRslt ( testInfo . QBezeichnung ) ;
if ( mtr = = null )
{
throw new Exception ( string . Format ( "'{0}' test results missing, watermeter {1}" , testInfo . QBezeichnung , wm . WMPosition ) ) ;
}
SaveMeterTestResult ( conn , mtr , testInfo . PruefungsNr , max_Pruefindex ) ;
2015-11-10 22:29:14 +00:00
}
2016-01-08 09:23:36 +00:00
{
2016-02-10 21:20:15 +00:00
double q2ErrWOCorrection = Math . Min ( 100.0 , Math . Max ( - 100.0 , wm . Q2ErrWOCorrection ) ) ;
2016-01-08 09:23:36 +00:00
OracleCommand cmd = new OracleCommand ( "INSERT INTO VT_IP_ZAEHLER_PINDEX_PD(" +
"VT_Fernum, Pruefindex, ANBID, WITHCORRECTION2HZ, CORRECTION2HZ, DIFF2HZ8HZ, " +
"WITHQ2CORRECTION, ERRQ2, Q2CORRECTIONFLOWRIGHT, Q2CORRECTIONLEFT, Q2CORRECTIONRIGHT)" +
" VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11)" , conn ) ;
OracleParameter parm ;
parm = new OracleParameter ( "VT_Fernum" , OracleDbType . Varchar2 ) ; parm . Value = wm . SerialNr ; cmd . Parameters . Add ( parm ) ; ///:1
2016-01-14 20:49:20 +00:00
parm = new OracleParameter ( "Pruefindex" , OracleDbType . Int32 ) ; parm . Value = max_Pruefindex ; cmd . Parameters . Add ( parm ) ; ///:2
2016-01-08 09:23:36 +00:00
parm = new OracleParameter ( "ANBID" , OracleDbType . Int32 ) ; parm . Value = Anbid_StaraTura ; cmd . Parameters . Add ( parm ) ; ///:3
2016-02-16 13:44:10 +00:00
parm = new OracleParameter ( "WITHCORRECTION2HZ" , OracleDbType . Int32 ) ; parm . Value = wm . Hz2CorrectionDone ? 1 : 0 ; cmd . Parameters . Add ( parm ) ; ///:4
parm = new OracleParameter ( "CORRECTION2HZ" , OracleDbType . Double ) ; parm . Value = wm . Hz2Correction ; cmd . Parameters . Add ( parm ) ; ///:5
2016-03-03 13:43:11 +00:00
parm = new OracleParameter ( "DIFF2HZ8HZ" , OracleDbType . Double ) ; parm . Value = Math . Min ( 99.0 , Math . Max ( - 99.0 , wm . Diff2Hz8Hz ) ) ; cmd . Parameters . Add ( parm ) ; ///:6
2016-01-08 09:23:36 +00:00
parm = new OracleParameter ( "WITHQ2CORRECTION" , OracleDbType . Int32 ) ; parm . Value = wm . Q2CorrectionDone ? 1 : 0 ; cmd . Parameters . Add ( parm ) ; ///:7
2016-02-10 21:20:15 +00:00
parm = new OracleParameter ( "ERRQ2" , OracleDbType . Double ) ; parm . Value = q2ErrWOCorrection ; cmd . Parameters . Add ( parm ) ; ///:8
2016-01-08 15:57:37 +00:00
parm = new OracleParameter ( "Q2CORRECTIONFLOWRIGHT" , OracleDbType . Int32 ) ; parm . Value = wm . Q2CorrFlowRight ; /*1=right to left*/ cmd . Parameters . Add ( parm ) ; ///:9
2017-03-31 12:17:18 +00:00
parm = new OracleParameter ( "Q2CORRECTIONLEFT" , OracleDbType . Int32 ) ; parm . Value = wm . Q2CorrLFlow ; cmd . Parameters . Add ( parm ) ; ///:10
parm = new OracleParameter ( "Q2CORRECTIONRIGHT" , OracleDbType . Int32 ) ; parm . Value = wm . Q2CorrRFlow ; cmd . Parameters . Add ( parm ) ; ///:11
2016-01-08 09:23:36 +00:00
int rowsUpdated = cmd . ExecuteNonQuery ( ) ;
2016-02-09 13:30:21 +00:00
log . InfoFormat ( "VT_IP_ZAEHLER_PINDEX_PD inserted, PcbNr={0}, pruefix={1}" , wm . SerialNr , max_Pruefindex ) ;
}
2016-01-08 09:23:36 +00:00
}
/// <summary>
/// Saves a water meter result of a single test
/// </summary>
/// <param name="q">q = 0, 1, 2 or 3 (Adj., Q1, Q2, Q3)</param>
/// <returns>Nr. of rows updated</returns>
2017-03-22 09:25:07 +00:00
static int SaveMeterTestResult ( OracleConnection conn , Results . Entities . MeterTestRslt mtr , int qq , int max_Pruefindex ) ///
2016-01-08 09:23:36 +00:00
{
double Q_wm = 3600.0 * mtr . VolumeMeter / mtr . TestTime ; /// in [l/hour]
2016-06-06 14:00:28 +00:00
double Q_wm_with_upper_bound = Math . Min ( 2 * 1000 * mtr . TestRslt . FlowVolume , Math . Max ( 0.0 , Q_wm ) ) ;
2016-01-08 09:23:36 +00:00
OracleCommand cmd = new OracleCommand ( "INSERT INTO VT_PRUEFREIHE_IST_PD(" +
"VT_Fernum, Pruefindex, PruefungsNr, ANBID, ID_WZTyp, Rev_WZTyp, Rev_WZPruefpunkt, " +
"Q_WZ, Q_Fehler, Q_Best, NIZ, AnfangZStand, EndZStand, " +
"KorrErrQok, KorrErrQ, KorrQWz, TIZ, Vol_WZ_US, TempMittel_US)" +
" VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, 0, 0, 0, :14, 0, 0)" , conn ) ;
OracleParameter parm ;
2016-04-14 10:01:50 +00:00
parm = new OracleParameter ( "VT_Fernum" , OracleDbType . Varchar2 ) ; parm . Value = mtr . WaterMeter . SerialNr ; cmd . Parameters . Add ( parm ) ; ///:1
parm = new OracleParameter ( "Pruefindex" , OracleDbType . Int32 ) ; parm . Value = max_Pruefindex ; cmd . Parameters . Add ( parm ) ; ///:2
parm = new OracleParameter ( "PruefungsNr" , OracleDbType . Int32 ) ; parm . Value = qq ; cmd . Parameters . Add ( parm ) ; ///:3
parm = new OracleParameter ( "ANBID" , OracleDbType . Int32 ) ; parm . Value = Anbid_StaraTura ; cmd . Parameters . Add ( parm ) ; ///:4
parm = new OracleParameter ( "ID_WZTyp" , OracleDbType . Int32 ) ; parm . Value = mtr . WaterMeter . WaterMeterData . WMTypeId ; cmd . Parameters . Add ( parm ) ; ///:5
parm = new OracleParameter ( "Rev_WZTyp" , OracleDbType . Int32 ) ; parm . Value = mtr . WaterMeter . WaterMeterData . WMTypeRev ; cmd . Parameters . Add ( parm ) ; ///:6
parm = new OracleParameter ( "Rev_WZPruefpunkt" , OracleDbType . Int32 ) ; parm . Value = 1 ; cmd . Parameters . Add ( parm ) ; ///:7
2016-06-06 14:00:28 +00:00
parm = new OracleParameter ( "Q_WZ" , OracleDbType . Double ) ; parm . Value = Q_wm_with_upper_bound ; cmd . Parameters . Add ( parm ) ; ///:8
2016-04-14 10:01:50 +00:00
parm = new OracleParameter ( "Q_Fehler" , OracleDbType . Double ) ; parm . Value = Math . Min ( 100.0 , Math . Max ( - 100.0 , mtr . Error ) ) ; cmd . Parameters . Add ( parm ) ; ///:9
parm = new OracleParameter ( "Q_Best" , OracleDbType . Int32 ) ; parm . Value = mtr . Passed ? 1 : 0 ; cmd . Parameters . Add ( parm ) ; ///:10
parm = new OracleParameter ( "NIZ" , OracleDbType . Int32 ) ; parm . Value = 0 ; cmd . Parameters . Add ( parm ) ; ///:11
parm = new OracleParameter ( "AnfangZStand" , OracleDbType . Double ) ; parm . Value = 0 ; /*TODO*/ cmd . Parameters . Add ( parm ) ; ///:12
parm = new OracleParameter ( "EndZStand" , OracleDbType . Double ) ; parm . Value = 0 ; /*TODO*/ cmd . Parameters . Add ( parm ) ; ///:13
2016-01-08 09:23:36 +00:00
/// KorrErrQok
/// KorrErrQ
/// KorrQWz
2016-04-14 10:01:50 +00:00
parm = new OracleParameter ( "TIZ" , OracleDbType . Double ) ; parm . Value = Math . Min ( 100000 , mtr . TestTime ) ; cmd . Parameters . Add ( parm ) ;
2016-01-08 09:23:36 +00:00
/// Vol_WZ_US
/// TempMittel_US
2016-02-09 13:30:21 +00:00
int retv = cmd . ExecuteNonQuery ( ) ;
2016-02-09 13:33:34 +00:00
log . DebugFormat ( "VT_PRUEFREIHE_IST_PD inserted, PcbNr={0}, q={1}, error={2}" , mtr . WaterMeter . SerialNr , qq , mtr . Error ) ;
2016-02-09 13:30:21 +00:00
return retv ;
}
2016-01-08 09:23:36 +00:00
#endif
2017-02-14 12:25:43 +00:00
}
2015-08-19 12:17:02 +00:00
}