Skip to content
Snippets Groups Projects
Commit 9c63f4fd authored by Kai Junge's avatar Kai Junge
Browse files

Fixed spelling error for RECEIVE, and added delay as a temporary fix for receiving errors

parent b90afb9e
No related branches found
No related tags found
No related merge requests found
# Frist iteration - only tested on one laptop to some extent
import serial import serial
import serial.tools.list_ports import serial.tools.list_ports
from threading import Thread from threading import Thread
...@@ -17,10 +15,10 @@ class Arduino: ...@@ -17,10 +15,10 @@ class Arduino:
self.portName = portName self.portName = portName
self.baudrate = baudrate self.baudrate = baudrate
self._rawRecievedMessage = None self._rawReceivedMessage = None
self._prevMessage = None self._prevMessage = None
self.recievedMessages = {} self.receivedMessages = {}
self.messageNames = list(self.recievedMessages.keys()) self.messageNames = list(self.receivedMessages.keys())
self.arduino = None self.arduino = None
self.handshakeStatus = False self.handshakeStatus = False
...@@ -28,7 +26,7 @@ class Arduino: ...@@ -28,7 +26,7 @@ class Arduino:
def _serial_readline(self): def _serial_readline(self):
while 1: while 1:
try: try:
self._rawRecievedMessage = self.arduino.readline().decode('utf-8')[:-2] self._rawReceivedMessage = self.arduino.readline().decode('utf-8')[:-2]
except: except:
pass pass
time.sleep(0.001) time.sleep(0.001)
...@@ -45,17 +43,17 @@ class Arduino: ...@@ -45,17 +43,17 @@ class Arduino:
def add_new_message_name(self, msgName): def add_new_message_name(self, msgName):
if msgName in self.recievedMessages: if msgName in self.receivedMessages:
print("!! Message name ", msgName, " already exists so it cannot be added. !!") print("!! Message name ", msgName, " already exists so it cannot be added. !!")
else: else:
self.recievedMessages[msgName] = None self.receivedMessages[msgName] = None
self.messageNames = list(self.recievedMessages.keys()) self.messageNames = list(self.receivedMessages.keys())
def delete_message_name(self, msgName): def delete_message_name(self, msgName):
if msgName in self.recievedMessages: if msgName in self.receivedMessages:
del self.recievedMessages[msgName] del self.receivedMessages[msgName]
self.messageNames = list(self.recievedMessages.keys()) self.messageNames = list(self.receivedMessages.keys())
else: else:
print("!! Message name ", msgName, " does not exist so it cannot be deleted. !!") print("!! Message name ", msgName, " does not exist so it cannot be deleted. !!")
...@@ -114,7 +112,7 @@ class Arduino: ...@@ -114,7 +112,7 @@ class Arduino:
self._serial_write("handshake1\n") self._serial_write("handshake1\n")
time.sleep(0.1) time.sleep(0.1)
if self._rawRecievedMessage == "handshake2": if self._rawReceivedMessage == "handshake2":
self.handshakeStatus = True self.handshakeStatus = True
break break
...@@ -130,13 +128,13 @@ class Arduino: ...@@ -130,13 +128,13 @@ class Arduino:
self._serial_write( msg + "\n") self._serial_write( msg + "\n")
def recieve_message(self): def receive_message(self):
if not self.handshakeStatus: if not self.handshakeStatus:
print("!! Handshake not completed !!") print("!! Handshake not completed !!")
return False return False
else: else:
isMessageValid = True isMessageValid = True
msg = self._rawRecievedMessage msg = self._rawReceivedMessage
# sanity check 1: check if ends of the message are < and > # sanity check 1: check if ends of the message are < and >
try: try:
if msg[0] == "<" and msg[-1] == ">": if msg[0] == "<" and msg[-1] == ">":
...@@ -150,12 +148,13 @@ class Arduino: ...@@ -150,12 +148,13 @@ class Arduino:
else: else:
pass pass
time.sleep(0.000001)
return True return True
def disect_and_save_message(self, msg): def disect_and_save_message(self, msg):
recievedMessageTemp = self.recievedMessages receivedMessageTemp = self.receivedMessages
if msg[-2] != ":": if msg[-2] != ":":
return False return False
...@@ -170,15 +169,19 @@ class Arduino: ...@@ -170,15 +169,19 @@ class Arduino:
if msgName not in self.messageNames: if msgName not in self.messageNames:
return False return False
recievedMessageTemp[msgName] = msgPayload receivedMessageTemp[msgName] = msgPayload
else: else:
return False return False
self.recievedMessages = recievedMessageTemp self.receivedMessages = receivedMessageTemp
return True return True
########
### Key commands
########
class Key(): class Key():
def __init__(self): def __init__(self):
self.keyPressValue = None self.keyPressValue = None
......
...@@ -23,10 +23,10 @@ def main(): ...@@ -23,10 +23,10 @@ def main():
# Your loop or process to do somthing # Your loop or process to do somthing
while 1: while 1:
# Recieve messages from arduino side # Receive messages from arduino side
for arduino in arduinos: for arduino in arduinos:
if arduino.recieve_message(): if arduino.receive_message():
print("For :", arduino.descriptiveDeviceName, " msg: ", arduino.recievedMessages) print("For :", arduino.descriptiveDeviceName, " msg: ", arduino.receivedMessages)
# simple key commands for testing # simple key commands for testing
if key.keyPressValue == "t": if key.keyPressValue == "t":
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment