Commit 7489225e authored by Pavel Vainerman's avatar Pavel Vainerman

Исправил ошибку с "необработкой" исключения Undefined при setValue

parent 4f4b01cd
......@@ -64,7 +64,7 @@ interface IOController_i : UniSetManager_i
long getValue(in UniSetTypes::ObjectId sid) raises(NameNotFound,Undefined);
void setValue(in UniSetTypes::ObjectId sid, in long value,
in UniSetTypes::ObjectId sup_id) raises(NameNotFound);
in UniSetTypes::ObjectId sup_id) raises(NameNotFound,Undefined);
// установка неопределённого состояния
// (пока работает только для аналоговых датчиков)
......
......@@ -312,7 +312,20 @@ void IONotifyController::localSetValue( IOController::IOStateList::iterator& li,
CORBA::Long value, UniSetTypes::ObjectId sup_id )
{
// Если датчик не найден сдесь сработает исключение
long prevValue = IOController::localGetValue( li, sid );
long prevValue = 0;
try
{
prevValue = IOController::localGetValue( li, sid );
}
catch( IOController_i::Undefined )
{
// чтобы сработало prevValue!=value
// искусственно меняем значение
prevValue = value+1;
}
if( li == myioEnd() ) // ???
{
ostringstream err;
......
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