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
e247e42a
Commit
e247e42a
authored
May 18, 2015
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make style, minor fixes, version 2.0-alt34
parent
c5d199b4
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
35 additions
and
30 deletions
+35
-30
libuniset2.spec
conf/libuniset2.spec
+7
-1
MBExchange.cc
extensions/ModbusMaster/MBExchange.cc
+2
-2
MBExchange.h
extensions/ModbusMaster/MBExchange.h
+3
-3
MBTCPMaster.h
extensions/ModbusMaster/MBTCPMaster.h
+0
-1
ModbusTypes.h
include/modbus/ModbusTypes.h
+23
-23
No files found.
conf/libuniset2.spec
View file @
e247e42a
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
Name: libuniset2
Name: libuniset2
Version: 2.0
Version: 2.0
Release: alt3
3
Release: alt3
4
Summary: UniSet - library for building distributed industrial control systems
Summary: UniSet - library for building distributed industrial control systems
...
@@ -445,6 +445,12 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
...
@@ -445,6 +445,12 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
# ..
# ..
%changelog
%changelog
* Mon May 18 2015 Pavel Vainerman <pv@altlinux.ru> 2.0-alt34
- (ModbusMaster): fixed bug in 'set respond senror mechanism'
- (ModbusMaster): refactoring
- make style
- minor fixes
* Fri May 15 2015 Pavel Vainerman <pv@altlinux.ru> 2.0-alt33
* Fri May 15 2015 Pavel Vainerman <pv@altlinux.ru> 2.0-alt33
- (ModbusSlave): added support mbfunc.. (use RegID)
- (ModbusSlave): added support mbfunc.. (use RegID)
...
...
extensions/ModbusMaster/MBExchange.cc
View file @
e247e42a
...
@@ -64,7 +64,7 @@ MBExchange::MBExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId
...
@@ -64,7 +64,7 @@ MBExchange::MBExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId
default_timeout
=
conf
->
getArgPInt
(
"--"
+
prefix
+
"-timeout"
,
it
.
getProp
(
"timeout"
),
5000
);
default_timeout
=
conf
->
getArgPInt
(
"--"
+
prefix
+
"-timeout"
,
it
.
getProp
(
"timeout"
),
5000
);
int
tout
=
conf
->
getArgPInt
(
"--"
+
prefix
+
"-reopen-timeout"
,
it
.
getProp
(
"reopen_timeout"
),
default_timeout
*
2
);
int
tout
=
conf
->
getArgPInt
(
"--"
+
prefix
+
"-reopen-timeout"
,
it
.
getProp
(
"reopen_timeout"
),
default_timeout
*
2
);
ptReopen
.
setTiming
(
tout
);
ptReopen
.
setTiming
(
tout
);
aftersend_pause
=
conf
->
getArgPInt
(
"--"
+
prefix
+
"-aftersend-pause"
,
it
.
getProp
(
"aftersend_pause"
),
0
);
aftersend_pause
=
conf
->
getArgPInt
(
"--"
+
prefix
+
"-aftersend-pause"
,
it
.
getProp
(
"aftersend_pause"
),
0
);
...
@@ -1027,7 +1027,7 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
...
@@ -1027,7 +1027,7 @@ bool MBExchange::pollRTU( RTUDevice* dev, RegMap::iterator& it )
ModbusRTU
::
WriteOutputMessage
msg
(
dev
->
mbaddr
,
p
->
mbreg
);
ModbusRTU
::
WriteOutputMessage
msg
(
dev
->
mbaddr
,
p
->
mbreg
);
for
(
auto
i
=
0
;
i
<
p
->
q_count
;
i
++
,
it
++
)
for
(
unsigned
int
i
=
0
;
i
<
p
->
q_count
;
i
++
,
it
++
)
msg
.
addData
(
it
->
second
->
mbval
);
msg
.
addData
(
it
->
second
->
mbval
);
it
--
;
it
--
;
...
...
extensions/ModbusMaster/MBExchange.h
View file @
e247e42a
...
@@ -322,9 +322,9 @@ class MBExchange:
...
@@ -322,9 +322,9 @@ class MBExchange:
std
::
string
prefix
;
std
::
string
prefix
;
timeout_t
stat_time
;
/*!< время сбора статистики обмена */
timeout_t
stat_time
;
/*!< время сбора статистики обмена */
int
poll_count
;
unsigned
int
poll_count
;
PassiveTimer
ptStatistic
;
/*!< таймер для сбора статистики обмена */
PassiveTimer
ptStatistic
;
/*!< таймер для сбора статистики обмена */
std
::
string
prop_prefix
;
/*!< префикс для считывания параметров обмена */
std
::
string
prop_prefix
;
/*!< префикс для считывания параметров обмена */
...
...
extensions/ModbusMaster/MBTCPMaster.h
View file @
e247e42a
...
@@ -226,7 +226,6 @@ class MBTCPMaster:
...
@@ -226,7 +226,6 @@ class MBTCPMaster:
// т.к. TCP может "зависнуть" на подключении к недоступному узлу
// т.к. TCP может "зависнуть" на подключении к недоступному узлу
// делаем опрос в отдельном потоке
// делаем опрос в отдельном потоке
std
::
shared_ptr
<
ThreadCreator
<
MBTCPMaster
>>
pollThread
;
/*!< поток опроса */
std
::
shared_ptr
<
ThreadCreator
<
MBTCPMaster
>>
pollThread
;
/*!< поток опроса */
UniSetTypes
::
uniset_rwmutex
tcpMutex
;
};
};
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
#endif // _MBTCPMaster_H_
#endif // _MBTCPMaster_H_
...
...
include/modbus/ModbusTypes.h
View file @
e247e42a
...
@@ -22,10 +22,10 @@ namespace ModbusRTU
...
@@ -22,10 +22,10 @@ namespace ModbusRTU
{
{
// Базовые типы
// Базовые типы
typedef
unsigned
char
ModbusByte
;
/*!< modbus-байт */
typedef
unsigned
char
ModbusByte
;
/*!< modbus-байт */
const
in
t
BitsPerByte
=
8
;
const
unsigned
shor
t
BitsPerByte
=
8
;
typedef
unsigned
char
ModbusAddr
;
/*!< адрес узла в modbus-сети */
typedef
unsigned
char
ModbusAddr
;
/*!< адрес узла в modbus-сети */
typedef
unsigned
short
ModbusData
;
/*!< размер данных в modbus-сообщениях */
typedef
unsigned
short
ModbusData
;
/*!< размер данных в modbus-сообщениях */
const
in
t
BitsPerData
=
16
;
const
unsigned
shor
t
BitsPerData
=
16
;
typedef
unsigned
short
ModbusCRC
;
/*!< размер CRC16 в modbus-сообщениях */
typedef
unsigned
short
ModbusCRC
;
/*!< размер CRC16 в modbus-сообщениях */
// ---------------------------------------------------------------------
// ---------------------------------------------------------------------
...
@@ -33,44 +33,44 @@ namespace ModbusRTU
...
@@ -33,44 +33,44 @@ namespace ModbusRTU
enum
SlaveFunctionCode
enum
SlaveFunctionCode
{
{
fnUnknown
=
0x00
,
fnUnknown
=
0x00
,
fnReadCoilStatus
=
0x01
,
/*!< read coil status */
fnReadCoilStatus
=
0x01
,
/*!< read coil status */
fnReadInputStatus
=
0x02
,
/*!< read input status */
fnReadInputStatus
=
0x02
,
/*!< read input status */
fnReadOutputRegisters
=
0x03
,
/*!< read register outputs or memories or read word outputs or memories */
fnReadOutputRegisters
=
0x03
,
/*!< read register outputs or memories or read word outputs or memories */
fnReadInputRegisters
=
0x04
,
/*!< read input registers or memories or read word outputs or memories */
fnReadInputRegisters
=
0x04
,
/*!< read input registers or memories or read word outputs or memories */
fnForceSingleCoil
=
0x05
,
/*!< forces a single coil to either ON or OFF */
fnForceSingleCoil
=
0x05
,
/*!< forces a single coil to either ON or OFF */
fnWriteOutputSingleRegister
=
0x06
,
/*!< write register outputs or memories */
fnWriteOutputSingleRegister
=
0x06
,
/*!< write register outputs or memories */
fnDiagnostics
=
0x08
,
/*!< Diagnostics (Serial Line only) */
fnDiagnostics
=
0x08
,
/*!< Diagnostics (Serial Line only) */
fnForceMultipleCoils
=
0x0F
,
/*!< force multiple coils */
fnForceMultipleCoils
=
0x0F
,
/*!< force multiple coils */
fnWriteOutputRegisters
=
0x10
,
/*!< write register outputs or memories */
fnWriteOutputRegisters
=
0x10
,
/*!< write register outputs or memories */
fnReadFileRecord
=
0x14
,
/*!< read file record */
fnReadFileRecord
=
0x14
,
/*!< read file record */
fnWriteFileRecord
=
0x15
,
/*!< write file record */
fnWriteFileRecord
=
0x15
,
/*!< write file record */
fnMEI
=
0x2B
,
/*!< Modbus Encapsulated Interface */
fnMEI
=
0x2B
,
/*!< Modbus Encapsulated Interface */
fnSetDateTime
=
0x50
,
/*!< set date and time */
fnSetDateTime
=
0x50
,
/*!< set date and time */
fnRemoteService
=
0x53
,
/*!< call remote service */
fnRemoteService
=
0x53
,
/*!< call remote service */
fnJournalCommand
=
0x65
,
/*!< read,write,delete alarm journal */
fnJournalCommand
=
0x65
,
/*!< read,write,delete alarm journal */
fnFileTransfer
=
0x66
/*!< file transfer */
fnFileTransfer
=
0x66
/*!< file transfer */
};
};
/*! Коды диагностически подфункций (для запроса 0x08) */
/*! Коды диагностически подфункций (для запроса 0x08) */
enum
DiagnosticsSubFunction
enum
DiagnosticsSubFunction
{
{
subEcho
=
0x00
,
/*!< (0) Return Query Data (echo) */
subEcho
=
0x00
,
/*!< (0) Return Query Data (echo) */
dgRestartComm
=
0x01
,
/*!< (1) Restart Communications Option */
dgRestartComm
=
0x01
,
/*!< (1) Restart Communications Option */
dgDiagReg
=
0x02
,
/*!< (2) Return Diagnostic Register */
dgDiagReg
=
0x02
,
/*!< (2) Return Diagnostic Register */
dgChangeASCII
=
0x03
,
/*!< (3) Change ASCII Input Delimiter */
dgChangeASCII
=
0x03
,
/*!< (3) Change ASCII Input Delimiter */
dgForceListen
=
0x04
,
/*!< (4) Force Listen Only Mode */
dgForceListen
=
0x04
,
/*!< (4) Force Listen Only Mode */
// 05.. 09 RESERVED
// 05.. 09 RESERVED
dgClearCounters
=
0x0A
,
/*!< (10)Clear Counters and Diagnostic Register */
dgClearCounters
=
0x0A
,
/*!< (10)Clear Counters and Diagnostic Register */
dgBusMsgCount
=
0x0B
,
/*!< (11) Return Bus Message Count */
dgBusMsgCount
=
0x0B
,
/*!< (11) Return Bus Message Count */
dgBusErrCount
=
0x0C
,
/*!< (12) Return Bus Communication Error Count */
dgBusErrCount
=
0x0C
,
/*!< (12) Return Bus Communication Error Count */
dgBusExceptCount
=
0x0D
,
/*!< (13) Return Bus Exception Error Count */
dgBusExceptCount
=
0x0D
,
/*!< (13) Return Bus Exception Error Count */
dgMsgSlaveCount
=
0x0E
,
/*!< (14) Return Slave Message Count */
dgMsgSlaveCount
=
0x0E
,
/*!< (14) Return Slave Message Count */
dgNoNoResponseCount
=
0x0F
,
/*!< (15) Return Slave No Response Count */
dgNoNoResponseCount
=
0x0F
,
/*!< (15) Return Slave No Response Count */
dgSlaveNAKCount
=
0x10
,
/*!< (16) Return Slave NAK Count */
dgSlaveNAKCount
=
0x10
,
/*!< (16) Return Slave NAK Count */
dgSlaveBusyCount
=
0x11
,
/*!< (17) Return Slave Busy Count */
dgSlaveBusyCount
=
0x11
,
/*!< (17) Return Slave Busy Count */
dgBusCharOverrunCount
=
0x12
,
/*!< (18) Return Bus Character Overrun Count */
dgBusCharOverrunCount
=
0x12
,
/*!< (18) Return Bus Character Overrun Count */
// = 0x13, /*!< RESERVED */
// = 0x13, /*!< RESERVED */
dgClearOverrunCounter
=
0x14
/*!< (20) Clear Overrun Counter and FlagN.A. */
dgClearOverrunCounter
=
0x14
/*!< (20) Clear Overrun Counter and FlagN.A. */
// 21 ...65535 RESERVED
// 21 ...65535 RESERVED
};
};
...
@@ -121,9 +121,9 @@ namespace ModbusRTU
...
@@ -121,9 +121,9 @@ namespace ModbusRTU
enum
enum
{
{
/*! максимальное количество данных в пакете (c учётом контрольной суммы) */
/*! максимальное количество данных в пакете (c учётом контрольной суммы) */
MAXLENPACKET
=
508
,
/*!< максимальная длина пакета 512 - header(2) - CRC(2) */
MAXLENPACKET
=
508
,
/*!< максимальная длина пакета 512 - header(2) - CRC(2) */
BroadcastAddr
=
255
,
/*!< адрес для широковещательных сообщений */
BroadcastAddr
=
255
,
/*!< адрес для широковещательных сообщений */
MAXDATALEN
=
127
/*!< максимальное число слов, которое можно запросить.
MAXDATALEN
=
127
/*!< максимальное число слов, которое можно запросить.
Связано с тем, что в ответе есть поле bcnt - количество байт
Связано с тем, что в ответе есть поле bcnt - количество байт
Соответственно максимум туда можно записать только 255
Соответственно максимум туда можно записать только 255
*/
*/
...
...
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