coreMQTT ライブラリ - FreeRTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

coreMQTT ライブラリ

はじめに

coreMQTT ライブラリは、MQTT (Message Queue Telemetry Transport) 標準のクライアント実装です。MQTT 標準は軽量なパブリッシュ/サブスクライブ (またはPubSub) TCP/IP 上で動作し、マシン間 (M2M) および IoT ユースケースでよく使用されるメッセージングプロトコル。

coreMQTT ライブラリは、MQTT 3.1.1 プロトコル標準に準拠しています。このライブラリは、低メモリフットプリントに最適化されています。このライブラリの設計では、QoS 0 MQTT PUBLISH メッセージのみを使用するリソース制約のあるプラットフォームから、QoS 2 MQTT PUBLISH over TLS (Transport Layer Security) 接続を使用するリソース豊富なプラットフォームまで、さまざまなユースケースを取り入れています。ライブラリには組み合わせ可能な関数メニューが用意されており、特定のユースケースのニーズに正確に適合するように選択して組み合わせることができます。

ライブラリは C 言語で記述されており、ISO C90MISRA C:2012 に準拠するように設計されています。この MQTT ライブラリは、以下を除くライブラリには依存しません。

  • 標準 C ライブラリ

  • お客様が実装したネットワークトランスポートインターフェイス

  • (オプション) ユーザーが実装したプラットフォーム時間関数

ライブラリは、単純な送受信トランスポートインターフェイス仕様を提供することにより、基盤となるネットワークドライバーから疎結合化されます。アプリケーションライターは、既存のトランスポートインターフェイスを選択したり、アプリケーションに応じて独自のトランスポートインターフェイスを実装したりできます。

ライブラリは、MQTT ブローカーへの接続、トピックへのサブスクライブ/サブスクライブ解除、トピックへのメッセージの公開、受信メッセージの受信を行うための高レベル API を提供します。この API は、上記のトランスポートインターフェイスをパラメーターとして受け取り、それを使用して MQTT ブローカとの間でメッセージを送受信します。

ライブラリは、低レベルのシリアライザ/デシリアライザ API も公開しています。この API を使用すると、他のオーバーヘッドなしで、必要なサブセットの MQTT 機能のみで構成されるシンプルな IoT アプリケーションを構築できます。シリアライザ/デシリアライザ API は、ソケットなどの利用可能なトランスポートレイヤー API と組み合わせて使用して、ブローカとの間でメッセージを送受信できます。

IoT アプリケーションで MQTT 接続を使用する場合は、TLS プロトコルを使用するインターフェイスなど、セキュアなトランスポートインターフェイスを使用することをお勧めします。

この MQTT ライブラリには、スレッディングや同期など、プラットフォームの依存関係はありません。このライブラリには、安全にメモリを使用し、ヒープ割り当てがないことを示すプルーフがあります。そのため、IoT マイクロコントローラーに適しています。また、他のプラットフォームに完全に移植することもできます。無償で使用でき、MIT オープンソースライセンスに基づいて配布されます。

coreMQTT のコードサイズ (ARM Cortex-M 向けの GCC で生成された例)
File -O1 最適化を使用 -Os 最適化を使用
core_mqtt.c 4.0K 3.4K
core_mqtt_state.c 1.7 K 1.3K
core_mqtt_serializer.c 2.8K 2.2 K
合計 (概算) 8.5K 6.9 K