www.open-tager.ru

открытый лазертаг форум
Текущее время: 23 апр 2024, 15:31

Часовой пояс: UTC + 3 часа [ Летнее время ]


Реклама

Правила форума


В разделе запрещены - обсуждение оборудования не поддерживающего открытых протоколов, реклама и ссылки на готовые продукты лазертага, обсуждение политики производителей и самих производителей. Виден всем.



Начать новую тему Ответить на тему  [ Сообщений: 1076 ]  На страницу Пред.  1 ... 37, 38, 39, 40, 41, 42, 43 ... 108  След.
Автор Сообщение
 Заголовок сообщения: Re: Система Caustic
СообщениеДобавлено: 26 сен 2015, 20:57 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Alexies писал(а):
...При разработке под микроконтроллеры есть существенная проблема: создание Unit-тестов нетривиально. А вот под Андроид я, само собой, тесты использую: это существенно ускоряет разработку и поиск ошибок. Товарищи, используйте тесты (если это не очевидно и так), это очень помогает!


Вы это сейчас с кем разговариваете?
Можно как-нибудь попроще объяснить?
Что за тесты?

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Система Caustic
СообщениеДобавлено: 27 сен 2015, 01:38 
Не в сети
Старожил

Зарегистрирован: 18 мар 2015, 13:19
Сообщений: 574
Откуда: Нижний Новгород
Pingvin писал(а):

Тоже схлопотали полбу граблями?! :lol: :lol: :lol:
Структуры хотели потоком передавать?
Не прокатит.


Какими граблями, о чём Вы? :) Я, вообще говоря, не первый день программирую :) "Сериализация" - классическая задача, возникающая почти в каждом проекте. Кросс-платформенная сериализация/десериализация - задача уже нетривиальная, имеющая множество решений. Это почти всегда "ручное формирование пакетов". Я просто решил эту задачу некоторым подходящим для данной ситуации образом.

А передавать структуры "как есть" между программами, написанными на C/C++ на одной и той же платформе - можно. Но только осторожно :) Главное, понимать, что при этом происходит. Само собой это не применимо к Q_OBJECT для Qt, да и ни к какому другому полиморфному объекту. Само собой, для структуры должна быть отключена упаковка ( #pragma pack(push, 1) и т.п.), структура не должна даже содержать указателей и т.п. - ещё можно немало нюансов привести.

Pingvin писал(а):
Поэтому нужно пакеты формировать "ручками", а для этого и нужен транспортный протокол.
О чем я ранее писал, но понимания не нашёл. :?


Так у меня есть протокол передачи бинарных данных + вся инфраструктура для удобной работы с ним (это где-то 1500 строк С++-кода с комментариями, и это только для формирования/парсинга пакетов, без пересылки). Там всё более-менее по уму сделано. Он даже кроссверсионную совместимость поддерживает, как вверх, так и вниз :)
Например, чтобы послать оружию команду на воскрешение с дефолтным таймаутом и другими параметрами пакета, нужно написать одну строчку:
Код:
RCSPStream::remoteCall(rifleAddress, ConfigCodes::Rifle::Functions::rifleRespawn);


Но это протокол уровня представления, а что Вы называете "транспортным протоколом", и как это относится к сериализации, я не совсем понимаю ( https://ru.wikipedia.org/wiki/%D0%A1%D0 ... %D1%8C_OSI )

Pingvin писал(а):
С типами я тоже накалывался, хоть и на Qt пишу.

Но у меня все нормально с транспортом, слава Богу.
Могу 64 кБт плюнуть в одном пакете.
Аватарки и эмблемы так и передаю - одним пакетом.
С Андроид приложением администратора игры и приложением-клиентом для смартфона все базовые вещи так же решены.
Осталась рутина... :? :roll:


На мой взгляд, передача данных - это больше похоже на рутину... А вот как потом из этого сделать изящную игровую систему - тут придётся думать.

Pingvin писал(а):
P.S. Безумно рад, что не приходится тратить время на изучения Java, не потому что не хочу, просто время дорого.

Я потратил дня 4 на вялое изучение Java, и сейчас знаю достаточно для разработки. Всё остальное - по ходу придёт. Ведь Java проще, чем C++, но во многом похожа.

Изучать приходится не джаву, а Android. Без этого на любом языке не обойтись. Activity, Intent, Service, Handler, да просто блютус-стек - это всё только Android-specific. Ни знание C++, ни знание Java сами по себе не помогут, будет одинаково сложно. Разве что на Java управление ресурсами существенно проще, и обертки не нужны.

Также, разработка одного и того же кода на Java происходит быстрее, чем на C++ почти всегда. Другое дело, что производительность кода не та, и 3d-шутер на java как-то не очень писать :)

Pingvin писал(а):
Alexies писал(а):
...При разработке под микроконтроллеры есть существенная проблема: создание Unit-тестов нетривиально. А вот под Андроид я, само собой, тесты использую: это существенно ускоряет разработку и поиск ошибок. Товарищи, используйте тесты (если это не очевидно и так), это очень помогает!


Вы это сейчас с кем разговариваете?
Можно как-нибудь попроще объяснить?
Что за тесты?


