====== Serial ======
class:: Serial()
Класс для работы с последовательным портом ''UART''. [[Iskra_JS|Iskra JS]] имеет несколько последовательных портов, которые могут быть использованы одновременно. Для работы с конкретным портом, необходимо использовать экземпляры класса: ''Serial1'', ''Serial2'', ''Serial3''(''PrimarySerial''), ''Serial4'', ''Serial5'', ''Serial6'' и экземпляр ''USB'' — для работы с виртуальным портом через USB-соединение.
func:: Serial.find(pin)
Возвращает экземпляр класса, который может использовать ''pin'' для работы с последовательным портом.
Serial.find(P0); // Выведет Serial3
Serial.find(P1); // Выведет Serial3
func:: SerialN.setup(baudrate, options)
Устанавливает скорость работы порта в бодах (по умолчанию 9600 бод) и дополнительные параметры протокола.
Опции ''options'' — объект со свойствами:
* ''rx'' — пин приема данных. Должен быть допустимым, согласно схеме.
* ''tx'' — пин передачи данных. Должен быть допустимым, согласно схеме.
* ''bytesize'' — размер пакета данных в битах, обычно пакет — это один байт (8 бит). Допустимы 5, 6, 7, 8, 9.
* ''stopbits'' — количество битов ''stop'', обычно 1.
* ''parity'' — бит проверки корректности (бит четности). Обычно ''null''. Допустимо: ''null'',''"odd"'',''"even"''.
* ''flow'' — управление потоком. Допустимые значения ''null'', ''undefined'', ''"none"'', ''"xor"''.
func:: SerialN.available()
Возвращает размер принятых байт в буфере FIFO, но еще не обработанных методом ''Serial3.on("data", function(data) { ... });''
func:: SerialN.print(data)
Передает строку ''data'' в последовательный порт. Все вхождения ''\n'' заменяются на ''\r\n''. Если этого нужно избежать, используйте функцию ''Serial3.write(data)''.
func:: SerialN.println(data)
Передает строку ''data'' в последовательный порт. Все вхождения ''\n'' заменяются на ''\r\n''. В конце строка дополняется символами ''\r\n''.
func:: SerialN.read(chars)
Возвращает строку символов, считанных из последовательного порта, длинной ''chars''. Если ''chars'' равен ''0'' или ''undefined'' — считываются все символы.
func:: SerialN.write(data)
Записывает в последовательный порт данные ''data'', которые могут быть представлены в виде строки или массива. При этом данные строки не модифицируются, а массив — объединяется в строку.
func:: SerialN.pipe(stream, options)
Отправляет входящие данные в ''stream'' — поток или файл, которые должны уметь принимать данные (быть доступны на запись). Опции ''options'' — объект со свойствами:
* ''chunkSize'' — размер передаваемого блока в байтах.
* ''end'' — ''true'' или ''false'', указывает, вызывать ли ''strem.on('end', function(){ ... });'' по завершению передачи.
* ''complete'' — функция, вызываемая по окончанию передачи блока в поток.
event:: SerialN.on("data", function(data) { ... });
Событие возникает при поступлении данных из буфера обмена последовательного порта. Функция замыкания вызывается с параметром ''data'' — строкой с полученными данными.
event:: SerialN.on("framing", function() { ... });
Событие возникает при приеме данных по последовательному порту и ошибке бита ''stop''. Ошибка возникает в случае помех или если линия слишком долго подтянута к ''0''. При этом полученные данные будут переданы в обработку.
event:: SerialN.on("parity", function() { ... });
Событие возникает при ошибке контроля четности, если этот контроль используется. При этом полученные данные будут переданы в обработку.
===== Примеры инициализации =====
Serial2.setup(115200, {rx: A3, tx: A2, ck: A4});
Serial3.setup(115200, {rx: P0, tx: P1, ck: B12});
Serial4.setup(115200, {rx: A1, tx: A0});
Serial6.setup(115200, {rx: P9, tx: P8, ck: P10});