Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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++;
    }
}
Exemplo n.º 3
0
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();
    }
}
Exemplo n.º 4
0
 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());
   }
 }
Exemplo n.º 5
0
  //-----------------------------------------------------------------------
  // 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)));
  }