Ich arbeite gerade in einer Firma an genau dem Problem,
eine Konsolenoberfläche für RS232 mit eier Gui zu ersetzen.
Dabei habe ich mir erstmal selbst ein Terminal geschrieben,
um die Funktionen auszutesten.
Code: Alles auswählen
baud=115200
OpenSerialPort(1,"COM1",baud,#PB_SerialPort_EvenParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
OpenWindow(1,0,0,500,500,"Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(1))
StringGadget(1,5,5,50,25,"")
ButtonGadget(0,60,5,40,25,"send")
ButtonGadget(3,110,5,40,25,"clear")
TextGadget(99,200,5,100,15,"")
EditorGadget(2,5,40,490,400,#PB_Editor_ReadOnly)
Repeat
event=WaitWindowEvent(20)
Select event
Case #PB_Event_CloseWindow
CloseSerialPort(1)
Case #PB_Event_Gadget
SetGadgetText(99,Str(AvailableSerialPortOutput(1)))
Select EventGadget()
Case 0
a$=GetGadgetText(1)
If Len(a$)=1
WriteSerialPortData(1,@a$,1)
text$=GetGadgetText(2)+a$
Else
a$=Chr(Val(a$))
WriteSerialPortData(1,@a$,1)
text$=GetGadgetText(2)+"ASCII: "+Str(Asc(a$))
EndIf
SetGadgetText(2,text$+Chr(10))
SetGadgetText(1,"")
SetActiveGadget(1)
Case 3
SetGadgetText(2,"")
EndSelect
EndSelect
If IsSerialPort(1)
input=AvailableSerialPortInput(1)
If input
a$=Space(input)
ReadSerialPortData(1,@a$,input)
text$=GetGadgetText(2)+a$
SetGadgetText(2,text$)
EndIf
EndIf
Until event=#PB_Event_CloseWindow
Ein paar Hinweise:
- Scrolling ist noch nicht drinnen
- Das Programm sendet immer nur Einzelzeichen.
(Da in meinem Fall nur diese gebraucht werden,
zwei oder mehr Buchstaben stehen für einen ASCII Code)
- Die Daten der Com Verbindung musst du natürlich anpassen.
- Ich hab das Programm jetzt nicht nochmal angeschaut
kann also komische Variablen usw enthalten