Это я риторически, ко всем программистам мира обращаюсь :)
Я про обычные Unit-tests...
Юнит-тест - это вспомогательная программа, которая тестирует некоторые компоненты (функции или классы) основной программы.
Смысл - ускорение отладки за счёт нахождения ошибок на раннем этапе, а также и регрессионное тестирование.
Для этого есть разные подходы, на C++ (на "большом" компе, не на МК) я использую Google Test Framework, он простой. На МК, насколько я понимаю, какого-то общепринятого пути нет, приходится изобретать велосипеды.
Для джавы есть родной JUnit.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Система Caustic
СообщениеДобавлено: 27 сен 2015, 14:20 
Не в сети
Старожил

Зарегистрирован: 18 мар 2015, 13:19
Сообщений: 574
Откуда: Нижний Новгород
Появился первый наглядный результат работы с Андроидом! На смартфоне заработала кнопка "Оживить всех"!

Все компоненты работают чётко: от андроида пакет передаётся на Bluetooth-мост через HC-05 в дефолтном режиме последовательного порта, мост изменяет заголовок пакета под формат передачи по nrf (не вмешиваясь в содержимое, как и положено мосту), и передаёт по радио. Повязки успешно принимают сигнал, и отрабатывают респаун, как обычно.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Система Caustic
СообщениеДобавлено: 27 сен 2015, 15:57 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Alexies писал(а):
Так у меня есть протокол передачи бинарных данных + вся инфраструктура для удобной работы с ним (это где-то 1500 строк С++-кода с комментариями, и это только для формирования/парсинга пакетов, без пересылки). Там всё более-менее по уму сделано. Он даже кроссверсионную совместимость поддерживает, как вверх, так и вниз :)
Например, чтобы послать оружию команду на воскрешение с дефолтным таймаутом и другими параметрами пакета, нужно написать одну строчку:
Код:
RCSPStream::remoteCall(rifleAddress, ConfigCodes::Rifle::Functions::rifleRespawn);


Но это протокол уровня представления, а что Вы называете "транспортным протоколом", и как это относится к сериализации, я не совсем понимаю ( https://ru.wikipedia.org/wiki/%D0%A1%D0 ... %D1%8C_OSI )


А ваш протокол тоже закрытый?

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Система Caustic
СообщениеДобавлено: 27 сен 2015, 17:04 
Не в сети
Старожил

Зарегистрирован: 18 мар 2015, 13:19
Сообщений: 574
Откуда: Нижний Новгород
Думаю, открою в ближайшем будущем. Пока высока вероятность, что поменяется что-нибудь. Но я побаиваюсь в паблик заливать, могу Вам лично передать, если понадобится. NDA :-)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Система Caustic
СообщениеДобавлено: 27 сен 2015, 17:06 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Alexies писал(а):
могу Вам лично передать, если понадобится. NDA :-)

О, это было бы здорово!
Неразглашение обещаю.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Система Caustic
СообщениеДобавлено: 28 сен 2015, 23:50 
Не в сети
Старожил

Зарегистрирован: 18 мар 2015, 13:19
Сообщений: 574
Откуда: Нижний Новгород
Pingvin писал(а):
Alexies писал(а):
могу Вам лично передать, если понадобится. NDA :-)

О, это было бы здорово!
Неразглашение обещаю.


Тогда я ещё немного его стабилизирую, и опишу.
Там нет привязки к конкретному типу радиомодулей, так что не обязательно даже nrf24 использовать.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Система Caustic
СообщениеДобавлено: 29 сен 2015, 00:13 
Не в сети
Старожил

Зарегистрирован: 18 мар 2015, 13:19
Сообщений: 574
Откуда: Нижний Новгород
Следующий важный этап в создании андроидного пульта: моё приложение научилось сканировать сеть nrf24 и получать список всех находящихся в зоне доступа девайсов!

То есть bluetooth-мост посылает широковещательный пакет, на который все устройства отзываются, и присылают своё текстовое имя. Ну и адрес в сети, само собой. Следующий этап - непосредственно настройка устройств.
Это всё защищено от коллизий, так что большое количество устройств не должно быть проблемой :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Система Caustic
СообщениеДобавлено: 29 сен 2015, 07:00 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Alexies писал(а):
Следующий важный этап в создании андроидного пульта: моё приложение научилось сканировать сеть nrf24 и получать список всех находящихся в зоне доступа девайсов!

То есть bluetooth-мост посылает широковещательный пакет, на который все устройства отзываются, и присылают своё текстовое имя. Ну и адрес в сети, само собой. Следующий этап - непосредственно настройка устройств.
Это всё защищено от коллизий, так что большое количество устройств не должно быть проблемой :)

Здорово!

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Система Caustic
СообщениеДобавлено: 01 окт 2015, 11:37 
Не в сети
Старожил

Зарегистрирован: 18 мар 2015, 13:19
Сообщений: 574
Откуда: Нижний Новгород
Тем временем, настройка устройств с Андроида заработала!

С точки зрения пользователя пока примерно так:
1. Выбрать спаренное блютус-устройство. Телефон подключится к мосту.
2. Нажать "update devices list" - появится количество доступных устройств.
3. Нажать "change settings" - появится список устройств (названия и тип - повязка или оружие)
4. Нажать на нужное устройство, откроются доступные настройки, всё редакитируется.
5. Назать "назад" - измененные настройки автоматически зальются на девайс :)

Пока работает очень мало настроек, но это тестовый вариант, легко добавить оставшиеся


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 1076 ]  На страницу Пред.  1 ... 37, 38, 39, 40, 41, 42, 43 ... 108  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB