Advertisement
Elyspio

baton

Jun 27th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.39 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. """
  3.  
  4. Pour le controlleur (rasp) à destination de roboto
  5.  
  6.  
  7. """
  8.  
  9. from tkinter import *
  10.  
  11. import serial
  12. import socket
  13. import colorama
  14.  
  15. ROBOTO_HOST = 'elyspio-rama-vi' #Roboto (Lego)
  16. SERVER_HOST  = 'pc-omen' #Gui
  17.  
  18.  
  19. class Gui:
  20.  
  21.     class Connection:
  22.  
  23.         def __init__(self, host, port):
  24.             colorama.init()
  25.             self.IP = self.findIp(host)
  26.             #self.IP = '127.0.0.1'
  27.             self.PORT = port
  28.             self.BUFFER = 20
  29.             self._serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  30.             self._serv.connect((self.IP, self.PORT))
  31.             print(colorama.Fore.GREEN + "Connection Done")
  32.  
  33.         def findIp(self, name):
  34.             return socket.gethostbyname(name)
  35.  
  36.  
  37.         def send(self, str):
  38.             self._serv.send(str)
  39.             return (self._serv.recv(self.BUFFER)).decode('utf-8')
  40.  
  41.     def __init__(self):
  42.         #self._ser = serial.Serial('COM3', baudrate=115200)
  43.         self._ser = serial.Serial(port='/dev/ttyACM0', baudrate='9600', timeout=1)
  44.         self._conRoboto = self.Connection(ROBOTO_HOST, 4242)
  45.         self._conServer = self.Connection(SERVER_HOST, 4243)
  46.  
  47.  
  48.  
  49.  
  50.     def parseValues(self):
  51.         strr = self._ser.readline()
  52.         #print(strr)
  53.         x, y = -1, -1
  54.         try:
  55.             strr = strr.decode('utf-8')
  56.             #print(strr)
  57.             x,y = strr.split(" ")
  58.         except:
  59.             pass
  60.         dataSended = "Bien Reçu Manette"
  61.         #print("Envoi de " + dataSended)
  62.         self._ser.write(dataSended.encode("utf-8"))
  63.  
  64.         return x, y
  65.  
  66.     def update(self):
  67.         x, y = self.parseValues()
  68.         if((x, y) != (-1, -1)):
  69.  
  70.             self.sendData(x, y)
  71.         # self._fen.
  72.  
  73.     """
  74.    On envoie a roboto les vitesse a roboto
  75.    Il nous renvoie son niveau de batterie, sa vitesse effective G/D, si il avance ou non
  76.    """
  77.     def sendData(self, x, y):
  78.         if((x, y) != (-1, -1)):
  79.             bat, leftS, rightS, isForward = self._conRoboto.send(x, y)
  80.             tab = {bat, leftS, rightS, isForward}
  81.             self.sendToServ(tab)
  82.         #print("Message reçu : " + self._con.send(x, y))
  83.  
  84.     def sendToServ(self, tab):
  85.         strr = ""
  86.         for elem in tab:
  87.             strr += str(elem) + " "
  88.         return self._conServer.send(strr)
  89.  
  90.  
  91. f = Gui()
  92. print("Launching")
  93. while True:
  94.     f.update()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement