// sends command for all devices on the bus to perform a temperature conversion
void DallasTemperature::requestTemperatures()
{
    _wire->reset();
    _wire->skip();
    _wire->write(STARTCONVO, parasite);

    // ASYNC mode?
    if (!waitForConversion) return;
    blockTillConversionComplete(bitResolution, NULL);
}
void DallasTemperature::requestTemperatures() {
    _wire->reset();
    _wire->skip();
    _wire->write(STARTCONVO, isParasitePowerMode());

#if REQUIRESWAITFORCONVERSION
    // ASYNC mode?
    if (!waitForConversion) return;
    blockTillConversionComplete(getResolution(), NULL);
#endif

}
void DallasTemperature::requestTemperaturesByAddress(const uint8_t* deviceAddress) {
    _wire->reset();
    _wire->select(deviceAddress);
    _wire->write(STARTCONVO, isParasitePowerMode());

    // ASYNC mode?
#if REQUIRESWAITFORCONVERSION
    if (!waitForConversion)
        return;
    blockTillConversionComplete(getResolution(deviceAddress), deviceAddress);
#endif
}
// sends command for one device to perform a temperature by address
// returns FALSE if device is disconnected
// returns TRUE  otherwise
bool DallasTemperature::requestTemperaturesByAddress(uint8_t* deviceAddress)
{
  uint8_t bitResolution = getResolution(deviceAddress);
  if (bitResolution == 0) return false; //Device disconnected

  _wire->reset();
  _wire->select(deviceAddress);
  _wire->write(STARTCONVO, parasite);

  // ASYNC mode?
  if (!waitForConversion) return true;   
  blockTillConversionComplete(&bitResolution, deviceAddress);
  
  return true;
}
// sends command for one device to perform a temperature by address
// returns FALSE if device is disconnected
// returns TRUE  otherwise
bool DallasTemperature::requestTemperaturesByAddress(const uint8_t* deviceAddress)
{
    _wire->reset();
    _wire->select(deviceAddress);
    _wire->write(STARTCONVO, parasite);

    // check device
    ScratchPad scratchPad;
    if (!isConnected(deviceAddress, scratchPad)) return false;

    // ASYNC mode?
    if (!waitForConversion) return true;
    blockTillConversionComplete(getResolution(deviceAddress), deviceAddress);

    return true;
}