Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Kinetis работа с сокетами и JSON
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM > Kinetis
whiteud
Подскажите такую вещь, заказал FRDM-K66F, пока она идет начал копаться в API, работа с TCP насколько понимаю там довольно подробно описана, но интересует работа с JSON.

Я так понимаю, SDK у NXP довольно обширная и там реализовано практически все что может потребоваться. Планирую следующий сценарий использования: MQX внутри, открываем сокет, по IP слушаем порт, принимаем JSON, выполняем некоторые манипуляции с подключенным по I2C устройством, получаем от него данные, шлем дальше на другой TCP порт. В целом с такими задачами справится практически любое железо, но NXP был заманчив именно из-за SDK и MQX, однако начал рыть мануалы и нигде ничего по JSON найти не смог, может плохо искал, а может выбрал не подходящую под задачи железку? Помогите советом плз.
whiteud
Ещё момент, собранные по json запросы нужно будет собирать в очередь, эту очередь обрабатывать отдельной задачей с более низким приоритетом, полученные в результате данные класть ещё в одну очередь, которую будет обрабатывать другая задача ещё с более низким приоритетом, которая уже будет рассылать по tcp бинарные пакеты с контролем доставки. Вопрос: очереди в mqx сгодятся под это или придётся что-то своё изобретать?

Возможно ли как-то через загрузчик обновлять ПО скачивая прошивки по сети?
AlexandrY
Цитата(whiteud @ Dec 26 2016, 18:31) *
Ещё момент, собранные по json запросы нужно будет собирать в очередь, эту очередь обрабатывать отдельной задачей с более низким приоритетом, полученные в результате данные класть ещё в одну очередь, которую будет обрабатывать другая задача ещё с более низким приоритетом, которая уже будет рассылать по tcp бинарные пакеты с контролем доставки. Вопрос: очереди в mqx сгодятся под это или придётся что-то своё изобретать?

Возможно ли как-то через загрузчик обновлять ПО скачивая прошивки по сети?


В смысле, текстовые JSON строки собираетесь пересылать между задачами внутри микроконтроллера?
И размещать их целиком в очереди?

Что-то очень расточительная идея.
JSON ну никак не подходит пря протокола межзадачных сообщений.
whiteud
Цитата(AlexandrY @ Dec 26 2016, 17:17) *
В смысле, текстовые JSON строки собираетесь пересылать между задачами внутри микроконтроллера?
И размещать их целиком в очереди?

Что-то очень расточительная идея.
JSON ну никак не подходит пря протокола межзадачных сообщений.

Нет-нет, json будет на входе приходить, в очередь попадать будет уже распаршенный конечно же на бинарную структуру, внутри уже работа с ней пойдёт, только на входе и выходе json (для веб приложения). Json на входе будет весить около 1-2кбайт

Насколько выбранный камушек подходит под мои задачи?
AlexandrY
Цитата(whiteud @ Dec 26 2016, 19:22) *
Нет-нет, json будет на входе приходить, в очередь попадать будет уже распаршенный конечно же на бинарную структуру, внутри уже работа с ней пойдёт, только на входе и выходе json (для веб приложения). Json на входе будет весить около 1-2кбайт

Насколько выбранный камушек подходит под мои задачи?


На 66-ом я сейчас много чего делаю. От управления двигателями до елочных гирлянд с управлением голосом. Кстати тоже работаю над связью с облаками. JSON найти не проблема.
Парсеры JSON есть и в проекте mbed, и у Keila-а в его пакете middleware и еще у кучи производителей микроконтроллеров и открытых RTOS.
Проблема выбрать лучший.
Я уже издавна базируюсь на такой реализации - https://github.com/lloyd/yajl
Но вот в этой операционке https://github.com/apache/incubator-mynewt-core есть вроде бы более адаптированный для embedded вариант.
whiteud
Цитата(AlexandrY @ Dec 26 2016, 17:57) *
На 66-ом я сейчас много чего делаю. От управления двигателями до елочных гирлянд с управлением голосом. Кстати тоже работаю над связью с облаками. JSON найти не проблема.
Пасреры JSON есть и в проекте mbed, и у Keila-а в его пакете middleware и еще у кучи производителей микроконтроллеров и открытых RTOS.
Проблема выбрать лучший.
Я уже издавна базируюсь на такой реализации - https://github.com/lloyd/yajl
Но вот в этой операционке https://github.com/apache/incubator-mynewt-core есть вроде бы более адаптированный для embedded вариант.


О, читал о ней ) спасибо. А сложно будет ее в 66ой собрать?
У меня не для облака json, он выбран как удобный вариант общения с устройством для веб разработчиков, почему-то именно его все хотят видеть в железе, и чтобы обязательно без драйверов обращаться по сети.
Для меня ещё важна возможность обновления ПО в камне без участия пользователя по сети, это реально реализовать?
AlexandrY
Цитата(whiteud @ Dec 26 2016, 20:01) *
О, читал о ней ) спасибо. А сложно будет ее в 66ой собрать?
Для меня ещё важна возможность обновления ПО в камне без участия пользователя по сети, это реально реализовать?


Она собрана под 64-й , а это практически аналог 66-ого.
Но не вижу сильного мотива.
Там главная ценность в полностью открытом BLE стеке. Но этот BLE стек работает только с Nordic-ом.
Отладочных плагинов под IAR или Keil или даже Eclipse не имеет.

Shell правда есть, но нет ничего про USB.
Это по сути узкая заточка под IoT, но не адаптированная для быстрой разработки.

