Jak na: LTE v2
Tento článek ukazuje, jak převést existující firmware zařízení CHESTER na LTE v2 a Cloud v2.
LTE v2 používá novější protokol nad UDP, který podporuje zprávy přes downlink a sám se stará o fragmentaci, potvrzování a autentizaci paketů (autentizačním kódem zprávy založeným na SHA-256). Protokol popisuje stránka Protokol zařízení (FLAP).
Zprávy přes downlink, včetně konfiguračních, můžete posílat přes API nebo z uživatelského rozhraní HARDWARIO Cloud v2.
Konfigurační zprávy app config ... můžete poslat do každého zařízení s LTE v2. Do aplikace nemusíte nic přidávat, o vše se postará subsystém ctr_cloud.
Všechny katalogové aplikace ve složce applications/* v CHESTER SDK už jsou převedené na Cloud v2, takže se jimi můžete inspirovat.
Příklady firmwaru CHESTER LTE v2
Demo
Jednoduchý příklad, ke kterému stačí základní deska CHESTER-M: posílá data uplinkem a downlinkem přijímá příkazy pro ovládání LED nebo změnu konfigurace.
Až aktualizujete firmware modemu LTE na verzi v1.7.0 nebo vyšší, nahrajte do MCU APP/BLE aplikaci CHESTER Demo nástrojem HARDWARIO CLI příkazem:
hardwario chester app flash f702b81a61a54cd984b4ee0e594e65df
https://github.com/hardwario/chester-sdk/tree/main/applications/demo
CHESTER Control
Jde o vylepšenou aplikaci CHESTER Input.
Až aktualizujete firmware modemu LTE na verzi v1.7.0 nebo vyšší, nahrajte do MCU APP/BLE aplikaci CHESTER Control nástrojem HARDWARIO CLI příkazem:
hardwario chester app flash a1201384db424cb394b5e9130293f708
https://github.com/hardwario/chester-sdk/tree/main/applications/control
- Přidány rekonfigurovatelné vstupy: kterýkoli ze 4 vstupů můžete přenastavit na měření napětí nebo proudu, čítání impulzů nebo reakci na změnu logické úrovně.
- Přidána možnost řízení: modul CHESTER-X4 ve slotu B spíná 4 výstupy napájené z externího stejnosměrného zdroje.
Projekt obsahuje i ukázkové skripty, které ukazují, jak pomocí curl posílat downlinkem konfiguraci a zprávy.
Konfigurace je v aplikaci CHESTER Control definovaná makry: parametry definujete jen v souboru app_config.h a obsluhu nastavení, příkazy shellu a nápovědu z nich vygenerují makra.
Ostatní katalogové aplikace
Všechny katalogové aplikace ve složce applications/* v CHESTER SDK už jsou převedené na Cloud v2, takže se jimi můžete inspirovat. Můžete také použít hotový firmware.
Změny pro LTE v2
Nahrání firmwaru modemu LTE
Modem LTE je potřeba aktualizovat na verzi v1.7.0 nebo vyšší. Tento firmware není zpětně kompatibilní s verzí v1.3.0, která slouží jen pro starší LTE v1.
Postupujte podle článku Modem LTE přes J-Link a stáhněte firmware v1.7.0.
Konfigurace projektu
Do souboru prj.conf přidejte CONFIG_CTR_CLOUD=y.
V souboru CMakeLists.txt změňte shield z ctr_lte na ctr_lte_v2.
Dekodéry a enkodéry
Jako příklad, jak nové soubory kodeků vypadají, použijte projekty Demo a CHESTER Control.
Ve složce codec aktualizujte cbor-decoder.yaml a volitelně vytvořte cbor-encoder.yaml.
V souborech .yaml enkodéru a dekodéru se změnilo toto:
- Přidána hlavička.
- Jsou plně hierarchické: definujete celý strom, ze kterého pak vznikne JSON.
- Modifikátory jako
div,fpp,key,tso,… mají teď předponu$.
Ze souborů YAML se příkazem west gen-codec vygeneruje hlavičkový soubor C (.h). Příkaz spusťte ve složce aplikace (tam, kde spouštíte west build).
Místo do se YAML teď generuje do souboru msg_key.hsrc/app_codec.h.
Upravte app_cbor.c podle nových hierarchických definic. Úrovně se oddělují dvojitým podtržítkem, například CODEC_KEY_E_NETWORK__PARAMETER__EEST.
Nezapomeňte také vložit nový hlavičkový soubor #include "app_codec.h".
Inicializace
S LTE v2 jsme přidali další vrstvu ctr_cloud, kterou používáte místo .ctr_lte
Do souboru app_init.c přidejte #include <chester/ctr_cloud.h> a použijte ctr_cloud_init() místo .ctr_lte_start()
Volitelně můžete:
- Funkcí
ctr_cloud_set_callback()nastavit callback pro zprávy přes downlink. - Funkcí
ctr_cloud_set_pull_interval()nastavit interval dotazování, tedy jak často se zařízení CHESTER samo ptá cloudu na čekající zprávy přes downlink. - Použít
ctr_cloud_wait_initialized(K_FOREVER), které pozastaví hlavní úlohu, dokud se nenaváže spojení s cloudem a neodešlou se všechny kodeky a konfigurace.
Odesílání dat
Místo nyní volejte ctr_lte_send()ctr_cloud_send(). Vložte nový hlavičkový soubor #include <chester/ctr_cloud.h>.
V projektu Demo jsme také odstranili soubor app_send.c, protože jen vytvářel nový worker, který nebyl potřeba. Odesílání je nyní v app_work.c.
Funkce ctr_cloud_send() je teď blokující, takže z návratového kódu poznáte, jestli se data odeslala. Callback už není potřeba, a odpadá tak i složitost asynchronního zpracování.
IP a port
Pro SIM karty Vodafone použijte APN hardwario, IP 192.168.192.4 a port 5002. Nepoužívejte předchozí název APN .hardwario.com
U ostatních operátorů jdou data přes veřejný internet, proto nastavte veřejnou IP adresu serveru 20.101.123.47; port zůstává stejný (5002).