Addpython motor simulation for taipan
This commit is contained in:
52
site_ansto/instrument/TEST_SICS/fakeGalil/counterclient.py
Normal file
52
site_ansto/instrument/TEST_SICS/fakeGalil/counterclient.py
Normal file
@@ -0,0 +1,52 @@
|
||||
#!/usr//bin/env python
|
||||
# vim: ts=8 sts=4 sw=4 expandtab
|
||||
# Author: Douglas Clowes (dcl@ansto.gov.au) 2012-06-29
|
||||
from twisted.internet.protocol import Protocol
|
||||
from twisted.internet.protocol import ReconnectingClientFactory
|
||||
|
||||
myCounters = {}
|
||||
|
||||
class Counter(Protocol):
|
||||
def dataReceived(self, data):
|
||||
print "Data:", data
|
||||
|
||||
def connectionMade(self):
|
||||
print "connectionMade", self.transport.getHost(), self.transport.getPeer()
|
||||
|
||||
def connectionLost(self, reason):
|
||||
print "connectionLost"
|
||||
|
||||
def sendMessage(self, m):
|
||||
self.transport.write(m)
|
||||
|
||||
class CounterClientFactory(ReconnectingClientFactory):
|
||||
def __init__(self):
|
||||
self.device = None
|
||||
|
||||
def startedConnecting(self, connector):
|
||||
print 'Started to connect.'
|
||||
|
||||
def buildProtocol(self, addr):
|
||||
global myCounters
|
||||
print 'Connected to:', addr
|
||||
self.resetDelay()
|
||||
p = Counter()
|
||||
myCounters[addr.port] = p
|
||||
self.device = p
|
||||
print "My Counters", myCounters
|
||||
return p
|
||||
|
||||
def clientConnectionLost(self, connector, reason):
|
||||
global myCounters
|
||||
print 'Lost connection', connector.getDestination().port,'Reason:', reason
|
||||
del myCounters[connector.getDestination().port]
|
||||
self.device = None
|
||||
ReconnectingClientFactory.clientConnectionLost(self, connector, reason)
|
||||
|
||||
def clientConnectionFailed(self, connector, reason):
|
||||
print 'Connection failed. Reason:', reason
|
||||
ReconnectingClientFactory.clientConnectionFailed(self, connector,reason)
|
||||
|
||||
def setCountRate(self, rate):
|
||||
if self.device:
|
||||
self.device.sendMessage("SET SOURCE=%d\r\n" % rate)
|
||||
Reference in New Issue
Block a user