2016-11-22 6 views
1

ログファイルにストリームするのに/dev/ttyUSBデバイスと/dev/ttyMFDデバイスがあります。 USBデバイスの場合はtermiosを使用し、それを使って設定することができます。これは非常にまっすぐだったし、これについても少し書類があった。Intel-Edison [C++]上でttyMFDデバイスを開くにはどうすればよいですか?

私はMFDのために何も見つけることができないようです。いくつかの場所はMultiFuctionDeviceと呼ばれ、他の場所はMedfield High Speed UARTデバイスと呼ばれます。 最初は正しいですか?

第2に、私は通常のttyUSBデバイスを開くのと同じ方法でそれを開くことができますか?

ここで私はUSBデバイスを開くのに使うスニッピです。この出くわす誰のための

int fd = open(USBDEVICE0, O_RDWR); 


struct termios io; 
memset(&io, 0, sizeof(io)); 

io.c_iflag = 0; 
io.c_oflag = 0; 
io.c_cflag = CS8|CREAD|CLOCAL;   // 8n1, see termios.h for more information 
io.c_lflag = 0; 

// TODO -- Since we are operating in non-blocking mode; confirm VMIN and VTIME settings have no effect on duration of the read() call. 

io.c_cc[VMIN] = 1; 
io.c_cc[VTIME] = 5; 

speed_t speedSymbol = B921600; 

cfsetospeed(&io, speedSymbol); 
cfsetispeed(&io, speedSymbol); 


int retVal; 
retVal = tcsetattr(fd, TCSANOW, &io); 

tcflush(fd, TCIOFLUSH); 
usleep(100); 

EDIT

、警告が1つあります。デバイスをrawモードで開き、すべてをログファイルにダンプする必要があります。解析は投稿する必要があります。すべてが生データとして出てくるでしょうが、何らかの設定をしようとすると、デバイスのバッファはすべてのデータをキャプチャして保持し、より多くのデータが来る前に処理します。 メドフィールドを:Linuxカーネル内

答えて

2

MFD多機能デバイス、あなたが述べたように、それは独自の解釈だと使用していますエジソン侵害のための従来のシリアルドライバに共通の略語です。アップストリームカーネルでは、略語MIDが使用され、モバイルインターネットデバイスとなります。特にシリアルドライバはドライバ/ tty /シリアル/ 8250_mid.cと呼ばれます。 https://en.wikipedia.org/wiki/Mobile_Internet_deviceを参照してください。

はい、/dev/ttyUSBxの上で行ったのと同じ操作を行うことができます。

+0

これに該当する人には、注意点が1つあります。デバイスをrawモードで開き、すべてをログファイルにダンプする必要があります。解析は投稿する必要があります。 –

+0

@Tropical_Peach、2番目の部分を取得しないでください。なぜログファイルが必要ですか? rawモードは、UARTを何か他の通常のttyに使用するときに推奨されます。 – 0andriy

+0

このMFDから出てくるすべてのデータを記録する必要があるため、インスタンスにログファイルが必要です。すべてのデータを正しく取得する唯一の方法は、データをログファイルに記録することでした。 –

関連する問題