123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354 |
- <?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="DDE5Abgleich" display-mode="list" fontsize="medium" gauges-portrait="2" gauges-landscape="4" logfile="DDE5A1_Abgleich.log">
- <strings>
- <string name="DDE5Abgleich">DDE5 adjustment</string>
- <string name="!JOB#AGR_ABGLEICH_LESEN_WERT"> EGR (fresh air rate)</string>
- <string name="!JOB#LLA_ABGLEICH_LESEN_WERT"> increase idle speed [rpm]</string>
- </strings>
- <strings lang="de">
- <string name="DDE5Abgleich">DDE5 Abgleich</string>
- <string name="!JOB#AGR_ABGLEICH_LESEN_WERT"> AGR (Frischluftrate)</string>
- <string name="!JOB#LLA_ABGLEICH_LESEN_WERT"> Anhebung Leerlaufdrehzahl [u/min]</string>
- </strings>
- <display name="!JOB#AGR_ABGLEICH_LESEN_WERT" result="AGR_ABGLEICH_LESEN_WERT" format="L" display-order="0" grid-type="text" min-value="0" max-value="100" log_tag="AGR" />
- <display name="!JOB#LLA_ABGLEICH_LESEN_WERT" result="LLA_ABGLEICH_LESEN_WERT" format="L" display-order="0" grid-type="text" min-value="0" max-value="100" log_tag="LLA" />
- <jobs sgbd="D50M47B1" />
- <code show_warnings="true">
- <![CDATA[
- class PageClass
- {
- // Button deklarieren
- private Button buttonAGRserie;
- private Button buttonAGRred;
- private Button buttonLLA0;
- private Button buttonLLA50;
- private Button buttonLLA70;
- private Button buttonLLA100;
-
- // Ablaufvariable deklarieren und initialisieren
- // diese boolsche Variable wird vom Button auf true gesetzt und in der ExecuteJob Methode ausgewertet
- // wo dann ggf. der eigentliche Befehl ans Steuergerät ausgeführt wird
- private bool set_AGR_serie = false;
- private bool set_AGR_red = false;
- private bool set_LLA_0 = false;
- private bool set_LLA_50 = false;
- private bool set_LLA_70 = false;
- private bool set_LLA_100 = false;
-
- // Seitenaufbau:
- // <display... tags müssen direkt unter <page... stehen und result="RESULT_NAME" (ohne job name) enthalten
- // diese werden unterhalb von der Funktion ExecuteJob befüllt
- // <job... tags wie normalerweise gibt es nicht
- // Es darf nur ein <jobs> tag in dieser form vorhanden sein: <jobs sgbg="sgbdname" />
- // Jedenfalls wurde bei meinen Tests die ExecuteJobs Funktion niemals aufgerufen wenn in der ccpage
- // jobs im normalen Format enthalten waren. Ob das wirklich so ist oder ich einen anderen Fehler hatte
- // muss ich erst noch rausfinden.
-
- 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 AGR Serie
- buttonAGRserie = new Button(activity);
- buttonAGRserie.Text = "AGR Serie";
- buttonAGRserie.Click += delegate
- {
- // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
- set_AGR_serie = true;
-
- //// Benachrichtung anzeigen wenn man will
- //ActivityMain.ShowNotification(activity, 0, 2,
- // "DDE Abgleich",
- // "AGR 0");
- };
- buttonLayout.AddView(buttonAGRserie, buttonLayoutParams);
-
-
- // Button AGR Reduziert
- buttonAGRred = new Button(activity);
- buttonAGRred.Text = "AGR min.";
- buttonAGRred.Click += delegate
- {
- // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
- set_AGR_red = true;
-
- //// Benachrichtung anzeigen wenn man will
- //ActivityMain.ShowNotification(activity, 0, 2,
- // "DDE Abgleich",
- // "AGR 87");
- };
- buttonLayout.AddView(buttonAGRred, buttonLayoutParams);
-
-
- // Button Leerlauf Serie
- buttonLLA0 = new Button(activity);
- buttonLLA0.Text = "LL +0";
- buttonLLA0.Click += delegate
- {
- // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
- set_LLA_0 = true;
-
- //// Benachrichtung anzeigen wenn man will
- //ActivityMain.ShowNotification(activity, 0, 2,
- // "DDE Abgleich",
- // "Leerlaufdrehzahl +0");
- };
- buttonLayout.AddView(buttonLLA0, buttonLayoutParams);
-
-
- // Button Leerlauf +50
- buttonLLA50 = new Button(activity);
- buttonLLA50.Text = "LL +50";
- buttonLLA50.Click += delegate
- {
- // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
- set_LLA_50 = true;
-
- //// Benachrichtung anzeigen wenn man will
- //ActivityMain.ShowNotification(activity, 0, 2,
- // "DDE Abgleich",
- // "Leerlaufdrehzahl +50");
- };
- buttonLayout.AddView(buttonLLA50, buttonLayoutParams);
-
-
- // Button Leerlauf +70
- buttonLLA70 = new Button(activity);
- buttonLLA70.Text = "LL +70";
- buttonLLA70.Click += delegate
- {
- // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
- set_LLA_70 = true;
-
- //// Benachrichtung anzeigen wenn man will
- //ActivityMain.ShowNotification(activity, 0, 2,
- // "DDE Abgleich",
- // "Leerlaufdrehzahl +70");
- };
- buttonLayout.AddView(buttonLLA70, buttonLayoutParams);
-
-
- // Button Leerlauf +100
- buttonLLA100 = new Button(activity);
- buttonLLA100.Text = "LL +100";
- buttonLLA100.Click += delegate
- {
- // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
- set_LLA_100 = true;
-
- //// Benachrichtung anzeigen wenn man will
- //ActivityMain.ShowNotification(activity, 0, 2,
- // "DDE Abgleich",
- // "Leerlaufdrehzahl +100");
- };
- buttonLayout.AddView(buttonLLA100, buttonLayoutParams);
-
-
-
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.MatchParent,
- ViewGroup.LayoutParams.WrapContent);
- pageLayout.AddView(buttonLayout, layoutParams);
- }
-
- public void DestroyLayout(JobReader.PageInfo pageInfo)
- {
- buttonAGRserie = null;
- buttonAGRred = null;
- buttonLLA0 = null;
- buttonLLA50 = null;
- buttonLLA70 = null;
- buttonLLA100 = null;
- }
- public void ExecuteJob(EdiabasNet ediabas, ref MultiMap<string, EdiabasNet.ResultData> resultDict, bool firstCall)
- {
- List<Dictionary<string, EdiabasNet.ResultData>> resultSets; // hier werden die job results zwischengespeichert
-
- // unterhalb der/die JOB(s) zur Datenanzeige
-
-
- ediabas.ArgString = "agr";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = string.Empty;
- ediabas.ExecuteJob("ABGLEICH_LESEN");
-
- resultSets = ediabas.ResultSets;
- if (resultSets != null && resultSets.Count >= 2)
- {
- // results der aktuellen Abfrage mit unveränderten result namen übernehmen
- EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1], "AGR_");
- }
-
-
- ediabas.ArgString = "lla";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = string.Empty;
- ediabas.ExecuteJob("ABGLEICH_LESEN");
-
- resultSets = ediabas.ResultSets;
- if (resultSets != null && resultSets.Count >= 2)
- {
- // results der aktuellen Abfrage mit unveränderten result namen übernehmen
- EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1], "LLA_");
- }
-
-
- // ENDE JOBs
-
-
-
- // Button JOBs
-
- if (set_AGR_serie) {
- ediabas.ArgString = "agr;0";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
-
- ediabas.ArgString = "agr;0";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_PROG");
-
- // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
- // und den blinkenden LEDs im KOMBI eh sofort sieht)
- //resultSets = ediabas.ResultSets;
- //if (resultSets != null && resultSets.Count >= 2)
- //{
- // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
- //}
-
- // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
- set_AGR_serie = false;
- }
-
- if (set_AGR_red) {
- ediabas.ArgString = "agr;87";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
-
- ediabas.ArgString = "agr;87";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_PROG");
-
- // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
- // und den blinkenden LEDs im KOMBI eh sofort sieht)
- //resultSets = ediabas.ResultSets;
- //if (resultSets != null && resultSets.Count >= 2)
- //{
- // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
- //}
-
- // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
- set_AGR_red = false;
- }
-
- if (set_LLA_0) {
- ediabas.ArgString = "lla;0";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
-
- ediabas.ArgString = "lla;0";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_PROG");
-
- // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
- // und den blinkenden LEDs im KOMBI eh sofort sieht)
- //resultSets = ediabas.ResultSets;
- //if (resultSets != null && resultSets.Count >= 2)
- //{
- // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
- //}
-
- // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
- set_LLA_0 = false;
- }
-
- if (set_LLA_50) {
- ediabas.ArgString = "lla;50";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
-
- ediabas.ArgString = "lla;50";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_PROG");
-
- // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
- // und den blinkenden LEDs im KOMBI eh sofort sieht)
- //resultSets = ediabas.ResultSets;
- //if (resultSets != null && resultSets.Count >= 2)
- //{
- // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
- //}
-
- // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
- set_LLA_50 = false;
- }
-
- if (set_LLA_70) {
- ediabas.ArgString = "lla;70";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
-
- ediabas.ArgString = "lla;70";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_PROG");
-
- // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
- // und den blinkenden LEDs im KOMBI eh sofort sieht)
- //resultSets = ediabas.ResultSets;
- //if (resultSets != null && resultSets.Count >= 2)
- //{
- // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
- //}
-
- // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
- set_LLA_70 = false;
- }
-
- if (set_LLA_100) {
- ediabas.ArgString = "lla;100";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
-
- ediabas.ArgString = "lla;100";
- ediabas.ArgBinaryStd = null;
- ediabas.ResultsRequests = "JOB_STATUS";
- ediabas.ExecuteJob("ABGLEICH_PROG");
-
- // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
- // und den blinkenden LEDs im KOMBI eh sofort sieht)
- //resultSets = ediabas.ResultSets;
- //if (resultSets != null && resultSets.Count >= 2)
- //{
- // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
- //}
-
- // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
- set_LLA_100 = false;
- }
-
- }
- }
- ]]>
- </code>
- </page>
- </fragment>
|