Commit f6b7565e authored by Pavel Vainerman's avatar Pavel Vainerman

(Modbus): Тестовая сборка с новым modbus (добавлена функция 43/14)

parent ded0405d
...@@ -20,6 +20,7 @@ static struct option longopts[] = { ...@@ -20,6 +20,7 @@ static struct option longopts[] = {
{ "write0F", required_argument, 0, 'm' }, { "write0F", required_argument, 0, 'm' },
{ "write10", required_argument, 0, 'w' }, { "write10", required_argument, 0, 'w' },
{ "diag08", required_argument, 0, 'o' }, { "diag08", required_argument, 0, 'o' },
{ "read4314", required_argument, 0, 'e' },
// { "readfile14", required_argument, 0, 'g' }, // { "readfile14", required_argument, 0, 'g' },
// { "writefile15", required_argument, 0, 'p' }, // { "writefile15", required_argument, 0, 'p' },
{ "filetransfer66", required_argument, 0, 'u' }, { "filetransfer66", required_argument, 0, 'u' },
...@@ -47,6 +48,7 @@ static void print_help() ...@@ -47,6 +48,7 @@ static void print_help()
printf("[--read03] slaveaddr reg count - read from reg (from slaveaddr). Default: count=1\n"); printf("[--read03] slaveaddr reg count - read from reg (from slaveaddr). Default: count=1\n");
printf("[--read04] slaveaddr reg count - read from reg (from slaveaddr). Default: count=1\n"); printf("[--read04] slaveaddr reg count - read from reg (from slaveaddr). Default: count=1\n");
printf("[--diag08] slaveaddr subfunc [dat] - diagnostics request\n"); printf("[--diag08] slaveaddr subfunc [dat] - diagnostics request\n");
printf("[--read4314] slaveaddr devID objID - (0x2B/0x0E): read device identification (devID=[1...4], objID=[0..255])\n");
// printf("[--readfile14] slaveaddr fileID - read file from slaveaddr).\n"); // printf("[--readfile14] slaveaddr fileID - read file from slaveaddr).\n");
// printf("[--writefile15] slaveaddr id filename - write file to slaveaddr).\n"); // printf("[--writefile15] slaveaddr id filename - write file to slaveaddr).\n");
printf("[--filetransfer66] slaveaddr fileID [filename] - get file from slaveaddr. Default save to 'fileID.transfer'\n"); printf("[--filetransfer66] slaveaddr fileID [filename] - get file from slaveaddr. Default save to 'fileID.transfer'\n");
...@@ -75,6 +77,8 @@ enum Command ...@@ -75,6 +77,8 @@ enum Command
cmdRead02, cmdRead02,
cmdRead03, cmdRead03,
cmdRead04, cmdRead04,
cmdRead43_13,
cmdRead43_14,
cmdWrite05, cmdWrite05,
cmdWrite06, cmdWrite06,
cmdWrite0F, cmdWrite0F,
...@@ -113,10 +117,12 @@ int main( int argc, char **argv ) ...@@ -113,10 +117,12 @@ int main( int argc, char **argv )
string tofile(""); string tofile("");
int use485 = 0; int use485 = 0;
int ncycles = -1; int ncycles = -1;
ModbusRTU::ModbusByte devID = 0;
ModbusRTU::ModbusByte objID = 0;
try try
{ {
while( (opt = getopt_long(argc, argv, "hva:w:z:m:r:x:c:b:d:s:t:qn:u:yl:t:o:",longopts,&optindex)) != -1 ) while( (opt = getopt_long(argc, argv, "hva:w:z:m:r:x:c:b:d:s:t:qn:u:yl:t:o:e:",longopts,&optindex)) != -1 )
{ {
switch (opt) switch (opt)
{ {
...@@ -167,7 +173,26 @@ int main( int argc, char **argv ) ...@@ -167,7 +173,26 @@ int main( int argc, char **argv )
if( checkArg(optind+1,argc,argv) ) if( checkArg(optind+1,argc,argv) )
dat = uni_atoi(argv[optind+1]); dat = uni_atoi(argv[optind+1]);
break; break;
case 'e':
{
if( cmd == cmdNOP )
cmd = cmdRead43_14;
slaveaddr = ModbusRTU::str2mbAddr( optarg );
if( optind > argc )
{
cerr << "read command error: bad or no arguments..." << endl;
return 1;
}
if( checkArg(optind,argc,argv) )
devID = ModbusRTU::str2mbData(argv[optind]);
if( checkArg(optind+1,argc,argv) )
objID = uni_atoi(argv[optind+1]);
}
break;
case 'f': case 'f':
cmd = cmdWrite05; cmd = cmdWrite05;
case 'z': case 'z':
...@@ -459,6 +484,24 @@ int main( int argc, char **argv ) ...@@ -459,6 +484,24 @@ int main( int argc, char **argv )
} }
break; break;
case cmdRead43_14:
{
if( verb )
{
cout << "read4314: slaveaddr=" << ModbusRTU::addr2str(slaveaddr)
<< " devID=" << ModbusRTU::dat2str(devID)
<< " objID=" << ModbusRTU::dat2str(objID)
<< endl;
}
ModbusRTU::MEIMessageRetRDI ret = mb.read4314(slaveaddr,devID,objID);
if( verb )
cout << "(reply): " << ret << endl;
else
cout << "(reply): devID='" << (int)ret.devID << "' objNum='" << (int)ret.objNum << "'" << endl << ret.dlist << endl;
}
break;
case cmdWrite05: case cmdWrite05:
{ {
if( verb ) if( verb )
......
...@@ -153,7 +153,6 @@ int main( int argc, char **argv ) ...@@ -153,7 +153,6 @@ int main( int argc, char **argv )
objID = uni_atoi(argv[optind+1]); objID = uni_atoi(argv[optind+1]);
} }
break; break;
case 'f': case 'f':
cmd = cmdWrite05; cmd = cmdWrite05;
case 'z': case 'z':
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
Name: libuniset Name: libuniset
Version: 1.6 Version: 1.6
Release: alt6 Release: alt7
Summary: UniSet - library for building distributed industrial control systems Summary: UniSet - library for building distributed industrial control systems
...@@ -319,6 +319,9 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname ...@@ -319,6 +319,9 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
%exclude %_pkgconfigdir/libUniSet.pc %exclude %_pkgconfigdir/libUniSet.pc
%changelog %changelog
* Wed Mar 20 2013 Pavel Vainerman <pv@altlinux.ru> 1.6-alt7
- modbus: add new function 0x2B/0x0E(43/14)"Read device identification"
* Tue Mar 05 2013 Pavel Vainerman <pv@altlinux.ru> 1.6-alt6 * Tue Mar 05 2013 Pavel Vainerman <pv@altlinux.ru> 1.6-alt6
- python: add __init__.py - python: add __init__.py
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# See doc: http://www.gnu.org/software/hello/manual/autoconf/Generic-Programs.html # See doc: http://www.gnu.org/software/hello/manual/autoconf/Generic-Programs.html
# AC_PREREQ(2.59) # AC_PREREQ(2.59)
AC_INIT([uniset], [1.5.1], pv@etersoft.ru) AC_INIT([uniset], [1.6.1], pv@etersoft.ru)
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME,AC_PACKAGE_VERSION) AM_INIT_AUTOMAKE(AC_PACKAGE_NAME,AC_PACKAGE_VERSION)
# AC_CONFIG_MACRO_DIR([m4]) # AC_CONFIG_MACRO_DIR([m4])
...@@ -30,7 +30,7 @@ AC_ENABLE_SHARED(yes) ...@@ -30,7 +30,7 @@ AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no) AC_ENABLE_STATIC(no)
AM_PROG_LIBTOOL AM_PROG_LIBTOOL
LIBVER=1:5:1 LIBVER=1:6:1
AC_SUBST(LIBVER) AC_SUBST(LIBVER)
# Checks for libraries. # Checks for libraries.
......
...@@ -6,6 +6,6 @@ includedir=@includedir@ ...@@ -6,6 +6,6 @@ includedir=@includedir@
Name: libUniSetMBSlave Name: libUniSetMBSlave
Description: Support library for UniSetModbusSlave Description: Support library for UniSetModbusSlave
Requires: libUniSetExtensions libUniSetSharedMemory Requires: libUniSetExtensions libUniSetSharedMemory
Version: 1.1.1 Version: @VERSION@
Libs: -L${libdir} -lUniSetMBSlave Libs: -L${libdir} -lUniSetMBSlave
Cflags: -I${includedir}/uniset Cflags: -I${includedir}/uniset
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