Android用の開発ボードがあります。アプリを介して利用可能なcomポートを介してデータをシリアルに送信したい。これは可能ですか?もしそうなら、誰でもそれがどのように行われるかを示すことができますか? 1週間探していますが、適切なものが見つかりませんでした。前もって感謝します。
1 に答える
最初に、シリアル ポート ハードウェアが機能していること、および適切な Linux カーネル ドライバーがモジュールとしてリンクまたはロードされていることを確認する必要があります。これは、他の組み込み Linux の場合と同じであり、この時点でコマンドを使用してテストすることをお勧めします。ライン ツールまたはテスト プログラム。
次に、アプリケーションからアクセスできるようにする必要があります。これには、大きく分けて 3 つの方法があります。
シリアル ポートのデバイス ファイルをすべてのユーザーが利用できるようにすることができます。これは簡単ですが、任意のアプリがシリアル ポートに完全にアクセスできることが問題になるかどうかを判断するのはあなた次第です。
新しい UNIX グループと対応する Android パーミッションを作成し、パーミッションに基づいてグループのメンバーシップを割り当てるようにパッケージ マネージャーを設定し、そのグループにデバイス ファイルを割り当てることができます。それが、sdcard への書き込みなどの処理方法です。
シリアル ポートへのアクセスを制限したままにして、シリアル ポートを管理し、サポートされている IPC (Binder、UNIX ソケットなど) を介して接続する Android アプリケーションに代わって通信を実行する特権デーモンを作成することができます。少なくとも Binder を使用している場合)、シリアル ポート アクセス用に作成した Android アクセス許可をクライアント アプリケーションが保持する必要があります。これは、SMS メッセージの送信などの仕組みに漠然と似ています。
最初の 2 つの方法では、(少なくとも ndk コードの) クライアント アプリケーションは、Linux プログラマーが使い慣れている通常の posix シリアル API を使用できます。3 番目の方法は、シリアル ポートを Android スタイルの通信リソースとして提示します。
コードを記述する前に、Web 検索を行ってください。この問題がまだ数回解決されていない場合、私は非常に驚かれることでしょう。