После того как вчера опробовал управление беспроводной камерой, вспомнил что в админке поломалось управление DSLR по USB, так что наконец-то починил и его. Теперь ещё лучше работает. Но тут встал вопрос - как полученный с внешнего фотика кадр передать на землю (т.е. в Virt2real Player).
Фотка - файл, надо передать в плеер. Файлы обычно по TCP передают, но мы не ищем лёгких путей. Тем более что в плеере у меня TCP не водится, всё на UDP. А по UDP файлы передавать тот ещё головняк. Вспомнил было про tftp, но тут же его отмёл - отдельным процессом его неинтересно запускать, а исходники ковырять - неохота. К тому же tftp хорошо работает в локалке, когда коннект нормальный, а вот в наших обычных условиях он уже не так хорошо справляется с передачей.
Погуглил на тему сабжа - нигде ничего толкового не нашёл, только вот на всех форумах где задаются подобные вопросы народ сразу начинает пальцы гнуть и вопить что "юзай TCP". А мне нафиг не сдалось каждому долбодятлу объяснять что у нас только UDP, причём как в локалке, так и через инет как проводной, так и 3G/4G, а там жопа с линком бывает, UDP теряются конкретно.
Короче, заснуть вчера не получилось - до утра просидел, упорно шкодил. К утру таки нашкодил.
На борту крутится всё та же рцборда, на земле - Virt2real Player. Между ними два независимых UDP потока - видео и телеметрия. Вот как раз в канал телеметрии и добавил ещё один тип пакетов, файлики слать. Шлются хитрым способом - для оптимизации времени загрузки. Если после отправки каждого пакета (а их длина в локалке где-то вплоть до 30000 норм работает, а вот через инет уже желательно поближе к MTU, т.к. 1300-1500 байт). Так вот, если после отправки каждого пакета ждать подтверждение о приёме - эт писец долго получается. А у меня получилось что передача примерно как у BitTorrent, кусками произвольного порядка. С рекурсивной переотправкой недошедших.
Звучит сложно, но работает на ура. При том что параллельно при этом продолжают работать остальные команды (как управления, так и телеметрии) и видео, причём видео по вайфаю у меня на тестах идёт 4 мегабита. И всё равно файлик 2-х меговый принимается стабильно за несколько секунд. Пробовал и 25 мегабайт файлик передавать (RAW с зеркалки) - грузится дольше, само собой, секунд двадцать-тридцать. Если видео отключить - само собой, грузится заметно быстрее. Но главное - фото и видеофалики любого размера доходят в целости и сохранности.
Файлики складируются в локальном каталоге, по окончании приёма сразу выводятся в штатном просмотрщике.
Но, конеш, самое главное что передача идёт по имеющемуся каналу, т.е. и через P2P работает. Короче, ура.
Всем привет, я хочу собрать аппарат который будет вытачивать из гипса разные штуки. Но перед началом хотел узнать, можно ли сделать так что бы при помощи ардуино этот аппарат вытачивал заранее созданные 3D модели без постоянного перепрограммирования ?
Гость Суббота, 10 Января, 2015 22:25 цитировать ссылка на коммент
Гость Суббота, 14 Февраля, 2015 13:04 цитировать ссылка на коммент
Гость Четверг, 18 Июня, 2015 22:32 цитировать ссылка на коммент
Gol Среда, 24 Июня, 2015 13:30 цитировать ссылка на коммент
Видел, ага. Не совсем то что нужно.