chrome.serial

คำอธิบาย

ใช้ chrome.serial API เพื่ออ่านและเขียนในอุปกรณ์ที่เชื่อมต่อกับพอร์ตอนุกรม

สิทธิ์

serial

ประเภท

ConnectionInfo

พร็อพเพอร์ตี้

  • อัตราบิต

    หมายเลข ไม่บังคับ

    ดูConnectionOptions.bitrate ช่องนี้อาจละเว้นหรือไม่ถูกต้องหากมีการใช้อัตราบิตที่ไม่ใช่มาตรฐาน หรือหากเกิดข้อผิดพลาดขณะค้นหาอุปกรณ์ที่สำคัญ

  • bufferSize

    ตัวเลข

    ดู ConnectionOptions.bufferSize

  • connectionId

    ตัวเลข

    รหัสของการเชื่อมต่อพอร์ตอนุกรม

  • ctsFlowControl

    บูลีน ไม่บังคับ

    ดูConnectionOptions.ctsFlowControl อาจมีการละฟิลด์นี้หากเกิดข้อผิดพลาดขณะค้นหาอุปกรณ์ที่สำคัญ

  • dataBits

    DataBits ไม่บังคับ

    ดูConnectionOptions.dataBits อาจมีการละฟิลด์นี้หากเกิดข้อผิดพลาดขณะค้นหาอุปกรณ์ที่สำคัญ

  • ชื่อ

    สตริง

    ดู ConnectionOptions.name

  • parityBit

    ParityBit ไม่บังคับ

    ดูConnectionOptions.parityBit อาจมีการละฟิลด์นี้หากเกิดข้อผิดพลาดขณะค้นหาอุปกรณ์ที่สำคัญ

  • หยุดชั่วคราว

    boolean

    การแจ้งที่ระบุว่าถูกบล็อกการเชื่อมต่อไม่ให้เริ่มการทำงานของเหตุการณ์ onReceive หรือไม่

  • ต่อเนื่อง

    boolean

    ดู ConnectionOptions.persistent

  • receiveTimeout

    ตัวเลข

    ดู ConnectionOptions.receiveTimeout

  • sendTimeout

    ตัวเลข

    ดู ConnectionOptions.sendTimeout

  • stopBits

    StopBits ไม่บังคับ

    ดูConnectionOptions.stopBits อาจมีการละฟิลด์นี้หากเกิดข้อผิดพลาดขณะค้นหาอุปกรณ์ที่สำคัญ

ConnectionOptions

พร็อพเพอร์ตี้

  • อัตราบิต

    หมายเลข ไม่บังคับ

    บิตเรตของการเชื่อมต่อที่ขอเพื่อเปิด เพื่อให้สามารถเข้ากันได้กับฮาร์ดแวร์หลากหลายประเภท ตัวเลขนี้ควรตรงกับอัตราบิตที่พร้อมใช้งานทั่วไป เช่น 110, 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200 แน่นอนว่าไม่มีการรับประกันว่าอุปกรณ์ที่เชื่อมต่อกับพอร์ตอนุกรมจะรองรับอัตราบิตที่ขอ แม้ว่าพอร์ตจะรองรับอัตราบิตดังกล่าวก็ตาม ระบบจะส่ง 9600 โดยค่าเริ่มต้น

  • bufferSize

    หมายเลข ไม่บังคับ

    ขนาดของบัฟเฟอร์ที่ใช้รับข้อมูล ค่าเริ่มต้นคือ 4096

  • ctsFlowControl

    บูลีน ไม่บังคับ

    การแจ้งที่ระบุว่าจะเปิดใช้การควบคุมโฟลว์ของฮาร์ดแวร์ RTS/CTS หรือไม่ ค่าเริ่มต้นคือ "เท็จ"

  • dataBits

    DataBits ไม่บังคับ

    ระบบจะส่ง "eight" โดยค่าเริ่มต้น

  • ชื่อ

    string ไม่บังคับ

    สตริงที่แอปพลิเคชันกำหนดเพื่อเชื่อมโยงกับการเชื่อมต่อ

  • parityBit

    ParityBit ไม่บังคับ

    ระบบจะส่ง "no" โดยค่าเริ่มต้น

  • ต่อเนื่อง

    บูลีน ไม่บังคับ

    การแจ้งที่ระบุว่าควรเปิดการเชื่อมต่อทิ้งไว้หรือไม่เมื่อแอปพลิเคชันถูกระงับ (โปรดดูจัดการวงจรของแอป) ค่าเริ่มต้นคือ "false" เมื่อโหลดแอปพลิเคชันแล้ว คุณจะดึงข้อมูลการเชื่อมต่ออนุกรมที่เคยเปิดด้วย Persistent=true ได้ด้วย getConnections

  • receiveTimeout

    หมายเลข ไม่บังคับ

    ระยะเวลาสูงสุด (เป็นมิลลิวินาที) ในการรอข้อมูลใหม่ก่อนเรียกเหตุการณ์ onReceiveError ที่มี "ระยะหมดเวลา" หากเป็น 0 ข้อผิดพลาดการหมดเวลาจะไม่เพิ่มขึ้นสำหรับการเชื่อมต่อ ค่าเริ่มต้นคือ 0

  • sendTimeout

    หมายเลข ไม่บังคับ

    ระยะเวลาสูงสุด (เป็นมิลลิวินาที) ในการรอให้การดำเนินการ send เสร็จสิ้นก่อนที่จะเรียก Callback ที่มี "ระยะหมดเวลา" หากเป็น 0 ระบบจะไม่ทริกเกอร์ข้อผิดพลาดการหมดเวลาในการส่ง ค่าเริ่มต้นคือ 0

  • stopBits

    StopBits ไม่บังคับ

    ระบบจะส่ง "one" โดยค่าเริ่มต้น

