Commit 6bea90e7 authored by Pavel Vainerman's avatar Pavel Vainerman

(unet2): Добавил возможность задать broadcast адрес для всех узлов сразу.

Чуть подправил логи.
parent 6c825ca4
......@@ -48,15 +48,25 @@ sender(0)
throw UniSetTypes::SystemError("(UNetExchange): Not found <nodes>");
UniXML_iterator n_it(nodes);
string default_ip(n_it.getProp("unet_ip"));
if( !n_it.goChildren() )
throw UniSetTypes::SystemError("(UNetExchange): Items not found for <nodes>");
for( ; n_it.getCurrent(); n_it.goNext() )
{
// Если указано поле unet_ip непосредственно у узла - берём его
// если указано общий broadcast ip для всех узлов - берём его
// Иначе берём из поля "ip"
string h(n_it.getProp("ip"));
if( !default_ip.empty() )
h = default_ip;
if( !n_it.getProp("unet_ip").empty() )
h = n_it.getProp("unet_ip");
// Если указано поле unet_port - используем его
// Иначе port = идентификатору узла
int p = n_it.getIntProp("id");
if( !n_it.getProp("unet_port").empty() )
p = n_it.getIntProp("unet_port");
......@@ -70,7 +80,7 @@ sender(0)
continue;
}
if( !n_it.getProp("unet_ignore").empty() )
if( n_it.getIntProp("unet_ignore") )
{
dlog[Debug::INFO] << myname << "(init): unet_ignore.. for " << n_it.getProp("name") << endl;
continue;
......
......@@ -235,7 +235,7 @@ void UNetReceiver::real_update()
// -----------------------------------------------------------------------------
void UNetReceiver::receive()
{
cerr << "******************* receive start" << endl;
cout << myname << ": ******************* receive start" << endl;
ptRecvTimeout.setTiming(recvTimeout);
while( activated )
{
......@@ -254,13 +254,13 @@ void UNetReceiver::receive()
}
catch(...)
{
cerr << myname << "(preceive): catch ..." << std::endl;
cerr << myname << "(receive): catch ..." << std::endl;
}
msleep(recvpause);
}
cerr << "************* execute FINISH **********" << endl;
cout << myname << ": ************* receive FINISH **********" << endl;
}
// -----------------------------------------------------------------------------
bool UNetReceiver::recv()
......
......@@ -134,6 +134,10 @@ class UNetReceiver
IOController::AIOStateList::iterator ait;
IOController::DIOStateList::iterator dit;
UniversalIO::IOTypes iotype;
ItemInfo():
id(UniSetTypes::DefaultObjectId),
iotype(UniversalIO::UnknownIOType){}
};
typedef std::vector<ItemInfo> ItemVec;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment