When using the DeviceStatusInfoSearch for Diagnostics, it is possible to call the current value against DiagnosticOdometerAdjustmentId or DiagnosticEngineHoursAdjustmentId against every vehicle in a fleet, but unlike calling StatusData it doesn't appear to self-upgrade the response if ECM data is detected.
For example, using StatusData, if the deviceID has data in DiagnosticOdometerId, calculated from Raw Odometer + Adjustment + Offset, it will automatically provide DiagnosticOdometerId, not DiagnosticOdometerAdjustmentId
let nowISO = (new Date).toISOString()
api.call("Get", {
"typeName": "StatusData",
"search": {
"deviceSearch": {
"id":"b303"
},
"diagnosticSearch": {
"id":"DiagnosticOdometerAdjustmentId"
},
fromDate: nowISO,
toDate: nowISO
}
}, function(result) {
console.log("Done: ", result);
}, function(e) {
console.error("Failed:", e);
});But using DeviceStatusInfo and the diagnostics array with DiagnosticOdometerAdjustmentId will always include the DiagnosticOdometerAdjustmentId value regardless if the unit as data in DiagnosticOdometerId.
api.call("Get", {
"typeName": "DeviceStatusInfo",
"search": {
"deviceSearch": {
"id":"bB"
},
"Diagnostics": [{
"id": "DiagnosticOdometerAdjustmentId"
}]
}
}, function(result) {
console.log("Done: ", result);
}, function(e) {
console.error("Failed:", e);
});From what I can observe, StatusData always attempts to return the most accurate value source, whereas DeviceStatusInfo doesn't. Is this something I should make a Feedback submission for?