From 2cfb0b59a69de78c83bd21fc632de7f232c8cdf9 Mon Sep 17 00:00:00 2001 From: Pagadarai Date: Wed, 29 Jan 2025 16:18:51 -0600 Subject: [PATCH] matlab bindings: (WIP) Update to AD9361 streaming example Signed-off-by: Pagadarai --- bindings/matlab/examples/ad9361_iiostream.m | 31 +++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/bindings/matlab/examples/ad9361_iiostream.m b/bindings/matlab/examples/ad9361_iiostream.m index 0fd0431ac..a3b18dfcf 100644 --- a/bindings/matlab/examples/ad9361_iiostream.m +++ b/bindings/matlab/examples/ad9361_iiostream.m @@ -15,8 +15,7 @@ TxCfg.RFPort = 'A'; fprintf("* Acquiring IIO context\n"); -iioCtxParams = libpointer; -iioCtx = adi.libiio.context.iio_create_context(iioCtxParams, uri); +iioCtx = adi.libiio.context.iio_create_context(uri); count = adi.libiio.context.iio_context_get_devices_count(iioCtx); fprintf("* Acquiring AD9361 streaming devices\n"); @@ -66,4 +65,32 @@ loTx = adi.libiio.channel.iio_channel_find_attr(ad9361TxLOChn, 'frequency'); status = adi.libiio.attribute.iio_attr_write_longlong(loTx, TxCfg.LOHz); assert(status==0); + +fprintf("* Initializing AD9361 IIO streaming channels\n"); +ad9361Rx0_i = adi.libiio.device.iio_device_find_channel(iioDevRx, 'voltage0', false); +assert(ad9361Rx0_i.isNull==0); +ad9361Rx0_q = adi.libiio.device.iio_device_find_channel(iioDevRx, 'voltage1', false); +assert(ad9361Rx0_q.isNull==0); +ad9361Tx0_i = adi.libiio.device.iio_device_find_channel(iioDevTx, 'voltage0', true); +assert(ad9361Tx0_i.isNull==0); +ad9361Tx0_q = adi.libiio.device.iio_device_find_channel(iioDevTx, 'voltage1', true); +assert(ad9361Tx0_q.isNull==0); +ad9361RxMask = adi.libiio.lowlevel.iio_create_channels_mask(adi.libiio.device.iio_device_get_channels_count(iioDevRx)); +assert(ad9361RxMask.isNull==0); +ad9361TxMask = adi.libiio.lowlevel.iio_create_channels_mask(adi.libiio.device.iio_device_get_channels_count(iioDevTx)); +assert(ad9361TxMask.isNull==0); + +fprintf("* Enabling IIO streaming channels\n"); +adi.libiio.channel.iio_channel_enable(ad9361Rx0_i, ad9361RxMask); +adi.libiio.channel.iio_channel_enable(ad9361Rx0_q, ad9361RxMask); +adi.libiio.channel.iio_channel_enable(ad9361Tx0_i, ad9361TxMask); +adi.libiio.channel.iio_channel_enable(ad9361Tx0_q, ad9361TxMask); + +fprintf("* Creating non-cyclic IIO buffers with 1 MiS\n"); +ad9361RxBuffer = adi.libiio.buffer.iio_device_create_buffer(iioDevRx, 0, ad9361RxMask); +assert(ad9361RxBuffer.isNull==0); +ad9361TxBuffer = adi.libiio.buffer.iio_device_create_buffer(iioDevTx, 0, ad9361TxMask); +assert(ad9361TxBuffer.isNull==0); + +adi.libiio.context.iio_context_destroy(iioCtx); % unloadlibrary('libiio1'); \ No newline at end of file