Skip to content

Commit 51f9226

Browse files
Teo Perisanuadisuciu
authored andcommitted
adalm2000: Add utility functions.
Add functions for enabling the analogical channels, setting the number of kernel buffers, and enabling the streaming mode. Signed-off-by: Teo Perisanu <[email protected]>
1 parent ab79f99 commit 51f9226

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

src/hardware/adalm2000/libm2k.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,12 @@ void sr_libm2k_mixed_signal_acquisition_stop(struct M2k *m2k)
114114
}
115115

116116
/* Analog */
117+
void sr_libm2k_analog_channel_enable(struct M2k *m2k, unsigned int chnIdx, int enable)
118+
{
119+
libm2k::analog::M2kAnalogIn *analogIn = getAnalogIn(m2k);
120+
analogIn->enableChannel(chnIdx, static_cast<bool>(enable));
121+
}
122+
117123
double sr_libm2k_analog_samplerate_get(struct M2k *m2k)
118124
{
119125
libm2k::analog::M2kAnalogIn *analogIn = getAnalogIn(m2k);
@@ -185,6 +191,12 @@ void sr_libm2k_analog_acquisition_stop(struct M2k *m2k)
185191
analogIn->stopAcquisition();
186192
}
187193

194+
void sr_libm2k_analog_kernel_buffers_count_set(struct M2k *m2k, unsigned int count)
195+
{
196+
libm2k::analog::M2kAnalogIn *analogIn = getAnalogIn(m2k);
197+
analogIn->setKernelBuffersCount(count);
198+
}
199+
188200
/* Analog trigger */
189201
enum ANALOG_TRIGGER_SOURCE sr_libm2k_analog_trigger_source_get(struct M2k *m2k)
190202
{
@@ -248,6 +260,12 @@ void sr_libm2k_analog_trigger_delay_set(struct M2k *m2k, int delay)
248260
trigger->setAnalogDelay(delay);
249261
}
250262

263+
void sr_libm2k_analog_streaming_flag_set(struct M2k *m2k, int flag)
264+
{
265+
libm2k::M2kHardwareTrigger *trigger = getTrigger(m2k);
266+
trigger->setAnalogStreamingFlag(static_cast<bool>(flag));
267+
}
268+
251269
/* Digital */
252270
double sr_libm2k_digital_samplerate_get(struct M2k *m2k)
253271
{
@@ -285,6 +303,12 @@ void sr_libm2k_digital_acquisition_stop(struct M2k *m2k)
285303
digital->stopAcquisition();
286304
}
287305

306+
void sr_libm2k_digital_kernel_buffers_count_set(struct M2k *m2k, unsigned int count)
307+
{
308+
libm2k::digital::M2kDigital *digital = getDigital(m2k);
309+
digital->setKernelBuffersCountIn(count);
310+
}
311+
288312
/* Digital trigger */
289313
void sr_libm2k_digital_trigger_source_set(struct M2k *m2k, enum DIGITAL_TRIGGER_SOURCE source)
290314
{
@@ -339,4 +363,10 @@ void sr_libm2k_digital_trigger_delay_set(struct M2k *m2k, int delay)
339363
trigger->setDigitalDelay(delay);
340364
}
341365

366+
void sr_libm2k_digital_streaming_flag_set(struct M2k *m2k, int flag)
367+
{
368+
libm2k::M2kHardwareTrigger *trigger = getTrigger(m2k);
369+
trigger->setDigitalStreamingFlag(flag);
370+
}
371+
342372
}

src/hardware/adalm2000/libm2k.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ void sr_libm2k_mixed_signal_acquisition_stop(struct M2k *m2k);
9595

9696

9797
/* Analog */
98+
void sr_libm2k_analog_channel_enable(struct M2k *m2k, unsigned int chnIdx, int enable);
99+
98100
double sr_libm2k_analog_samplerate_get(struct M2k *m2k);
99101

100102
double sr_libm2k_analog_samplerate_set(struct M2k *m2k, double samplerate);
@@ -115,6 +117,9 @@ void sr_libm2k_analog_acquisition_cancel(struct M2k *m2k);
115117

116118
void sr_libm2k_analog_acquisition_stop(struct M2k *m2k);
117119

120+
void sr_libm2k_analog_kernel_buffers_count_set(struct M2k *m2k, unsigned int count);
121+
122+
118123
/* Analog trigger */
119124
enum ANALOG_TRIGGER_SOURCE sr_libm2k_analog_trigger_source_get(struct M2k *m2k);
120125

@@ -138,6 +143,9 @@ int sr_libm2k_analog_trigger_delay_get(struct M2k *m2k);
138143

139144
void sr_libm2k_analog_trigger_delay_set(struct M2k *m2k, int delay);
140145

146+
void sr_libm2k_analog_streaming_flag_set(struct M2k *m2k, int flag);
147+
148+
141149
/* Digital */
142150
double sr_libm2k_digital_samplerate_get(struct M2k *m2k);
143151

@@ -151,6 +159,9 @@ void sr_libm2k_digital_acquisition_cancel(struct M2k *m2k);
151159

152160
void sr_libm2k_digital_acquisition_stop(struct M2k *m2k);
153161

162+
void sr_libm2k_digital_kernel_buffers_count_set(struct M2k *m2k, unsigned int count);
163+
164+
154165
/* Digital trigger*/
155166
void sr_libm2k_digital_trigger_source_set(struct M2k *m2k, enum DIGITAL_TRIGGER_SOURCE source);
156167

@@ -162,6 +173,9 @@ int sr_libm2k_digital_trigger_delay_get(struct M2k *m2k);
162173

163174
void sr_libm2k_digital_trigger_delay_set(struct M2k *m2k, int delay);
164175

176+
void sr_libm2k_digital_streaming_flag_set(struct M2k *m2k, int flag);
177+
178+
165179
#ifdef __cplusplus
166180
}
167181
#endif

0 commit comments

Comments
 (0)