====== 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});