Browse Source

KOMBI_SIA.ccpage hinzugefügt:
Anzeigen: letzte Service-Art, Inspektionsgrenze, Kraftstoffmenge seit letztem Service, Zeitinspektionszähler, Zeitgrenze, Jahr/Monat der nächsten Zeitinspektion
Funktionen:
- SIA Reset Inspektion/Ölservice (automatisch - je nachdem was als nächstes ansteht)
- SIA Reset Zeitinspektion
- SIA Korrektur - Wechsel Inspektion/Ölservice

KOMBI_SIA_4buttons.ccpage:
Variante ohne automatische Erkennung Inspektion/Ölservice mit je einem Button pro Funktion

D50M57E1.ccpage:
Umgebungsluftdruck ergänzt

FloKra 3 years ago
parent
commit
70c3663a8d

+ 4 - 1
E46 M57N/D50M57E1.ccpage

@@ -14,6 +14,7 @@
       <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_ABGASTEMPERATUR_VOR_KATALYSATOR_WERT"> Abgastemp. vor Kat [°C]</string>
 	  <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_WERT"> Ladedruck Ist [mbar]</string>
       <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_SOLL_WERT"> Ladedruck Soll [mbar]</string>
+	  <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UMGEBUNGSDRUCK_WERT"> Luftdruck [mbar]</string>
       <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_RAILDRUCK_WERT"> Raildruck Ist [bar]</string>
       <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_RAILDRUCK_SOLL_WERT"> Raildruck Soll [bar]</string>
       <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_FAHRZEUGBESCHLEUNIGUNG_WERT"> Beschleunigung [m/s²]</string>
@@ -32,15 +33,17 @@
       <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_ABGASTEMPERATUR_VOR_KATALYSATOR_WERT"> exhaust before cat [°C]</string>
 	  <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_WERT"> act. boost pressure [mbar]</string>
       <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_SOLL_WERT"> target boost pressure [mbar]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UMGEBUNGSDRUCK_WERT"> air pressure [mbar]</string>
       <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_RAILDRUCK_WERT"> act. rail pressure [bar]</string>
       <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_RAILDRUCK_SOLL_WERT"> target rail pressure [bar]</string>
       <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_FAHRZEUGBESCHLEUNIGUNG_WERT"> acceleration [m/s²]</string>
       <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_GESCHWINDIGKEIT_WERT"> speed [km/h]</string>
     </strings>	
     <jobs sgbd="D50M57E1">
-      <job name="STATUS_MESSWERTBLOCK_LESEN" args="JA;ILMMG;IPLAD;IUBAT;ITKUM;IMOAK;INMOT;ITKRS;ITLAL;IMEIA;ITAVO;SPLAD;IPRDR;SPRDR;IAFZG;IVKMH">
+      <job name="STATUS_MESSWERTBLOCK_LESEN" args="JA;ILMMG;IPLAD;IPUMG;IUBAT;ITKUM;IMOAK;INMOT;ITKRS;ITLAL;IMEIA;ITAVO;SPLAD;IPRDR;SPRDR;IAFZG;IVKMH">
         <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LUFTMASSE_PRO_HUB_WERT" result="STAT_LUFTMASSE_PRO_HUB_WERT" format="L"  log_tag="STAT_LUFTMASSE_PRO_HUB_WERT" />
         <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_WERT" result="STAT_LADEDRUCK_WERT" format="4.1R"  log_tag="STAT_LADEDRUCK_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UMGEBUNGSDRUCK_WERT" result="STAT_UMGEBUNGSDRUCK_WERT" format="4.1R"  log_tag="STAT_UMGEBUNGSDRUCK_WERT" />
         <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UBATT_WERT" result="STAT_UBATT_WERT" format="2.1R"  log_tag="STAT_UBATT_WERT" />
         <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KUEHLMITTELTEMPERATUR_WERT" result="STAT_KUEHLMITTELTEMPERATUR_WERT" format="L"  log_tag="STAT_KUEHLMITTELTEMPERATUR_WERT" />
         <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORMOMENT_AKTUELL_WERT" result="STAT_MOTORMOMENT_AKTUELL_WERT" format="L" log_tag="STAT_MOTORMOMENT_AKTUELL_WERT" />

