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 funkcjichrome.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()
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 nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
connect()
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
-
connectionInfo
-
Zwroty
-
Promise<ConnectionInfo>
Chrome 117 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
disconnect()
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 nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
flush()
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 nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
getConnections()
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
-
connectionInfos
-
Zwroty
-
Promise<ConnectionInfo[]>
Chrome 117 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
getControlSignals()
chrome.serial.getControlSignals(
connectionId: number,
callback?: function,
): Promise<DeviceControlSignals>
Pobiera stan sygnałów sterujących na danym połączeniu.
Parametry
-
connectionId
liczba
Identyfikator połączenia.
-
callback
funkcja opcjonalna
Parametr
callback
wygląda tak:(signals: DeviceControlSignals) => void
-
sygnały
-
Zwroty
-
Promise<DeviceControlSignals>
Chrome 117 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
getDevices()
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
-
ports
-
Zwroty
-
Promise<DeviceInfo[]>
Chrome 117 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
getInfo()
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
-
connectionInfo
-
Zwroty
-
Promise<ConnectionInfo>
Chrome 117 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
send()
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
-
sendInfo
-
Zwroty
-
Promise<SendInfo>
Chrome 117 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
setBreak()
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 nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
setControlSignals()
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.
-
sygnały
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 nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
setPaused()
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 nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
update()
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
Opcje konfiguracji portu.
-
callback
funkcja opcjonalna
Parametr
callback
wygląda tak:(result: boolean) => void
-
wynik
Wartość logiczna
-
Zwroty
-
Promise<boolean>
Chrome 117 lub nowszaObietnice 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
-
callback
funkcja
Parametr
callback
wygląda tak:(info: ReceiveInfo) => void
-
informacje
-
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
-
callback
funkcja
Parametr
callback
wygląda tak:(info: ReceiveErrorInfo) => void
-
informacje
-