Add command AIN:ACQUIRE:ENABLE
This commit is contained in:
		
							parent
							
								
									2bf8b9f938
								
							
						
					
					
						commit
						ce08bd84e4
					
				|  | @ -119,6 +119,7 @@ In the response string, such data elements are separated by space characters. | |||
| | `AIN:TRIGGER:STATUS?`     | Trigger status. | | ||||
| | `AIN:TRIGGER:EXT:CHANNEL` | External trigger channel. | | ||||
| | `AIN:TRIGGER:EXT:EDGE`    | External trigger edge. | | ||||
| | `AIN:ACQUIRE:ENABLE`      | Enable analog acquisition. | | ||||
| | `TT:SAMPLE?`              | Digital input state. | | ||||
| | `TT:EVENT:MASK`           | Timetagger event mask. | | ||||
| | `TT:MARK`                 | Emit timetagger marker. | | ||||
|  | @ -382,6 +383,18 @@ This command selects rising or falling edges in the external trigger signal. | |||
| Query: `AIN:TRIGGER:EXT:EDGE?` <br> | ||||
| Response: either `RISING` or `FALLING`. | ||||
| 
 | ||||
| ### `AIN:ACQUIRE:ENABLE` | ||||
| 
 | ||||
| Command: `AIN:ACQUIRE:ENABLE en` <br> | ||||
| Parameter _en_: either `0` or `1`. | ||||
| 
 | ||||
| This command enables or disables analog acquisition. | ||||
| When enabled, analog samples are acquired according to the configured trigger mode. | ||||
| When disabled, all triggers are ignored and any ongoing analog acquisition stops immediately. | ||||
| 
 | ||||
| Query: `AIN:ACQUIRE:ENABLE?` <br> | ||||
| Response: either `0` or `1`. | ||||
| 
 | ||||
| ### `TT:SAMPLE?` | ||||
| 
 | ||||
| Query: `TT:SAMPLE?` <br> | ||||
|  |  | |||
|  | @ -543,9 +543,6 @@ public: | |||
|         m_device.set_record_length(1024); | ||||
|         m_device.set_timetagger_event_mask(0); | ||||
|         m_device.clear_adc_range(); | ||||
| 
 | ||||
|         // Enable analog acquisition.
 | ||||
|         m_device.set_acquisition_enabled(true); | ||||
|     } | ||||
| 
 | ||||
|     /**
 | ||||
|  | @ -901,6 +898,12 @@ private: | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** Handle command AIN:ACQUIRE:ENABLE? */ | ||||
|     std::string qry_acquire_enable(CommandEnvironment env) | ||||
|     { | ||||
|         return m_device.is_acquisition_enabled() ? "1" : "0"; | ||||
|     } | ||||
| 
 | ||||
|     /** Handle command TT:SAMPLE? */ | ||||
|     std::string qry_tt_sample(CommandEnvironment env) | ||||
|     { | ||||
|  | @ -1288,6 +1291,18 @@ private: | |||
|         return "OK"; | ||||
|     } | ||||
| 
 | ||||
|     /** Handle command AIN:ACQUIRE:ENABLE */ | ||||
|     std::string cmd_acquire_enable(CommandEnvironment env, | ||||
|                                    const std::string& arg) | ||||
|     { | ||||
|         unsigned int n; | ||||
|         if ((! parse_uint(arg, n)) || (n > 1)) { | ||||
|             return err_invalid_argument(); | ||||
|         } | ||||
|         m_device.set_acquisition_enabled(n != 0); | ||||
|         return "OK"; | ||||
|     } | ||||
| 
 | ||||
|     /** Handle command TT:EVENT:MASK */ | ||||
|     std::string cmd_tt_event_mask(CommandEnvironment env, | ||||
|                                   const std::string& arg) | ||||
|  | @ -1367,6 +1382,7 @@ private: | |||
|         { "ain:chN:sample:raw?",    &CommandHandler::qry_channel_sample }, | ||||
|         { "ain:chN:minmax?",        &CommandHandler::qry_channel_minmax }, | ||||
|         { "ain:chN:minmax:raw?",    &CommandHandler::qry_channel_minmax }, | ||||
|         { "ain:acquire:enable?",    &CommandHandler::qry_acquire_enable }, | ||||
|         { "ain:srate?",             &CommandHandler::qry_srate }, | ||||
|         { "ain:srate:divisor?",     &CommandHandler::qry_srate_divisor }, | ||||
|         { "ain:srate:mode?",        &CommandHandler::qry_srate_mode }, | ||||
|  | @ -1402,6 +1418,7 @@ private: | |||
|         { "ain:chN:offset:RR",      &CommandHandler::cmd_channel_offset }, | ||||
|         { "ain:chN:gain",           &CommandHandler::cmd_channel_gain }, | ||||
|         { "ain:chN:gain:RR",        &CommandHandler::cmd_channel_gain }, | ||||
|         { "ain:acquire:enable",     &CommandHandler::cmd_acquire_enable }, | ||||
|         { "ain:srate",              &CommandHandler::cmd_srate }, | ||||
|         { "ain:srate:divisor",      &CommandHandler::cmd_srate_divisor }, | ||||
|         { "ain:srate:mode",         &CommandHandler::cmd_srate_mode }, | ||||
|  | @ -1864,13 +1881,12 @@ int run_remote_control_server( | |||
|     command_handler.add_data_server(acq_server); | ||||
|     command_handler.add_data_server(timetagger_server); | ||||
| 
 | ||||
|     // Restore firmware status on exit from this function.
 | ||||
|     // Disable DMA on exit from this function.
 | ||||
|     struct ScopeGuard { | ||||
|         PuzzleFwDevice& m_device; | ||||
|         ScopeGuard(PuzzleFwDevice& device) : m_device(device) { } | ||||
|         ~ScopeGuard() { | ||||
|             m_device.set_dma_enabled(false); | ||||
|             m_device.set_acquisition_enabled(false); | ||||
|         } | ||||
|     } scope_guard(device); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,2 +1,2 @@ | |||
| #define PUZZLEFW_SW_MAJOR 0 | ||||
| #define PUZZLEFW_SW_MINOR 3 | ||||
| #define PUZZLEFW_SW_MINOR 4 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue