2015-04-10 2 views
1

Я пытаюсь использовать PHP для компиляции и загрузки эскиза Arduino через командную строку. Прямо сейчас пользователь загружает файл ino или pde через форму и переносится в каталог для последующего использования. Используя расположение загруженного файла в качестве переменной, я хотел бы, чтобы PHP запускал версию командной строки Ardunio для компиляции и загрузки.Использование popen() для загрузки эскиза ardiuno

После первоначальной попытки использовать exec() и system(), я переключился на popen(). Запуск следующего кода я могу получить Arduino открыть то закрывается без загрузки эскиза:

pclose(popen('"C:\Program Files\Arduino\arduino.exe" --port COM3 --upload "C:\sketches\uploads\cube\a\a.ino")); 

Запуск этого кода и его изменения с помощью командной строки Windows, работает, так что я знаю, что входная строка не является проблемой. Кроме того, просмотр диспетчера задач Windows показывает, что он открывается на секунду или около того, затем закрывается. Может ли кто-нибудь указать мне в правильном направлении?

ответ

0

Для popen (или любой из других функций процесса), чтобы корректно работать на ОС Windows you need to escape backslashes так:

pclose(popen('"C:\\Program Files\\Arduino\\arduino.exe" --port COM3 --upload "C:\\sketches\\uploads\\cube\\a\\a.ino"')); 

в качестве альтернативы попробуйте заменить обратный слэш с слэша. Следующий должны также работать на последние версии Windows:

pclose(popen('"C:/Program Files/Arduino/arduino.exe" --port COM3 --upload "C:/sketches/uploads/cube/a/a.ino"')); 

(фрагмент кода также отсутствующей завершающий апостроф, но я подозреваю, что это опечатка.)

+0

Спасибо за ссылку и объяснение, я теперь знать, почему и как избежать обратной косой черты. Однако проблема все еще происходит. Теперь я думаю, что это больше связано с Arduino, чем с PHP-частью вещей. Наблюдая за диспетчером задач, показывает процесс arduino (как javaw.exe), выполняющийся на системном уровне, поскольку это то, что работает Wamp, а затем перед загрузкой завершается –

Смежные вопросы