Arduino Serial Commander

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Arduino Serial Commander

Сообщение Alex » Вт июн 23, 2015 8:58 pm

Arduino Serial Commander

Что это?

Это утилита, написанная на Processing (1.5.1) для передачи файлов HTML страниц и скриптов (т. е. текстовых файлов) непосредственно на SD карту Arduino Mega Server. Передача происходит «на лету», без остановки сервера и вынимания карты памяти из Ethernet Shield. На время передачи файла (~5 сек.) сервер приостанавливает свою работу, как только файл залит — продолжает работать дальше.

Бесполезна без комплиментарной части, находящийся в самой прошивке Ардуино, если только посмотреть, что Ардуино выдаёт в Serial порт. В отличие от стандартного монитора не перезапускает Ардуино.

Инсталляция
Просто в исходном коде укажите ваш порт на котором «висит» Ардуино. Ну и конечно у вас должен быть Processing (1.5.1) на компьютере. Пока работает только с файлами в своей директории.

Принцип работы
Шлёт файлы в сериал порт по определённому протоколу потоковым методом с внедрёнными маркерами мета-информации. Скетч на стороне Ардуино выделяет маркеры из потока и следует командам, содержащимся в этих маркерах. Присланную информацию в виде файла скетч записывает в корень SD карты на Ethernet Shield.

Известные баги
Иногда (редко) передача происходит с ошибками (по неизвестным причинам). Для борьбы с этим явлением введён костыль, устраняющий проблему на 99%. Требуется решение этой проблемы.

Задачи:
Устранение бага с передачей файлов
Добавление режима передачи бинарных файлов
Добавление режима передачи и приёма команд
Добавление режима работы с директориями
Вложения
arduino_serial_commander.zip
Arduino Serial Commander
(37.69 КБ) 473 скачивания
asc.png
Загрузка
asc.png (27.99 КБ) 12686 просмотров
asc2.png
Мониторинг
asc2.png (21.47 КБ) 12686 просмотров
За это сообщение автора Alex поблагодарил:
shemnik69 (Ср июн 24, 2015 7:31 am)
Рейтинг: 1.16%
alexnik100
Сообщения: 16
Зарегистрирован: Вс фев 21, 2016 8:39 am
Благодарил (а): 5 раз
Поблагодарили: 0

Re: Arduino Serial Commander

Сообщение alexnik100 » Пт мар 04, 2016 5:08 pm

Добрый день!
Скачал и разархивировал файл arduino_serial_commander.zip [37.69 КБ]
Запустил. Получил WEB-страницу отличающуюся от Вашей. Показана ниже.

Вопросы:
1. Как получить такую WEB-страницу как у Вас?
2. Как переключиться в режим Monitoring com port....?
3. Как записать файл на SD-карту?
Облазил весь форум, инструкций не нашел!
Вложения
arduino_serial_commander.jpg
arduino_serial_commander.jpg (43.72 КБ) 11609 просмотров
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Serial Commander

Сообщение Alex » Сб мар 05, 2016 12:45 pm

Добрый день!
Скачал и разархивировал файл arduino_serial_commander.zip [37.69 КБ]
Запустил. Получил WEB-страницу отличающуюся от Вашей. Показана ниже.
Скачивать утилиту не нужно. Последняя версия идёт в дистрибутиве АМС.
Вопросы:
1. Как получить такую WEB-страницу как у Вас?
Судя по вашему скриншоту, вы забыли нажать на кнопку с треугольником, запускающим скетч.
2. Как переключиться в режим Monitoring com port....?
Нажать на кнопку «Monitoring»
3. Как записать файл на SD-карту?
Облазил весь форум, инструкций не нашел!
Выбрать файл кнопкой «Open» и затем нажать на кнопку «Upload!»

Ещё нужно не забыть указать порт

http://hi-lab.ru/arduino-mega-server/do ... processing
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Serial Commander

Сообщение alexsis_76 » Пт мар 11, 2016 1:03 pm

Отлично ,будем пробовать.
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Serial Commander

Сообщение alexsis_76 » Ср мар 23, 2016 12:29 pm

Добрый день Alex.Пробую Serial Commander , столкнулся с такой проблемой,при запуске в функции
void sendWorks(
) ,
в этом месте
// Go
if (currentLine < lines.length && TRANSFER) {
transfer();
}
вылетает с ошибкой
фото в архиве внизу
Порт используется тот же что и при программировании?
Вложения
Безымянный_1.rar
(45.75 КБ) 238 скачиваний
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Serial Commander

Сообщение Alex » Пт мар 25, 2016 5:57 pm

Для начала рекомендую ознакомиться с документацией Arduino Serial Commander:

