obdcond n b t mt [trig1 ... trig4]

Sets the condition(s) that will trigger an OBD report.

n = 1 to 8OBD trigger number
b = 0Conditional operator for all following parameters: Off
b = 1Conditional operator for all following parameters: AND
b = 2Conditional operator for all following parameters: OR
t = 0Timeout disabled
t = 1 to 65535Timeout in seconds
t = t or TTimeout disabled, transition is enabled (triggers when transitioning between T/F or F/T
mt = 0 to 65535Maximum reporting rate in seconds (minimum time between reports)

Optional: trigx trigger parameter x enclosed in single quotes and without spaces in between, in the form 'pid^val' where:

pid = p1 to pbengine parameters as per OBD2/J1939 Parameters Table except for p4 and id
pid = pallcheck all engine parameters as per OBD2/J1939 Parameters Table, only works with '~' trigger
^ - >trigger using greater than operator
^ - =trigger using equal to operator
^ - <trigger using less than operator
^ - ~trigger when parameter changed when compared to previous check (ignores val) (must be used if cmd pobdX is configured to report updated params)
^ - ! like ~ except ignores initial transition from null value to a value
valengine parameter value that sets off the trigger, in decimal nnnn.nn (refer to OBD2/J1939 Parameters Table for allowable range of values)

Notes:


Examples of OBD trigger parameters:

  1. trigger is set off when p1 (vehicle speed) is greater than 0 km/h :
    'p1>0'
  2. trigger is set off when p2 (engine RPM) is equal to 5000 RPM :
    'p2=5000'
  3. trigger is set off when p8 (engine coolant temperature) is less than 200.75°C
    'p8<200.75'

Examples:

  1. Set OBD trigger #1 to send a report every 60 seconds :
    cmd obdcond 1 1 60
  2. Set OBD trigger #2 to send a report every 30 seconds AND P1 (vehicle speed) is equal to 0.0 km/h at that point in time :
    cmd obdcond 2 1 30 0 'p1=0.0'
  3. Set OBD trigger #2 to send a report every 30 seconds AND P2 (rpm) is different than what it was at 30s ago (i.e. if value changed and changed back within 30s, nothing will be triggered) :
    cmd obdcond 2 1 30 0 'p2~'
  4. Set OBD trigger #2 to send a report every 30 seconds AND ANY p param is different than what it was at 30s ago (i.e. if value changed and changed back within 30s, nothing will be triggered) :
    cmd obdcond 2 1 30 0 'pall~'
  5. Set OBD trigger #3 to send a report every 60 seconds OR P1 (vehicle speed) is greater than 0 km/h OR P2 (engine RPM) is greater than 2000 with a maximum report rate of one every 5 seconds :
    cmd obdcond 3 2 60 5 'p1>0' 'p2>2000'
  6. Set OBD trigger #4 to send a report only when P1 (vehicle speed) is less than 10 km/h AND P2 (engine RPM) is equal to 0 RPM AND P7 (calculated engine load value) is equal to 0 percent AND P8 (engine coolant temperature) is -40°C with a maximum report rate of one every 15 seconds :
    cmd obdcond 4 1 0 15 'p1<10.00' 'p2=0.00' 'p7=0.00' 'p8=-40.00'
  7. Triggers whenever p5 changes between p5 == 1 to p5 != 1 :
    cmd obdcond 3 2 t 0 'p5=1'


See Also: OBD2/J1939 Parameters Table, Engine Diagnostics Support

Last modified 3 years ago Last modified on 17-06-01 03:30:39 PM