+ 245 - 0
E46 M57N/KOMBI_SIA.ccpage

@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="utf-8"?>
+<fragment xmlns="http://www.holeschak.de/BmwDeepObd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.holeschak.de/BmwDeepObd BmwDeepObd.xsd">
+  <page name="!PAGE_NAME" display-mode="list" fontsize="medium" gauges-portrait="2" gauges-landscape="4" logfile="RPA_DSC_MK60.log">
+    <strings>
+      <string name="!PAGE_NAME">SIA</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_SERVICE_TEXT"> letztes Service war</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_INSPEKTIONSGRENZE_WERT"> Inspektionsgrenze [l Kraftstoff]</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_KRAFTSTOFFMENGE_WERT"> Kraftstoffmenge seit letztem Service</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_ZEIT_INSP_ZAEHLER_WERT"> Zeitinspektionszähler [Tage]</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_ZEITGRENZE_WERT"> Zeitgrenze [Tage]</string>
+      <string name="!JOB#ZEITINPEKTIONSDATUM_LESEN#ZEITINSPEKTION_MONAT"> nächste Zeitinspektion [Monat]</string>
+      <string name="!JOB#ZEITINPEKTIONSDATUM_LESEN#ZEITINSPEKTION_JAHR"> nächste Zeitinspektion [Jahr]</string>
+    </strings>
+    <display name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_SERVICE_TEXT" result="STAT_SERVICE_TEXT" format="T" log_tag="STAT_SERVICE_TEXT" />
+    <display name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_INSPEKTIONSGRENZE_WERT" result="STAT_INSPEKTIONSGRENZE_WERT" format="L" log_tag="STAT_INSPEKTIONSGRENZE_WERT" />
+    <display name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_KRAFTSTOFFMENGE_WERT" result="STAT_KRAFTSTOFFMENGE_WERT" format="L" log_tag="STAT_KRAFTSTOFFMENGE_WERT" />
+    <display name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_ZEIT_INSP_ZAEHLER_WERT" result="STAT_ZEIT_INSP_ZAEHLER_WERT" format="L" log_tag="STAT_ZEIT_INSP_ZAEHLER_WERT" />
+    <display name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_ZEITGRENZE_WERT" result="STAT_ZEITGRENZE_WERT" format="L" log_tag="STAT_ZEITGRENZE_WERT" />
+    <display name="!JOB#ZEITINPEKTIONSDATUM_LESEN#ZEITINSPEKTION_MONAT" result="ZEITINSPEKTION_MONAT" format="L" log_tag="ZEITINSPEKTION_MONAT" />
+    <display name="!JOB#ZEITINPEKTIONSDATUM_LESEN#ZEITINSPEKTION_JAHR" result="ZEITINSPEKTION_JAHR" format="L" log_tag="ZEITINSPEKTION_JAHR" />
+    
+    <jobs sgbd="kombi46r" />
+    
+    <code show_warnings="true">
+    <![CDATA[
+    class PageClass
+    {
+        private Button buttonSIAWegReset;
+        //private Button buttonSIAOelReset;
+        private Button buttonSIAZeitReset;
+        private Button buttonSIAKorrektur;
+        private bool doSIAWegReset = false;
+        //private bool doSIAOelReset = false;
+        private bool doSIAZeitReset = false;
+        private bool doSIAKorrektur = false;
+        
+        private int serviceArt;
+        
+        public void CreateLayout(ActivityMain activity, JobReader.PageInfo pageInfo, LinearLayout pageLayout)
+        {
+            LinearLayout buttonLayout = new LinearLayout(activity);
+            buttonLayout.Orientation = Orientation.Horizontal;
+
+            LinearLayout.LayoutParams buttonLayoutParams = new LinearLayout.LayoutParams(
+                ViewGroup.LayoutParams.MatchParent,
+                ViewGroup.LayoutParams.WrapContent);
+            buttonLayoutParams.Weight = 1;
+            
+            // Button 1
+            buttonSIAWegReset = new Button(activity);
+            buttonSIAWegReset.Text = "RESET INSPEKTION / ÖLSERVICE";
+            buttonSIAWegReset.Click += delegate
+            {
+                // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
+                doSIAWegReset = true;  
+                
+                // Benachrichtung anzeigen wenn man will
+                ActivityMain.ShowNotification(activity, 0, 2,
+                    "SIA RESET",
+                    "Weginspektion wird zurückgesetzt...");
+            };
+            buttonLayout.AddView(buttonSIAWegReset, buttonLayoutParams);
+            
+            //// Button 2
+            //buttonSIAOelReset = new Button(activity);
+            //buttonSIAOelReset.Text = "RESET ÖLSERVICE";
+            //buttonSIAOelReset.Click += delegate
+            //{
+            //    // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
+            //    doSIAOelReset = true;  
+            //    
+            //    // Benachrichtung anzeigen wenn man will
+            //    ActivityMain.ShowNotification(activity, 0, 2,
+            //        "SIA RESET",
+            //        "Ölservice wird zurückgesetzt...");
+            //};
+            //buttonLayout.AddView(buttonSIAOelReset, buttonLayoutParams);
+            
+            // Button 3
+            buttonSIAZeitReset = new Button(activity);
+            buttonSIAZeitReset.Text = "RESET ZEIT- INSPEKTION";
+            buttonSIAZeitReset.Click += delegate
+            {
+                // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
+                doSIAZeitReset = true;  
+                
+                // Benachrichtung anzeigen wenn man will
+                ActivityMain.ShowNotification(activity, 0, 2,
+                    "SIA RESET",
+                    "Zeitinspektion wird zurückgesetzt...");
+            };
+            buttonLayout.AddView(buttonSIAZeitReset, buttonLayoutParams);
+            
+            // Button 4
+            buttonSIAKorrektur = new Button(activity);
+            buttonSIAKorrektur.Text = "KORREKTUR WECHSEL INSPEKTION <> ÖLSERVICE";
+            buttonSIAKorrektur.Click += delegate
+            {
+                // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
+                doSIAKorrektur = true;  
+                
+                // Benachrichtung anzeigen wenn man will
+                ActivityMain.ShowNotification(activity, 0, 2,
+                    "SIA",
+                    "Wechsel zwischen Inspektion <> Ölservice wird durchgeführt...");
+            };
+            buttonLayout.AddView(buttonSIAKorrektur, buttonLayoutParams);
+
+            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+                ViewGroup.LayoutParams.MatchParent,
+                ViewGroup.LayoutParams.WrapContent);
+            pageLayout.AddView(buttonLayout, layoutParams);
+        }
+
+        public void DestroyLayout(JobReader.PageInfo pageInfo)
+        {
+            buttonSIAWegReset = null;
+            //buttonSIAOelReset = null;
+            buttonSIAZeitReset = null;
+            buttonSIAKorrektur = null;
+        }
+
+        public void ExecuteJob(EdiabasNet ediabas, ref MultiMap<string, EdiabasNet.ResultData> resultDict, bool firstCall)
+        {
+            List<Dictionary<string, EdiabasNet.ResultData>> resultSets;
+            
+            // Job 1
+            ediabas.ArgString = string.Empty;
+            ediabas.ArgBinaryStd = null;
+            ediabas.ResultsRequests = string.Empty;
+            
+            ediabas.ExecuteJob("STATUS_AIF_SIA_DATEN_LESEN");
+            
+            resultSets = ediabas.ResultSets;
+            if (resultSets != null && resultSets.Count >= 2)
+            {
+                EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+            }
+            
+            EdiabasNet.ResultData resultData;
+            if (resultSets[1].TryGetValue("STAT_SERVICE_ART", out resultData))
+                {
+                    if (resultData.OpData is Int64)
+                    {
+                        serviceArt = (int)((Int64)resultData.OpData);
+                    }
+                }
+            
+            
+            // Job 2
+            ediabas.ArgString = string.Empty;
+            ediabas.ArgBinaryStd = null;
+            ediabas.ResultsRequests = string.Empty;
+            
+            ediabas.ExecuteJob("ZEITINSPEKTIONSDATUM_LESEN");
+            
+            resultSets = ediabas.ResultSets;
+            if (resultSets != null && resultSets.Count >= 2)
+            {
+               EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+            }
+            
+            
+            // Button Jobs
+            
+            // Button 1 - SIA RESET Weginspektion/Oelservice
+            if (doSIAWegReset) {
+                
+                if(serviceArt == 0) ediabas.ArgString = "Oel_Reset";
+                if(serviceArt == 1) ediabas.ArgString = "Weg_Reset";
+                
+                ediabas.ArgBinaryStd = null;
+                ediabas.ResultsRequests = "JOB_STATUS";
+                
+                ediabas.ExecuteJob("SIA_RESET");
+                
+                //resultSets = ediabas.ResultSets;
+                //if (resultSets != null && resultSets.Count >= 2)
+                //{
+                //  EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+                //}
+                
+                // ablaufvariable wieder zurücksetzen, sonst würde diese funktion nun bei jedem folgenden durchlauf ausgeführt werden...
+                doSIAWegReset = false;
+            }
+            
+            //// Button 2 - SIA RESET Ölservice
+            //if (doSIAOelReset) {
+            //    ediabas.ArgString = "Oel_Reset";
+            //    ediabas.ArgBinaryStd = null;
+            //    ediabas.ResultsRequests = "JOB_STATUS";
+            //    
+            //    ediabas.ExecuteJob("SIA_RESET");
+            //    
+            //    //resultSets = ediabas.ResultSets;
+            //    //if (resultSets != null && resultSets.Count >= 2)
+            //    //{
+            //    //  EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+            //    //}
+            //    
+            //    // ablaufvariable wieder zurücksetzen, sonst würde diese funktion nun bei jedem folgenden durchlauf ausgeführt werden...
+            //    doSIAOelReset = false;
+            //}
+            
+            // Button 3 - SIA RESET Zeitinspektion
+            if (doSIAZeitReset) {
+                ediabas.ArgString = "Zeit_Reset";
+                ediabas.ArgBinaryStd = null;
+                ediabas.ResultsRequests = "JOB_STATUS";
+                
+                ediabas.ExecuteJob("SIA_RESET");
+                
+                //resultSets = ediabas.ResultSets;
+                //if (resultSets != null && resultSets.Count >= 2)
+                //{
+                //  EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+                //}
+                
+                // ablaufvariable wieder zurücksetzen, sonst würde diese funktion nun bei jedem folgenden durchlauf ausgeführt werden...
+                doSIAZeitReset = false;
+            }
+            
+            // Button 4 - SIA Korrektur
+            if (doSIAKorrektur) {
+                ediabas.ArgString = string.Empty;
+                ediabas.ArgBinaryStd = null;
+                ediabas.ResultsRequests = "JOB_STATUS";
+                
+                ediabas.ExecuteJob("SIA_KORREKTUR_SCHREIBEN");
+                
+                //resultSets = ediabas.ResultSets;
+                //if (resultSets != null && resultSets.Count >= 2)
+                //{
+                //  EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+                //}
+                
+                // ablaufvariable wieder zurücksetzen, sonst würde diese funktion nun bei jedem folgenden durchlauf ausgeführt werden...
+                doSIAKorrektur = false;
+            }
+        }
+    }
+    ]]>
+    </code>
+  </page>
+</fragment>

