Exemplo n.º 1
0
        public CANDatabase ParseFile(FileModel file, ParsingArguments arguments)
        {
            string      line;
            CANDatabase dbcObject = new CANDatabase();

            dbcObject.Name     = file.Name;
            dbcObject.Messages = new List <Message>();

            using FileStream fileStream = File.OpenRead(file.Location);
            using var streamReader      = new StreamReader(fileStream);

            while ((line = streamReader.ReadLine()) != null)
            {
                if (LinePrefix.CheckLine(line, "BU_"))
                {
                    dbcObject.NetworkNodes = NetworkNodeParser.ParseLine(line);
                }
                else if (LinePrefix.CheckLine(line, "BO_"))
                {
                    Message message = MessageParser.ParseLine(line, arguments.Messages);

                    dbcObject.Messages.Add(message);
                }
                else if (LinePrefix.CheckLine(line, " SG_"))
                {
                    Signal signal = SignalParser.ParseLine(line, arguments.Signals);

                    int indexOfLast = dbcObject.Messages.Count - 1;
                    dbcObject.Messages[indexOfLast].Signals.Add(signal);
                }
            }
            return(dbcObject);
        }
Exemplo n.º 2
0
        public void Add(FileModel file)
        {
            ParsingArguments parsingArguments = new ParsingArguments()
            {
                Messages = { "MessageId", "Name" },
                Signals  = { "Name", "StartBit", "Length" }
            };

            try
            {
                CANDatabase canDb = _dbcParser.ParseFile(file, parsingArguments);
                _db.CANDatabases.Add(canDb);
                _db.SaveChanges();
                return;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }