In the default settings for the Diagnostic Messages Application, the four individual J1939 DM1 lamps are combined together into a red stop lamp and amber warning lamp to simplify the user experience.
An operator may not know how to interpret a Protect Lamp or a Malfunction Indicator (MIL) lamp however the Red Lamp and Amber Lamp are pretty easy to understand and fits with our monochrome products that have a physical red and amber LED.
In the default mode the system variable DM1.LampStatus contains the lamp status of all the DM1 messages in the DM1List and will have the following values:
0 = No Faults
1 = Amber Lamp or MIL Lamp
2 = Red Lamp or Protect Lamp
Lamp Flashing is not included in this functionality.
DM1.CurrentLampStatus reflects the lamps status of the current fault pointed to in the DM1 list. It follows the same truth table as the DM1.LampStatus.
In instances where you need individual lamp control or Lamp Flashing there is an option in the Diagnostic Messages app that allows selecting standard J1939 Lamp Interpretation.
When this check box is selected then DM1.LampStatus will contain the values for the Lamp Status and Lamp Flash codes per J1939 in two bytes of data.
DM1.LampStatus = 0xMSB LSB where MSB = lamp flash code byte and LSB = Lamp Status code byte, these are both per J1939 definition.
|Lamp Status Byte||Flash Status Byte|
|Protect Lamp = Bits 1 &2||00 = Off, 01 = On||00=Slow Flash, 01=Fast Flash, 11=No Flash|
|Amber Lamp = Bits 3 & 4||00 = Off, 01 = On||00=Slow Flash, 01=Fast Flash, 11=No Flash|
|Red Lamp = Bits 5 & 6||00 = Off, 01 = On||00=Slow Flash, 01=Fast Flash, 11=No Flash|
|MIL Lamp = Bits 7 & 8||00 = Off, 01 = On||00=Slow Flash, 01=Fast Flash, 11=No Flash|
The following example uses an activity program to set the visibility status of each of the lamps based on the current DM1.LampStatus system variable.