termios

    0熱度

    1回答

    我試圖移植一箇舊的C應用程序,該應用程序與串行設備對話到C#中。 newtio.c_iflag = IGNPAR; newtio.c_oflag = 0; 我不明白的方式在C#中複製這一點,我相信這將導致串行設備的行爲方式不同,當發送「9C」: C應用程序建立在串行通信設置以下字段。

    1熱度

    4回答

    我一直在尋找int man 3 tcgetattr(因爲我想更改程序中的終端設置)並找到了它。 int tcgetattr(int fd, struct termios *termios_p); int tcsetattr(int fd, int optional_actions, const struct termios *termios_p); 問: 我想知道是什麼fd

    1熱度

    1回答

    我有一個/dev/ttyUSB設備和一個/dev/ttyMFD設備,我需要流到日誌文件。對於USB設備,我可以使用termios並通過它進行配置。這非常簡單,還有一些文檔。 雖然我似乎無法找到任何MFD。有些地方稱它爲MultiFuctionDevice,而另一些地方稱之爲Medfield高速UART設備。 哪一個是正確的? 其次,我可以像打開常規ttyUSB設備一樣打開它嗎? 這裏是我用來打開U

    0熱度

    1回答

    我在Linux機器上使用Yocto中的SOCAT 1.7.2.4,PowerPC作爲目標(Big Endian)。無法啓動SOCAT因爲我得到了以下斷言 xioinitialize.c:45: xioinitialize: Assertion `3 << opt_crdly.arg3 == 00030000' failed. 我註釋掉在xioinitialize.c斷言,我得到下面的斷言 xi

    1熱度

    1回答

    我正在嘗試爲shell編寫一個pty I/O透明過濾器。 以下示例大多適用。大多數程序按照預期與包裝程序一起運行。這個例子不做任何過濾,它的目的只是提供一個框架。 編輯:用我的答案在下面我得到了這個例子的工作。我已經更新了這個例子來反映這一點。 這裏是現在工作代碼: /* This example is public domain. Use as you see fit. The purpo

    0熱度

    2回答

    我正在寫一個使用termcaps的程序,我需要知道我正在使用哪種終端。 我知道我可以通過getenv("TERM")獲得TERM變量,但是我可以用「$ env -i ./myprog」啓動我的程序,並且不會設置TERM。 那麼如何確定我必須使用哪種終端類型? 我可以在我的應用程序中安全設置TERM變量爲xterm/xterm-256color嗎? 它會導致不可移植性問題嗎? 有沒有一種方法可以安全

    0熱度

    1回答

    我試圖從BeagleBone Black上的串行端口(/dev/ttyS4)讀取,但我認爲(?)這應該適用於所有Linux設備。 目前,我可以設置minicom的波特率爲9600和8N1的數據從串口讀取正確。但是,如果我直接嘗試cat /dev/ttyS4,則在我的終端中不會顯示任何內容。我的代碼也這樣做,並返回一個Resource temporarily unavailable錯誤,我懷疑是ca

    0熱度

    1回答

    我正在開發一個開發板(Beagle Bone Black)的應用程序,它將通過UART外設發送一些數據。開發板運行Linux Kernel(一些Debian發行版,3.8.x Linux內核版本)。 對於超過UART發送和接收數據I使用標準UNIX API:open(),read(),和write()家庭功能。 用於設置通信參數(baud rate,stop/start bits,parity,等

    2熱度

    1回答

    我的目標:一個線程將等待(忙碌循環不休眠),直到按下特定鍵(可以說是0)。每個線程都有一個不同的鍵,它會觸發該線程退出等待並通過等待後的命令進行處理。 我曾嘗試以下來實現這一點: 使用CONIO.H和殘培(),但是這是用gcc老不工作了。來源:Why can't I find <conio.h> on Linux? 使用ncurses.h和getch(),但這會停止等待鍵盤按下時執行。 代碼我使用

    1熱度

    1回答

    以下功能用於在Linux下從串口讀取數據。我可以在調試時讀取完整的數據,但是當我啓動程序時,read_buffer似乎並不完整。我正確接收了小部分數據,但緩衝區的其餘部分完全是零。可能是什麼問題呢? int8_t __serial_port_open(uint8_t *port) { mode_t perms = S_IRWXU; fd = open(port, O_RDWR