mirror of
				https://gitea.osmocom.org/cellular-infrastructure/osmo-trx.git
				synced 2025-11-03 21:53:18 +00:00 
			
		
		
		
	Allow selecting a specific LimeSDR device by setting dev-args in the config file. Split up the given dev-args address by comma and select the device where all substrings can be found. I could not test this with real hardware, but I have added a test case to make sure this works as expected. Related: OS#3654 Change-Id: Ib9aaa066a01bf9de3f78234d7ada884d6f28c852
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#include <assert.h>
 | 
						|
#include <lime/LimeSuite.h>
 | 
						|
#include <string>
 | 
						|
 | 
						|
extern "C"
 | 
						|
{
 | 
						|
size_t osmo_strlcpy(char *dst, const char *src, size_t siz);
 | 
						|
}
 | 
						|
 | 
						|
int info_list_find(lms_info_str_t* info_list, unsigned int count, const std::string &args);
 | 
						|
 | 
						|
using namespace std;
 | 
						|
 | 
						|
int main(void)
 | 
						|
{
 | 
						|
	unsigned int count;
 | 
						|
	lms_info_str_t* info_list;
 | 
						|
	std::string args;
 | 
						|
 | 
						|
	/* two fake entries for info_list */
 | 
						|
	count = 2;
 | 
						|
	info_list = new lms_info_str_t[count];
 | 
						|
	osmo_strlcpy(info_list[0], "LimeSDR Mini, addr=24607:1337, serial=FAKESERIAL0001", sizeof(lms_info_str_t));
 | 
						|
	osmo_strlcpy(info_list[1], "LimeSDR Mini, addr=24607:1338, serial=FAKESERIAL0002", sizeof(lms_info_str_t));
 | 
						|
 | 
						|
	/* find second entry by args filter */
 | 
						|
	args = "serial=FAKESERIAL0002,LimeSDR Mini";
 | 
						|
	assert(info_list_find(info_list, count, args) == 1);
 | 
						|
 | 
						|
	/* empty args -> first entry */
 | 
						|
	args = "";
 | 
						|
	assert(info_list_find(info_list, count, args) == 0);
 | 
						|
 | 
						|
	/* not matching args -> -1 */
 | 
						|
	args = "serial=NOTMATCHING";
 | 
						|
	assert(info_list_find(info_list, count, args) == -1);
 | 
						|
 | 
						|
	/* clean up */
 | 
						|
	delete[] info_list;
 | 
						|
	return 0;
 | 
						|
}
 |