Verständnisproblem module
Verfasst: Freitag 11. März 2011, 11:26
Hi,
ich glaube ich mache mir das Leben einfach zu schwer. Ich möchte mir ein kleines Modul schreiben das sich mit Hilfe von PySerial über den Seriellen Port unterhält. Dieses Modul wird eine Verbindung herstellen, diese Verbindung speichern, und bei Gelegenheit über diese Verbindung Daten senden oder empfangen. Außerdem wird es wohl ein paar Daten (Strings und Zahlen) bereithalten die für das Kommunikationsprotokoll notwendig sind. Theoretisch sind das also nur ein paar Variablen die ich in dem Modul ablegen muss und ein paar Funktionen (Verbindung öffnen, schließen, daten senden...).
Mein Problem ist momentan einfach nur das Vorhalten der Seriellen Verbindung, die ja irgendwo gespeichert werden muss. Mir fallen ein paar Möglichkeiten ein wie ich das machen könnte.
1. OOP - Ich erstelle mir eine Klasse für das Ganze Modul. Die Verbindung wäre in diesem Fall einfach ein Attribut. So kann ich zu jeder Zeit darauf zugreifen. Allerdings scheint mir das nicht unbedingt notwendig das so zu erledigen.
2. Beim erstellen der Verbindung wird die serielle Verbindung als Rückgabewert zurückgegeben und ich übergebe die Verbindung den Funktionen die damit arbeiten sollen (daten senden, daten empfangen)
3. Die Verbindung wird als globale Variable im Modul abgelegt. So können alle Funktionen darauf zugreifen. Funktionen die die Verbindung öffnen oder schließen sollen müssen auf diese via `global` zugreifen.
bisher hätte ich das mit OOP erschlagen, da ich mich da recht wohl fühle. Allerdings gefällt mir Variante 3 immer besser, da das wesentlich weniger Code ergeben sollte. Allerdings lese ich hier im Forum zwischenzeitlich ein wenig mit, und weiß das ich `global` nicht verwenden soll. Vielleicht gibt es ja noch eine Möglichkeit die ich übersehe? Was wäre eine ordentliche Variante?
schon mal Danke für eure Ideen
Sebastian
ich glaube ich mache mir das Leben einfach zu schwer. Ich möchte mir ein kleines Modul schreiben das sich mit Hilfe von PySerial über den Seriellen Port unterhält. Dieses Modul wird eine Verbindung herstellen, diese Verbindung speichern, und bei Gelegenheit über diese Verbindung Daten senden oder empfangen. Außerdem wird es wohl ein paar Daten (Strings und Zahlen) bereithalten die für das Kommunikationsprotokoll notwendig sind. Theoretisch sind das also nur ein paar Variablen die ich in dem Modul ablegen muss und ein paar Funktionen (Verbindung öffnen, schließen, daten senden...).
Mein Problem ist momentan einfach nur das Vorhalten der Seriellen Verbindung, die ja irgendwo gespeichert werden muss. Mir fallen ein paar Möglichkeiten ein wie ich das machen könnte.
1. OOP - Ich erstelle mir eine Klasse für das Ganze Modul. Die Verbindung wäre in diesem Fall einfach ein Attribut. So kann ich zu jeder Zeit darauf zugreifen. Allerdings scheint mir das nicht unbedingt notwendig das so zu erledigen.
2. Beim erstellen der Verbindung wird die serielle Verbindung als Rückgabewert zurückgegeben und ich übergebe die Verbindung den Funktionen die damit arbeiten sollen (daten senden, daten empfangen)
3. Die Verbindung wird als globale Variable im Modul abgelegt. So können alle Funktionen darauf zugreifen. Funktionen die die Verbindung öffnen oder schließen sollen müssen auf diese via `global` zugreifen.
bisher hätte ich das mit OOP erschlagen, da ich mich da recht wohl fühle. Allerdings gefällt mir Variante 3 immer besser, da das wesentlich weniger Code ergeben sollte. Allerdings lese ich hier im Forum zwischenzeitlich ein wenig mit, und weiß das ich `global` nicht verwenden soll. Vielleicht gibt es ja noch eine Möglichkeit die ich übersehe? Was wäre eine ordentliche Variante?
schon mal Danke für eure Ideen
Sebastian