chrome.serial

Opis

Użyj interfejsu chrome.serial API, aby odczytywać dane z urządzenia podłączonego do portu szeregowego i zapisywać w nim dane.

Uprawnienia

serial

Typy

ConnectionInfo

Właściwości

  • bitrate

    number opcjonalny

    Zobacz ConnectionOptions.bitrate. To pole może zostać pominięte lub zawierać nieprawidłowe dane, jeśli używana jest niestandardowa szybkość transmisji bitów lub jeśli podczas wysyłania zapytania do urządzenia wystąpił błąd.

  • bufferSize

    liczba

    Zobacz: ConnectionOptions.bufferSize

  • connectionId

    liczba

    Identyfikator połączenia z portem szeregowym.

  • ctsFlowControl

    wartość logiczna opcjonalna

    Zobacz ConnectionOptions.ctsFlowControl. To pole można pominąć, jeśli podczas wykonywania zapytania dotyczącego urządzenia bazowego wystąpił błąd.

  • dataBits

    DataBits opcjonalny

    Zobacz ConnectionOptions.dataBits. To pole można pominąć, jeśli podczas wykonywania zapytania dotyczącego urządzenia bazowego wystąpił błąd.

  • nazwa

    ciąg znaków

    Zobacz: ConnectionOptions.name

  • parityBit

    ParityBit opcjonalny

    Zobacz ConnectionOptions.parityBit. To pole można pominąć, jeśli podczas wykonywania zapytania dotyczącego urządzenia bazowego wystąpił błąd.

  • wstrzymana

    Wartość logiczna

    Flaga z informacją, czy połączenie jest zablokowane przed uruchamianiem zdarzeń onReceive.

  • trwałe,

    Wartość logiczna

    Zobacz: ConnectionOptions.persistent

  • receiveTimeout

    liczba

    Zobacz: ConnectionOptions.receiveTimeout

  • sendTimeout

    liczba

    Zobacz: ConnectionOptions.sendTimeout

  • stopBits

    StopBits opcjonalny

    Zobacz ConnectionOptions.stopBits. To pole można pominąć, jeśli podczas wykonywania zapytania dotyczącego urządzenia bazowego wystąpił błąd.

ConnectionOptions

Właściwości

  • bitrate

    number opcjonalny

    Żądana szybkość transmisji połączenia, które ma zostać otwarte. Aby zapewnić zgodność z jak największą liczbą urządzeń, ta liczba powinna odpowiadać jednemu z powszechnie dostępnych szybkości transmisji, np. 110, 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200. Nie ma oczywiście gwarancji, że urządzenie podłączone do portu szeregowego będzie obsługiwać żądaną szybkość transmisji, nawet jeśli sam port ją obsługuje. Domyślnie przekazywany będzie parametr 9600.

  • bufferSize

    number opcjonalny

    Rozmiar bufora używanego do odbierania danych. Wartością domyślną jest 4096.

  • ctsFlowControl

    wartość logiczna opcjonalna

    Flaga z informacją, czy włączyć sprzętową kontrolę przepływu RTS/CTS. Wartość domyślna to fałsz.

  • dataBits

    DataBits opcjonalny

    Domyślnie przekazywany będzie parametr "eight".

  • nazwa

    string opcjonalny

    Ciąg tekstowy zdefiniowany przez aplikację, który ma być powiązany z połączeniem.

  • parityBit

    ParityBit opcjonalny

    Domyślnie przekazywany będzie parametr "no".

  • trwałe,

    wartość logiczna opcjonalna

    Flaga wskazująca, czy połączenie powinno pozostać otwarte, gdy aplikacja jest zawieszona (patrz Zarządzanie cyklem życia aplikacji). Wartość domyślna to „false”. Po załadowaniu aplikacji można pobrać wszystkie połączenia szeregowe otwarte wcześniej z wartością persistent=true za pomocą getConnections.

  • receiveTimeout

    number opcjonalny

    Maksymalny czas (w milisekundach) oczekiwania na nowe dane przed wywołaniem zdarzenia onReceiveError z błędem „timeout”. Jeśli wartość wynosi zero, w przypadku połączenia nie będą zgłaszane błędy przekroczenia czasu oczekiwania na odbiór. Domyślna wartość to 0.

  • sendTimeout

    number opcjonalny

    Maksymalny czas (w milisekundach) oczekiwania na zakończenie operacji send przed wywołaniem funkcji zwrotnej z błędem „timeout”. Jeśli wartość wynosi zero, błędy przekroczenia limitu czasu wysyłania nie będą wywoływane. Domyślna wartość to 0.

  • stopBits

    StopBits opcjonalny

    Domyślnie przekazywany będzie parametr "one".

