DDE4 adjustment EGR (fresh air rate) increase idle speed [rpm] DDE4 Abgleich AGR (Frischluftrate) Anhebung Leerlaufdrehzahl [u/min] tag in dieser form vorhanden sein: // 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 resultDict, bool firstCall) { List> resultSets; // hier werden die job results zwischengespeichert // unterhalb der/die JOB(s) zur Datenanzeige ediabas.ArgString = string.Empty; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = string.Empty; ediabas.ExecuteJob("ABGLEICH_LESEN_AGR_RUECK"); 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]); } ediabas.ArgString = string.Empty; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = string.Empty; ediabas.ExecuteJob("ABGLEICH_LESEN_LL_REGELUNG"); 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]); } // ENDE JOBs // Button JOBs if (set_AGR_serie) { ediabas.ArgString = "0"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_VERSTELLEN_AGR_RUECK"); ediabas.ArgString = "0"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_PROG_AGR_RUECK"); // 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 = "87"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_VERSTELLEN_AGR_RUECK"); ediabas.ArgString = "87"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_PROG_AGR_RUECK"); // 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 = "0"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_VERSTELLEN_LL_REGELUNG"); ediabas.ArgString = "0"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_PROG_LL_REGELUNG"); // 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 = "50"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_VERSTELLEN_LL_REGELUNG"); ediabas.ArgString = "50"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_PROG_LL_REGELUNG"); // 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 = "70"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_VERSTELLEN_LL_REGELUNG"); ediabas.ArgString = "70"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_PROG_LL_REGELUNG"); // 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 = "100"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_VERSTELLEN_LL_REGELUNG"); ediabas.ArgString = "100"; ediabas.ArgBinaryStd = null; ediabas.ResultsRequests = "JOB_STATUS"; ediabas.ExecuteJob("ABGLEICH_PROG_LL_REGELUNG"); // 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; } } } ]]>