Exemple #1
0
void LOW_link::doSearchSequence( const LOW_deviceIDRaw &inBranchVector, 
                                 LOW_deviceIDRaw &outFoundID, LOW_deviceIDRaw &outDiscrVec)
{
  commLock lock( *this);
  
  for( int a=0; a<64; a++) {
    
    bool readB = readDataBit();
    bool cmplB = readDataBit();
  
    if ( readB == cmplB ) {
      writeData( inBranchVector.getBit( a));
      outFoundID.setBit( a, inBranchVector.getBit( a));
      outDiscrVec.setBit( a, true);
    }
    else {
      writeData( readB);
      outFoundID.setBit( a, readB);
      outDiscrVec.setBit( a, false);
    }
    
  }
}
void processRxState(softSerial_t *softSerial)
{
    //digitalToggle(softSerial->txTimerHardware->gpio, softSerial->txTimerHardware->pin);

    if (--softSerial->timerRxCounter > 0) {
        return;
    }

    if (softSerial->isSearchingForStartBit) {
        searchForStartBit(softSerial);
        return;
    }

    if (softSerial->isSearchingForStopBit) {
        searchForStopBit(softSerial);
        return;
    }

    readDataBit(softSerial);
}