Перейти к содержанию
    

Kinetis работа с сокетами и JSON

Подскажите такую вещь, заказал FRDM-K66F, пока она идет начал копаться в API, работа с TCP насколько понимаю там довольно подробно описана, но интересует работа с JSON.

 

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

Изменено пользователем whiteud

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ещё момент, собранные по json запросы нужно будет собирать в очередь, эту очередь обрабатывать отдельной задачей с более низким приоритетом, полученные в результате данные класть ещё в одну очередь, которую будет обрабатывать другая задача ещё с более низким приоритетом, которая уже будет рассылать по tcp бинарные пакеты с контролем доставки. Вопрос: очереди в mqx сгодятся под это или придётся что-то своё изобретать?

 

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

Изменено пользователем whiteud

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ещё момент, собранные по json запросы нужно будет собирать в очередь, эту очередь обрабатывать отдельной задачей с более низким приоритетом, полученные в результате данные класть ещё в одну очередь, которую будет обрабатывать другая задача ещё с более низким приоритетом, которая уже будет рассылать по tcp бинарные пакеты с контролем доставки. Вопрос: очереди в mqx сгодятся под это или придётся что-то своё изобретать?

 

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

 

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

И размещать их целиком в очереди?

 

Что-то очень расточительная идея.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

И размещать их целиком в очереди?

 

Что-то очень расточительная идея.

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

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

 

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

Изменено пользователем whiteud

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет-нет, 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 вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На 66-ом я сейчас много чего делаю. От управления двигателями до елочных гирлянд с управлением голосом. Кстати тоже работаю над связью с облаками. JSON найти не проблема.

Пасреры JSON есть и в проекте mbed, и у Keila-а в его пакете middleware и еще у кучи производителей микроконтроллеров и открытых RTOS.

Проблема выбрать лучший.

Я уже издавна базируюсь на такой реализации - https://github.com/lloyd/yajl

Но вот в этой операционке https://github.com/apache/incubator-mynewt-core есть вроде бы более адаптированный для embedded вариант.

 

О, читал о ней ) спасибо. А сложно будет ее в 66ой собрать?

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

Для меня ещё важна возможность обновления ПО в камне без участия пользователя по сети, это реально реализовать?

Изменено пользователем whiteud

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

О, читал о ней ) спасибо. А сложно будет ее в 66ой собрать?

Для меня ещё важна возможность обновления ПО в камне без участия пользователя по сети, это реально реализовать?

 

Она собрана под 64-й , а это практически аналог 66-ого.

Но не вижу сильного мотива.

Там главная ценность в полностью открытом BLE стеке. Но этот BLE стек работает только с Nordic-ом.

Отладочных плагинов под IAR или Keil или даже Eclipse не имеет.

 

Shell правда есть, но нет ничего про USB.

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

 

Апгрейд по сети я делаю только с наличием SD карты или serial FLASH для промежуточного хранения файлов. Напрямую не использую.

Т.е. сначала качаю и сохраняю образ, потом рестартую и загрузчик со своей файловой системой разжимает, распаковывает и прошивает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел на сайте NXP в релиз ноутс к MQX 5 поддержку легковесного парсера JSON и cJSON, но похоже эта версия идет платно, в отличае от MQX Classic, цена какая-то заоблачная. Я ничего не попутал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел на сайте NXP в релиз ноутс к MQX 5 поддержку легковесного парсера JSON и cJSON, но похоже эта версия идет платно, в отличае от MQX Classic, цена какая-то заоблачная. Я ничего не попутал?

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Они кардинально отличаются? QNX Classic и QNX 5 ? Или речь идет о более старой версии и более новой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Они кардинально отличаются? QNX Classic и QNX 5 ? Или речь идет о более старой версии и более новой?

 

Откуда ж я знаю?

Я не покупал MQX 5. Судя по тому что они пишут, то был проведен рефакторинг, т.е. скорее всего изменили структуру хидеров.

А хидеры у них уж очень заморочены.

Добавили IPv6 c SSL, но этого добра и на стороне хватает, JSON вообще мелочь.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Откуда ж я знаю?

Я не покупал MQX 5. Судя по тому что они пишут, то был проведен рефакторинг, т.е. скорее всего изменили структуру хидеров.

А хидеры у них уж очень заморочены.

Добавили IPv6 c SSL, но этого добра и на стороне хватает, JSON вообще мелочь.

 

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

 

 

Спасибо все понятно :)

 

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

 

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

 

Заранее спасибо

Изменено пользователем whiteud

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Не слышал про такие эмуляторы.

Единственно что можно было бы предпринять это взять порт для PC от uCOS и приладить к MQX.

Я тестирую embedded алгоритмы иногда в Visual Studio.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я тестирую embedded алгоритмы иногда в Visual Studio.

 

А какой тип проекта подойдет под это? Их потом не приходится переписывать? там же свой SDK...

покопался, пишут что симуляторы есть http://www.utasker.com/kinetis/FRDM-K66F.html

Изменено пользователем whiteud

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какой тип проекта подойдет под это? Их потом не приходится переписывать? там же свой SDK...

покопался, пишут что симуляторы есть http://www.utasker.com/kinetis/FRDM-K66F.html

 

Так это друга операционка - µTasker

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

 

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

Я симуляторами не пользуюсь, поскольку это лишний этап в моем случае.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...