Последовательная связь между C++ и Python (Vex v5 и Pi)
Некоторое время я работал с Raspberry Pi и Vex v5, чтобы заставить работать последовательную связь между ними. В настоящее время мой код работает редко, а в других случаях не работает случайным образом. Я не понял почему.
На стороне Pi/Python у меня есть:
import os
import sys
import serial
import time
try:
VEX_PORT ='/dev/ttyACM0'
ser=serial.Serial(VEX_PORT,115200,timeout=2)
ser.isOpen()
except:
VEX_PORT ='/dev/ttyACM1'
ser=serial.Serial(VEX_PORT,115200,timeout=2)
ser.isOpen()
ser.flush()
print("OK")
#message = "{}\n".format("0,4:0,-4").encode("utf-8")
while ser.isOpen():
try:
ser.write("Cheese\n".encode("utf-8"))
readText = ser.readline()
print(readText)
print(ser.out_waiting, 'out')
print(ser.in_waiting,'in')
#time.sleep(2) #in sec
except:
print("FAIL")
ser.close()
На стороне Vex/C++ у меня есть:
std::string foo = "UNINIT";
std::stringstream bar(foo);
pros::lcd::set_text(2,foo);
while (true) {
//std::cin >> foo;
foo = "";
getline(std::cin, foo);
std::cin.ignore();
if (!foo.empty()) {
pros::lcd::set_text(2,foo);
}
std::cout << "donkey\n" << std::endl;
pros::delay(2000);
}
Я хочу, чтобы Vex получал и отображал текст, который он получает от Pi, на экране, а затем отправлял сообщение для отображения на Pi. Иногда это работает... чаще нет.