小编dso*_*ano的帖子

通过串行通信启动新行

我试图让arduino告诉我的电脑它的继电器状态是什么.由于某种原因,每次发送新字符串时,PuTTY都会离开最后一个文本的水平位置.这使得显示非常难看.

我希望PuTTY看起来像arduino串行管理器.

这是arduino串行管理器的样子 在此输入图像描述

这就是PuTTY的样子 在此输入图像描述

这是我用来从arduino发送到计算机的代码. 在此输入图像描述

putty serial-port arduino

4
推荐指数
2
解决办法
3万
查看次数

Postgresql错误的串口自动递增

我在postgresql上有一个问题,我认为postgresql中有一个bug,我错误地实现了一些东西.

有包括表格colmn1(primary key),colmn2(unique),colmn3,...

插入一行后,如果我尝试使用现有colmn2值进行另一次插入,我会收到重复值错误,正如我预期的那样.但是在这次不成功的尝试之后,colmn1下一个值增加1,虽然没有插入所以我得到的行有id序列,比如1,2,4,6,9.(3,5,6,7,8不成功的试验).

我需要能够解释这种奇怪行为的人的帮助.

此信息可能很有用:我使用" create unique index on tableName (lower(column1))"查询来设置唯一约束.

sql postgresql auto-increment

4
推荐指数
1
解决办法
2017
查看次数

termios.c_cflag中的CLOCAL和CRTSCTS标志如何影响串口?

我想配置UART以在Linux中使用硬件流控制线RTS和CTS.根据http://linux.die.net/man/3/termios,CRTSCTS启用RTS/CTS(硬件)流控制,CLOCAL配置串口忽略调制解调器控制线.这两个标志似乎是矛盾的,如何使用CRTSCTS启用硬件流控制并忽略CLOCAL的行?

linux serial-port termios uart

4
推荐指数
1
解决办法
1万
查看次数

如何确定 Linux 串行端口上剩余的写入/输出缓冲区空间量?

您可以使用 ioctl 确定在 linux 下可以从串行端口读取多少数据。写入时是否可以确定串行端口剩余的缓冲区空间有多少?实际上,我想将一个数据块写入串行端口,仅当它可以一次性全部卸载时才成功,或者如果必须分块则失败。对端口的写入和读取是非阻塞的。我不希望这是 UARTs 缓冲区,而是 UARTs 缓冲区之前的内核内存缓冲区(我猜)。

c linux buffer ioctl serial-port

4
推荐指数
2
解决办法
3177
查看次数

用于测试串行带宽的简单小型 C 程序

我有两台带串口的笔记本电脑。如何使用简单的小型C程序测试两台机器之间串口的实际带宽?

实际上,我需要在嵌入式 Linux 系统上执行此操作,这就是为什么该实用程序必须是一个小型、简单的 C 程序(因为嵌入式环境只有有限的库支持,这意味着它没有 python、perl 或任何其他花哨的工具)图书馆)。

c serial-port embedded-linux

4
推荐指数
1
解决办法
4644
查看次数

将Matlab GUI转换为指南GUI

我继承了一堆Matlab脚本,使用对uicontrol,uimenu等的调用手动构建GUI.多年来,我们需要删除元素并将元素添加到GUI中,因为所有位置都是在脚本中手动指定的,所以布局并没有真正改变以适应缺失的元素,所以它真的开始看起来像一堆垃圾.

有没有办法自动将我的matlab脚本gui转换成我可以用于指南的东西?我宁愿不必重新开始......

matlab user-interface matlab-guide

4
推荐指数
1
解决办法
464
查看次数

Windows Service是否是部署为计划任务的VB 6 exe的理想替代品?

有一个现有的VB 6 exe,它被设置为Windows服务器上的计划任务(每20分钟运行一次).客户端现在希望它替换为.NET组件.编写Windows服务(使用计时器)是一个理想的解决方案吗?

vb6 windows-services

4
推荐指数
1
解决办法
122
查看次数

带有虚拟 tty 链接和 fork 的 socat 删除了我的 pty 链接

我需要能够将 tcp 连接多路复用到单个虚拟 tty,以测试通过串行端口进行通信的软件。我一直在使用以下命令创建一个侦听 tcp 端口的服务器,然后将数据转发到 PTY。

socat -d -d PTY,link=/dev/ttyV1,waitslave,echo=0,raw TCP-LISTEN:11313,reuseaddr,fork
Run Code Online (Sandbox Code Playgroud)

我的问题是当端口 11313 上的 tcp 客户端断开连接时,socat 会删除我到 /dev/ttyV1 的链接,从而终止与连接的其他所有人的会话。

有没有办法保留这个链接?或者也许在 socat 之外创建一个伪 tty 以便我不必担心维护它?我试过 /dev/tty1 和 /dev/ttyS1 但我没有任何运气。我对这些的命令是:

socat -d -d file:/dev/tty1,nonblock,echo=0,raw TCP-LISTEN:11313,reuseaddr,fork
Run Code Online (Sandbox Code Playgroud)

我的要求:能够在一端将一个软件连接到串行 tty,然后在另一端连接多个 tcp 客户端。Tcp 客户端消息被正确序列化和多路复用,因此消息不会相互重叠。

sockets tcp serial-port listener socat

4
推荐指数
2
解决办法
1万
查看次数

如何在使用boost :: asio发送数据时丢弃数据?

我正在编写一些使用boost::asio类读取和写入串行设备的代码.但是,当在程序之间发送多个字符串时,我注意到在接收程序中,数据在写入串口时按顺序读取,而不是从其他程序发送数据 - 如果我开始读取数秒之后的数据,我不会得到我现在发送的值,而是之前发送的值.我假设这是由我如何设置我的boost::asio::serial_port:

int main(int argc, char const *argv[]){

    int baud=atoi(argv[1]);
    std::string pty=argv[2];

    printf("Virtual device: %s\n",pty.data());
    printf("Baud rate: %d\n",baud);

    boost::asio::io_service io;
    boost::asio::serial_port port(io, pty);
    port.set_option(boost::asio::serial_port_base::baud_rate(baud));

    // counter that writes to serial port in 1s intervals
    int val=0;
    while (1){
        std::string data=std::to_string(val);
        data+='\n';
        std::cout << data;
        write(port,boost::asio::buffer(data.c_str(),data.size()));
        sleep(1); 
        val++;
        data.clear();
    }

    port.close(); 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有一种方法可以在将新值发送到串行端口时强制将过去的数据丢弃(我假设应该在代码的write()部分完成)?

c++ boost serial-port tty boost-asio

4
推荐指数
1
解决办法
4336
查看次数

串口通信C++ Linux

我正在寻找一个易于使用的C++ librairie来与Linux下的串行端口对话.

我看了一下Boost :: Asio,但对于我的小用途看起来很复杂.我只想收到有关串行端口的一些信息,并将它们记录在数据库中.

你知道一个简单的串口librairie(有一个例子,它会是最好的)

谢谢

c++ linux serial-port g++

4
推荐指数
1
解决办法
9569
查看次数