hallo stefan,
ich hänge hier noch ein beispiel code-stück (visual-basic) an,
mit dem ich nochmal zeigen will, wie ich das mit dem einen IF und dem einen byte RAM meine.
jede extended class (SERIAL, LCD, IR, etc.) kann damit den ausgabekanal für sich reservieren.
gruss martin
Code:
'Global Namespace
'----------------
Const ObjSERIAL = 0 'Jede Klasse bekommt eine eigene ID
Const ObjLCD = 1
Const ObjIR = 2
Const ObjRD = 3
Const ObjIIC = 4
Public ActiveObjID As Integer '<-- dieses eine Byte RAM wird zur Status-Verwaltung gebraucht und hält
'fest, weiche ID gerade den PRINT-Kanal für sich reserviert hat
'LCD.cls
'-------
Function Clear()
'Die Umleitung auf das LCD wird mit PRINT"#ON_LCD#"; aktiviert.
'Danach können Sie mit PRINT oder PUT auf das LCD schreiben bzw. Kommandos zur
'Formatierung übermitteln.
If Not ActiveObjID = ObjLCD Then
'Schalte Umleitung für LCD-Objekt aktiv
PRINT"#OFF#";
PRINT"#ON_LCD#";
ActiveObjID = ObjLCD 'Reservierung jetzt für mich
End If
Print "#CLR"; '-> LCD Löschen
End Function
Function PRINT(Var)
If Not ActiveObjID = ObjLCD Then
'Schalte Umleitung für LCD-Objekt aktiv
PRINT"#OFF#";
PRINT"#ON_LCD#";
ActiveObjID = ObjLCD 'Reservierung jetzt für mich
End If
Print Var; '-> Schreibt den Wert ins LCD
End Function
'IR.cls
'------
Function Send(Address As Long, Command As Long)
'Ist die Umleitung auf das IR MODULE mit
'PRINT"#ON_IR#";
'aktiviert, so können sie mit PUT u. GET Daten senden bzw. empfangen.
If Not ActiveObjID = ObjIR Then
'Schalte Umleitung für IR-Objekt aktiv
PRINT"#OFF#";
PRINT"#ON_IR#";
ActiveObjID = ObjIR 'Reservierung jetzt für mich
End If
PUT Address
PUT Command
End Function
Function Get(Address As Long, Command As Long)
'... genauso
End Function
Lesezeichen