Nick, do you mean that I can forget about changing the <app>Include.dbd file, when I can just edit the Makefile?
On Mon, Dec 12, 2011 at 10:32 PM, Nicholas P. DiMonte <[email protected]> wrote:
Pavel,
This will become an issue when you try to boot your IOC, so yes
you need it, unless you are using <app>Include.dbd, they you
can add it in that file. I prefer the Makefile myself.
Adding extra lines of code is not a problem, but the order can be,
as in the case with this support. The libraries need to be
installed as:
which I think Eric
mention earlier.
Nick
On 12/12/2011 1:10 PM, Pavel Masloff wrote:
Hello Nicholas!!
Thanks! I haven't found this line in your installation
description, but there is a similar one:
include "devTDS3000.dbd"
Are you sure I have to add this (tronix_DBD +=
devTDS3000.dbd) to
apps/tronix/tronixApp/src/Makefile ??
BTW is there a difference of where to put extra lines of code?
Because I have seen sth like: "add rules after this line".
Cheers,
Pavel
On Mon, Dec 12, 2011 at 9:57 PM, Nicholas
P. DiMonte <[email protected]>
wrote:
Pavel,
Sorry for the delay, I see the following missing in your
Makefile which should be included after base.dbd:
tronix_DBD += devTDS3000.dbd
Nick
On 12/12/2011 9:51 AM, Pavel Masloff wrote:
Hello, Nick!
Dear colleagues!
Could you please explain how to use your TDS3000
support for my Tektronix 3054C (i have only the
Ethernet interface)?
I am using the RHEL x86 operating system. I have
successfully installed epics base (R3-14-12-1),
extensions (1.7), sequencer (seq-2.1.3), asyn driver
support (asyn4-18), tektronix tds3000 device support
(tds3000-2.4) according to the manual. And they all
seem to be working fine.
I think I have some problems with creating an
application. I can't understand how to perform the
following:
Using the software
In order to use the support in an application do the
following:
Add the following to
<top>/configure/RELEASE
TDS3000 = <full path to installation
directory>
ASYN = <full path to installation
directory>
Add the following to the application Makefile.
<app>_LIBS_vxWorks += asyn
<app>_LIBS_vxWorks += devTDS3000
Add the following to the <app>Include.dbd.
include "devTDS3000.dbd"
Add the following to the Db Makefile.
DB_INSTALLS += $(TDS3000)/db/TDS3000.vdb
My configuration is as follows:
EPICS_HOST_ARCH=linux-x86
EPICS_BASE=/root/applications/epics/R3-14-12-1/base
PATH=$PATH:$EPICS_BASE/bin/$EPICS_HOST_ARCH
SNCSEQ=/root/applications/epics/R3-14-12-1/modules/seq/seq-2.1.3
ASYN=/root/applications/epics/R3-14-12-1/modules/asyn/asyn4-18
TDS3000=/root/applications/epics/R3-14-12-1/modules/instrument/tds3000/tds3000-2.4
apps=$EPICS_BASE/../apps
extensions=$EPICS_BASE/../extensions
1. I have created an application in the apps directory
by invoking:
mkdir tronix
cd tronix
$EPICS_BASE/bin/$EPICS_HOST_ARCH/makeBaseApp.pl -t ioc
tronix
$EPICS_BASE/bin/$EPICS_HOST_ARCH/makeBaseApp.pl -i -t
ioc tronix
2. Then I edited the RELEASE file in CONFIGURE/RELEASE
- added 2 lines (specified the TDS3000 and ASYN
paths).
3. After that I built Makefile in apps/tronix/
3. Then I opened the Makefile in the tronixApp folder
and added:
tronix_LIBS_vxWorks += asyn
tronix_LIBS_vxWorks += devTDS3000
4. Added include "devTDS3000.dbd" to
apps/tronix/tronixApp/src/O.Common/tronixInclude.dbd.
5. Added "DB_INSTALLS += $(TDS3000)/db/TDS3000.vdb" to
the Db Makefile (apps/tronix/tronixApp/Db/Makefile).
6. Invoked make under "apps/tronix/tronixApp/"
Eventually got the following error:
/usr/bin/g++ -c
-D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS
-D_XOPEN_SOURCE=500 -D_X86_ -DUNIX
-D_BSD_SOURCE -Dlinux -D_REENTRANT -O3
-Wall -m32 -g -MMD -I. -I../O.Common -I.
-I.. -I../../../include/os/Linux -I../../../include
-I/root/applications/epics/R3-14-12-1/modules/seq/seq-2.1.3/include
-I/root/applications/epics/R3-14-12-1/base/include/os/Linux
-I/root/applications/epics/R3-14-12-1/base/include
-I/root/applications/epics/R3-14-12-1/modules/asyn/asyn4-18/include
tronix_registerRecordDeviceDriver.cpp
/usr/bin/g++ -o tronix
-L/root/applications/epics/R3-14-12-1/base/lib/linux-x86
-Wl,-rpath,/root/applications/epics/R3-14-12-1/base/lib/linux-x86
-m32
tronix_registerRecordDeviceDriver.o tronixMain.o
-lrecIoc -lsoftDevIoc -lmiscIoc -lrsrvIoc
-ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc
-ldbStaticIoc -lca -lCom
tronix_registerRecordDeviceDriver.o: In function
`__static_initialization_and_destruction_0':
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:134:
undefined reference to `pvar_rset_asynRSET'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:134:
undefined reference to
`pvar_func_asynRecordSizeOffset'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynAiInt32'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynAiInt32Average'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynAiFloat64'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynAiFloat64Average'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_devAiTDS3000Gpib'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynAoInt32'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynAoFloat64'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_devAoTDS3000Gpib'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynBiInt32'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynBiUInt32Digital'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_devBiTDS3000Gpib'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynBoInt32'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynBoUInt32Digital'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_devBoTDS3000Gpib'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynLiInt32'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynLiUInt32Digital'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynLoInt32'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynLoUInt32Digital'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynMbbiInt32'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynMbbiUInt32Digital'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_devMbbiTDS3000Gpib'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynMbbiDirectUInt32Digital'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynMbboInt32'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynMbboUInt32Digital'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_devMbboTDS3000Gpib'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynMbboDirectUInt32Digital'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynSiOctetCmdResponse'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynSiOctetWriteRead'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynSiOctetRead'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_devSiTDS3000Gpib'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynSoOctetWrite'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_devSoTDS3000Gpib'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynWfOctetCmdResponse'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynWfOctetWriteRead'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynWfOctetRead'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynWfOctetWrite'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynInt8ArrayWfIn'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynInt8ArrayWfOut'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynInt16ArrayWfIn'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynInt16ArrayWfOut'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynInt32ArrayWfIn'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynInt32ArrayWfOut'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynFloat32ArrayWfIn'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynFloat32ArrayWfOut'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynFloat64ArrayWfIn'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to
`pvar_dset_asynFloat64ArrayWfOut'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_devWfTDS3000Gpib'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:405:
undefined reference to `pvar_dset_asynRecordDevice'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:415:
undefined reference to `pvar_drvet_drvAsyn'
tronix_registerRecordDeviceDriver.o: In function
`tronix_registerRecordDeviceDriver':
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:453:
undefined reference to
`pvar_func_vxi11RegisterCommands'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:454:
undefined reference to `pvar_func_asynRegister'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:455:
undefined reference to
`pvar_func_asynInterposeFlushRegister'
/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86/tronix_registerRecordDeviceDriver.cpp:456:
undefined reference to
`pvar_func_asynInterposeEosRegister'
collect2: ld returned 1 exit status
make[2]: *** [tronix] Error 1
make[2]: Leaving directory
`/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src/O.linux-x86'
make[1]: *** [install.linux-x86] Error 2
make[1]: Leaving directory
`/root/applications/epics/R3-14-12-1/apps/tronix/tronixApp/src'
make: *** [src.install] Error 2
Thanks.
Pavel
On Tue, Dec 6, 2011 at 6:41
PM, Eric Norum <[email protected]>
wrote:
Nick DiMonte at the
APS has written a nice support package for
Tektronix 3000/5000 oscilloscopes. The same
driver works with Network, GPIB, or RS-232
interfaces.
I believe that the screens are still MEDM-only.
http://www.aps.anl.gov/epics/modules/instrument/tds3000/index.html
On Dec 5, 2011, at 11:33 PM, Dirk Zimoch wrote:
> Pavel,
>
> I don't know the TDS 5054, but most
oscilloscopes come with GPIB, RS232, or VXI11
(="GPIB over TCP") network interface and are
controlled with text commands. In that case the
combination asynDriver/StreamDevice will do the
job.
>
> http://www.aps.anl.gov/epics/modules/soft/asyn/
> http://epics.web.psi.ch/software/streamdevice/
>
> If you are lucky, someone has already written
a StreamDevice protocol file for it. But if not,
it is not difficult.
>
> Here at PSI, we also run EPICS directly on
some oscilloscopes. Many oscilloscopes nowadays
use Windows as the operating system and come with
an API to get direct access to the oscilloscope
functions. This allows to write an EPICS device
driver. Running the IOC directly on the
oscilloscope saves some network traffic. With an
external IOC, the data is first transferred from
the oscilloscope to the IOC (e.g. via VXI11) and
then from the IOC to the client via Channel
Access. With an IOC integrated into the
oscilloscope, you only have Channel Access. But
writing such a driver is somewhat sophisticated.
>
> Dirk
>
--
Eric Norum
[email protected]
--
Sincerely,
Pavel Maslov, MSc
R&D Institute for Electro-Physical Apparatus
Mobile: +7 (951) 672 22 19
Phone: +7 (812) 461 01 01
--
Sincerely,
Pavel Maslov, MSc
R&D Institute for Electro-Physical Apparatus
Mobile: +7 (951) 672 22 19
Phone: +7 (812) 461 01 01
-- Sincerely,
Pavel Maslov, MSc R&D Institute for Electro-Physical Apparatus
Mobile: +7 (951) 672 22 19 Phone: +7 (812) 461 01 01
- References:
- [help] EPICS build no good Pavel Masloff
- Re: [help] EPICS build no good Andrew Johnson
- Re: [help] EPICS build no good Pavel Masloff
- Re: [help] EPICS build no good Andrew Johnson
- Re: [help] EPICS build no good Pavel Masloff
- Re: [help] EPICS build no good Dirk Zimoch
- Tektronix 3000/5000 oscilloscopes Eric Norum
- Re: Tektronix 3000/5000 oscilloscopes Pavel Masloff
- Re: Tektronix 3000/5000 oscilloscopes Nicholas P. DiMonte
- Re: Tektronix 3000/5000 oscilloscopes Pavel Masloff
- Navigate by Date:
- Prev:
Re: Tektronix 3000/5000 oscilloscopes Pavel Masloff
- Next:
EPICS Base 3.14.12.2 Released Andrew Johnson
- 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
- Navigate by Thread:
- Prev:
Re: Tektronix 3000/5000 oscilloscopes Pavel Masloff
- Next:
Re: Tektronix 3000/5000 oscilloscopes Pavel Masloff
- 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
|