DataBits

ค่าแจกแจง

"7"

"8"

DeviceControlSignals

พร็อพเพอร์ตี้

  • หน่วย

    boolean

    CTS (Clear To Send)

  • dcd

    boolean

    DCD (Data Carrier Detect) หรือ RLSD (Receive Line Signal/ Detect)

  • dsr

    boolean

    DSR (ชุดข้อมูลพร้อมใช้)

  • รี

    boolean

    RI (สัญญาณบอกสถานะวงแหวน)

DeviceInfo

พร็อพเพอร์ตี้

  • displayName

    string ไม่บังคับ

    ชื่อที่แสดงที่มนุษย์อ่านได้สำหรับอุปกรณ์พื้นฐาน หากค้นหาได้จากไดรเวอร์ของโฮสต์

  • เส้นทาง

    สตริง

    เส้นทางระบบของอุปกรณ์ ซึ่งควรส่งผ่านเป็นอาร์กิวเมนต์ path ของ chrome.serial.connect เพื่อเชื่อมต่อกับอุปกรณ์นี้

  • productId

    หมายเลข ไม่บังคับ

    รหัสผลิตภัณฑ์ USB หากสามารถระบุสำหรับอุปกรณ์ที่สำคัญ

  • vendorId

    หมายเลข ไม่บังคับ

    รหัสผู้ให้บริการ PCI หรือ USB หากสามารถระบุรหัสสำหรับอุปกรณ์พื้นฐานได้

HostControlSignals

พร็อพเพอร์ตี้

  • dtr

    บูลีน ไม่บังคับ

    DTR (Data Terminal Ready)

  • RTS

    บูลีน ไม่บังคับ

    RTS (คำขอให้ส่ง)

ParityBit

ค่าแจกแจง

"ไม่"

"odd"

"even"

ReceiveError

ค่าแจกแจง

"disconnected"
การเชื่อมต่อถูกตัด

"timeout"
ไม่ได้รับข้อมูลเป็นเวลา receiveTimeout มิลลิวินาที

"device_lost"
อุปกรณ์อาจถูกตัดการเชื่อมต่อจากโฮสต์

"break"
อุปกรณ์ตรวจพบเงื่อนไขช่วงพัก

"frame_error"
อุปกรณ์ตรวจพบข้อผิดพลาดในการจัดเฟรม

"overrun"
เกิดการลบล้างอักขระบัฟเฟอร์ ตัวละครถัดไปหายไป

"buffer_overflow"
เกิดการล้นของบัฟเฟอร์อินพุต ไม่มีที่ว่างในบัฟเฟอร์อินพุตหรือมีอักขระหลังไฟล์สิ้นสุดไฟล์ (EOF)

"parity_error"
อุปกรณ์ตรวจพบข้อผิดพลาดเกี่ยวกับความเท่าเทียม

"system_error"
เกิดข้อผิดพลาดของระบบและอาจไม่สามารถกู้คืนการเชื่อมต่อได้

ReceiveErrorInfo

