-
-
Erfahrener Benutzer
Robotik Einstein
eine Frage:
was zum geier machst du in dieser mörderischen timer-methode O_o (ich möchte es wirklich unbedingt wissen!!! weil cih es nicht verstehe und dort aber dein problem sehe)
wie kommst du auf auslesen, du verwendest nirgendwo ein read, nur write open und close, dein programm passt nicht ganz zu deiner frage!
oder kannst du eventuell noch code zu "mySensor.GetGVector () ; " präsentieren ?
generell würde ich dir 3 dinge empfehlen:
1. verwende doch bitte "ereignisse" (interrupts) ... jeder knopfdruck kann ein ereignis und damit verbunden eine methode auslösen
2. schau dir bitte nochmal exakt an wie du deinen com-port konfiguriert hast, handshake hast du hoffentlich ausgeschalten, oder braucht dein Funkmodul das ?!
3. schau mal ob dein GSensor irgendwelche ereignisse anbietet und verwende die statt deines timers .... timer sind allgemein verpönt um regelmäßige aufgaben zu erfüllen ... "wenn man timer verwendet hat, war man nur zu faul sich einen vernünftigen zustandsaautomaten auszudenken, timer sollten nur für delays oder timeouts verwendet werden" hat mein dozent immer gesagt
PS: DOCH! die run methode die du im 2ten thread überschrieben hast muss eine endlossschleife sein, die man über eine spezielle variable allerdings beenden kann, damit man den thread wieder auf wunsch beenden kann. Threads per close/shutdown zu beenden ist unschön und kann speicherlecks hinterlassen
PS zum synchronisieren kannst du deine threads in den sleep schicken und sie per interrupt befehl aufwecken, aber threads halte ich für diese eine aufgabe für übertrieben, versuchs doch lieber nocheinmal mit optimierungen am programm selber
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen