Arduinoからデータを読み取り、そのデータをログファイルに書き込む「文字デバイス」を作成する必要があります。私はこのトピックを数時間検索してきましたが、これを達成する方法はいくつかありましたが、文字デバイスを使用しません。
USBデバイスのcatを使って簡単にこれを行うことができることを知っていますが、システムプログラミングプロセスのためにこれを実行しているので、文字デバイスを使用する必要があります。私が見つけたものに最も近いのは、昨年の学生が行った同様の課題ですが、/dev/ttyACM0
以下のようにファイルを開閉しました。この答え。
これに加えて、キャラクターデバイスファイルでこれを行うための別の正しい方法はありますか?それともこれが正しいアプローチですか?
答え1
ジョブが「文字デバイスの作成」の場合、これはおそらくデバイスと通信し(適切であると思うように)、デバイスとほぼ同じようにマークされたデバイスドライバを作成する必要があることを意味します/dev/ttyACM0
。
私はあなたの先生が昨年の学生の解決策を/dev/ttyACM0
不正行為の一形態として考えていたと確信しています。
システムプログラミングの過程で予想される解決策は、USBバス上でArduinoを探し、文字デバイスを生成するデバイスドライバを書くことです。デバイスがユーザースペースで開いたら、ドライバーは適切なタイプのUSB URB(Arduinoドキュメントを読んでください!)をArduinoに送信して応答を収集し、応答のデータを有効な形式(USBプロトコルの削除など)ユーザースペースを読み取るための文字デバイスです。です。
その後、デバイスを開き、出力をファイルに書き込むには小さなユーザースペースコンポーネントが必要です(おそらく、デバイスが表示されたときに実行のようなルールになるudev
かもしれません)。cat /dev/YOURDEVICE > /var/log/YOURLOGFILE
ところでこれは先生に聞いてみるべきだと思います。