void Adc_t::Init() { rccEnableADC1(FALSE); // Enable digital clock SetupClk(adcDiv4); // Setup ADCCLK SetChannelCount(ADC_CHANNEL_CNT); for(uint8_t i = 0; i < ADC_CHANNEL_CNT; i++) ChannelConfig(AdcChannels[i]); // ==== DMA ==== // Here only unchanged parameters of the DMA are configured. dmaStreamAllocate (ADC_DMA, IRQ_PRIO_LOW, AdcTxIrq, NULL); dmaStreamSetPeripheral(ADC_DMA, &ADC1->DR); dmaStreamSetMode (ADC_DMA, ADC_DMA_MODE); }
bool Preset::deserialize(const QByteArray& data) { SimpleDeserializer d(data); if (!d.isValid()) { resetToDefaults(); return false; } if (d.getVersion() == 1) { d.readString(1, &m_group, "default"); d.readString(2, &m_description, "no name"); d.readU64(3, &m_centerFrequency, 0); d.readBlob(4, &m_layout); d.readBlob(5, &m_spectrumConfig); d.readBool(6, &m_sourcePreset, true); qDebug("Preset::deserialize: m_group: %s mode: %s m_description: %s m_centerFrequency: %llu", qPrintable(m_group), m_sourcePreset ? "Rx" : "Tx", qPrintable(m_description), m_centerFrequency); qint32 sourcesCount = 0; d.readS32(20, &sourcesCount, 0); if (sourcesCount >= (200-23)/4) // limit was hit! { sourcesCount = ((200-23)/4) - 1; } m_deviceConfigs.clear(); for (int i = 0; i < sourcesCount; i++) { QString sourceId, sourceSerial; int sourceSequence; QByteArray sourceConfig; d.readString(24 + i*4, &sourceId, ""); d.readString(25 + i*4, &sourceSerial, ""); d.readS32(26 + i*4, &sourceSequence, 0); d.readBlob(27 + i*4, &sourceConfig); if (!sourceId.isEmpty()) { qDebug("Preset::deserialize: source: id: %s, ser: %s, seq: %d", qPrintable(sourceId), qPrintable(sourceSerial), sourceSequence); m_deviceConfigs.append(DeviceConfig(sourceId, sourceSerial, sourceSequence, sourceConfig)); } } qint32 channelCount; d.readS32(200, &channelCount, 0); m_channelConfigs.clear(); for (int i = 0; i < channelCount; i++) { QString channel; QByteArray config; d.readString(201 + i * 2, &channel, "unknown-channel"); d.readBlob(202 + i * 2, &config); qDebug("Preset::deserialize: channel: id: %s", qPrintable(channel)); m_channelConfigs.append(ChannelConfig(channel, config)); } return true; } else { resetToDefaults(); return false; } }