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