このブログ記事では、以下の方法について説明OneNETのブログ上のポートSTM32マイコンのコードを、最終的な記事へ。ハードウェアSTM32F103RCT6とESP8266、システムFreeRTOS例。ATコマンドUSART1、ESP8266はUSART2を使用して、あなたがFreeRTOSを設定している設定。そうでない場合はどのようにBaiduは移植を検索することができます。注意するように変更または移植する必要があるものの内容を簡単に説明します:
- ATコマンドタスクのUSART1コマンドを受信するように変更します。
- ソケットは、アナログ伝送モジュールESP8266インタラクティブデータ伝送ネットワークを介してATコマンドを使用して受信して処理データESP8266とソケット相関関数に変更されます。
- タスクは、二つ以上のメッセージキューは、メッセージキューが模倣OneNET部分を実装必要。
- OneNET部分は、C ++のstdを変更する必要があります::キューはFreeRTOSメッセージキューです。機能、変更に注意を払う必要があるタスクと呼ばれるコールの割り込み(FromISR)、の2つの異なるバージョンがあるFreeRTOSティックは、キューおよびシステムのために数えていることに注意してください。
- これらの新しいタスクの優先度が同じに設定する必要があります作成するときに、私はあなたが同じシステムの異常を行わない場合、優先度の低いタスクをスケジュールすることができないらしいことがわかりました。
- 他は1キロバイトに設定されている間、大きなスペースを積層する必要があるOneNET、私は、スタックの移植の4キロバイトに設定します。24メッセージ・キューの容量が提供されます。
- タイマータイマーはFreeRTOSプランを変更し、唯一OneNETタスクの後にタイマーを使用してメッセージを送信するように動作していることを保証OneNET使命、それを開始します。
- 提供される関数mallocとfreeメモリ割り当て関数のFreeRTOSを交換してください。I(このマイクロコントローラはRAMの40キロバイトを有する)25キロバイトの移植ヒープサイズの時間を設定します。
- 文字列\ nは\ r \ nに変更する必要がある、またはシリアルデバッグツールの表示がラップしていない場合。
- シリアル出力に関連するログ出力を変更するには、
- 最後に、我々は、コンパイルするKeil社のC99モードを設定する必要があります。
以下は、IPDの始まりは、データESP8266出力モジュールを無視することができます受信している+移植の効果(の一例である。図には理由がわからない、いくつかのIPD +出力とコマンドが一つでもエコーされます+ CIPSENDで発見することができ、私はちょうどそのようなデータは、プログラム内で有効ではないことをこのエラー状態をブロックする理由。。しかし、時には回答が得られ報告されたデータ・サーバとATが応答しませんでしたサーバーモジュールにつながる、一つでもエコーした後、彼女は知らなかった淘宝網ストア表現し、タイムアウトエラーが発生しました。しかし、モジュールは)例外が発生することはありません。それぞれ図注文ログインプロセス、FOTAは、トランザクションを発行し、北と書き込み動作を行い、北フィドラースクリーンショット書き込み操作:
簡単なテストの後、連続時間近くで報告されたデータを、報告された、1秒あたりの報告プロセスに異常が表示されません通知します。これは、プログラムがこの点でメモリリークが発生しないことを示しています。実際には、VSは、メモリリークを持っていないAT通常の状況では、コードを入力し、少なくともテストされています。報告されたデータレコードのスクリーンショットのOneNETプラットフォームの側面は、次のとおりです。
最後に、コードや不完全で既存の問題を説明します。記録のみ、これらのコードはもう更新されません。
- BSREGとREGが失敗した後回収して閉じられていない状態OneNETソケットスレッド。
- BSはむしろLwM2Mサーバよりも、BSの後に別のサーバに切り替えることができます。未実現。
- 条件コマンド、即ち、コマンド処理書き込み属性を観察します。未実現。
- 登録が成功または更新が成功した後は、タイマーを起動し、設備を維持するための自動更新は、ライフサイクルの終了時に削除されません。未実現。
- FOTAは、タイマーが次のデータパケットは、FOTAの流れの中断と考えられている発行されていない有効期限が切れる前にデータが受信されたダウンロードした後にタイムアウトタイマーを起動します。これは契約ですが、中国のモバイルSDKは、この機能を持っていません。
- ATは、コードデータ型、すなわち、位置パラメータは、数値や文字列または他のタイプであってもよいの可変部分をサポートしていません。
- 他のそのようなDTLS暗号化、SOTAなどが挙げられます。