Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

RQ: MQTT client-tool(win) & library(emb) -моля, препоръчайте
http://mcu-bg.com/mcu_site/viewtopic.php?f=14&t=15554
Страница 1 от 1

Автор:  NikB [ Сря Окт 18, 2017 5:41 pm ]
Заглавие:  RQ: MQTT client-tool(win) & library(emb) -моля, препоръчайте

Каня се да имплементирам MQTT в малък девайс.

1. Моля, пепоръчайте някой простичък клиентски тул (Win), който да :
- създава / публикува някакъв (задаван) контекст;
- да следи за (задаван) контенес.

И, да разширя питането:
2. За сега съм се спрял на mqtt библиотеката от BorgnixSDK: тук https://github.com/Orientsoft/BorgnixSD ... /stm32f40x.
(Май е единствената на C, а не на CPP)
Ще се наложи да се преработи (примерно, друг TCP стек).

Ако имате препоръки, бележки или критики - приемем с благодарност :)

Благодаря!

Автор:  gicho [ Сря Окт 18, 2017 8:25 pm ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

Сега ще огледам тая библиотека дето си я избрал, но аз ползвам Eclipse Paho embedded C клиент библиотеката. Много чисто C, много добре написан код (май трябва да спомена че съм и голям фен - ама то се разбира от казаното).
Инструменти за ПЦ колкото искаш - MQTT lens, MQTT box, абе кой каквото му харесва. Там изборът е огромен.
А това че искаш да "публикува" и "следи" изчерпва MQTT протокола, то няма какво друго да се иска :-)
Всъщност е интересно с какъв TCPIP стек ще го ползваш. За пахо-то няма значка, но за другите обикновено има.

