INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Serielle Kommunikation neben Programmablauf "parallel" ausführen
16.03.2015, 22:24
Beitrag #1
Serielle Kommunikation neben Programmablauf "parallel" ausführen
Hi
Erstmal kurz zu meinem Projekt. Ich habe einen Arduino Mega, welcher die Technik in meinem Aquarium verwaltet. Er steuert zeitabhängig Stromkreise und liest Werte von verschiedenen Temperatursensoren aus.
Das funktioniert auch soweit alles wunderbar.

Ich bin jetzt gerade dabei einen Raspberry Pi vor den Ardunio zu schalten um über eine serielle Kommunikation informationen zwischen den beiden Geräten auszutauschen.

Hierfür soll auf dem Raspberry Pi ein Programm laufen, welches über REST calls einer Homepage informationen am Arduino anfrägt bzw Informationen an den Arduino sendet.

Jetzt zu meiner Frage. Ich will neben dem eigentlichen Programmablauf auf dem Arduino auf Nachrichten, welche über die serielle Schnittstelle kommen, reagieren. Da ich hauptsächlich in Java programmiere würde ich das natürliche gerne mit Threads machen. Ein Thread für den Programmablauf und ein anderer Thread für die Kommunikation zwischen Arduino und Pi. Richtiges hardware threading funktioniert beim Arduino ja nicht. Man könnte ja auch über Interrupts zwischen zwei Programmabläufen hin und her springen.

Ich denke das mein Vorhaben nicht allzu unüblich ist. Gibt es hierfür vielleicht bekannte Entwurfsmuster oder allgemein bewährte Lösungsansätze?

Danke schonmal im Vorraus

Gruß
Timo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2015, 22:32
Beitrag #2
RE: Serielle Kommunikation neben Programmablauf "parallel" ausführen
Hi,
nur mal so laut gedacht, also wenn du deinen sketch so aufbaust das die Kommunikation die Hauptschleife ist und wenn dann kein Zeichen Empfangen wurde dann eben einfach deine sonstigen aufgaben erledigst sollte das eigentlich klappen...weil bis ein Zeichen empfangen wurde kann der arduino viele Zeilen Code abarbeiten.
Alternativ kannst du auch mal versuchen beim RX Kanal den Interrupt scharf zu schalten und da dann deine Zeichen einlesen und verarbeiten.
Wie gesagt nur mal laut gedacht...Multitasking ist was anderes. Aber da drüber hatten die Kollegen hier erst dieser Tage schon debatiert. Suche doch mal im Forum nach Multtasking.
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Kommunikation über das WiFi-Shield Flap 3 235 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Fehler im Programmablauf binderj1 14 359 10.10.2016 10:29
Letzter Beitrag: StephanBuerger
  Kommunikation Serial Monitor --> Arduino BennIY 7 357 24.05.2016 07:48
Letzter Beitrag: hotsystems
  Serielle Schnittstelle - Daten empfangen Datatom 8 779 22.05.2016 18:10
Letzter Beitrag: avoid
  USB-Kommunikation ADK hr3 0 281 12.04.2016 16:43
Letzter Beitrag: hr3
  Funktion in Loop einmalig ausführen Haustechno 4 646 09.03.2016 22:43
Letzter Beitrag: Haustechno
  "WORT" über die serielle Schnittstelle auslesen hannes77 1 537 08.03.2016 12:13
Letzter Beitrag: Binatone
  I²C Kommunikation bricht ab chhec 1 347 19.01.2016 11:10
Letzter Beitrag: ardu_arne
  Zahlenformat bei Kommunikation mit zwei Arduinos Matthias_Arduino 5 634 07.01.2016 22:40
Letzter Beitrag: Bitklopfer
  Grundlagen zur UART Kommunikation gesucht... torsten_156 10 888 16.12.2015 22:26
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste