Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
U
uniset2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UniSet project repositories
uniset2
Commits
e0efd2da
Commit
e0efd2da
authored
Jan 25, 2011
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Убрал всевозможные warning: где-то удалил за неактуальностью, где-то исправил,
где-то переделал в "todo".
parent
0e79082a
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
106 additions
and
65 deletions
+106
-65
IOControl.cc
extensions/IOControl/IOControl.cc
+1
-1
IOControl.h
extensions/IOControl/IOControl.h
+2
-2
iocalibr.cc
extensions/IOControl/iocalibr.cc
+3
-2
LProcessor.cc
extensions/LogicProcessor/LProcessor.cc
+2
-4
MBTCPMaster.cc
extensions/MBTCPMaster/MBTCPMaster.cc
+5
-3
MBSlave.cc
extensions/ModbusSlave/MBSlave.cc
+7
-0
RTUExchange.cc
extensions/RTUExchange/RTUExchange.cc
+2
-3
SharedMemory.cc
extensions/SharedMemory/SharedMemory.cc
+3
-10
UDPExchange.cc
extensions/UDPExchange/UDPExchange.cc
+1
-3
UDPSender.cc
extensions/UDPExchange/UDPSender.cc
+1
-3
UniExchange.cc
extensions/UniNetwork/UniExchange.cc
+0
-2
UniExchange.h
extensions/UniNetwork/UniExchange.h
+1
-1
MTR.h
extensions/include/MTR.h
+1
-1
IOBase.cc
extensions/lib/IOBase.cc
+2
-4
MTR.cc
extensions/lib/MTR.cc
+1
-1
ModbusRTUSlave.h
include/modbus/ModbusRTUSlave.h
+2
-0
ModbusRTUSlaveSlot.h
include/modbus/ModbusRTUSlaveSlot.h
+3
-1
ModbusServer.h
include/modbus/ModbusServer.h
+1
-0
ModbusServerSlot.h
include/modbus/ModbusServerSlot.h
+2
-0
ModbusTCPServer.h
include/modbus/ModbusTCPServer.h
+3
-0
ModbusTCPServerSlot.h
include/modbus/ModbusTCPServerSlot.h
+3
-1
ComPort485F.cc
src/Communications/ComPort485F.cc
+3
-2
ModbusClient.cc
src/Communications/Modbus/ModbusClient.cc
+3
-2
ModbusRTUSlave.cc
src/Communications/Modbus/ModbusRTUSlave.cc
+8
-0
ModbusRTUSlaveSlot.cc
src/Communications/Modbus/ModbusRTUSlaveSlot.cc
+9
-0
ModbusServer.cc
src/Communications/Modbus/ModbusServer.cc
+5
-7
ModbusTCPServer.cc
src/Communications/Modbus/ModbusTCPServer.cc
+10
-0
ModbusTCPServerSlot.cc
src/Communications/Modbus/ModbusTCPServerSlot.cc
+9
-0
ModbusTCPTypes.cc
src/Communications/Modbus/ModbusTCPTypes.cc
+4
-4
ModbusTypes.cc
src/Communications/Modbus/ModbusTypes.cc
+5
-5
UniXML.cc
src/Various/UniXML.cc
+2
-1
Makefile.am
tests/Makefile.am
+2
-2
No files found.
extensions/IOControl/IOControl.cc
View file @
e0efd2da
...
...
@@ -1592,7 +1592,7 @@ void IOControl::buildCardsList()
return
;
}
in
t
lastnum
=
0
;
size_
t
lastnum
=
0
;
for
(
;
lastnum
<
cards
.
size
();
lastnum
++
)
{
if
(
cards
[
lastnum
]
==
0
)
...
...
extensions/IOControl/IOControl.h
View file @
e0efd2da
...
...
@@ -150,7 +150,7 @@
"5" - Режим "только выходы"
*/
// -----------------------------------------------------------------------------
#warning Сделать обработку сигналов завершения....
/*! \todo (IOControl): Сделать обработку сигналов завершения */
class
CardList
:
public
std
::
vector
<
ComediInterface
*>
...
...
@@ -324,7 +324,7 @@ class IOControl:
std
::
string
s_field
;
std
::
string
s_fvalue
;
SMInterface
*
shm
;
SMInterface
*
shm
;
UniversalInterface
ui
;
UniSetTypes
::
ObjectId
myid
;
std
::
string
prefix
;
...
...
extensions/IOControl/iocalibr.cc
View file @
e0efd2da
...
...
@@ -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
)
{
...
...
extensions/LogicProcessor/LProcessor.cc
View file @
e0efd2da
...
...
@@ -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
);
}
...
...
extensions/MBTCPMaster/MBTCPMaster.cc
View file @
e0efd2da
...
...
@@ -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
)
...
...
extensions/ModbusSlave/MBSlave.cc
View file @
e0efd2da
...
...
@@ -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
);
}
// ------------------------------------------------------------------------------------------
...
...
extensions/RTUExchange/RTUExchange.cc
View file @
e0efd2da
...
...
@@ -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
)
...
...
extensions/SharedMemory/SharedMemory.cc
View file @
e0efd2da
...
...
@@ -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());
...
...
extensions/UDPExchange/UDPExchange.cc
View file @
e0efd2da
...
...
@@ -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
)
...
...
extensions/UDPExchange/UDPSender.cc
View file @
e0efd2da
...
...
@@ -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
)
...
...
extensions/UniNetwork/UniExchange.cc
View file @
e0efd2da
...
...
@@ -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
)
...
...
extensions/UniNetwork/UniExchange.h
View file @
e0efd2da
...
...
@@ -91,7 +91,7 @@ class UniExchange:
bool
init_ok
;
SList
mymap
;
in
t
maxIndex
;
size_
t
maxIndex
;
int
smReadyTimeout
;
private
:
...
...
extensions/include/MTR.h
View file @
e0efd2da
...
...
@@ -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
...
...
extensions/lib/IOBase.cc
View file @
e0efd2da
...
...
@@ -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,10 +483,7 @@ 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
()
)
...
...
extensions/lib/MTR.cc
View file @
e0efd2da
...
...
@@ -269,7 +269,7 @@ DataMap read_confile( const std::string f )
DataList
dlst
;
int
k
=
0
;
std
::
vector
<
unsigned
char
>
v
(
4
);
for
(
in
t
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
)
...
...
include/modbus/ModbusRTUSlave.h
View file @
e0efd2da
...
...
@@ -35,6 +35,8 @@ class ModbusRTUSlave:
virtual
ModbusRTU
::
mbErrCode
receive
(
ModbusRTU
::
ModbusAddr
addr
,
timeout_t
msecTimeout
);
virtual
void
cleanupChannel
(){
if
(
port
)
port
->
cleanupChannel
();
}
virtual
void
terminate
();
protected
:
...
...
include/modbus/ModbusRTUSlaveSlot.h
View file @
e0efd2da
...
...
@@ -21,7 +21,9 @@ class ModbusRTUSlaveSlot:
ModbusRTUSlaveSlot
(
ComPort
*
com
);
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
,
...
...
include/modbus/ModbusServer.h
View file @
e0efd2da
...
...
@@ -69,6 +69,7 @@ class ModbusServer
DebugStream
*
dlog
=
0
);
virtual
void
cleanupChannel
(){}
virtual
void
terminate
(){}
protected
:
...
...
include/modbus/ModbusServerSlot.h
View file @
e0efd2da
...
...
@@ -98,6 +98,8 @@ class ModbusServerSlot
/*! подключение обработчика 'передача файла' 0x66 */
void
connectFileTransfer
(
FileTransferSlot
sl
);
virtual
void
sigterm
(
int
signo
){}
protected
:
ReadCoilSlot
slReadCoil
;
ReadInputStatusSlot
slReadInputStatus
;
...
...
include/modbus/ModbusTCPServer.h
View file @
e0efd2da
...
...
@@ -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
);
...
...
include/modbus/ModbusTCPServerSlot.h
View file @
e0efd2da
...
...
@@ -16,7 +16,9 @@ class ModbusTCPServerSlot:
public
:
ModbusTCPServerSlot
(
ost
::
InetAddress
&
ia
,
int
port
=
502
);
virtual
~
ModbusTCPServerSlot
();
virtual
void
sigterm
(
int
signo
);
protected
:
virtual
ModbusRTU
::
mbErrCode
readCoilStatus
(
ModbusRTU
::
ReadCoilMessage
&
query
,
...
...
src/Communications/ComPort485F.cc
View file @
e0efd2da
...
...
@@ -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
);
...
...
src/Communications/Modbus/ModbusClient.cc
View file @
e0efd2da
...
...
@@ -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
)
{
...
...
src/Communications/Modbus/ModbusRTUSlave.cc
View file @
e0efd2da
...
...
@@ -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
src/Communications/Modbus/ModbusRTUSlaveSlot.cc
View file @
e0efd2da
...
...
@@ -137,3 +137,12 @@ ModbusRTU::mbErrCode ModbusRTUSlaveSlot::fileTransfer( ModbusRTU::FileTransferMe
return
slFileTransfer
(
query
,
reply
);
}
// -------------------------------------------------------------------------
void
ModbusRTUSlaveSlot
::
sigterm
(
int
signo
)
{
try
{
terminate
();
}
catch
(...){}
}
// -------------------------------------------------------------------------
src/Communications/Modbus/ModbusServer.cc
View file @
e0efd2da
...
...
@@ -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
...
...
src/Communications/Modbus/ModbusTCPServer.cc
View file @
e0efd2da
...
...
@@ -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
();
}
// -------------------------------------------------------------------------
src/Communications/Modbus/ModbusTCPServerSlot.cc
View file @
e0efd2da
...
...
@@ -131,3 +131,12 @@ ModbusRTU::mbErrCode ModbusTCPServerSlot::fileTransfer( ModbusRTU::FileTransferM
return
slFileTransfer
(
query
,
reply
);
}
// -------------------------------------------------------------------------
void
ModbusTCPServerSlot
::
sigterm
(
int
signo
)
{
try
{
terminate
();
}
catch
(...){}
}
// -------------------------------------------------------------------------
src/Communications/Modbus/ModbusTCPTypes.cc
View file @
e0efd2da
...
...
@@ -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
);
...
...
src/Communications/Modbus/ModbusTypes.cc
View file @
e0efd2da
...
...
@@ -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
);
...
...
src/Various/UniXML.cc
View file @
e0efd2da
...
...
@@ -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
)
{
...
...
tests/Makefile.am
View file @
e0efd2da
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment