Home1.ccpage 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380
  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="HOME" display-mode="grid" fontsize="medium" gauges-portrait="3" gauges-landscape="5" logfile="DME_DDE.log">
  4. <strings lang="de">
  5. <string name="HOME">HOME</string>
  6. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KUEHLMITTELTEMPERATUR_WERT"> Kühlmitteltemperatur [°C]</string>
  7. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADELUFTTEMPERATUR_WERT"> Ladelufttemp. [°C]</string>
  8. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORDREHZAHL_WERT"> Drehzahl [U/min]</string>
  9. <string name="!JOB#LLA_ABGLEICH_LESEN_WERT"> Anhebung Leerlaufdrehzahl [u/min]</string>
  10. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORMOMENT_AKTUELL_WERT"> Drehmoment [Nm]:</string>
  11. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UBATT_WERT"> Batteriespannung [V]</string>
  12. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_GENERATORLAST_WERT"> Generatorlast [%]</string>
  13. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_ZUHEIZER_ANSTEUERUNG_WERT"> Zuheizer PWM [%]</string>
  14. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_WERT"> Ladedruck Ist [mbar]</string>
  15. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_SOLL_WERT"> Ladedruck Soll [mbar]</string>
  16. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LUFTMASSE_PRO_HUB_WERT"> Luftmasse [mg/Hub]</string>
  17. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UMGEBUNGSDRUCK_WERT"> Luftdruck [mbar]</string>
  18. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_RAILDRUCK_WERT"> Raildruck Ist [bar]</string>
  19. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_GESCHWINDIGKEIT_WERT"> Geschwindigkeit [km/h]</string>
  20. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_FAHRZEUGBESCHLEUNIGUNG_WERT"> Beschleunigung [m/s²]</string>
  21. <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_HIGH_WERT"> TÖNS Heizzeit [ms]</string>
  22. <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_LOW_WERT"> TÖNS Kühlzeit [ms]</string>
  23. </strings>
  24. <strings>
  25. <string name="HOME">HOME</string>
  26. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KUEHLMITTELTEMPERATUR_WERT"> coolant [°C]</string>
  27. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADELUFTTEMPERATUR_WERT"> charge air temperature [°C]</string>
  28. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORDREHZAHL_WERT"> engine speed [U/min]</string>
  29. <string name="!JOB#LLA_ABGLEICH_LESEN_WERT"> increase idle speed [rpm]</string>
  30. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORMOMENT_AKTUELL_WERT"> torque [Nm]:</string>
  31. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UBATT_WERT"> voltage [V]</string>
  32. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_GENERATORLAST_WERT"> alternator load [%]</string>
  33. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_ZUHEIZER_ANSTEUERUNG_WERT"> aux heater PWM [%]</string>
  34. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_WERT"> act. boost pressure [mbar]</string>
  35. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_SOLL_WERT"> target boost pressure [mbar]</string>
  36. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LUFTMASSE_PRO_HUB_WERT"> air mass [mg/stroke]</string>
  37. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UMGEBUNGSDRUCK_WERT"> air pressure [mbar]</string>
  38. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_RAILDRUCK_WERT"> act. rail pressure [bar]</string>
  39. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_GESCHWINDIGKEIT_WERT"> speed [km/h]</string>
  40. <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_FAHRZEUGBESCHLEUNIGUNG_WERT"> acceleration [m/s²]</string>
  41. <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_HIGH_WERT"> TÖNS heating time [ms]</string>
  42. <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_LOW_WERT"> TÖNS cooling time [ms]</string>
  43. </strings>
  44. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KUEHLMITTELTEMPERATUR_WERT" result="STAT_KUEHLMITTELTEMPERATUR_WERT" grid-type="simple-gauge-round" min-value="-20" max-value="120" log_tag="STAT_KUEHLMITTELTEMPERATUR_WERT" />
  45. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADELUFTTEMPERATUR_WERT" result="STAT_LADELUFTTEMPERATUR_WERT" format=".1R" grid-type="simple-gauge-round" min-value="-20" max-value="80" log_tag="STAT_LADELUFTTEMPERATUR_WERT" />
  46. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORDREHZAHL_WERT" result="STAT_MOTORDREHZAHL_WERT" grid-type="simple-gauge-round" min-value="0" max-value="5000" log_tag="STAT_MOTORDREHZAHL_WERT" />
  47. <display name="!JOB#LLA_ABGLEICH_LESEN_WERT" result="LLA_ABGLEICH_LESEN_WERT" format="L" display-order="0" grid-type="simple-gauge-round" min-value="0" max-value="250" log_tag="LLA" />
  48. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORMOMENT_AKTUELL_WERT" result="STAT_MOTORMOMENT_AKTUELL_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="600" log_tag="STAT_MOTORMOMENT_AKTUELL_WERT" />
  49. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UBATT_WERT" result="STAT_UBATT_WERT" grid-type="simple-gauge-round" min-value="0" max-value="15" log_tag="STAT_UBATT_WERT" />
  50. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_GENERATORLAST_WERT" result="STAT_GENERATORLAST_WERT" grid-type="simple-gauge-round" min-value="0" max-value="100" log_tag="STAT_GENERATORLAST_WERT" />
  51. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_ZUHEIZER_ANSTEUERUNG_WERT" result="STAT_ZUHEIZER_ANSTEUERUNG_WERT" grid-type="simple-gauge-round" min-value="0" max-value="100" log_tag="STAT_ZUHEIZER_ANSTEUERUNG_WERT" />
  52. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_WERT" result="STAT_LADEDRUCK_WERT" format="4.1R" grid-type="simple-gauge-round" min-value="0" max-value="2500" log_tag="STAT_LADEDRUCK_WERT" />
  53. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_SOLL_WERT" result="STAT_LADEDRUCK_SOLL_WERT" format="4.1R" grid-type="simple-gauge-round" min-value="0" max-value="2500" log_tag="STAT_LADEDRUCK_SOLL_WERT" />
  54. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LUFTMASSE_PRO_HUB_WERT" result="STAT_LUFTMASSE_PRO_HUB_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="1500" log_tag="STAT_LUFTMASSE_PRO_HUB_WERT" />
  55. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UMGEBUNGSDRUCK_WERT" result="STAT_UMGEBUNGSDRUCK_WERT" format="4.1R" grid-type="simple-gauge-round" min-value="800" max-value="1300" log_tag="STAT_UMGEBUNGSDRUCK_WERT" />
  56. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_RAILDRUCK_WERT" result="STAT_RAILDRUCK_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="1400" log_tag="STAT_RAILDRUCK_WERT" />
  57. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_GESCHWINDIGKEIT_WERT" result="STAT_GESCHWINDIGKEIT_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="250" log_tag="STAT_GESCHWINDIGKEIT_WERT" />
  58. <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_FAHRZEUGBESCHLEUNIGUNG_WERT" result="STAT_FAHRZEUGBESCHLEUNIGUNG_WERT" format="2.3R" grid-type="simple-gauge-round" min-value="-15" max-value="15" log_tag="STAT_FAHRZEUGBESCHLEUNIGUNG_WERT" />
  59. <display name="!JOB#STATUS_TOENS_IO#STAT_TOG_HIGH_WERT" result="STAT_TOG_HIGH_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="1000" log_tag="STAT_TOG_HIGH_WERT" />
  60. <display name="!JOB#STATUS_TOENS_IO#STAT_TOG_LOW_WERT" result="STAT_TOG_LOW_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="1000" log_tag="STAT_TOG_LOW_WERT" />
  61. <jobs sgbd="D50M57E1" />
  62. <code show_warnings="true">
  63. <![CDATA[
  64. class PageClass
  65. {
  66. private double conf_DetectAuxHeatAbove = 25;
  67. private double conf_EngineReallyColdBelow = 25.0;
  68. private double conf_EngineColdBelow = 75.0;
  69. private double conf_EngineWarmAbove = 85.0;
  70. private int conf_IncreaseIdle_AuxHeat = 170;
  71. private int conf_IncreaseIdle_ReallyColdEngine = 150;
  72. private int conf_IncreaseIdle_ColdEngine = 100;
  73. private int conf_IncreaseIdle_WarmEngine = 70;
  74. //private int conf_IncreaseIdle_Off = 70;
  75. private int conf_auxHeat_offCounter_max = 10;
  76. private int auxHeat_offCounter = 0;
  77. private int increaseIdle_currentValue = 0;
  78. private int increaseIdle_newValue = 0;
  79. //private bool increaseIdle_sendCmd = false;
  80. private bool state_active_AuxHeat = false;
  81. private bool state_active_ColdEngine = false;
  82. private bool state_active_ReallyColdEngine = false;
  83. private bool state_active_WarmEngine = false;
  84. //private bool state_IncreaseIdle_ColdEngine = false;
  85. //private bool state_active_WarmEngine = false;
  86. List<Dictionary<string, EdiabasNet.ResultData>> resultSets_Temps;
  87. List<Dictionary<string, EdiabasNet.ResultData>> resultSets_Abgleich;
  88. public void ExecuteJob(EdiabasNet ediabas, ref MultiMap<string, EdiabasNet.ResultData> resultDict, bool firstCall)
  89. {
  90. List<Dictionary<string, EdiabasNet.ResultData>> resultSets;
  91. // Job 1 - ständig zu aktualisierende Werte
  92. ediabas.ArgString = "JA;ILMMG;IPLAD;IPUMG;IUBAT;IMOAK;INMOT;SPLAD;IPRDR;IAFZG;IVKMH;ITZUH;IGENL";
  93. ediabas.ArgBinaryStd = null;
  94. ediabas.ResultsRequests = string.Empty;
  95. ediabas.ExecuteJob("STATUS_MESSWERTBLOCK_LESEN");
  96. resultSets = ediabas.ResultSets;
  97. if (resultSets != null && resultSets.Count >= 2)
  98. {
  99. EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
  100. }
  101. // Job 2 - seltener zu aktualisierende Werte
  102. if(jobs2counter == 0) {
  103. ediabas.ArgString = "JA;ITKUM;ITLAL";
  104. ediabas.ArgBinaryStd = null;
  105. ediabas.ResultsRequests = string.Empty;
  106. ediabas.ExecuteJob("STATUS_MESSWERTBLOCK_LESEN");
  107. resultSets_Temps = ediabas.ResultSets;
  108. ediabas.ArgString = "lla";
  109. ediabas.ArgBinaryStd = null;
  110. ediabas.ResultsRequests = string.Empty;
  111. ediabas.ExecuteJob("ABGLEICH_LESEN");
  112. resultSets_Abgleich = ediabas.ResultSets;
  113. }
  114. else if(jobs2counter >= 10) {
  115. jobs2counter = 0;
  116. }
  117. else {
  118. jobs2counter++;
  119. }
  120. if (resultSets_Temps != null && resultSets_Temps.Count >= 2)
  121. {
  122. EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets_Temps[1]);
  123. }
  124. if (resultSets_Abgleich != null && resultSets_Abgleich.Count >= 2)
  125. {
  126. EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets_Abgleich[1], "LLA_");
  127. }
  128. //
  129. EdiabasNet.ResultData resultData;
  130. int curr_auxHeatPWM = 0;
  131. if (resultSets[1].TryGetValue("STAT_ZUHEIZER_ANSTEUERUNG_WERT", out resultData))
  132. {
  133. if (resultData.OpData is Int64)
  134. {
  135. curr_auxHeatPWM = (double)((Int64)resultData.OpData);
  136. }
  137. }
  138. int curr_motorTemp = 0;
  139. if (resultSets[1].TryGetValue("STAT_KUEHLMITTELTEMPERATUR_WERT", out resultData))
  140. {
  141. if (resultData.OpData is Int64)
  142. {
  143. curr_motorTemp = (double)((Int64)resultData.OpData);
  144. }
  145. }
  146. if (curr_auxHeatPWM > conf_DetectAuxHeatAbove) {
  147. auxHeat_offCounter = conf_auxHeat_offCounter_max;
  148. if(!state_active_AuxHeat) {
  149. state_active_AuxHeat = true;
  150. increaseIdle_newValue = conf_IncreaseIdle_AuxHeat;
  151. //increaseIdle_sendCmd = true;
  152. }
  153. }
  154. else if (auxHeat_offCounter > 0) {
  155. auxHeat_offCounter--;
  156. }
  157. else if (auxHeat_offCounter == 0) {
  158. state_active_AuxHeat = false;
  159. }
  160. if(!state_active_AuxHeat) {
  161. if(curr_motorTemp < conf_EngineReallyColdBelow) {
  162. if(!state_active_ReallyColdEngine) {
  163. state_active_ReallyColdEngine = true;
  164. state_active_ColdEngine = false;
  165. state_active_WarmEngine = false;
  166. increaseIdle_newValue = conf_IncreaseIdle_ReallyColdEngine;
  167. }
  168. }
  169. else if(curr_motorTemp < conf_EngineColdBelow) {
  170. if(!state_active_ColdEngine) {
  171. state_active_ReallyColdEngine = false;
  172. state_active_ColdEngine = true;
  173. state_active_WarmEngine = false;
  174. increaseIdle_newValue = conf_IncreaseIdle_ColdEngine;
  175. }
  176. }
  177. else if(curr_motorTemp >= conf_EngineWarmAbove) {
  178. state_active_ColdEngine = false;
  179. if(!state_active_WarmEngine) {
  180. state_active_ReallyColdEngine = false;
  181. state_active_WarmEngine = true;
  182. state_active_ColdEngine = false;
  183. increaseIdle_newValue = conf_IncreaseIdle_WarmEngine;
  184. }
  185. }
  186. }
  187. if (increaseIdle_currentValue != increaseIdle_newValue) {
  188. ediabas.ArgString = "lla;" + increaseIdle_newValue;
  189. ediabas.ArgBinaryStd = null;
  190. ediabas.ResultsRequests = "JOB_STATUS";
  191. ediabas.ExecuteJob("ABGLEICH_VERSTELLEN");
  192. //resultSets = ediabas.ResultSets;
  193. //if (resultSets != null && resultSets.Count >= 2)
  194. //{
  195. // EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
  196. //}
  197. // ablaufvariable wieder zurücksetzen, sonst würde diese funktion nun bei jedem folgenden durchlauf ausgeführt werden...
  198. //increaseIdle_sendCmd = false;
  199. increaseIdle_currentValue = increaseIdle_newValue;
  200. }
  201. }
  202. public string FormatResult(JobReader.PageInfo pageInfo, MultiMap<string, EdiabasNet.ResultData> resultDict, string resultName, ref Android.Graphics.Color? textColor)
  203. {
  204. string result = string.Empty;
  205. double value;
  206. bool found;
  207. switch (resultName)
  208. {
  209. case "STAT_MOTORDREHZAHL_WERT":
  210. value = ActivityMain.GetResultDouble(resultDict, resultName, 0, out found);
  211. // result format: {0,[DIGITS TOTAL INCL COMMA],[0|0.0|0.00|0.000...]}
  212. result = string.Format(ActivityMain.Culture, "{0,4:0}", value);
  213. // Liste der möglichen Farbnamen: https://docs.microsoft.com/en-us/dotnet/api/android.graphics.color?view=xamarin-android-sdk-9
  214. if (found && value <= 4000) textColor = Android.Graphics.Color.White;
  215. else if (found && value <= 4250) textColor = Android.Graphics.Color.Yellow;
  216. else if (found && value <= 4500) textColor = Android.Graphics.Color.Orange;
  217. else if (found && value > 4500) textColor = Android.Graphics.Color.Red;
  218. else textColor = Android.Graphics.Color.Gray;
  219. break;
  220. case "STAT_UBATT_WERT":
  221. value = ActivityMain.GetResultDouble(resultDict, resultName, 0, out found);
  222. // result format: {0,[DIGITS TOTAL INCL COMMA],[0|0.0|0.00|0.000...]}
  223. result = string.Format(ActivityMain.Culture, "{0,4:0.0}", value);
  224. if (found && value < 10.5) textColor = Android.Graphics.Color.Red;
  225. else if (found && value < 11.5) textColor = Android.Graphics.Color.Orange;
  226. else if (found && value <= 12.5) textColor = Android.Graphics.Color.Yellow;
  227. else if (found && value <= 13.2) textColor = Android.Graphics.Color.Gray;
  228. else if (found && value <= 14.5) textColor = Android.Graphics.Color.White;
  229. else if (found && value > 14.5) textColor = Android.Graphics.Color.Red;
  230. else textColor = Android.Graphics.Color.Gray;
  231. break;
  232. case "STAT_GENERATORLAST_WERT":
  233. value = ActivityMain.GetResultDouble(resultDict, resultName, 0, out found);
  234. // result format: {0,[DIGITS TOTAL INCL COMMA],[0|0.0|0.00|0.000...]}
  235. result = string.Format(ActivityMain.Culture, "{0,3:0}", value);
  236. if (found && value <= 60) textColor = Android.Graphics.Color.White;
  237. else if (found && value <= 70) textColor = Android.Graphics.Color.Yellow;
  238. else if (found && value <= 80) textColor = Android.Graphics.Color.Orange;
  239. else if (found && value > 80) textColor = Android.Graphics.Color.Red;
  240. else textColor = Android.Graphics.Color.Gray;
  241. break;
  242. case "STAT_ZUHEIZER_ANSTEUERUNG_WERT":
  243. value = ActivityMain.GetResultDouble(resultDict, resultName, 0, out found);
  244. // result format: {0,[DIGITS TOTAL INCL COMMA],[0|0.0|0.00|0.000...]}
  245. result = string.Format(ActivityMain.Culture, "{0,3:0}", value);
  246. if (found && value <= 60) textColor = Android.Graphics.Color.White;
  247. else if (found && value <= 70) textColor = Android.Graphics.Color.Yellow;
  248. else if (found && value <= 80) textColor = Android.Graphics.Color.Orange;
  249. else if (found && value > 80) textColor = Android.Graphics.Color.Red;
  250. else textColor = Android.Graphics.Color.Gray;
  251. break;
  252. case "STAT_KUEHLMITTELTEMPERATUR_WERT":
  253. value = ActivityMain.GetResultDouble(resultDict, resultName, 0, out found);
  254. result = string.Format(ActivityMain.Culture, "{0,3:0}", value);
  255. if (found && value < 75) textColor = Android.Graphics.Color.Blue;
  256. else if (found && value <= 105) textColor = Android.Graphics.Color.White;
  257. else if (found && value <= 110) textColor = Android.Graphics.Color.Yellow;
  258. else if (found && value <= 115) textColor = Android.Graphics.Color.Orange;
  259. else if (found && value > 115) textColor = Android.Graphics.Color.Red;
  260. else textColor = Android.Graphics.Color.Gray;
  261. break;
  262. case "STAT_LADELUFTTEMPERATUR_WERT":
  263. value = ActivityMain.GetResultDouble(resultDict, resultName, 0, out found);
  264. result = string.Format(ActivityMain.Culture, "{0,3:0}", value);
  265. if (found && value <= 55) textColor = Android.Graphics.Color.White;
  266. else if (found && value <= 65) textColor = Android.Graphics.Color.Yellow;
  267. else if (found && value <= 75) textColor = Android.Graphics.Color.Orange;
  268. else if (found && value > 85) textColor = Android.Graphics.Color.Red;
  269. else textColor = Android.Graphics.Color.Gray;
  270. break;
  271. }
  272. return result;
  273. }
  274. }
  275. ]]>
  276. </code>
  277. <jobs sgbd="kombi46r" />
  278. <!-- name="STATUS_TOENS_IO">-->
  279. <code show_warnings="true">
  280. <![CDATA[
  281. class PageClass
  282. {
  283. private int callCounter = 0;
  284. public void ExecuteJob(EdiabasNet ediabas, ref MultiMap<string, EdiabasNet.ResultData> resultDict, bool firstCall)
  285. {
  286. if(callCounter == 0) {
  287. List<Dictionary<string, EdiabasNet.ResultData>> resultSets;
  288. // Job - ständig zu aktualisierende Werte
  289. ediabas.ArgString = string.Empty;
  290. ediabas.ArgBinaryStd = null;
  291. ediabas.ResultsRequests = string.Empty;
  292. ediabas.ExecuteJob("STATUS_TOENS_IO");
  293. resultSets = ediabas.ResultSets;
  294. if (resultSets != null && resultSets.Count >= 2)
  295. {
  296. EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
  297. }
  298. }
  299. else {
  300. if(callCounter < 15) callCounter++;
  301. else callCounter = 0;
  302. }
  303. }
  304. }
  305. ]]>
  306. </code>
  307. </page>
  308. </fragment>