Я запустил приложение для загрузки шестнадцатеричных файлов Arduino в ОС Windows и Ma c. Мне нравится работать с фреймворком NET, поэтому я впервые подумал о тестировании NET .Core3.
Сначала я написал программу на своем компьютере Windows с Visual Studio 2019, и она отлично работает. В моей папке приложения также находится бинарный файл avrdude, avrdude.conf и шестнадцатеричный файл. Windows версия приложения просто может использовать дополнительные файлы (avrdude, conf & hex) с помощью следующей команды:
Process avr_run = new Process();
avr_run.StartInfo.FileName = "CMD.exe";
avr_run.StartInfo.Arguments = "/c avrdude -Cavrdude.conf -v -patmega32u4 -cavr109 -P" +
getPort +
" -b57600 -D -Uflash:w:_TEST.ino.hex:i";
avr_run.Start();
avr_run.WaitForExit();
avr_run.Close();
После окончания версии windows я работал на MacOS-порту , Я создал OSX на виртуальной машине и протестировал свое приложение. Почти все работало из коробки (как и ожидалось), но команда использовать avrdude - нет. В начале это не сработало. Теперь я понял, что команда работает, когда я копирую дополнительные файлы в указанное c место (например, Рабочий стол на моей виртуальной Ma c). Таким образом, фактический код для выполнения avrdude выглядит следующим образом:
Process avr_run = new Process();
avr_run.StartInfo.FileName = "bash";
string path = "/users/testmac/Desktop/avrdude -C/users/testmac/Desktop/avrdude.conf -v -patmega32u4 -cavr109 -P" +
getPort +
" -b57600 -D -Uflash:w:_TEST.ino.hex:i";
avr_run.StartInfo.Arguments = $"-c \"{path}\"";
avr_run.Start();
avr_run.WaitForExit();
avr_run.Close();
Но я не получаю команду, работающую на использование avrdude & avrdude.conf из папки приложения. На Windows это работает, просто устанавливая имя, как я делал в первом примере кода. Но если я изменю свою строку «путь» на следующее:
string path = "avrdude -Cavrdude.conf -v -patmega32u4 -cavr109 -P" +
getPort +
" -b57600 -D -Uflash:w:_TEST.ino.hex:i";
Кажется, что bash не распознает использование avrdude внутри папки программ. Что я тут не так делаю?
Спасибо.