DataBits

Typ wyliczeniowy

„seven”

„eight”

DeviceControlSignals

Właściwości

  • cts

    Wartość logiczna

    CTS (Clear To Send).

  • dcd

    Wartość logiczna

    DCD (Data Carrier Detect) lub RLSD (Receive Line Signal/ Detect).

  • dsr

    Wartość logiczna

    DSR (Data Set Ready).

  • ri

    Wartość logiczna

    RI (Ring Indicator).

DeviceInfo

Właściwości

  • wyświetlanaNazwa

    string opcjonalny

    Wyświetlana nazwa urządzenia w formie czytelnej dla ludzi, jeśli można ją uzyskać z sterownika hosta.

  • ścieżka

    ciąg znaków

    Ścieżka systemowa urządzenia. Aby połączyć się z tym urządzeniem, należy przekazać ten identyfikator jako argument path do funkcji chrome.serial.connect.

  • productId

    number opcjonalny

    Identyfikator produktu USB, jeśli można go określić dla danego urządzenia.

  • vendorId

    number opcjonalny

    Identyfikator dostawcy PCI lub USB, jeśli można go określić dla urządzenia bazowego.

HostControlSignals

Właściwości

  • dtr

    wartość logiczna opcjonalna

    DTR (Data Terminal Ready).

  • rts

    wartość logiczna opcjonalna

    RTS (Request To Send).

ParityBit

Typ wyliczeniowy

"no"

„odd”

„even”

ReceiveError

Typ wyliczeniowy

„disconnected”
Połączenie zostało przerwane.

„timeout”
Nie otrzymano danych przez receiveTimeout milisekund.

„device_lost”
Urządzenie zostało prawdopodobnie odłączone od hosta.

„break”
Urządzenie wykryło przerwę.

„frame_error”
Urządzenie wykryło błąd ramki.

„przepełnienie”
Wystąpiło przepełnienie bufora znaków. Następny znak zostanie utracony.

„buffer_overflow”
Wystąpiło przepełnienie bufora wejściowego. W buforze wejściowym nie ma miejsca lub po znaku końca pliku (EOF) odebrano znak.

„parity_error”
Urządzenie wykryło błąd parzystości.

„system_error”
Wystąpił błąd systemu, a połączenie może być niemożliwe do odzyskania.

ReceiveErrorInfo

Właściwości

  • connectionId

    liczba

    Identyfikator połączenia.

  • błąd

    Kod błędu wskazujący, co poszło nie tak.

ReceiveInfo

Właściwości

  • connectionId

    liczba

    Identyfikator połączenia.

  • dane

    ArrayBuffer

    Odebrano dane.

SendError

Typ wyliczeniowy

„disconnected”
Połączenie zostało przerwane.

„oczekujący”
Wysyłanie już było w toku.

„timeout”
Przekroczono limit czasu wysyłania.

„system_error”
Wystąpił błąd systemu, a połączenie może być niemożliwe do odzyskania.

SendInfo

Właściwości

  • bytesSent

    liczba

    Liczba wysłanych bajtów.

  • błąd

    SendError opcjonalny

    Kod błędu, jeśli wystąpił błąd.

StopBits

Typ wyliczeniowy

"one"

„two”

Metody

clearBreak()

Promise Chrome 45+
chrome.serial.clearBreak(
  connectionId: number,
  callback?: function,
)
: Promise<boolean>

Przywraca transmisję znaków w danym połączeniu i ustawia linię transmisji w stan nieprzerwany.

Parametry

  • connectionId

    liczba

    Identyfikator połączenia.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (result: boolean) => void

    • wynik

      Wartość logiczna

Zwroty

  • Promise<boolean>

    Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

connect()

Obietnica
chrome.serial.connect(
  path: string,
  options?: ConnectionOptions,
  callback?: function,
)
: Promise<ConnectionInfo>

Łączy się z określonym portem szeregowym.

Parametry

  • ścieżka

    ciąg znaków

    Ścieżka systemowa portu szeregowego do otwarcia.

  • Opcje

    ConnectionOptions opcjonalne

    Opcje konfiguracji portu.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (connectionInfo: ConnectionInfo) => void

Zwroty

  • Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

disconnect()

Obietnica
chrome.serial.disconnect(
  connectionId: number,
  callback?: function,
)
: Promise<boolean>

Odłącza się od portu szeregowego.

Parametry

  • connectionId

    liczba

    Identyfikator otwartego połączenia.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (result: boolean) => void

    • wynik

      Wartość logiczna

Zwroty

  • Promise<boolean>

    Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

flush()

