mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-30 20:40:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			86 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			86 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #ifndef SPY_SERVER_H
 | ||
|  | #define SPY_SERVER_H
 | ||
|  | 
 | ||
|  | #include <QtCore>
 | ||
|  | 
 | ||
|  | class SpyServerProtocol { | ||
|  | 
 | ||
|  | public: | ||
|  | 
 | ||
|  |     static constexpr int ProtocolID = (2<<24) | 1700; | ||
|  | 
 | ||
|  |     enum Command { | ||
|  |         setStreamingMode = 0, | ||
|  |         setStreamingEnabled = 1, | ||
|  |         setGain = 2, | ||
|  |         setIQFormat = 100, | ||
|  |         setCenterFrequency = 101, | ||
|  |         setIQDecimation = 102, | ||
|  |     }; | ||
|  | 
 | ||
|  |     enum Message { | ||
|  |         DeviceMessage = 0, | ||
|  |         StateMessage = 1, | ||
|  |         IQ8MMessage = 100, | ||
|  |         IQ16Message = 101, | ||
|  |         IQ24Message = 102, | ||
|  |         IQ32Message = 103 | ||
|  |     }; | ||
|  | 
 | ||
|  |     struct Header { | ||
|  |         quint32 m_id; | ||
|  |         quint32 m_message; | ||
|  |         quint32 m_unused1; | ||
|  |         quint32 m_unused2; | ||
|  |         quint32 m_size; | ||
|  |     }; | ||
|  | 
 | ||
|  |     struct Device { | ||
|  |         quint32 m_device; | ||
|  |         quint32 m_serial; | ||
|  |         quint32 m_sampleRate; | ||
|  |         quint32 m_unused1; | ||
|  |         quint32 m_decimationStages;         // 8 for Airspy HF, 11 for Airspy, 9 for E4000/R828D/R820
 | ||
|  |         quint32 m_unused2; | ||
|  |         quint32 m_maxGainIndex;             // 8 for Airspy HF, 21 for Airspy, 14 for E4000, 29 for R828D/R820
 | ||
|  |         quint32 m_minFrequency; | ||
|  |         quint32 m_maxFrequency; | ||
|  |         quint32 m_sampleBits; | ||
|  |         quint32 m_minDecimation; // Set when maximum_bandwidth is set in spyserver.config
 | ||
|  |         quint32 m_unused3; | ||
|  |     }; | ||
|  | 
 | ||
|  |     struct State { | ||
|  |         quint32 m_controllable; | ||
|  |         quint32 m_gain; | ||
|  |         quint32 m_deviceCenterFrequency; | ||
|  |         quint32 m_iqCenterFrequency; | ||
|  |         quint32 m_unused1; | ||
|  |         quint32 m_unused2; | ||
|  |         quint32 m_unused3; | ||
|  |         quint32 m_unused4; | ||
|  |         quint32 m_unused5; | ||
|  |     }; | ||
|  | 
 | ||
|  |     static void encodeUInt32(quint8 *p, quint32 data) | ||
|  |     { | ||
|  |         p[3] = (data >> 24) & 0xff; | ||
|  |         p[2] = (data >> 16) & 0xff; | ||
|  |         p[1] = (data >> 8) & 0xff; | ||
|  |         p[0] = data & 0xff; | ||
|  |     } | ||
|  | 
 | ||
|  |     static quint32 extractUInt32(quint8 *p) | ||
|  |     { | ||
|  |         quint32 data; | ||
|  |         data = (p[0] & 0xff) | ||
|  |             | ((p[1] & 0xff) << 8) | ||
|  |             | ((p[2] & 0xff) << 16) | ||
|  |             | ((p[3] & 0xff) << 24); | ||
|  |         return data; | ||
|  |     } | ||
|  | 
 | ||
|  | }; | ||
|  | 
 | ||
|  | #endif /* SPY_SERVER_H */
 |