問題タブ [esp32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1681 参照

c - esp32 idf マルチソケットサーバー

これは私の最初の投稿なので、それが役立つかどうかをリモートで尋ねますが、私はそれを提供しませんでした.

私のアプリケーションでは、マスターから一度に複数のソケットを開く必要があり、スレーブは WiFi に接続し、次にソケットに接続します。

問題は次のとおりです。スレーブからの絶え間ない再接続に対して「防弾」にする必要があり、Accept error: E (23817) TCP SOCKET: accept error: -1 Too many open files in system クライアントを 5 回再接続すると表示されます。 menuconfig で Open Sockets の最大数 = 5 の場合、

クライアントが1秒以内に何も送信しない場合、クライアントをサーバーから切断します->その後、DC-dを取得したと想定します。close() プロシージャで行います。

ソケットごとに、そのソケットから受信してさらに動作するはずの1つのタスクを実行します。

それらすべてについて、メッセージが最後に到着した時間をチェックし、時間が経過したときにタスクを再起動する他のタスクがあります(2秒です)

最終バージョンでは約 16 個のソケットを開く必要があるため、スレーブが接続全体を再起動した後もソケットを閉じている余地はありません

  1. ソケットを適切に閉じるために、recv() プロシージャを実行してタスクを適切に閉じる方法。
  2. WiFiがSTA DC-dを認識していない場合、ソケットが閉じられていることをサーバー側から読み取る方法はありますか
  3. これは tcp スタックからの TIME_WAIT に関するものですか?

ソケット読み取りコード:

0 投票する
1 に答える
381 参照

c - リンク エラー: PlatformIO で -lrdkafka プリコンパイル済みダイナミック ライブラリが見つかりません

PlatformIO を使用して Esp32 で Kafka を動作させようとしています。

platformio.ini ファイルで表現されたビルド フラグを使用して、PlatformIO でビルドされたプロジェクトに C ライブラリをリンクしようとしました。librdkafka ライブラリを使用しています。librdkafka.so ファイルの場所は /usr/local/lib にありますが、plaformio でリンクされたライブラリを使用してプロジェクトをビルドすると、次のエラーが発生します。

platformio.ini ファイル:

PlatformIO の外では、次のコマンドを使用して、librdkafka を main.c プロジェクト ファイルに正常にリンクしました。 gcc main.c -L/usr/local/lib -l:librdkafka.so -lz -lpthread -lrt -I/usr/local/include/librdkafka

0 投票する
1 に答える
817 参照

microcontroller - ESP32 (esp-idf) を使用して nRF24L01+ を処理できない

nRF24L01 ライブラリを ESP32に移植しようとしています(esp-idf を使用しています)。私がしなければならないのは、spi を使用している関数を置き換えることだけです。それが私がこれを行う方法です:

しかし...何も動作しません。SPI ワイヤが正しく接続されている。spi経由でステータスを読み取ることができます。正しい値かは確認できていませんが、nRF24L01のGNDを外すたびに変化しています。なので、配線はOKだと思います。

このコードの何が問題になっていますか?