Я хочу написать код C, используя SoapySDR для управления моим LimeSDR USB.Но, похоже, что SoapySDR не установлен, но его следует включить во время установки драйверов.
Итак, прежде всего, установите драйверы LimeSDR Hardware, используя следующие шаги в вики::
sudo add-apt-repository -y ppa:myriadrf/drivers
sudo apt-get update
sudo apt-get install limesuite liblimesuite-dev limesuite-udev limesuite-images
sudo apt-get install soapysdr-tools soapysdr-module-lms7
#soapysdr-tools use to be called just soapysdr on older packages
sudo apt-get install soapysdr soapysdr-module-lms7
Затем я протестировал следующие команды:
$ SoapySDRUtil --info
######################################################
## Soapy SDR -- the SDR abstraction library ##
######################################################
Lib Version: v0.7.1-myriadrf1~ubuntu18.04
API Version: v0.7.1
ABI Version: v0.7
Install root: /usr
Search path: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.7
Search path: /usr/local/lib/x86_64-linux-gnu/SoapySDR/modules0.7 (missing)
Search path: /usr/local/lib/SoapySDR/modules0.7 (missing)
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.7/libLMS7Support.so (19.01.0)
Available factories... lime
Available converters...
- CF32 -> [CF32, CS16, CS8, CU16, CU8]
- CS16 -> [CF32, CS16, CS8, CU16, CU8]
- CS32 -> [CS32]
- CS8 -> [CF32, CS16, CS8, CU16, CU8]
- CU16 -> [CF32, CS16, CS8]
- CU8 -> [CF32, CS16, CS8]
- F32 -> [F32, S16, S8, U16, U8]
- S16 -> [F32, S16, S8, U16, U8]
- S32 -> [S32]
- S8 -> [F32, S16, S8, U16, U8]
- U16 -> [F32, S16, S8]
- U8 -> [F32, S16, S8]
, когда попытался запустить простой код:
#include <SoapySDR/Device.h>
#include <SoapySDR/Formats.h>
#include <stdio.h> //printf
#include <stdlib.h> //free
#include <complex.h>
int main(void)
{
size_t length;
//enumerate devices
SoapySDRKwargs *results = SoapySDRDevice_enumerate(NULL, &length);
for (size_t i = 0; i < length; i++)
{
printf("Found device #%d: ", (int)i);
for (size_t j = 0; j < results[i].size; j++)
{
printf("%s=%s, ", results[i].keys[j], results[i].vals[j]);
}
printf("\n");
printf("Done\n");
return EXIT_SUCCESS;
}
Я скомпилировал следующим образом
gcc -std=c99 API_example.c -lSoapySDR && ./a.out
Я получил следующую ошибку:
API_example.c:1:10: fatal error: SoapySDR/Device.h: No such file or directory
#include <SoapySDR/Device.h>
^~~~~~~~~~~~~~~~~~~
У кого-нибудь есть идеи, как это исправить?