พร็อพเพอร์ตี้

  • connectionId

    ตัวเลข

    ตัวระบุการเชื่อมต่อ

  • ข้อผิดพลาด

    รหัสข้อผิดพลาดที่ระบุข้อผิดพลาด

ReceiveInfo

พร็อพเพอร์ตี้

  • connectionId

    ตัวเลข

    ตัวระบุการเชื่อมต่อ

  • ข้อมูล

    อาร์เรย์บัฟเฟอร์

    ข้อมูลที่ได้รับ

SendError

ค่าแจกแจง

"disconnected"
การเชื่อมต่อถูกตัด

"pending"
การส่งอยู่ระหว่างรอดำเนินการแล้ว

"หมดเวลา"
หมดเวลาการส่ง

"system_error"
เกิดข้อผิดพลาดของระบบและอาจไม่สามารถกู้คืนการเชื่อมต่อได้

SendInfo

พร็อพเพอร์ตี้

  • bytesSent

    ตัวเลข

    จำนวนไบต์ที่ส่ง

  • ข้อผิดพลาด

    SendError ไม่บังคับ

    รหัสข้อผิดพลาดหากเกิดข้อผิดพลาด

StopBits

ค่าแจกแจง

"หนึ่ง"

"two"

เมธอด

clearBreak()

สัญญา Chrome 45 ขึ้นไป
chrome.serial.clearBreak(
  connectionId: number,
  callback?: function,
)

คืนค่าการส่งอักขระในการเชื่อมต่อที่กำหนด และวางสายส่งในสถานะไม่หยุดพัก

พารามิเตอร์

  • connectionId

    ตัวเลข

    รหัสของการเชื่อมต่อ

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: boolean) => void

    • ผลลัพธ์

      boolean

การคืนสินค้า

  • Promise<boolean>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

connect()

สัญญา
chrome.serial.connect(
  path: string,
  options?: ConnectionOptions,
  callback?: function,
)

เชื่อมต่อกับพอร์ตอนุกรมที่ระบุ

พารามิเตอร์

  • เส้นทาง

    สตริง

    เส้นทางระบบของพอร์ตอนุกรมที่จะเปิด

  • ตัวเลือก

    ConnectionOptions ไม่บังคับ

    ตัวเลือกการกำหนดค่าพอร์ต

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (connectionInfo: ConnectionInfo) => void

การคืนสินค้า

  • Promise<ConnectionInfo>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

disconnect()

สัญญา
chrome.serial.disconnect(
  connectionId: number,
  callback?: function,
)

ยกเลิกการเชื่อมต่อกับพอร์ตอนุกรม

พารามิเตอร์

  • connectionId

    ตัวเลข

    รหัสของการเชื่อมต่อที่เปิดอยู่

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: boolean) => void

    • ผลลัพธ์

      boolean

การคืนสินค้า

  • Promise<boolean>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

flush()

สัญญา
chrome.serial.flush(
  connectionId: number,
  callback?: function,
)

ล้างไบต์ทั้งหมดในบัฟเฟอร์อินพุตและเอาต์พุตของการเชื่อมต่อที่ระบุ

พารามิเตอร์

  • connectionId

    ตัวเลข

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: boolean) => void

    • ผลลัพธ์

      boolean

การคืนสินค้า

  • Promise<boolean>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getConnections()

สัญญา
chrome.serial.getConnections(
  callback?: function,
)

เรียกรายการการเชื่อมต่อพอร์ตอนุกรมที่เปิดอยู่ซึ่งแอปพลิเคชันเป็นเจ้าของ

พารามิเตอร์

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (connectionInfos: ConnectionInfo[]) => void

การคืนสินค้า

  • Promise<ConnectionInfo[]>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getControlSignals()

สัญญา
chrome.serial.getControlSignals(
  connectionId: number,
  callback?: function,
)

ดึงสถานะของสัญญาณควบคุมในการเชื่อมต่อที่กำหนด

พารามิเตอร์

  • connectionId

    ตัวเลข

    รหัสของการเชื่อมต่อ

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (signals: DeviceControlSignals) => void

การคืนสินค้า

  • Promise<DeviceControlSignals>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getDevices()

สัญญา
chrome.serial.getDevices(
  callback?: function,
)

ส่งคืนข้อมูลเกี่ยวกับอุปกรณ์ซีเรียลที่ใช้ได้ในระบบ ระบบจะสร้างรายการขึ้นใหม่ทุกครั้งที่มีการเรียกวิธีการนี้