«Установка Processing»

http://hi-lab.ru/arduino-mega-server/do ... processing

«Arduino Serial Commander»

http://hi-lab.ru/arduino-mega-server/do ... -commander

Если после прочтения останутся вопросы — задавайте.
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Serial Commander

Сообщение alexsis_76 » Сб мар 26, 2016 3:03 am

Добрый день.
Утилиту запустил, работает,вопрос в следующем, при заливке файлов графический форматов иногда происходит порча файлов, они перестают открываться
происходит увеличение размера залитого файла ,при открытии в hex редакторе рядом оригинала и копии видно различие в виде цепочки левых байт (4 шт),байты могут находится в любой части файла, если их удалить(прямо в редакторе)то файл начинает нормально просматриваться,из четырех залитых файлов отказались работать два, jpeg вроде открылся но кто даст гарантию что стабильно, файлы в архиве прилагаю откроете в hex все увидите.
Второй вопрос скорость, работает очень медленно, увеличение скорости COM порта , прироста скорости не дает,хотел посмотреть что он там настраивает,не смог добраться до самого драйвера порта, готовая функция пожалуйста, залезть внутрь никак.
Вложения
архив.rar
(24.07 КБ) 249 скачиваний
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Serial Commander

Сообщение Alex » Сб мар 26, 2016 7:34 am

Добрый день.
Утилиту запустил, работает,вопрос в следующем, при заливке файлов графический форматов иногда происходит порча файлов, они перестают открываться
происходит увеличение размера залитого файла ,при открытии в hex редакторе рядом оригинала и копии видно различие в виде цепочки левых байт (4 шт),байты могут находится в любой части файла, если их удалить(прямо в редакторе)то файл начинает нормально просматриваться,из четырех залитых файлов отказались работать два, jpeg вроде открылся но кто даст гарантию что стабильно, файлы в архиве прилагаю откроете в hex все увидите.
По ссылкам, которые я дал, написано, что АСК на данный момент поддерживает передачу только текстовых файлов. Это связано с тем, что пока не удаётся передать файл точно, байт в байт. Для этого нужно перерабатывать протокол и вводить проверку передаваемой информации. Решение этой проблемы стоит в планах, на всё не хватает времени.
Второй вопрос скорость, работает очень медленно, увеличение скорости COM порта , прироста скорости не дает,хотел посмотреть что он там настраивает,не смог добраться до самого драйвера порта, готовая функция пожалуйста, залезть внутрь никак.
Возможно, медленная работа связана с задержкой после передачи каждого байта. Это временная мера, снижающая вероятность ошибок передачи.

Код: Выделить всё

void transfer() {
  boolean protect = false;

  for (int i = 0; i < binarys.length; i++) {
    if (binarys[i] == 10 && !protect) {
      sendErrorProtection();
      protect = true;
    }
    port.write(binarys[i]);
    delay(2); // !!!!!!!!!!!!!!!!!!
  } 
  currentLine = 5000;
} 
Непонятно в чём причина ошибок при передаче файлов. За всё время не нашлось ни одного грамотного специалиста, который мог бы объяснить это и решить эту проблему.
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Serial Commander

Сообщение alexsis_76 » Сб мар 26, 2016 8:46 am

По ссылкам, которые я дал, написано, что АСК на данный момент поддерживает передачу только текстовых файлов. Это связано с тем, что пока не удаётся передать файл точно, байт в байт. Для этого нужно перерабатывать протокол и вводить проверку передаваемой информации. Решение этой проблемы стоит в планах, на всё не хватает времени.
понятно, покопался в коде Processinga все довольно мутно, цепочка левых байт скорей всего глюк самой среды, об этом говорит ее постоянство,сомневаюсь что они возникают в контроллере или при передачи по UART, меня уже посещает мысль переписать все это на дельфи, и избавится от прокладки под названием jawa машина.
Да этот код я видел.
Непонятно в чём причина ошибок при передаче файлов. За всё время не нашлось ни одного грамотного специалиста, который мог бы объяснить это и решить эту проблему.
попробуем решать.
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Serial Commander

Сообщение alexsis_76 » Сб мар 26, 2016 3:05 pm

Вообщем покопался в коде, чето как то все странно , решил попробовать переписать утилиту на дельфи(во вложении скрин),на реальном устройстве пока не испытывал , модно загрузить отдельно текстовый файл, отдельно графический, открытый графический файл отображается в виде картинки, грузит с любого места, файлы не портит, при сохранении открытых файлов ,вновь созданные копии полностью работоспособны, остается испытать на устройстве.
Безымянный.png
Безымянный.png (415.04 КБ) 11177 просмотров
Ответить