@@ -65,15 +65,6 @@ def __init__(self):
6565
6666 self .length_i2c_received = I2C_NUMBER_DATA_RECEIVED #nombre de donnée à récupéré de l'arduino (voltage lipo, voltage nimh)
6767
68- # initialisation des donnnée de la voiture
69- self .vitesse_d = 0 #vitesse demandé par le programme
70- self .direction = 0 #direction des roue
71-
72- #initialisation des variable reçue de l'arduino pour débugage
73- self .voltage_lipo = 0
74- self .voltage_nimh = 0
75- self .vitesse_r = 0 #vitesse réel de la voiture
76-
7768 # initialisation des commande de temps
7869 self .initial_time = time .time ()
7970 self .last_cmd_time = time .time ()
@@ -192,68 +183,6 @@ def bouton_entre(self,num=None):
192183 self .start_process (self .Screen )
193184
194185
195-
196- #---------------------------------------------------------------------------------------------------
197- # fonction pour la communication
198- #---------------------------------------------------------------------------------------------------
199- def i2c_loop (self ):
200- """Envoie vitesse/direction régulièrement au microcontroleur. (toute les frames actuellement)"""
201- self .log .info ("Thread I2C loop démarré" )
202- while True :
203- try :
204- data = struct .pack ('<ff' , float (round (self .programme [self .last_programme_control ].vitesse_d )), float (round (self .programme [self .last_programme_control ].direction_d )))
205- self .bus .write_i2c_block_data (SLAVE_ADDRESS , 0 , list (data ))
206- except Exception as e :
207- self .log .error ("Erreur I2C write: %s" , e , exc_info = True )
208- time .sleep (I2C_SLEEP_RECEIVED )
209-
210- def i2c_received (self ):
211- """récupére les informations de l'arduino"""
212- self .log .info ("Thread I2C receive démarré" )
213- length = self .length_i2c_received * 4
214- while True :
215- data = self .bus .read_i2c_block_data (SLAVE_ADDRESS , 0 , length )
216- # Convert the byte data to a float
217- if len (data ) >= length :
218- float_values = struct .unpack ('f' * self .length_i2c_received , bytes (data [:length ]))
219- list_valeur = list (float_values )
220-
221- # on enregistre les valeur
222- self .voltage_lipo = list_valeur [0 ]
223- self .voltage_nimh = list_valeur [1 ]
224- self .vitesse_r = list_valeur [2 ]
225- else :
226- self .log .warning ("I2C: taille inattendue (%d au lieu de %d)" , len (data ), length )
227- time .sleep (I2C_SLEEP_ERROR_LOOP )
228-
229- def envoie_donnee (self , socket ):
230- """ on regarde si il s'agit de lappelle pour le control interne
231- (is_private) ou si on veux prendre le controle depuis le pc."""
232- import base64
233- from io import BytesIO
234- while True :
235- info = socket .recv_json ()
236- if info ["get" ] == "info" :
237- socket .send_json ({
238- "voltage_lipo" : self .voltage_lipo ,
239- "voltage_nimh" : self .voltage_nimh ,
240- "vitesse_reelle" : self .vitesse_r ,
241- "vitesse_demande" : self .vitesse_d ,
242- "direction" : self .direction ,
243- "timestamp" : time .time () - self .initial_time
244- })
245- elif info ["cmd" ] == "menu" :
246- if info ["menu" ] in self .programme .key :
247- self .start_process (self ,info ["menu" ]) #lancement du menu reçue
248- socket .send_json ({"status" :"ok" })
249- elif info ["get" ] == "menu" :
250- socket .send_json (self .programme )
251- else :
252- socket .send_json ({"Error" : "not understand" })
253-
254-
255-
256-
257186 #---------------------------------------------------------------------------------------------------
258187 # Processus
259188 #---------------------------------------------------------------------------------------------------
@@ -295,24 +224,14 @@ def start_process(self,num_programme):
295224 self .programme [num_programme ].start ()
296225
297226
298-
299-
300-
301-
302227 #---------------------------------------------------------------------------------------------------
303228 # car function
304229 #---------------------------------------------------------------------------------------------------
305230
306-
307-
308231 def main (self ):
309232 self .bp_next .when_pressed = self .bouton_next
310233 self .bp_entre .when_pressed = self .bouton_entre
311234
312- #threading.Thread(target=self.i2c_loop, daemon=True).start()
313- #threading.Thread(target=self.i2c_received, daemon=True).start()
314- #threading.Thread(target=self.envoie_donnee, args=(telemetry,), daemon=True).start()
315-
316235 self .log .info ("Serveur démarré, entrée dans la boucle principale" )
317236
318237 while True :
0 commit comments