femanager: only use frontends of identical type

neutrino cannot yet handle mixed frontend types, so ignore all frontends
that are not identical to the first one...
This commit is contained in:
Stefan Seyfried
2012-10-07 17:14:09 +02:00
parent 59eee16d74
commit 6fc8c29bdb

View File

@@ -54,16 +54,25 @@ bool CFEManager::Init()
{ {
CFrontend * fe; CFrontend * fe;
unsigned short fekey; unsigned short fekey;
int type = -1;
for(int i = 0; i < MAX_ADAPTERS; i++) { for(int i = 0; i < MAX_ADAPTERS; i++) {
for(int j = 0; j < MAX_FE; j++) { for(int j = 0; j < MAX_FE; j++) {
fe = new CFrontend(j, i); fe = new CFrontend(j, i);
if(fe->Open()) { if(fe->Open()) {
if (type == -1)
type = (int)fe->getInfo()->type;
if (type == (int)fe->getInfo()->type) {
fekey = MAKE_FE_KEY(i, j); fekey = MAKE_FE_KEY(i, j);
femap.insert(std::pair <unsigned short, CFrontend*> (fekey, fe)); femap.insert(std::pair <unsigned short, CFrontend*> (fekey, fe));
INFO("add fe %d", fe->fenumber); INFO("add fe %d", fe->fenumber);
if(livefe == NULL) if(livefe == NULL)
livefe = fe; livefe = fe;
} else {
/* neutrino can not yet handle differing mixed frontend types... */
INFO("not adding fe %d of different type", fe->fenumber);
delete fe;
}
} else } else
delete fe; delete fe;
} }