void TEA5767::getRadioInfo(RADIO_INFO *info) { RADIO::getRadioInfo(info); _readRegisters(); if (status[STAT_3] & STAT_3_STEREO) info->stereo = true; info->rssi = (status[STAT_4] & STAT_4_ADC) >> 4; } // getRadioInfo()
/** * @brief Retrieve the real frequency from the chip after automatic tuning. * @return RADIO_FREQ the current frequency. */ RADIO_FREQ TEA5767::getFrequency() { _readRegisters(); unsigned long frequencyW = ((status[REG_1] & REG_1_PLL) << 8) | status[REG_2]; frequencyW = ((frequencyW * QUARTZ / 4) - FILTER) / 10000; return ((RADIO_FREQ)frequencyW); } // getFrequency
void ModbusRtu::readRegisters(FunctionCode function, quint8 slaveAddress, quint16 startReg, quint16 count) { QMutexLocker lock(&mMutex); if (mState == Idle) { _readRegisters(function, slaveAddress, startReg, count); } else { Cmd cmd; cmd.function = function; cmd.slaveAddress = slaveAddress; cmd.reg = startReg; cmd.value = count; mPendingCommands.append(cmd); } }
void ModbusRtu::processPending() { if (mPendingCommands.isEmpty()) return; const Cmd &cmd = mPendingCommands.first(); switch (cmd.function) { case ReadHoldingRegisters: case ReadInputRegisters: _readRegisters(cmd.function, cmd.slaveAddress, cmd.reg, cmd.value); break; case WriteSingleRegister: _writeRegister(cmd.function, cmd.slaveAddress, cmd.reg, cmd.value); break; default: break; } mPendingCommands.removeFirst(); }