From 37d8474260d11e4a13388645c2d64f857d1bbbc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Fri, 1 Apr 2022 23:01:22 +0200 Subject: [PATCH 1/3] Added stages to FPGA protocol --- Documentation/DeveloperInfo/FPGA_protocol.pdf | Bin 160589 -> 161955 bytes Documentation/DeveloperInfo/FPGA_protocol.tex | 37 ++++++-- FPGA/VNA/SPIConfig.vhd | 14 ++-- FPGA/VNA/Sweep.vhd | 79 +++++++++--------- FPGA/VNA/VNA.gise | 15 ++-- FPGA/VNA/VNA.xise | 2 +- FPGA/VNA/ipcore_dir/DSP_SLICE.xise | 2 +- FPGA/VNA/ipcore_dir/PLL.xise | 2 +- FPGA/VNA/ipcore_dir/SinCos.xise | 2 +- FPGA/VNA/ipcore_dir/SweepConfigMem.xise | 2 +- FPGA/VNA/ipcore_dir/result_bram.xise | 2 +- FPGA/VNA/top.bin | Bin 341712 -> 341436 bytes FPGA/VNA/top.vhd | 52 +++++++----- .../.settings/language.settings.xml | 4 +- .../Application/Drivers/FPGA/FPGA.cpp | 13 ++- .../Application/Drivers/FPGA/FPGA.hpp | 9 +- Software/VNA_embedded/Application/Manual.cpp | 3 +- .../Application/SpectrumAnalyzer.cpp | 3 +- Software/VNA_embedded/Application/VNA.cpp | 46 +++++----- 19 files changed, 169 insertions(+), 118 deletions(-) diff --git a/Documentation/DeveloperInfo/FPGA_protocol.pdf b/Documentation/DeveloperInfo/FPGA_protocol.pdf index d457216ebed4bdb6e39cad5952a98265e7ed107e..c30225d33bd3b7e2fc5449d7948ecb86ab06b771 100644 GIT binary patch delta 93030 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

