private OBDParameterValue GetDM19Value(OBDParameter param, OBDResponse response) { OBDParameterValue value2 = new OBDParameterValue(); if (response.GetDataByteCount() < 20) { value2.ErrorDetected = true; return(value2); } int qty = response.Data.Length / (20 * 2); string strData = ""; int OriginalParam = param.Parameter; int OriginalService = param.Service; param.Service = 9; switch (param.SignalName) { case "CVN": param.Parameter = 0x06; for (int i = 0; i < qty; i++) { strData += response.Data.Substring(i * 20 * 2, 4 * 2); } response.Data = strData; value2 = GetMode010209Value(param, response); for (int i = 0; i < value2.ListStringValue.Count; i++) { string strVal = value2.ListStringValue[i]; value2.ListStringValue[i] = strVal.Substring(6, 2) + strVal.Substring(4, 2) + strVal.Substring(2, 2) + strVal.Substring(0, 2); } break; case "CAL_ID": param.Parameter = 0x04; for (int i = 0; i < qty; i++) { strData += response.Data.Substring(4 * 2 + i * 20 * 2, 16 * 2); } response.Data = strData; value2 = GetMode010209Value(param, response); break; default: value2.ErrorDetected = true; break; } param.Parameter = OriginalParam; param.Service = OriginalService; return(value2); }
private OBDParameterValue GetDM5Value(OBDParameter param, OBDResponse response) { OBDParameterValue value2 = new OBDParameterValue(); if (response.GetDataByteCount() < 8) { value2.ErrorDetected = true; return(value2); } switch (param.SignalName) { case "": case "OBDSUP": // OBD型式 response.Data = response.GetDataByte(2); value2 = GetPIDValue(0x11C, response.Data, param.SignalName); break; case "ACT_DTC_CNT": // 激活的故障代码,未实现解析功能 response.Data = response.GetDataByte(0); break; case "PRE_DTC_CNT": // 先前激活的诊断故障代码,未实现解析功能 response.Data = response.GetDataByte(1); break; case "CON_MON": // 持续监视系统支持/状态,未实现解析功能 response.Data = response.GetDataByte(3); break; case "NON_SUP": // 非持续监视系统支持,未实现解析功能 response.Data = response.GetDataByte(4) + response.GetDataByte(5); break; case "NON_STAT": // 非持续监视系统状态,未实现解析功能 response.Data = response.GetDataByte(6) + response.GetDataByte(7); break; default: value2.ErrorDetected = true; break; } return(value2); }
public OBDParameterValue GetPIDSupport(OBDResponse response) { OBDParameterValue value2 = new OBDParameterValue(); if (response.GetDataByteCount() < 4) { value2.ErrorDetected = true; return(value2); } int dataA = Utility.Hex2Int(response.GetDataByte(0)); int dataB = Utility.Hex2Int(response.GetDataByte(1)); int dataC = Utility.Hex2Int(response.GetDataByte(2)); int dataD = Utility.Hex2Int(response.GetDataByte(3)); value2.SetBitFlagBAT(dataA, dataB, dataC, dataD); return(value2); }