51 lines
2.2 KiB
Python
51 lines
2.2 KiB
Python
import re
|
|
import datetime
|
|
import time
|
|
|
|
def read_one_thermo(filename):
|
|
try:
|
|
NO_OF_DECIMALS = 3
|
|
for x in range(0, 3):
|
|
textfile = open(filename, 'r')
|
|
filetext = textfile.read()
|
|
textfile.close()
|
|
if 'YES' in filetext:
|
|
matches = re.findall("t=(\-?)(\d+)", filetext)
|
|
sign = -1 if matches[0][0] == '-' else 1
|
|
whole_reading = matches[0][1]
|
|
first_part = matches[0][1][0:-NO_OF_DECIMALS]
|
|
second_part = matches[0][1][-NO_OF_DECIMALS:]
|
|
first_part = '0' if first_part == '' else first_part
|
|
# with open("/mnt/zoblakdata/w1_sensor_log_sent","a") as log:
|
|
# log.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ' | filename: ' + filename + ' | reading: ' + str(x+1) + '\n' )
|
|
# log.write(filetext)
|
|
# log.write("--------\n")
|
|
result = (int(first_part) + (int(second_part) / (10.0 ** NO_OF_DECIMALS) )) * sign
|
|
if result >= -30.0 and result <= 60.0:
|
|
return result
|
|
# if x == 2:
|
|
# with open("/mnt/zoblakdata/w1_sensor_log_probable_exception","a") as log2:
|
|
# log2.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ' | filename: ' + filename + ' | reading: ' + str(x+1) + '\n' )
|
|
# log2.write(filetext)
|
|
# log2.write("--------\n")
|
|
time.sleep(5)
|
|
print 'error'
|
|
print e
|
|
return -101.0
|
|
except Exception as e:
|
|
# with open("/mnt/zoblakdata/w1_sensor_log_exception","a") as log3:
|
|
# log3.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ' - exception!\n')
|
|
# log3.write("--------\n")
|
|
print 'errror'
|
|
print e
|
|
return -100.0
|
|
|
|
def read_many_thermo(filenames):
|
|
result = []
|
|
for filename in list(filenames):
|
|
if filename is None:
|
|
continue
|
|
result.append(read_one_thermo(filename))
|
|
return result
|
|
|