Commit e0efd2da authored by Pavel Vainerman's avatar Pavel Vainerman

Убрал всевозможные warning: где-то удалил за неактуальностью, где-то исправил,

где-то переделал в "todo".
parent 0e79082a
......@@ -1592,7 +1592,7 @@ void IOControl::buildCardsList()
return;
}
int lastnum = 0;
size_t lastnum = 0;
for( ; lastnum<cards.size(); lastnum++ )
{
if( cards[lastnum] == 0 )
......
......@@ -150,7 +150,7 @@
"5" - Режим "только выходы"
*/
// -----------------------------------------------------------------------------
#warning Сделать обработку сигналов завершения....
/*! \todo (IOControl): Сделать обработку сигналов завершения */
class CardList:
public std::vector<ComediInterface*>
......
......@@ -33,7 +33,7 @@ void openXML();
void dispDiagram();
void sortData(bool rise, bool cal);
static void insn_config( comedi_t* card, int subdev, int channel, lsampl_t iotype, int range, int aref );
//static void insn_config( comedi_t* card, int subdev, int channel, lsampl_t iotype, int range, int aref );
// --------------------------------------------------------------------------
char buf[5];
......@@ -275,6 +275,7 @@ int main(int argc, char* argv[])
}
// --------------------------------------------------------------------------
/*
void insn_config( comedi_t* card, int subdev, int channel, lsampl_t iotype, int range, int aref )
{
comedi_insn insn;
......@@ -290,7 +291,7 @@ void insn_config( comedi_t* card, int subdev, int channel, lsampl_t iotype, int
exit(EXIT_FAILURE);
}
}
*/
// --------------------------------------------------------------------------
void readCalibr(int fixed)
{
......
......@@ -66,8 +66,7 @@ void LProcessor::build( const string& lfile )
ei.sid = sid;
ei.state = false;
ei.lnk = &(*it);
#warning Пока тип сделан принудительно
ei.iotype = UniversalIO::DigitalInput;
ei.iotype = UniversalIO::UnknownIOType;
extInputs.push_front(ei);
}
......@@ -83,8 +82,7 @@ void LProcessor::build( const string& lfile )
EXTOutInfo ei;
ei.sid = sid;
ei.lnk = &(*it);
#warning Пока тип сделан принудительно
ei.iotype = UniversalIO::DigitalOutput;
ei.iotype = UniversalIO::UnknownIOType;
extOuts.push_front(ei);
}
......
......@@ -918,7 +918,11 @@ void MBTCPMaster::sigterm( int signo )
{
cerr << myname << ": ********* SIGTERM(" << signo <<") ********" << endl;
activated = false;
#warning Доделать...
/*! \todo Доделать выставление безопасного состояния на выходы.
И нужно ли это. Ведь может не хватить времени на "обмен"
*/
// выставление безопасного состояния на выходы....
/*
RSMap::iterator it=rsmap.begin();
......@@ -945,8 +949,6 @@ void MBTCPMaster::sigterm( int signo )
// ------------------------------------------------------------------------------------------
void MBTCPMaster::readConfiguration()
{
#warning Сделать сортировку по диапазонам адресов!!!
// чтобы запрашивать одним запросом, сразу несколько входов...
// readconf_ok = false;
xmlNode* root = conf->getXMLSensorsSection();
if(!root)
......
......@@ -633,6 +633,13 @@ void MBSlave::sigterm( int signo )
{
cerr << myname << ": ********* SIGTERM(" << signo <<") ********" << endl;
activated = false;
try
{
if( mbslot )
mbslot->sigterm(signo);
}
catch(...){}
UniSetObject_LT::sigterm(signo);
}
// ------------------------------------------------------------------------------------------
......
......@@ -935,7 +935,8 @@ void RTUExchange::sigterm( int signo )
{
cerr << myname << ": ********* SIGTERM(" << signo <<") ********" << endl;
activated = false;
#warning Доделать...
/*! \todo Нужно ли выставлять безопасное состояние. МОжно ведь не успеть совершить "обемен" */
// выставление безопасного состояния на выходы....
/*
RSMap::iterator it=rsmap.begin();
......@@ -962,8 +963,6 @@ void RTUExchange::sigterm( int signo )
// ------------------------------------------------------------------------------------------
void RTUExchange::readConfiguration()
{
#warning Сделать сортировку по диапазонам адресов!!!
// чтобы запрашивать одним запросом, сразу несколько входов...
// readconf_ok = false;
xmlNode* root = conf->getXMLSensorsSection();
if(!root)
......
......@@ -53,12 +53,6 @@ SharedMemory::SharedMemory( ObjectId id, string datafile ):
heartbeatCheckTime = conf->getArgInt("--heartbeat-check-time","1000");
// rxml->setSensorFilter(s_filterField, s_filterValue);
//#warning Намеренно отключаем обработку списка заказчиков (в данном проекте)...
// для отключения просто укажем несуществующие поля для фильтра
// rxml->setConsumerFilter("dummy","yes");
rxml->setItemFilter(s_field, s_fvalue);
rxml->setConsumerFilter(c_field, c_fvalue);
rxml->setDependsFilter(d_field, d_fvalue);
......@@ -456,10 +450,6 @@ bool SharedMemory::readItem( UniXML& xml, UniXML_iterator& it, xmlNode* sec )
ostringstream msg;
msg << "(SharedMemory::readItem): дискретный датчик (heartbeat_ds_name) связанный с " << it.getProp("name");
dlog[Debug::WARN] << msg.str() << endl;
#warning Делать обязательным?!
// dlog[Debug::CRIT] << msg.str() << endl;
// kill(getpid(),SIGTERM);
// throw NameNotFound(msg.str());
}
}
else
......@@ -469,6 +459,9 @@ bool SharedMemory::readItem( UniXML& xml, UniXML_iterator& it, xmlNode* sec )
{
ostringstream msg;
msg << "(SharedMemory::readItem): Не найден ID для дискретного датчика (heartbeat_ds_name) связанного с " << it.getProp("name");
// Если уж задали имя для датчика, то он должен существовать..
// поэтому завершаем процесс, если не нашли..
dlog[Debug::CRIT] << msg.str() << endl;
kill(getpid(),SIGTERM);
// throw NameNotFound(msg.str());
......
......@@ -238,7 +238,7 @@ void UDPExchange::send()
return;
}
*/
#warning use mutex for list!!!
/*! \todo Подумать нужен ли здесь mutex */
UniSetUDP::UDPMessage::UDPDataList::iterator it = mypack.dlist.begin();
for( ; it!=mypack.dlist.end(); ++it )
......@@ -446,8 +446,6 @@ void UDPExchange::sigterm( int signo )
// ------------------------------------------------------------------------------------------
void UDPExchange::readConfiguration()
{
#warning Сделать сортировку по диапазонам адресов!!!
// чтобы запрашивать одним запросом, сразу несколько входов...
// readconf_ok = false;
xmlNode* root = conf->getXMLSensorsSection();
if(!root)
......
......@@ -230,7 +230,7 @@ void UDPSender::send()
return;
}
#warning use mutex for list!!!
/*! \todo Подумать нужен ли здесь mutex */
UniSetUDP::UDPMessage::UDPDataList::iterator it = mypack.dlist.begin();
for( ; it!=mypack.dlist.end(); ++it )
{
......@@ -431,8 +431,6 @@ void UDPSender::sigterm( int signo )
// ------------------------------------------------------------------------------------------
void UDPSender::readConfiguration()
{
#warning Сделать сортировку по диапазонам адресов!!!
// чтобы запрашивать одним запросом, сразу несколько входов...
// readconf_ok = false;
xmlNode* root = conf->getXMLSensorsSection();
if(!root)
......
......@@ -407,8 +407,6 @@ UniExchange* UniExchange::init_exchange( int argc, const char* const* argv,
// -----------------------------------------------------------------------------
void UniExchange::readConfiguration()
{
#warning Сделать сортировку по диапазонам адресов!!!
// чтобы запрашивать одним запросом, сразу несколько входов...
// readconf_ok = false;
xmlNode* root = conf->getXMLSensorsSection();
if(!root)
......
......@@ -91,7 +91,7 @@ class UniExchange:
bool init_ok;
SList mymap;
int maxIndex;
size_t maxIndex;
int smReadyTimeout;
private:
......
......@@ -95,7 +95,7 @@ namespace MTR
//
typedef std::list<ModbusRTU::ModbusData> DataList;
typedef std::map<ModbusRTU::ModbusData,DataList> DataMap;
static int attempts = 3; //
const int attempts = 3; //
static const ModbusRTU::ModbusData skip[] = {48, 49, 59}; // registers which should not write
......
......@@ -285,7 +285,8 @@ long IOBase::processingAsAO( IOBase* it, SMInterface* shm, bool force )
}
else
val = it->value;
#warning Precision!!!
/*! \todo Разобратся, нужно ли здесь учитывать Precision! */
// if( it->cal.precision > 0 )
// val = it->value / lround(pow10(it->cal.precision));
}
......@@ -482,11 +483,8 @@ bool IOBase::initItem( IOBase* b, UniXML_iterator& it, SMInterface* shm,
if( f_iir > 0 )
b->f_filter_iir = true;
if( !it.getProp("filtersize").empty() )
{
#warning "почему здесь 0, хотя f_size инициализируется def_filtersize?"
f_size = it.getPIntProp("filtersize",def_filtersize);
}
}
if( !it.getProp("filterT").empty() )
{
......
......@@ -269,7 +269,7 @@ DataMap read_confile( const std::string f )
DataList dlst;
int k=0;
std::vector<unsigned char> v(4);
for( int i=0; i<s_data.size(); i++ )
for( size_t i=0; i<s_data.size(); i++ )
{
v[k++] = s_data[i];
if( k>3 )
......
......@@ -36,6 +36,8 @@ class ModbusRTUSlave:
virtual void cleanupChannel(){ if(port) port->cleanupChannel(); }
virtual void terminate();
protected:
// realisation (see ModbusServer.h)
......
......@@ -22,6 +22,8 @@ class ModbusRTUSlaveSlot:
ModbusRTUSlaveSlot( const std::string dev, bool use485=false, bool tr_ctl=false );
virtual ~ModbusRTUSlaveSlot();
virtual void sigterm( int signo );
protected:
virtual ModbusRTU::mbErrCode readCoilStatus( ModbusRTU::ReadCoilMessage& query,
......
......@@ -69,6 +69,7 @@ class ModbusServer
DebugStream* dlog=0 );
virtual void cleanupChannel(){}
virtual void terminate(){}
protected:
......
......@@ -98,6 +98,8 @@ class ModbusServerSlot
/*! подключение обработчика 'передача файла' 0x66 */
void connectFileTransfer( FileTransferSlot sl );
virtual void sigterm( int signo ){}
protected:
ReadCoilSlot slReadCoil;
ReadInputStatusSlot slReadInputStatus;
......
......@@ -30,6 +30,9 @@ class ModbusTCPServer:
void cleanInputStream();
virtual void cleanupChannel(){ cleanInputStream(); }
virtual void terminate();
protected:
virtual ModbusRTU::mbErrCode pre_send_request( ModbusRTU::ModbusMessage& request );
......
......@@ -17,6 +17,8 @@ class ModbusTCPServerSlot:
ModbusTCPServerSlot( ost::InetAddress &ia, int port=502 );
virtual ~ModbusTCPServerSlot();
virtual void sigterm( int signo );
protected:
virtual ModbusRTU::mbErrCode readCoilStatus( ModbusRTU::ReadCoilMessage& query,
......
......@@ -61,9 +61,10 @@ static void setRTS(int fd, int state)
// --------------------------------------------------------------------------------
ComPort485F::ComPort485F( string dev, int gpio_num, bool tmit_ctrl ):
ComPort(dev,false),
gpio_num(gpio_num)
gpio_num(gpio_num),
tmit_ctrl_on(tmit_ctrl)
{
if( tmit_ctrl_on = tmit_ctrl )
if( tmit_ctrl_on )
{
iopl(3);
gpio_low_out_en(gpio_num);
......
......@@ -298,8 +298,9 @@ mbErrCode ModbusClient::recv( ModbusAddr addr, ModbusByte qfunc,
if( !begin )
return erTimeOut;
#warning Может стоит всё-таки получать весь пакет, а проверять кому он адресован на уровне выше?!
// Lav: конечно стоит, нам же надо буфер чистить
/*! \todo Подумать Может стоит всё-таки получать весь пакет, а проверять кому он адресован на уровне выше?!
// Lav: конечно стоит, нам же надо буфер чистить
*/
// Проверка кому адресован пакет...
if( rbuf.addr!=addr && rbuf.addr!=BroadcastAddr )
{
......
......@@ -148,3 +148,10 @@ mbErrCode ModbusRTUSlave::sendData( unsigned char* buf, int len )
return erNoError;
}
// -------------------------------------------------------------------------
void ModbusRTUSlave::terminate()
{
try
{
}
catch(...){}
}
\ No newline at end of file
......@@ -137,3 +137,12 @@ ModbusRTU::mbErrCode ModbusRTUSlaveSlot::fileTransfer( ModbusRTU::FileTransferMe
return slFileTransfer(query,reply);
}
// -------------------------------------------------------------------------
void ModbusRTUSlaveSlot::sigterm( int signo )
{
try
{
terminate();
}
catch(...){}
}
// -------------------------------------------------------------------------
......@@ -476,9 +476,9 @@ mbErrCode ModbusServer::recv( ModbusRTU::ModbusAddr addr, ModbusMessage& rbuf, t
if( !begin )
return erTimeOut;
#warning Может стоит всё-таки получать весь пакет, а проверять кому он адресован на уровне выше?!
// Lav: конечно стоит, нам же надо буфер чистить
/*! \todo Подумать Может стоит всё-таки получать весь пакет, а проверять кому он адресован на уровне выше?!
// Lav: конечно стоит, нам же надо буфер чистить
*/
// Проверка кому адресован пакет...
if( rbuf.addr!=addr && rbuf.addr!=BroadcastAddr )
{
......@@ -755,7 +755,6 @@ mbErrCode ModbusServer::recv_pdu( ModbusMessage& rbuf, timeout_t timeout )
}
}
#warning Стоит ли здесь проверять
if( !mWrite.checkFormat() )
{
dlog[Debug::WARN] << "(0x0F): (" << rbuf.func
......@@ -814,7 +813,6 @@ mbErrCode ModbusServer::recv_pdu( ModbusMessage& rbuf, timeout_t timeout )
}
}
#warning Стоит ли здесь проверять
if( !mWrite.checkFormat() )
{
dlog[Debug::WARN] << "(0x10): (" << rbuf.func
......@@ -872,7 +870,7 @@ mbErrCode ModbusServer::recv_pdu( ModbusMessage& rbuf, timeout_t timeout )
return erBadCheckSum;
}
}
#warning Стоит ли здесь проверять
if( !mWrite.checkFormat() )
{
dlog[Debug::WARN] << "(0x05): (" << rbuf.func
......@@ -930,7 +928,7 @@ mbErrCode ModbusServer::recv_pdu( ModbusMessage& rbuf, timeout_t timeout )
return erBadCheckSum;
}
}
#warning Стоит ли здесь проверять
if( !mWrite.checkFormat() )
{
dlog[Debug::WARN] << "(0x06): (" << rbuf.func
......
......@@ -19,6 +19,7 @@ ModbusTCPServer::ModbusTCPServer( ost::InetAddress &ia, int port ):
// -------------------------------------------------------------------------
ModbusTCPServer::~ModbusTCPServer()
{
terminate();
}
// -------------------------------------------------------------------------
mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, timeout_t timeout )
......@@ -235,3 +236,12 @@ void ModbusTCPServer::cleanInputStream()
while( ret > 0);
}
// -------------------------------------------------------------------------
void ModbusTCPServer::terminate()
{
if( dlog.debugging(Debug::INFO) )
dlog[Debug::INFO] << "(ModbusTCPServer): terminate..." << endl;
if( tcp && tcp.isConnected() )
tcp.disconnect();
}
// -------------------------------------------------------------------------
......@@ -131,3 +131,12 @@ ModbusRTU::mbErrCode ModbusTCPServerSlot::fileTransfer( ModbusRTU::FileTransferM
return slFileTransfer(query,reply);
}
// -------------------------------------------------------------------------
void ModbusTCPServerSlot::sigterm( int signo )
{
try
{
terminate();
}
catch(...){}
}
// -------------------------------------------------------------------------
......@@ -1390,7 +1390,7 @@ void ForceCoilsRetMessage::init( ModbusMessage& m )
// copy not include CRC
memcpy(this,&m,szModbusHeader+m.len);
#warning (WriteOutputRetMessage): необходимо встроить проверку на корректность данных
/*! \todo (WriteOutputRetMessage): необходимо встроить проверку на корректность данных */
// Сперва переворачиваем обратно слова
start = SWAPSHORT(start);
......@@ -1647,7 +1647,7 @@ void WriteOutputRetMessage::init( ModbusMessage& m )
// copy not include CRC
memcpy(this,&m,szModbusHeader+m.len);
#warning (WriteOutputRetMessage): необходимо встроить проверку на корректность данных
/*! \todo (WriteOutputRetMessage): необходимо встроить проверку на корректность данных */
// Сперва переворачиваем обратно слова
start = SWAPSHORT(start);
......@@ -1819,7 +1819,7 @@ void ForceSingleCoilRetMessage::init( ModbusMessage& m )
// copy not include CRC
memcpy(this,&m,szModbusHeader+m.len);
#warning (ForceSingleCoilRetMessage): необходимо встроить проверку на корректность данных
/*! \todo (ForceSingleCoilRetMessage): необходимо встроить проверку на корректность данных */
// переворачиваем обратно слова
start = SWAPSHORT(start);
......@@ -1995,7 +1995,7 @@ void WriteSingleOutputRetMessage::init( ModbusMessage& m )
// copy not include CRC
memcpy(this,&m,szModbusHeader+m.len);
#warning (WriteSingleOutputRetMessage): необходимо встроить проверку на корректность данных
/*! \todo (WriteSingleOutputRetMessage): необходимо встроить проверку на корректность данных */
// переворачиваем обратно слова
start = SWAPSHORT(start);
......
......@@ -1122,7 +1122,7 @@ void ReadInputRetMessage::init( ModbusMessage& m )
void ReadInputRetMessage::swapData()
{
// переворачиваем данные
for( unsigned int i=0; i<count; i++ )
for( int i=0; i<count; i++ )
data[i] = SWAPSHORT(data[i]);
}
// -------------------------------------------------------------------------
......@@ -1428,7 +1428,7 @@ void ForceCoilsRetMessage::init( ModbusMessage& m )
// copy not include CRC
memcpy(this,&m,szModbusHeader+m.len);
#warning (WriteOutputRetMessage): необходимо встроить проверку на корректность данных
/*! \todo (WriteOutputRetMessage): необходимо встроить проверку на корректность данных */
// Сперва переворачиваем обратно слова
start = SWAPSHORT(start);
......@@ -1685,7 +1685,7 @@ void WriteOutputRetMessage::init( ModbusMessage& m )
// copy not include CRC
memcpy(this,&m,szModbusHeader+m.len);
#warning (WriteOutputRetMessage): необходимо встроить проверку на корректность данных
/*! \todo (WriteOutputRetMessage): необходимо встроить проверку на корректность данных */
// Сперва переворачиваем обратно слова
start = SWAPSHORT(start);
......@@ -1857,7 +1857,7 @@ void ForceSingleCoilRetMessage::init( ModbusMessage& m )
// copy not include CRC
memcpy(this,&m,szModbusHeader+m.len);
#warning (ForceSingleCoilRetMessage): необходимо встроить проверку на корректность данных
/*! \todo (ForceSingleCoilRetMessage): необходимо встроить проверку на корректность данных */
// переворачиваем обратно слова
start = SWAPSHORT(start);
......@@ -2033,7 +2033,7 @@ void WriteSingleOutputRetMessage::init( ModbusMessage& m )
// copy not include CRC
memcpy(this,&m,szModbusHeader+m.len);
#warning (WriteSingleOutputRetMessage): необходимо встроить проверку на корректность данных
/*! \todo (WriteSingleOutputRetMessage): необходимо встроить проверку на корректность данных */
// переворачиваем обратно слова
start = SWAPSHORT(start);
......
......@@ -176,8 +176,9 @@ xmlNode* UniXML::copyNode(xmlNode* node, int recursive)
- при указании NULL нормально работает
- при указании copynode - проблеммы с русским при сохранении
- при указании node - SEGFAULT при попытке удалить исходный(node) узел
\todo "Нужно тест написать на copyNode"
*/
#warning "Нужно тест написать на copyNode"
copynode->properties = ::xmlCopyPropList(NULL,node->properties);
if( copynode != 0 && node->parent )
{
......
......@@ -11,8 +11,8 @@ passivetimer_LDADD = $(top_builddir)/lib/libUniSet.la
passivetimer_CPPFLAGS = -I$(top_builddir)/include
unixml_SOURCES = unixml.cc
unixml_LDADD = $(top_builddir)/lib/libUniSet.la
unixml_CPPFLAGS = -I$(top_builddir)/include
unixml_LDADD = $(top_builddir)/lib/libUniSet.la ${SIGC_LIBS}
unixml_CPPFLAGS = -I$(top_builddir)/include ${SIGC_CFLAGS}
ui_SOURCES = ui.cc
ui_LDADD = $(top_builddir)/lib/libUniSet.la
......
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