Апгрейд по сети я делаю только с наличием SD карты или serial FLASH для промежуточного хранения файлов. Напрямую не использую.
Т.е. сначала качаю и сохраняю образ, потом рестартую и загрузчик со своей файловой системой разжимает, распаковывает и прошивает.
whiteud
Нашел на сайте NXP в релиз ноутс к MQX 5 поддержку легковесного парсера JSON и cJSON, но похоже эта версия идет платно, в отличае от MQX Classic, цена какая-то заоблачная. Я ничего не попутал?
AlexandrY
Цитата(whiteud @ Dec 27 2016, 08:38) *
Нашел на сайте NXP в релиз ноутс к MQX 5 поддержку легковесного парсера JSON и cJSON, но похоже эта версия идет платно, в отличае от MQX Classic, цена какая-то заоблачная. Я ничего не попутал?


Не, не попутал.

whiteud
Цитата(AlexandrY @ Dec 27 2016, 09:38) *
Не, не попутал.

Они кардинально отличаются? QNX Classic и QNX 5 ? Или речь идет о более старой версии и более новой?
AlexandrY
Цитата(whiteud @ Dec 27 2016, 11:53) *
Они кардинально отличаются? QNX Classic и QNX 5 ? Или речь идет о более старой версии и более новой?


Откуда ж я знаю?
Я не покупал MQX 5. Судя по тому что они пишут, то был проведен рефакторинг, т.е. скорее всего изменили структуру хидеров.
А хидеры у них уж очень заморочены.
Добавили IPv6 c SSL, но этого добра и на стороне хватает, JSON вообще мелочь.

Явно не стоит этих денег.
whiteud
Цитата(AlexandrY @ Dec 27 2016, 10:12) *
Откуда ж я знаю?
Я не покупал MQX 5. Судя по тому что они пишут, то был проведен рефакторинг, т.е. скорее всего изменили структуру хидеров.
А хидеры у них уж очень заморочены.
Добавили IPv6 c SSL, но этого добра и на стороне хватает, JSON вообще мелочь.

Явно не стоит этих денег.



Спасибо все понятно sm.gif

Есть еще один вопрос, правда немного не в топик, никак на него ответа не могу найти

Возможно ли без отладочной платы (FRDM-K66F, еще не долетела до меня, но может потребоваться коллегам) использовать какую-нибудь эмуляцию FRDM + MQX? Например для отладки по JSON парсингу, создавать TCP сокет и отправлять туда JSON? Логистика после НГ довольно печальная, посылка серьезно задерживается, а время терять не хочется...

Заранее спасибо
AlexandrY
Цитата(whiteud @ Jan 10 2017, 13:12) *
Возможно ли без отладочной платы (FRDM-K66F, еще не долетела до меня, но может потребоваться коллегам) использовать какую-нибудь эмуляцию FRDM + MQX? Например для отладки по JSON парсингу, создавать TCP сокет и отправлять туда JSON? Логистика после НГ довольно печальная, посылка серьезно задерживается, а время терять не хочется...

Не слышал про такие эмуляторы.
Единственно что можно было бы предпринять это взять порт для PC от uCOS и приладить к MQX.
Я тестирую embedded алгоритмы иногда в Visual Studio.
whiteud
Цитата(AlexandrY @ Jan 10 2017, 11:46) *
Я тестирую embedded алгоритмы иногда в Visual Studio.


А какой тип проекта подойдет под это? Их потом не приходится переписывать? там же свой SDK...
покопался, пишут что симуляторы есть http://www.utasker.com/kinetis/FRDM-K66F.html
AlexandrY
Цитата(whiteud @ Jan 12 2017, 07:57) *
А какой тип проекта подойдет под это? Их потом не приходится переписывать? там же свой SDK...
покопался, пишут что симуляторы есть http://www.utasker.com/kinetis/FRDM-K66F.html


Так это друга операционка - µTasker
Вы в ней не найдете ничего чего бы не было в MQX, но в µTasker нет таких важных вещей как FreeMaster, библиотеки сенсорного облака, управления моторами, GUI PEG и проч.

Кстати, я не подумал, но вы же действительно можете запустить свой код с MQX в симуляторе IAR или Keil.
Я симуляторами не пользуюсь, поскольку это лишний этап в моем случае.

В Visual Studio я отлаживаю алгоритмы не взаимодействующие напрямик с периферией. Алгоритмы берут данные из памяти и сохраняют их туда же.
whiteud
Цитата(AlexandrY @ Jan 12 2017, 07:07) *
Так это друга операционка - µTasker
Вы в ней не найдете ничего чего бы не было в MQX, но в µTasker нет таких важных вещей как FreeMaster, библиотеки сенсорного облака, управления моторами, GUI PEG и проч.

Кстати, я не подумал, но вы же действительно можете запустить свой код с MQX в симуляторе IAR или Keil.
Я симуляторами не пользуюсь, поскольку это лишний этап в моем случае.

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


Ага, я в процессе прочтения документашки по uTasker догадался что это не то, но там же на форуме вариант был с QEMU
Цитата
Hi Alexandros,
a simulator is not included in KDS. But there is QEMU which you could use, see The GNU ARM Eclipse QEMU .

I hope this helps,
Erich


можно его попробовать, вот кстати на счет IAR и Keil есть где почитать? тоже интересно что там, но хотелось бы KDS использовать, как нативное бесплатное решение
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.