Автоматизация преобразования BLF в MAT файлов в Vector CANalyzer - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь автоматизировать преобразование нескольких файлов BLF в файлы Matlab MAT. Я нашел подобный вопрос здесь и использовал ответ, чтобы начать:

Есть ли способ автоматизировать преобразование BLF в CSV в Vector CANoe?

Я бы просто прокомментируйте эту ветку, но моя учетная запись здесь новая, поэтому я не могу.

Я следовал инструкциям в другой ветке, чтобы настроить его для файлов CANalyzer и BLF / MAT. Когда я запускаю BAT-файл, я получаю сообщение об ошибке в окне «Запись» CANalyzer, в котором говорится: «Файл системного журнала 'logfile001.blf' не может быть импортирован

Таким образом, проблема заключается в том, что BLF не получает импортировано в CANalyzer правильно. Кто-нибудь пробовал это раньше или у вас есть предложения, что попробовать? Я действительно никогда не использовал VBS, поэтому мне трудно найти и устранить неисправности кода.

Вот мой код, как я его написал. Для файла BAT:

for /F %%x in ('cd') do for %%i in (*.blf) do c:\windows\system32\wscript.exe canalyzer_convert.vbs %%i %%x

Для сценария VBS:

'-----------------------------------------------------------------------------
' converts the filenames which are passed via startup parameter to MAT files with the help of CANalyzer
'-----------------------------------------------------------------------------
Dim src_file, dst_file, pos

Set App         = CreateObject("CANalyzer.Application")
  Set Measurement = App.Measurement
  Set args        = WScript.Arguments

  ' read first command line parameter
  arg0=args.Item(0)
  arg1=args.Item(1)

  If Measurement.Running Then
    Measurement.Stop
  End If

  Wscript.Sleep 500

  '---------------------------------------------------------------------------
'  you have to create an empty CANalyzer configuration and specify the path and file name below
'-----------------------------------------------------------------------------
  App.Open("c:\CANalyzer\empty_config.cfg")
'-----------------------------------------------------------------------------
' create destination file name and append .mat   -- you could change this to different file format that is supported by CANalyzer
' next line has to be cut down to  src_file="" & arg0 or  src_file=arg0 to avoid adding folder name to file name, but this script still crashes
  src_file=arg0
  dst_file=src_file & ".mat"

  Set Logging  = App.Configuration.OnlineSetup.LoggingCollection(1)
  Set Exporter = Logging.Exporter

  With Exporter.Sources
    .Clear
    .Add(src_file)
  End With

  ' Load file
  Exporter.Load

  With Exporter.Destinations
    .Clear
    .Add(dst_file)
  End With    

  Exporter.Save True

  App.Quit
  Set Exporter = Nothing
  Set Logging  = Nothing
  Set App      = Nothing
  Set args     = Nothing
  Set Measurement = Nothing

Если вы сравните мой с ответом другого поток, вы увидите, что мне пришлось удалить информацию arg1 из этой строки

src_file=arg1 & "" & arg0

Если я не удаляю arg1 оттуда, тогда CANalyzer пытается импортировать BLF-файл, который также содержит имя папки в имени файла и приводит к сбою сценария. Я думаю, что это может вызвать проблемы с

Set Logging = App.Configuration.OnlineSetup.LoggingCollection(1)

, потому что эта строка ссылается на

arg1=args.Item(1)

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

...