MHD Logging
From B58 Wiki
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: