Browse Source

initial checkin, Konfiguration für M57N mit Laufunruhe + RPA RESET funktionsfähig

FloKra 3 years ago
commit
27b58bc1ff

+ 680 - 0
E46 M57N/BmwDeepObd.xsd

@@ -0,0 +1,680 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema targetNamespace="http://www.holeschak.de/BmwDeepObd"
+    elementFormDefault="qualified"
+    xmlns="http://www.holeschak.de/BmwDeepObd"
+    xmlns:mstns="http://www.holeschak.de/BmwDeepObd"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+>
+
+  <xs:simpleType name="string1-type">
+    <xs:restriction base="xs:string">
+      <xs:minLength value="1"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="include-type">
+    <xs:annotation>
+      <xs:documentation>
+        Allows to include page fragments from another file.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="filename" type="string1-type" use="required">
+      <xs:annotation>
+        <xs:documentation>
+          File name of xml page fragment to include.
+          File name could be absolute or relative.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:simpleType name="manufacturer-type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="BMW">
+        <xs:annotation>
+          <xs:documentation>
+            Manufacturer BMW
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="Audi">
+        <xs:annotation>
+          <xs:documentation>
+            Manufacturer Audi
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="Seat">
+        <xs:annotation>
+          <xs:documentation>
+            Manufacturer Seat
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="Skoda">
+        <xs:annotation>
+          <xs:documentation>
+            Manufacturer Skoda
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="VW">
+        <xs:annotation>
+          <xs:documentation>
+            Manufacturer VW
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="interface-type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="BLUETOOTH">
+        <xs:annotation>
+          <xs:documentation>
+            Bluetooth interface
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="ENET">
+        <xs:annotation>
+          <xs:documentation>
+            Ethernet interface, not allowed for VW
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="ELMWIFI">
+        <xs:annotation>
+          <xs:documentation>
+            ELM 327 WIFI device, not allowed for VW
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="DEEPOBDWIFI">
+        <xs:annotation>
+          <xs:documentation>
+            Deep OBD WIFI device
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="FTDI">
+        <xs:annotation>
+          <xs:documentation>
+            FTDI USB device, not allowed for VW
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="display-mode-type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="list">
+        <xs:annotation>
+          <xs:documentation>
+            Display text list
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="grid">
+        <xs:annotation>
+          <xs:documentation>
+            Display data elements as grid
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="grid-mode-type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="hidden">
+        <xs:annotation>
+          <xs:documentation>
+            This entry is not shown
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="simple-gauge-square">
+        <xs:annotation>
+          <xs:documentation>
+            Displays simple gauge square type
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="simple-gauge-round">
+        <xs:annotation>
+          <xs:documentation>
+            Displays simple gauge round type
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="simple-gauge-dot">
+        <xs:annotation>
+          <xs:documentation>
+            Displays simple gauge dot type
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="fontsize-type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="small">
+        <xs:annotation>
+          <xs:documentation>
+            Small font appearence
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="medium">
+        <xs:annotation>
+          <xs:documentation>
+            Medium font appearence
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="large">
+        <xs:annotation>
+          <xs:documentation>
+            Large font appearence
+          </xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="global-type">
+    <xs:annotation>
+      <xs:documentation>Global specifications for all pages.</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="ecu_path" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Relative or absolute path of the ecu files to use. If ommited the standard ecu path will be used (recommended).
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="log_path" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Relative or absolute path for the trace and data log files.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="append_log" type="xs:boolean" default="false" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          If true the log file is appended.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="manufacturer" type="manufacturer-type" default="BMW" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the selected manufacturer
+          If ommited BMW is the default.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="interface" type="interface-type" default="BLUETOOTH" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the selected communication interface.
+          If ommited bluetooth is the default.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+      <xs:attribute name="search_abort_index" type="xs:int" default="-1" use="optional">
+          <xs:annotation>
+              <xs:documentation>
+                  Index of the last search abort (VAG only). A values of -1 specifies no abort.
+                  If ommited -1 is the default.
+              </xs:documentation>
+          </xs:annotation>
+      </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="display-type">
+    <xs:annotation>
+      <xs:documentation>Specifies a result output row.</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="name" type="string1-type" use="required">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the output list entry.
+          Must be a reference to a string.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="result" type="string1-type" use="required">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the EDIABAS result.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="format" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Format of the output value.
+          The format specifier must have an EDIABAS apiResultText format.
+          If ommited the function FormatResult() will be called.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="grid-type" type="grid-mode-type" default="hidden" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Type of display element in grid mode.
+          If ommited the entry is hidden.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="min-value" type="xs:double" default="0" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Minimum value for gauge display.
+          If ommited the default value is 0.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="max-value" type="xs:double" default="100" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Maximum value for gauge display.
+          If ommited the default value is 100.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="log_tag" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Tag for the data log file.
+          Data is only logged if tag is present.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="string-type" mixed="true">
+    <xs:annotation>
+      <xs:documentation>String translation element.</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="name" type="string1-type" use="required">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the translation entry.
+          It will be used as reference in page and display elements.
+          Additionally it could be used with the GetPageString() function.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="strings-type">
+    <xs:annotation>
+      <xs:documentation>
+        Group of translation strings for specific language.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="string" type="string-type" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="lang" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the language (culture).
+          This could be either the short form e.g. 'de' or the long one 'de-DE'.
+          If omitted this is the default languge if no other language tag matches.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="job-type">
+    <xs:annotation>
+      <xs:documentation>
+        Specifies the EDIABAS job to execute.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="display" type="display-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="id" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Id for job result identification.
+          If this element is specified the result name will be: [id]#[data set index]#[result],
+          otherwise: [name]#[result].
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="sgbd" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the SGBD file to load.
+          This overrides the SGBD file from the jobs node.
+          It's recommended to combine this with the id attribute.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="name" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the EDIABAS job to execute.
+          If this element is used the function ExecuteJob() will not be called.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="args_first" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          A list of semicolon separated arguments for the first EDIABAS job call.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="args" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          A list of semicolon separated arguments for the EDIABAS job.
+          For the first call args_first will be used if present.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="results" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          A list of semicolon separated results for the EDIABAS job.
+          If omitted all results will be generated.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="jobs-type">
+    <xs:annotation>
+      <xs:documentation>
+        Specifies all EDIABAS jobs to execute.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="job" type="job-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="sgbd" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the SGBD file to load.
+          If omitted the SGBD must be specified in the job node or loaded in ExecuteJob().
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="mwtab" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Relative path of the used MwTab file. Only used for VAG configuration generator.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="mwdata" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          MwTab data from ECU. Only used for VAG configuration generator.
+          The format is : [block],[index],[type],[unit base 64 encoded];[block],[index] ...
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="vag_data_file" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Relative path of the used VAG data file. Only used for VAG configuration generator.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="vag_uds_file" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Relative path of the used VAG UDS file. Only used for VAG configuration generator.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="ecu-type">
+    <xs:annotation>
+      <xs:documentation>
+        Specifies ECU to read the error memory from.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="name" type="string1-type" use="required">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the ECU.
+          Must be a reference to a string element.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="sgbd" type="string1-type" use="required">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the SGBD file to load.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="vag_data_file" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Relative path of the used VAG data file. Only used for VAG configuration generator.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="vag_uds_file" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Relative path of the used VAG UDS file. Only used for VAG configuration generator.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="results" type="xs:string" use="optional" default="F_UW_KM">
+      <xs:annotation>
+        <xs:documentation>
+          A list of semicolon separated results for the FS_LESEN_DETAIL job.
+          If omitted only F_UW_KM result will be generated.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="read-errors-type">
+    <xs:annotation>
+      <xs:documentation>
+        Groups nodes for error memory reading
+      </xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="ecu" type="ecu-type" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="sgbd_functional" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Functional SGBD for this vehicle type. Used for global error reset.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="code-type" mixed="true">
+    <xs:annotation>
+      <xs:documentation>
+        <![CDATA[
+        This block can contain C# user code that will be compiled after reading the xml.
+        The class for the code must be always named PageClass.
+        The FormatResult() functions are only called, if there is no format property in the display node!
+        It can contain the following pre-defined functions:
+        public void CreateLayout(ActivityMain activity, JobReader.PageInfo pageInfo, LinearLayout pageLayout);
+        public void DestroyLayout(JobReader.PageInfo pageInfo);
+        public void UpdateLayout(JobReader.PageInfo pageInfo, bool pageValid, bool threadActive);
+        public void ExecuteJob(EdiabasNet ediabas, ref Dictionary<string, EdiabasNet.ResultData=""> resultDict, bool firstCall);
+        public void ExecuteJob(EdiabasNet ediabas, ref MultiMap<string, EdiabasNet.ResultData=""> resultDict, bool firstCall);
+        public string FormatResult(JobReader.PageInfo pageInfo, Dictionary<string, EdiabasNet.ResultData> resultDict, string resultName);
+        public string FormatResult(JobReader.PageInfo pageInfo, Dictionary<string, EdiabasNet.ResultData> resultDict, string resultName, ref Android.Graphics.Color? textColor);
+        public string FormatResult(JobReader.PageInfo pageInfo, MultiMap<string, EdiabasNet.ResultData> resultDict, string resultName, ref Android.Graphics.Color? textColor);
+        public void UpdateResultList(JobReader.PageInfo pageInfo, Dictionary<string, EdiabasNet.ResultData> resultDict, List<TableResultItem> resultList);
+        public void UpdateResultList(JobReader.PageInfo pageInfo, MultiMap<string, EdiabasNet.ResultData> resultDict, List<TableResultItem> resultList);
+        ]]>
+      </xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="show_warnings" type="xs:boolean" default="false" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Show warnings during compilation of user code.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="page-type">
+    <xs:annotation>
+      <xs:documentation>
+        Definition of one page.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="display" type="display-type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="strings" type="strings-type" maxOccurs="unbounded"/>
+      <xs:choice maxOccurs="unbounded">
+        <xs:element name="jobs" type="jobs-type" minOccurs="0" maxOccurs="1"/>
+        <xs:element name="read_errors" type="read-errors-type" minOccurs="1" maxOccurs="1"/>
+      </xs:choice>
+      <xs:element name="code" type="code-type" minOccurs="0" maxOccurs="1"/>
+    </xs:sequence>
+    <xs:attribute name="name" type="string1-type" use="required">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the page.
+          Must be a reference to a string element.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="weight" type="xs:float" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Weight to control with width of the result colum.
+          A value of 1 indicates 50% of the page width.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+
+    <xs:attribute name="display-mode" type="display-mode-type" default="list" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Display mode, the default mode is list.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+
+    <xs:attribute name="fontsize" type="fontsize-type" default="small" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Font size appearence, the default size is small.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+
+    <xs:attribute name="gauges-portrait" type="xs:integer" default="2" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Number of gauges per line in portrait mode, default is 2.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+
+    <xs:attribute name="gauges-landscape" type="xs:integer" default="4" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Number of gauges per line in landscape mode, default is 4.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+
+    <xs:attribute name="logfile" type="string1-type" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Name of the data logfile. The symbol {D} will be replaced by the current date and time.
+          Data logging is only available if a log file name has been set.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+
+    <xs:attribute name="activate" type="xs:boolean" default="false" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Specifies if an activation button will be displayed on the page.
+          Use this to prevent automatic job execution on page change.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+
+    <xs:attribute name="no_update" type="xs:boolean" default="false" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          Setting this attribute prevents updating the page from the configuration generator.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="pages-type">
+    <xs:annotation>
+      <xs:documentation>
+        Group of all pages to display.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:choice maxOccurs="unbounded">
+        <xs:element name="page" type="page-type"/>
+        <xs:element name="include" type="include-type"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:element name="configuration">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="global" type="global-type"/>
+        <xs:choice maxOccurs="unbounded">
+          <xs:element name="pages" type="pages-type"/>
+          <xs:element name="include" type="include-type"/>
+        </xs:choice>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="fragment">
+    <xs:annotation>
+      <xs:documentation>
+        Fragment for include elements.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:choice>
+        <xs:element name="page" type="page-type" maxOccurs="unbounded">
+          <xs:annotation>
+            <xs:documentation>
+              Description of one page.
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pages" type="pages-type">
+          <xs:annotation>
+            <xs:documentation>
+              Description of all pages.
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>

