Files
sics/site_ansto/instrument/TEST_SICS/fakePfeiffer/tpg261/Pfeiffer_tpg261.py
Douglas Clowes da2fd6bbbb Make a fake Pfeiffer device for testing the script context driver
This driver controls the needle valve on the Oxford Mercury
2014-04-17 13:16:56 +10:00

77 lines
2.6 KiB
Python

# vim: ft=python ts=8 sts=4 sw=4 expandtab autoindent smartindent nocindent
# Fake Pfeiffer Temperature Controller
#
# Author: Douglas Clowes 2014
#
from PfeifferDevice import PfeifferDevice
import random
import re
import os
import sys
import time
class Pfeiffer_tpg261(PfeifferDevice):
"""Pfeiffer TPG261 temperature controller object - simulates the device"""
def __init__(self):
PfeifferDevice.__init__(self)
print Pfeiffer_tpg261.__name__, "ctor"
self.RANDOM = 0.0
self.IDN = "Simulated Pfeiffer TPG261"
self.reset_powerup()
self.pressure = 3.14156E-02
def doCommand(self, command, params):
print Pfeiffer_tpg261.__name__, "Command:", command, params
return PfeifferDevice.doCommand(self, command, params)
def doQuery(self, command, params):
print Pfeiffer_tpg261.__name__, "Query:", command, params
return PfeifferDevice.doQuery(self, command, params)
def reset_powerup(self):
print Pfeiffer_tpg261.__name__, "reset_powerup"
self.LAST_ITERATION = 0
def doIteration(self):
delta_time = time.time() - self.LAST_ITERATION
if delta_time < 1:
return
#print "DoIteration:", delta_time
self.LAST_ITERATION = time.time()
def doCommandSET(self, cmd, args):
if len(args) > 0:
print "SET", args, float(args[0])
self.pressure = float(args[0])
print "TODO implement Command: \"SET\" in \"" + cmd + ":" + ":".join(args) + "\""
def doQueryPR1(self, cmd, args):
self.write("0,%11.4E" % self.pressure)
#print "TODO implement Query: \"PR1\" in \"" + cmd + ":" + ":".join(args) + "\""
if __name__ == '__main__':
from PfeifferProtocol import PfeifferProtocol
class TestFactory:
def __init__(self):
print self.__class__.__name__, "ctor"
self.numProtocols = 0
def write(self, data):
print "test write:", data,
def loseConnection(self):
print "test lose connection"
test_factory = TestFactory()
test_device = Pfeiffer_tpg261()
test_protocol = PfeifferProtocol(test_device, "\r\n")
test_protocol.factory = test_factory
test_protocol.transport = test_factory
test_device.protocol = test_protocol
test_device.protocol.connectionMade()
commands = ["PR1", "SET 3.1415926E-03", "PR1"]
for cmd in commands:
print "Command:", cmd
test_device.protocol.dataReceived(cmd)
test_device.protocol.dataReceived("\r\n\5")
test_device.protocol.connectionLost("Dunno")