Последовательная связь между 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. Иногда это работает... чаще нет.

0 ответов

Другие вопросы по тегам