+ 3 - 1
E46 M57N/KOMBI_SIA.txt

@@ -23,7 +23,8 @@ RESULTS:
 
 Kombiinstrument errechnet die Rest-KM die bei Zündung an gezeigt werden folgendermaßen:
 	(STAT_INSPEKTIONSGRENZE_WERT - STAT_KRAFTSTOFFMENGE_WERT) * 100 / DURCHSCHNITTSVERBRAUCH
-	z.B.: (2400 - 1342) * 100 / 7.8 = 13564 km 
+	z.B.: (2400 - 1342) * 100 / 7.8 = 13564 km (wird dann noch auf ganze 50 gerundet)
+	-> leider kann dies in DeepOBD nicht nachgebildet werden, da kein Zugriff auf BC-Daten (Durchschnittsverbrauch) via OBD
 
 JOB: STATUS_SIA_FINISH
 RESULTS:
@@ -52,3 +53,4 @@ SIA_RESET
 ZEITINSPEKTIONSDATUM_SCHREIBEN
 	2 argumente mit ; getrennt: monat[1-12];jahr[0-99]
 	
+	

+ 234 - 0
E46 M57N/KOMBI_SIA_4buttons.ccpage

@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="utf-8"?>
+<fragment xmlns="http://www.holeschak.de/BmwDeepObd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.holeschak.de/BmwDeepObd BmwDeepObd.xsd">
+  <page name="!PAGE_NAME" display-mode="list" fontsize="medium" gauges-portrait="2" gauges-landscape="4" logfile="RPA_DSC_MK60.log">
+    <strings>
+      <string name="!PAGE_NAME">SIA</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_SERVICE_TEXT"> letztes Service war</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_INSPEKTIONSGRENZE_WERT"> Inspektionsgrenze [l Kraftstoff]</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_KRAFTSTOFFMENGE_WERT"> Kraftstoffmenge seit letztem Service</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_ZEIT_INSP_ZAEHLER_WERT"> Zeitinspektionszähler [Tage]</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_ZEITGRENZE_WERT"> Zeitgrenze [Tage]</string>
+      <string name="!JOB#ZEITINPEKTIONSDATUM_LESEN#ZEITINSPEKTION_MONAT"> nächste Zeitinspektion [Monat]</string>
+      <string name="!JOB#ZEITINPEKTIONSDATUM_LESEN#ZEITINSPEKTION_JAHR"> nächste Zeitinspektion [Jahr]</string>
+    </strings>
+    <display name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_SERVICE_TEXT" result="STAT_SERVICE_TEXT" format="T" log_tag="STAT_SERVICE_TEXT" />
+    <display name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_INSPEKTIONSGRENZE_WERT" result="STAT_INSPEKTIONSGRENZE_WERT" format="L" log_tag="STAT_INSPEKTIONSGRENZE_WERT" />
+    <display name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_KRAFTSTOFFMENGE_WERT" result="STAT_KRAFTSTOFFMENGE_WERT" format="L" log_tag="STAT_KRAFTSTOFFMENGE_WERT" />
+    <display name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_ZEIT_INSP_ZAEHLER_WERT" result="STAT_ZEIT_INSP_ZAEHLER_WERT" format="L" log_tag="STAT_ZEIT_INSP_ZAEHLER_WERT" />
+    <display name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_ZEITGRENZE_WERT" result="STAT_ZEITGRENZE_WERT" format="L" log_tag="STAT_ZEITGRENZE_WERT" />
+    <display name="!JOB#ZEITINPEKTIONSDATUM_LESEN#ZEITINSPEKTION_MONAT" result="ZEITINSPEKTION_MONAT" format="L" log_tag="ZEITINSPEKTION_MONAT" />
+    <display name="!JOB#ZEITINPEKTIONSDATUM_LESEN#ZEITINSPEKTION_JAHR" result="ZEITINSPEKTION_JAHR" format="L" log_tag="ZEITINSPEKTION_JAHR" />
+    
+    <jobs sgbd="kombi46r" />
+    
+    <code show_warnings="true">
+    <![CDATA[
+    class PageClass
+    {
+        private Button buttonSIAWegReset;
+        private Button buttonSIAOelReset;
+        private Button buttonSIAZeitReset;
+        private Button buttonSIAKorrektur;
+        private bool doSIAWegReset = false;
+        private bool doSIAOelReset = false;
+        private bool doSIAZeitReset = false;
+        private bool doSIAKorrektur = false;
+        
+        public void CreateLayout(ActivityMain activity, JobReader.PageInfo pageInfo, LinearLayout pageLayout)
+        {
+            LinearLayout buttonLayout = new LinearLayout(activity);
+            buttonLayout.Orientation = Orientation.Horizontal;
+
+            LinearLayout.LayoutParams buttonLayoutParams = new LinearLayout.LayoutParams(
+                ViewGroup.LayoutParams.MatchParent,
+                ViewGroup.LayoutParams.WrapContent);
+            buttonLayoutParams.Weight = 1;
+            
+            // Button 1
+            buttonSIAWegReset = new Button(activity);
+            buttonSIAWegReset.Text = "SIA RESET WEG- INSPEKTION";
+            buttonSIAWegReset.Click += delegate
+            {
+                // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
+                doSIAWegReset = true;  
+                
+                // Benachrichtung anzeigen wenn man will
+                ActivityMain.ShowNotification(activity, 0, 2,
+                    "SIA RESET",
+                    "Weginspektion wird zurückgesetzt...");
+            };
+            buttonLayout.AddView(buttonSIAWegReset, buttonLayoutParams);
+            
+            // Button 2
+            buttonSIAOelReset = new Button(activity);
+            buttonSIAOelReset.Text = "SIA RESET ÖLSERVICE";
+            buttonSIAOelReset.Click += delegate
+            {
+                // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
+                doSIAOelReset = true;  
+                
+                // Benachrichtung anzeigen wenn man will
+                ActivityMain.ShowNotification(activity, 0, 2,
+                    "SIA RESET",
+                    "Ölservice wird zurückgesetzt...");
+            };
+            buttonLayout.AddView(buttonSIAOelReset, buttonLayoutParams);
+            
+            // Button 3
+            buttonSIAZeitReset = new Button(activity);
+            buttonSIAZeitReset.Text = "SIA RESET ZEIT- INSPEKTION";
+            buttonSIAZeitReset.Click += delegate
+            {
+                // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
+                doSIAZeitReset = true;  
+                
+                // Benachrichtung anzeigen wenn man will
+                ActivityMain.ShowNotification(activity, 0, 2,
+                    "SIA RESET",
+                    "Zeitinspektion wird zurückgesetzt...");
+            };
+            buttonLayout.AddView(buttonSIAZeitReset, buttonLayoutParams);
+            
+            // Button 4
+            buttonSIAKorrektur = new Button(activity);
+            buttonSIAKorrektur.Text = "SIA Korrektur Inspektion <> Ölservice";
+            buttonSIAKorrektur.Click += delegate
+            {
+                // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
+                doSIAKorrektur = true;  
+                
+                // Benachrichtung anzeigen wenn man will
+                ActivityMain.ShowNotification(activity, 0, 2,
+                    "SIA",
+                    "Wechsel zwischen Inspektion <> Ölservice wird durchgeführt...");
+            };
+            buttonLayout.AddView(buttonSIAKorrektur, buttonLayoutParams);
+
+            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+                ViewGroup.LayoutParams.MatchParent,
+                ViewGroup.LayoutParams.WrapContent);
+            pageLayout.AddView(buttonLayout, layoutParams);
+        }
+
+        public void DestroyLayout(JobReader.PageInfo pageInfo)
+        {
+            buttonSIAWegReset = null;
+            buttonSIAOelReset = null;
+            buttonSIAZeitReset = null;
+            buttonSIAKorrektur = null;
+        }
+
+        public void ExecuteJob(EdiabasNet ediabas, ref MultiMap<string, EdiabasNet.ResultData> resultDict, bool firstCall)
+        {
+            List<Dictionary<string, EdiabasNet.ResultData>> resultSets;
+            
+            // Job 1
+            ediabas.ArgString = string.Empty;
+            ediabas.ArgBinaryStd = null;
+            ediabas.ResultsRequests = string.Empty;
+            
+            ediabas.ExecuteJob("STATUS_AIF_SIA_DATEN_LESEN");
+            
+            resultSets = ediabas.ResultSets;
+            if (resultSets != null && resultSets.Count >= 2)
+            {
+                EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+            }
+            
+            // Job 2
+           // ediabas.ArgString = string.Empty;
+           // ediabas.ArgBinaryStd = null;
+           // ediabas.ResultsRequests = string.Empty;
+            
+           // ediabas.ExecuteJob("ZEITINPEKTIONSDATUM_LESEN");
+            
+            //resultSets = ediabas.ResultSets;
+            //if (resultSets != null && resultSets.Count >= 2)
+           // {
+               // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+          //  }
+            
+            
+            // Button Jobs
+            
+        
+        
+        
+            
+            // Button 1 - SIA RESET Weginspektion
+            if (doSIAWegReset) {
+                ediabas.ArgString = "Weg_Reset";
+                ediabas.ArgBinaryStd = null;
+                ediabas.ResultsRequests = "JOB_STATUS";
+                
+                ediabas.ExecuteJob("SIA_RESET");
+                
+                //resultSets = ediabas.ResultSets;
+                //if (resultSets != null && resultSets.Count >= 2)
+                //{
+                //  EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+                //}
+                
+                // ablaufvariable wieder zurücksetzen, sonst würde diese funktion nun bei jedem folgenden durchlauf ausgeführt werden...
+                doSIAWegReset = false;
+            }
+            
+            // Button 2 - SIA RESET Ölservice
+            if (doSIAOelReset) {
+                ediabas.ArgString = "Oel_Reset";
+                ediabas.ArgBinaryStd = null;
+                ediabas.ResultsRequests = "JOB_STATUS";
+                
+                ediabas.ExecuteJob("SIA_RESET");
+                
+                //resultSets = ediabas.ResultSets;
+                //if (resultSets != null && resultSets.Count >= 2)
+                //{
+                //  EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+                //}
+                
+                // ablaufvariable wieder zurücksetzen, sonst würde diese funktion nun bei jedem folgenden durchlauf ausgeführt werden...
+                doSIAOelReset = false;
+            }
+            
+            // Button 3 - SIA RESET Zeitinspektion
+            if (doSIAZeitReset) {
+                ediabas.ArgString = "Zeit_Reset";
+                ediabas.ArgBinaryStd = null;
+                ediabas.ResultsRequests = "JOB_STATUS";
+                
+                ediabas.ExecuteJob("SIA_RESET");
+                
+                //resultSets = ediabas.ResultSets;
+                //if (resultSets != null && resultSets.Count >= 2)
+                //{
+                //  EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+                //}
+                
+                // ablaufvariable wieder zurücksetzen, sonst würde diese funktion nun bei jedem folgenden durchlauf ausgeführt werden...
+                doSIAZeitReset = false;
+            }
+			
+			// Button 4 - SIA Korrektur
+            if (doSIAKorrektur) {
+                ediabas.ArgString = string.Empty;
+                ediabas.ArgBinaryStd = null;
+                ediabas.ResultsRequests = "JOB_STATUS";
+                
+                ediabas.ExecuteJob("SIA_KORREKTUR_SCHREIBEN");
+                
+                //resultSets = ediabas.ResultSets;
+                //if (resultSets != null && resultSets.Count >= 2)
+                //{
+                //  EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+                //}
+                
+                // ablaufvariable wieder zurücksetzen, sonst würde diese funktion nun bei jedem folgenden durchlauf ausgeführt werden...
+                doSIAKorrektur = false;
+            }
+        }
+    }
+    ]]>
+    </code>
+  </page>
+</fragment>

+ 1 - 0
E46 M57N/Pages.ccpages

@@ -8,6 +8,7 @@
     <include filename="DSC_MK60.ccpage" />
 	<include filename="LWS5_1B.ccpage" />
     <include filename="KOMBI46R.ccpage" />
+    <include filename="KOMBI_SIA.ccpage" />
     <include filename="LSZ_2.ccpage" />
     <include filename="PDCACT.ccpage" />
     <include filename="IHKA46_3.ccpage" />