77 lines
2.6 KiB
Python
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")
|