Инструменты пользователя

Инструменты сайта


Serial

Serial()

Класс для работы с последовательным портом UART. Iskra JS имеет несколько последовательных портов, которые могут быть использованы одновременно. Для работы с конкретным портом, необходимо использовать экземпляры класса: Serial1, Serial2, Serial3(PrimarySerial), Serial4, Serial5, Serial6 и экземпляр USB — для работы с виртуальным портом через USB-соединение.

Serial.find(pin)

Возвращает экземпляр класса, который может использовать pin для работы с последовательным портом.

Serial.find(P0); // Выведет Serial3
Serial.find(P1); // Выведет Serial3

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".

SerialN.available()

Возвращает размер принятых байт в буфере FIFO, но еще не обработанных методом Serial3.on("data", function(data) { … });

SerialN.print(data)

Передает строку data в последовательный порт. Все вхождения \n заменяются на \r\n. Если этого нужно избежать, используйте функцию Serial3.write(data).

SerialN.println(data)

Передает строку data в последовательный порт. Все вхождения \n заменяются на \r\n. В конце строка дополняется символами \r\n.

SerialN.read(chars)

Возвращает строку символов, считанных из последовательного порта, длинной chars. Если chars равен 0 или undefined — считываются все символы.

SerialN.write(data)

Записывает в последовательный порт данные data, которые могут быть представлены в виде строки или массива. При этом данные строки не модифицируются, а массив — объединяется в строку.

SerialN.pipe(stream, options)

Отправляет входящие данные в stream — поток или файл, которые должны уметь принимать данные (быть доступны на запись). Опции options — объект со свойствами:

  • chunkSize — размер передаваемого блока в байтах.
  • endtrue или false, указывает, вызывать ли strem.on('end', function(){ … }); по завершению передачи.
  • complete — функция, вызываемая по окончанию передачи блока в поток.

SerialN.on("data", function(data) { ... });

Событие возникает при поступлении данных из буфера обмена последовательного порта. Функция замыкания вызывается с параметром data — строкой с полученными данными.

SerialN.on("framing", function() { ... });

Событие возникает при приеме данных по последовательному порту и ошибке бита stop. Ошибка возникает в случае помех или если линия слишком долго подтянута к 0. При этом полученные данные будут переданы в обработку.

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