eC`UC+2*c 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 diff --git a/Documentation/DeveloperInfo/FPGA_protocol.tex b/Documentation/DeveloperInfo/FPGA_protocol.tex index 2f3563f..459343e 100644 --- a/Documentation/DeveloperInfo/FPGA_protocol.tex +++ b/Documentation/DeveloperInfo/FPGA_protocol.tex @@ -343,9 +343,10 @@ The register contains the number of points per sweep negative one, e.g. set to 1 \rwbits{9}{2}{Window[1:0]} \rwbits{11}{1}{SCEN} \rwbits{12}{1}{LCEN} -\rwbits{13}{1}{EXP2} -\rwbits{14}{1}{EXP1} -\rwbits{15}{1}{PSEN} +\robits{13}{3}{reserved} +%\rwbits{13}{1}{EXP2} +%\rwbits{14}{1}{EXP1} +%\rwbits{15}{1}{PSEN} \end{tikzpicture} \end{center} \begin{itemize} @@ -371,8 +372,8 @@ Setting & Window type\\ \end{center} \item \textbf{SCEN:}{Source chip enable} \item \textbf{LCEN:}{LO chip enable} -\item \textbf{EXP1:}{Excite Port1 during sweep} -\item \textbf{EXP2:}{Excite Port2 during sweep} +%\item \textbf{EXP1:}{Excite Port1 during sweep} +%\item \textbf{EXP2:}{Excite Port2 during sweep} \item \textbf{PSEN:}{Port switch enable} \end{itemize} @@ -407,6 +408,27 @@ $$ PhaseInc = \frac{4096 * f_{IF2}}{SR_{ADC}} $$ For the the default IF frequency of $f_{IF2} = \SI{250}{\kilo\hertz}$ this evaluates to 10*Presc (see ADC prescaler register). \end{itemize} +\subsection{Sweep setup: 0x06} +Each point in the sweep is done in stages. Each stage consists of (optionally) routing the source signal to one of the ports and sampling of all ADCs. A "new data" interrupt is triggered after each stage. +\label{reg:sweepsetup} +\begin{center} +\begin{tikzpicture} +\bitrect{16}{16-\bit} +\rwbits{0}{3}{Stages} +\rwbits{3}{1}{IH} +\robits{4}{6}{reserved} +\rwbits{10}{3}{Port 1 stage} +\rwbits{13}{3}{Port 2 stage} +\end{tikzpicture} +\end{center} +\begin{itemize} +\item \textbf{Stages} Number of stages per point - 1. Normally the number of stages is equal to the number of ports but it can also be less (e.g. if only S11 is measured). +\item \textbf{IH:} Individual halt: Sets the behavior of the "halt sweep" bit (see section~\ref{sweepconfig}). If 1, the sampling is halted before each stage. If 0, the sampling is only halted before the point and all stages are executed without additional halts inbetween. +\item \textbf{Port 1 stage} Number of stage during which the source signal is routed to port 1. Must not have the same value as Port 2 stage. +\item \textbf{Port 2 stage} Number of stage during which the source signal is routed to port 2. Must not have the same value as Port 1 stage. + +\end{itemize} + \subsection{MAX2871 Default Values Registers: 0x08-0x0F} See datasheet of MAX2871 for bit descriptions. Bits for the fields N, FRAC, M, VCO and DIV\_A are "don't care" as they will be overwritten by the SweepConfig setting. \begin{center} @@ -574,12 +596,11 @@ Setting & Selected Power\\ \section{Sampling Result} \label{result} -Each point in the sweep generates two sampling results. The first one contains the measurement when the source was routed to Port 1, the second sampling result was taken when the source was routed to Port 2. +Each point in the sweep generates a sampling results for each stage (see section~\ref{reg:sweepsetup}). \begin{center} \begin{tikzpicture} \bitrect{16}{304-\bit} -\rwbits{0}{1}{SRC} -\robits{1}{2}{reserved} +\rwbits{0}{3}{STAGE[2:0]} \rwbits{3}{13}{POINT\_NUMBER[12:0]} \end{tikzpicture} \begin{tikzpicture} diff --git a/FPGA/VNA/SPIConfig.vhd b/FPGA/VNA/SPIConfig.vhd index 62307c6..8503c4b 100644 --- a/FPGA/VNA/SPIConfig.vhd +++ b/FPGA/VNA/SPIConfig.vhd @@ -50,8 +50,10 @@ entity SPICommands is SWEEP_WRITE : out STD_LOGIC_VECTOR (0 downto 0); SWEEP_POINTS : out STD_LOGIC_VECTOR (12 downto 0); NSAMPLES : out STD_LOGIC_VECTOR (12 downto 0); - EXCITE_PORT1 : out STD_LOGIC; - EXCITE_PORT2 : out STD_LOGIC; + STAGES : out STD_LOGIC_VECTOR (2 downto 0); + INDIVIDUAL_HALT : out STD_LOGIC; + PORT1_STAGE : out STD_LOGIC_VECTOR (2 downto 0); + PORT2_STAGE : out STD_LOGIC_VECTOR (2 downto 0); PORT1_EN : out STD_LOGIC; PORT2_EN : out STD_LOGIC; REF_EN : out STD_LOGIC; @@ -154,8 +156,6 @@ begin SOURCE_CE_EN <= '0'; LO_CE_EN <= '0'; PORTSWITCH_EN <= '0'; - EXCITE_PORT1 <= '0'; - EXCITE_PORT2 <= '0'; LEDS <= (others => '1'); WINDOW_SETTING <= "00"; unread_sampling_data <= '0'; @@ -243,10 +243,12 @@ begin WINDOW_SETTING <= spi_buf_out(6 downto 5); SOURCE_CE_EN <= spi_buf_out(4); LO_CE_EN <= spi_buf_out(3); - EXCITE_PORT1 <= spi_buf_out(1); - EXCITE_PORT2 <= spi_buf_out(2); when 4 => ADC_PRESCALER <= spi_buf_out(7 downto 0); when 5 => ADC_PHASEINC <= spi_buf_out(11 downto 0); + when 6 => STAGES <= spi_buf_out(15 downto 13); + INDIVIDUAL_HALT <= spi_buf_out(12); + PORT1_STAGE <= spi_buf_out(5 downto 3); + PORT2_STAGE <= spi_buf_out(2 downto 0); when 8 => MAX2871_DEF_0(15 downto 0) <= spi_buf_out; when 9 => MAX2871_DEF_0(31 downto 16) <= spi_buf_out; when 10 => MAX2871_DEF_1(15 downto 0) <= spi_buf_out; diff --git a/FPGA/VNA/Sweep.vhd b/FPGA/VNA/Sweep.vhd index 223b911..f2ff7d0 100644 --- a/FPGA/VNA/Sweep.vhd +++ b/FPGA/VNA/Sweep.vhd @@ -40,7 +40,6 @@ entity Sweep is SAMPLING_BUSY : in STD_LOGIC; SAMPLING_DONE : in STD_LOGIC; START_SAMPLING : out STD_LOGIC; - PORT_SELECT : out STD_LOGIC; BAND_SELECT : out STD_LOGIC; -- fixed part of source/LO registers MAX2871_DEF_4 : in STD_LOGIC_VECTOR (31 downto 0); @@ -67,8 +66,13 @@ entity Sweep is --SETTLING_TIME : in STD_LOGIC_VECTOR (15 downto 0); - EXCITE_PORT1 : in STD_LOGIC; - EXCITE_PORT2 : in STD_LOGIC; + STAGES : in STD_LOGIC_VECTOR (2 downto 0); + INDIVIDUAL_HALT : in STD_LOGIC; + PORT1_STAGE : in STD_LOGIC_VECTOR (2 downto 0); + PORT2_STAGE : in STD_LOGIC_VECTOR (2 downto 0); + + PORT1_ACTIVE : out STD_LOGIC; + PORT2_ACTIVE : out STD_LOGIC; -- Debug signals DEBUG_STATUS : out STD_LOGIC_VECTOR (10 downto 0); @@ -78,10 +82,11 @@ end Sweep; architecture Behavioral of Sweep is signal point_cnt : unsigned(12 downto 0); - type Point_states is (TriggerSetup, SettingUp, SettlingPort1, ExcitingPort1, SettlingPort2, ExcitingPort2, NextPoint, Done); + type Point_states is (TriggerSetup, SettingUp, Settling, Exciting, NextPoint, Done); signal state : Point_states; signal settling_cnt : unsigned(15 downto 0); signal settling_time : unsigned(15 downto 0); + signal stage_cnt : unsigned (2 downto 0); signal config_reg : std_logic_vector(95 downto 0); begin @@ -121,10 +126,8 @@ begin DEBUG_STATUS(10 downto 8) <= "000" when state = TriggerSetup else "001" when state = SettingUp else - "010" when state = SettlingPort1 else - "011" when state = ExcitingPort1 else - "100" when state = SettlingPort2 else - "101" when state = ExcitingPort2 else + "010" when state = Settling else + "011" when state = Exciting else "110" when state = Done else "111"; DEBUG_STATUS(7) <= PLL_RELOAD_DONE; @@ -139,15 +142,19 @@ begin if rising_edge(CLK) then if RESET = '1' then point_cnt <= (others => '0'); + stage_cnt <= (others => '0'); state <= TriggerSetup; START_SAMPLING <= '0'; RELOAD_PLL_REGS <= '0'; SWEEP_HALTED <= '0'; RESULT_INDEX <= (others => '1'); + PORT1_ACTIVE <= '0'; + PORT2_ACTIVE <= '0'; else case state is when TriggerSetup => RELOAD_PLL_REGS <= '1'; + stage_cnt <= (others => '0'); if PLL_RELOAD_DONE = '0' then state <= SettingUp; end if; @@ -166,60 +173,52 @@ begin -- check if halted sweep is resumed if config_reg(95) = '0' or SWEEP_RESUME = '1' then SWEEP_HALTED <= '0'; - if EXCITE_PORT1 = '1' then - state <= SettlingPort1; - else - state <= SettlingPort2; - end if; + state <= Settling; end if; end if; - when SettlingPort1 => - PORT_SELECT <= '1'; + when Settling => + if std_logic_vector(stage_cnt) = PORT1_STAGE then + PORT1_ACTIVE <= '1'; + else + PORT1_ACTIVE <= '0'; + end if; + if std_logic_vector(stage_cnt) = PORT2_STAGE then + PORT2_ACTIVE <= '1'; + else + PORT2_ACTIVE <= '0'; + end if; -- wait for settling time to elapse if settling_cnt > 0 then settling_cnt <= settling_cnt - 1; else START_SAMPLING <= '1'; if SAMPLING_BUSY = '1' then - state <= ExcitingPort1; + state <= Exciting; end if; end if; - when ExcitingPort1 => + when Exciting => -- wait for sampling to finish START_SAMPLING <= '0'; if SAMPLING_BUSY = '0' then - RESULT_INDEX <= "000" & std_logic_vector(point_cnt); - if EXCITE_PORT2 = '1' then - state <= SettlingPort2; + RESULT_INDEX <= std_logic_vector(stage_cnt) & std_logic_vector(point_cnt); + if stage_cnt < unsigned(STAGES) then + stage_cnt <= stage_cnt + 1; + if INDIVIDUAL_HALT = '1' then + -- wait for HALT SWEEP bit again if set + state <= SettingUp; + else + -- no need to halt again, can go directly to settling + state <= Settling; + end if; else state <= NextPoint; end if; settling_cnt <= settling_time; end if; - when SettlingPort2 => - PORT_SELECT <= '0'; - -- wait for settling time to elapse - if settling_cnt > 0 then - settling_cnt <= settling_cnt - 1; - else - START_SAMPLING <= '1'; - if SAMPLING_BUSY = '1' then - state <= ExcitingPort2; - end if; - end if; - when ExcitingPort2 => - -- wait for sampling to finish - START_SAMPLING <= '0'; - RESULT_INDEX <= "100" & std_logic_vector(point_cnt); - if SAMPLING_BUSY = '0' then - state <= NextPoint; - end if; when NextPoint => if point_cnt < unsigned(NPOINTS) then point_cnt <= point_cnt + 1; state <= TriggerSetup; - -- initial port depends on whether port 1 is exited - PORT_SELECT <= EXCITE_PORT1; else point_cnt <= (others => '0'); state <= Done; diff --git a/FPGA/VNA/VNA.gise b/FPGA/VNA/VNA.gise index 238cc3f..67a2b99 100644 --- a/FPGA/VNA/VNA.gise +++ b/FPGA/VNA/VNA.gise @@ -224,7 +224,7 @@ - + @@ -253,7 +253,7 @@ - + @@ -275,7 +275,7 @@ - + @@ -284,7 +284,7 @@ - + @@ -298,7 +298,7 @@ - + @@ -312,9 +312,8 @@ - + - @@ -366,7 +365,7 @@ - + diff --git a/FPGA/VNA/VNA.xise b/FPGA/VNA/VNA.xise index 7f1807b..23fe1cf 100644 --- a/FPGA/VNA/VNA.xise +++ b/FPGA/VNA/VNA.xise @@ -12,7 +12,7 @@ - + diff --git a/FPGA/VNA/ipcore_dir/DSP_SLICE.xise b/FPGA/VNA/ipcore_dir/DSP_SLICE.xise index b4222ea..92644f3 100644 --- a/FPGA/VNA/ipcore_dir/DSP_SLICE.xise +++ b/FPGA/VNA/ipcore_dir/DSP_SLICE.xise @@ -12,7 +12,7 @@ - + diff --git a/FPGA/VNA/ipcore_dir/PLL.xise b/FPGA/VNA/ipcore_dir/PLL.xise index ceaa4a6..b0b1f74 100644 --- a/FPGA/VNA/ipcore_dir/PLL.xise +++ b/FPGA/VNA/ipcore_dir/PLL.xise @@ -12,7 +12,7 @@ - + diff --git a/FPGA/VNA/ipcore_dir/SinCos.xise b/FPGA/VNA/ipcore_dir/SinCos.xise index 423665e..48631e5 100644 --- a/FPGA/VNA/ipcore_dir/SinCos.xise +++ b/FPGA/VNA/ipcore_dir/SinCos.xise @@ -12,7 +12,7 @@ - + diff --git a/FPGA/VNA/ipcore_dir/SweepConfigMem.xise b/FPGA/VNA/ipcore_dir/SweepConfigMem.xise index e1d6091..eb7b0f0 100644 --- a/FPGA/VNA/ipcore_dir/SweepConfigMem.xise +++ b/FPGA/VNA/ipcore_dir/SweepConfigMem.xise @@ -12,7 +12,7 @@ - + diff --git a/FPGA/VNA/ipcore_dir/result_bram.xise b/FPGA/VNA/ipcore_dir/result_bram.xise index dc81dae..caffa95 100644 --- a/FPGA/VNA/ipcore_dir/result_bram.xise +++ b/FPGA/VNA/ipcore_dir/result_bram.xise @@ -12,7 +12,7 @@ - + diff --git a/FPGA/VNA/top.bin b/FPGA/VNA/top.bin index 313f393954212f7d820c56c8ec6cec845a787eb0..1ed33391eb13289944ec72ec385447ab1d01a342 100644 GIT binary patch literal 341436 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

I@A|;Pp4k}H1*zjGci= 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 literal 341712 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 sampling_busy, SAMPLING_DONE => sampling_done, START_SAMPLING => sampling_start, - PORT_SELECT => sweep_port_select, BAND_SELECT => sweep_band, MAX2871_DEF_4 => def_reg_4, MAX2871_DEF_3 => def_reg_3, @@ -670,8 +677,13 @@ begin SWEEP_RESUME => sweep_resume, ATTENUATOR => ATTENUATION, SOURCE_FILTER => source_filter, - EXCITE_PORT1 => sweep_excite_port1, - EXCITE_PORT2 => sweep_excite_port2, + STAGES => sweep_stages, + INDIVIDUAL_HALT => sweep_individual_halt, + PORT1_STAGE => sweep_port1_stage, + PORT2_STAGE => sweep_port2_stage, + + PORT1_ACTIVE => sweep_excite_port1, + PORT2_ACTIVE => sweep_excite_port2, DEBUG_STATUS => debug, RESULT_INDEX => sampling_result(303 downto 288) ); @@ -740,8 +752,10 @@ begin RESET_MINMAX => adc_reset_minmax, SWEEP_HALTED => sweep_halted, SWEEP_RESUME => sweep_resume, - EXCITE_PORT1 => sweep_excite_port1, - EXCITE_PORT2 => sweep_excite_port2, + STAGES => sweep_stages, + INDIVIDUAL_HALT => sweep_individual_halt, + PORT1_STAGE => sweep_port1_stage, + PORT2_STAGE => sweep_port2_stage, DFT_BIN1_PHASEINC => dft_bin1_phaseinc, DFT_DIFFBIN_PHASEINC => dft_diffbin_phaseinc, DFT_RESULT_READY => dft_ready, diff --git a/Software/VNA_embedded/.settings/language.settings.xml b/Software/VNA_embedded/.settings/language.settings.xml index 0c8cdbb..87b5f55 100644 --- a/Software/VNA_embedded/.settings/language.settings.xml +++ b/Software/VNA_embedded/.settings/language.settings.xml @@ -6,7 +6,7 @@ - + @@ -18,7 +18,7 @@ - + diff --git a/Software/VNA_embedded/Application/Drivers/FPGA/FPGA.cpp b/Software/VNA_embedded/Application/Drivers/FPGA/FPGA.cpp index bbafe92..7f47c4e 100644 --- a/Software/VNA_embedded/Application/Drivers/FPGA/FPGA.cpp +++ b/Software/VNA_embedded/Application/Drivers/FPGA/FPGA.cpp @@ -130,6 +130,17 @@ void FPGA::SetSamplesPerPoint(uint32_t nsamples) { WriteRegister(Reg::SamplesPerPoint, nsamples); } +void FPGA::SetupSweep(uint8_t stages, uint8_t port1_stage, uint8_t port2_stage, bool individual_halt) { + uint16_t value = 0x0000; + value |= (uint16_t) (stages & 0x07) << 13; + if(individual_halt) { + value |= 0x1000; + } + value |= (port1_stage & 0x07) << 3; + value |= (port2_stage & 0x07) << 0; + WriteRegister(Reg::SweepSetup, value); +} + void FPGA::Enable(Periphery p, bool enable) { if (enable) { SysCtrlReg |= (uint16_t) p; @@ -282,7 +293,7 @@ void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) { result.RefI = assembleSampleResultValue(&raw[8]); result.RefQ = assembleSampleResultValue(&raw[2]); result.pointNum = (uint16_t)(raw[38]&0x1F) << 8 | raw[39]; - result.activePort = raw[38] & 0x80 ? 1 : 0; + result.stageNum = (raw[38] & 0xE0) >> 5; High(CS); busy_reading = false; if ((status & 0x0004) && callback) { diff --git a/Software/VNA_embedded/Application/Drivers/FPGA/FPGA.hpp b/Software/VNA_embedded/Application/Drivers/FPGA/FPGA.hpp index 6540fd6..98cd586 100644 --- a/Software/VNA_embedded/Application/Drivers/FPGA/FPGA.hpp +++ b/Software/VNA_embedded/Application/Drivers/FPGA/FPGA.hpp @@ -17,6 +17,7 @@ enum class Reg { SystemControl = 0x03, ADCPrescaler = 0x04, PhaseIncrement = 0x05, + SweepSetup = 0x06, MAX2871Def0LSB = 0x08, MAX2871Def0MSB = 0x09, MAX2871Def1LSB = 0x0A, @@ -33,8 +34,8 @@ using SamplingResult = struct _samplingresult { int64_t P1I, P1Q; int64_t P2I, P2Q; int64_t RefI, RefQ; - uint16_t pointNum :15; - uint16_t activePort :1; + uint16_t pointNum :13; + uint16_t stageNum :3; }; using DFTResult = struct _dftresult { @@ -59,8 +60,7 @@ enum class Periphery { DebugLED = 0x0080, SourceChip = 0x0010, LO1Chip = 0x0008, - ExcitePort2 = 0x0004, - ExcitePort1 = 0x0002, + PortSwitch = 0x0001, }; @@ -113,6 +113,7 @@ bool Init(HaltedCallback cb = nullptr); void WriteRegister(FPGA::Reg reg, uint16_t value); void SetNumberOfPoints(uint16_t npoints); void SetSamplesPerPoint(uint32_t nsamples); +void SetupSweep(uint8_t stages, uint8_t port1_stage, uint8_t port2_stage, bool individual_halt = false); void Enable(Periphery p, bool enable = true); void Disable(Periphery p); bool IsEnabled(Periphery p); diff --git a/Software/VNA_embedded/Application/Manual.cpp b/Software/VNA_embedded/Application/Manual.cpp index 9229457..e48f334 100644 --- a/Software/VNA_embedded/Application/Manual.cpp +++ b/Software/VNA_embedded/Application/Manual.cpp @@ -69,8 +69,7 @@ void Manual::Setup(Protocol::ManualControl m) { FPGA::Enable(FPGA::Periphery::Port1Mixer, m.Port1EN); FPGA::Enable(FPGA::Periphery::Port2Mixer, m.Port2EN); FPGA::Enable(FPGA::Periphery::RefMixer, m.RefEN); - FPGA::Enable(FPGA::Periphery::ExcitePort1, m.PortSwitch == 0); - FPGA::Enable(FPGA::Periphery::ExcitePort2, m.PortSwitch == 1); + FPGA::SetupSweep(0, m.PortSwitch == 1, m.PortSwitch == 0); FPGA::Enable(FPGA::Periphery::PortSwitch); // Enable new data and sweep halt interrupt diff --git a/Software/VNA_embedded/Application/SpectrumAnalyzer.cpp b/Software/VNA_embedded/Application/SpectrumAnalyzer.cpp index e9c60b6..c5cc48d 100644 --- a/Software/VNA_embedded/Application/SpectrumAnalyzer.cpp +++ b/Software/VNA_embedded/Application/SpectrumAnalyzer.cpp @@ -209,8 +209,7 @@ void SA::Setup(Protocol::SpectrumAnalyzerSettings settings) { FPGA::SetWindow((FPGA::Window) s.WindowType); FPGA::Enable(FPGA::Periphery::LO1Chip); FPGA::Enable(FPGA::Periphery::LO1RF); - FPGA::Enable(FPGA::Periphery::ExcitePort1, s.trackingGeneratorPort == 0); - FPGA::Enable(FPGA::Periphery::ExcitePort2, s.trackingGeneratorPort == 1); + FPGA::SetupSweep(0, s.trackingGeneratorPort == 1, s.trackingGeneratorPort == 0); FPGA::Enable(FPGA::Periphery::PortSwitch, s.trackingGenerator); FPGA::Enable(FPGA::Periphery::Amplifier, s.trackingGenerator); FPGA::Enable(FPGA::Periphery::Port1Mixer); diff --git a/Software/VNA_embedded/Application/VNA.cpp b/Software/VNA_embedded/Application/VNA.cpp index 3e9b9de..8a856dc 100644 --- a/Software/VNA_embedded/Application/VNA.cpp +++ b/Software/VNA_embedded/Application/VNA.cpp @@ -21,8 +21,9 @@ static Protocol::SweepSettings settings; static uint16_t pointCnt; +static uint8_t stageCnt; +static uint8_t stages; static double logMultiplier, logFrequency; -static bool excitingPort1; static Protocol::Datapoint data; static bool active = false; static Si5351C::DriveStrength fixedPowerLowband; @@ -278,12 +279,22 @@ bool VNA::Setup(Protocol::SweepSettings s) { FPGA::Enable(FPGA::Periphery::SourceRF); FPGA::Enable(FPGA::Periphery::LO1Chip); FPGA::Enable(FPGA::Periphery::LO1RF); - FPGA::Enable(FPGA::Periphery::ExcitePort1, s.excitePort1); - FPGA::Enable(FPGA::Periphery::ExcitePort2, s.excitePort2); + if(s.excitePort1 && s.excitePort2) { + // two stages, port 1 first, followed by port 2 + FPGA::SetupSweep(1, 0, 1); + stages = 2; + } else if(s.excitePort1) { + // one stage, port 1 only + FPGA::SetupSweep(0, 0, 1); + stages = 1; + } else { + // one stage, port 2 only + FPGA::SetupSweep(0, 1, 0); + stages = 1; + } FPGA::Enable(FPGA::Periphery::PortSwitch); pointCnt = 0; - // starting port depends on whether port 1 is active in sweep - excitingPort1 = s.excitePort1; + stageCnt = 0; IFTableIndexCnt = 0; adcShifted = false; active = true; @@ -306,8 +317,8 @@ bool VNA::MeasurementDone(const FPGA::SamplingResult &result) { if(!active) { return false; } - if(result.pointNum != pointCnt || !result.activePort != excitingPort1) { - LOG_WARN("Indicated point does not match (%u != %u, %d != %d)", result.pointNum, pointCnt, result.activePort, !excitingPort1); + if(result.pointNum != pointCnt || result.stageNum != stageCnt) { + LOG_WARN("Indicated point does not match (%u != %u, %d != %d)", result.pointNum, pointCnt, result.stageNum, stageCnt); FPGA::AbortSweep(); return false; } @@ -320,29 +331,24 @@ bool VNA::MeasurementDone(const FPGA::SamplingResult &result) { data.pointNum = pointCnt; data.frequency = getPointFrequency(pointCnt); data.cdbm = settings.cdbm_excitation_start + (settings.cdbm_excitation_stop - settings.cdbm_excitation_start) * pointCnt / (settings.points - 1); - if(excitingPort1) { + if(stageCnt == 0 && settings.excitePort1) { + // stimulus is present at port 1 data.real_S11 = port1.real(); data.imag_S11 = port1.imag(); data.real_S21 = port2.real(); data.imag_S21 = port2.imag(); } else { + // stimulus is present at port 2 data.real_S12 = port1.real(); data.imag_S12 = port1.imag(); data.real_S22 = port2.real(); data.imag_S22 = port2.imag(); } - // figure out whether this sweep point is complete and which port gets excited next - bool pointComplete = false; - if(settings.excitePort1 == 1 && settings.excitePort2 == 1) { - // point is complete when port 2 was active - pointComplete = !excitingPort1; - // next measurement will be from other port - excitingPort1 = !excitingPort1; - } else { - // only one port active, point is complete after every measurement - pointComplete = true; - } - if(pointComplete) { + // figure out whether this sweep point is complete + stageCnt++; + if(stageCnt == stages) { + // point is complete + stageCnt = 0; STM::DispatchToInterrupt(PassOnData); pointCnt++; if (pointCnt >= settings.points) { From c6ef075f4f662e51765c5d6948d256a3d996b3f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sun, 3 Apr 2022 20:26:30 +0200 Subject: [PATCH 2/3] split device info and status protocol messages --- .../Calibration/amplitudecaldialog.cpp | 6 +- Software/PC_Application/Device/device.cpp | 82 +++++++++++++------ Software/PC_Application/Device/device.h | 19 +++-- .../Device/manualcontroldialog.cpp | 4 +- .../Device/manualcontroldialog.h | 2 +- .../PC_Application/Generator/generator.cpp | 2 +- .../Generator/signalgenwidget.cpp | 29 +++---- .../Generator/signalgenwidget.h | 3 +- .../SpectrumAnalyzer/spectrumanalyzer.cpp | 56 ++++++------- Software/PC_Application/VNA/vna.cpp | 50 +++++------ Software/PC_Application/appwindow.cpp | 48 +++++------ Software/PC_Application/appwindow.h | 4 +- Software/VNA_embedded/Application/App.cpp | 15 +++- .../Application/Communication/Protocol.cpp | 5 +- .../Application/Communication/Protocol.hpp | 42 ++++++---- .../VNA_embedded/Application/Generator.cpp | 2 +- .../VNA_embedded/Application/Hardware.cpp | 26 +++--- .../VNA_embedded/Application/Hardware.hpp | 13 +-- Software/VNA_embedded/Application/Manual.cpp | 34 ++++---- Software/VNA_embedded/Application/Manual.hpp | 2 +- .../Application/SpectrumAnalyzer.cpp | 4 +- Software/VNA_embedded/Application/VNA.cpp | 4 +- 22 files changed, 248 insertions(+), 204 deletions(-) diff --git a/Software/PC_Application/Calibration/amplitudecaldialog.cpp b/Software/PC_Application/Calibration/amplitudecaldialog.cpp index adb0b0c..b75e7df 100644 --- a/Software/PC_Application/Calibration/amplitudecaldialog.cpp +++ b/Software/PC_Application/Calibration/amplitudecaldialog.cpp @@ -253,7 +253,7 @@ void AmplitudeCalDialog::RemoveAllPoints() bool AmplitudeCalDialog::AddPoint(AmplitudeCalDialog::CorrectionPoint &p) { - if (points.size() >= Device::Info().limits_maxAmplitudePoints) { + if (points.size() >= Device::Info(dev).limits_maxAmplitudePoints) { // already at limit return false; } @@ -299,8 +299,8 @@ void AmplitudeCalDialog::AddPointDialog() ui->stopFreq->setUnit("Hz"); ui->stopFreq->setPrefixes(" kMG"); ui->frequency->setValue(1000000000.0); - ui->startFreq->setValue(Device::Info().limits_minFreq); - ui->stopFreq->setValue(Device::Info().limits_maxFreq); + ui->startFreq->setValue(Device::Info(dev).limits_minFreq); + ui->stopFreq->setValue(Device::Info(dev).limits_maxFreq); connect(ui->singlePoint, &QRadioButton::toggled, [=](bool single) { ui->stopFreq->setEnabled(!single); ui->startFreq->setEnabled(!single); diff --git a/Software/PC_Application/Device/device.cpp b/Software/PC_Application/Device/device.cpp index f97ff45..a07718d 100644 --- a/Software/PC_Application/Device/device.cpp +++ b/Software/PC_Application/Device/device.cpp @@ -120,16 +120,6 @@ static constexpr Protocol::DeviceInfo defaultInfo = { .FW_minor = 0, .FW_patch = 0, .HW_Revision = '0', - .extRefAvailable = 0, - .extRefInUse = 0, - .FPGA_configured = 0, - .source_locked = 0, - .LO1_locked = 0, - .ADC_overload = 0, - .unlevel = 0, - .temp_source = 0, - .temp_LO1 = 0, - .temp_MCU = 0, .limits_minFreq = 0, .limits_maxFreq = 6000000000, .limits_minIFBW = 10, @@ -143,14 +133,25 @@ static constexpr Protocol::DeviceInfo defaultInfo = { .limits_maxFreqHarmonic = 18000000000, }; -Protocol::DeviceInfo Device::lastInfo = defaultInfo; +static constexpr Protocol::DeviceStatusV1 defaultStatusV1 = { + .extRefAvailable = 0, + .extRefInUse = 0, + .FPGA_configured = 0, + .source_locked = 0, + .LO1_locked = 0, + .ADC_overload = 0, + .unlevel = 0, + .temp_source = 0, + .temp_LO1 = 0, + .temp_MCU = 0, +}; Device::Device(QString serial) { - lastInfo = defaultInfo; + info = defaultInfo; m_handle = nullptr; - lastInfoValid = false; + infoValid = false; libusb_init(&m_context); #if LIBUSB_API_VERSION >= 0x01000106 libusb_set_option(m_context, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_INFO); @@ -261,10 +262,10 @@ bool Device::Configure(Protocol::SpectrumAnalyzerSettings settings) return SendPacket(p); } -bool Device::SetManual(Protocol::ManualControl manual) +bool Device::SetManual(Protocol::ManualControlV1 manual) { Protocol::PacketInfo p; - p.type = Protocol::PacketType::ManualControl; + p.type = Protocol::PacketType::ManualControlV1; p.manual = manual; return SendPacket(p); } @@ -393,25 +394,48 @@ void Device::SearchDevices(std::function const Protocol::DeviceInfo &Device::Info() { - return lastInfo; + return info; +} + +const Protocol::DeviceInfo &Device::Info(Device *dev) +{ + if(dev) { + return dev->Info(); + } else { + return defaultInfo; + } +} + +Protocol::DeviceStatusV1 &Device::StatusV1() +{ + return status.v1; +} + +const Protocol::DeviceStatusV1 &Device::StatusV1(Device *dev) +{ + if(dev) { + return dev->StatusV1(); + } else { + return defaultStatusV1; + } } QString Device::getLastDeviceInfoString() { QString ret; - if(!lastInfoValid) { + if(!infoValid) { ret.append("No device information available yet"); } else { ret.append("HW Rev."); - ret.append(lastInfo.HW_Revision); - ret.append(" FW "+QString::number(lastInfo.FW_major)+"."+QString::number(lastInfo.FW_minor)+"."+QString::number(lastInfo.FW_patch)); - ret.append(" Temps: "+QString::number(lastInfo.temp_source)+"°C/"+QString::number(lastInfo.temp_LO1)+"°C/"+QString::number(lastInfo.temp_MCU)+"°C"); + ret.append(info.HW_Revision); + ret.append(" FW "+QString::number(info.FW_major)+"."+QString::number(info.FW_minor)+"."+QString::number(info.FW_patch)); + ret.append(" Temps: "+QString::number(status.v1.temp_source)+"°C/"+QString::number(status.v1.temp_LO1)+"°C/"+QString::number(status.v1.temp_MCU)+"°C"); ret.append(" Reference:"); - if(lastInfo.extRefInUse) { + if(status.v1.extRefInUse) { ret.append("External"); } else { ret.append("Internal"); - if(lastInfo.extRefAvailable) { + if(status.v1.extRefAvailable) { ret.append(" (External available)"); } } @@ -431,8 +455,8 @@ void Device::ReceivedData() case Protocol::PacketType::Datapoint: emit DatapointReceived(packet.datapoint); break; - case Protocol::PacketType::Status: - emit ManualStatusReceived(packet.status); + case Protocol::PacketType::ManualStatusV1: + emit ManualStatusReceived(packet.manualStatusV1); break; case Protocol::PacketType::SpectrumAnalyzerResult: emit SpectrumResultReceived(packet.spectrumResult); @@ -443,15 +467,19 @@ void Device::ReceivedData() break; case Protocol::PacketType::DeviceInfo: if(packet.info.ProtocolVersion != Protocol::Version) { - if(!lastInfoValid) { + if(!infoValid) { emit NeedsFirmwareUpdate(packet.info.ProtocolVersion, Protocol::Version); } } else { - lastInfo = packet.info; + info = packet.info; } - lastInfoValid = true; + infoValid = true; emit DeviceInfoUpdated(); break; + case Protocol::PacketType::DeviceStatusV1: + status.v1 = packet.statusV1; + emit DeviceStatusUpdated(); + break; case Protocol::PacketType::Ack: emit AckReceived(); emit receivedAnswer(TransmissionResult::Ack); diff --git a/Software/PC_Application/Device/device.h b/Software/PC_Application/Device/device.h index ef144bd..38b81fb 100644 --- a/Software/PC_Application/Device/device.h +++ b/Software/PC_Application/Device/device.h @@ -13,7 +13,7 @@ #include Q_DECLARE_METATYPE(Protocol::Datapoint); -Q_DECLARE_METATYPE(Protocol::ManualStatus); +Q_DECLARE_METATYPE(Protocol::ManualStatusV1); Q_DECLARE_METATYPE(Protocol::SpectrumAnalyzerResult); Q_DECLARE_METATYPE(Protocol::AmplitudeCorrectionPoint); @@ -61,23 +61,27 @@ public: bool SendPacket(const Protocol::PacketInfo& packet, std::function cb = nullptr, unsigned int timeout = 500); bool Configure(Protocol::SweepSettings settings, std::function cb = nullptr); bool Configure(Protocol::SpectrumAnalyzerSettings settings); - bool SetManual(Protocol::ManualControl manual); + bool SetManual(Protocol::ManualControlV1 manual); bool SetIdle(); bool SendFirmwareChunk(Protocol::FirmwarePacket &fw); bool SendCommandWithoutPayload(Protocol::PacketType type); QString serial() const; - static const Protocol::DeviceInfo& Info(); + const Protocol::DeviceInfo& Info(); + static const Protocol::DeviceInfo& Info(Device *dev); + Protocol::DeviceStatusV1& StatusV1(); + static const Protocol::DeviceStatusV1& StatusV1(Device *dev); QString getLastDeviceInfoString(); // Returns serial numbers of all connected devices static std::set GetDevices(); signals: void DatapointReceived(Protocol::Datapoint); - void ManualStatusReceived(Protocol::ManualStatus); + void ManualStatusReceived(Protocol::ManualStatusV1); void SpectrumResultReceived(Protocol::SpectrumAnalyzerResult); void AmplitudeCorrectionPointReceived(Protocol::AmplitudeCorrectionPoint); void FrequencyCorrectionReceived(float ppm); void DeviceInfoUpdated(); + void DeviceStatusUpdated(); void ConnectionLost(); void AckReceived(); void NackReceived(); @@ -122,8 +126,11 @@ private: QString m_serial; bool m_connected; std::thread *m_receiveThread; - static Protocol::DeviceInfo lastInfo; - bool lastInfoValid; + Protocol::DeviceInfo info; + bool infoValid; + union { + Protocol::DeviceStatusV1 v1; + } status; }; #endif // DEVICE_H diff --git a/Software/PC_Application/Device/manualcontroldialog.cpp b/Software/PC_Application/Device/manualcontroldialog.cpp index b776887..02d8e35 100644 --- a/Software/PC_Application/Device/manualcontroldialog.cpp +++ b/Software/PC_Application/Device/manualcontroldialog.cpp @@ -580,7 +580,7 @@ double ManualControlDialog::getRefPhase() return ui->refphase->text().toDouble(); } -void ManualControlDialog::NewStatus(Protocol::ManualStatus status) +void ManualControlDialog::NewStatus(Protocol::ManualStatusV1 status) { // ADC values ui->port1min->setText(QString::number(status.port1min)); @@ -616,7 +616,7 @@ void ManualControlDialog::NewStatus(Protocol::ManualStatus status) void ManualControlDialog::UpdateDevice() { - Protocol::ManualControl m; + Protocol::ManualControlV1 m; // Source highband m.SourceHighCE = ui->SourceCE->isChecked(); m.SourceHighRFEN = ui->SourceRFEN->isChecked(); diff --git a/Software/PC_Application/Device/manualcontroldialog.h b/Software/PC_Application/Device/manualcontroldialog.h index ab0f048..553d549 100644 --- a/Software/PC_Application/Device/manualcontroldialog.h +++ b/Software/PC_Application/Device/manualcontroldialog.h @@ -103,7 +103,7 @@ public: double getRefPhase(); public slots: - void NewStatus(Protocol::ManualStatus status); + void NewStatus(Protocol::ManualStatusV1 status); private: void UpdateDevice(); diff --git a/Software/PC_Application/Generator/generator.cpp b/Software/PC_Application/Generator/generator.cpp index f7cc411..d0e0bcf 100644 --- a/Software/PC_Application/Generator/generator.cpp +++ b/Software/PC_Application/Generator/generator.cpp @@ -6,7 +6,7 @@ Generator::Generator(AppWindow *window) : Mode(window, "Signal Generator") , SCPINode("GENerator") { - central = new SignalgeneratorWidget(window); + central = new SignalgeneratorWidget(window->getDevice(), window); auto pref = Preferences::getInstance(); diff --git a/Software/PC_Application/Generator/signalgenwidget.cpp b/Software/PC_Application/Generator/signalgenwidget.cpp index 187debb..3347804 100644 --- a/Software/PC_Application/Generator/signalgenwidget.cpp +++ b/Software/PC_Application/Generator/signalgenwidget.cpp @@ -2,9 +2,10 @@ #include "ui_signalgenwidget.h" -SignalgeneratorWidget::SignalgeneratorWidget(QWidget *parent) : +SignalgeneratorWidget::SignalgeneratorWidget(Device *&dev, QWidget *parent) : QWidget(parent), - ui(new Ui::SignalgeneratorWidget) + ui(new Ui::SignalgeneratorWidget), + dev(dev) { ui->setupUi(this); ui->frequency->setUnit("Hz"); @@ -31,16 +32,16 @@ SignalgeneratorWidget::SignalgeneratorWidget(QWidget *parent) : ui->steps->setPrecision(0); connect(ui->frequency, &SIUnitEdit::valueChanged, [=](double newval) { - if(newval < Device::Info().limits_minFreq) { - newval = Device::Info().limits_minFreq; - } else if (newval > Device::Info().limits_maxFreq) { - newval = Device::Info().limits_maxFreq; + if(newval < Device::Info(dev).limits_minFreq) { + newval = Device::Info(dev).limits_minFreq; + } else if (newval > Device::Info(dev).limits_maxFreq) { + newval = Device::Info(dev).limits_maxFreq; } ui->frequency->setValueQuiet(newval); if (newval < ui->span->value()/2) ui->span->setValueQuiet(newval/2); - if (newval + ui->span->value()/2 > Device::Info().limits_maxFreq) - ui->span->setValueQuiet((Device::Info().limits_maxFreq - newval)*2); + if (newval + ui->span->value()/2 > Device::Info(dev).limits_maxFreq) + ui->span->setValueQuiet((Device::Info(dev).limits_maxFreq - newval)*2); newval = ui->frequency->value() - ui->span->value()/2; ui->current->setValueQuiet(newval); emit SettingsChanged(); @@ -49,8 +50,8 @@ SignalgeneratorWidget::SignalgeneratorWidget(QWidget *parent) : connect(ui->span, &SIUnitEdit::valueChanged, [=](double newval) { if(newval < 0 ) { newval = 0; - } else if (newval > Device::Info().limits_maxFreq - Device::Info().limits_minFreq) { - newval = Device::Info().limits_maxFreq - Device::Info().limits_minFreq; + } else if (newval > Device::Info(dev).limits_maxFreq - Device::Info(dev).limits_minFreq) { + newval = Device::Info(dev).limits_maxFreq - Device::Info(dev).limits_minFreq; } ui->span->setValueQuiet(newval); @@ -59,8 +60,8 @@ SignalgeneratorWidget::SignalgeneratorWidget(QWidget *parent) : ui->frequency->setValueQuiet(ui->span->value()/2); } newF = ui->frequency->value() + ui->span->value()/2; - if (newF > Device::Info().limits_maxFreq) { - ui->frequency->setValueQuiet(Device::Info().limits_maxFreq - ui->span->value()/2); + if (newF > Device::Info(dev).limits_maxFreq) { + ui->frequency->setValueQuiet(Device::Info(dev).limits_maxFreq - ui->span->value()/2); } newval = ui->frequency->value() - ui->span->value()/2; @@ -71,8 +72,8 @@ SignalgeneratorWidget::SignalgeneratorWidget(QWidget *parent) : connect(ui->current, &SIUnitEdit::valueChanged, [=](double newval) { if(newval < 0 ) { newval = 0; - } else if (newval > Device::Info().limits_maxFreq - Device::Info().limits_minFreq) { - newval = Device::Info().limits_maxFreq - Device::Info().limits_minFreq; + } else if (newval > Device::Info(dev).limits_maxFreq - Device::Info(dev).limits_minFreq) { + newval = Device::Info(dev).limits_maxFreq - Device::Info(dev).limits_minFreq; } ui->current->setValueQuiet(newval); emit SettingsChanged(); diff --git a/Software/PC_Application/Generator/signalgenwidget.h b/Software/PC_Application/Generator/signalgenwidget.h index e64a054..6573140 100644 --- a/Software/PC_Application/Generator/signalgenwidget.h +++ b/Software/PC_Application/Generator/signalgenwidget.h @@ -15,7 +15,7 @@ class SignalgeneratorWidget : public QWidget, public Savable Q_OBJECT public: - explicit SignalgeneratorWidget(QWidget *parent = nullptr); + explicit SignalgeneratorWidget(Device*&dev, QWidget *parent = nullptr); ~SignalgeneratorWidget(); Protocol::GeneratorSettings getDeviceStatus(); @@ -36,6 +36,7 @@ protected: private: Ui::SignalgeneratorWidget *ui; int m_timerId; + Device*&dev; }; #endif // SIGNALGENERATOR_H diff --git a/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.cpp b/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.cpp index a649dcc..5d8d08e 100644 --- a/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.cpp +++ b/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.cpp @@ -555,14 +555,14 @@ void SpectrumAnalyzer::SetStopFreq(double freq) void SpectrumAnalyzer::SetCenterFreq(double freq) { auto old_span = settings.f_stop - settings.f_start; - if (freq - old_span / 2 <= Device::Info().limits_minFreq) { + if (freq - old_span / 2 <= Device::Info(window->getDevice()).limits_minFreq) { // would shift start frequency below minimum settings.f_start = 0; settings.f_stop = 2 * freq; - } else if(freq + old_span / 2 >= Device::Info().limits_maxFreq) { + } else if(freq + old_span / 2 >= Device::Info(window->getDevice()).limits_maxFreq) { // would shift stop frequency above maximum - settings.f_start = 2 * freq - Device::Info().limits_maxFreq; - settings.f_stop = Device::Info().limits_maxFreq; + settings.f_start = 2 * freq - Device::Info(window->getDevice()).limits_maxFreq; + settings.f_stop = Device::Info(window->getDevice()).limits_maxFreq; } else { settings.f_start = freq - old_span / 2; settings.f_stop = freq + old_span / 2; @@ -573,14 +573,14 @@ void SpectrumAnalyzer::SetCenterFreq(double freq) void SpectrumAnalyzer::SetSpan(double span) { auto old_center = (settings.f_start + settings.f_stop) / 2; - if(old_center < Device::Info().limits_minFreq + span / 2) { + if(old_center < Device::Info(window->getDevice()).limits_minFreq + span / 2) { // would shift start frequency below minimum - settings.f_start = Device::Info().limits_minFreq; - settings.f_stop = Device::Info().limits_minFreq + span; - } else if(old_center > Device::Info().limits_maxFreq - span / 2) { + settings.f_start = Device::Info(window->getDevice()).limits_minFreq; + settings.f_stop = Device::Info(window->getDevice()).limits_minFreq + span; + } else if(old_center > Device::Info(window->getDevice()).limits_maxFreq - span / 2) { // would shift stop frequency above maximum - settings.f_start = Device::Info().limits_maxFreq - span; - settings.f_stop = Device::Info().limits_maxFreq; + settings.f_start = Device::Info(window->getDevice()).limits_maxFreq - span; + settings.f_stop = Device::Info(window->getDevice()).limits_maxFreq; } else { settings.f_start = old_center - span / 2; settings.f_stop = settings.f_start + span; @@ -590,8 +590,8 @@ void SpectrumAnalyzer::SetSpan(double span) void SpectrumAnalyzer::SetFullSpan() { - settings.f_start = Device::Info().limits_minFreq; - settings.f_stop = Device::Info().limits_maxFreq; + settings.f_start = Device::Info(window->getDevice()).limits_minFreq; + settings.f_stop = Device::Info(window->getDevice()).limits_maxFreq; ConstrainAndUpdateFrequencies(); } @@ -619,10 +619,10 @@ void SpectrumAnalyzer::SpanZoomOut() void SpectrumAnalyzer::SetRBW(double bandwidth) { - if(bandwidth > Device::Info().limits_maxRBW) { - bandwidth = Device::Info().limits_maxRBW; - } else if(bandwidth < Device::Info().limits_minRBW) { - bandwidth = Device::Info().limits_minRBW; + if(bandwidth > Device::Info(window->getDevice()).limits_maxRBW) { + bandwidth = Device::Info(window->getDevice()).limits_maxRBW; + } else if(bandwidth < Device::Info(window->getDevice()).limits_minRBW) { + bandwidth = Device::Info(window->getDevice()).limits_minRBW; } settings.RBW = bandwidth; emit RBWChanged(settings.RBW); @@ -690,10 +690,10 @@ void SpectrumAnalyzer::SetTGPort(int port) void SpectrumAnalyzer::SetTGLevel(double level) { - if(level > Device::Info().limits_cdbm_max / 100.0) { - level = Device::Info().limits_cdbm_max / 100.0; - } else if(level < Device::Info().limits_cdbm_min / 100.0) { - level = Device::Info().limits_cdbm_min / 100.0; + if(level > Device::Info(window->getDevice()).limits_cdbm_max / 100.0) { + level = Device::Info(window->getDevice()).limits_cdbm_max / 100.0; + } else if(level < Device::Info(window->getDevice()).limits_cdbm_min / 100.0) { + level = Device::Info(window->getDevice()).limits_cdbm_min / 100.0; } emit TGLevelChanged(level); settings.trackingPower = level * 100; @@ -1015,24 +1015,24 @@ void SpectrumAnalyzer::UpdateAverageCount() void SpectrumAnalyzer::ConstrainAndUpdateFrequencies() { - if(settings.f_stop > Device::Info().limits_maxFreq) { - settings.f_stop = Device::Info().limits_maxFreq; + if(settings.f_stop > Device::Info(window->getDevice()).limits_maxFreq) { + settings.f_stop = Device::Info(window->getDevice()).limits_maxFreq; } if(settings.f_start > settings.f_stop) { settings.f_start = settings.f_stop; } - if(settings.f_start < Device::Info().limits_minFreq) { - settings.f_start = Device::Info().limits_minFreq; + if(settings.f_start < Device::Info(window->getDevice()).limits_minFreq) { + settings.f_start = Device::Info(window->getDevice()).limits_minFreq; } bool trackingOffset_limited = false; - if(settings.f_stop + settings.trackingGeneratorOffset > Device::Info().limits_maxFreq) { + if(settings.f_stop + settings.trackingGeneratorOffset > Device::Info(window->getDevice()).limits_maxFreq) { trackingOffset_limited = true; - settings.trackingGeneratorOffset = Device::Info().limits_maxFreq - settings.f_stop; + settings.trackingGeneratorOffset = Device::Info(window->getDevice()).limits_maxFreq - settings.f_stop; } - if((long) settings.f_start + settings.trackingGeneratorOffset < (long) Device::Info().limits_minFreq) { + if((long) settings.f_start + settings.trackingGeneratorOffset < (long) Device::Info(window->getDevice()).limits_minFreq) { trackingOffset_limited = true; - settings.trackingGeneratorOffset = Device::Info().limits_minFreq - settings.f_start; + settings.trackingGeneratorOffset = Device::Info(window->getDevice()).limits_minFreq - settings.f_start; } if(trackingOffset_limited) { InformationBox::ShowMessage("Warning", "The selected tracking generator offset is not reachable for all frequencies with the current span. " diff --git a/Software/PC_Application/VNA/vna.cpp b/Software/PC_Application/VNA/vna.cpp index 955ad53..44c4fd9 100644 --- a/Software/PC_Application/VNA/vna.cpp +++ b/Software/PC_Application/VNA/vna.cpp @@ -997,14 +997,14 @@ void VNA::SetStopFreq(double freq) void VNA::SetCenterFreq(double freq) { auto old_span = settings.Freq.stop - settings.Freq.start; - if (freq - old_span / 2 <= Device::Info().limits_minFreq) { + if (freq - old_span / 2 <= Device::Info(window->getDevice()).limits_minFreq) { // would shift start frequency below minimum settings.Freq.start = 0; settings.Freq.stop = 2 * freq; - } else if(freq + old_span / 2 >= Device::Info().limits_maxFreq) { + } else if(freq + old_span / 2 >= Device::Info(window->getDevice()).limits_maxFreq) { // would shift stop frequency above maximum - settings.Freq.start = 2 * freq - Device::Info().limits_maxFreq; - settings.Freq.stop = Device::Info().limits_maxFreq; + settings.Freq.start = 2 * freq - Device::Info(window->getDevice()).limits_maxFreq; + settings.Freq.stop = Device::Info(window->getDevice()).limits_maxFreq; } else { settings.Freq.start = freq - old_span / 2; settings.Freq.stop = freq + old_span / 2; @@ -1014,12 +1014,12 @@ void VNA::SetCenterFreq(double freq) void VNA::SetSpan(double span) { - auto maxFreq = Preferences::getInstance().Acquisition.harmonicMixing ? Device::Info().limits_maxFreqHarmonic : Device::Info().limits_maxFreq; + auto maxFreq = Preferences::getInstance().Acquisition.harmonicMixing ? Device::Info(window->getDevice()).limits_maxFreqHarmonic : Device::Info(window->getDevice()).limits_maxFreq; auto old_center = (settings.Freq.start + settings.Freq.stop) / 2; - if(old_center < Device::Info().limits_minFreq + span / 2) { + if(old_center < Device::Info(window->getDevice()).limits_minFreq + span / 2) { // would shift start frequency below minimum - settings.Freq.start = Device::Info().limits_minFreq; - settings.Freq.stop = Device::Info().limits_minFreq + span; + settings.Freq.start = Device::Info(window->getDevice()).limits_minFreq; + settings.Freq.stop = Device::Info(window->getDevice()).limits_minFreq + span; } else if(old_center > maxFreq - span / 2) { // would shift stop frequency above maximum settings.Freq.start = maxFreq - span; @@ -1033,8 +1033,8 @@ void VNA::SetSpan(double span) void VNA::SetFullSpan() { - settings.Freq.start = Device::Info().limits_minFreq; - settings.Freq.stop = Device::Info().limits_maxFreq; + settings.Freq.start = Device::Info(window->getDevice()).limits_minFreq; + settings.Freq.stop = Device::Info(window->getDevice()).limits_maxFreq; ConstrainAndUpdateFrequencies(); } @@ -1072,10 +1072,10 @@ void VNA::SetLogSweep(bool log) void VNA::SetSourceLevel(double level) { - if(level > Device::Info().limits_cdbm_max / 100.0) { - level = Device::Info().limits_cdbm_max / 100.0; - } else if(level < Device::Info().limits_cdbm_min / 100.0) { - level = Device::Info().limits_cdbm_min / 100.0; + if(level > Device::Info(window->getDevice()).limits_cdbm_max / 100.0) { + level = Device::Info(window->getDevice()).limits_cdbm_max / 100.0; + } else if(level < Device::Info(window->getDevice()).limits_cdbm_min / 100.0) { + level = Device::Info(window->getDevice()).limits_cdbm_min / 100.0; } emit sourceLevelChanged(level); settings.Freq.excitation_power = level; @@ -1105,15 +1105,15 @@ void VNA::SetPowerSweepFrequency(double freq) void VNA::SetPoints(unsigned int points) { - unsigned int maxPoints = Preferences::getInstance().Acquisition.allowSegmentedSweep ? UINT16_MAX : Device::Info().limits_maxPoints; + unsigned int maxPoints = Preferences::getInstance().Acquisition.allowSegmentedSweep ? UINT16_MAX : Device::Info(window->getDevice()).limits_maxPoints; if(points > maxPoints) { points = maxPoints; } else if (points < 2) { points = 2; } - if (points > Device::Info().limits_maxPoints) { + if (points > Device::Info(window->getDevice()).limits_maxPoints) { // needs segmented sweep - settings.segments = ceil((double) points / Device::Info().limits_maxPoints); + settings.segments = ceil((double) points / Device::Info(window->getDevice()).limits_maxPoints); settings.activeSegment = 0; } else { // can fit all points into one segment @@ -1127,10 +1127,10 @@ void VNA::SetPoints(unsigned int points) void VNA::SetIFBandwidth(double bandwidth) { - if(bandwidth > Device::Info().limits_maxIFBW) { - bandwidth = Device::Info().limits_maxIFBW; - } else if(bandwidth < Device::Info().limits_minIFBW) { - bandwidth = Device::Info().limits_minIFBW; + if(bandwidth > Device::Info(window->getDevice()).limits_maxIFBW) { + bandwidth = Device::Info(window->getDevice()).limits_maxIFBW; + } else if(bandwidth < Device::Info(window->getDevice()).limits_minIFBW) { + bandwidth = Device::Info(window->getDevice()).limits_minIFBW; } settings.bandwidth = bandwidth; emit IFBandwidthChanged(settings.bandwidth); @@ -1478,9 +1478,9 @@ void VNA::ConstrainAndUpdateFrequencies() auto pref = Preferences::getInstance(); double maxFreq; if(pref.Acquisition.harmonicMixing) { - maxFreq = Device::Info().limits_maxFreqHarmonic; + maxFreq = Device::Info(window->getDevice()).limits_maxFreqHarmonic; } else { - maxFreq = Device::Info().limits_maxFreq; + maxFreq = Device::Info(window->getDevice()).limits_maxFreq; } if(settings.Freq.stop > maxFreq) { settings.Freq.stop = maxFreq; @@ -1488,8 +1488,8 @@ void VNA::ConstrainAndUpdateFrequencies() if(settings.Freq.start > settings.Freq.stop) { settings.Freq.start = settings.Freq.stop; } - if(settings.Freq.start < Device::Info().limits_minFreq) { - settings.Freq.start = Device::Info().limits_minFreq; + if(settings.Freq.start < Device::Info(window->getDevice()).limits_minFreq) { + settings.Freq.start = Device::Info(window->getDevice()).limits_minFreq; } emit startFreqChanged(settings.Freq.start); emit stopFreqChanged(settings.Freq.stop); diff --git a/Software/PC_Application/appwindow.cpp b/Software/PC_Application/appwindow.cpp index 6da7c3c..2f46774 100644 --- a/Software/PC_Application/appwindow.cpp +++ b/Software/PC_Application/appwindow.cpp @@ -235,7 +235,7 @@ AppWindow::AppWindow(QWidget *parent) vna->activate(); qRegisterMetaType("Datapoint"); - qRegisterMetaType("Manual"); + qRegisterMetaType("ManualV1"); qRegisterMetaType("SpectrumAnalyzerResult"); qRegisterMetaType("AmplitudeCorrection"); @@ -309,7 +309,7 @@ bool AppWindow::ConnectToDevice(QString serial) UpdateStatusBar(AppWindow::DeviceStatusBar::Connected); connect(device, &Device::LogLineReceived, &deviceLog, &DeviceLog::addLine); connect(device, &Device::ConnectionLost, this, &AppWindow::DeviceConnectionLost); - connect(device, &Device::DeviceInfoUpdated, this, &AppWindow::DeviceInfoUpdated); + connect(device, &Device::DeviceStatusUpdated, this, &AppWindow::DeviceStatusUpdated); connect(device, &Device::NeedsFirmwareUpdate, this, &AppWindow::DeviceNeedsUpdate); ui->actionDisconnect->setEnabled(true); ui->actionManual_Control->setEnabled(true); @@ -465,7 +465,7 @@ void AppWindow::SetupSCPI() } return ""; }, [=](QStringList) -> QString { - switch(Device::Info().extRefInUse) { + switch(Device::StatusV1(getDevice()).extRefInUse) { case 0: return "INT"; case 1: return "EXT"; default: return "ERROR"; @@ -500,57 +500,57 @@ void AppWindow::SetupSCPI() auto scpi_status = new SCPINode("STAtus"); scpi_dev->add(scpi_status); scpi_status->add(new SCPICommand("UNLOcked", nullptr, [=](QStringList){ - bool locked = Device::Info().source_locked && Device::Info().LO1_locked; + bool locked = Device::StatusV1(getDevice()).source_locked && Device::StatusV1(getDevice()).LO1_locked; return locked ? "FALSE" : "TRUE"; })); scpi_status->add(new SCPICommand("ADCOVERload", nullptr, [=](QStringList){ - return Device::Info().ADC_overload ? "TRUE" : "FALSE"; + return Device::StatusV1(getDevice()).ADC_overload ? "TRUE" : "FALSE"; })); scpi_status->add(new SCPICommand("UNLEVel", nullptr, [=](QStringList){ - return Device::Info().unlevel ? "TRUE" : "FALSE"; + return Device::StatusV1(getDevice()).unlevel ? "TRUE" : "FALSE"; })); auto scpi_info = new SCPINode("INFo"); scpi_dev->add(scpi_info); scpi_info->add(new SCPICommand("FWREVision", nullptr, [=](QStringList){ - return QString::number(Device::Info().FW_major)+"."+QString::number(Device::Info().FW_minor)+"."+QString::number(Device::Info().FW_patch); + return QString::number(Device::Info(getDevice()).FW_major)+"."+QString::number(Device::Info(getDevice()).FW_minor)+"."+QString::number(Device::Info(getDevice()).FW_patch); })); scpi_info->add(new SCPICommand("HWREVision", nullptr, [=](QStringList){ - return QString(Device::Info().HW_Revision); + return QString(Device::Info(getDevice()).HW_Revision); })); scpi_info->add(new SCPICommand("TEMPeratures", nullptr, [=](QStringList){ - return QString::number(Device::Info().temp_source)+"/"+QString::number(Device::Info().temp_LO1)+"/"+QString::number(Device::Info().temp_MCU); + return QString::number(Device::StatusV1(getDevice()).temp_source)+"/"+QString::number(Device::StatusV1(getDevice()).temp_LO1)+"/"+QString::number(Device::StatusV1(getDevice()).temp_MCU); })); auto scpi_limits = new SCPINode("LIMits"); scpi_info->add(scpi_limits); scpi_limits->add(new SCPICommand("MINFrequency", nullptr, [=](QStringList){ - return QString::number(Device::Info().limits_minFreq); + return QString::number(Device::Info(getDevice()).limits_minFreq); })); scpi_limits->add(new SCPICommand("MAXFrequency", nullptr, [=](QStringList){ - return QString::number(Device::Info().limits_maxFreq); + return QString::number(Device::Info(getDevice()).limits_maxFreq); })); scpi_limits->add(new SCPICommand("MINIFBW", nullptr, [=](QStringList){ - return QString::number(Device::Info().limits_minIFBW); + return QString::number(Device::Info(getDevice()).limits_minIFBW); })); scpi_limits->add(new SCPICommand("MAXIFBW", nullptr, [=](QStringList){ - return QString::number(Device::Info().limits_maxIFBW); + return QString::number(Device::Info(getDevice()).limits_maxIFBW); })); scpi_limits->add(new SCPICommand("MAXPoints", nullptr, [=](QStringList){ - return QString::number(Device::Info().limits_maxPoints); + return QString::number(Device::Info(getDevice()).limits_maxPoints); })); scpi_limits->add(new SCPICommand("MINPOWer", nullptr, [=](QStringList){ - return QString::number(Device::Info().limits_cdbm_min / 100.0); + return QString::number(Device::Info(getDevice()).limits_cdbm_min / 100.0); })); scpi_limits->add(new SCPICommand("MAXPOWer", nullptr, [=](QStringList){ - return QString::number(Device::Info().limits_cdbm_max / 100.0); + return QString::number(Device::Info(getDevice()).limits_cdbm_max / 100.0); })); scpi_limits->add(new SCPICommand("MINRBW", nullptr, [=](QStringList){ - return QString::number(Device::Info().limits_minRBW); + return QString::number(Device::Info(getDevice()).limits_minRBW); })); scpi_limits->add(new SCPICommand("MAXRBW", nullptr, [=](QStringList){ - return QString::number(Device::Info().limits_maxRBW); + return QString::number(Device::Info(getDevice()).limits_maxRBW); })); scpi_limits->add(new SCPICommand("MAXHARMonicfrequency", nullptr, [=](QStringList){ - return QString::number(Device::Info().limits_maxFreqHarmonic); + return QString::number(Device::Info(getDevice()).limits_maxFreqHarmonic); })); scpi.add(vna); @@ -918,7 +918,7 @@ void AppWindow::DeviceNeedsUpdate(int reported, int expected) } } -void AppWindow::DeviceInfoUpdated() +void AppWindow::DeviceStatusUpdated() { UpdateStatusBar(DeviceStatusBar::Updated); } @@ -1024,7 +1024,7 @@ void AppWindow::LoadSetup(nlohmann::json j) } } -Device *AppWindow::getDevice() const +Device *&AppWindow::getDevice() { return device; } @@ -1104,9 +1104,9 @@ void AppWindow::UpdateStatusBar(DeviceStatusBar status) break; case DeviceStatusBar::Updated: lDeviceInfo.setText(device->getLastDeviceInfoString()); - lADCOverload.setVisible(device->Info().ADC_overload); - lUnlevel.setVisible(device->Info().unlevel); - lUnlock.setVisible(!device->Info().LO1_locked || !device->Info().source_locked); + lADCOverload.setVisible(device->StatusV1().ADC_overload); + lUnlevel.setVisible(device->StatusV1().unlevel); + lUnlock.setVisible(!device->StatusV1().LO1_locked || !device->StatusV1().source_locked); break; default: // invalid status diff --git a/Software/PC_Application/appwindow.h b/Software/PC_Application/appwindow.h index 5dbd92a..95f92c8 100644 --- a/Software/PC_Application/appwindow.h +++ b/Software/PC_Application/appwindow.h @@ -41,7 +41,7 @@ public: Ui::MainWindow *getUi() const; QStackedWidget *getCentral() const; - Device *getDevice() const; + Device*&getDevice(); const QString& getAppVersion() const; const QString& getAppGitHash() const; @@ -59,7 +59,7 @@ private slots: void UpdateAcquisitionFrequencies(); void StartFirmwareUpdateDialog(); void DeviceNeedsUpdate(int reported, int expected); - void DeviceInfoUpdated(); + void DeviceStatusUpdated(); void SourceCalibrationDialog(); void ReceiverCalibrationDialog(); void FrequencyCalibrationDialog(); diff --git a/Software/VNA_embedded/Application/App.cpp b/Software/VNA_embedded/Application/App.cpp index ee82562..72437a3 100644 --- a/Software/VNA_embedded/Application/App.cpp +++ b/Software/VNA_embedded/Application/App.cpp @@ -117,7 +117,7 @@ inline void App_Process() { sweepActive = VNA::Setup(recv_packet.settings); Communication::SendWithoutPayload(Protocol::PacketType::Ack); break; - case Protocol::PacketType::ManualControl: + case Protocol::PacketType::ManualControlV1: sweepActive = false; last_measure_packet = recv_packet; Manual::Setup(recv_packet.manual); @@ -145,12 +145,21 @@ inline void App_Process() { SA::Setup(recv_packet.spectrumSettings); Communication::SendWithoutPayload(Protocol::PacketType::Ack); break; - case Protocol::PacketType::RequestDeviceInfo: + case Protocol::PacketType::RequestDeviceInfo: { Communication::SendWithoutPayload(Protocol::PacketType::Ack); Protocol::PacketInfo p; p.type = Protocol::PacketType::DeviceInfo; - HW::fillDeviceInfo(&p.info); + p.info = HW::Info; Communication::Send(p); + } + break; + case Protocol::PacketType::RequestDeviceStatus: { + Communication::SendWithoutPayload(Protocol::PacketType::Ack); + Protocol::PacketInfo p; + p.type = Protocol::PacketType::DeviceStatusV1; + HW::getDeviceStatus(&p.statusV1); + Communication::Send(p); + } break; case Protocol::PacketType::SetIdle: HW::SetMode(HW::Mode::Idle); diff --git a/Software/VNA_embedded/Application/Communication/Protocol.cpp b/Software/VNA_embedded/Application/Communication/Protocol.cpp index 2384d39..99b0654 100644 --- a/Software/VNA_embedded/Application/Communication/Protocol.cpp +++ b/Software/VNA_embedded/Application/Communication/Protocol.cpp @@ -91,8 +91,9 @@ uint16_t Protocol::EncodePacket(const PacketInfo &packet, uint8_t *dest, uint16_ case PacketType::SweepSettings: payload_size = sizeof(packet.settings); break; case PacketType::Reference: payload_size = sizeof(packet.reference); break; case PacketType::DeviceInfo: payload_size = sizeof(packet.info); break; - case PacketType::Status: payload_size = sizeof(packet.status); break; - case PacketType::ManualControl: payload_size = sizeof(packet.manual); break; + case PacketType::DeviceStatusV1: payload_size = sizeof(packet.statusV1); break; + case PacketType::ManualStatusV1: payload_size = sizeof(packet.manualStatusV1); break; + case PacketType::ManualControlV1: payload_size = sizeof(packet.manual); break; case PacketType::FirmwarePacket: payload_size = sizeof(packet.firmware); break; case PacketType::Generator: payload_size = sizeof(packet.generator); break; case PacketType::SpectrumAnalyzerSettings: payload_size = sizeof(packet.spectrumSettings); break; diff --git a/Software/VNA_embedded/Application/Communication/Protocol.hpp b/Software/VNA_embedded/Application/Communication/Protocol.hpp index 009ab1d..1a7dc56 100644 --- a/Software/VNA_embedded/Application/Communication/Protocol.hpp +++ b/Software/VNA_embedded/Application/Communication/Protocol.hpp @@ -4,7 +4,7 @@ namespace Protocol { -static constexpr uint16_t Version = 9; +static constexpr uint16_t Version = 10; #pragma pack(push, 1) @@ -50,17 +50,8 @@ using DeviceInfo = struct _deviceInfo { uint8_t FW_major; uint8_t FW_minor; uint8_t FW_patch; + uint8_t hardware_version; char HW_Revision; - uint8_t extRefAvailable:1; - uint8_t extRefInUse:1; - uint8_t FPGA_configured:1; - uint8_t source_locked:1; - uint8_t LO1_locked:1; - uint8_t ADC_overload:1; - uint8_t unlevel:1; - uint8_t temp_source; - uint8_t temp_LO1; - uint8_t temp_MCU; uint64_t limits_minFreq; uint64_t limits_maxFreq; uint32_t limits_minIFBW; @@ -74,7 +65,21 @@ using DeviceInfo = struct _deviceInfo { uint64_t limits_maxFreqHarmonic; }; -using ManualStatus = struct _manualstatus { +using DeviceStatusV1 = struct _deviceStatusV1 { + uint8_t extRefAvailable:1; + uint8_t extRefInUse:1; + uint8_t FPGA_configured:1; + uint8_t source_locked:1; + uint8_t LO1_locked:1; + uint8_t ADC_overload:1; + uint8_t unlevel:1; + uint8_t temp_source; + uint8_t temp_LO1; + uint8_t temp_MCU; +}; + + +using ManualStatusV1 = struct _manualstatusV1 { int16_t port1min, port1max; int16_t port2min, port2max; int16_t refmin, refmax; @@ -87,7 +92,7 @@ using ManualStatus = struct _manualstatus { uint8_t LO_locked :1; }; -using ManualControl = struct _manualControl { +using ManualControlV1 = struct _manualControlV1 { // Highband Source uint8_t SourceHighCE :1; uint8_t SourceHighRFEN :1; @@ -170,8 +175,8 @@ enum class PacketType : uint8_t { None = 0, Datapoint = 1, SweepSettings = 2, - Status = 3, - ManualControl = 4, + ManualStatusV1 = 3, + ManualControlV1 = 4, DeviceInfo = 5, FirmwarePacket = 6, Ack = 7, @@ -192,6 +197,8 @@ enum class PacketType : uint8_t { FrequencyCorrection = 22, RequestAcquisitionFrequencySettings = 23, AcquisitionFrequencySettings = 24, + DeviceStatusV1 = 25, + RequestDeviceStatus = 26, }; using PacketInfo = struct _packetinfo { @@ -201,10 +208,11 @@ using PacketInfo = struct _packetinfo { SweepSettings settings; ReferenceSettings reference; GeneratorSettings generator; + DeviceStatusV1 statusV1; DeviceInfo info; - ManualControl manual; + ManualControlV1 manual; FirmwarePacket firmware; - ManualStatus status; + ManualStatusV1 manualStatusV1; SpectrumAnalyzerSettings spectrumSettings; SpectrumAnalyzerResult spectrumResult; AmplitudeCorrectionPoint amplitudePoint; diff --git a/Software/VNA_embedded/Application/Generator.cpp b/Software/VNA_embedded/Application/Generator.cpp index ee8a2cb..acbb85c 100644 --- a/Software/VNA_embedded/Application/Generator.cpp +++ b/Software/VNA_embedded/Application/Generator.cpp @@ -11,7 +11,7 @@ void Generator::Setup(Protocol::GeneratorSettings g) { HW::SetIdle(); return; } - Protocol::ManualControl m; + Protocol::ManualControlV1 m; // LOs not required m.LO1CE = 0; m.LO1Frequency = 1000000000; diff --git a/Software/VNA_embedded/Application/Hardware.cpp b/Software/VNA_embedded/Application/Hardware.cpp index 8afb45c..ab3bd90 100644 --- a/Software/VNA_embedded/Application/Hardware.cpp +++ b/Software/VNA_embedded/Application/Hardware.cpp @@ -299,9 +299,7 @@ void HW::SetOutputUnlevel(bool unlev) { unlevel = unlev; } -void HW::fillDeviceInfo(Protocol::DeviceInfo *info, bool updateEvenWhenBusy) { - // copy constant default values - memcpy(info, &HW::Info, sizeof(HW::Info)); +void HW::getDeviceStatus(Protocol::DeviceStatusV1 *status, bool updateEvenWhenBusy) { if(activeMode == Mode::Idle || updateEvenWhenBusy) { // updating values from FPGA allowed @@ -318,21 +316,21 @@ void HW::fillDeviceInfo(Protocol::DeviceInfo *info, bool updateEvenWhenBusy) { if(limits.P1min < -ADC_LIMIT || limits.P1max > ADC_LIMIT || limits.P2min < -ADC_LIMIT || limits.P2max > ADC_LIMIT || limits.Rmin < -ADC_LIMIT || limits.Rmax > ADC_LIMIT) { - info->ADC_overload = true; + status->ADC_overload = true; } else { - info->ADC_overload = false; + status->ADC_overload = false; } - auto status = FPGA::GetStatus(); - info->LO1_locked = (status & (int) FPGA::Interrupt::LO1Unlock) ? 0 : 1; - info->source_locked = (status & (int) FPGA::Interrupt::SourceUnlock) ? 0 : 1; - info->extRefAvailable = Ref::available(); - info->extRefInUse = extRefInUse; - info->unlevel = unlevel; - info->temp_LO1 = tempLO; - info->temp_source = tempSource; + auto FPGA_status = FPGA::GetStatus(); + status->LO1_locked = (FPGA_status & (int) FPGA::Interrupt::LO1Unlock) ? 0 : 1; + status->source_locked = (FPGA_status & (int) FPGA::Interrupt::SourceUnlock) ? 0 : 1; + status->extRefAvailable = Ref::available(); + status->extRefInUse = extRefInUse; + status->unlevel = unlevel; + status->temp_LO1 = tempLO; + status->temp_source = tempSource; FPGA::ResetADCLimits(); } - info->temp_MCU = STM::getTemperature(); + status->temp_MCU = STM::getTemperature(); } bool HW::Ref::available() { diff --git a/Software/VNA_embedded/Application/Hardware.hpp b/Software/VNA_embedded/Application/Hardware.hpp index 656569f..c0ce9ff 100644 --- a/Software/VNA_embedded/Application/Hardware.hpp +++ b/Software/VNA_embedded/Application/Hardware.hpp @@ -70,17 +70,8 @@ static constexpr Protocol::DeviceInfo Info = { .FW_major = FW_MAJOR, .FW_minor = FW_MINOR, .FW_patch = FW_PATCH, + .hardware_version = 1, .HW_Revision = HW_REVISION, - .extRefAvailable = 0, - .extRefInUse = 0, - .FPGA_configured = 0, - .source_locked = 0, - .LO1_locked = 0, - .ADC_overload = 0, - .unlevel = 0, - .temp_source = 0, - .temp_LO1 = 0, - .temp_MCU = 0, .limits_minFreq = 0, .limits_maxFreq = 6000000000, .limits_minIFBW = DefaultADCSamplerate / MaxSamples, @@ -120,7 +111,7 @@ using AmplitudeSettings = struct _amplitudeSettings { AmplitudeSettings GetAmplitudeSettings(int16_t cdbm, uint64_t freq = 0, bool applyCorrections = false, bool port2 = false); bool GetTemps(uint8_t *source, uint8_t *lo); -void fillDeviceInfo(Protocol::DeviceInfo *info, bool updateEvenWhenBusy = false); +void getDeviceStatus(Protocol::DeviceStatusV1 *status, bool updateEvenWhenBusy = false); namespace Ref { bool available(); bool usingExternal(); diff --git a/Software/VNA_embedded/Application/Manual.cpp b/Software/VNA_embedded/Application/Manual.cpp index e48f334..54bf7f8 100644 --- a/Software/VNA_embedded/Application/Manual.cpp +++ b/Software/VNA_embedded/Application/Manual.cpp @@ -6,11 +6,11 @@ static bool active = false; static uint32_t samples; -static Protocol::ManualStatus status; +static Protocol::ManualStatusV1 status; using namespace HWHAL; -void Manual::Setup(Protocol::ManualControl m) { +void Manual::Setup(Protocol::ManualControlV1 m) { HW::SetMode(HW::Mode::Manual); samples = m.Samples; FPGA::AbortSweep(); @@ -99,38 +99,38 @@ void Manual::Work() { return; } Protocol::PacketInfo p; - p.type = Protocol::PacketType::Status; - p.status = status; + p.type = Protocol::PacketType::ManualStatusV1; + p.manualStatusV1 = status; uint16_t isr_flags = FPGA::GetStatus(); if (!(isr_flags & 0x0002)) { - p.status.source_locked = 1; + p.manualStatusV1.source_locked = 1; } else { - p.status.source_locked = 0; + p.manualStatusV1.source_locked = 0; } if (!(isr_flags & 0x0001)) { - p.status.LO_locked = 1; + p.manualStatusV1.LO_locked = 1; } else { - p.status.LO_locked = 0; + p.manualStatusV1.LO_locked = 0; } auto limits = FPGA::GetADCLimits(); FPGA::ResetADCLimits(); - p.status.port1min = limits.P1min; - p.status.port1max = limits.P1max; - p.status.port2min = limits.P2min; - p.status.port2max = limits.P2max; - p.status.refmin = limits.Rmin; - p.status.refmax = limits.Rmax; - HW::GetTemps(&p.status.temp_source, &p.status.temp_LO); + p.manualStatusV1.port1min = limits.P1min; + p.manualStatusV1.port1max = limits.P1max; + p.manualStatusV1.port2min = limits.P2min; + p.manualStatusV1.port2max = limits.P2max; + p.manualStatusV1.refmin = limits.Rmin; + p.manualStatusV1.refmax = limits.Rmax; + HW::GetTemps(&p.manualStatusV1.temp_source, &p.manualStatusV1.temp_LO); Communication::Send(p); HW::Ref::update(); Protocol::PacketInfo packet; - packet.type = Protocol::PacketType::DeviceInfo; + packet.type = Protocol::PacketType::DeviceStatusV1; // Enable PLL chips for temperature reading bool srcEn = FPGA::IsEnabled(FPGA::Periphery::SourceChip); bool LOEn = FPGA::IsEnabled(FPGA::Periphery::LO1Chip); FPGA::Enable(FPGA::Periphery::SourceChip); FPGA::Enable(FPGA::Periphery::LO1Chip); - HW::fillDeviceInfo(&packet.info, true); + HW::getDeviceStatus(&packet.statusV1, true); // restore PLL state FPGA::Enable(FPGA::Periphery::SourceChip, srcEn); FPGA::Enable(FPGA::Periphery::LO1Chip, LOEn); diff --git a/Software/VNA_embedded/Application/Manual.hpp b/Software/VNA_embedded/Application/Manual.hpp index 35e6517..e13ed81 100644 --- a/Software/VNA_embedded/Application/Manual.hpp +++ b/Software/VNA_embedded/Application/Manual.hpp @@ -5,7 +5,7 @@ namespace Manual { -void Setup(Protocol::ManualControl m); +void Setup(Protocol::ManualControlV1 m); bool MeasurementDone(const FPGA::SamplingResult &result); void Work(); void Stop(); diff --git a/Software/VNA_embedded/Application/SpectrumAnalyzer.cpp b/Software/VNA_embedded/Application/SpectrumAnalyzer.cpp index c5cc48d..f616251 100644 --- a/Software/VNA_embedded/Application/SpectrumAnalyzer.cpp +++ b/Software/VNA_embedded/Application/SpectrumAnalyzer.cpp @@ -385,8 +385,8 @@ void SA::Work() { // send device info every nth point FPGA::Enable(FPGA::Periphery::SourceChip); // needs to enable the chip to get a valid temperature reading Protocol::PacketInfo packet; - packet.type = Protocol::PacketType::DeviceInfo; - HW::fillDeviceInfo(&packet.info, true); + packet.type = Protocol::PacketType::DeviceStatusV1; + HW::getDeviceStatus(&packet.statusV1, true); FPGA::Disable(FPGA::Periphery::SourceChip); Communication::Send(packet); } diff --git a/Software/VNA_embedded/Application/VNA.cpp b/Software/VNA_embedded/Application/VNA.cpp index 8a856dc..4e3e4e5 100644 --- a/Software/VNA_embedded/Application/VNA.cpp +++ b/Software/VNA_embedded/Application/VNA.cpp @@ -367,8 +367,8 @@ void VNA::Work() { HW::Ref::update(); // Compile info packet Protocol::PacketInfo packet; - packet.type = Protocol::PacketType::DeviceInfo; - HW::fillDeviceInfo(&packet.info, true); + packet.type = Protocol::PacketType::DeviceStatusV1; + HW::getDeviceStatus(&packet.statusV1, true); Communication::Send(packet); // do not reset unlevel flag here, as it is calculated only once at the setup of the sweep // Start next sweep From c96ac7b7943ac7441b7fe5f4f2005920bfdf08d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sun, 3 Apr 2022 23:34:18 +0200 Subject: [PATCH 3/3] allow multiple VNA/SG/SA tabs --- .../PC_Application/Generator/generator.cpp | 5 +- Software/PC_Application/Generator/generator.h | 6 +- .../SpectrumAnalyzer/spectrumanalyzer.cpp | 9 +- .../SpectrumAnalyzer/spectrumanalyzer.h | 6 +- Software/PC_Application/VNA/vna.cpp | 10 +- Software/PC_Application/VNA/vna.h | 6 +- Software/PC_Application/appwindow.cpp | 88 +++++--- Software/PC_Application/appwindow.h | 7 +- Software/PC_Application/mode.cpp | 191 +++++++++++++++--- Software/PC_Application/mode.h | 31 ++- Software/PC_Application/scpi.cpp | 11 + Software/PC_Application/scpi.h | 1 + 12 files changed, 293 insertions(+), 78 deletions(-) diff --git a/Software/PC_Application/Generator/generator.cpp b/Software/PC_Application/Generator/generator.cpp index d0e0bcf..0d31495 100644 --- a/Software/PC_Application/Generator/generator.cpp +++ b/Software/PC_Application/Generator/generator.cpp @@ -2,9 +2,8 @@ #include -Generator::Generator(AppWindow *window) - : Mode(window, "Signal Generator") - , SCPINode("GENerator") +Generator::Generator(AppWindow *window, QString name) + : Mode(window, name, "GENerator") { central = new SignalgeneratorWidget(window->getDevice(), window); diff --git a/Software/PC_Application/Generator/generator.h b/Software/PC_Application/Generator/generator.h index 0897bf4..41f4bb5 100644 --- a/Software/PC_Application/Generator/generator.h +++ b/Software/PC_Application/Generator/generator.h @@ -5,13 +5,15 @@ #include "signalgenwidget.h" #include "scpi.h" -class Generator : public Mode, public SCPINode +class Generator : public Mode { public: - Generator(AppWindow *window); + Generator(AppWindow *window, QString name = "Signal Generator"); void deactivate() override; void initializeDevice() override; + virtual Type getType() override { return Type::SG;} + // Nothing to do for now virtual nlohmann::json toJSON() override; virtual void fromJSON(nlohmann::json j) override; diff --git a/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.cpp b/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.cpp index 5d8d08e..74d5f25 100644 --- a/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.cpp +++ b/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.cpp @@ -45,9 +45,8 @@ #include #include -SpectrumAnalyzer::SpectrumAnalyzer(AppWindow *window) - : Mode(window, "Spectrum Analyzer"), - SCPINode("SA"), +SpectrumAnalyzer::SpectrumAnalyzer(AppWindow *window, QString name) + : Mode(window, name, "SA"), central(new TileWidget(traceModel, window)) { averages = 1; @@ -422,6 +421,10 @@ using namespace std; void SpectrumAnalyzer::NewDatapoint(Protocol::SpectrumAnalyzerResult d) { + if(Mode::getActiveMode() != this) { + return; + } + if(d.pointNum >= settings.pointNum) { qWarning() << "Ignoring point with too large point number (" << d.pointNum << ")"; return; diff --git a/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.h b/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.h index 46f033a..95a590f 100644 --- a/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.h +++ b/Software/PC_Application/SpectrumAnalyzer/spectrumanalyzer.h @@ -12,15 +12,17 @@ #include #include -class SpectrumAnalyzer : public Mode, public SCPINode +class SpectrumAnalyzer : public Mode { Q_OBJECT public: - SpectrumAnalyzer(AppWindow *window); + SpectrumAnalyzer(AppWindow *window, QString name = "Spectrum Analyzer"); void deactivate() override; void initializeDevice() override; + virtual Type getType() override { return Type::SA;} + // Only save/load user changeable stuff, no need to save the widgets/mode name etc. virtual nlohmann::json toJSON() override; virtual void fromJSON(nlohmann::json j) override; diff --git a/Software/PC_Application/VNA/vna.cpp b/Software/PC_Application/VNA/vna.cpp index 44c4fd9..ce8d311 100644 --- a/Software/PC_Application/VNA/vna.cpp +++ b/Software/PC_Application/VNA/vna.cpp @@ -51,9 +51,8 @@ #include #include -VNA::VNA(AppWindow *window) - : Mode(window, "Vector Network Analyzer"), - SCPINode("VNA"), +VNA::VNA(AppWindow *window, QString name) + : Mode(window, name, "VNA"), deembedding(traceModel), deembedding_active(false), central(new TileWidget(traceModel)) @@ -790,6 +789,11 @@ using namespace std; void VNA::NewDatapoint(Protocol::Datapoint d) { + if(Mode::getActiveMode() != this) { + // ignore + return; + } + if(changingSettings) { // already setting new sweep settings, ignore incoming points from old settings return; diff --git a/Software/PC_Application/VNA/vna.h b/Software/PC_Application/VNA/vna.h index 9371b45..fb960b0 100644 --- a/Software/PC_Application/VNA/vna.h +++ b/Software/PC_Application/VNA/vna.h @@ -13,17 +13,19 @@ #include #include -class VNA : public Mode, public SCPINode +class VNA : public Mode { Q_OBJECT public: - VNA(AppWindow *window); + VNA(AppWindow *window, QString name = "Vector Network Analyzer"); void deactivate() override; void initializeDevice() override; void deviceDisconnected() override; void shutdown() override; + virtual Type getType() override { return Type::VNA;} + // Only save/load user changeable stuff, no need to save the widgets/mode name etc. virtual nlohmann::json toJSON() override; virtual void fromJSON(nlohmann::json j) override; diff --git a/Software/PC_Application/appwindow.cpp b/Software/PC_Application/appwindow.cpp index 2f46774..ad6adf5 100644 --- a/Software/PC_Application/appwindow.cpp +++ b/Software/PC_Application/appwindow.cpp @@ -134,9 +134,9 @@ AppWindow::AppWindow(QWidget *parent) // Create GUI modes central = new QStackedWidget; setCentralWidget(central); - vna = new VNA(this); - generator = new Generator(this); - spectrumAnalyzer = new SpectrumAnalyzer(this); + auto vna = new VNA(this); + auto generator = new Generator(this); + auto spectrumAnalyzer = new SpectrumAnalyzer(this); // UI connections connect(ui->actionUpdate_Device_List, &QAction::triggered, this, &AppWindow::UpdateDeviceList); @@ -278,9 +278,9 @@ void AppWindow::closeEvent(QCloseEvent *event) if(pref.Startup.UseSetupFile && pref.Startup.AutosaveSetupFile) { SaveSetup(pref.Startup.SetupFile); } - vna->shutdown(); - generator->shutdown(); - spectrumAnalyzer->shutdown(); + for(auto m : Mode::getModes()) { + m->shutdown(); + } delete device; QSettings settings; settings.setValue("geometry", saveGeometry()); @@ -475,27 +475,32 @@ void AppWindow::SetupSCPI() if (params.size() != 1) { return "ERROR"; } + Mode *mode = nullptr; if (params[0] == "VNA") { - vna->activate(); + mode = Mode::findFirstOfType(Mode::Type::VNA); } else if(params[0] == "GEN") { - generator->activate(); + mode = Mode::findFirstOfType(Mode::Type::SG); } else if(params[0] == "SA") { - spectrumAnalyzer->activate(); + mode = Mode::findFirstOfType(Mode::Type::SA); } else { return "INVALID MDOE"; } - return ""; - }, [=](QStringList) -> QString { - auto active = Mode::getActiveMode(); - if(active == vna) { - return "VNA"; - } else if(active == generator) { - return "GEN"; - } else if(active == spectrumAnalyzer) { - return "SA"; + if(mode) { + mode->activate(); + return ""; } else { return "ERROR"; } + }, [=](QStringList) -> QString { + auto active = Mode::getActiveMode(); + if(active) { + switch(active->getType()) { + case Mode::Type::VNA: return "VNA"; + case Mode::Type::SG: return "SG"; + case Mode::Type::SA: return "SA"; + } + } + return "ERROR"; })); auto scpi_status = new SCPINode("STAtus"); scpi_dev->add(scpi_status); @@ -553,10 +558,6 @@ void AppWindow::SetupSCPI() return QString::number(Device::Info(getDevice()).limits_maxFreqHarmonic); })); - scpi.add(vna); - scpi.add(generator); - scpi.add(spectrumAnalyzer); - auto scpi_manual = new SCPINode("MANual"); scpi_manual->add(new SCPICommand("STArt",[=](QStringList) -> QString { StartManualControl(); @@ -798,6 +799,11 @@ void AppWindow::StopTCPServer() server = nullptr; } +SCPI* AppWindow::getSCPI() +{ + return &scpi; +} + int AppWindow::UpdateDeviceList() { deviceActionGroup->setExclusive(true); @@ -963,10 +969,18 @@ void AppWindow::SaveSetup(QString filename) nlohmann::json AppWindow::SaveSetup() { nlohmann::json j; - j["activeMode"] = Mode::getActiveMode()->getName().toStdString(); - j["VNA"] = vna->toJSON(); - j["Generator"] = generator->toJSON(); - j["SpectrumAnalyzer"] = spectrumAnalyzer->toJSON(); + nlohmann::json jm; + for(auto m : Mode::getModes()) { + nlohmann::json jmode; + jmode["type"] = Mode::TypeToName(m->getType()).toStdString(); + jmode["name"] = m->getName().toStdString(); + jmode["settings"] = m->toJSON(); + jm.push_back(jmode); + } + j["Modes"] = jm; + if(Mode::getActiveMode()) { + j["activeMode"] = Mode::getActiveMode()->getName().toStdString(); + } nlohmann::json ref; ref["Mode"] = toolbars.reference.type->currentText().toStdString(); ref["Output"] = toolbars.reference.outFreq->currentText().toStdString(); @@ -1003,20 +1017,36 @@ void AppWindow::LoadSetup(nlohmann::json j) toolbars.reference.type->setCurrentText(QString::fromStdString(j["Reference"].value("Mode", "Int"))); toolbars.reference.outFreq->setCurrentText(QString::fromStdString(j["Reference"].value("Output", "Off"))); } + while(Mode::getModes().size() > 0) { + delete Mode::getModes()[0]; + } + + // old style VNA/Generator/Spectrum Analyzer settings if(j.contains("VNA")) { + auto vna = new VNA(this); vna->fromJSON(j["VNA"]); } if(j.contains("Generator")) { + auto generator = new Generator(this); generator->fromJSON(j["Generator"]); } if(j.contains("SpectrumAnalyzer")) { + auto spectrumAnalyzer = new SpectrumAnalyzer(this); spectrumAnalyzer->fromJSON(j["SpectrumAnalyzer"]); } + if(j.contains("Modes")) { + for(auto jm : j["Modes"]) { + auto type = Mode::TypeFromName(QString::fromStdString(jm.value("type", "Invalid"))); + if(type != Mode::Type::Last && jm.contains("settings")) { + auto m = Mode::createNew(this, QString::fromStdString(jm.value("name", "")), type); + m->fromJSON(jm["settings"]); + } + } + } // activate the correct mode QString modeName = QString::fromStdString(j.value("activeMode", "")); - std::vector modes = {vna, generator, spectrumAnalyzer}; - for(auto m : modes) { + for(auto m : Mode::getModes()) { if(m->getName() == modeName) { m->activate(); break; @@ -1112,6 +1142,4 @@ void AppWindow::UpdateStatusBar(DeviceStatusBar status) // invalid status break; } - - } diff --git a/Software/PC_Application/appwindow.h b/Software/PC_Application/appwindow.h index 95f92c8..daec304 100644 --- a/Software/PC_Application/appwindow.h +++ b/Software/PC_Application/appwindow.h @@ -48,6 +48,8 @@ public: static bool showGUI(); + SCPI* getSCPI(); + protected: void closeEvent(QCloseEvent *event) override; private slots: @@ -100,11 +102,6 @@ private: ManualControlDialog *manual; - // Modes - VNA *vna; - Generator *generator; - SpectrumAnalyzer *spectrumAnalyzer; - // Status bar widgets QLabel lConnectionStatus; QLabel lDeviceInfo; diff --git a/Software/PC_Application/mode.cpp b/Software/PC_Application/mode.cpp index 446503b..3f311c7 100644 --- a/Software/PC_Application/mode.cpp +++ b/Software/PC_Application/mode.cpp @@ -1,44 +1,115 @@ #include "mode.h" +#include "Generator/generator.h" +#include "VNA/vna.h" +#include "SpectrumAnalyzer/spectrumanalyzer.h" +#include "CustomWidgets/informationbox.h" + #include "ui_main.h" #include #include #include #include +#include +std::vector Mode::modes; Mode* Mode::activeMode = nullptr; +QTabBar* Mode::tabbar = nullptr; QWidget* Mode::cornerWidget = nullptr; -QButtonGroup* Mode::modeButtonGroup = nullptr; +//QButtonGroup* Mode::modeButtonGroup = nullptr; -Mode::Mode(AppWindow *window, QString name) +Mode::Mode(AppWindow *window, QString name, QString SCPIname) : QObject(window), + SCPINode(SCPIname), window(window), name(name), central(nullptr) -{ +{ + if(!nameAllowed(name)) { + throw std::runtime_error("Unable to create mode, name already taken"); + } // Create mode switch button - auto modeSwitch = new QPushButton(name); - modeSwitch->setCheckable(true); - modeSwitch->setMaximumHeight(window->menuBar()->height()); if(!cornerWidget) { // this is the first created mode, initialize corner widget and set this mode as active - modeSwitch->setChecked(true); - cornerWidget = new QWidget; + cornerWidget = new QWidget(); cornerWidget->setLayout(new QHBoxLayout); cornerWidget->layout()->setSpacing(0); cornerWidget->layout()->setMargin(0); cornerWidget->layout()->setContentsMargins(0,0,0,0); - window->menuBar()->setCornerWidget(cornerWidget); - modeButtonGroup = new QButtonGroup; -// window->menuBar()->setMaximumHeight(window->menuBar()->height()); - } - cornerWidget->layout()->addWidget(modeSwitch); - modeButtonGroup->addButton(modeSwitch); + cornerWidget->setMaximumHeight(window->menuBar()->height()); - connect(modeSwitch, &QPushButton::clicked, [=](){ - activate(); - }); + tabbar = new QTabBar; + tabbar->setTabsClosable(true); + tabbar->setStyleSheet("QTabBar::tab { height: "+QString::number(window->menuBar()->height())+"px;}"); + cornerWidget->layout()->addWidget(tabbar); + + auto bAdd = new QPushButton(); + QIcon icon; + QString iconThemeName = QString::fromUtf8("list-add"); + if (QIcon::hasThemeIcon(iconThemeName)) { + icon = QIcon::fromTheme(iconThemeName); + } else { + icon.addFile(QString::fromUtf8(":/icons/add.png"), QSize(), QIcon::Normal, QIcon::Off); + } + bAdd->setIcon(icon); + + auto mAdd = new QMenu(); + for(unsigned int i=0;i<(int) Type::Last;i++) { + auto type = (Type) i; + auto action = new QAction(TypeToName(type)); + mAdd->addAction(action); + connect(action, &QAction::triggered, [=](){ + bool ok; + QString text = QInputDialog::getText(window, "Create new "+TypeToName(type)+" tab", + "Name:", QLineEdit::Normal, + TypeToName(type), &ok); + if(ok) { + if(!nameAllowed(text)) { + InformationBox::ShowError("Name collision", "Unable to create tab, no duplicate names allowed"); + } else { + auto mode = Mode::createNew(window, text, type); + mode->activate(); + } + } + }); + } + bAdd->setMenu(mAdd); + bAdd->setMaximumHeight(window->menuBar()->height()); + bAdd->setMaximumWidth(40); + cornerWidget->layout()->addWidget(bAdd); + + window->menuBar()->setCornerWidget(cornerWidget); + + connect(tabbar, &QTabBar::currentChanged, [=](int index){ + modes[index]->activate(); + }); + connect(tabbar, &QTabBar::tabCloseRequested, [=](int index){ + delete modes[index]; + }); + } + modes.push_back(this); + tabbar->blockSignals(true); + tabbar->insertTab(tabbar->count(), name); + tabbar->blockSignals(false); + window->getSCPI()->add(this); +} + +Mode::~Mode() +{ + window->getSCPI()->remove(this); + if(activeMode == this) { + deactivate(); + } + auto index = findTabIndex(); + tabbar->blockSignals(true); + tabbar->removeTab(index); + tabbar->blockSignals(false); + modes.erase(modes.begin() + index); + if(modes.size() > 0) { + modes[tabbar->currentIndex()]->activate(); + } + window->getCentral()->removeWidget(central); } void Mode::activate() @@ -89,14 +160,10 @@ void Mode::activate() } activeMode = this; - // force activation of correct pushbutton in case the mode switch was done via script/setup load. - // This will trigger a second activation of this mode in the signal of the button, but since it is + // force activation of correct tab in case the mode switch was done via script/setup load. + // This will trigger a second activation of this mode in the signal of the tab bar, but since it is // already the active mode, this function will just return -> no recursion - for(auto b : modeButtonGroup->buttons()) { - if(b->text() == name) { - b->click(); - } - } + tabbar->setCurrentIndex(findTabIndex()); if(window->getDevice()) { initializeDevice(); @@ -131,6 +198,9 @@ void Mode::deactivate() } qDebug() << "Deactivated mode" << name; + if(window->getDevice()) { + window->getDevice()->SetIdle(); + } activeMode = nullptr; } @@ -139,6 +209,26 @@ Mode *Mode::getActiveMode() return activeMode; } +QString Mode::TypeToName(Mode::Type t) +{ + switch(t) { + case Type::VNA: return "Vector Network Analyzer"; + case Type::SG: return "Signal Generator"; + case Type::SA: return "Spectrum Analyzer"; + default: return "Invalid"; + } +} + +Mode::Type Mode::TypeFromName(QString s) +{ + for(unsigned int i=0;i<(int)Type::Last;i++) { + if(s == TypeToName((Type) i)) { + return (Type) i; + } + } + return Type::Last; +} + void Mode::saveSreenshot() { auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, QFileDialog::DontUseNativeDialog); @@ -153,6 +243,27 @@ void Mode::saveSreenshot() central->grab().save(filename); } +Mode *Mode::createNew(AppWindow *window, QString name, Mode::Type t) +{ + switch(t) { + case Type::VNA: return new VNA(window, name); + case Type::SG: return new Generator(window, name); + case Type::SA: return new SpectrumAnalyzer(window, name); + default: return nullptr; + } +} + +bool Mode::nameAllowed(QString name) +{ + for(auto m : modes) { + if(m->getName() == name) { + // name already taken, no duplicates allowed + return false; + } + } + return true; +} + void Mode::finalize(QWidget *centralWidget) { central = centralWidget; @@ -176,6 +287,27 @@ void Mode::finalize(QWidget *centralWidget) } } +int Mode::findTabIndex() +{ + auto it = std::find(modes.begin(), modes.end(), this); + return it - modes.begin(); +} + +std::vector Mode::getModes() +{ + return modes; +} + +Mode *Mode::findFirstOfType(Mode::Type t) +{ + for(auto m : modes) { + if(m->getType() == t) { + return m; + } + } + return nullptr; +} + void Mode::setStatusbarMessage(QString msg) { statusbarMsg = msg; @@ -188,3 +320,14 @@ QString Mode::getName() const { return name; } + +void Mode::setName(const QString &value) +{ + if(!nameAllowed(value)) { + // unable to use this name + return; + } + name = value; + tabbar->setTabText(findTabIndex(), name); +} + diff --git a/Software/PC_Application/mode.h b/Software/PC_Application/mode.h index b5f91f2..9d2f065 100644 --- a/Software/PC_Application/mode.h +++ b/Software/PC_Application/mode.h @@ -3,30 +3,50 @@ #include "appwindow.h" #include "savable.h" +#include "scpi.h" #include #include #include #include +#include #include #include -class Mode : public QObject, public Savable +class Mode : public QObject, public Savable, public SCPINode { Q_OBJECT public: - Mode(AppWindow *window, QString name); + enum class Type { + VNA, + SG, + SA, + Last, + }; + + Mode(AppWindow *window, QString name, QString SCPIname); + ~Mode(); virtual void activate(); // derived classes must call Mode::activate before doing anything virtual void deactivate(); // derived classes must call Mode::deactivate before returning virtual void shutdown(){}; // called when the application is about to exit QString getName() const; + void setName(const QString &value); static Mode *getActiveMode(); + static QString TypeToName(Type t); + static Type TypeFromName(QString s); + virtual Type getType() = 0; virtual void initializeDevice() = 0; virtual void deviceDisconnected(){}; virtual void saveSreenshot(); + + static Mode *createNew(AppWindow *window, QString name, Type t); + static bool nameAllowed(QString name); + static std::vector getModes(); + static Mode* findFirstOfType(Type t); + signals: void statusbarMessage(QString msg); protected: @@ -39,10 +59,13 @@ protected: std::set docks; private: + int findTabIndex(); + static std::vector modes; static Mode *activeMode; + static QTabBar *tabbar; static QWidget *cornerWidget; - static QButtonGroup *modeButtonGroup; - const QString name; +// static QButtonGroup *modeButtonGroup; + QString name; QString statusbarMsg; QWidget *central; }; diff --git a/Software/PC_Application/scpi.cpp b/Software/PC_Application/scpi.cpp index 01b31d1..5e5e730 100644 --- a/Software/PC_Application/scpi.cpp +++ b/Software/PC_Application/scpi.cpp @@ -106,6 +106,17 @@ bool SCPINode::add(SCPINode *node) return true; } +bool SCPINode::remove(SCPINode *node) +{ + auto it = std::find(subnodes.begin(), subnodes.end(), node); + if(it != subnodes.end()) { + subnodes.erase(it); + return true; + } else { + return false; + } +} + bool SCPINode::add(SCPICommand *cmd) { if(nameCollision(cmd->name())) { diff --git a/Software/PC_Application/scpi.h b/Software/PC_Application/scpi.h index 57614f2..97ab8b3 100644 --- a/Software/PC_Application/scpi.h +++ b/Software/PC_Application/scpi.h @@ -31,6 +31,7 @@ public: name(name){} bool add(SCPINode *node); + bool remove(SCPINode *node); bool add(SCPICommand *cmd); private: