#ifndef CAPNOGRAFO_H #define CAPNOGRAFO_H #include #include #include #include #include #include #include #include class CapnographSerialThread : public QObject { Q_OBJECT Q_PROPERTY(double xValue READ xValue NOTIFY xValueChanged) Q_PROPERTY(double yValue READ yValue NOTIFY yValueChanged) public: explicit CapnographSerialThread(QObject *parent = nullptr); ~CapnographSerialThread(); void openCapnographSerialPort(); void closeCapnographSerialPort(); void readCapnographThread(); void inicializarSensor(); void inicializarPaquete84(const QByteArray response); void processPacket(QByteArray packet); void interpolacionLineal(quint16 realTimeCO2); double xValue() const { return m_xValue; } double yValue() const { return m_yValue; } void startGenerating(); //Q_INVOKABLE QVariant interpolatePoints(const QList& points, int numInterpolatedPoints); Q_INVOKABLE QVariantList interpolatePoints(const QList>& points, int numInterpolatedPoints); Q_INVOKABLE QVariantList getCurrentPoints() const; signals: void displayedData(QString co2, QString o2); void xValueChanged(double xValue); void yValueChanged(double yValue); void newDataAvailable(QByteArray data); void dataPacket83(quint16 realTimeCO2, quint16 realTimeO2); void dataPacket84(quint8 EtCO2, quint8 InsCO2, quint8 AwRR, quint8 EtO2, quint8 InsO2); void dataReady(float value); private slots: void handleReadyRead(); void generateValues(); private: QSerialPort *comCapnographController; QByteArray receivedData; void sendPacket(QByteArray packet); QByteArray powerOnHandshake(quint8 command, quint8 data1, quint8 data2, quint8 data3, quint8 data4, quint8 data5); void processHandshakeResponse(QByteArray response); QTimer m_timer; double m_xValue; double m_yValue; double m_iXval; double m_iYval; QList m_points; //QTimer *timer; }; #endif // CAPNOGRAFO_H