Автор:  TheWizard [ Сря Окт 18, 2017 10:14 pm ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

тази библиотека дето си я паснал си е Paho...
оригинала е тук:
https://github.com/eclipse/paho.mqtt.embedded-c
малко е шибано cycle() с тайм-аута на сокета та трябва да се напасва за тср стека... иначе си бачка ок

има един проблем при бавни марежи(2G)
като публикуваш съобщение докато чакаш аск ако дойде мессаге може да дропне cycle() щото чака едно а идва друго

едит: а PUB за WIN има в москитото

Автор:  gicho [ Чет Окт 19, 2017 9:38 am ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

Предполагам че той мисля да ползва това:
https://github.com/Orientsoft/BorgnixSDK-STM32/blob/master/rtt/bsp/stm32f40x/applications/mqtt.c
Иначе защо е постнал тоя линк ...

Автор:  NikB [ Чет Окт 19, 2017 10:31 am ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

Да, така мислех, но ще ползвам оригиналния източник. Още повече, че трябва да стъпя на съществуващо TCP

Автор:  ДедоБоре [ Чет Окт 19, 2017 1:24 pm ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

днес се изспами реклама на MQX 5
Цитат:
We are happy to announce that MQX RTOS v5 is now available with new product support for Kinetis MCUs and i.MX applications processors from NXP, providing the protocols and utilities ideal for your next great IoT design. New features include:

IPv6 compliant protocols
MQTT and REST protocols for IoT
JSON Parser, cJSON Parser/Framer, lightweight XML Parser/Framer, and zlib Compression/ Decompression utility
View the video to learn more

In addition, we have developed customized resolutions to address two reported vulnerabilities in MQX RTOS that may result in fault or denial of service.


DNS Resolver vulnerability – MQX v4.1 and earlier versions
DHCP client vulnerability – All versions of MQX


предупреждавам, че е за пораснали момченца

Автор:  woody [ Чет Окт 19, 2017 4:43 pm ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

Как се разви ситуацията с лицензите? Успя ли да се ориентираш?

Автор:  ДедоБоре [ Чет Окт 19, 2017 5:19 pm ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

ситуацията е като във "вашингтонгското блато" - не ясно с кого да се говори, нито ако ти каже нещо, че е вярно.
всички известни персони от миналото им смениха пощите с куалкомски. ама е нещо като черна дупка - пощите заминават, сървъра отговаря ОК, и нищо не се връща. отделно, доста народ си намери друга работа.

загубеняците (лигъл департамента в куалком се нарича LOST) май още не са стигнали до точно тези малки буквички.
едните не са сигурни още, че са ги купили, другите не са разбрали какво са си купили, и май всички вкупом се чудят каква е сделката.

не мисля, че и специализиран адвокат за $1000 на час може да каже нещо ангажиращо. първия лиценз беше от freescale и беше ясен. после NXP добавиха малко неопределеност, но ентропията във вселената си остана константа, и като че ли нямаше промяна в духа на лиценза. на мен не ми стигат познанията по синонимно осукване на английски и мога само да гледам тавана, евентуално със замислен поглед.

но дори и Оранжевия, докато си пие кафето, да туитне някоя сутрин относно лиценза, това ще отразява само съненото състояние на разфокусираното му его.

Автор:  NikB [ Пон Окт 23, 2017 11:54 am ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

Първо, благодаря на gicho - винаги е точен :) помогана ми много - оригиналът на Eclipse Paho embedded C е по-лесен за ползване от копието, на което бях изтеглил (а и е по-нов)

За туловете - също благодаря - бях ги мернал, но всички ми изглеждаха еднакви и нямах критерий кои да ползвам.
Така, че ми беше много полезно :).


Днес започнах да интегрирам.


Та питането ми от къде да прочета какво трябва да прави платформено-зависимата част?
Погледах сорса, но не се ориентирам добре, а и не мога да намеря за каквато и да е платформа, за да гледам, като пиша за моята.
За апаратно-зависимата част имам избор между stm32f10x и емулацията му под Win.

МОЛБАТА МИ е да ме насочите от къде да прочета (или да видя примери за други платформи) за тая част:


Цитат:
/* The Platform specific header must define the Network and Timer structures and functions
* which operate on them.
*
typedef struct Network
{
int (*mqttread)(Network*, unsigned char* read_buffer, int, int);
int (*mqttwrite)(Network*, unsigned char* send_buffer, int, int);
} Network;*/

/* The Timer structure must be defined in the platform specific header,
* and have the following functions to operate on it. */
extern void TimerInit(Timer*);
extern char TimerIsExpired(Timer*);
extern void TimerCountdownMS(Timer*, unsigned int);
extern void TimerCountdown(Timer*, unsigned int);
extern int TimerLeftMS(Timer*);


ПП (дано не бъркам в общата постановка :))
За сега съм добавил paho mqtt библиотеката, а като main ползвам от пакета
mqtt_test1.c
mqtt_test1.h
- тестовете минават, но те са само сериализация и десериализация.

КОГАТО ДОБАВЯ
MQTTClient.c
MQTTClient.h
стигам до момента, в който очаква апаратнозависимите части.

Автор:  Nikola Kirov [ Пон Окт 23, 2017 3:23 pm ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

Аз се мъчих да го проумея как да се интегрира, но нещо не се оправих, видях че има разни пропуски в тази библиотека и се хванах да пиша моя библиотека.
След месец яко копане се получи :( А изглеждаше лесно.

Автор:  NikB [ Пон Окт 23, 2017 3:28 pm ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

Nikola Kirov написа:
Аз се мъчих да го проумея как да се интегрира, но нещо не се оправих, видях че има разни пропуски в тази библиотека и се хванах да пиша моя библиотека.
След месец яко копане се получи :( А изглеждаше лесно.

Т.е. да се отачйвам :).
Ти за каква платформа я прави?
Някакви условия за споделяне? :)

Автор:  Nikola Kirov [ Пон Окт 23, 2017 3:43 pm ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

Много е интегрирано в моята собствена мултиплатформена среда. Ползва маса функцоналност от нея. Даже въобще не ползвам и стандартните библиотеки на C като пиша за в нея. Сори.
Но ако закопаеш да правиш нещо твое с акъл мога да помагам.

Автор:  NikB [ Пон Окт 23, 2017 3:59 pm ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

Благодаря! :) Така ще бъде :)

Автор:  gicho [ Пон Окт 23, 2017 6:01 pm ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

Кое те притеснява? Трябва да имплементираш за твоят стек/ос/платформа две функционалности. Едната я виждаш с онова Network, другата е за време-свързани неща.
Та тия както се вижда са обявени като extern в тоя код - постни как си ги реализирал при теб - трябва да ги има направени някъде в твоя код. Ако ползваш нещо стандартно като lwip например може да се намери готов транспорта (Network), а това с времето е лесно.
Ако ти е по-удобно можеш да пробваш това:
http://www.martinhubacek.cz/arm/lwip-mqtt-client

Може да е "просветляващо" една малко парче код - "MQTTPacket" примера най-отдолу тук:
https://www.eclipse.org/paho/clients/c/embedded/
Ако си имаш твой транспорт по мрежа, т.е. нещо което може да прави TCP, няма значение с какво API, в подобен стил можеш да закачиш MQTTPacket и твоята мрежова библиотека.

Ако разгледаш примерните портове на MQTTClient, да кажем това за CC3200, също трябва да имаш просветление какво трябва да направиш - за да напишеш еквивалентен NiKB вместо CC3200 вариант (не знам за какво пишеш де - май stm32).
https://github.com/eclipse/paho.mqtt.embedded-c/blob/master/MQTTClient-C/src/cc3200/MQTTCC3200.c

Автор:  TheWizard [ Пон Окт 23, 2017 6:28 pm ]
Заглавие:  Re: RQ: MQTT client-tool(win) & library(emb) -моля, препоръч

това е едната интеграция, опростен вариант... за STM32 има много в мрежата "примери"
Код:
typedef uint_32 Timer;

....

void TimerInit(Timer * tmr) {
   *tmr /* uint_32 */ = milis();
}

void TimerInitMS(Timer * tmr, unsigned int timeout) {
   *tmr /* uint_32 */ = milis() /* uint_32 */ + timeout;
}

char TimerIsExpired(Timer * tmr) {
   s64 left = *tmr - milis();
   return (left < 0);
}

uint_32 TimerLeftMS(Timer * tmr) {
   s64 left = *tmr - milis();
   return (left < 0) ? 0 : left;
}

void TimerCountdownMS(Timer * tmr, unsigned int timeout) {
   *tmr =  milis() + timeout;
}

void TimerCountdown(Timer* tmr, unsigned int timeout) {
   *tmr = milis() + (timeout * 1000) ;
}


другата е интеграция/имплементация на socket read/write... "сложната част"
Код:
struct Network{
   int (*mqttread) (Network*, unsigned char*, int, int);
   int (*mqttwrite) (Network*, unsigned char*, int, int);
   void (*disconnect) (Network*);
   Socket socket;
};


и третата е козметика на MQTTClient.c

ето ти пример за СТМ32
https://github.com/AvengerGear/chibios- ... MQTTlwip.c

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/