Преобразование последовательного Python кода в C ++ с помощью wiringSerial - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь преобразовать некоторый код для LoRa из python в C ++, и у меня возникли некоторые трудности. Код python, который отлично работает, использует последовательный python и устанавливает соединение с / dev / ttyUSB0 (на RPI3) со скоростью передачи данных 57600. Следующий код python затем заставляет один из индикаторов мигать на последовательном устройстве:

def tx(self):
    self.send_cmd("sys set pindig GPIO11 1")
    time.sleep(.3)
    self.send_cmd("sys set pindig GPIO11 0")

def send_cmd(self, cmd, delay=.1):
    self.write_line(cmd)
    time.sleep(delay)

Я написал c ++, используя wiringSerial, чтобы установить sh соединение и вернуть дескриптор. Затем я пытаюсь написать ту же команду «sys set pindig GPIO11 1» через serialPuts или serialPrintf, как в приведенной ниже функции:

void txfunction::TX() {
    std::cout << "SENDING MESSAGE" << std::endl;
    serialPuts(handle, "sys set pindig GPIO11 1");
    usleep(1000000);
    serialPuts(handle, "sys set pindig GPIO11 0");
    usleep(1000000);
    serialPrintf(handle, "sys set pindig GPIO11 1");
    usleep(1000000);
    serialPrintf(handle, "sys set pindig GPIO11 0");
    usleep(1000000);

Дескриптор подключения сделан в другом месте с использованием

handle = serialOpen("/dev/ttyUSB0", 57600);

Он сообщает, что соединение установлено успешно, и сообщения, предположительно, отправляются, но индикаторы не мигают, так что я явно не понимаю, как работает Gordons Project wiringSerial. Может кто-нибудь указать мне правильное направление о том, как правильно отправить строку текста в качестве команды через WiringSerial?

...