DDEAbgleich_D50M57E1_noProg.ccpage 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <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">
  3. <page name="DDE5AbgleichNP" display-mode="list" fontsize="medium" gauges-portrait="2" gauges-landscape="4" logfile="DDE5E1_Abgleich.log">
  4. <strings>
  5. <string name="DDE5AbgleichNP">DDE5 IDLE-adjustment noProg</string>
  6. <!--<string name="!JOB#AGR_ABGLEICH_LESEN_WERT"> EGR (fresh air rate)</string>-->
  7. <string name="!JOB#LLA_ABGLEICH_LESEN_WERT"> increase idle speed [rpm]</string>
  8. </strings>
  9. <strings lang="de">
  10. <string name="DDE5AbgleichNP">DDE5 LL-Abgleich noProg</string>
  11. <!--<string name="!JOB#AGR_ABGLEICH_LESEN_WERT"> AGR (Frischluftrate)</string>-->
  12. <string name="!JOB#LLA_ABGLEICH_LESEN_WERT"> Anhebung Leerlaufdrehzahl [u/min]</string>
  13. </strings>
  14. <!--<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" />-->
  15. <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" />
  16. <jobs sgbd="D50M57E1" />
  17. <code show_warnings="true">
  18. <![CDATA[
  19. class PageClass
  20. {
  21. // Button deklarieren
  22. //private Button buttonAGRserie;
  23. //private Button buttonAGRred;
  24. private Button buttonLLA0;
  25. private Button buttonLLA50;
  26. private Button buttonLLA70;
  27. private Button buttonLLA100;
  28. private Button buttonLLA150;
  29. private Button buttonLLA200;
  30. // Ablaufvariable deklarieren und initialisieren
  31. // diese boolsche Variable wird vom Button auf true gesetzt und in der ExecuteJob Methode ausgewertet
  32. // wo dann ggf. der eigentliche Befehl ans Steuergerät ausgeführt wird
  33. //private bool set_AGR_serie = false;
  34. //private bool set_AGR_red = false;
  35. private bool set_LLA_0 = false;
  36. private bool set_LLA_50 = false;
  37. private bool set_LLA_70 = false;
  38. private bool set_LLA_100 = false;
  39. private bool set_LLA_150 = false;
  40. private bool set_LLA_200 = false;
  41. // Seitenaufbau:
  42. // <display... tags müssen direkt unter <page... stehen und result="RESULT_NAME" (ohne job name) enthalten
  43. // diese werden unterhalb von der Funktion ExecuteJob befüllt
  44. // <job... tags wie normalerweise gibt es nicht
  45. // Es darf nur ein <jobs> tag in dieser form vorhanden sein: <jobs sgbg="sgbdname" />
  46. // Jedenfalls wurde bei meinen Tests die ExecuteJobs Funktion niemals aufgerufen wenn in der ccpage
  47. // jobs im normalen Format enthalten waren. Ob das wirklich so ist oder ich einen anderen Fehler hatte
  48. // muss ich erst noch rausfinden.
  49. public void CreateLayout(ActivityMain activity, JobReader.PageInfo pageInfo, LinearLayout pageLayout)
  50. {
  51. LinearLayout buttonLayout = new LinearLayout(activity);
  52. buttonLayout.Orientation = Orientation.Horizontal;
  53. LinearLayout.LayoutParams buttonLayoutParams = new LinearLayout.LayoutParams(
  54. ViewGroup.LayoutParams.MatchParent,
  55. ViewGroup.LayoutParams.WrapContent);
  56. buttonLayoutParams.Weight = 1;
  57. // // Button AGR Serie
  58. // buttonAGRserie = new Button(activity);
  59. // buttonAGRserie.Text = "AGR Serie";
  60. // buttonAGRserie.Click += delegate
  61. // {
  62. // // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
  63. // set_AGR_serie = true;
  64. //
  65. // //// Benachrichtung anzeigen wenn man will
  66. // //ActivityMain.ShowNotification(activity, 0, 2,
  67. // // "DDE Abgleich",
  68. // // "AGR 0");
  69. // };
  70. // buttonLayout.AddView(buttonAGRserie, buttonLayoutParams);
  71. //
  72. //
  73. // // Button AGR Reduziert
  74. // buttonAGRred = new Button(activity);
  75. // buttonAGRred.Text = "AGR min.";
  76. // buttonAGRred.Click += delegate
  77. // {
  78. // // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
  79. // set_AGR_red = true;
  80. //
  81. // //// Benachrichtung anzeigen wenn man will
  82. // //ActivityMain.ShowNotification(activity, 0, 2,
  83. // // "DDE Abgleich",
  84. // // "AGR 87");
  85. // };
  86. // buttonLayout.AddView(buttonAGRred, buttonLayoutParams);
  87. // Button Leerlauf Serie
  88. buttonLLA0 = new Button(activity);
  89. buttonLLA0.Text = "LL \n +0";
  90. buttonLLA0.Click += delegate
  91. {
  92. // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
  93. set_LLA_0 = true;
  94. //// Benachrichtung anzeigen wenn man will
  95. //ActivityMain.ShowNotification(activity, 0, 2,
  96. // "DDE Abgleich",
  97. // "Leerlaufdrehzahl +0");
  98. };
  99. buttonLayout.AddView(buttonLLA0, buttonLayoutParams);
  100. // Button Leerlauf +50
  101. buttonLLA50 = new Button(activity);
  102. buttonLLA50.Text = "LL \n +50";
  103. buttonLLA50.Click += delegate
  104. {
  105. // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
  106. set_LLA_50 = true;
  107. //// Benachrichtung anzeigen wenn man will
  108. //ActivityMain.ShowNotification(activity, 0, 2,
  109. // "DDE Abgleich",
  110. // "Leerlaufdrehzahl +50");
  111. };
  112. buttonLayout.AddView(buttonLLA50, buttonLayoutParams);
  113. // Button Leerlauf +70
  114. buttonLLA70 = new Button(activity);
  115. buttonLLA70.Text = "LL \n +70";
  116. buttonLLA70.Click += delegate
  117. {
  118. // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
  119. set_LLA_70 = true;
  120. //// Benachrichtung anzeigen wenn man will
  121. //ActivityMain.ShowNotification(activity, 0, 2,
  122. // "DDE Abgleich",
  123. // "Leerlaufdrehzahl +70");
  124. };
  125. buttonLayout.AddView(buttonLLA70, buttonLayoutParams);
  126. // Button Leerlauf +100
  127. buttonLLA100 = new Button(activity);
  128. buttonLLA100.Text = "LL \n+100";
  129. buttonLLA100.Click += delegate
  130. {
  131. // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
  132. set_LLA_100 = true;
  133. //// Benachrichtung anzeigen wenn man will
  134. //ActivityMain.ShowNotification(activity, 0, 2,
  135. // "DDE Abgleich",
  136. // "Leerlaufdrehzahl +100");
  137. };
  138. buttonLayout.AddView(buttonLLA100, buttonLayoutParams);
  139. // Button Leerlauf +150
  140. buttonLLA150 = new Button(activity);
  141. buttonLLA150.Text = "LL \n+150";
  142. buttonLLA150.Click += delegate
  143. {
  144. // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
  145. set_LLA_150 = true;
  146. //// Benachrichtung anzeigen wenn man will
  147. //ActivityMain.ShowNotification(activity, 0, 2,
  148. // "DDE Abgleich",
  149. // "Leerlaufdrehzahl +150");
  150. };
  151. buttonLayout.AddView(buttonLLA150, buttonLayoutParams);
  152. // Button Leerlauf +200
  153. buttonLLA200 = new Button(activity);
  154. buttonLLA200.Text = "LL \n+200";
  155. buttonLLA200.Click += delegate
  156. {
  157. // button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
  158. set_LLA_200 = true;
  159. //// Benachrichtung anzeigen wenn man will
  160. //ActivityMain.ShowNotification(activity, 0, 2,
  161. // "DDE Abgleich",
  162. // "Leerlaufdrehzahl +200");
  163. };
  164. buttonLayout.AddView(buttonLLA200, buttonLayoutParams);
  165. LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
  166. ViewGroup.LayoutParams.MatchParent,
  167. ViewGroup.LayoutParams.WrapContent);
  168. pageLayout.AddView(buttonLayout, layoutParams);
  169. }
  170. public void DestroyLayout(JobReader.PageInfo pageInfo)
  171. {
  172. // buttonAGRserie = null;
  173. // buttonAGRred = null;
  174. buttonLLA0 = null;
  175. buttonLLA50 = null;
  176. buttonLLA70 = null;
  177. buttonLLA100 = null;
  178. buttonLLA150 = null;
  179. buttonLLA200 = null;
  180. }
  181. public void ExecuteJob(EdiabasNet ediabas, ref MultiMap<string, EdiabasNet.ResultData> resultDict, bool firstCall)
  182. {
  183. List<Dictionary<string, EdiabasNet.ResultData>> resultSets; // hier werden die job results zwischengespeichert
  184. // unterhalb der/die JOB(s) zur Datenanzeige
  185. // ediabas.ArgString = "agr";
  186. // ediabas.ArgBinaryStd = null;
  187. // ediabas.ResultsRequests = string.Empty;
  188. // ediabas.ExecuteJob("ABGLEICH_LESEN");
  189. //
  190. // resultSets = ediabas.ResultSets;
  191. // if (resultSets != null && resultSets.Count >= 2)
  192. // {
  193. // // results der aktuellen Abfrage mit unveränderten result namen übernehmen
  194. // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1], "AGR_");
  195. // }
  196. ediabas.ArgString = "lla";
  197. ediabas.ArgBinaryStd = null;
  198. ediabas.ResultsRequests = string.Empty;
  199. ediabas.ExecuteJob("ABGLEICH_LESEN");
  200. resultSets = ediabas.ResultSets;
  201. if (resultSets != null && resultSets.Count >= 2)
  202. {
  203. // results der aktuellen Abfrage mit unveränderten result namen übernehmen
  204. EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1], "LLA_");
  205. }
  206. // ENDE JOBs
  207. // Button JOBs
  208. // if (set_AGR_serie) {
  209. // ediabas.ArgString = "agr;0";
  210. // ediabas.ArgBinaryStd = null;
  211. // ediabas.ResultsRequests = "JOB_STATUS";
  212. // ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
  213. //
  214. // // ediabas.ArgString = "agr;0";
  215. // // ediabas.ArgBinaryStd = null;
  216. // // ediabas.ResultsRequests = "JOB_STATUS";
  217. // // ediabas.ExecuteJob("ABGLEICH_PROG");
  218. //
  219. // // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
  220. // // und den blinkenden LEDs im KOMBI eh sofort sieht)
  221. // //resultSets = ediabas.ResultSets;
  222. // //if (resultSets != null && resultSets.Count >= 2)
  223. // //{
  224. // // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
  225. // //}
  226. //
  227. // // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
  228. // set_AGR_serie = false;
  229. // }
  230. //
  231. // if (set_AGR_red) {
  232. // ediabas.ArgString = "agr;87";
  233. // ediabas.ArgBinaryStd = null;
  234. // ediabas.ResultsRequests = "JOB_STATUS";
  235. // ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
  236. //
  237. // // ediabas.ArgString = "agr;87";
  238. // // ediabas.ArgBinaryStd = null;
  239. // // ediabas.ResultsRequests = "JOB_STATUS";
  240. // // ediabas.ExecuteJob("ABGLEICH_PROG");
  241. //
  242. // // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
  243. // // und den blinkenden LEDs im KOMBI eh sofort sieht)
  244. // //resultSets = ediabas.ResultSets;
  245. // //if (resultSets != null && resultSets.Count >= 2)
  246. // //{
  247. // // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
  248. // //}
  249. //
  250. // // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
  251. // set_AGR_red = false;
  252. // }
  253. if (set_LLA_0) {
  254. ediabas.ArgString = "lla;0";
  255. ediabas.ArgBinaryStd = null;
  256. ediabas.ResultsRequests = "JOB_STATUS";
  257. ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
  258. // ediabas.ArgString = "lla;0";
  259. // ediabas.ArgBinaryStd = null;
  260. // ediabas.ResultsRequests = "JOB_STATUS";
  261. // ediabas.ExecuteJob("ABGLEICH_PROG");
  262. // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
  263. // und den blinkenden LEDs im KOMBI eh sofort sieht)
  264. //resultSets = ediabas.ResultSets;
  265. //if (resultSets != null && resultSets.Count >= 2)
  266. //{
  267. // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
  268. //}
  269. // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
  270. set_LLA_0 = false;
  271. }
  272. if (set_LLA_50) {
  273. ediabas.ArgString = "lla;50";
  274. ediabas.ArgBinaryStd = null;
  275. ediabas.ResultsRequests = "JOB_STATUS";
  276. ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
  277. // ediabas.ArgString = "lla;50";
  278. // ediabas.ArgBinaryStd = null;
  279. // ediabas.ResultsRequests = "JOB_STATUS";
  280. // ediabas.ExecuteJob("ABGLEICH_PROG");
  281. // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
  282. // und den blinkenden LEDs im KOMBI eh sofort sieht)
  283. //resultSets = ediabas.ResultSets;
  284. //if (resultSets != null && resultSets.Count >= 2)
  285. //{
  286. // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
  287. //}
  288. // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
  289. set_LLA_50 = false;
  290. }
  291. if (set_LLA_70) {
  292. ediabas.ArgString = "lla;70";
  293. ediabas.ArgBinaryStd = null;
  294. ediabas.ResultsRequests = "JOB_STATUS";
  295. ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
  296. // ediabas.ArgString = "lla;70";
  297. // ediabas.ArgBinaryStd = null;
  298. // ediabas.ResultsRequests = "JOB_STATUS";
  299. // ediabas.ExecuteJob("ABGLEICH_PROG");
  300. // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
  301. // und den blinkenden LEDs im KOMBI eh sofort sieht)
  302. //resultSets = ediabas.ResultSets;
  303. //if (resultSets != null && resultSets.Count >= 2)
  304. //{
  305. // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
  306. //}
  307. // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
  308. set_LLA_70 = false;
  309. }
  310. if (set_LLA_100) {
  311. ediabas.ArgString = "lla;100";
  312. ediabas.ArgBinaryStd = null;
  313. ediabas.ResultsRequests = "JOB_STATUS";
  314. ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
  315. // ediabas.ArgString = "lla;100";
  316. // ediabas.ArgBinaryStd = null;
  317. // ediabas.ResultsRequests = "JOB_STATUS";
  318. // ediabas.ExecuteJob("ABGLEICH_PROG");
  319. // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
  320. // und den blinkenden LEDs im KOMBI eh sofort sieht)
  321. //resultSets = ediabas.ResultSets;
  322. //if (resultSets != null && resultSets.Count >= 2)
  323. //{
  324. // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
  325. //}
  326. // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
  327. set_LLA_100 = false;
  328. }
  329. if (set_LLA_150) {
  330. ediabas.ArgString = "lla;150";
  331. ediabas.ArgBinaryStd = null;
  332. ediabas.ResultsRequests = "JOB_STATUS";
  333. ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
  334. // ediabas.ArgString = "lla;150";
  335. // ediabas.ArgBinaryStd = null;
  336. // ediabas.ResultsRequests = "JOB_STATUS";
  337. // ediabas.ExecuteJob("ABGLEICH_PROG");
  338. // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
  339. // und den blinkenden LEDs im KOMBI eh sofort sieht)
  340. //resultSets = ediabas.ResultSets;
  341. //if (resultSets != null && resultSets.Count >= 2)
  342. //{
  343. // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
  344. //}
  345. // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
  346. set_LLA_150 = false;
  347. }
  348. if (set_LLA_200) {
  349. ediabas.ArgString = "lla;200";
  350. ediabas.ArgBinaryStd = null;
  351. ediabas.ResultsRequests = "JOB_STATUS";
  352. ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
  353. // ediabas.ArgString = "lla;200";
  354. // ediabas.ArgBinaryStd = null;
  355. // ediabas.ResultsRequests = "JOB_STATUS";
  356. // ediabas.ExecuteJob("ABGLEICH_PROG");
  357. // JOB RESULT ermitteln (wird derzeit nicht weiter verwendet weil man es anhand der geänderten Daten
  358. // und den blinkenden LEDs im KOMBI eh sofort sieht)
  359. //resultSets = ediabas.ResultSets;
  360. //if (resultSets != null && resultSets.Count >= 2)
  361. //{
  362. // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
  363. //}
  364. // Ablaufvariable wieder zurücksetzen, sonst würde dieser Befehl nun bei jedem weiteren Durchlauf ausgeführt werden...
  365. set_LLA_200 = false;
  366. }
  367. }
  368. }
  369. ]]>
  370. </code>
  371. </page>
  372. </fragment>