問題タブ [texas-instruments]
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.
android - Bluetooth BLE Android は最大スループットでペリフェラルに書き込みます
当社は、Bluetooth BLE を備えたハードウェア ユニットを開発しており、Nexus 7 (2013) にファームウェア ファイルをユニットに送信するサービス アプリがあります。ファイルは最大 500kb まで可能です。
BT チップは Texas Instruments CC2540 です。
Android デバイスから CC2540 へのデータ転送を高速化する方法について、大量のページを調べ、スタック オーバーフローをスキャンしましたが、本当に良い例は見つかりませんでした。
Nordic Semiconductors のホームページで、Android ユニットの最大スループットを計算する方法の例を見つけました: ( https://devzone.nordicsemi.com/index.php/how-do-i-calculate-throughput-for-a-ble -リンク)
Android ユニットは接続間隔ごとに 20 バイトの 4 つのパケットを送信でき、Android は 7.5ms の接続間隔を処理できると述べています。
私たちのアプリでは、現在 writeCharateristics でデータを送信しており、データの次のチャンクを送信する前にonWriteCharateristicsコールバックを待ちます。ただし、コールバックが呼び出されるまでに約 2 秒かかるため (!!)、その送信速度は非常に遅いです。これにより、データ転送速度は 10 バイト/秒になり、上記の計算例の 10.6kb/秒とはかけ離れています。
2 つの iOS デバイス間で 50kb のデータを転送しようとしました (iOS 用の KeyFob デモの修正版を使用)。転送速度は 3.4kb/s でした。しかし、それはCBPeripheralManager UpdateValueを使用していました。これは、ペリフェラルからセントラルに通知を送信する方法であると理解しています。
私が読んだことは、Androidデバイスを周辺機器として機能させる方法が今のところありません. これは、CC2540 が Nexus 7 に通知を送信できないということですか? また、通知を通じてデータを送信するためにスループットを最大化する唯一の方法はありますか?
すべてを遅くするのは TI デバイスのスタックですか、それとも Nexus と CC ユニット間のデータ転送を高速化するためにパラメータを変更する方法はありますか?
Nexus 7 デバイスに GATT サーバーを実装し、そこからの通知を CC2540 にサブスクライブさせるというアイデアがありました。それは可能ですか?つまり、Nexus は最初に CC2540 をスキャンし、サービスが見つかったら接続する必要があります。接続が確立されると、CC2540 は Nexus 7 からの通知のサブスクライブを開始します。その後、Nexus から CC2540 に高い転送速度で通知を送信します。
うまくいけば、他の誰かが私たちがやろうとしているのと同じことをやろうとしているのです!
basic - TI-Basic Editor でプログラムの途中に行を追加するには?
TI-Basic で簡単な Pong ゲームを書いていますが、エディタで既に書いたコードに行を挿入できません。
例えば
コードを挿入しようとすると、以前のコードを上書きするだけで、新しい行を作成できません。
virtualbox - root なしで TIVA ランチパッド usb-bulk-device に接続するための udev ルール?
Linux (Xubuntu) でプログラムを作成して、Tiva ランチパッドを usb-bulk デバイスとして接続しようとしています。私はCode::Blocks
とを使っlibusb
てホスト側でプログラムを書きます。Code::Blocks
root として (またはプログラムを)起動すると、すべて正常に動作します。udev ルールが機能しません。私の udev ルールは/etc/udev/rules.d/10-TIVA.d
次のようになります。
また、自分のユーザー名をdialout
and vboxsf
(Linux を実行しているVbox
) グループに追加しました。まだエラーが発生しています:
libusbx は USB デバイスを開けませんでした
/dev/bus/usb/001/006
: アクセス許可が拒否されました。
libusbx には、USB デバイス ノードへの書き込みアクセスが必要です。
c - TCP 接続を閉じる
Texas Instruments のブースター パック cc3000 を使用してデータを送信しようとしています。したがって、ボードに TCP サーバーソケットを実装しました。保留中の接続を正常に受け入れ、指定されたソケットでデータを送受信できます。私のプロトコルでは、クライアントは応答を読み取った後に接続を閉じる責任があります。しかし、いくつかの送信の後、送信が遅くなります。Wireshark を使用して WLAN トラフィックを検査すると、ソケット クローズ手順に問題があることがわかります。私のクライアントは Java ベースのプログラムです。ボードはアドレス 100 を使用し、コンピューターは 102 で実行されます。
TCP ストリームは次のようになります。
約 10 回の送信の後、FIN/ACK カスケードを取得します。上記の最後の FIN/ACK は、このカスケードの一部です。ソケットが完全に閉じられておらず、HW モジュールが開始され、すべてのソケットが連続して閉じられているように見えます。
サーバーはもう少し複雑ですが、重要なコマンドは次のとおりです。
誰が何が起こっているのか考えていますか。助けやアイデアをいただければ幸いです。
embedded - ハイインピーダンスモードを無効にした後、GPIO ピンを設定できますか?
PM5CTL0 &= ~LOCKLPM5;
MSP430 用の次のサンプル プログラムがあり、行が前に来るように並べ替えたいと思いP2SEL1 |= BIT0 | BIT1;
ます。そんなことしたら何か問題あるの?私はe。ハイインピーダンスモードを無効にした後に GPIO ピンを設定すると問題が発生しますか?
私のアプリケーション/回路側には何の問題もありません。驚きをもたらす可能性のある過渡電流やその他の不安定性に興味がありますか? それとも、GPIO を構成した後に高インピーダンス モードを無効にするのは単なる儀式/慣例ですか?