Есть ли способ автоматизировать преобразование BLF в CSV в Vector CANoe? - PullRequest
0 голосов
/ 30 мая 2018

Мой первый подход заключался в использовании python-can (так как добавлена ​​поддержка синтаксического анализа BLF-файлов с выпуском 2.0.0), например:

import can

filename = "logfile.blf"
logging = can.BLFReader(filename)
for msg in logging:
    print(msg)

, но это привело к ошибкечто я доложил разработчику.Формат BLF является проприетарным и несколько секретным, поэтому я понимаю, что поддержка его в библиотеке с открытым исходным кодом может быть проблематичной.

Итак, я попытался сделать это , используя решение, предоставленное Vector : COM, но до сих пор не смогчтобы найти решение.

(фрагмент кода ниже находится в vbscript, как это то, что используется в CANoe документах, но у меня также есть сценарии Python, выполняющие точното же самое, используя win32com)

Итак, сначала я попробовал с этим:

Dim app, measurement, loggings, logging, exporter, expfilter
Set app = CreateObject("CANoe.Application")
Set loggings = app.Configuration.OfflineSetup.LoggingCollection
loggings.Add("D:\path\dummy3.blf")
Set logging = loggings(1)
Set exporter = logging.Exporter
Set expfilter = exporter.Filter
exporter.Load

For Each symbol In exporter.Symbols
  expfilter.Add(symbol.FullName)
Next

For Each message In exporter.Messages
  expfilter.Add(Message.FullName)
Next

expfilter.Enabled = True

Dim dests
Set dests = exporter.Destinations
dests.Clear
dests.Add("D:\path\dummy3.csv")

exporter.Save True

И это работает по крайней мере, поскольку BLF загружается в Exporter объект, и я могу читать FullName свойство всех его объектов Symbol и Message, а также я уверен, что путь, добавленный в его коллекцию Destinations, в порядке (по крайней мере, я могу прочитать его после добавления), но затем все падает напоследняя строка с ошибкой ниже:

COM server error message

Это сообщение оказывается довольно загадочным , поэтому я не знаю, что на самом деле не таккроме этого есть некоторые проблемы с записью файла.Дело в том, что мне действительно не нужно CANoe, чтобы писать для меня, пока я могу как-то получить данные, содержащиеся в BLF.

Так что другая идея, которую я возглавил, заключалась в том, чтобыприсоедините BLF в качестве автономного источника в окне CANoe'a Configuration, сохраните конфигурацию и запустите измерение из скрипта.Таким образом, у меня есть данные в окне Trace (по умолчанию ограничено 4000 событий, но я считаю, что они должны быть редактируемыми), но до сих пор не нашел способа добраться до них с помощью интерфейса COM.

У меня такое чувство, что должен быть более простой способ сделать это.В конце концов, в CANoe есть диалог Logging File Conversion, и логичным способом было бы получить к нему доступ через интерфейс COM.Кажется, я просто не вижу этого в документах.

Любая помощь будет очень признательна.

...