obdcond n b t mt [trig1 ... trig4]
Sets the condition(s) that will trigger an OBD report.
n = 1 to 8 | OBD trigger number
|
b = 0 | Conditional operator for all following parameters: Off
|
b = 1 | Conditional operator for all following parameters: AND
|
b = 2 | Conditional operator for all following parameters: OR
|
t = 0 | Timeout disabled
|
t = 1 to 65535 | Timeout in seconds
|
t = t or T | Timeout disabled, transition is enabled (triggers when transitioning between T/F or F/T
|
mt = 0 to 65535 | Maximum 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 pb | engine parameters as per OBD2/J1939 Parameters Table except for p4 and id
|
pid = pall | check 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
|
val | engine parameter value that sets off the trigger, in decimal nnnn.nn (refer to OBD2/J1939 Parameters Table for allowable range of values)
|
Notes:
- To use obdcond as a timed trigger ONLY, you must verify that you are receiving valid OBD data (ie. cmd obddata cannot return "ERROR")
Examples of OBD trigger parameters:
- trigger is set off when p1 (vehicle speed) is greater than 0 km/h :
'p1>0'
- trigger is set off when p2 (engine RPM) is equal to 5000 RPM :
'p2=5000'
- trigger is set off when p8 (engine coolant temperature) is less than 200.75°C
'p8<200.75'
Examples:
- Set OBD trigger #1 to send a report every 60 seconds :
cmd obdcond 1 1 60
- 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'
- 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~'
- 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~'
- 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'
- 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'
- 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