MHD Logging: Difference between revisions

From B58 Wiki
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 19: Line 19:
     Units="$units"                # text string describing the units
     Units="$units"                # text string describing the units
     RoundingDigits="$dec-places"  # decimal places for guages
     RoundingDigits="$dec-places"  # decimal places for guages
     signed="$1-if-signed">        # skip if UBYTE, UWORD, or ULONG, otherwise use signed="1"
     Signed="$1-if-signed">        # skip if UBYTE, UWORD, or ULONG, otherwise use Signed="1"


     <Text xml:lang="en">$channel-name</Text> # name of the channel
     <Text xml:lang="en">$channel-name</Text> # name of the channel
Line 32: Line 32:
<syntaxhighlight lang="xml" line>
<syntaxhighlight lang="xml" line>


<ActualValue ReqBlock="51801f12" Size="2" DataA="0.1" DataB="0.0" Prefix="51" Units="°" RoundingDigits="1" signed="1">
<ActualValue ReqBlock="51801f12" Size="2" DataA="0.1" DataB="0.0" Prefix="51" Units="°" RoundingDigits="1" Signed="1">
   <Text xml:lang="en">Dzwt</Text>
   <Text xml:lang="en">Dzwt</Text>
</ActualValue>
</ActualValue>

Latest revision as of 17:11, 19 July 2024

MHD's logger has a useful feature which allows you to add custom logging parameters, which we explain below.

To use this feature, you need the a2l file for your DME (see Resources for getting started).

The basic process is as follows

  • Create a $prg_UserChannels.xml file where $prg is the value of Current PRG (hex) as shown by MHD flasher when you list the DME software versions. For example 00003076501103_UserChannels.xml
  • The file follows a format as follows
<?xml version="1.0" standalone="yes"?>
<ActualValues>
  <ActualValue 
    ReqBlock="$hex-address"       # ECU Address from A2L
    Size="$size-in-bytes"         # Size (e.g. BYTE=1, WORD=2, LONG=4)
    DataA="$x-coefficient"        # RAT_FUNC coeff F / coeff B
    DataB="$constant"             # RAT_FUNC coeff C / coeff B
    Prefix="$digits"              # First two digits of MEMORY_SEGMENT containing this var
    Units="$units"                # text string describing the units
    RoundingDigits="$dec-places"  # decimal places for guages
    Signed="$1-if-signed">        # skip if UBYTE, UWORD, or ULONG, otherwise use Signed="1"

    <Text xml:lang="en">$channel-name</Text> # name of the channel
  </ActualValue>
</ActualValues>


Here's an example for Dzwt, the temperature correction component of an overall timing correction, for version R1C9J8B3B:

<ActualValue ReqBlock="51801f12" Size="2" DataA="0.1" DataB="0.0" Prefix="51" Units="°" RoundingDigits="1" Signed="1">
  <Text xml:lang="en">Dzwt</Text>
</ActualValue>

The following shows the relevant A2L blocks for getting the required information:

/begin MEASUREMENT

/begin MEASUREMENT

    Dzwt
    "Temperaturkorrektur ZW-Klopfgrenze"
    SWORD
    juwcFuc_Dtmczic_mCgfamd_q__aa0o
    1
    100.
    -3276.8
    3276.7
    FORMAT "%6.1"
    ECU_ADDRESS 0x51801F12


/end MEASUREMENT

...

/begin  COMPU_METHOD

    juwcFuc_Dtmczic_mCgfamd_q__aa0o
    "juwcFuc_Dtmczic_mCgfamd_q__aa0o"
    RAT_FUNC
    "%6.3"
    "°"

    COEFFS 0. 10. 0. 0. 0. 1.

/end COMPU_METHOD
  • Finally, copy the user channels file to your phone and import it into MHD: