On 25/09/17 07:26, Cameron Simpson wrote:
Thank you Cameron and Peter for your replies.

I don't understand why this works from the pyqt IDE but not when run from the console. I suppose the IDE is adding the correct encoding.

I'm guessing the IDE is python 2 and not doing any encoding at all. In python 2 str _is_ effectively bytes and if you stay in ASCII you just get away with it.


No, the IDE is Eric and as far as I know it's python3 only. Just for interest I amended my code to use what you provided and tried it under IDLE. There aren't any errors but but my Arduino is not responding. However, if I enter python3 mycode.py then it works perfectly. I'm sure there's an explanation for this. I have thoney, another python IDE, on a raspberrypi I'll try that later and see what the result is. Anyway, it works from Eric and from the command prompt.

So you need to know what your serial device expects. ASCII only?

As it turns out, it doesn't matter if the data is ASCII or UTF-8.

  mytext = "Fred"
  mytext = mytext + "\n"
  mybytes = mytext.encode('utf-8')
  ser.write(mybytes)

Notice that I've appended the newline _before_ converting to bytes,

Thank you for the code and the explanation, it's greatly appreciated.

It's all a bit of an anticlimax really. Now that it works I don't know what to do with it. Like so many of my projects.

--
Regards,
Phil
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to