реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Kinetis работа с сокетами и JSON
whiteud
сообщение Dec 26 2016, 12:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 20-10-16
Пользователь №: 93 834



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

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

Сообщение отредактировал whiteud - Dec 26 2016, 12:32
Go to the top of the page
 
+Quote Post
whiteud
сообщение Dec 26 2016, 16:31
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 20-10-16
Пользователь №: 93 834



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

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

Сообщение отредактировал whiteud - Dec 26 2016, 16:39
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 26 2016, 17:17
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



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

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


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

Что-то очень расточительная идея.
JSON ну никак не подходит пря протокола межзадачных сообщений.
Go to the top of the page
 
+Quote Post
whiteud
сообщение Dec 26 2016, 17:22
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 20-10-16
Пользователь №: 93 834



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

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

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

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

Сообщение отредактировал whiteud - Dec 26 2016, 17:25
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 26 2016, 17:57
Сообщение #5


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(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 вариант.
Go to the top of the page
 
+Quote Post
whiteud
сообщение Dec 26 2016, 18:01
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 20-10-16
Пользователь №: 93 834



Цитата(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, он выбран как удобный вариант общения с устройством для веб разработчиков, почему-то именно его все хотят видеть в железе, и чтобы обязательно без драйверов обращаться по сети.
Для меня ещё важна возможность обновления ПО в камне без участия пользователя по сети, это реально реализовать?

Сообщение отредактировал whiteud - Dec 26 2016, 18:03
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 26 2016, 18:09
Сообщение #7


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



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


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

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

Апгрейд по сети я делаю только с наличием SD карты или serial FLASH для промежуточного хранения файлов. Напрямую не использую.
Т.е. сначала качаю и сохраняю образ, потом рестартую и загрузчик со своей файловой системой разжимает, распаковывает и прошивает.
Go to the top of the page
 
+Quote Post
whiteud
сообщение Dec 27 2016, 06:38
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 20-10-16
Пользователь №: 93 834



Нашел на сайте NXP в релиз ноутс к MQX 5 поддержку легковесного парсера JSON и cJSON, но похоже эта версия идет платно, в отличае от MQX Classic, цена какая-то заоблачная. Я ничего не попутал?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 27 2016, 09:38
Сообщение #9


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



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


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

Go to the top of the page
 
+Quote Post
whiteud
сообщение Dec 27 2016, 09:53
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 20-10-16
Пользователь №: 93 834



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

Они кардинально отличаются? QNX Classic и QNX 5 ? Или речь идет о более старой версии и более новой?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 27 2016, 10:12
Сообщение #11


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



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


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

Явно не стоит этих денег.
Go to the top of the page
 
+Quote Post
whiteud
сообщение Jan 10 2017, 11:12
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 20-10-16
Пользователь №: 93 834



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

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



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

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

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

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

Сообщение отредактировал whiteud - Jan 10 2017, 11:12
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 10 2017, 11:46
Сообщение #13


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



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

Не слышал про такие эмуляторы.
Единственно что можно было бы предпринять это взять порт для PC от uCOS и приладить к MQX.
Я тестирую embedded алгоритмы иногда в Visual Studio.
Go to the top of the page
 
+Quote Post
whiteud
сообщение Jan 12 2017, 05:57
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 20-10-16
Пользователь №: 93 834



Цитата(AlexandrY @ Jan 10 2017, 11:46) *
Я тестирую embedded алгоритмы иногда в Visual Studio.


А какой тип проекта подойдет под это? Их потом не приходится переписывать? там же свой SDK...
покопался, пишут что симуляторы есть http://www.utasker.com/kinetis/FRDM-K66F.html

Сообщение отредактировал whiteud - Jan 12 2017, 06:08
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 12 2017, 07:07
Сообщение #15


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(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 я отлаживаю алгоритмы не взаимодействующие напрямик с периферией. Алгоритмы берут данные из памяти и сохраняют их туда же.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th April 2024 - 23:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01489 секунд с 7
ELECTRONIX ©2004-2016