On Tue, Dec 13, 2011 at 10:12 PM, Nicholas P. DiMonte
<[email protected]> wrote:
Pavel,
Just wondering how its going? Did you boot the IOC yet?
Nick
On 12/12/2011 1:41 PM, Pavel Masloff wrote:
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
--
Sincerely,
Pavel Maslov, MSc
R&D Institute for Electro-Physical Apparatus
Mobile: +7 (951) 672 22 19
Phone: +7 (812) 461 01 01