uint8_t DS18B20::oneWireSearch(uint8_t romCommand) { if (lastDevice || !sendCommand(romCommand)) { resetSearch(); return 0; } uint8_t lastZero = 0; uint8_t direction, byteNumber, bitNumber, currentBit, currentBitComp; for (uint8_t bitPosition = 0; bitPosition < 64; bitPosition++) { currentBit = oneWire.read_bit(); currentBitComp = oneWire.read_bit(); if (currentBit && currentBitComp) { lastDiscrepancy = 0; return 0; } byteNumber = bitPosition / 8; bitNumber = bitPosition % 8; if (!currentBit && !currentBitComp) { if (bitPosition == lastDiscrepancy) { direction = 1; } else if (bitPosition > lastDiscrepancy) { direction = 0; lastZero = bitPosition; } else { direction = bitRead(searchAddress[byteNumber], bitNumber); if (!direction) { lastZero = bitPosition; } } } else { direction = currentBit; } bitWrite(searchAddress[byteNumber], bitNumber, direction); oneWire.write_bit(direction); } lastDiscrepancy = lastZero; if (!lastDiscrepancy) { lastDevice = 1; } return 1; }
DS18B20::DS18B20(uint8_t pin) : oneWire(OneWire(pin)) { resetSearch(); sendCommand(SKIP_ROM, READ_POWER_SUPPLY); globalPowerMode = oneWire.read_bit(); while (selectNext()) { uint8_t resolution = getResolution(); if (resolution > globalResolution) { globalResolution = resolution; } numberOfDevices++; } }
void DocumentItem::searchText(const QString &text) { if (text.isEmpty()) { resetSearch(); return; } m_document->cancelSearch(); m_document->resetSearch(PAGEVIEW_SEARCH_ID); m_document->searchText(PAGEVIEW_SEARCH_ID, text, 1, Qt::CaseInsensitive, Okular::Document::AllDocument, true, QColor(100,100,200,40), true); if (!m_searchInProgress) { m_searchInProgress = true; emit searchInProgressChanged(); } }
void WndMacros::resetSearchAndAddMacro() { // reset search if option set QSettings settings; if (settings.value(Resource::path(Resource::SETTINGS_DB_AUTORESETSEARCH),false).toBool()) { resetSearch(); } // add macro instance to current process graph QModelIndex itemIndex = sortModel.mapToSource(vwMacros->currentIndex()); const ModelItem* item = static_cast<const ModelItem*>(itemIndex.internalPointer()); if (itemIndex.isValid() && item && item->type() == ModelItem::MODELITEMTYPE_MACRO) { const app::Macro& macroType = static_cast<const ModelItemMacro*>(item)->macro(); emit addMacroInstance(1,macroType.getTypeSignature()); } }
//----------------------------------------------------------------------- // Class WndMacros //----------------------------------------------------------------------- WndMacros::WndMacros(QWidget *parent) : QWidget(parent), modelFilters(new ViewFilter()), modelViews(new ViewFormat()) { this->setObjectName("WndMacros"); // setup layout of window QLabel* lblSearch = new QLabel(tr("Search:")); QLabel* lblFilter = new QLabel(tr("Filter:")); QLabel* lblView = new QLabel(tr("View:")); btnSearchReset = new QPushButton(QIcon(":/icons/resources/reset.png"),""); btnFilter = new QPushButton(QIcon(":/icons/resources/dbfilter.png"),""); btnView = new QPushButton(QIcon(":/icons/resources/dbview.png"),""); edtSearch = new MacroSearch(); cbFilter = new QComboBox(); cbView = new QComboBox(); vwMacros = new MacroTreeView(); // three column layout for controls QGridLayout* layout = new QGridLayout(); layout->addWidget(lblView,0,0); layout->addWidget(cbView,0,1); layout->addWidget(btnView,0,2); layout->addWidget(lblFilter,1,0); layout->addWidget(cbFilter,1,1); layout->addWidget(btnFilter,1,2); layout->addWidget(lblSearch,2,0); layout->addWidget(edtSearch,2,1); layout->addWidget(btnSearchReset,2,2); layout->setColumnStretch(1,1); layout->setRowStretch(0,0); layout->setRowStretch(1,0); layout->setRowStretch(2,0); layout->setContentsMargins(5,0,5,0); QVBoxLayout* mainLayout = new QVBoxLayout(); mainLayout->setContentsMargins(0,0,0,0); mainLayout->addLayout(layout,0); mainLayout->addWidget(vwMacros,1); this->setLayout(mainLayout); // configure controls cbView->setModel(&modelViews); cbView->setModelColumn(1); cbFilter->setModel(&modelFilters); cbFilter->setModelColumn(1); btnSearchReset->setToolTip(tr("Reset search")); btnSearchReset->setEnabled(false); btnFilter->setToolTip(tr("Manage filter")); btnView->setToolTip(tr("Manage views")); sortModel.setSortCaseSensitivity(Qt::CaseInsensitive); sortModel.setFilterCaseSensitivity(Qt::CaseInsensitive); sortModel.setDynamicSortFilter(true); sortModel.setSourceModel(&modelMacros); vwMacros->setModel(&sortModel); vwMacros->sortByColumn(0,Qt::AscendingOrder); edtSearch->setBuddy(vwMacros); // connect signals connect(&app::Impresario::instance(),SIGNAL(initNonCriticalSuccessful()),this,SLOT(initDBView())); connect(btnSearchReset,SIGNAL(clicked()),this,SLOT(resetSearch())); connect(btnView,SIGNAL(clicked()),this,SLOT(manageViews())); connect(btnFilter,SIGNAL(clicked()),this,SLOT(manageFilters())); connect(cbView,SIGNAL(currentIndexChanged(const QString&)),this,SLOT(changeView(const QString&))); connect(cbFilter,SIGNAL(currentIndexChanged(const QString&)),this,SLOT(changeFilter(const QString&))); connect(edtSearch,SIGNAL(textEdited(QString)),this,SLOT(searchMacro(QString))); connect(edtSearch,SIGNAL(returnPressed()),this,SLOT(resetSearchAndAddMacro())); connect(&modelMacros,SIGNAL(modelUpdateDone(int)),this,SLOT(updateView(int))); connect(&modelViews,SIGNAL(activeViewConfigItemChanged()),this,SLOT(rebuildViewModel())); connect(&modelFilters,SIGNAL(activeViewConfigItemChanged()),this,SLOT(rebuildViewModel())); connect(vwMacros,SIGNAL(activated(QModelIndex)),this,SLOT(resetSearchAndAddMacro())); connect(vwMacros->selectionModel(),SIGNAL(currentChanged(QModelIndex,QModelIndex)),this,SLOT(macroSelectionChanged(QModelIndex,QModelIndex))); connect(vwMacros,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(macroContextMenu(QPoint))); }