У меня есть скрипт Python, который записывает короткие сообщения в последовательный порт на моей плате Arduino Uno, используя pySerial.Существует цикл, и в зависимости от некоторых условий в цикле могут происходить множественные записи, что-то вроде этого:
while True:
#Conditions block 1
if <CONDITION1>:
serial.writelines("INIT")
elif <CONDITION2>:
serial.writelines("NEW")
...
#Conditions block 2
if <CONDITION1>:
# Fetch something from the Internet
serial.writelines("CHECK")
elif <CONDITION2>:
# Fetch something from the Internet
serial.writelines("STOP")
...
Но когда моя плата Arduino получает это, она получает первое сообщение как INIT, но второеодин читается как INITSTOP или INITCHECK, а третий соединяется с предыдущими сообщениями.Моя программа arduino проверяет конкретное сообщение следующим образом:
if(msg.equals("CHECK")) {
// Do something
}
else if(msg.equals("INIT")) {
// Do Something else
}
Может кто-нибудь подсказать мне об этом?Кстати, я не думаю, что проблема в Arduino, так как он отлично работает, когда я тестирую его с помощью Serial Monitor, доступного в IDE.
Я пробовал добавлять спящие до 10 секунд перед каждой записью, но это не сработало.