|
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 9
|
|
Проблема с библиотекой SerialPort07.04.2021, 15:00. Показов 2485. Ответов 12
Здрасте.
Пытаюсь написать приложение (авиаприборы) для андроида в среде UNITY. Опыта программирования на СИ-подобных языках - нет. Немного пишу на Ассемблере для AVR-микроконтроллеров - представление о программировании в целом есть. Задача: В COM-Port андроид-устройства поступают бинарные данные ( Посылаю из микроконтроллера пакеты данных с телеметрией, в собственном протоколе. ) Пакеты разделены временными паузами. На данный момент это два чередующихся пакета. ( В дальнейшем пакетов будет больше ) Каждый пакет имеет двухбайтовый заголовок. Требуется по приходу пакета, сравнивать CRC, определять тип пакета, расшифровывать данные и выводить на дисплей. До этого писал ( пытался ) в VisualStudio - там вопросов не возникло с приемом данных ( библиотеки работают ) Но VisualStudio скорей всего не очень подходит для работы с графикой.. В дальнейшем к данным будут привязаны 3D объекты (авиаприборы) - по этому и была выбрана среда UNITY. Но в Unity проблема с библиотеками работающими с ком-портом. (кастрированная библа Serial-Port'а) Данные приходится опрашивать вручную.. Хочется, что функция вызывалась по приходу каждого пакета. На зарубежных форумах пишут, что нужно подключать сторонние либы либо отказываться от юнити... Полез в сеть искать либы: Нашел какую то либу от erdemkosk но ни как не пойму как ее подключить и использовать... никакой инструкции нет, и опыта нет - и я в тупике библа тут https://github.com/erdemkosk/U... ortUtility Потом установил библу Ardity ( ранее назывался SerialCommUnity ) установил, попробовал собрать по примеру, который прилагается в "Setup Guide" Все работает, все замечательно, НО: 1) данные расшифровываются юникодом, а мне этого не надо - мне бы в HEX 2) программа ждет символов "переноса каретки" (CR+LF) а в моем случае нет таких символов, у меня максимум что есть временная пауза между пакетами, и довольно длительная, в будущем ее может и не стать - я планировал отслеживать сообщения по заголовку пакета... Ardity (покопавшись нашел внутри нужный скрипт) позволяет читать компорт в хекс-виде и с временным разделителем между сообщениями, но запустить программу с данным кодом я не смог. Инструкций снова нет, примеров в сети я не нашел и снова в тупике.. Других бесплатных библиотек я не нашел. Есть платные, есть дорогие и не очень.. Ест платная версия Unity.... Но нигде нет гарантий, что там будет то что мне надо.. А если и будет, то не факт что я быстро с этим разберусь.. В общем я в тупике каком то... Выслушаю все Ваши предложения... Unity платный наверное нет смысла... А вот библу-платную какую то возможно.. А еще бы лучше с примерами того как надо... Может и Unity не совсем удачная среда ???? Я уж подумывал может задание кинуть на vsesdal.com или author24.ru или kwork.ru и посмотреть кто что предложит... С одной стороны хочется приложение готовое, с другой стороны хочется самому во всем разобраться. К тому же допиливать придется многое... Это только начало. А бюджет совсем небольшой - живу в России - работаю руками.. А это так - хобби.. Заранее всем благодарен.
0
|
|
| 07.04.2021, 15:00 | |
|
Ответы с готовыми решениями:
12
SerialPort. Подскажите в чем проблема? Проблема с библиотекой C++ Проблема с библиотекой Selenium |
|
767 / 495 / 216
Регистрация: 05.04.2015
Сообщений: 2,075
|
||
| 07.04.2021, 17:49 | ||
|
я так понимаю вам надо просто сделать красивые элементы интерфеиса, что бы вы через них выводили ваши данные? Элементы то на экран можно нарисовать. Тут тоже появятся сложности из за незнания языка с#, не говоря уж о правильнои отправке/получении пакетов. В том что бы получиось так как нужно, нужно работать со скриптами.
0
|
||
|
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
|
|
| 07.04.2021, 18:10 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 9
|
||||||||
| 07.04.2021, 20:44 [ТС] | ||||||||
|
По этому я тут и прошу помощи... Я не знаю что мне дальше делать. обработчик по приему не срабатывает!
но в юнити нет.
0
|
||||||||
|
767 / 495 / 216
Регистрация: 05.04.2015
Сообщений: 2,075
|
|
| 07.04.2021, 22:11 | |
|
0
|
|
|
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
|
|
| 07.04.2021, 22:13 | |
|
В консоль ошибки какие-то пишет?
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 9
|
|||||||
| 07.04.2021, 23:37 [ТС] | |||||||
|
Я же говорю - проблема известная. эта функция port.DataReceived += new SerialDataReceivedEventHandler(Myport_Da taReceived)в UNITY не работает можно лишь побайтно опрашивать порт.. вот пример: если закоментить "void Update()", то в логи выводится "start" "port is open" и все... Данные из ком-порта не выводятся ни в каком виде.
то получаем опрос ком-порта раз за кадр и в лог выводится побайтный опрос порта. Но ведь это не удобно.
0
|
|||||||
|
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
|
|
| 08.04.2021, 00:55 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 9
|
||
| 08.04.2021, 01:43 [ТС] | ||
|
и не только - вот например тут https://stackoverflow.com/ques... y-in-unity Вопрос в другом: как быть? Или в топку юнити или либу стороннюю юзать? Если не юнити, то что? Если либу, то какую?
0
|
||
|
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
|
|
| 08.04.2021, 02:34 | |
|
Опрашивай в апдейте, или это критически неудобно?
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 9
|
||
| 08.04.2021, 10:03 [ТС] | ||
|
Подобные примеры найти не могу. Во вторых существуют сторонние библы. например в Unity-магазине попробовал бесплатную - "Ardity", работает на "пол шишки" - трабл описал в первом посте. возможно платные либы работают нормально, ну или описание к ним нормальное с примерами... А может Юнити это не та среда, которая мне нужна..
0
|
||
|
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
|
|
| 08.04.2021, 11:44 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 9
|
|
| 04.11.2021, 02:34 [ТС] | |
|
Ну вот, собственно, организовал побайтное чтение порта.
Программа написана и работает под Виндой. Пытаюсь скомпилить под андроид, и вроде бы все успешно.. Но увы на андре не считывается порт - проблема известная - пространство имен SerialPort для android выглядит иначе.. Если в настройках Юнити выбирать .NET.2.0 Standart - то выдает ошибку "пространство имен SerialPort" Если .NET.4 то компилит без проблем.. Игра запускается на андроиде, но данные с порта не поступают. Добавлено через 1 час 43 минуты Или может проблема все в другом? В разрешениях например? П.С.: другая программа, установленная на андроид получает поток данных без проблем. как по USB так и по Bluetooth
0
|
|
| 04.11.2021, 02:34 | |
|
Помогаю со студенческими работами здесь
13
Проблема с библиотекой VGAX Проблема с подключаемой библиотекой Проблема с библиотекой theano Проблема с библиотекой EhLib Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|