public override async Task <List <string> > GetEcuInfo() { DiagnosticData dv = this.GetDiagnosticSets().Find((diag) => diag.DataID == (int)ObjectsIndex_e.didEcuInfo); if (dv == null) { return(new List <string>()); } _diagSrv.AddRequestedDID((uint)dv.DataID); if (await _diagSrv.RequestService(EcuAddress)) { var lst = _diagSrv.GetResponseValue(dv.DataID); foreach (int val in lst) { dv.AddValue(val); } return(dv.GetValue()); } else { return(new List <string>()); } }
void ShowResponse(Diag.A_Service_ReadDataByIdentifier srvDataById) { parList.Clear(); foreach (var did in srvDataById.RequestedDIDs) { DiagnosticData dv = null; // Найти в списке диагностических значений нужный dv = ecu.GetDiagnosticSets().Find((diag) => diag.DataID == did); // Если ЭБУ поддерживает запрашиваемый DID if (dv != null) { foreach (int val in srvDataById.GetResponseValue(did)) { dv.AddValue(val); } int i = 0; List <string> values = dv.GetValue(); if (values.Count > 0) { foreach (string value in values) { parList.Add(new GridPar() { DID = (ushort)did, //Param = dv.ToString(), Name = dv.ToString(++i), Value = value, }); } } else { parList.Add(new GridPar() { DID = (ushort)did, //Param = dv.ToString(), Name = dv.ToString(++i), Value = "-", }); } } else // Если ЭБУ не поддерживает запрашиваемый DID { parList.Add(new GridPar() { DID = 0, Name = "Некорректный DID", Value = " - ", TT = null, BackColor = Brushes.Transparent, ForeColor = Brushes.Black, }); } } }