質問: port.write(data, len); if(iret >= 0){ return true; }else{ qDebug() << "送信失敗:" << port.errorString(); return false; } } ```
回答: `CSerialBase::readdataWait`をslotとして定義するのであれば、 1. `CSerialBase`クラスを`QObject`の派生クラスとして定義する。 2. クラス宣言の最初に`Q_OBJECT`マクロを記載する。 3. `readdataWait`メソッドを`slots`セクションで宣言する。 必要があると思います。 参考: Qt Documentation - Signals & Slots 具体的には、次のように`CSerialBase`クラスを宣言すればよいと思います。 ``` class CSerialBase : public QObject { Q_OBJECT public: //メソッド CSerialBase(); //!< コンストラクタ ~CSerialBase(); //!< デストラクタ private : QSerialPort port; //!< シリアルポートオブジェクト public slots: void readdataWait(); public: bool open (TSettingSerial *setting); //!< ポートオープン void close(); //!< ポートクローズ bool write(const char*,qint64); //!<ライト関数 }; ```