Obietnica
chrome.serial.flush(
  connectionId: number,
  callback?: function,
)
: Promise<boolean>

Opróżnia wszystkie bajty w buforach wejściowych i wyjściowych danego połączenia.

Parametry

  • connectionId

    liczba

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (result: boolean) => void

    • wynik

      Wartość logiczna

Zwroty

  • Promise<boolean>

    Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

getConnections()

Obietnica
chrome.serial.getConnections(
  callback?: function,
)
: Promise<ConnectionInfo[]>

Pobiera listę aktualnie otwartych połączeń z portem szeregowym należących do aplikacji.

Parametry

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (connectionInfos: ConnectionInfo[]) => void

Zwroty

  • Promise<ConnectionInfo[]>

    Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

getControlSignals()

Obietnica
chrome.serial.getControlSignals(
  connectionId: number,
  callback?: function,
)
: Promise<DeviceControlSignals>

Pobiera stan sygnałów sterujących na danym połączeniu.

Parametry

Zwroty

  • Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

getDevices()

Obietnica
chrome.serial.getDevices(
  callback?: function,
)
: Promise<DeviceInfo[]>

Zwraca informacje o dostępnych urządzeniach szeregowych w systemie. Lista jest generowana ponownie przy każdym wywołaniu tej metody.

Parametry

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (ports: DeviceInfo[]) => void

Zwroty

  • Promise<DeviceInfo[]>

    Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

getInfo()

Obietnica
chrome.serial.getInfo(
  connectionId: number,
  callback?: function,
)
: Promise<ConnectionInfo>

Pobiera stan danego połączenia.

Parametry

  • connectionId

    liczba

    Identyfikator otwartego połączenia.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (connectionInfo: ConnectionInfo) => void

Zwroty

  • Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

send()

Obietnica
chrome.serial.send(
  connectionId: number,
  data: ArrayBuffer,
  callback?: function,
)
: Promise<SendInfo>

Zapisuje dane w podanym połączeniu.

Parametry

  • connectionId

    liczba

    Identyfikator połączenia.

  • dane

    ArrayBuffer

    Dane do wysłania.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (sendInfo: SendInfo) => void

Zwroty

  • Promise<SendInfo>

    Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

setBreak()

Promise Chrome 45+
chrome.serial.setBreak(
  connectionId: number,
  callback?: function,
)
: Promise<boolean>

Wstrzymuje transmisję znaków w danym połączeniu i przełącza linię transmisji w stan przerwy do momentu wywołania funkcji clearBreak.

Parametry

  • connectionId

    liczba

    Identyfikator połączenia.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (result: boolean) => void

    • wynik

      Wartość logiczna

Zwroty

  • Promise<boolean>

    Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

setControlSignals()

Obietnica
chrome.serial.setControlSignals(
  connectionId: number,
  signals: HostControlSignals,
  callback?: function,
)
: Promise<boolean>

Ustawia stan sygnałów sterujących w danym połączeniu.

Parametry

  • connectionId

    liczba

    Identyfikator połączenia.

  • Zestaw zmian sygnałów do wysłania na urządzenie.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (result: boolean) => void

    • wynik

      Wartość logiczna

Zwroty

  • Promise<boolean>

    Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

setPaused()

Obietnica
chrome.serial.setPaused(
  connectionId: number,
  paused: boolean,
  callback?: function,
)
: Promise<void>

Wstrzymuje lub wznawia otwarte połączenie.

Parametry

  • connectionId

    liczba

    Identyfikator otwartego połączenia.

  • wstrzymana

    Wartość logiczna

    Flaga wskazująca, czy wstrzymać czy wznowić.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

update()

Obietnica
chrome.serial.update(
  connectionId: number,
  options: ConnectionOptions,
  callback?: function,
)
: Promise<boolean>

Aktualizowanie ustawień opcji w przypadku otwartego połączenia z portem szeregowym.

Parametry

  • connectionId

    liczba

    Identyfikator otwartego połączenia.

  • Opcje konfiguracji portu.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (result: boolean) => void

    • wynik

      Wartość logiczna

Zwroty

  • Promise<boolean>

    Chrome 117 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

Wydarzenia

onReceive

chrome.serial.onReceive.addListener(
  callback: function,
)

Zdarzenie wywoływane po odczytaniu danych z połączenia.

Parametry

onReceiveError

chrome.serial.onReceiveError.addListener(
  callback: function,
)

Zdarzenie wywoływane, gdy podczas oczekiwania środowiska wykonawczego na dane na porcie szeregowym wystąpił błąd. Po wywołaniu tego zdarzenia połączenie może zostać ustawione na paused. Błąd "timeout" nie wstrzymuje połączenia.

Parametry