Я пытаюсь заставить следующий пример кода работать. Я прочитал несколько уроков и Q&А, но я не могу заставить его работать. По всей вероятности, мое понимание классов не хватает, но я учусь на практике. Надеюсь, я никого не оскорбляю 🙂
Я работаю над последовательным портом связи и пытаюсь использовать версию этой библиотеки с обратным вызовом:
http://www.webalice.it/fede.tft/serial_port/serial_port.html
Конкретный вопрос в закомментированном коде.
ОБНОВЛЕНО — Я понял, код ниже работает 🙂
Вот файл SerialPort.h:
#include "AsyncSerial.h"
class SerialPort
public:
void portOpen();
void portWrite();
private:
CallbackAsyncSerial serial;
};
И SerialPort.cpp:
#include "SerialPort.h"
void SerialPort::portOpen() {
// serial = CallbackAsyncSerial("COM1", 115200); Doesn't work
serial.open("COM1", 115200); //This works :-)
}
void SerialPort::portWrite() {
serial.writeString("Hello\n");
}
void main() {
SerialPort objt;
objt.portOpen();
objt.portWrite();
}
Спасибо за вашу помощь!
«
//How do I make the object "serial" accessible in the other members?
«
Сделайте это самой переменной-членом
class SerialPort
public:
void portSet();
void portOpen();
void portWrite();
private:
CallbackAsyncSerial serial;
};
void SerialPort::portOpen() {
serial = CallbackAsyncSerial("COM1", 115200);
}
Чтобы сделать его доступным для других членов, он должен быть переменной-членом. Это означает объявить его в определении класса SerialPort.