SensorDataSet SensorDB::ExecuteSQL_SelectFromSensorDataTable(std::string sqlcommand) { SensorDataSet ds; ChannelList channelist; int channel_num; int datatype_id; int operator_id; int device_id; int position_id; int activity_id; int activitybeginframe_id; int activityendframe_id; double samplerate; QDateTime createtime; if(db.isOpen()){ QSqlQuery query; QString sqlcmd = string2qstring(sqlcommand); if(query.exec(sqlcmd)){ while(query.next()){ datatype_id = query.value("DataTypeID").toInt(); activity_id = query.value("ActivityID").toInt(); device_id = query.value("DeviceID").toInt(); operator_id = query.value("OperatorID").toInt(); position_id = query.value("PositionID").toInt(); activitybeginframe_id = query.value("ActivityBeginFrameID").toInt(); activityendframe_id = query.value("ActivityEndFrameID").toInt(); samplerate = query.value("SampleRate").toDouble(); createtime = query.value("CreateTime").toDateTime(); channel_num = query.value("TotalChannelNum").toInt(); channelist.clear(); for(int i=1;i<=channel_num;i++){ if(query.value(i).isNull()){ break; } string ch = "channel_"+int2string(i); //qDebug() << query.value(string2qstring(ch.c_str())).toString(); channelist.push_back(Channel(query.value(string2qstring(ch.c_str())).toString().toStdString())); //qDebug() << string2qstring((channelist[channelist.size()-1].ToString())); } ds.PushBackSensorData(SensorData(channelist,channel_num,datatype_id,operator_id,device_id,position_id, activity_id,activitybeginframe_id,activityendframe_id, samplerate,createtime)); } } else{ qDebug()<<query.lastError(); } } else{ qDebug()<<"DataBase is not opened"; } return ds; }
int EPoller::poll(int timeout, ChannelList& activeChannel) { activeChannel.clear(); _events.clear(); int numEvents = ::epoll_wait(_epfd, &(*_events.begin()), _events.size(), timeout); if(numEvents < 0) { LOGGER_STREAM(Logger::getLogger(LOGGER_NAME)) << "errno = " << errno << strerror(errno) << "\n"; return numEvents; } if(numEvents > 0) { fillChannelEvents(numEvents, activeChannel); if(numEvents >= _events.size()) { _events.resize(numEvents << 1); } } return numEvents; }