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 หรือไม่ ค่าเริ่มต้นคือ False

  • dataBits

    DataBits ไม่บังคับ

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

  • ชื่อ

    สตริง ไม่บังคับ

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

  • parityBit

    ParityBit ไม่บังคับ

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

  • ต่อเนื่อง

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

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

  • receiveTimeout

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

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

  • sendTimeout

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

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

  • stopBits

    StopBits ไม่บังคับ

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

DataBits

ค่าแจกแจง

"seven"

"eight"

DeviceControlSignals

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

  • หน่วย

    boolean

    CTS (Clear To Send)

  • dcd

    boolean

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

  • dsr

    boolean

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

  • รี

    boolean

    RI (ตัวบ่งชี้การโทรเข้า)

DeviceInfo

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

  • displayName

    สตริง ไม่บังคับ

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

  • เส้นทาง

    สตริง

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

  • productId

    ตัวเลข ไม่บังคับ

    รหัสผลิตภัณฑ์ USB หากระบุรหัสสำหรับอุปกรณ์ที่เกี่ยวข้องได้

  • vendorId

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

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

HostControlSignals

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

  • dtr

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

    DTR (Data Terminal Ready)

  • rts

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

    RTS (Request To Send)

ParityBit

ค่าแจกแจง

"odd"

ReceiveError

ค่าแจกแจง

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

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

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

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

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

"overrun"
เกิดบัฟเฟอร์อักขระที่เกินขีดจำกัด อักขระถัดไปจะหายไป

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

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

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

ReceiveErrorInfo

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

  • connectionId

    ตัวเลข

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

  • ข้อผิดพลาด

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

ReceiveInfo

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

  • connectionId

    ตัวเลข

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

  • ข้อมูล

    ArrayBuffer

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

SendError

ค่าแจกแจง

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

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

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

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

SendInfo

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

  • bytesSent

    ตัวเลข

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

  • ข้อผิดพลาด

    SendError ไม่บังคับ

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

StopBits

ค่าแจกแจง

"one"

เมธอด

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 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

getConnections()

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

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

พารามิเตอร์

  • Callback

    ฟังก์ชัน ไม่บังคับ

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

    (connectionInfos: ConnectionInfo[]) => void

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

  • Promise<ConnectionInfo[]>

    Chrome 117 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

getControlSignals()

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

ดึงข้อมูลสถานะของสัญญาณควบคุมในการเชื่อมต่อหนึ่งๆ

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • Callback

    ไม่บังคับ

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

    (signals: DeviceControlSignals) => void

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

  • Chrome 117 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

getDevices()

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

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

พารามิเตอร์

  • Callback

    ไม่บังคับ

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

    (ports: DeviceInfo[]) => void

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

  • Promise<DeviceInfo[]>

    Chrome 117 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

getInfo()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • Callback

    ไม่บังคับ

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

    (connectionInfo: ConnectionInfo) => void

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

  • Promise&lt;ConnectionInfo&gt;

    Chrome 117 ขึ้นไป

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

send()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • ข้อมูล

    ArrayBuffer

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

  • 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&lt;boolean&gt;

    Chrome 117 ขึ้นไป

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

setControlSignals()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • สัญญาณ

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

  • Callback

    ไม่บังคับ

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

    (result: boolean) => void

    • ผลลัพธ์

      boolean

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

  • Promise&lt;boolean&gt;

    Chrome 117 ขึ้นไป

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

setPaused()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

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

    boolean

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

  • Callback

    ไม่บังคับ

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

    () => void

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

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

    Chrome 117 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

update()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • ตัวเลือก

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

  • Callback

    ฟังก์ชัน ไม่บังคับ

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

    (result: boolean) => void

    • ผลลัพธ์

      boolean

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

  • Promise&lt;boolean&gt;

    Chrome 117 ขึ้นไป

    ระบบรองรับ Promises สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

กิจกรรม

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