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







Zitieren
Lesezeichen