Beispiel #1
0
        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>());
            }
        }
Beispiel #2
0
        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,
                    });
                }
            }
        }