1
0
mirror of https://github.com/elua/elua.git synced 2025-01-08 20:56:17 +08:00
elua/doc/eluadoc/refman_gen_uart.lua
2011-10-19 22:58:40 +03:00

110 lines
5.3 KiB
Lua

-- eLua reference manual - uart module
data_en =
{
-- Title
title = "eLua reference manual - UART module",
-- Menu name
menu_name = "uart",
-- Overview
overview = [[This module contains functions for accessing the serial ports (UARTs) of the eLua CPU.]],
-- Data structures, constants and types
structures =
{
{ text = [[uart.VUART0
uart.VUART1
.............
uart.VUART7]],
name = "UART constants",
desc = [[If @sermux.html@virtual UART@ support is enabled in eLua these constants are automatically defined
to the IDs of the virtual UARTs in the system.]]
}
},
-- Functions
funcs =
{
{ sig = "baud = #uart.setup#( id, baud, databits, parity, stopbits )",
desc = "Setup the serial port. Note that you can't call this function for a @sermux.html@virtual UART@.",
args =
{
"$id$ - the ID of the serial port",
"$baud$ - serial baud rate",
"$databits$ - number of data bits",
"$parity$ - parity type, can be either $uart.PAR_EVEN$, $uart.PAR_ODD$ or $uart.PAR_NONE$",
[[$stopbits$ - the number of stop bits, can be either $uart.STOP_1$ (for 1 stop bit), $uart.STOP_1_5$ (for 1.5 stop bits) or $uart.STOP_2$
(for 2 stop bits)]]
},
ret = "The actual baud rate set on the serial port. Depending on the hardware, this might have a different value than the $baud$ parameter"
},
{ sig = "#uart.write#( id, data1, [data2], ..., [datan] )",
desc = [[Write one or more strings or 8-bit integers (raw data) to the serial port. If writing raw data, its value (represented by an integer) must be between 0 and 255.]],
args =
{
"$id$ - the ID of the serial port.",
"$data1$ - the first string/8-bit integer to write.",
"$data2 (optional)$ - the second string/8-bit integer to write.",
"$datan (optional)$ - the %n%-th string/8-bit integer to write."
}
},
{ sig = "str = #uart.getchar#( id, [timeout], [timer_id] )",
desc = "Read a single character from the serial port",
args =
{
"$id$ - the ID of the serial port",
[[$timeout (optional)$ - timeout of the operation, can be either $uart.NO_TIMEOUT$ or 0 for non-blocking operation, $uart.INF_TIMEOUT$ for
blocking operation, or a positive number that specifies the timeout in microseconds. The default value of this argument is $uart.INF_TIMEOUT$.]],
[[$timer_id (optional)$ - the ID of the timer used for measuring the timeout. If not specified it defaults to the @arch_platform_timers.html#the_system_timer@system timer@.]],
},
ret = "The character read from the serial port as a string, or the empty string it timeout occured while waiting for the character."
},
{ sig = "str = #uart.read#( id, format, [timeout], [timer_id] )",
desc = "Reads one or more characters from the serial port according to a format specifier",
args =
{
"$id$ - the ID of the serial port",
[[$format$ - format of data to read. This can be either:
<ul>
<li>$'*l'$ - read until an end of line character (a $\n$) is found (the $\n$ is not returned) or a timeout occurs.</li>
<li>$'*n'$ - read an integer. The integer can optionally have a sign. Reading continues until the first non-digit character is detected or a timeout occurs. This is the only case in which $read$ returns a number instead of an integer.</li>
<li>$'*s'$ - read until a spacing character (like a space or a TAB) is found (the spacing character is not returned) or a timeout occurs.</li>
<li>$a positive number$ - read at most this many characters before returning (reading can stop earlier if a timeout occurs).</li>
</ul>]],
[[$timeout (optional)$ - timeout of the operation, can be either $uart.NO_TIMEOUT$ or 0 for non-blocking operation, $uart.INF_TIMEOUT$ for
blocking operation, or a positive number that specifies the timeout in microseconds. The default value of this argument is $uart.INF_TIMEOUT$.]],
[[$timer_id (optional)$ - the ID of the timer used for measuring the timeout. If not specified it defaults to the @arch_platform_timers.html#the_system_timer@system timer@.]],
},
ret = [[The data read from the serial port as a string (or as a number if $format$ is $'*n'$). If a timeout occures, only the data read before the timeout is returned. If the function times out while trying to read the first character, the empty string is returned]]
},
{ sig = "#uart.set_buffer#( id, bufsize )",
desc = "Sets the size of the UART buffer. Note that calling this function with bufsize = 0 for a @sermux.html@virtual UART@ is not allowed.",
args =
{
"$id$ - the ID of the serial port",
"$bufsize$ - the size of the buffer (must be a power of 2) or 0 to disable buffering on the specified UART."
},
},
{ sig = "#uart.set_flow_control#( id, type )",
desc = "Sets the flow control on the UART. Note that this function works only on physical ports, it will return an error if called on a virtual UART.",
args =
{
"$id$ - the ID of the serial port.",
[[$type$ - the flow control type, it can be either $uart.FLOW_NONE$ (no flow control), $uart.FLOW_RTS$ for RTS flow control, $uart.FLOW_CTS$ for CTS flow control or
$uart.FLOW_RTS + uart.FLOW_CTS$ for full RTS/CTS flow control.]]
}
}
},
}
data_pt = data_en