+ 60 - 0
E46 M57N/D50M57E1.ccpage

@@ -0,0 +1,60 @@
+<?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="DME/DDE" fontsize="medium" logfile="DME_DDE.log">
+    <strings lang="de">
+      <string name="DME/DDE">DDE</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LUFTMASSE_PRO_HUB_WERT"> Luftmasse [mg/Hub]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UBATT_WERT"> Batteriespannung [V]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KUEHLMITTELTEMPERATUR_WERT"> Kühlmitteltemperatur [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORMOMENT_AKTUELL_WERT"> Drehmoment [Nm]:</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORDREHZAHL_WERT"> Drehzahl [U/min]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KRAFTSTOFFTEMPERATURK_WERT"> Kraftstofftemperatur [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADELUFTTEMPERATUR_WERT"> Ladelufttemp. [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_EINSPRITZMENGE_AKTUELL_WERT"> Einspritzmenge [mg]</string>
+      <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_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>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_GESCHWINDIGKEIT_WERT"> Geschwindigkeit [km/h]</string>
+    </strings>
+    <strings>
+      <string name="DME/DDE">DDE</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LUFTMASSE_PRO_HUB_WERT"> air mass [mg/stroke]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UBATT_WERT"> voltage [V]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KUEHLMITTELTEMPERATUR_WERT"> coolant [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORMOMENT_AKTUELL_WERT"> torque [Nm]:</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORDREHZAHL_WERT"> engine speed [U/min]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KRAFTSTOFFTEMPERATURK_WERT"> fuel temperature [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADELUFTTEMPERATUR_WERT"> charge air temperature [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_EINSPRITZMENGE_AKTUELL_WERT"> fuel mass [mg]</string>
+      <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_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">
+        <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_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" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORDREHZAHL_WERT" result="STAT_MOTORDREHZAHL_WERT" format="L"  log_tag="STAT_MOTORDREHZAHL_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KRAFTSTOFFTEMPERATURK_WERT" result="STAT_KRAFTSTOFFTEMPERATURK_WERT" format="2.1R"  log_tag="STAT_KRAFTSTOFFTEMPERATURK_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADELUFTTEMPERATUR_WERT" result="STAT_LADELUFTTEMPERATUR_WERT" format=".1R"  log_tag="STAT_LADELUFTTEMPERATUR_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_EINSPRITZMENGE_AKTUELL_WERT" result="STAT_EINSPRITZMENGE_AKTUELL_WERT" format="L" log_tag="STAT_EINSPRITZMENGE_AKTUELL_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_ABGASTEMPERATUR_VOR_KATALYSATOR_WERT" result="STAT_ABGASTEMPERATUR_VOR_KATALYSATOR_WERT" format="L"  log_tag="STAT_ABGASTEMPERATUR_VOR_KATALYSATOR_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_SOLL_WERT" result="STAT_LADEDRUCK_SOLL_WERT" format="4.1R"  log_tag="STAT_LADEDRUCK_SOLL_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_RAILDRUCK_WERT" result="STAT_RAILDRUCK_WERT" format="L"  log_tag="STAT_RAILDRUCK_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_RAILDRUCK_SOLL_WERT" result="STAT_RAILDRUCK_SOLL_WERT" format="L"  log_tag="STAT_RAILDRUCK_SOLL_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_FAHRZEUGBESCHLEUNIGUNG_WERT" result="STAT_FAHRZEUGBESCHLEUNIGUNG_WERT" format="2.3R"  log_tag="STAT_FAHRZEUGBESCHLEUNIGUNG_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_GESCHWINDIGKEIT_WERT" result="STAT_GESCHWINDIGKEIT_WERT" format="L"  log_tag="STAT_GESCHWINDIGKEIT_WERT" />
+      </job>
+    </jobs>
+  </page>
+</fragment>

+ 44 - 0
E46 M57N/DSC_MK60.ccpage

@@ -0,0 +1,44 @@
+<?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="DSC_MK60.log">
+    <strings>
+      <string name="!PAGE_NAME">DSC</string>
+      <string name="!JOB#STATUS_RADGESCHWINDIGKEIT#STAT_RAD_GESCHW_VL_WERT">  Raddrehzahl VL [km/h]:</string>
+      <string name="!JOB#STATUS_RADGESCHWINDIGKEIT#STAT_RAD_GESCHW_VR_WERT">  Raddrehzahl VR [km/h]:</string>
+      <string name="!JOB#STATUS_RADGESCHWINDIGKEIT#STAT_RAD_GESCHW_HL_WERT">  Raddrehzahl HL [km/h]:</string>
+      <string name="!JOB#STATUS_RADGESCHWINDIGKEIT#STAT_RAD_GESCHW_HR_WERT">  Raddrehzahl HR [km/h]:</string>
+      <string name="!JOB#STATUS_SCHALTER#STAT_BREMSLICHT_SCHALTER_EIN">  Bremslichtschalter:</string>
+      <string name="!JOB#STATUS_SCHALTER#STAT_HANDBREMSE_SCHALTER_EIN">  Handbremse:</string>
+      <string name="!JOB#STATUS_SCHALTER#STAT_DSC_TASTER_EIN">  DSC-Taster:</string>
+      <string name="!JOB#STATUS_SCHALTER#STAT_BREMSFLUESSIGKEIT_SCHALTER_EIN">  Bremsflüssigkeit:</string>
+      <string name="!JOB#STATUS_SENSOREN#STAT_DREHRATENSENSOR_GESCHW_WERT">  Drehratensensor Geschw. [km/h]:</string>
+      <string name="!JOB#STATUS_SENSOREN#STAT_QUERBESCHLEUNIGUNGSSENSOR_WERT">  Querbeschleunigungssensor:</string>
+      <string name="!JOB#STATUS_SENSOREN#STAT_DRUCKSENSOR_DRUCKSTANGENKREIS_DRUCK_WERT">  Drucksensor:</string>
+      <string name="!JOB#STATUS_SENSOREN#STAT_DRUCKSENSOR_SCHWIMMKREIS_DRUCK_WERT">  Drucksensor Schwimmkreis:</string>
+      <string name="!JOB#STATUS_CAN_LWS_1_LESEN#STAT_LENKWINKEL_WERT">  Lenkwinkel [°]:</string>
+    </strings>
+    <jobs sgbd="dsc_mk60">
+      <job name="STATUS_RADGESCHWINDIGKEIT">
+        <display name="!JOB#STATUS_RADGESCHWINDIGKEIT#STAT_RAD_GESCHW_VL_WERT" result="STAT_RAD_GESCHW_VL_WERT" format="L" log_tag="STAT_RAD_GESCHW_VL_WERT" />
+        <display name="!JOB#STATUS_RADGESCHWINDIGKEIT#STAT_RAD_GESCHW_VR_WERT" result="STAT_RAD_GESCHW_VR_WERT" format="L" log_tag="STAT_RAD_GESCHW_VR_WERT" />
+        <display name="!JOB#STATUS_RADGESCHWINDIGKEIT#STAT_RAD_GESCHW_HL_WERT" result="STAT_RAD_GESCHW_HL_WERT" format="L" log_tag="STAT_RAD_GESCHW_HL_WERT" />
+        <display name="!JOB#STATUS_RADGESCHWINDIGKEIT#STAT_RAD_GESCHW_HR_WERT" result="STAT_RAD_GESCHW_HR_WERT" format="L" log_tag="STAT_RAD_GESCHW_HR_WERT" />
+      </job>
+      <job name="STATUS_SCHALTER">
+        <display name="!JOB#STATUS_SCHALTER#STAT_BREMSLICHT_SCHALTER_EIN" result="STAT_BREMSLICHT_SCHALTER_EIN" format="" log_tag="STAT_BREMSLICHT_SCHALTER_EIN" />
+        <display name="!JOB#STATUS_SCHALTER#STAT_HANDBREMSE_SCHALTER_EIN" result="STAT_HANDBREMSE_SCHALTER_EIN" format="" log_tag="STAT_HANDBREMSE_SCHALTER_EIN" />
+        <display name="!JOB#STATUS_SCHALTER#STAT_DSC_TASTER_EIN" result="STAT_DSC_TASTER_EIN" format="" log_tag="STAT_DSC_TASTER_EIN" />
+        <display name="!JOB#STATUS_SCHALTER#STAT_BREMSFLUESSIGKEIT_SCHALTER_EIN" result="STAT_BREMSFLUESSIGKEIT_SCHALTER_EIN" format="" log_tag="STAT_BREMSFLUESSIGKEIT_SCHALTER_EIN" />
+      </job>
+      <job name="STATUS_SENSOREN">
+        <display name="!JOB#STATUS_SENSOREN#STAT_DREHRATENSENSOR_GESCHW_WERT" result="STAT_DREHRATENSENSOR_GESCHW_WERT" format=".2R" log_tag="STAT_DREHRATENSENSOR_GESCHW_WERT" />
+        <display name="!JOB#STATUS_SENSOREN#STAT_QUERBESCHLEUNIGUNGSSENSOR_WERT" result="STAT_QUERBESCHLEUNIGUNGSSENSOR_WERT" format=".2R" log_tag="STAT_QUERBESCHLEUNIGUNGSSENSOR_WERT" />
+        <display name="!JOB#STATUS_SENSOREN#STAT_DRUCKSENSOR_DRUCKSTANGENKREIS_DRUCK_WERT" result="STAT_DRUCKSENSOR_DRUCKSTANGENKREIS_DRUCK_WERT" format=".2R" log_tag="STAT_DRUCKSENSOR_DRUCKSTANGENKREIS_DRUCK_WERT" />
+        <display name="!JOB#STATUS_SENSOREN#STAT_DRUCKSENSOR_SCHWIMMKREIS_DRUCK_WERT" result="STAT_DRUCKSENSOR_SCHWIMMKREIS_DRUCK_WERT" format=".2R" log_tag="STAT_DRUCKSENSOR_SCHWIMMKREIS_DRUCK_WERT" />
+      </job>
+      <job name="STATUS_CAN_LWS_1_LESEN">
+        <display name="!JOB#STATUS_CAN_LWS_1_LESEN#STAT_LENKWINKEL_WERT" result="STAT_LENKWINKEL_WERT" format=".2R" log_tag="STAT_LENKWINKEL_WERT" />
+      </job>
+    </jobs>
+  </page>
+</fragment>

+ 40 - 0
E46 M57N/Errors.ccpage

@@ -0,0 +1,40 @@
+<?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">
+    <strings>
+      <string name="!PAGE_NAME">Fehler</string>
+      <string name="!ECU#D50M57E1">DDE 5.0</string>
+      <string name="!ECU#DSC_MK60">DSC MK60</string>
+      <string name="!ECU#EWS3">EWS</string>
+      <string name="!ECU#IHKA46_3">IHKA</string>
+      <string name="!ECU#KOMBI46R">KOMBI</string>
+      <string name="!ECU#LSZ_2">LSZ</string>
+      <string name="!ECU#LWS5_1B">LWS</string>
+      <string name="!ECU#MRS4">MRS (Airbag)</string>
+      <string name="!ECU#PDCACT">PDC</string>
+      <string name="!ECU#ZKE5">ZKE GM5</string>
+<string name="!ECU#SPM46FT">Spiegel Fahrer</string>
+<string name="!ECU#SPM46BT">Spiegel Beifahrer</string>
+<string name="!ECU#SM46C_4">Sitzmemory</string>
+<string name="!ECU#SZM46">Schaltzentrum MK</string>
+<string name="!ECU#RLS_DS2">RLS</string>
+    </strings>
+    <read_errors>
+      <ecu name="!ECU#D50M57E1" sgbd="d50m57e1" />
+      <ecu name="!ECU#DSC_MK60" sgbd="dsc_mk60" />
+      <ecu name="!ECU#EWS3" sgbd="ews3" />
+      <ecu name="!ECU#IHKA46_3" sgbd="ihka46_3" />
+      <ecu name="!ECU#KOMBI46R" sgbd="kombi46r" />
+      <ecu name="!ECU#LSZ_2" sgbd="lsz_2" />
+      <ecu name="!ECU#LWS5_1B" sgbd="lws5_1b" />
+      <ecu name="!ECU#MRS4" sgbd="mrs4" />
+      <ecu name="!ECU#PDCACT" sgbd="pdcact" />
+      <ecu name="!ECU#ZKE5" sgbd="zke5" />
+<ecu name="!ECU#SPM46FT" sgbd="spm46ft" />
+<ecu name="!ECU#SPM46BT" sgbd="spm46bt" />
+<ecu name="!ECU#SM46C_4" sgbd="sm46c_4" />
+<ecu name="!ECU#SZM46" sgbd="szm46" />
+<ecu name="!ECU#RLS_DS2" sgbd="rls_ds2" />
+    </read_errors>
+  </page>
+</fragment>

+ 30 - 0
E46 M57N/Errors_old.ccpage

@@ -0,0 +1,30 @@
+<?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">
+    <strings>
+      <string name="!PAGE_NAME">Fehler</string>
+      <string name="!ECU#D50M57E1">D50M57E1</string>
+      <string name="!ECU#DSC_MK60">DSC_MK60</string>
+      <string name="!ECU#EWS3">EWS3</string>
+      <string name="!ECU#IHKA46_3">IHKA46_3</string>
+      <string name="!ECU#KOMBI46R">KOMBI46R</string>
+      <string name="!ECU#LSZ_2">LSZ_2</string>
+      <string name="!ECU#LWS5_1B">LWS5_1B</string>
+      <string name="!ECU#MRS4">MRS4</string>
+      <string name="!ECU#PDCACT">PDCACT</string>
+      <string name="!ECU#ZKE5_S12">ZKE5_S12</string>
+    </strings>
+    <read_errors>
+      <ecu name="!ECU#D50M57E1" sgbd="d50m57e1" />
+      <ecu name="!ECU#DSC_MK60" sgbd="dsc_mk60" />
+      <ecu name="!ECU#EWS3" sgbd="ews3" />
+      <ecu name="!ECU#IHKA46_3" sgbd="ihka46_3" />
+      <ecu name="!ECU#KOMBI46R" sgbd="kombi46r" />
+      <ecu name="!ECU#LSZ_2" sgbd="lsz_2" />
+      <ecu name="!ECU#LWS5_1B" sgbd="lws5_1b" />
+      <ecu name="!ECU#MRS4" sgbd="mrs4" />
+      <ecu name="!ECU#PDCACT" sgbd="pdcact" />
+      <ecu name="!ECU#ZKE5_S12" sgbd="zke5_s12" />
+    </read_errors>
+  </page>
+</fragment>

+ 68 - 0
E46 M57N/IBUS_App.ccpage

@@ -0,0 +1,68 @@
+<?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="IBUS_App" display-mode="grid" fontsize="small" gauges-portrait="2" gauges-landscape="4" logfile="DME_DDE.log">
+    <strings lang="de">
+      <string name="IBUS_App">IBUS_App</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LUFTMASSE_PRO_HUB_WERT"> Luftmasse [mg/Hub]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UBATT_WERT"> Batteriespannung [V]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KUEHLMITTELTEMPERATUR_WERT"> Kühlmitteltemperatur [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORMOMENT_AKTUELL_WERT"> Drehmoment [Nm]:</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORDREHZAHL_WERT"> Drehzahl [U/min]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KRAFTSTOFFTEMPERATURK_WERT"> Kraftstofftemperatur [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADELUFTTEMPERATUR_WERT"> Ladelufttemp. [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_EINSPRITZMENGE_AKTUELL_WERT"> Einspritzmenge [mg]</string>
+      <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_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>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_GESCHWINDIGKEIT_WERT"> Geschwindigkeit [km/h]</string>
+	  <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_HIGH_WERT">  TÖNS Heizzeit [ms]</string>
+      <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_LOW_WERT">  TÖNS Kühlzeit [ms]</string>
+    </strings>
+    <strings>
+      <string name="IBUS_App">IBUS_App</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LUFTMASSE_PRO_HUB_WERT"> air mass [mg/stroke]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UBATT_WERT"> voltage [V]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KUEHLMITTELTEMPERATUR_WERT"> coolant [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORMOMENT_AKTUELL_WERT"> torque [Nm]:</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORDREHZAHL_WERT"> engine speed [U/min]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KRAFTSTOFFTEMPERATURK_WERT"> fuel temperature [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADELUFTTEMPERATUR_WERT"> charge air temperature [°C]</string>
+      <string name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_EINSPRITZMENGE_AKTUELL_WERT"> fuel mass [mg]</string>
+      <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_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>
+	  <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_HIGH_WERT">  TÖNS heating time [ms]</string>
+      <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_LOW_WERT">  TÖNS cooling time [ms]</string>
+    </strings>	
+    <jobs>
+      <job id="1" sgbd="D50M57E1" name="STATUS_MESSWERTBLOCK_LESEN" args="JA;ILMMG;IPLAD;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="1#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" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_WERT" result="1#STAT_LADEDRUCK_WERT" format="4.1R" grid-type="simple-gauge-round" min-value="0" max-value="2500" log_tag="STAT_LADEDRUCK_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_UBATT_WERT" result="1#STAT_UBATT_WERT" format="2.1R" grid-type="simple-gauge-round" min-value="0" max-value="15" log_tag="STAT_UBATT_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KUEHLMITTELTEMPERATUR_WERT" result="1#STAT_KUEHLMITTELTEMPERATUR_WERT" format="L" grid-type="simple-gauge-round" min-value="-20" max-value="120" log_tag="STAT_KUEHLMITTELTEMPERATUR_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORMOMENT_AKTUELL_WERT" result="1#STAT_MOTORMOMENT_AKTUELL_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="600" log_tag="STAT_MOTORMOMENT_AKTUELL_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_MOTORDREHZAHL_WERT" result="1#STAT_MOTORDREHZAHL_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="5000" log_tag="STAT_MOTORDREHZAHL_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_KRAFTSTOFFTEMPERATURK_WERT" result="1#STAT_KRAFTSTOFFTEMPERATURK_WERT" format="2.1R" grid-type="simple-gauge-round" min-value="-20" max-value="80" log_tag="STAT_KRAFTSTOFFTEMPERATURK_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADELUFTTEMPERATUR_WERT" result="1#STAT_LADELUFTTEMPERATUR_WERT" format=".1R" grid-type="simple-gauge-round" min-value="-20" max-value="80" log_tag="STAT_LADELUFTTEMPERATUR_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_EINSPRITZMENGE_AKTUELL_WERT" result="1#STAT_EINSPRITZMENGE_AKTUELL_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="100" log_tag="STAT_EINSPRITZMENGE_AKTUELL_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_ABGASTEMPERATUR_VOR_KATALYSATOR_WERT" result="1#STAT_ABGASTEMPERATUR_VOR_KATALYSATOR_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="500" log_tag="STAT_ABGASTEMPERATUR_VOR_KATALYSATOR_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_LADEDRUCK_SOLL_WERT" result="1#STAT_LADEDRUCK_SOLL_WERT" format="4.1R" grid-type="simple-gauge-round" min-value="0" max-value="2500" log_tag="STAT_LADEDRUCK_SOLL_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_RAILDRUCK_WERT" result="1#STAT_RAILDRUCK_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="1400" log_tag="STAT_RAILDRUCK_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_RAILDRUCK_SOLL_WERT" result="1#STAT_RAILDRUCK_SOLL_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="1400" log_tag="STAT_RAILDRUCK_SOLL_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_FAHRZEUGBESCHLEUNIGUNG_WERT" result="1#STAT_FAHRZEUGBESCHLEUNIGUNG_WERT" format="2.3R" grid-type="simple-gauge-round" min-value="-15" max-value="15" log_tag="STAT_FAHRZEUGBESCHLEUNIGUNG_WERT" />
+        <display name="!JOB#STATUS_MESSWERTBLOCK_LESEN#STAT_GESCHWINDIGKEIT_WERT" result="1#STAT_GESCHWINDIGKEIT_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="250" log_tag="STAT_GESCHWINDIGKEIT_WERT" />
+      </job>
+	  <job id="2" sgbd="kombi46r" name="STATUS_TOENS_IO">
+        <display name="!JOB#STATUS_TOENS_IO#STAT_TOG_HIGH_WERT" result="1#STAT_TOG_HIGH_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="1000" log_tag="STAT_TOG_HIGH_WERT" />
+        <display name="!JOB#STATUS_TOENS_IO#STAT_TOG_LOW_WERT" result="1#STAT_TOG_LOW_WERT" format="L" grid-type="simple-gauge-round" min-value="0" max-value="1000" log_tag="STAT_TOG_LOW_WERT" />
+      </job>
+    </jobs>
+  </page>
+</fragment>

+ 5 - 0
E46 M57N/IBUS_App_BT.cccfg

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration xmlns="http://www.holeschak.de/BmwDeepObd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.holeschak.de/BmwDeepObd BmwDeepObd.xsd">
+  <global log_path="Log" manufacturer="BMW" interface="BLUETOOTH" />
+  <include filename="Pages.ccpages" />
+</configuration>

+ 5 - 0
E46 M57N/IBUS_App_USB.cccfg

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration xmlns="http://www.holeschak.de/BmwDeepObd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.holeschak.de/BmwDeepObd BmwDeepObd.xsd">
+  <global log_path="Log" manufacturer="BMW" interface="FTDI" />
+  <include filename="Pages.ccpages" />
+</configuration>

+ 69 - 0
E46 M57N/IHKA46_3.ccpage

@@ -0,0 +1,69 @@
+<?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="IHKA46" display-mode="list" fontsize="medium" gauges-portrait="2" gauges-landscape="4" logfile="IHKA46_3.log">
+    <strings>
+      <string name="IHKA46">IHKA46_3</string>
+      <string name="!JOB#STATUS_ANALOGEINGAENGE#STAT_KLEMME30_WERT"> voltage [V]</string>
+      <string name="!JOB#STATUS_ANALOGEINGAENGE#STAT_AUC_HEIZUNG_WERT"> AUC heating [V]</string>
+      <string name="!JOB#STATUS_ANALOGEINGAENGE#STAT_TINNEN_WERT"> interieur temp. [°C]</string>
+      <string name="!JOB#STATUS_ANALOGEINGAENGE#STAT_SOLARSENSOR_WERT"> solar sensor</string>
+      <string name="!JOB#STATUS_ANALOGEINGAENGE#STAT_DRUCKSENSOR_WERT"> pressure</string>
+      <string name="!JOB#STATUS_REGLERGROESSEN#STAT_SOLL_WERT"> target temp. [°C]</string>
+      <string name="!JOB#STATUS_REGLERGROESSEN#STAT_TAUSSEN_WERT"> ambient temp. [°C]</string>
+      <string name="!JOB#STATUS_REGLERGROESSEN#STAT_GESCHWINDIGKEIT_WERT"> speed [km/h]</string>
+      <string name="!JOB#STATUS_REGLERGROESSEN#STAT_DREHZAHL_WERT"> engine speed [1/min]</string>
+      <string name="!JOB#STATUS_BEDIENTEIL#STAT_GEBLAESESTUFE_WERT"> ventilation level</string>
+      <string name="!JOB#STATUS_IO#STAT_WASSERVENTIL_EIN"> water valve </string>
+      <string name="!JOB#STATUS_IO#STAT_ZUSATZWASSERPUMPE_EIN"> aux water pump</string>
+      <string name="!JOB#STATUS_IO#STAT_ZUHEIZER_EIN"> additional heater</string>
+      <string name="!JOB#STATUS_IO#STAT_RELAIS_HECKSCHEIBE_EIN"> heating rear window</string>
+      <string name="!JOB#STATUS_MOTOR_KLAPPENPOSITION#STAT_ENTFROSTUNG_WERT"> defrost</string>
+    </strings>
+	<strings lang="de">
+      <string name="IHKA46">IHKA46_3</string>
+      <string name="!JOB#STATUS_ANALOGEINGAENGE#STAT_KLEMME30_WERT"> Spannung [V]</string>
+      <string name="!JOB#STATUS_ANALOGEINGAENGE#STAT_AUC_HEIZUNG_WERT"> AUC Heizung [V]</string>
+      <string name="!JOB#STATUS_ANALOGEINGAENGE#STAT_TINNEN_WERT"> Innenraumtemp. [°C]</string>
+      <string name="!JOB#STATUS_ANALOGEINGAENGE#STAT_SOLARSENSOR_WERT"> Solarsensor</string>
+      <string name="!JOB#STATUS_ANALOGEINGAENGE#STAT_DRUCKSENSOR_WERT"> Druck</string>
+      <string name="!JOB#STATUS_REGLERGROESSEN#STAT_SOLL_WERT"> Zieltemperatur [°C]</string>
+      <string name="!JOB#STATUS_REGLERGROESSEN#STAT_TAUSSEN_WERT"> Außentemp. [°C]</string>
+      <string name="!JOB#STATUS_REGLERGROESSEN#STAT_GESCHWINDIGKEIT_WERT"> Geschwindigkeit [km/h]</string>
+      <string name="!JOB#STATUS_REGLERGROESSEN#STAT_DREHZAHL_WERT"> Drehzahl [1/min]</string>
+      <string name="!JOB#STATUS_BEDIENTEIL#STAT_GEBLAESESTUFE_WERT"> Gebläsestufe</string>
+      <string name="!JOB#STATUS_IO#STAT_WASSERVENTIL_EIN"> Wasserventil </string>
+      <string name="!JOB#STATUS_IO#STAT_ZUSATZWASSERPUMPE_EIN"> Zusatzwasserpumpe</string>
+      <string name="!JOB#STATUS_IO#STAT_ZUHEIZER_EIN"> Zuheizer</string>
+      <string name="!JOB#STATUS_IO#STAT_RELAIS_HECKSCHEIBE_EIN"> Heckscheibenheizung</string>
+      <string name="!JOB#STATUS_MOTOR_KLAPPENPOSITION#STAT_ENTFROSTUNG_WERT"> Defrost</string>
+    </strings>
+    <jobs sgbd="ihka46_3">
+      <job name="FS_LESEN" />
+      <job name="STATUS_ANALOGEINGAENGE">
+        <display name="!JOB#STATUS_ANALOGEINGAENGE#STAT_KLEMME30_WERT" result="STAT_KLEMME30_WERT" format="2.1R" log_tag="STAT_KLEMME30_WERT" />
+        <display name="!JOB#STATUS_ANALOGEINGAENGE#STAT_AUC_HEIZUNG_WERT" result="STAT_AUC_HEIZUNG_WERT" format="2.1R" log_tag="STAT_AUC_HEIZUNG_WERT" />
+        <display name="!JOB#STATUS_ANALOGEINGAENGE#STAT_TINNEN_WERT" result="STAT_TINNEN_WERT" format="2.1R" log_tag="STAT_TINNEN_WERT" />
+        <display name="!JOB#STATUS_ANALOGEINGAENGE#STAT_SOLARSENSOR_WERT" result="STAT_SOLARSENSOR_WERT" format="2.1R" log_tag="STAT_SOLARSENSOR_WERT" />
+        <display name="!JOB#STATUS_ANALOGEINGAENGE#STAT_DRUCKSENSOR_WERT" result="STAT_DRUCKSENSOR_WERT" format="2.1R" log_tag="STAT_DRUCKSENSOR_WERT" />
+      </job>
+      <job name="STATUS_REGLERGROESSEN">
+        <display name="!JOB#STATUS_REGLERGROESSEN#STAT_SOLL_WERT" result="STAT_SOLL_WERT" format="2.1R" log_tag="STAT_SOLL_WERT" />
+        <display name="!JOB#STATUS_REGLERGROESSEN#STAT_TAUSSEN_WERT" result="STAT_TAUSSEN_WERT" format="2.1R" log_tag="STAT_TAUSSEN_WERT" />
+        <display name="!JOB#STATUS_REGLERGROESSEN#STAT_GESCHWINDIGKEIT_WERT" result="STAT_GESCHWINDIGKEIT_WERT" format="3.1R" log_tag="STAT_GESCHWINDIGKEIT_WERT" />
+        <display name="!JOB#STATUS_REGLERGROESSEN#STAT_DREHZAHL_WERT" result="STAT_DREHZAHL_WERT" format="4.0R" log_tag="STAT_DREHZAHL_WERT" />
+      </job>
+      <job name="STATUS_BEDIENTEIL">
+        <display name="!JOB#STATUS_BEDIENTEIL#STAT_GEBLAESESTUFE_WERT" result="STAT_GEBLAESESTUFE_WERT" format="1.0R" log_tag="STAT_GEBLAESESTUFE_WERT" />
+      </job>
+      <job name="STATUS_IO">
+        <display name="!JOB#STATUS_IO#STAT_WASSERVENTIL_EIN" result="STAT_WASSERVENTIL_EIN" format="" log_tag="STAT_WASSERVENTIL_EIN" />
+        <display name="!JOB#STATUS_IO#STAT_ZUSATZWASSERPUMPE_EIN" result="STAT_ZUSATZWASSERPUMPE_EIN" format="" log_tag="STAT_ZUSATZWASSERPUMPE_EIN" />
+        <display name="!JOB#STATUS_IO#STAT_ZUHEIZER_EIN" result="STAT_ZUHEIZER_EIN" format="" log_tag="STAT_ZUHEIZER_EIN" />
+        <display name="!JOB#STATUS_IO#STAT_RELAIS_HECKSCHEIBE_EIN" result="STAT_RELAIS_HECKSCHEIBE_EIN" format="" log_tag="STAT_RELAIS_HECKSCHEIBE_EIN" />
+      </job>
+      <job name="STATUS_MOTOR_KLAPPENPOSITION">
+        <display name="!JOB#STATUS_MOTOR_KLAPPENPOSITION#STAT_ENTFROSTUNG_WERT" result="STAT_ENTFROSTUNG_WERT" format="" log_tag="STAT_ENTFROSTUNG_WERT" />
+      </job>
+    </jobs>
+  </page>
+</fragment>

+ 125 - 0
E46 M57N/KOMBI46R.ccpage

@@ -0,0 +1,125 @@
+<?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="KOMBI46R" display-mode="list" fontsize="medium" gauges-portrait="2" gauges-landscape="4" logfile="KOMBI46R.log">
+    <strings>
+      <string name="KOMBI46R">KOMBI</string>
+      <string name="!JOB#STATUS_AIF_FG_NR_LESEN#STAT_AIF_FG_NR"> VIN</string>
+	  <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_SERVICE_TEXT"> SIA last service type</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_INSPEKTIONSGRENZE_WERT"> SIA inspection way target</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_ZEITGRENZE_WERT"> SIA inspection time target</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_KRAFTSTOFFMENGE_WERT"> SIA fuel target</string>
+      <string name="!JOB#STATUS_AIF_TANKDATEN_LESEN#STAT_TANKINHALT_HEBEL1_WERT"> fuel level 1</string>
+      <string name="!JOB#STATUS_AIF_TANKDATEN_LESEN#STAT_TANKINHALT_HEBEL2_WERT"> fuel level 2</string>
+      <string name="!JOB#STATUS_AIF_TANKDATEN_LESEN#STAT_TANKINHALT_GEF_WERT"> fuel level</string>
+      <string name="!JOB#STATUS_AIF_AUSSENTEMP_LESEN#STAT_AUSSENTEMP_GEF_WERT"> ambient temperature</string>
+	  <string name="!JOB#STATUS_ANALOG_LESEN#STAT_BREMSVERSCHLEISS1_WERT"> brake wear contact</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_BREMSFLUESSIGKEIT_EIN"> brake fluid level</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_KUEHLMITTELSTAND_EIN"> coolant level</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_LSS_EIN"> LSS ??</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_OELDRUCK_EIN"> oil pressure switch</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_HANDBREMSE_EIN"> handbrake</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_GURTKONTAKT_EIN"> seat belt contact</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_KL15_EIN"> signal 15</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_KL30_EIN"> signal 30</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_KL50_EIN"> signal 50</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_KLR_EIN"> signal R</string>
+      <string name="!JOB#STATUS_CAN_MOTORDREHZAHL_LESEN#STAT_MOTORDREHZAHL_WERT"> engine speed</string>
+      <string name="!JOB#STATUS_CAN_KUEHLMITTELTEMP_LESEN#STAT_KUEHLMITTELTEMP_WERT"> coolant</string>
+      <string name="!JOB#STATUS_CAN_GETRIEBEINFO_LESEN#STAT_GANG_INFO_WERT"> gear</string>
+      <string name="!JOB#STATUS_CAN_EINSPRITZMENGE_LESEN#STAT_EINSPRITZMENGE_WERT"> injection mass</string>
+      <string name="!JOB#STATUS_SIA_FINISH#STAT_LITER_WERT"> SIA used fuel (l)</string>
+      <string name="!JOB#STATUS_SIA_FINISH#STAT_TAGES_WERT"> SIA used days</string>
+	  <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_HIGH_WERT"> TÖNS heating time [s]</string>
+      <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_LOW_WERT"> TÖNS cooling time [s]</string>
+    </strings>
+	<strings lang="de">
+      <string name="KOMBI46R">KOMBI</string>
+      <string name="!JOB#STATUS_AIF_FG_NR_LESEN#STAT_AIF_FG_NR"> VIN</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_SERVICE_TEXT"> SIA letztes Service Art</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_ZEIT_INSP_ZAEHLER_WERT"> SIA Zeitinspektionszähler [d]</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_ZEITGRENZE_WERT"> SIA Zeitgrenze</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_INSPEKTIONSGRENZE_WERT"> SIA Inspektionsgrenze [l]</string>
+      <string name="!JOB#STATUS_AIF_SIA_DATEN_LESEN#STAT_KRAFTSTOFFMENGE_WERT"> SIA Kraftstoffmenge [l]</string>
+      <string name="!JOB#STATUS_AIF_TANKDATEN_LESEN#STAT_TANKINHALT_HEBEL1_WERT"> Tankgeber 1</string>
+      <string name="!JOB#STATUS_AIF_TANKDATEN_LESEN#STAT_TANKINHALT_HEBEL2_WERT"> Tankgeber 2</string>
+      <string name="!JOB#STATUS_AIF_TANKDATEN_LESEN#STAT_TANKINHALT_GEF_WERT"> Tankfüllstand [l]</string>
+      <string name="!JOB#STATUS_AIF_TANKDATEN_LESEN#STAT_TANKINHALT_UNGEF_WERT"> Tankfüllstand (ungefiltert) [l]</string>
+      <string name="!JOB#STATUS_AIF_AUSSENTEMP_LESEN#STAT_AUSSENTEMP_GEF_WERT"> Außentemperatur [°C]</string>
+      <string name="!JOB#STATUS_ANALOG_LESEN#STAT_BREMSVERSCHLEISS1_WERT"> Bremsverschleisskontakt</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_BREMSFLUESSIGKEIT_EIN"> Bremsflüssigkeitsstand</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_KUEHLMITTELSTAND_EIN"> Kühlmittelstand</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_LSS_EIN"> LSS ??</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_OELDRUCK_EIN"> Öldruckschalter</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_HANDBREMSE_EIN"> Handbremse gezogen</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_GURTKONTAKT_EIN"> Gurtkontakt</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_KL15_EIN"> Klemme 15</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_KL30_EIN"> Klemme 30</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_KL50_EIN"> Klemme 50</string>
+      <string name="!JOB#STATUS_IO_LESEN#STAT_KLR_EIN"> Klemme R</string>
+      <string name="!JOB#STATUS_CAN_MOTORDREHZAHL_LESEN#STAT_MOTORDREHZAHL_WERT"> Drehzahl [1/min]</string>
+      <string name="!JOB#STATUS_CAN_KUEHLMITTELTEMP_LESEN#STAT_KUEHLMITTELTEMP_WERT"> Kühlmitteltemperatur [°C]</string>
+      <string name="!JOB#STATUS_CAN_GETRIEBEINFO_LESEN#STAT_GANG_INFO_WERT"> Fahrstufe</string>
+      <string name="!JOB#STATUS_CAN_EINSPRITZMENGE_LESEN#STAT_EINSPRITZMENGE_WERT"> Einspritzmenge</string>
+      <string name="!JOB#STATUS_SIA_FINISH#STAT_LITER_WERT"> Kraftstoffmenge seit Service</string>
+      <string name="!JOB#STATUS_SIA_FINISH#STAT_TAGES_WERT"> Tage seit Service</string>
+	  <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_HIGH_WERT"> TÖNS Heizzeit [s]</string>
+      <string name="!JOB#STATUS_TOENS_IO#STAT_TOG_LOW_WERT"> TÖNS Kühlzeit [s]</string>
+    </strings>
+    <jobs sgbd="kombi46r">
+      <job name="STATUS_AIF_FG_NR_LESEN">
+        <display name="!JOB#STATUS_AIF_FG_NR_LESEN#STAT_AIF_FG_NR" result="STAT_AIF_FG_NR" format="" log_tag="STAT_AIF_FG_NR" />
+      </job>
+      <job name="STATUS_AIF_SIA_DATEN_LESEN">
+        <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_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_INSPEKTIONSGRENZE_WERT" result="STAT_INSPEKTIONSGRENZE_WERT" format="L" log_tag="STAT_INSPEKTIONSGRENZE_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#STATUS_AIF_SIA_DATEN_LESEN#STAT_KRAFTSTOFFMENGE_WERT" result="STAT_KRAFTSTOFFMENGE_WERT" format="L" log_tag="STAT_KRAFTSTOFFMENGE_WERT" />
+      </job>
+	  <job name="STATUS_SIA_FINISH">
+        <display name="!JOB#STATUS_SIA_FINISH#STAT_LITER_WERT" result="STAT_LITER_WERT" format="3.1R" log_tag="STAT_LITER_WERT" />
+        <display name="!JOB#STATUS_SIA_FINISH#STAT_TAGES_WERT" result="STAT_TAGES_WERT" format="4.0R" log_tag="STAT_TAGES_WERT" />
+      </job>
+      <job name="STATUS_AIF_TANKDATEN_LESEN">
+        <display name="!JOB#STATUS_AIF_TANKDATEN_LESEN#STAT_TANKINHALT_HEBEL1_WERT" result="STAT_TANKINHALT_HEBEL1_WERT" format="3.1R" log_tag="STAT_TANKINHALT_HEBEL1_WERT" />
+        <display name="!JOB#STATUS_AIF_TANKDATEN_LESEN#STAT_TANKINHALT_HEBEL2_WERT" result="STAT_TANKINHALT_HEBEL2_WERT" format="3.1R" log_tag="STAT_TANKINHALT_HEBEL2_WERT" />
+        <display name="!JOB#STATUS_AIF_TANKDATEN_LESEN#STAT_TANKINHALT_GEF_WERT" result="STAT_TANKINHALT_GEF_WERT" format="3.1R" log_tag="STAT_TANKINHALT_GEF_WERT" />
+        <display name="!JOB#STATUS_AIF_TANKDATEN_LESEN#STAT_TANKINHALT_UNGEF_WERT" result="STAT_TANKINHALT_UNGEF_WERT" format="3.1R" log_tag="STAT_TANKINHALT_UNGEF_WERT" />
+      </job>
+      <job name="STATUS_AIF_AUSSENTEMP_LESEN">
+        <display name="!JOB#STATUS_AIF_AUSSENTEMP_LESEN#STAT_AUSSENTEMP_GEF_WERT" result="STAT_AUSSENTEMP_GEF_WERT" format="3.1R" log_tag="STAT_AUSSENTEMP_GEF_WERT" />
+      </job>
+	  <job name="STATUS_ANALOG_LESEN">
+        <display name="!JOB#STATUS_ANALOG_LESEN#STAT_BREMSVERSCHLEISS1_WERT" result="STAT_BREMSVERSCHLEISS1_WERT" format="3.1R" log_tag="STAT_BREMSVERSCHLEISS1_WERT" />
+      </job>
+	  <job name="STATUS_IO_LESEN">
+        <display name="!JOB#STATUS_IO_LESEN#STAT_BREMSFLUESSIGKEIT_EIN" result="STAT_BREMSFLUESSIGKEIT_EIN" format="L" log_tag="STAT_BREMSFLUESSIGKEIT_EIN" />
+        <display name="!JOB#STATUS_IO_LESEN#STAT_KUEHLMITTELSTAND_EIN" result="STAT_KUEHLMITTELSTAND_EIN" format="L" log_tag="STAT_KUEHLMITTELSTAND_EIN" />
+        <display name="!JOB#STATUS_IO_LESEN#STAT_LSS_EIN" result="STAT_LSS_EIN" format="L" log_tag="STAT_LSS_EIN" />
+        <display name="!JOB#STATUS_IO_LESEN#STAT_OELDRUCK_EIN" result="STAT_OELDRUCK_EIN" format="L" log_tag="STAT_OELDRUCK_EIN" />
+        <display name="!JOB#STATUS_IO_LESEN#STAT_HANDBREMSE_EIN" result="STAT_HANDBREMSE_EIN" format="L" log_tag="STAT_HANDBREMSE_EIN" />
+        <display name="!JOB#STATUS_IO_LESEN#STAT_GURTKONTAKT_EIN" result="STAT_GURTKONTAKT_EIN" format="L" log_tag="STAT_GURTKONTAKT_EIN" />
+        <display name="!JOB#STATUS_IO_LESEN#STAT_KL15_EIN" result="STAT_KL15_EIN" format="L" log_tag="STAT_KL15_EIN" />
+        <display name="!JOB#STATUS_IO_LESEN#STAT_KL30_EIN" result="STAT_KL30_EIN" format="L" log_tag="STAT_KL30_EIN" />
+        <display name="!JOB#STATUS_IO_LESEN#STAT_KL50_EIN" result="STAT_KL50_EIN" format="L" log_tag="STAT_KL50_EIN" />
+        <display name="!JOB#STATUS_IO_LESEN#STAT_KLR_EIN" result="STAT_KLR_EIN" format="L" log_tag="STAT_KLR_EIN" />
+      </job>
+      <job name="STATUS_CAN_MOTORDREHZAHL_LESEN">
+        <display name="!JOB#STATUS_CAN_MOTORDREHZAHL_LESEN#STAT_MOTORDREHZAHL_WERT" result="STAT_MOTORDREHZAHL_WERT" format="4.0R" log_tag="STAT_MOTORDREHZAHL_WERT" />
+      </job>
+      <job name="STATUS_CAN_KUEHLMITTELTEMP_LESEN">
+        <display name="!JOB#STATUS_CAN_KUEHLMITTELTEMP_LESEN#STAT_KUEHLMITTELTEMP_WERT" result="STAT_KUEHLMITTELTEMP_WERT" format="3.1R" log_tag="STAT_KUEHLMITTELTEMP_WERT" />
+      </job>
+      <job name="STATUS_CAN_GETRIEBEINFO_LESEN">
+        <display name="!JOB#STATUS_CAN_GETRIEBEINFO_LESEN#STAT_GANG_INFO_WERT" result="STAT_GANG_INFO_WERT" format="" log_tag="STAT_GANG_INFO_WERT" />
+      </job>
+      <job name="STATUS_CAN_EINSPRITZMENGE_LESEN">
+        <display name="!JOB#STATUS_CAN_EINSPRITZMENGE_LESEN#STAT_EINSPRITZMENGE_WERT" result="STAT_EINSPRITZMENGE_WERT" format="3.1R" log_tag="STAT_EINSPRITZMENGE_WERT" />
+      </job>
+	  <job name="STATUS_TOENS_IO">
+        <display name="!JOB#STATUS_TOENS_IO#STAT_TOG_HIGH_WERT" result="STAT_TOG_HIGH_WERT" format="L" log_tag="STAT_TOG_HIGH_WERT" />
+        <display name="!JOB#STATUS_TOENS_IO#STAT_TOG_LOW_WERT" result="STAT_TOG_LOW_WERT" format="L" log_tag="STAT_TOG_LOW_WERT" />
+      </job>
+    </jobs>
+  </page>
+</fragment>

+ 54 - 0
E46 M57N/KOMBI_SIA.txt

@@ -0,0 +1,54 @@
+
+KOMBI46R SIA
+
+JOB: STATUS_AIF_SIA_DATEN_LESEN
+RESULTS:
+    STAT_SERVICE_ART
+	    Art des letzten Service: 0 = Inspektion, 1 = Ölservice
+		Kombiinstrument zeit bei Zündung an das jeweils andere als nächstes Service an
+    STAT_SERVICE_TEXT
+	    Art des letzten Service (Text)
+		Kombiinstrument zeit bei Zündung an das jeweils andere als nächstes Service an
+    STAT_ZEIT_INSP_ZAEHLER_WERT
+	    Tage seit letztem Zeitservice reset
+    STAT_INSPEKTIONSGRENZE_WERT
+	    Grenzwert für Inspektion/Ölservice
+		in Liter Kraftstoffverbrauch seit letztem Reset
+    STAT_ZEITGRENZE_WERT
+	    maximale Zeit bis das Zeitservice fällig wird, in Tagen
+    STAT_KRAFTSTOFFMENGE_WERT
+	    Kraftstoffmenge seit letztem SIA reset
+	STAT_VORGEZOGENE_ZEITINSPEKTION
+		= 1 wenn vorgezogene Zeitinspektion möglich (unklar wonach das entschieden wird)
+
+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 
+
+JOB: STATUS_SIA_FINISH
+RESULTS:
+    STAT_LITER_WERT
+	    verbrauchte Benzinmenge
+		(identisch zu STATUS_AIF_SIA_DATEN_LESEN -> STAT_KRAFTSTOFFMENGE_WERT)
+    STAT_TAGES_WERT
+	    Zeit (Tage) seit letztem Zeitservice reset
+		(den Wert gibt bei mir im 330d M57N Bj 2004 NICHT)
+		
+
+JOB: ZEITINPEKTIONSDATUM_LESEN
+    ZEITINSPEKTION_MONAT	0x000A = 10
+    ZEITINSPEKTION_JAHR		0x0015 = 21
+	SERVICE_INTERVALL		0x0003 = 3 (Bedeutung unklar, laut job info gibt es 0=US, 1=Japan, 2=ECE)
+		
+Resetfunktionen:
+
+SIA_RESET
+	mögliche Parameter:
+	Oel_Reset
+	Weg_Reset
+	Zeit_Reset
+	Weg_Reset_Werk
+	
+ZEITINSPEKTIONSDATUM_SCHREIBEN
+	2 argumente mit ; getrennt: monat[1-12];jahr[0-99]
+	

+ 160 - 0
E46 M57N/LSZ_2.ccpage

@@ -0,0 +1,160 @@
+<?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="LSZ_2" display-mode="list" fontsize="small" gauges-portrait="2" gauges-landscape="4" logfile="LSZ_2.log">
+    <strings>
+      <string name="LSZ_2">LSZ</string>
+      <string name="!JOB#STATUS_LESEN#STAT_SCHALTER_FL_LH_WERT"> Input volt. Switch Highbeam [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_SCHALTER_BLK_WERT"> Input volt. Schalter Blinker [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_SPANNUNG_BELADUNGSSENSOR_VORN_WERT"> Input volt. axis sensor F [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_SPANNUNG_BELADUNGSSENSOR_HINTEN_WERT"> Input volt. axis sensor R [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_E-Spannung_DIMMER_WERT"> Input volt. dimmer [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_E-Spannung_LWR_POTI_WERT"> Input volt. LWR-Pot [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_E-Spannung_FOTOZELLE_WERT"> Input volt. photoresistor [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_U_BATT_WERT"> battery voltage [V]</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_AL_LINKS_DEFEKT"> CheckControl low beam L DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_AL_RECHTS_DEFEKT"> CheckControl low beam R DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BL_LINKS_DEFEKT"> CheckControl brake light L DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BL_RECHTS_DEFEKT"> CheckControl brake light R DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_LINKS_HINTEN_DEFEKT"> CheckControl blinker RL DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_LINKS_VORN_DEFEKT"> CheckControl blinker FL DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_RECHTS_HINTEN_DEFEKT"> CheckControl blinker RR DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_RECHTS_VORN_DEFEKT"> CheckControl blinker FR DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_ZUSATZ_LINKS_DEFEKT"> CheckControl side blinker L DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_ZUSATZ_RECHTS_DEFEKT"> CheckControl side blinker R DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_FL_LINKS_DEFEKT"> CheckControl high beam L DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_FL_RECHTS_DEFEKT"> CheckControl high beam R DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_KZL_DEFEKT"> CheckControl license plate light DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_NSL_DEFEKT"> CheckControl fog rear light DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL_LINKS_HINTEN_DEFEKT"> CheckControl tail light RL DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL_RECHTS_HINTEN_DEFEKT"> CheckControl tail light RR DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL2_LINKS_HINTEN_DEFEKT"> CheckControl tail light 2 RL DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL2_RECHTS_HINTEN_DEFEKT"> CheckControl tail light 2 RR DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL3_LINKS_HINTEN_DEFEKT"> CheckControl tail light 3 RL DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL3_RECHTS_HINTEN_DEFEKT"> CheckControl tail light 3 RR DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL_LINKS_VORN_DEFEKT"> CheckControl side marker FL DEFECTIVE</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL_RECHTS_VORN_DEFEKT"> CheckControl side marker FR DEFECTIVE</string>
+      <string name="!JOB#SIA_LESEN#GESAMTWEGSTRECKE_WERT"> total distance [*100 km]</string>
+      <string name="!JOB#SIA_LESEN#SI_WEGZAEHLER_WERT"> SIA counter distance [km]</string>
+      <string name="!JOB#SIA_LESEN#SI_LITERZAEHLER_WERT"> SIA counter liters</string>
+      <string name="!JOB#SIA_LESEN#SI_WEGSTRECKE_LETZTER_OELSERVICE_WERT"> SIA distance since last oil change [km]</string>
+      <string name="!JOB#SIA_LESEN#SI_ZEITINSPEKTIONSZAEHLER_WERT"> SIA counter timeinspection</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_LSZ_WERT"> operation time LSZ</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_AL_LINKS_WERT"> operation time low beam L</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_AL_RECHTS_WERT"> operation time low beam R</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BL_L_WERT"> operation time brake light L</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BL_R_WERT"> operation time brake light R</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_SL_LH_WERT"> operation time tail light RL</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_SL_RH_WERT"> operation time tail light RR</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BLK_L_WERT"> operation time blinker L</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BLK_R_WERT"> operation time blinker R</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_NSL_WERT"> operation time rear fog light</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_NSW_RELAIS_WERT"> operation time front fog light</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#ANZAHL_BETAETIGUNGEN_BLS_WERT"> count actuations brake light</string>
+    </strings>
+	<strings lang="de">
+      <string name="LSZ_2">LSZ</string>
+      <string name="!JOB#STATUS_LESEN#STAT_SCHALTER_FL_LH_WERT"> Eingangsspannung Schalter Fernlicht [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_SCHALTER_BLK_WERT"> Eingangsspannung Schalter Blinker [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_SPANNUNG_BELADUNGSSENSOR_VORN_WERT"> Eingangsspannung Beladungssensor V [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_SPANNUNG_BELADUNGSSENSOR_HINTEN_WERT"> Eingangsspannung Beladungssensor H [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_E-Spannung_DIMMER_WERT"> Eingangsspannung Dimmer [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_E-Spannung_LWR_POTI_WERT"> Eingangsspannung LWR-Poti [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_E-Spannung_FOTOZELLE_WERT"> Eingangsspannung Fotozelle [V]</string>
+      <string name="!JOB#STATUS_LESEN#STAT_U_BATT_WERT"> Bordspannung [V]</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_AL_LINKS_DEFEKT"> CheckControl Abblendlinks L DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_AL_RECHTS_DEFEKT"> CheckControl Abblendlicht R DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BL_LINKS_DEFEKT"> CheckControl Bremslicht L DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BL_RECHTS_DEFEKT"> CheckControl Bremslicht R DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_LINKS_HINTEN_DEFEKT"> CheckControl Blinker LH DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_LINKS_VORN_DEFEKT"> CheckControl Blinker LV DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_RECHTS_HINTEN_DEFEKT"> CheckControl Blinker RH DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_RECHTS_VORN_DEFEKT"> CheckControl Blinker RV DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_ZUSATZ_LINKS_DEFEKT"> CheckControl Zusatzblinker L DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_BLK_ZUSATZ_RECHTS_DEFEKT"> CheckControl Zusatzblinker R DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_FL_LINKS_DEFEKT"> CheckControl Fernlicht L DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_FL_RECHTS_DEFEKT"> CheckControl Fernlicht R DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_KZL_DEFEKT"> CheckControl Kennzeichenbel. DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_NSL_DEFEKT"> CheckControl Nebelschlussleuchte DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL_LINKS_HINTEN_DEFEKT"> CheckControl Standlicht LH DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL_RECHTS_HINTEN_DEFEKT"> CheckControl Standlicht RH DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL2_LINKS_HINTEN_DEFEKT"> CheckControl Standlicht 2 LH DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL2_RECHTS_HINTEN_DEFEKT"> CheckControl Standlicht 2 RH DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL3_LINKS_HINTEN_DEFEKT"> CheckControl Standlicht 3 LH DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL3_RECHTS_HINTEN_DEFEKT"> CheckControl Standlicht 3 RH DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL_LINKS_VORN_DEFEKT"> CheckControl Standlicht LV DEFEKT</string>
+	  <string name="!JOB#STATUS_LESEN#STAT_SL_RECHTS_VORN_DEFEKT"> CheckControl Standlicht RV DEFEKT</string>
+      <string name="!JOB#SIA_LESEN#GESAMTWEGSTRECKE_WERT"> Gesamtwegstrecke [*100 km]</string>
+      <string name="!JOB#SIA_LESEN#SI_WEGZAEHLER_WERT"> SIA Wegzähler [km]</string>
+      <string name="!JOB#SIA_LESEN#SI_LITERZAEHLER_WERT"> SIA Literzähler</string>
+      <string name="!JOB#SIA_LESEN#SI_WEGSTRECKE_LETZTER_OELSERVICE_WERT"> SIA Wegstrecke letzter Ölservice [km]</string>
+      <string name="!JOB#SIA_LESEN#SI_ZEITINSPEKTIONSZAEHLER_WERT"> SIA Zeitinspektionszähler</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_LSZ_WERT"> Betriebsstunden LSZ</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_AL_LINKS_WERT"> Betriebsstunden Ablendlicht L</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_AL_RECHTS_WERT"> Betriebsstunden Ablendlicht R</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BL_L_WERT"> Betriebsstunden Bremslicht L</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BL_R_WERT"> Betriebsstunden Bremslicht R</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_SL_LH_WERT"> Betriebsstunden Standlicht LH</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_SL_RH_WERT"> Betriebsstunden Standlicht RH</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BLK_L_WERT"> Betriebsstunden Blinker L</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BLK_R_WERT"> Betriebsstunden Blinker R</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_NSL_WERT"> Betriebsstunden Nebelschlussleuchte</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_NSW_RELAIS_WERT"> Betriebsstunden Nebelscheinwerfer</string>
+      <string name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#ANZAHL_BETAETIGUNGEN_BLS_WERT"> Anz. Betätigungen Bremslicht</string>
+    </strings>
+    <jobs sgbd="lsz_2">
+      <job name="STATUS_LESEN">
+        <display name="!JOB#STATUS_LESEN#STAT_U_BATT_WERT" result="STAT_U_BATT_WERT" format="L" log_tag="STAT_U_BATT_WERT" />
+        <display name="!JOB#STATUS_LESEN#STAT_SCHALTER_FL_LH_WERT" result="STAT_SCHALTER_FL_LH_WERT" format="L" log_tag="STAT_SCHALTER_FL_LH_WERT" />
+        <display name="!JOB#STATUS_LESEN#STAT_SCHALTER_BLK_WERT" result="STAT_SCHALTER_BLK_WERT" format="L" log_tag="STAT_SCHALTER_BLK_WERT" />
+        <display name="!JOB#STATUS_LESEN#STAT_SPANNUNG_BELADUNGSSENSOR_VORN_WERT" result="STAT_SPANNUNG_BELADUNGSSENSOR_VORN_WERT" format="L" log_tag="STAT_SPANNUNG_BELADUNGSSENSOR_VORN_WERT" />
+        <display name="!JOB#STATUS_LESEN#STAT_SPANNUNG_BELADUNGSSENSOR_HINTEN_WERT" result="STAT_SPANNUNG_BELADUNGSSENSOR_HINTEN_WERT" format="L" log_tag="STAT_SPANNUNG_BELADUNGSSENSOR_HINTEN_WERT" />
+        <display name="!JOB#STATUS_LESEN#STAT_E-Spannung_DIMMER_WERT" result="STAT_E-Spannung_DIMMER_WERT" format="L" log_tag="STAT_E-Spannung_DIMMER_WERT" />
+        <display name="!JOB#STATUS_LESEN#STAT_E-Spannung_LWR_POTI_WERT" result="STAT_E-Spannung_LWR_POTI_WERT" format="L" log_tag="STAT_E-Spannung_LWR_POTI_WERT" />
+        <display name="!JOB#STATUS_LESEN#STAT_E-Spannung_FOTOZELLE_WERT" result="STAT_E-Spannung_FOTOZELLE_WERT" format="L" log_tag="STAT_E-Spannung_FOTOZELLE_WERT" />
+		<display name="!JOB#STATUS_LESEN#STAT_AL_LINKS_DEFEKT" result="STAT_AL_LINKS_DEFEKT" format="L" log_tag="STAT_AL_LINKS_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_AL_RECHTS_DEFEKT" result="STAT_AL_RECHTS_DEFEKT" format="L" log_tag="STAT_AL_RECHTS_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_BL_LINKS_DEFEKT" result="STAT_BL_LINKS_DEFEKT" format="L" log_tag="STAT_BL_LINKS_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_BL_RECHTS_DEFEKT" result="STAT_BL_RECHTS_DEFEKT" format="L" log_tag="STAT_BL_RECHTS_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_BLK_LINKS_HINTEN_DEFEKT" result="STAT_BLK_LINKS_HINTEN_DEFEKT" format="L" log_tag="STAT_BLK_LINKS_HINTEN_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_BLK_LINKS_VORN_DEFEKT" result="STAT_BLK_LINKS_VORN_DEFEKT" format="L" log_tag="STAT_BLK_LINKS_VORN_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_BLK_RECHTS_HINTEN_DEFEKT" result="STAT_BLK_RECHTS_HINTEN_DEFEKT" format="L" log_tag="STAT_BLK_RECHTS_HINTEN_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_BLK_RECHTS_VORN_DEFEKT" result="STAT_BLK_RECHTS_VORN_DEFEKT" format="L" log_tag="STAT_BLK_RECHTS_VORN_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_BLK_ZUSATZ_LINKS_DEFEKT" result="STAT_BLK_ZUSATZ_LINKS_DEFEKT" format="L" log_tag="STAT_BLK_ZUSATZ_LINKS_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_BLK_ZUSATZ_RECHTS_DEFEKT" result="STAT_BLK_ZUSATZ_RECHTS_DEFEKT" format="L" log_tag="STAT_BLK_ZUSATZ_RECHTS_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_FL_LINKS_DEFEKT" result="STAT_FL_LINKS_DEFEKT" format="L" log_tag="STAT_FL_LINKS_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_FL_RECHTS_DEFEKT" result="STAT_FL_RECHTS_DEFEKT" format="L" log_tag="STAT_FL_RECHTS_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_KZL_DEFEKT" result="STAT_KZL_DEFEKT" format="L" log_tag="STAT_KZL_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_NSL_DEFEKT" result="STAT_NSL_DEFEKT" format="L" log_tag="STAT_NSL_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_SL_LINKS_HINTEN_DEFEKT" result="STAT_SL_LINKS_HINTEN_DEFEKT" format="L" log_tag="STAT_SL_LINKS_HINTEN_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_SL_RECHTS_HINTEN_DEFEKT" result="STAT_SL_RECHTS_HINTEN_DEFEKT" format="L" log_tag="STAT_SL_RECHTS_HINTEN_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_SL2_LINKS_HINTEN_DEFEKT" result="STAT_SL2_LINKS_HINTEN_DEFEKT" format="L" log_tag="STAT_SL2_LINKS_HINTEN_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_SL2_RECHTS_HINTEN_DEFEKT" result="STAT_SL2_RECHTS_HINTEN_DEFEKT" format="L" log_tag="STAT_SL2_RECHTS_HINTEN_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_SL3_LINKS_HINTEN_DEFEKT" result="STAT_SL3_LINKS_HINTEN_DEFEKT" format="L" log_tag="STAT_SL3_LINKS_HINTEN_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_SL3_RECHTS_HINTEN_DEFEKT" result="STAT_SL3_RECHTS_HINTEN_DEFEKT" format="L" log_tag="STAT_SL3_RECHTS_HINTEN_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_SL_LINKS_VORN_DEFEKT" result="STAT_SL_LINKS_VORN_DEFEKT" format="L" log_tag="STAT_SL_LINKS_VORN_DEFEKT" />
+		<display name="!JOB#STATUS_LESEN#STAT_SL_RECHTS_VORN_DEFEKT" result="STAT_SL_RECHTS_VORN_DEFEKT" format="L" log_tag="STAT_SL_RECHTS_VORN_DEFEKT" />
+      </job>
+      <job name="SIA_LESEN">
+        <display name="!JOB#SIA_LESEN#GESAMTWEGSTRECKE_WERT" result="GESAMTWEGSTRECKE_WERT" format="L" log_tag="GESAMTWEGSTRECKE_WERT" />
+        <display name="!JOB#SIA_LESEN#SI_WEGZAEHLER_WERT" result="SI_WEGZAEHLER_WERT" format="L" log_tag="SI_WEGZAEHLER_WERT" />
+        <display name="!JOB#SIA_LESEN#SI_LITERZAEHLER_WERT" result="SI_LITERZAEHLER_WERT" format="L" log_tag="SI_LITERZAEHLER_WERT" />
+        <display name="!JOB#SIA_LESEN#SI_WEGSTRECKE_LETZTER_OELSERVICE_WERT" result="SI_WEGSTRECKE_LETZTER_OELSERVICE_WERT" format="L" log_tag="SI_WEGSTRECKE_LETZTER_OELSERVICE_WERT" />
+        <display name="!JOB#SIA_LESEN#SI_ZEITINSPEKTIONSZAEHLER_WERT" result="SI_ZEITINSPEKTIONSZAEHLER_WERT" format="L" log_tag="SI_ZEITINSPEKTIONSZAEHLER_WERT" />
+      </job>
+      <job name="BETRIEBSSTUNDENZAEHLER_LESEN">
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_LSZ_WERT" result="BETRIEBSZEIT_LSZ_WERT" format="L" log_tag="BETRIEBSZEIT_LSZ_WERT" />
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_AL_LINKS_WERT" result="BETRIEBSZEIT_AL_LINKS_WERT" format="L" log_tag="BETRIEBSZEIT_AL_LINKS_WERT" />
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_AL_RECHTS_WERT" result="BETRIEBSZEIT_AL_RECHTS_WERT" format="L" log_tag="BETRIEBSZEIT_AL_RECHTS_WERT" />
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BL_L_WERT" result="BETRIEBSZEIT_BL_L_WERT" format="L" log_tag="BETRIEBSZEIT_BL_L_WERT" />
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BL_R_WERT" result="BETRIEBSZEIT_BL_R_WERT" format="L" log_tag="BETRIEBSZEIT_BL_R_WERT" />
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_SL_LH_WERT" result="BETRIEBSZEIT_SL_LH_WERT" format="L" log_tag="BETRIEBSZEIT_SL_LH_WERT" />
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_SL_RH_WERT" result="BETRIEBSZEIT_SL_RH_WERT" format="L" log_tag="BETRIEBSZEIT_SL_RH_WERT" />
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BLK_L_WERT" result="BETRIEBSZEIT_BLK_L_WERT" format="L" log_tag="BETRIEBSZEIT_BLK_L_WERT" />
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_BLK_R_WERT" result="BETRIEBSZEIT_BLK_R_WERT" format="L" log_tag="BETRIEBSZEIT_BLK_R_WERT" />
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_NSL_WERT" result="BETRIEBSZEIT_NSL_WERT" format="L" log_tag="BETRIEBSZEIT_NSL_WERT" />
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#BETRIEBSZEIT_NSW_RELAIS_WERT" result="BETRIEBSZEIT_NSW_RELAIS_WERT" format="L" log_tag="BETRIEBSZEIT_NSW_RELAIS_WERT" />
+        <display name="!JOB#BETRIEBSSTUNDENZAEHLER_LESEN#ANZAHL_BETAETIGUNGEN_BLS_WERT" result="ANZAHL_BETAETIGUNGEN_BLS_WERT" format="L" log_tag="ANZAHL_BETAETIGUNGEN_BLS_WERT" />
+      </job>
+    </jobs>
+  </page>
+</fragment>

+ 16 - 0
E46 M57N/LWS5_1B.ccpage

@@ -0,0 +1,16 @@
+<?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="small" gauges-portrait="2" gauges-landscape="4" logfile="LWS5_1B.log">
+    <strings>
+      <string name="!PAGE_NAME">LWS5</string>
+      <string name="!JOB#STATUS_SG_ONLINE#STAT_INLRW_G_WERT">Lenkwinkel</string>
+      <string name="!JOB#STATUS_SG_ONLINE#STAT_INLRWPKT_G_WERT">Lenkwinkelgeschwindigkeit</string>
+    </strings>
+    <jobs sgbd="lws5_1b">
+      <job name="STATUS_SG_ONLINE">
+        <display name="!JOB#STATUS_SG_ONLINE#STAT_INLRW_G_WERT" result="STAT_INLRW_G_WERT" format=".2R" log_tag="STAT_INLRW_G_WERT" />
+        <display name="!JOB#STATUS_SG_ONLINE#STAT_INLRWPKT_G_WERT" result="STAT_INLRWPKT_G_WERT" format=".2R" log_tag="STAT_INLRWPKT_G_WERT" />
+      </job>
+    </jobs>
+  </page>
+</fragment>

+ 62 - 0
E46 M57N/Laufunruhe.ccpage

@@ -0,0 +1,62 @@
+<?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="Laufunruhe.log">
+    <strings>
+      <string name="!PAGE_NAME">Uneven running</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT"> Cyl. 1 [mg/str]</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT"> Cyl. 2 [mg/str]</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT"> Cyl. 3 [mg/str]</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT"> Cyl. 4 [mg/str]</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT"> Cyl. 5 [mg/str]</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT"> Cyl. 6 [mg/str]</string>
+    </strings>
+	<strings lang="de">
+      <string name="!PAGE_NAME">Laufunruhe</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT"> Zyl. 1 [mg/Hub]</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT"> Zyl. 2 [mg/Hub]</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT"> Zyl. 3 [mg/Hub]</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT"> Zyl. 4 [mg/Hub]</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT"> Zyl. 5 [mg/Hub]</string>
+      <string name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT"> Zyl. 6 [mg/Hub]</string>
+    </strings>
+      <display name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT" format=".2R" display-order="1" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT" />
+      <display name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT" format=".2R" display-order="2" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT" />
+      <display name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT" format=".2R" display-order="3" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT" />
+      <display name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT" format=".2R" display-order="4" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT" />
+      <display name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT" format=".2R" display-order="5" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT" />
+      <display name="STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT" format=".2R" display-order="6" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT" />
+    
+    <jobs sgbd="d50m57e1"/>
+    <code show_warnings="true">
+    <![CDATA[
+    class PageClass
+    {
+        public void ExecuteJob(EdiabasNet ediabas, ref MultiMap<string, EdiabasNet.ResultData> resultDict, bool firstCall)
+        {	
+            if (firstCall) {
+                ediabas.ArgString = string.Empty;
+                ediabas.ArgBinaryStd = null;
+                ediabas.ResultsRequests = "JOB_STATUS";
+                
+                ediabas.ExecuteJob("START_SYSTEMCHECK_ZYL");
+            }
+            else {
+                ediabas.ArgString = string.Empty;
+                ediabas.ArgBinaryStd = null;
+                ediabas.ResultsRequests = "STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT;STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT;STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT;STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT;STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT;STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT";
+                
+                ediabas.ExecuteJob("STATUS_LAUFUNRUHE_LLR_MENGE");
+				
+				List<Dictionary<string, EdiabasNet.ResultData>> resultSets = ediabas.ResultSets;
+				if (resultSets != null && resultSets.Count >= 2)
+				{
+					//EdiabasNet.ResultData resultData;
+					EdiabasThread.MergeResultDictionarys(ref resultDict, resultSets[1]);
+				}
+            }
+        }
+    }
+    ]]>
+    </code>
+  </page>
+</fragment>

+ 26 - 0
E46 M57N/Laufunruhe_old.ccpage

@@ -0,0 +1,26 @@
+<?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="grid" fontsize="medium" gauges-portrait="2" gauges-landscape="4" logfile="Laufunruhe.log">
+    <strings>
+      <string name="!PAGE_NAME">Laufunruhe</string>
+      <string name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT">Zyl. 1</string>
+      <string name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT">Zyl. 2</string>
+      <string name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT">Zyl. 3</string>
+      <string name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT">Zyl. 4</string>
+      <string name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT">Zyl. 5</string>
+      <string name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT">Zyl. 6</string>
+    </strings>
+	<jobs sgbd="d50m57e1">
+	  <job name="START_SYSTEMCHECK_ZYL" args_first="LLR_EIN" results="JOB_STATUS">
+	  </job>
+      <job name="STATUS_LAUFUNRUHE_LLR_MENGE" results="STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT;STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT;STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT;STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT;STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT;STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT">
+        <display name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT" format=".2R" display-order="1" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT" />
+        <display name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT" format=".2R" display-order="2" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT" />
+        <display name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT" format=".2R" display-order="3" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT" />
+        <display name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT" format=".2R" display-order="4" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT" />
+        <display name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT" format=".2R" display-order="5" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT" />
+        <display name="!JOB#STATUS_LAUFUNRUHE_LLR_MENGE#STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT" result="STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT" format=".2R" display-order="6" grid-type="simple-gauge-dot" min-value="-10" max-value="10" log_tag="STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT" />
+      </job>
+	</jobs>
+  </page>
+</fragment>

+ 39 - 0
E46 M57N/PDCACT.ccpage

@@ -0,0 +1,39 @@
+<?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="PDC" fontsize="medium" logfile="PDCACT.log">
+    <strings>
+      <string name="PDC">PDC</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HL_WERT">  back left [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HML_WERT">  back left middle [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HMR_WERT">  back right middle [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HR_WERT">  back right [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VL_WERT">  front left [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VML_WERT">  front left middle [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VMR_WERT">  front right middle [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VR_WERT">  front right [cm]</string>
+    </strings>
+	<strings lang="de">
+      <string name="PDC">PDC</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HL_WERT">  Hinten Links [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HML_WERT">  Hinten Links Mitte [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HMR_WERT">  Hinten Rechts Mitte [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HR_WERT">  Hinten Rechts [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VL_WERT">  Vorn Links [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VML_WERT">  Vorn Links Mitte [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VMR_WERT">  Vorn Rechts Mitte [cm]</string>
+      <string name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VR_WERT">  Vorn Rechts [cm]</string>
+    </strings>
+    <jobs sgbd="pdcact">
+      <job name="STATUS_MESSWERTE_LESEN">
+        <display name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VL_WERT" result="STAT_WEG_VL_WERT" format="3.0R" log_tag="STAT_WEG_VL_WERT" />
+		<display name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VML_WERT" result="STAT_WEG_VML_WERT" format="3.0R" log_tag="STAT_WEG_VML_WERT" />
+        <display name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VMR_WERT" result="STAT_WEG_VMR_WERT" format="3.0R" log_tag="STAT_WEG_VMR_WERT" />
+		<display name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_VR_WERT" result="STAT_WEG_VR_WERT" format="3.0R" log_tag="STAT_WEG_VR_WERT" />
+	    <display name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HL_WERT" result="STAT_WEG_HL_WERT" format="3.0R" log_tag="STAT_WEG_HL_WERT" />
+		<display name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HML_WERT" result="STAT_WEG_HML_WERT" format="3.0R" log_tag="STAT_WEG_HML_WERT" />
+        <display name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HMR_WERT" result="STAT_WEG_HMR_WERT" format="3.0R" log_tag="STAT_WEG_HMR_WERT" />
+		<display name="!JOB#STATUS_MESSWERTE_LESEN#STAT_WEG_HR_WERT" result="STAT_WEG_HR_WERT" format="3.0R" log_tag="STAT_WEG_HR_WERT" />
+      </job>
+    </jobs>
+  </page>
+</fragment>

+ 16 - 0
E46 M57N/Pages.ccpages

@@ -0,0 +1,16 @@
+<?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">
+  <pages>
+    <include filename="IBUS_App.ccpage" />
+    <include filename="D50M57E1.ccpage" />
+    <include filename="Laufunruhe.ccpage" />
+    <include filename="RPA_DSC_MK60.ccpage" />
+    <include filename="DSC_MK60.ccpage" />
+	<include filename="LWS5_1B.ccpage" />
+    <include filename="KOMBI46R.ccpage" />
+    <include filename="LSZ_2.ccpage" />
+    <include filename="PDCACT.ccpage" />
+    <include filename="IHKA46_3.ccpage" />
+    <include filename="Errors.ccpage" />
+  </pages>
+</fragment>

+ 123 - 0
E46 M57N/RPA_DSC_MK60.ccpage

@@ -0,0 +1,123 @@
+<?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">RPA (DSC MK60)</string>
+      <string name="!JOB#STATUS_LESEN_RPA#WARNUNG_AKTUELL"> RPA Warnung aktuell</string>
+      <string name="!JOB#STATUS_LESEN_RPA#STATUS_KM_RESET"> Kilometerstand letzte Initialisierung</string>
+      <string name="!JOB#STATUS_LESEN_RPA#STATUS_KM_WARNUNG"> Kilometerstand letzte Warnung</string>
+    </strings>
+    <display name="!JOB#STATUS_LESEN_RPA#WARNUNG_AKTUELL" result="WARNUNG_AKTUELL" format="" display-order="0" grid-type="text" min-value="0" max-value="100" log_tag="WARNUNG_AKTUELL" />
+    <display name="!JOB#STATUS_LESEN_RPA#STATUS_KM_RESET" result="STATUS_KM_RESET" format="" display-order="0" grid-type="text" min-value="0" max-value="100" log_tag="STATUS_KM_RESET" />
+    <display name="!JOB#STATUS_LESEN_RPA#STATUS_KM_WARNUNG" result="STATUS_KM_WARNUNG" format="" display-order="0" grid-type="text" min-value="0" max-value="100" log_tag="STATUS_KM_WARNUNG" />
+    <jobs sgbd="dsc_mk60" />
+    <code show_warnings="true">
+    <![CDATA[
+    class PageClass
+    {
+		// Button deklarieren
+        private Button button RPAReset;
+		
+		// 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 doRPAReset = 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;
+
+            buttonRPAReset = new Button(activity);
+            buttonRPAReset.Text = "RPA RESET";
+            buttonRPAReset.Click += delegate
+            {
+				// button setzt klassenweite variable auf true, diese wird beim durchlauf von ExecuteJob ausgewertet
+                doRPAReset = true;
+				
+				// Benachrichtung anzeigen wenn man will
+                ActivityMain.ShowNotification(activity, 0, 2,
+                    "RPA RESET",
+                    "Reifen Pannen Anzeige am DSC MK60 wird zurückgesetzt...");
+            };
+            buttonLayout.AddView(buttonRPAReset, buttonLayoutParams);
+
+            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+                ViewGroup.LayoutParams.MatchParent,
+                ViewGroup.LayoutParams.WrapContent);
+            pageLayout.AddView(buttonLayout, layoutParams);
+        }
+
+        public void DestroyLayout(JobReader.PageInfo pageInfo)
+        {
+            buttonRPAReset = null;
+        }
+        
+        public void UpdateLayout(JobReader.PageInfo pageInfo, bool pageValid, bool threadActive)
+        {
+            if ((buttonRPAReset == null))
+            {
+                return;
+            }
+        }
+
+        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 = string.Empty;
+            ediabas.ArgBinaryStd = null;
+            ediabas.ResultsRequests = string.Empty;
+            
+            ediabas.ExecuteJob("STATUS_LESEN_RPA");
+            
+            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 JOB - wenn der RPA RESET button kürzlich betätigt wurde wird dieser code block ausgeführt
+            if (doRPAReset) {
+                ediabas.ArgString = string.Empty;
+                ediabas.ArgBinaryStd = null;
+                ediabas.ResultsRequests = "JOB_STATUS";
+                
+                ediabas.ExecuteJob("RPA_RESET");
+                
+				// 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...
+                doRPAReset = false;
+            }
+        }
+    }
+    ]]>
+    </code>
+  </page>
+</fragment>

BIN
E46 M57N/Translation.xml.zip