You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
4.3 KiB
122 lines
4.3 KiB
Index: artisan.py
|
|
===================================================================
|
|
--- artisan.py (revision 650)
|
|
+++ artisan.py (working copy)
|
|
@@ -95,7 +95,10 @@
|
|
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
|
|
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
|
|
import matplotlib as mpl
|
|
-
|
|
+
|
|
+import subprocess
|
|
+import re
|
|
+
|
|
platf = unicode(platform.system())
|
|
|
|
|
|
@@ -283,14 +286,15 @@
|
|
"EXTECH 421509",
|
|
"Omega HH802U",
|
|
"Omega HH309",
|
|
- "NONE",
|
|
+ "NONE",
|
|
"+ArduinoTC4",
|
|
"TE VA18B",
|
|
"+309_34",
|
|
"+FUJI DUTY %",
|
|
"Omega HHM28[6]",
|
|
"+204_34",
|
|
- "+Virtual"
|
|
+ "+Virtual",
|
|
+ "Ooku"
|
|
]
|
|
|
|
#extra devices
|
|
@@ -3523,7 +3527,8 @@
|
|
|
|
#apply sampling interval here
|
|
libtime.sleep(aw.qmc.delay/1000.)
|
|
-
|
|
+
|
|
+
|
|
#if using a meter (thermocouple device)
|
|
if aw.qmc.device != 18:
|
|
#read time, ET (t1) and BT (t2) TEMPERATURE
|
|
@@ -10971,7 +10976,8 @@
|
|
self.fujidutycycle, #22
|
|
self.HHM28, #23
|
|
self.K204_34, #24
|
|
- self.virtual #25
|
|
+ self.virtual, #25
|
|
+ self.OOKU #26
|
|
]
|
|
|
|
#temporary storage to pass values. Holds extra T3 and T4 values for center 309
|
|
@@ -11173,6 +11179,12 @@
|
|
|
|
return tx,t2,t1
|
|
|
|
+ def OOKU(self):
|
|
+ t2,t1 = self.OOKUtemperature()
|
|
+ tx = aw.qmc.timeclock.elapsed()/1000.
|
|
+ return tx,t2,t1
|
|
+
|
|
+
|
|
#multimeter
|
|
def HHM28(self):
|
|
val,symbols= self.HHM28multimeter() #NOTE: val and symbols are type strings
|
|
@@ -11779,6 +11791,31 @@
|
|
else:
|
|
return -1
|
|
|
|
+
|
|
+ def OOKUtemperature(self):
|
|
+ scriptpath = os.path.realpath(os.path.dirname(sys.argv[0]))
|
|
+ p = subprocess.Popen(["%s/read-temp"%scriptpath, "temp"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, close_fds=True)
|
|
+ p.wait()
|
|
+ sout = p.stdout.read()
|
|
+
|
|
+ correct_readout = False
|
|
+ if "CORRECT READOUT" in sout:
|
|
+ correct_readout = True
|
|
+
|
|
+
|
|
+ if not correct_readout:
|
|
+ raise ValueError("Could not read temperature from external program, sorry.")
|
|
+ else:
|
|
+ regex = re.compile("(?m)^(?P<num>\d): (?P<dec>\d{0,4})\.(?P<mod>\d{2}).*$", re.M)
|
|
+ res = regex.findall(sout)
|
|
+
|
|
+ if len(res)>=2:
|
|
+ t1 = float( "%s.%s"%(res[0][1], res[1][2]) )
|
|
+ t2 = float( "%s.%s"%(res[1][1], res[1][2]) )
|
|
+
|
|
+ return t1,t2
|
|
+
|
|
+
|
|
def TEVA18Btemperature(self):
|
|
try:
|
|
|
|
@@ -13657,10 +13694,20 @@
|
|
aw.ser.timeout=1
|
|
message = "" #empty message especial device
|
|
|
|
+ elif meter == "Ooku":
|
|
+ aw.qmc.device = 26
|
|
+ message = QApplication.translate("Message Area","Device set to %1", None, QApplication.UnicodeUTF8).arg(meter)
|
|
+ st = ""
|
|
+ if aw.qmc.delay != 1000:
|
|
+ aw.qmc.delay = 1000
|
|
+ st += ". Sampling rate changed to 1 second"
|
|
+ message = QApplication.translate("Message Area","Device set to %1%2", None, QApplication.UnicodeUTF8).arg(meter).arg(st)
|
|
+
|
|
+
|
|
#set of different serial settings modes options
|
|
ssettings = [[9600,8,'O',1,1],[19200,8,'E',1,1],[2400,7,'E',1,1],[9600,8,'N',1,1],[19200,8,'N',1,1,],[2400,8,'N',1,1],[9600,8,'E',1,1]]
|
|
#map device index to a setting mode
|
|
- devssettings = [0,1,2,3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,0,4,5,3,6,5,3,3] #0-25
|
|
+ devssettings = [0,1,2,3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,0,4,5,3,6,5,3,3,3] #0-26
|
|
|
|
self.savedevicetable()
|
|
#init serial settings of extra devices
|