libm2k
Loading...
Searching...
No Matches
m2khardwaretrigger.hpp
1/*
2 * Copyright (c) 2019 Analog Devices Inc.
3 *
4 * This file is part of libm2k
5 * (see http://www.github.com/analogdevicesinc/libm2k).
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 2.1 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef M2KHARDWARETRIGGER_HPP
23#define M2KHARDWARETRIGGER_HPP
24
25#include <libm2k/enums.hpp>
27#include <libm2k/m2kglobal.hpp>
28#include <libm2k/m2k.hpp>
29#include <vector>
30#include <memory>
31
32namespace libm2k {
33
41class LIBM2K_API M2kHardwareTrigger
42{
43public:
47 virtual ~M2kHardwareTrigger() {}
48
49
53 virtual void reset() = 0;
54
60 virtual int getAnalogLevelRaw(unsigned int chnIdx) = 0;
61
62
68 virtual void setAnalogLevelRaw(unsigned int chnIdx, int level) = 0;
69
70
76 virtual void setAnalogLevel(unsigned int chnIdx, double v_level) = 0;
77
78
84 virtual double getAnalogLevel(unsigned int chnIdx) = 0;
85
86
92 virtual double getAnalogHysteresis(unsigned int chnIdx) = 0;
93
94
100 virtual void setAnalogHysteresis(unsigned int chnIdx, double hysteresis) = 0;
101
102
108 virtual M2K_TRIGGER_CONDITION_ANALOG getAnalogCondition(unsigned int chnIdx) = 0;
109
110
116 virtual void setAnalogCondition(unsigned int chnIdx, M2K_TRIGGER_CONDITION_ANALOG cond) = 0;
117
118
124 virtual M2K_TRIGGER_CONDITION_DIGITAL getDigitalCondition(unsigned int chnIdx) = 0;
125
126
133
134
140 virtual void setDigitalCondition(unsigned int chnIdx, M2K_TRIGGER_CONDITION_DIGITAL cond) = 0;
141
142
149
150
151
157 virtual M2K_TRIGGER_MODE getAnalogMode(unsigned int chnIdx) = 0;
158
159
165 virtual void setAnalogMode(unsigned int chnIdx, M2K_TRIGGER_MODE mode) = 0;
166
167
173
174
180
181
187
188
194
195
200 virtual int getAnalogSourceChannel() = 0;
201
202
207 virtual void setAnalogSourceChannel(unsigned int chnIdx) = 0;
208
209
224 virtual int getAnalogDelay() const = 0;
225
226
241 virtual void setAnalogDelay(int delay) = 0;
242
243
258 virtual int getDigitalDelay() const = 0;
259
260
275 virtual void setDigitalDelay(int delay) = 0;
276
277
281 virtual struct SETTINGS *getCurrentHwSettings() = 0;
282
283
287 virtual void setHwTriggerSettings(struct SETTINGS *settings) = 0;
288
289
294 virtual void setAnalogStreamingFlag(bool enable) = 0;
295
296
301 virtual bool getAnalogStreamingFlag() = 0;
302
303
313 virtual void setDigitalStreamingFlag(bool enable) = 0;
314
315
320 virtual bool getDigitalStreamingFlag() = 0;
321
322
326 virtual void setCalibParameters(unsigned int chnIdx, double scaling, double vert_offset) = 0;
327
328
335
336
342 virtual void setAnalogExternalCondition(unsigned int chnIdx, M2K_TRIGGER_CONDITION_DIGITAL cond) = 0;
343
344
350
351
357
358
371
372
383
384
388 virtual bool hasExternalTriggerIn() const = 0;
389
390
394 virtual bool hasExternalTriggerOut() const = 0;
395
396
400 virtual bool hasCrossInstrumentTrigger() const = 0;
401
402
412
413
423
424
435
436
447
448
462
463
476
486
487
497};
498}
499
500#endif //M2KHARDWARETRIGGER_HPP
Controls the hardware trigger for ADALM2000.
Definition m2khardwaretrigger.hpp:42
Digital enumerations.
DIO_CHANNEL
Indexes of the channels.
Definition digital/enums.hpp:69
DIO_TRIGGER_MODE
Triggering mode for digital channels.
Definition digital/enums.hpp:105
Generic M2K enumerations.
M2K_TRIGGER_SOURCE_DIGITAL
Select the source for the digital trigger.
Definition enums.hpp:193
M2K_TRIGGER_CONDITION_OUT
Trigger condition when the source for M2K_TRIGGER_SOURCE_OUT is TRIGGER_TI.
Definition enums.hpp:169
M2K_TRIGGER_OUT_SELECT
Select which trigger event will be forwarded on TO pin (trigger out)
Definition enums.hpp:205
M2K_TRIGGER_CONDITION_ANALOG
Condition of triggering.
Definition enums.hpp:96
M2K_TRIGGER_STATUS_ANALOG_OUT
The status value determines the action that the output interface will take when the trigger condition...
Definition enums.hpp:182
M2K_TRIGGER_CONDITION_DIGITAL
Condition of triggering.
Definition enums.hpp:109
M2K_TRIGGER_SOURCE_OUT
Selects the source trigger for the output interfaces.
Definition enums.hpp:158
M2K_TRIGGER_MODE
Select the mode for the analog trigger.
Definition enums.hpp:123
M2K_TRIGGER_SOURCE_ANALOG
Select the source for the analog trigger.
Definition enums.hpp:140
virtual int getAnalogDelay() const =0
Get the analog trigger delay.
virtual M2K_TRIGGER_CONDITION_DIGITAL getAnalogExternalCondition(unsigned int chnIdx)=0
getAnalogExternalCondition
virtual int getAnalogSourceChannel()=0
Get the channel source of the analog trigger.
virtual M2K_TRIGGER_SOURCE_DIGITAL getDigitalSource() const
Check which is the source of the DigitalIn interface trigger event.
virtual M2K_TRIGGER_CONDITION_OUT getAnalogOutTriggerCondition() const =0
Returns the condition of the AnalogOut trigger event when the source is TI.
virtual void setAnalogDelay(int delay)=0
Set the analog trigger delay.
virtual double getAnalogHysteresis(unsigned int chnIdx)=0
Get the analog hysteresis value for one channel.
virtual M2K_TRIGGER_CONDITION_ANALOG getAnalogCondition(unsigned int chnIdx)=0
Get the trigger condition for the analog trigger on a specific channel.
virtual void setAnalogHysteresis(unsigned int chnIdx, double hysteresis)=0
Set the analog hysteresis value for one channel.
virtual void setAnalogCondition(unsigned int chnIdx, M2K_TRIGGER_CONDITION_ANALOG cond)=0
Set the trigger condition for the analog trigger on a specific channel.
virtual void setAnalogLevelRaw(unsigned int chnIdx, int level)=0
Set the raw analog trigger level for one channel.
virtual void setAnalogOutTriggerSource(M2K_TRIGGER_SOURCE_OUT src)=0
Select which interface triggers the AnalogOut.
virtual void setAnalogSource(M2K_TRIGGER_SOURCE_ANALOG src)=0
Set the source of the analog trigger.
virtual double getAnalogLevel(unsigned int chnIdx)=0
Get the analog trigger level for one channel.
virtual void setAnalogLevel(unsigned int chnIdx, double v_level)=0
Set the analog trigger level for one channel.
virtual void setAnalogExternalCondition(unsigned int chnIdx, M2K_TRIGGER_CONDITION_DIGITAL cond)=0
setAnalogExternalCondition
virtual M2K_TRIGGER_SOURCE_OUT getAnalogOutTriggerSource() const =0
Returns the source of the AnalogOut trigger event.
virtual void setAnalogExternalOutSelect(M2K_TRIGGER_OUT_SELECT output_select)
Select what should be redirected on the TO (trigger out) pin. The options are (none,...
virtual M2K_TRIGGER_CONDITION_DIGITAL getDigitalCondition(libm2k::digital::DIO_CHANNEL chnIdx)=0
Get the trigger condition for the digital trigger on a specific channel.
virtual void setDigitalMode(libm2k::digital::DIO_TRIGGER_MODE mode)=0
Set the mode for the digital trigger.
virtual void setDigitalSource(M2K_TRIGGER_SOURCE_DIGITAL external_src)
Select which interface triggers the DigitalIn.
virtual M2K_TRIGGER_MODE getAnalogMode(unsigned int chnIdx)=0
Get the mode for the analog trigger on a specific channel.
virtual M2K_TRIGGER_SOURCE_ANALOG getAnalogSource()=0
Get the source of the analog trigger.
virtual void setDigitalExternalCondition(M2K_TRIGGER_CONDITION_DIGITAL cond)=0
setDigitalExternalCondition
virtual void setAnalogMode(unsigned int chnIdx, M2K_TRIGGER_MODE mode)=0
Set the mode for the analog trigger on a specific channel.
virtual void setAnalogSourceChannel(unsigned int chnIdx)=0
Set the channel source of the analog trigger.
virtual void setDigitalStreamingFlag(bool enable)=0
Set the streaming flag for the digital part.
virtual M2K_TRIGGER_CONDITION_DIGITAL getDigitalCondition(unsigned int chnIdx)=0
Get the trigger condition for the digital trigger on a specific channel.
virtual void setAnalogStreamingFlag(bool enable)=0
Set the streaming flag for the analog part.
virtual libm2k::digital::DIO_TRIGGER_MODE getDigitalMode()=0
Get the mode for the digital trigger.
virtual M2K_TRIGGER_OUT_SELECT getAnalogExternalOutSelect()
Check which trigger events are forwarded on the TO (trigger out) pin.
virtual int getDigitalDelay() const =0
Get the digital trigger delay.
virtual bool getAnalogStreamingFlag()=0
Get the streaming flag for the analog part.
virtual M2K_TRIGGER_CONDITION_DIGITAL getDigitalExternalCondition() const =0
getDigitalExternalCondition
virtual void setAnalogOutTriggerStatus(M2K_TRIGGER_STATUS_ANALOG_OUT status)=0
Defines the action to be performed when a trigger event occurs.
virtual void setDigitalDelay(int delay)=0
Set the digital trigger delay.
virtual int getAnalogLevelRaw(unsigned int chnIdx)=0
Get the raw analog trigger level for one channel.
virtual void setDigitalCondition(unsigned int chnIdx, M2K_TRIGGER_CONDITION_DIGITAL cond)=0
Set the trigger condition for the digital trigger on a specific channel.
virtual void setDigitalCondition(libm2k::digital::DIO_CHANNEL chnIdx, M2K_TRIGGER_CONDITION_DIGITAL cond)=0
Set the trigger condition for the digital trigger on a specific channel.
virtual M2K_TRIGGER_STATUS_ANALOG_OUT getAnalogOutTriggerStatus() const =0
Returns the action that is performed when a trigger event occurs.
virtual bool getDigitalStreamingFlag()=0
Get the streaming flag for the digital part.
virtual void setAnalogOutTriggerCondition(M2K_TRIGGER_CONDITION_OUT condition)=0
Configures the triggering condition when the source of the AnalogOut trigger event is set to TRIGGER_...
Triggering system.
Definition enums.hpp:219