Thanks! And how to open the image before sending it to the waveform record?
On 4/30/12, Wang Xiaoqiang <[email protected]> wrote:
> The code to write your data string to the waveform record,
>
> from CaChannel import CaChannel
>
> chan = CaChannel('file')
> chan.searchw()
> chan.putw(data)
>
> To load an image from the waveform record,
>
> from CaChannel import CaChannel
> import StringIO
> import Image
>
> chan = CaChannel('file')
> chan.searchw()
> data = chan.getw() # data is a list of int
> sdata = ''.join(chr(x) for x in data) # convert it to string
>
> sfile = StringIO.StringIO(sdata)
> im = Image.open(sfile)
> im.show()
>
> Best
> Xiaoqiang
> ________________________________
>
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Pavel Masloff
> Sent: Monday, April 30, 2012 11:18 AM
> To: Mark Rivers
> Cc: EPICS Tech Talk
> Subject: Re: [Scopes] BMP image record??
>
>
> Thank you guys!
>
> Yeah I am going to try this on Wednesday since we are having holidays
> now. In the meantime I want to emulate my scope+StreamDevice by taking a
> regular image file and putting it into the waveform record, then display
> the waveform in BOY (or save the image to file).
>
> So I have got Python 2.6, PIL, pyepics, numpy.
> How can I copy the image into EPICS waveform?
>
> I have created a soft IOC with the following waveform record:
>
> record(waveform, file) {
> field(DTYP,"Soft Channel")
> field(SCAN, "Passive")
> field(NELM, "600")
> field(FTVL, "UCHAR")
> }
>
> What's next?
>
>
>
> On Mon, Apr 30, 2012 at 3:05 AM, Mark Rivers <[email protected]>
> wrote:
>
>
> I didn't realize the HARDCOPY command would send the data over
> the serial port automatically, I assumed you have to transfer it with
> FTP or something.
>
> In that case you should be able to use the waveform record with
> StreamDevice as Rod suggested. In addition to setting NELM you will
> need to set the environment variable EPICS_CA_MAX_ARRAY_BYTES to a value
> at least as large as the largest image, on both the IOC and client
> machines.
>
>
> Mark
>
> ________________________________
> From: Pavel Masloff [[email protected]]
>
> Sent: Sunday, April 29, 2012 11:18 AM
>
> To: Mark Rivers
> Cc: EPICS Tech Talk
> Subject: Re: [Scopes] BMP image record??
>
>
> Why can't I?
> In Hyperterminal (as well as in Python) you simply send a
> command and receive bytes, which you forward to a binary file. Sth like
> this:
>
> import sys
> import os
> import time
> import serial
>
> # create target file
> print os.getcwd()
> f = open('hardcopy.png', 'wb')
>
> # configure the serial connection
> ser = serial.Serial()
> ser.port = 0
> ser.timeout = 0
> ser.baudrate = 9600
>
> ser.open()
>
> # configure the hardcopy settings
> cmd = ':HARDCOPY:FORMAT PNG;PALETTE NORMAL;PORT RS232;LAYOUT
> PORTRAIT;\
> PREVIEW 0;INKSAVER 0;COMPRESSION 0\n'
> a = ser.write(cmd)
> print "bytes sent: {:d}".format(a)
>
> # start hardcopy
> a = ser.write("HARDCOPY START\n")
> print "bytes sent: {:d}".format(a)
>
> # begin receiving data and writing to file
> total_bytes = 0;
> a = ser.inWaiting()
> while a>0:
> time.sleep(0.5)
> data = ser.read(a)
> total_bytes += a
> f.write(data)
> time.sleep(0.5)
> a = ser.inWaiting()
> sys.stdout.write(".")
>
> # close file and serial port
> sys.stdout.write("\n")
> f.close()
> ser.close()
>
> print "bytes read: {:d}".format(total_bytes)
> print "script completed"
>
>
> Are you sure StreamDevice won't write the input to a waveform
> record?
>
>
>
> On Sun, Apr 29, 2012 at 7:47 PM, Mark Rivers
> <[email protected]<mailto:[email protected]>> wrote:
> I don't think you can get the image into a waveform record from
> the scope with StreamDevice. You would have to write another driver
> that does what you were doing with Hyperterminal and Python. You could
> perhaps use an SNL program for this.
>
> To display an image in BOY you use the Intensity Plot widget.
> The waveform record is 1-D, but you tell the BOY widget the actual X and
> Y dimensions of the array.
>
> Mark
>
>
> ________________________________
>
> From: Pavel Masloff
> [[email protected]<mailto:[email protected]>]
>
> Sent: Sunday, April 29, 2012 9:22 AM
> To: Mark Rivers
> Cc: EPICS Tech Talk
> Subject: Re: [Scopes] BMP image record??
>
> Is there any working example on how to get the image into a
> waveform record using StreamDevice? I haven't used the waveform record
> yet, reading up on this in the db reference manual, not that
> comprehensible :(
>
> Another question is how to read a waveform (image type) in BOY?
>
> Pavel
>
>
> On Sat, Apr 28, 2012 at 5:53 PM, Mark Rivers
> <[email protected]<mailto:[email protected]><mailto:rivers
> @cars.uchicago.edu<mailto:[email protected]>>> wrote:
> If you can get the image into a waveform record, using
> streamDevice for example, then you can display that waveform as in image
> in EDM, CSS BOY, ImageJ or other applications. You need to create a few
> other records that tell the client what the actual image dimensions are.
>
> It may be just as easy to implement reading the actual waveforms
> into waveform records, and display those with Cartesian plot widgets in
> your display manager.
>
> Mark
>
> ________________________________
>
> From:
> [email protected]<mailto:[email protected]><mail
> to:[email protected]<mailto:[email protected]>>
> [[email protected]<mailto:[email protected]><mai
> lto:[email protected]<mailto:[email protected]>>
> ] on behalf of Pavel Masloff
> [[email protected]<mailto:[email protected]><mailto:pavel.ma
> [email protected]<mailto:[email protected]>>]
>
> Sent: Saturday, April 28, 2012 2:17 AM
> To: EPICS Tech Talk
> Subject: [Scopes] BMP image record??
>
> Hello again,
>
>
> As I mentioned earlier we are running a series of experiments
> with our high current switches. I have written simple support ("...with
> a little help from my friend" Dirk Zimoch) for the Tektronix TPS2000
> over RS232 using StreamDevice and ASYN, so now I can remotely arm the
> scopes, set its properties, save waveforms on to the CF card, etc.
> But...
>
> In order to not run back and forth and see if everything went OK
> (which is rather tiresome and time consuming), we need a confirmation
> from the scopes. I don't want to deal with the implementation of the
> waveform records for now, all I have got so far is that I save them on
> the flash card.
> As such a confirmation I see transferring the BMP (or PNG) image
> from the scope (sort of Print screen) on to the operator PC somehow.
>
> There is a special SCPI command "Hardcopy start". Which mimics
> the Print button on the scope's front panel. I have tried to transfer a
> BMP file via Hyperterminal (and Python script) and it worked out well
> (more or less).
> How could this be ported to the EPICS database from the IOC and
> client standpoint, so an operator could see the oscillogram on the
> screen and decide whether the experiment went well, so she will save the
> waveforms and move on to the next experiment?
>
> The image file is maximum ~ 46Kb (20Kb on average).
> Any thoughts?
>
>
> --
> Best regards,
>
>
> Pavel Maslov, MS
> Controls Engineer at Pulsed power Lab
> Efremov Institute for Electro-Physical Apparatus
> St. Petersburg, Russia
>
> Mobile: +7 (951) 672 22 19
> Landline: +7 (812) 461 01 01
>
>
>
> --
> Best regards,
>
>
> Pavel Maslov, MS
> Controls Engineer at Pulsed power Lab
> Efremov Institute for Electro-Physical Apparatus
> St. Petersburg, Russia
>
> Mobile: +7 (951) 672 22 19
> Landline: +7 (812) 461 01 01
>
>
>
> --
> Best regards,
>
>
> Pavel Maslov, MS
> Controls Engineer at Pulsed power Lab
> Efremov Institute for Electro-Physical Apparatus
> St. Petersburg, Russia
>
> Mobile: +7 (951) 672 22 19
> Landline: +7 (812) 461 01 01
>
>
>
>
>
> --
> Best regards,
>
>
> Pavel Maslov, MS
> Controls Engineer at Pulsed power Lab
> Efremov Institute for Electro-Physical Apparatus
> St. Petersburg, Russia
>
> Mobile: +7 (951) 672 22 19
> Landline: +7 (812) 461 01 01
>
>
--
Best regards,
Pavel Maslov, MS
Controls Engineer at Pulsed power Lab
Efremov Institute for Electro-Physical Apparatus
St. Petersburg, Russia
Mobile: +7 (951) 672 22 19
Landline: +7 (812) 461 01 01
- Replies:
- Re: [Scopes] BMP image record?? Matt Newville
- References:
- [Scopes] BMP image record?? Pavel Masloff
- RE: [Scopes] BMP image record?? Mark Rivers
- Re: [Scopes] BMP image record?? Pavel Masloff
- RE: [Scopes] BMP image record?? Mark Rivers
- Re: [Scopes] BMP image record?? Pavel Masloff
- RE: [Scopes] BMP image record?? Mark Rivers
- Re: [Scopes] BMP image record?? Pavel Masloff
- RE: [Scopes] BMP image record?? Wang Xiaoqiang
- Navigate by Date:
- Prev:
Re: [Scopes] BMP image record?? Pavel Masloff
- Next:
9th NOBUGS conference announcement - registration open Tobias.Richter
- 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: [Scopes] BMP image record?? Pavel Masloff
- Next:
Re: [Scopes] BMP image record?? Matt Newville
- 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
|