Commit cbd1324c authored by Pavel Vainerman's avatar Pavel Vainerman

Добавил обработку параметра db_ignore, для отключения запичи в БД "конкретного" датчика

parent ca49444d
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
<!-- ************************ Датчики ********************** --> <!-- ************************ Датчики ********************** -->
<sensors name="Sensors"> <sensors name="Sensors">
<item name="Input1_S" textname="Команда 1" node="" iotype="DI" priority="Medium" default="1" /> <item name="Input1_S" textname="Команда 1" node="" iotype="DI" priority="Medium" default="1" db_ignore="1"/>
<item name="Input2_S" textname="Команда 2" node="" iotype="DI" priority="Medium" mbtype="rtu" mbaddr="0x01" mbfunc="0x04" mbreg="0x02" rs="2" /> <item name="Input2_S" textname="Команда 2" node="" iotype="DI" priority="Medium" mbtype="rtu" mbaddr="0x01" mbfunc="0x04" mbreg="0x02" rs="2" />
<item name="Input3_S" textname="Команда 3" node="" iotype="DI" priority="Medium" <item name="Input3_S" textname="Команда 3" node="" iotype="DI" priority="Medium"
mbtcp="1" tcp_mbtype="rtu" tcp_mbaddr="0x02" tcp_mbfunc="0x06" tcp_mbreg="0x02" tcp_preinit="1" /> mbtcp="1" tcp_mbtype="rtu" tcp_mbaddr="0x02" tcp_mbfunc="0x06" tcp_mbreg="0x02" tcp_preinit="1" />
......
...@@ -147,7 +147,7 @@ class IOController: ...@@ -147,7 +147,7 @@ class IOController:
struct UniDigitalIOInfo: struct UniDigitalIOInfo:
public IOController_i::DigitalIOInfo public IOController_i::DigitalIOInfo
{ {
UniDigitalIOInfo():any(0),dlst_lock(false),block_state(false) UniDigitalIOInfo():any(0),dlst_lock(false),block_state(false),db_ignore(false)
{ undefined = false; blocked=false; } { undefined = false; blocked=false; }
virtual ~UniDigitalIOInfo(){} virtual ~UniDigitalIOInfo(){}
...@@ -164,6 +164,7 @@ class IOController: ...@@ -164,6 +164,7 @@ class IOController:
DependsList dlst; /*!< список io зависящих от данного */ DependsList dlst; /*!< список io зависящих от данного */
bool dlst_lock; /*!< флаг блокирующий работу со списком */ bool dlst_lock; /*!< флаг блокирующий работу со списком */
bool block_state; bool block_state;
bool db_ignore; /*!< не писать изменения в БД */
UniSetTypes::uniset_spin_mutex val_lock; /*!< флаг блокирующий работу со значением */ UniSetTypes::uniset_spin_mutex val_lock; /*!< флаг блокирующий работу со значением */
}; };
...@@ -171,7 +172,7 @@ class IOController: ...@@ -171,7 +172,7 @@ class IOController:
struct UniAnalogIOInfo: struct UniAnalogIOInfo:
public IOController_i::AnalogIOInfo public IOController_i::AnalogIOInfo
{ {
UniAnalogIOInfo():any(0),dlst_lock(false),block_value(0) UniAnalogIOInfo():any(0),dlst_lock(false),block_value(0),db_ignore(false)
{ undefined = false; blocked=false; } { undefined = false; blocked=false; }
virtual ~UniAnalogIOInfo(){} virtual ~UniAnalogIOInfo(){}
...@@ -187,7 +188,8 @@ class IOController: ...@@ -187,7 +188,8 @@ class IOController:
DependsList dlst; /*!< список io зависящих от данного (для выставления поля undefined) */ DependsList dlst; /*!< список io зависящих от данного (для выставления поля undefined) */
bool dlst_lock; /*!< флаг блокирующий работу со списком */ bool dlst_lock; /*!< флаг блокирующий работу со списком */
long block_value; long block_value;
bool db_ignore; /*!< не писать изменения в БД */
UniSetTypes::uniset_spin_mutex val_lock; /*!< флаг блокирующий работу со значением */ UniSetTypes::uniset_spin_mutex val_lock; /*!< флаг блокирующий работу со значением */
}; };
......
...@@ -801,7 +801,8 @@ void IOController::dumpToDB() ...@@ -801,7 +801,8 @@ void IOController::dumpToDB()
sm.priority = (Message::Priority)li->second.priority; sm.priority = (Message::Priority)li->second.priority;
sm.sm_tv_sec = li->second.tv_sec; sm.sm_tv_sec = li->second.tv_sec;
sm.sm_tv_usec = li->second.tv_usec; sm.sm_tv_usec = li->second.tv_usec;
logging(sm); if ( !li->second.db_ignore )
logging(sm);
} }
} // unlock } // unlock
...@@ -822,7 +823,8 @@ void IOController::dumpToDB() ...@@ -822,7 +823,8 @@ void IOController::dumpToDB()
sm.sm_tv_sec = li->second.tv_sec; sm.sm_tv_sec = li->second.tv_sec;
sm.sm_tv_usec = li->second.tv_usec; sm.sm_tv_usec = li->second.tv_usec;
sm.ci = li->second.ci; sm.ci = li->second.ci;
logging(sm); // alogging( li->second.si,li->second.value,li->second.type ); if ( !li->second.db_ignore )
logging(sm); // alogging( li->second.si,li->second.value,li->second.type );
} }
} // unlock } // unlock
} }
......
...@@ -501,7 +501,8 @@ void IONotifyController::localSaveState( IOController::DIOStateList::iterator& i ...@@ -501,7 +501,8 @@ void IONotifyController::localSaveState( IOController::DIOStateList::iterator& i
try try
{ {
loggingInfo(sm); if( !it->second.db_ignore )
loggingInfo(sm);
} }
catch(...){} catch(...){}
...@@ -565,7 +566,8 @@ void IONotifyController::localSaveValue( IOController::AIOStateList::iterator& l ...@@ -565,7 +566,8 @@ void IONotifyController::localSaveValue( IOController::AIOStateList::iterator& l
try try
{ {
loggingInfo(sm); if( !li->second.db_ignore )
loggingInfo(sm);
} }
catch(...){} catch(...){}
...@@ -1210,7 +1212,8 @@ void IONotifyController::localSetState( IOController::DIOStateList::iterator& it ...@@ -1210,7 +1212,8 @@ void IONotifyController::localSetState( IOController::DIOStateList::iterator& it
try try
{ {
loggingInfo(sm); if( !it->second.db_ignore )
loggingInfo(sm);
} }
catch(...){} catch(...){}
...@@ -1267,7 +1270,8 @@ void IONotifyController::localSetValue( IOController::AIOStateList::iterator& li ...@@ -1267,7 +1270,8 @@ void IONotifyController::localSetValue( IOController::AIOStateList::iterator& li
try try
{ {
loggingInfo(sm); if( !li->second.db_ignore )
loggingInfo(sm);
} }
catch(...){} catch(...){}
...@@ -1403,7 +1407,8 @@ void IONotifyController::onChangeUndefined( DependsList::iterator it, bool undef ...@@ -1403,7 +1407,8 @@ void IONotifyController::onChangeUndefined( DependsList::iterator it, bool undef
try try
{ {
loggingInfo(sm); if( !it->ait->second.db_ignore )
loggingInfo(sm);
} }
catch(...){} catch(...){}
......
...@@ -186,11 +186,13 @@ NCRestorer::SInfo& NCRestorer::SInfo::operator=(IOController_i::DigitalIOInfo& i ...@@ -186,11 +186,13 @@ NCRestorer::SInfo& NCRestorer::SInfo::operator=(IOController_i::DigitalIOInfo& i
this->type = inf.type; this->type = inf.type;
this->priority = inf.priority; this->priority = inf.priority;
this->default_val = inf.default_val; this->default_val = inf.default_val;
this->real_value = inf.real_state ? 1 : 0;
this->ci.minRaw = 0; this->ci.minRaw = 0;
this->ci.maxRaw = 0; this->ci.maxRaw = 0;
this->ci.minCal = 0; this->ci.minCal = 0;
this->ci.maxCal = 0; this->ci.maxCal = 0;
this->ci.sensibility = 0; this->ci.sensibility = 0;
this->db_ignore = false;
this->undefined = false; this->undefined = false;
this->any = 0; this->any = 0;
return *this; return *this;
...@@ -202,8 +204,10 @@ NCRestorer::SInfo& NCRestorer::SInfo::operator=(IOController_i::AnalogIOInfo& in ...@@ -202,8 +204,10 @@ NCRestorer::SInfo& NCRestorer::SInfo::operator=(IOController_i::AnalogIOInfo& in
this->type = inf.type; this->type = inf.type;
this->priority = inf.priority; this->priority = inf.priority;
this->default_val = inf.default_val; this->default_val = inf.default_val;
this->real_value = inf.real_value;
this->ci = inf.ci; this->ci = inf.ci;
this->undefined = false; this->undefined = false;
this->db_ignore = false;
this->any = 0; this->any = 0;
return *this; return *this;
} }
...@@ -219,6 +223,7 @@ NCRestorer::SInfo::operator IOController::UniDigitalIOInfo() ...@@ -219,6 +223,7 @@ NCRestorer::SInfo::operator IOController::UniDigitalIOInfo()
ret.default_val = this->default_val ? true : false; ret.default_val = this->default_val ? true : false;
ret.any = this->any; ret.any = this->any;
ret.undefined = this->undefined; ret.undefined = this->undefined;
ret.db_ignore = this->db_ignore;
return ret; return ret;
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
...@@ -300,6 +300,7 @@ bool NCRestorer_XML::getSensorInfo( UniXML& xml, xmlNode* it, SInfo& inf ) ...@@ -300,6 +300,7 @@ bool NCRestorer_XML::getSensorInfo( UniXML& xml, xmlNode* it, SInfo& inf )
} }
inf.default_val = xml.getIntProp(it,"default"); inf.default_val = xml.getIntProp(it,"default");
inf.db_ignore = xml.getIntProp(it,"db_ignore");
inf.value = inf.default_val; inf.value = inf.default_val;
inf.undefined = false; inf.undefined = false;
inf.real_value = inf.value; inf.real_value = inf.value;
......
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