On Tue, Sep 24, 2019 at 09:16:15PM +0100, James Courtier-Dutton wrote:

[...]
Would you be able to post the python script so we can see how you are
setting up the tty and how you read/write bytes to it?
[...]

Sure, little script at the bottom. Looking through this, I have actually 
managed to solve the problem. Thanks.

I was planning to change the communication from timed to the Arduino saying "READY" and 
the Python script waiting for "READY" to proceed, but somewhere looking at this, a 
sleep() after opening the port had disappeared which meant the Python script sent its command too 
early and they both ended up waiting for each other.

I think the tail command meant the port was already open and the Arduino ready 
for a command, hance the Python/munin script was flying.

Thanks

import sys

def output():
   received_data = "begin"
   port = serial.Serial('/dev/ttyACM0', 115200, rtscts=0, dsrdtr=True, 
timeout=5)

   port.write('munin;')
   time.sleep(1)
   received_data = port.readline()

   while received_data != "end":
       if re.match("arduino_[a-z]+_temp", received_data):
           print(received_data)
       received_data = port.readline().rstrip('\r\n')

   port.close()


def config():
   print("graph_title MVHR temperature")
   print("arduino_extract_temperature.label Extract temp")
   #print("arduino_extract_humidity.label Extract humidity")
   print("arduino_feed_temperature.label Feed temp")
   #print("arduino_feed_humidity.label Feed humidity")
   print("arduino_supply_temperature.label Supply temp")
   #print("arduino_supply_humidity.label Supply humidity")
   print("arduino_loft_temperature.label Loft temp")
   #print("arduino_loft_humidity.label Loft humidity")

try:
   rc = sys.argv[1]
except:
   rc = ""

if rc == "config":
   config()
else:
   output()



--
GLLUG mailing list
GLLUG@mailman.lug.org.uk
https://mailman.lug.org.uk/mailman/listinfo/gllug

Reply via email to