EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: 答复: Question about PV name by using pcaspy
From: lzf neu <[email protected]>
To: "Kasemir, Kay" <[email protected]>, "[email protected]" <[email protected]>
Date: Thu, 30 Mar 2017 15:45:42 +0000
Thank you!

I have a new question to consult you:

I want to get the return value of caget('some PV name') by writing Pcaspy script. I have no idear what command to use in the script.
Any suggestions will be appreciated !
发件人: Kasemir, Kay <[email protected]>
发送时间: 2017年3月29日 12:46:30
收件人: lzf neu
抄送: [email protected]
主题: Re: Question about PV name by using pcaspy
 

On Mar 29, 2017, at 3:37 AM, lzf neu <[email protected]> wrote:

Hi,

I want to fulfill a goal that when running camonitor command, PV name TEST:PING in the terminal window print "Disconnect!" or "OK!" alternatively.

However, I failed, "self.setParam('PING',a)"  seems only run once in the code and in terminal window only print one result.

I have posted the code in the following lines.

Could you give me some suggestions and any help will be appreciated.


You’re missing a call to
   self.updatePVs()

-Kay



Zhefu

#===============================

#!/usr/bin/env python
import os
import threading
import time

from pcaspy import Driver, SimpleServer
prefix = 'TEST:'
pvdb = {
    'PING' : {
         'type':'enum',
         'enums':['Disconnect!','OK!']
    },
}

class myDriver(Driver):
    def __init__(self):
        super(myDriver, self).__init__()
        tid=threading.Thread(target=self.determine)
        tid.setDaemon(True)
        tid.start()

    def determine(self):
        a=os.system("ping -c 1 -w 1 127.0.0.1")
        if (a==0):
          while True:
             self.setParam('PING',a)
             a=not a
             time.sleep(5)

if __name__ == '__main__':
    server = SimpleServer()
    server.createPV(prefix, pvdb)
    driver = myDriver()

    # process CA transactions
    while True:
        server.process(0.1)


Replies:
Re: Question about PV name by using pcaspy Xiaoqiang Wang
References:
Question about PV name by using pcaspy lzf neu
Re: Question about PV name by using pcaspy Kasemir, Kay

Navigate by Date:
Prev: Re: memory leak after unloading of ca.lib Xiaoqiang Wang
Next: PCAS (using pcaspy) in docker ""server isnt attached to a network" Sparger, John E.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Question about PV name by using pcaspy Kasemir, Kay
Next: Re: Question about PV name by using pcaspy Xiaoqiang Wang
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
ANJ, 21 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·