Skip to content

Commit 7cf6f91

Browse files
committed
Add support for multiple Rhythm boards with multiple Rhythm modules
1 parent e1c3b7d commit 7cf6f91

1 file changed

Lines changed: 20 additions & 18 deletions

File tree

Plugins/RhythmNode/rhythm-api/rhd2000evalboard.cpp

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -88,28 +88,30 @@ int Rhd2000EvalBoard::open(const char* libname)
8888
}
8989
cout << endl;
9090

91-
// Find first device in list of type XEM6010LX45.
92-
for (i = 0; i < nDevices; ++i) {
91+
for (i = 0; i < nDevices; ++i)
92+
{
9393
okCFrontPanel::BoardModel model = dev->GetDeviceListModel(i);
94-
if (model == OK_PRODUCT_XEM6010LX45) {
95-
serialNumber = dev->GetDeviceListSerial(i);
96-
break;
97-
}
98-
else if (model == OK_PRODUCT_XEM6310LX45) {
99-
serialNumber = dev->GetDeviceListSerial(i);
100-
usb3 = true;
101-
break;
94+
if (model == OK_PRODUCT_XEM6010LX45 || model == OK_PRODUCT_XEM6310LX45) //the two models we use
95+
{
96+
serialNumber = serialNumber = dev->GetDeviceListSerial(i);
97+
cout << "Trying to open device with serial " << serialNumber.c_str() << endl;
98+
if (dev->OpenBySerial(serialNumber) == okCFrontPanel::NoError)
99+
{
100+
cout << "Device opened" << endl;
101+
if (model == OK_PRODUCT_XEM6310LX45)
102+
usb3 = true;
103+
break; //end loop if one device was opened
104+
}
102105
}
103-
}
104-
105-
// Attempt to open device.
106-
if (dev->OpenBySerial(serialNumber) != okCFrontPanel::NoError) {
107-
delete dev;
106+
}
107+
if (!dev->IsOpen())
108+
{
109+
delete dev;
108110
dev = 0;
109111
usb3 = false;
110-
cerr << "Device could not be opened. Is one connected?" << endl;
111-
return -2;
112-
}
112+
cerr << "No device could be opened. Is one connected?" << endl;
113+
return -2;
114+
}
113115

114116
// Configure the on-board PLL appropriately.
115117
dev->LoadDefaultPLLConfiguration();

0 commit comments

Comments
 (0)