Index: sources/canbus/frameinterface.h =================================================================== diff -u -r805119c460b4a266d6401c8705f4427e7fbe270f -rbb8f39a014644c70b832dd2a784f62fa9f6b6106 --- sources/canbus/frameinterface.h (.../frameinterface.h) (revision 805119c460b4a266d6401c8705f4427e7fbe270f) +++ sources/canbus/frameinterface.h (.../frameinterface.h) (revision bb8f39a014644c70b832dd2a784f62fa9f6b6106) @@ -60,9 +60,30 @@ QThread *_thread = nullptr; bool _init = false; + + struct Frame { + Can_Id can_Id; + QByteArray data ; + + Frame(Can_Id vCan_Id, const QByteArray &vData) { + can_Id = vCan_Id; + data = vData ; + } + }; + QList _txFrameList; + const quint16 _txFrameList_Max = 4000; // maximum number of frames in the transmit buffer + bool _transmitted = false; + + const quint8 _interval = 7; // keep awake call of the UI board in ms + + QString _timestamp; + // Singleton SINGLETON(FrameInterface) +protected: + void timerEvent(QTimerEvent *); + public slots: bool init(); bool init(QThread &vThread); @@ -76,12 +97,16 @@ void initThread(QThread &vThread); void quitThread(); - void transmitFrame(Can_Id vCan_Id, const QByteArray &vData = 0); ChannelGroup checkChannel(quint32 vFrameId, bool *vOK = nullptr); + void transmitFrame (Can_Id vCan_Id, const QByteArray &vData = 0); + void appendHead (Can_Id vCan_Id, const QByteArray &vData ); + void trnsmtHead (); + void removeHead (); private slots: // Should be private for thread safety and is connected internally. void onFrameTransmit(Can_Id vCan_Id, const QByteArray &vData ); // GUI => CAN void onFrameReceive ( const QCanBusFrame &vFrame ); // GUI <= CAN + void onFrameWritten (qint64 vCount ); // GUI <= CAN signals: /*!