พารามิเตอร์

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (ports: DeviceInfo[]) => void

การคืนสินค้า

  • Promise<DeviceInfo[]>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getInfo()

สัญญา
chrome.serial.getInfo(
  connectionId: number,
  callback?: function,
)

ดึงสถานะของการเชื่อมต่อที่ระบุ

พารามิเตอร์

  • connectionId

    ตัวเลข

    รหัสของการเชื่อมต่อที่เปิดอยู่

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (connectionInfo: ConnectionInfo) => void

การคืนสินค้า

  • Promise<ConnectionInfo>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

send()

สัญญา
chrome.serial.send(
  connectionId: number,
  data: ArrayBuffer,
  callback?: function,
)

เขียนข้อมูลไปยังการเชื่อมต่อที่ระบุ

พารามิเตอร์

  • connectionId

    ตัวเลข

    รหัสของการเชื่อมต่อ

  • ข้อมูล

    อาร์เรย์บัฟเฟอร์

    ข้อมูลที่จะส่ง

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (sendInfo: SendInfo) => void

การคืนสินค้า

  • Promise<SendInfo>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

setBreak()

สัญญา Chrome 45 ขึ้นไป
chrome.serial.setBreak(
  connectionId: number,
  callback?: function,
)

ระงับการส่งอักขระผ่านการเชื่อมต่อที่กำหนด และวางสายส่งสัญญาณให้อยู่ในสถานะหยุดพักจนกว่าจะมีการเรียกใช้ clearBreak

พารามิเตอร์

  • connectionId

    ตัวเลข

    รหัสของการเชื่อมต่อ

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: boolean) => void

    • ผลลัพธ์

      boolean

การคืนสินค้า

  • Promise<boolean>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

setControlSignals()

สัญญา
chrome.serial.setControlSignals(
  connectionId: number,
  signals: HostControlSignals,
  callback?: function,
)

ตั้งค่าสถานะสัญญาณควบคุมในการเชื่อมต่อที่กำหนด

พารามิเตอร์

  • connectionId

    ตัวเลข

    รหัสของการเชื่อมต่อ

  • สัญญาณ

    ชุดของการเปลี่ยนแปลงสัญญาณที่จะส่งไปยังอุปกรณ์

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: boolean) => void

    • ผลลัพธ์

      boolean

การคืนสินค้า

  • Promise<boolean>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

setPaused()

สัญญา
chrome.serial.setPaused(
  connectionId: number,
  paused: boolean,
  callback?: function,
)

หยุดชั่วคราวหรือยกเลิกการหยุดการเชื่อมต่อที่เปิดอยู่ชั่วคราว

พารามิเตอร์

  • connectionId

    ตัวเลข

    รหัสของการเชื่อมต่อที่เปิดอยู่

  • หยุดชั่วคราว

    boolean

    แจ้งเพื่อระบุว่าจะหยุดชั่วคราวหรือยกเลิกการหยุดชั่วคราวหรือไม่

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำมั่นสัญญา<โมฆะ>

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

update()

สัญญา
chrome.serial.update(
  connectionId: number,
  options: ConnectionOptions,
  callback?: function,
)

อัปเดตการตั้งค่าตัวเลือกในการเชื่อมต่อพอร์ตอนุกรมที่เปิดอยู่

พารามิเตอร์

  • connectionId

    ตัวเลข

    รหัสของการเชื่อมต่อที่เปิดอยู่

  • ตัวเลือก

    ตัวเลือกการกำหนดค่าพอร์ต

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: boolean) => void

    • ผลลัพธ์

      boolean

การคืนสินค้า

  • Promise&lt;boolean&gt;

    Chrome 117 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

กิจกรรม

onReceive

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

เหตุการณ์จะเกิดขึ้นเมื่อมีการอ่านข้อมูลจากการเชื่อมต่อ

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (info: ReceiveInfo) => void

onReceiveError

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

เหตุการณ์เริ่มขึ้นเมื่อเกิดข้อผิดพลาดขณะรันไทม์กําลังรอข้อมูลในพอร์ตอนุกรม เมื่อเหตุการณ์นี้เกิดขึ้น การเชื่อมต่ออาจตั้งค่าเป็น paused ข้อผิดพลาด "timeout" จะไม่หยุดการเชื่อมต่อชั่วคราว

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (info: ReceiveErrorInfo) => void