set_serial_paramT_set_serial_paramSetSerialParamSetSerialParam (Operator)
Name
set_serial_paramT_set_serial_paramSetSerialParamSetSerialParam
— Setzen der Parameter eines seriellen Gerätes.
Signatur
void SetSerialParam(const HTuple& SerialHandle, const HTuple& BaudRate, const HTuple& DataBits, const HTuple& FlowControl, const HTuple& Parity, const HTuple& StopBits, const HTuple& TotalTimeOut, const HTuple& InterCharTimeOut)
void HSerial::SetSerialParam(const HTuple& BaudRate, const HTuple& DataBits, const HString& FlowControl, const HString& Parity, const HTuple& StopBits, const HTuple& TotalTimeOut, const HTuple& InterCharTimeOut) const
void HSerial::SetSerialParam(Hlong BaudRate, Hlong DataBits, const HString& FlowControl, const HString& Parity, Hlong StopBits, Hlong TotalTimeOut, Hlong InterCharTimeOut) const
void HSerial::SetSerialParam(Hlong BaudRate, Hlong DataBits, const char* FlowControl, const char* Parity, Hlong StopBits, Hlong TotalTimeOut, Hlong InterCharTimeOut) const
void HSerial::SetSerialParam(Hlong BaudRate, Hlong DataBits, const wchar_t* FlowControl, const wchar_t* Parity, Hlong StopBits, Hlong TotalTimeOut, Hlong InterCharTimeOut) const
(Nur Windows)
static void HOperatorSet.SetSerialParam(HTuple serialHandle, HTuple baudRate, HTuple dataBits, HTuple flowControl, HTuple parity, HTuple stopBits, HTuple totalTimeOut, HTuple interCharTimeOut)
void HSerial.SetSerialParam(HTuple baudRate, HTuple dataBits, string flowControl, string parity, HTuple stopBits, HTuple totalTimeOut, HTuple interCharTimeOut)
void HSerial.SetSerialParam(int baudRate, int dataBits, string flowControl, string parity, int stopBits, int totalTimeOut, int interCharTimeOut)
Beschreibung
Mit set_serial_paramset_serial_paramSetSerialParamSetSerialParamSetSerialParam
können die Parameter eines seriellen
Gerätes gesetzt werden. Der Parameter BaudRateBaudRateBaudRateBaudRatebaudRate
gibt die
Ein- und Ausgabegeschwindigkeit des Gerätes an. Es ist zu
beachten, dass nicht jedes Gerät alle Geschwindigkeiten
unterstützt. Die Anzahl der übertragenen Datenbits wird mit
DataBitsDataBitsDataBitsDataBitsdataBits
festgelegt. Der Parameter FlowControlFlowControlFlowControlFlowControlflowControl
legt fest, ob und welche Art von Datenflusskontrolle verwendet
werden. Software-Kontrolle ('xon_xoff'"xon_xoff""xon_xoff""xon_xoff""xon_xoff") und
Hardware-Kontrolle ('cts_rts'"cts_rts""cts_rts""cts_rts""cts_rts", 'dtr_dsr'"dtr_dsr""dtr_dsr""dtr_dsr""dtr_dsr" können
gewählt werden. Mehrere Werte können hierfür innerhalb einer
Zeichenkette gesetzt werden, durch Leerzeichen getrennt (z.B.
'cts_rts dtr_dsr'"cts_rts dtr_dsr""cts_rts dtr_dsr""cts_rts dtr_dsr""cts_rts dtr_dsr").
Ob und welche Art von
Paritätskontrolle der übertragenen Daten verwendet wird, lässt
sich mit ParityParityParityParityparity
festlegen. Die Anzahl der übertragenen
Stop-Bits kann mit StopBitsStopBitsStopBitsStopBitsstopBits
gesetzt werden. Schließlich
können noch zwei Timeouts für das Lesen von dem seriellen Gerät
gesetzt werden. Der Parameter TotalTimeOutTotalTimeOutTotalTimeOutTotalTimeOuttotalTimeOut
bezieht sich
auf die Zeit, die bei read_serialread_serialReadSerialReadSerialReadSerial
bis zum Eintreffen des
ersten Zeichens, unabhängig von der Anzahl der insgesamt zu
lesenden Zeichen, höchstens vergehen darf. Der Parameter
InterCharTimeOutInterCharTimeOutInterCharTimeOutInterCharTimeOutinterCharTimeOut
gibt die Zeit an, die zwischen dem Lesen
einzelner Zeichen verstreichen darf, falls mehrer Zeichen mit
read_serialread_serialReadSerialReadSerialReadSerial
gelesen werden sollen. Falls einer der beiden
Timeouts auf -1 gesetzt wird, so wird beliebig lange auf
das Eintreffen eines Zeichens gewartet. Werden beide Timeouts auf
0 gesetzt, wartet das System nicht, sondern liest die
vorhandenen oder keine Zeichen. Auf Windows-Systemen ergibt sich so
ein maximaler Timout von TotalTimeOutTotalTimeOutTotalTimeOutTotalTimeOuttotalTimeOut
+ n
InterCharTimeOutInterCharTimeOutInterCharTimeOutInterCharTimeOutinterCharTimeOut
, wenn n Zeichen gelesen werden sollen.
Auf unixartigen Systemen kann systembedingt nur einer der beiden Timeouts
gesetzt werden. Wenn beide Timeouts größer als -1 übergeben
werden, wird nur der Total-Timeout beachtet. Die Einheit der beiden
Timeouts ist Millisekunden. Es ist jedoch zu beachten, dass der
Timeout unter unixartigen Systemen nur in Zehntelsekundenschritten
spezifizieren lässt, d.h. der minimale wirksame Timeout ist
100. Für jeden dieser Parameter kann die aktuelle
Einstellung beibehalten werden, indem 'unchanged'"unchanged""unchanged""unchanged""unchanged"
übergeben wird.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
Parameter
SerialHandleSerialHandleSerialHandleSerialHandleserialHandle
(input_control, Zustand wird modifiziert) serial →
HSerial, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle der seriellen Schnittstelle.
BaudRateBaudRateBaudRateBaudRatebaudRate
(input_control) integer →
HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)
Übertragungsgeschwindigkeit der seriellen
Schnittstelle.
Defaultwert:
'unchanged'
"unchanged"
"unchanged"
"unchanged"
"unchanged"
Werteliste: 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 76800, 115200, 153600, 230400, 307200, 460800, 'unchanged'"unchanged""unchanged""unchanged""unchanged"
DataBitsDataBitsDataBitsDataBitsdataBits
(input_control) integer →
HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)
Anzahl Datenbits der seriellen Schnittstelle.
Defaultwert:
'unchanged'
"unchanged"
"unchanged"
"unchanged"
"unchanged"
Werteliste: 5, 6, 7, 8, 'unchanged'"unchanged""unchanged""unchanged""unchanged"
FlowControlFlowControlFlowControlFlowControlflowControl
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Datenflusskontrolle der seriellen Schnittstelle.
Defaultwert:
'unchanged'
"unchanged"
"unchanged"
"unchanged"
"unchanged"
Werteliste: 'cts_rts dtr_dsr xon_xoff'"cts_rts dtr_dsr xon_xoff""cts_rts dtr_dsr xon_xoff""cts_rts dtr_dsr xon_xoff""cts_rts dtr_dsr xon_xoff", 'cts_rts dtr_dsr'"cts_rts dtr_dsr""cts_rts dtr_dsr""cts_rts dtr_dsr""cts_rts dtr_dsr", 'cts_rts xon_xoff'"cts_rts xon_xoff""cts_rts xon_xoff""cts_rts xon_xoff""cts_rts xon_xoff", 'cts_rts'"cts_rts""cts_rts""cts_rts""cts_rts", 'dtr_dsr xon_xoff'"dtr_dsr xon_xoff""dtr_dsr xon_xoff""dtr_dsr xon_xoff""dtr_dsr xon_xoff", 'dtr_dsr'"dtr_dsr""dtr_dsr""dtr_dsr""dtr_dsr", 'none'"none""none""none""none", 'unchanged'"unchanged""unchanged""unchanged""unchanged", 'xon_xoff'"xon_xoff""xon_xoff""xon_xoff""xon_xoff"
ParityParityParityParityparity
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Parität der seriellen Schnittstelle.
Defaultwert:
'unchanged'
"unchanged"
"unchanged"
"unchanged"
"unchanged"
Werteliste: 'even'"even""even""even""even", 'none'"none""none""none""none", 'odd'"odd""odd""odd""odd", 'unchanged'"unchanged""unchanged""unchanged""unchanged"
StopBitsStopBitsStopBitsStopBitsstopBits
(input_control) integer →
HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)
Anzahl Stopbits der seriellen Schnittstelle.
Defaultwert:
'unchanged'
"unchanged"
"unchanged"
"unchanged"
"unchanged"
Werteliste: 1, 2, 'unchanged'"unchanged""unchanged""unchanged""unchanged"
TotalTimeOutTotalTimeOutTotalTimeOutTotalTimeOuttotalTimeOut
(input_control) integer →
HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)
Gesamt-Timeout der seriellen Schnittstelle in ms.
Defaultwert:
'unchanged'
"unchanged"
"unchanged"
"unchanged"
"unchanged"
Wertevorschläge: -1, 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 'unchanged'"unchanged""unchanged""unchanged""unchanged"
InterCharTimeOutInterCharTimeOutInterCharTimeOutInterCharTimeOutinterCharTimeOut
(input_control) integer →
HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)
Inter-character Timeout der seriellen Schnittstelle
in ms.
Defaultwert:
'unchanged'
"unchanged"
"unchanged"
"unchanged"
"unchanged"
Wertevorschläge: -1, 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 'unchanged'"unchanged""unchanged""unchanged""unchanged"
Ergebnis
Wenn die Parameter korrekt sind und die Parameter des Gerätes
gesetzt werden konnten, liefert set_serial_paramset_serial_paramSetSerialParamSetSerialParamSetSerialParam
den Wert
2 (H_MSG_TRUE). Andernfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
open_serialopen_serialOpenSerialOpenSerialOpenSerial
,
get_serial_paramget_serial_paramGetSerialParamGetSerialParamGetSerialParam
Nachfolger
read_serialread_serialReadSerialReadSerialReadSerial
,
write_serialwrite_serialWriteSerialWriteSerialWriteSerial
Siehe auch
get_serial_paramget_serial_paramGetSerialParamGetSerialParamGetSerialParam
Modul
Foundation