Changeset 102 in pacpusframework for branches/2.0-beta1/include/Pacpus/kernel/inputOutputInterface.h
- Timestamp:
- 06/03/13 18:13:21 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.0-beta1/include/Pacpus/kernel/inputOutputInterface.h
r96 r102 23 23 InputInterface(QString name, C * component, void (C::*m)(const T&)):InputInterfaceBase(name,component,component), method(m) {} 24 24 ~InputInterface() {} 25 26 enum ReadingMode {27 NeverSkip,28 TimeBounded,29 GetLast30 };31 32 void setReadingMode(ReadingMode mode) { readingMode_ = mode;}33 25 size_t getDataSize() {return sizeof(T);} 34 26 QString getDataType() {return QString(typeid(T).name());} 35 27 36 28 protected: 37 ReadingMode readingMode_;38 29 int boundingTime_; 39 30 … … 57 48 switch (readingMode_){ 58 49 case TimeBounded: 50 qDebug() << "Input " << this->getSignature() << " Time bournded "<< road_time()- typedEvent->t_ << " " << typedEvent->tr_; 59 51 if(road_time() - typedEvent->t_> typedEvent->tr_) 60 break; 52 { qDebug() << "Data skip " << this->getSignature(); 53 break;} 61 54 (dynamic_cast<C*>(_component)->*method)(typedEvent->_data); 62 55 break; 63 56 case GetLast: 57 qDebug() << "Input " << this->getSignature() << "GetLast "<< road_time() - typedEvent->t_ << " " << typedEvent->tr_; 64 58 (dynamic_cast<C*>(_component)->*method)(typedEvent->_data); 65 59 QCoreApplication::removePostedEvents(this,TYPED_EVENT); // delete all remining events 66 60 break; 67 61 case NeverSkip: 62 qDebug() << "Input " << this->getSignature() << "NeverSkip "<< road_time() - typedEvent->t_ << " " << typedEvent->tr_; 68 63 default: 69 64 (dynamic_cast<C*>(_component)->*method)(typedEvent->_data); … … 113 108 114 109 // Used by Components to send data througth typed output 115 void send(const T & data ) {110 void send(const T & data, road_time_t t = road_time(), road_timerange_t tr = 0) { 116 111 for(QList<ConnectionBase>::iterator it = _connection.begin(); it!=_connection.end(); ++it){ 117 112 118 113 //if(it->getInterface()->getDataType() != QString(typeid(QByteArray).name())) 119 QApplication::postEvent(it->getInterface(),new PacpusTypedEvent<T>(TYPED_EVENT,data ),it->getPriority());114 QApplication::postEvent(it->getInterface(),new PacpusTypedEvent<T>(TYPED_EVENT,data,t,tr),it->getPriority()); 120 115 /*else { 121 116 QByteArray buf;
Note:
See TracChangeset
for help on using the changeset viewer.