works.
thanks alot!
--------------------
William Kirstaedter
PP&B @FHI Berlin
Am 29.08.2022 um 14:37 schrieb Wlodek,
Jakub:
Hi William,
I have made some further changes that allow for compiling the
example IOC - please try again and let me know if that works.
Best,
Jakub
From: William Kirstaedter
Sent: Monday, August 29, 2022 5:55 AM
To: Wlodek, Jakub; Mark Rivers; tech-talk at aps.anl.gov
Subject: Re: Eurotherm modbus support
thanks for fixing the support module,
now I can compile it.
but I struggle to get the example app compiled...
epics@priscilla:~/EPICS/epics-support/eurotherm2k/iocs/example_modbus$
make
make -C ./configure install
make[1]: Entering directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/configure'
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[2]: Entering directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/configure/O.linux-x86_64'
perl -CSD
/home/epics/EPICS/epics-base/bin/linux-x86_64/convertRelease.pl
checkRelease
make[2]: Leaving directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/configure/O.linux-x86_64'
make[1]: Leaving directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/configure'
make -C example_modbusApp/Db install
make[1]: Entering directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/Db'
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
T_A=linux-x86_64 install
make[2]: Entering directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/Db/O.linux-x86_64'
make[2]: Nothing to be done for 'install'.
make[2]: Leaving directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/Db/O.linux-x86_64'
make[1]: Leaving directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/Db'
make -C example_modbusApp/src install
make[1]: Entering directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/src'
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
T_A=linux-x86_64 install
make[2]: Entering directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/src/O.linux-x86_64'
Creating dbd file example_modbus.dbd
perl -CSD
/home/epics/EPICS/epics-base/bin/linux-x86_64/dbdExpand.pl
-I. -I.. -I../O.Common -I../../../dbd
-I/home/epics/EPICS/epics-support/calc/dbd
-I/home/epics/EPICS/epics-support/asyn/dbd
-I/home/epics/EPICS/epics-support/eurotherm2k/dbd
-I/home/epics/EPICS/epics-support/modbus/dbd
-I/home/epics/EPICS/epics-base/dbd -o example_modbus.dbd
base.dbd asyn.dbd drvAsynIPPort.dbd
drvAsynSerialPort.dbd modbusApp.dbd modbusSupport.dbd
eurothermModbusSupport.dbd
perl -CSD
/home/epics/EPICS/epics-base/bin/linux-x86_64/registerRecordDeviceDriver.pl
-I. -I.. -I../O.Common -I../../../dbd
-I/home/epics/EPICS/epics-support/calc/dbd
-I/home/epics/EPICS/epics-support/asyn/dbd
-I/home/epics/EPICS/epics-support/eurotherm2k/dbd
-I/home/epics/EPICS/epics-support/modbus/dbd
-I/home/epics/EPICS/epics-base/dbd -o
example_modbus_registerRecordDeviceDriver.cpp
../O.Common/example_modbus.dbd
example_modbus_registerRecordDeviceDriver
/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE
-D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall
-mtune=generic -m64 -I. -I../O.Common -I. -I. -I..
-I../../../include/compiler/gcc
-I../../../include/os/Linux -I../../../include
-I/home/epics/EPICS/epics-support/calc/include
-I/home/epics/EPICS/epics-support/asyn/include
-I/home/epics/EPICS/epics-support/modbus/include
-I/home/epics/EPICS/epics-base/include/compiler/gcc
-I/home/epics/EPICS/epics-base/include/os/Linux
-I/home/epics/EPICS/epics-base/include -MM -MF
example_modbus_registerRecordDeviceDriver.d
example_modbus_registerRecordDeviceDriver.cpp
Installing created dbd file
../../../dbd/example_modbus.dbd
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE
-D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall
-mtune=generic -m64 -I. -I../O.Common -I. -I. -I..
-I../../../include/compiler/gcc
-I../../../include/os/Linux -I../../../include
-I/home/epics/EPICS/epics-support/calc/include
-I/home/epics/EPICS/epics-support/asyn/include
-I/home/epics/EPICS/epics-support/modbus/include
-I/home/epics/EPICS/epics-base/include/compiler/gcc
-I/home/epics/EPICS/epics-base/include/os/Linux
-I/home/epics/EPICS/epics-base/include -c
example_modbus_registerRecordDeviceDriver.cpp
/usr/bin/g++ -o example_modbus
-L/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/lib/linux-x86_64
-L/home/epics/EPICS/base-7.0/lib/linux-x86_64
-L/home/epics/EPICS/epics-support/asyn/lib/linux-x86_64
-L/home/epics/EPICS/epics-support/eurotherm2k/lib/linux-x86_64
-L/home/epics/EPICS/epics-support/modbus/lib/linux-x86_64
-Wl,-rpath,/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/lib/linux-x86_64
-Wl,-rpath,/home/epics/EPICS/base-7.0/lib/linux-x86_64
-Wl,-rpath,/home/epics/EPICS/epics-support/asyn/lib/linux-x86_64
-Wl,-rpath,/home/epics/EPICS/epics-support/eurotherm2k/lib/linux-x86_64
-Wl,-rpath,/home/epics/EPICS/epics-support/modbus/lib/linux-x86_64
-rdynamic -m64
example_modbus_registerRecordDeviceDriver.o
example_modbusMain.o -leurothermModbus -lmodbus
-lasyn -ldbRecStd -ldbCore -lca -lCom
/usr/bin/ld:
/home/epics/EPICS/epics-support/eurotherm2k/lib/linux-x86_64/libeurothermModbus.so:
undefined reference to `drvModbusAsynConfigure(char
const*, char const*, int, int, int, int, char const*,
int, char const*)'
collect2: error: ld returned 1 exit status
make[2]: ***
[/home/epics/EPICS/epics-base/configure/RULES_BUILD:231:
example_modbus] Error 1
make[2]: Leaving directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/src/O.linux-x86_64'
make[1]: ***
[/home/epics/EPICS/epics-base/configure/RULES_ARCHS:58:
install.linux-x86_64] Error 2
make[1]: Leaving directory
'/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/src'
make: ***
[/home/epics/EPICS/epics-base/configure/RULES_DIRS:85:
example_modbusApp/src.install] Error 2
what should I include in the Makefile to get it to run?
thanks,
William Kirstaedter
PP&B Computer Support Group
Fritz-Haber-Institut Berlin
Am 26.08.22 um 19:07 schrieb
Wlodek, Jakub:
I have applied and pushed the patch, and can now build
OK with modbus R3-2:
[jwlodek@dell-rhel8
eurotherm2k]$ make clean uninstall -s
[jwlodek@dell-rhel8
eurotherm2k]$ make -sj
[jwlodek@dell-rhel8
eurotherm2k]$
[jwlodek@dell-rhel8
eurotherm2k]$ more /usr/lib/epics/README | grep MODBUS
MODBUS - R3-2
-Jakub
Hi Jakub ,
Ø
I was planning on getting
it working with the newer modbus version at some
point, which it seems you have already done, perhaps
we should just apply those changes to the repo?
That sounds good. Are you OK with just applying my
changes using the “patch” command, or do you want me
to fork the repository and make a PR?
One thing you need to do before applying the patch
is to do:
git mv eurothermModbus.c eurothermModbus.cpp
Mark
This repo is a backup of an IOC
instance we had running that as far as I could
tell had no upstream master (I believe it was
downloaded as a source tarball, probably from
the DLS site). I was planning on getting it
working with the newer modbus version at some
point, which it seems you have already done,
perhaps we should just apply those changes to
the repo?
I
now realize that DLS repository is not the
same as the one you are using. However, this
one does seem to be the same:
https://github.com/jwlodek/eurotherm2k
Jakub,
is this repository a fork of a master
somewhere else, or is this now the primary
repository?
Mark
Hi William,
It appears that the eurothemModbus source code
is on Github here:
https://github.com/dls-controls/eurothermModbus
Does your gitlab dump differ from that?
Mark
Hi Mark,
unfortunately, it doesnt work, various casts
fail.
I've saved a dump here:
https://gitlab.fhi.mpg.de/kw/eurotherm2k
(should be externally accessible)
William Kirstaedter
PP&B Computer Support Group
Fritz-Haber-Institut Berlin
Am 26.08.22 um 14:40 schrieb Mark Rivers:
You can probably just
rename eurothermModbus.c to
eurothermModbus.cpp.
See if that works.
How does eurothermModbus use
drvModbusAsyn?
From: Tech-talk on behalf of
William Kirstaedter via Tech-talk
Sent: Friday, August 26, 2022
7:20 AM
To:
tech-talk at aps.anl.gov
Subject: Eurotherm modbus support
Hi,
unfortunately the DLS site for the
eurotherm support module is not
available anymore...
(http://controls.diamond.ac.uk/downloads/support/eurotherm2k/)
does anybody still maintain eurotherms?
I kinda converted the 1-22 release to
work with my environment and am now
running into a C / C++ error...
newer asyn versions reference vector.h
which is C++ while my eurotherm support
file is C, which is bad because the C
compiler doesnt know about the C++
vector.h ...
In file included from
/home/epics/EPICS/epics-support/modbus/include/drvModbusAsyn.h:15,
from
../eurothermModbus.c:25:
/home/epics/EPICS/epics-support/asyn/include/asynPortDriver.h:4:10:
fatal error: vector: No such file or
directory
#include <vector>
^~~~~~~~
compilation terminated.
Im not sure how to get around this....
maybe someone with more experience in
the EPICS build system can help me out.
thanks,
William
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature
- References:
- Re: Eurotherm modbus support Wlodek, Jakub via Tech-talk
- Navigate by Date:
- Prev:
Re: SHRLIB_VESION Variable Michael Davidsaver via Tech-talk
- Next:
EPICS on ESP32 Florian Feldbauer via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
<2022>
2023
2024
2025
- Navigate by Thread:
- Prev:
Re: Eurotherm modbus support Wlodek, Jakub via Tech-talk
- Next:
SHRLIB_VESION Variable Abdalla Ahmad via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
<2022>
2023
2024
2025
|