mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-11-03 21:20:31 -05:00 
			
		
		
		
	BladeRF input: communicate Fc Pos change to buddy to align center frequencies
This commit is contained in:
		
							parent
							
								
									5c09985664
								
							
						
					
					
						commit
						2a1f0a0d0e
					
				@ -35,31 +35,37 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public:
 | 
					    public:
 | 
				
			||||||
        uint64_t getCenterFrequency() const { return m_centerFrequency; }
 | 
					        uint64_t getCenterFrequency() const { return m_centerFrequency; }
 | 
				
			||||||
 | 
					        int      getFcPos() const { return m_fcPos; }
 | 
				
			||||||
        int      getDevSampleRate() const { return m_devSampleRate; }
 | 
					        int      getDevSampleRate() const { return m_devSampleRate; }
 | 
				
			||||||
        bool     getRxElseTx() const { return m_rxElseTx; }
 | 
					        bool     getRxElseTx() const { return m_rxElseTx; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        static MsgReportBuddyChange* create(
 | 
					        static MsgReportBuddyChange* create(
 | 
				
			||||||
                uint64_t centerFrequency,
 | 
					                uint64_t centerFrequency,
 | 
				
			||||||
 | 
					                int fcPos,
 | 
				
			||||||
                int devSampleRate,
 | 
					                int devSampleRate,
 | 
				
			||||||
                bool rxElseTx)
 | 
					                bool rxElseTx)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            return new MsgReportBuddyChange(
 | 
					            return new MsgReportBuddyChange(
 | 
				
			||||||
                    centerFrequency,
 | 
					                    centerFrequency,
 | 
				
			||||||
 | 
					                    fcPos,
 | 
				
			||||||
                    devSampleRate,
 | 
					                    devSampleRate,
 | 
				
			||||||
                    rxElseTx);
 | 
					                    rxElseTx);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private:
 | 
					    private:
 | 
				
			||||||
        uint64_t m_centerFrequency; //!< Center frequency
 | 
					        uint64_t m_centerFrequency; //!< Center frequency
 | 
				
			||||||
 | 
					        int  m_fcPos;               //!< Center frequency position
 | 
				
			||||||
        int  m_devSampleRate;       //!< device/host sample rate
 | 
					        int  m_devSampleRate;       //!< device/host sample rate
 | 
				
			||||||
        bool m_rxElseTx;            //!< tells which side initiated the message
 | 
					        bool m_rxElseTx;            //!< tells which side initiated the message
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        MsgReportBuddyChange(
 | 
					        MsgReportBuddyChange(
 | 
				
			||||||
                uint64_t centerFrequency,
 | 
					                uint64_t centerFrequency,
 | 
				
			||||||
 | 
					                int fcPos,
 | 
				
			||||||
                int devSampleRate,
 | 
					                int devSampleRate,
 | 
				
			||||||
                bool rxElseTx) :
 | 
					                bool rxElseTx) :
 | 
				
			||||||
            Message(),
 | 
					            Message(),
 | 
				
			||||||
            m_centerFrequency(centerFrequency),
 | 
					            m_centerFrequency(centerFrequency),
 | 
				
			||||||
 | 
					            m_fcPos(fcPos),
 | 
				
			||||||
            m_devSampleRate(devSampleRate),
 | 
					            m_devSampleRate(devSampleRate),
 | 
				
			||||||
            m_rxElseTx(rxElseTx)
 | 
					            m_rxElseTx(rxElseTx)
 | 
				
			||||||
        { }
 | 
					        { }
 | 
				
			||||||
 | 
				
			|||||||
@ -602,6 +602,13 @@ bool BladeRF2Input::handleMessage(const Message& message)
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                settings.m_devSampleRate = report.getDevSampleRate();
 | 
					                settings.m_devSampleRate = report.getDevSampleRate();
 | 
				
			||||||
                settings.m_centerFrequency = report.getCenterFrequency();
 | 
					                settings.m_centerFrequency = report.getCenterFrequency();
 | 
				
			||||||
 | 
					                settings.m_fcPos = (BladeRF2InputSettings::fcPos_t) report.getFcPos();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                BladeRF2InputThread *inputThread = findThread();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (inputThread) {
 | 
				
			||||||
 | 
					                    inputThread->setFcPos(requestedChannel, (int) settings.m_fcPos);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                status = bladerf_get_bandwidth(dev, BLADERF_CHANNEL_RX(requestedChannel), &tmp_uint);
 | 
					                status = bladerf_get_bandwidth(dev, BLADERF_CHANNEL_RX(requestedChannel), &tmp_uint);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -878,6 +885,7 @@ bool BladeRF2Input::applySettings(const BladeRF2InputSettings& settings, bool fo
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            DeviceBladeRF2Shared::MsgReportBuddyChange *report = DeviceBladeRF2Shared::MsgReportBuddyChange::create(
 | 
					            DeviceBladeRF2Shared::MsgReportBuddyChange *report = DeviceBladeRF2Shared::MsgReportBuddyChange::create(
 | 
				
			||||||
                    settings.m_centerFrequency,
 | 
					                    settings.m_centerFrequency,
 | 
				
			||||||
 | 
					                    (int) settings.m_fcPos,
 | 
				
			||||||
                    settings.m_devSampleRate,
 | 
					                    settings.m_devSampleRate,
 | 
				
			||||||
                    true);
 | 
					                    true);
 | 
				
			||||||
            (*itSource)->getSampleSourceInputMessageQueue()->push(report);
 | 
					            (*itSource)->getSampleSourceInputMessageQueue()->push(report);
 | 
				
			||||||
@ -894,6 +902,7 @@ bool BladeRF2Input::applySettings(const BladeRF2InputSettings& settings, bool fo
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            DeviceBladeRF2Shared::MsgReportBuddyChange *report = DeviceBladeRF2Shared::MsgReportBuddyChange::create(
 | 
					            DeviceBladeRF2Shared::MsgReportBuddyChange *report = DeviceBladeRF2Shared::MsgReportBuddyChange::create(
 | 
				
			||||||
                    settings.m_centerFrequency,
 | 
					                    settings.m_centerFrequency,
 | 
				
			||||||
 | 
					                    (int) settings.m_fcPos,
 | 
				
			||||||
                    settings.m_devSampleRate,
 | 
					                    settings.m_devSampleRate,
 | 
				
			||||||
                    true);
 | 
					                    true);
 | 
				
			||||||
            (*itSink)->getSampleSinkInputMessageQueue()->push(report);
 | 
					            (*itSink)->getSampleSinkInputMessageQueue()->push(report);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user