c++ - 将命令从 Raspberry PI 发送到 arduino,反之则使用 C++
问题描述
我正在尝试做一个项目,我想从我的 rpi 向我的 arduino UNO 发送一些命令。我让它们通过 USB 连接。我询问了我的朋友圈,他们说要使用boost:asio
库以及streambuffer
and async_write
和 async_read
函数。
他们提出了这些建议,因为我也想从我的 arduino 发送数据。
我意识到首先我必须创建一个 IO 服务,因为这是我用来创建它的代码:
boost::asio::io_service ioservice;
boost::asio::serial_port serial(ioservice, "/dev/ttyACM0");
serial.set_option(boost::asio::serial_port_base::baud_rate(9600));
serial.set_option(boost::asio::serial_port::flow_control(boost::asio::serial_port::flow_control::none));
serial.set_option(boost::asio::serial_port::parity(boost::asio::serial_port::parity::none));
serial.set_option(boost::asio::serial_port::stop_bits(boost::asio::serial_port::stop_bits::one)); serial.set_option(boost::asio::serial_port::character_size(boost::asio::serial_port::character_size(8)));
然后通过执行以下操作创建流缓冲区:
boost::asio::streambuf b;
为了更好地理解问题,我想从 rpi 发送到 arduino 的命令是字符串,例如 string="g 50" 并且我想从 arduino 发送到 rpi 的信息是 2 个向量(vect_1 和 vect_2),每个向量都有3个浮子。如果可能的话,我想同时传递这两个向量。
如何使用这个 streambuf b 将数据发送到我的 arduino 或我的 rpi?我怎样才能把数据放在b中?我可以通过流同时发送这 3 个向量还是不可能?阅读它们只是 async_read
需要还是需要其他东西?
解决方案
推荐阅读
- java - 如果 columnNames 和 fieldNames 使用 java Reflection 不同,如何将 POJO 与数据库 ResultSet 映射?
- android - 临时存储 JSON 对象并在 Internet 可用时 POST 到 Volley
- spring-mvc - Spring/Thymeleaf 在处理@PostMapping 时抛出“在响应提交后无法创建会话”
- gdb - gdb 调试器不熟悉显示的代码
- agens-graph - 我可以在 AgensGraph 上使用完整的 PostgreSQL 函数吗?
- java - 构建ant项目时出现编译错误
- python - to_numeric(..., downcast='float') 过于激进
- javascript - TLS 到多个客户端和不同的消息
- javascript - 如何使用 Ajax 承诺执行功能?
- java - 如何将地图转换为大列表?