[id] = OpenSerialPort(id, portname$[, table])
portname$
angegebene serielle Schnittstelle zu öffnen und
der Verbindung den Identifikator id
zuzuweisen. Wenn Sie Nil
in id
übergeben, wählt OpenSerialPort()
automatisch eine
ID aus und gibt diese zurück.
Der Name, den Sie in portname$
übergeben, hängt von der Plattform
ab, auf der Ihr Skript ausgeführt wird. Unter Windows könnte
es COM1
sein, unter Linux und macOS /dev/ttyS0
oder /dev/ttyUSB0
, falls Sie einen USB-Adapter verwenden.
Unter AmigaOS müssen Sie die Einheit des serial.device übergeben,
die Sie in portname$
öffnen möchten. Bei Android wird davon
ausgegangen, dass es nur einen Port gibt, sodass portname$
ignoriert wird.
Ab Hollywood 9.0 kann portname$
jetzt auf AmigaOS und kompatiblen
Systemen auch eine Zeichenkette im Format "<Gerätename>:<Port>"
sein. Dies ist nützlich, wenn Sie möchten, dass OpenSerialPort()
ein alternatives serielles Gerät anstelle des AmigaOS-Standards
serial.device
öffnet. Wenn Sie beispielsweise "serialpl2303.device:0"
in portname$
übergeben, wird versucht, serialpl2303.device
auf Port 0 zu öffnen.
Darüber hinaus können Sie ein optionales Tabellenargument übergeben, mit dem Sie die Parameter für die serielle Schnittstellenverbindung festlegen können. Folgende Felder werden derzeit erkannt:
BaudRate:
#BAUD_300:
#BAUD_600:
#BAUD_1200:
#BAUD_2400:
#BAUD_4800:
#BAUD_9600:
#BAUD_19200:
#BAUD_38400:
#BAUD_57600:
#BAUD_115200:
#BAUD_460800:
DataBits:
#DATA_5:
#DATA_6:
#DATA_7:
#DATE_8:
StopBits:
#STOP_1:
#STOP_2:
Parity:
#PARITY_NONE:
#PARITY_EVEN:
#PARITY_ODD:
FlowControl:
#FLOW_OFF:
#FLOW_HARDWARE:
#FLOW_XON_XOFF:
RTS:
#RTS_ON:
#RTS_OFF:
DTR:
#DTR_ON:
#DTR_OFF:
Wie Sie oben sehen können, ist die von OpenSerialPort()
verwendete
Standardkonfiguration 9600/8-N-1, d.h. 9600 bps, 8 Datenbits,
kein Paritätsbit, 1 Stoppbit. Dies ist die am häufigsten verwendete
Konfiguration und sollte auf jeder Plattform funktionieren.
OpenSerialPort(1, "COM1") WriteSerialData(1, "Hello World!") CloseSerialPort(1)Der obige Code öffnet die serielle Schnittstelle COM1 unter Windows und sendet die Zeichenfolge "Hello World!" an den Empfänger und schließt die serielle Schnittstellenverbindung. Beachten Sie, dass es keine Garantie gibt, dass alle 12 Bytes an die serielle Schnittstelle gesendet werden konnten. In Ihrem Code müssten Sie den Rückgabewert von WriteSerialData() überprüfen und ggf. erneut aufrufen, um die restlichen Bytes zu senden.