Files
sfbd/interface/doocs.py
2024-12-03 17:33:04 +01:00

34 lines
1.0 KiB
Python

import subprocess
def doocsread(mystr):
""" mystr input can be a string or a list """
if isinstance(mystr, list): # it's a list
readCmd = ' '.join(mystr)
else:
readCmd = mystr
cmd = ['doocsget', '-c', readCmd]
MyOut = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
stdout, stderr = MyOut.communicate()
if b'result->error()' in stdout.split():
print('ERROR: reading error')
print(mystr)
return
result = [element.decode('utf-8') for element in stdout.split()]
if len(result) == 1: # one element only
try:
return float(result[0])
except Exception as e:
return result[0]
else:
try:
return [float(x) for x in result]
except Exception as e:
return result
def doocswrite(mystr, target):
cmd = ['doocsput', '-c', mystr, '-d', str(target)]
MyOut = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
stdout, stderr = MyOut.communicate()