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 คุณอาจละเว้นฟิลด์นี้ได้หากเกิดข้อผิดพลาดขณะค้นหาอุปกรณ์ที่เกี่ยวข้อง

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

    บูลีน

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

  • ต่อเนื่อง

    บูลีน

    ดู 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" เมื่อโหลดแอปพลิเคชันแล้ว การเชื่อมต่อแบบอนุกรมที่เปิดไว้ก่อนหน้านี้โดยมี persistent=true จะดึงข้อมูลได้ด้วย getConnections

  • receiveTimeout

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

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

  • sendTimeout

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

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

  • stopBits

    StopBits ไม่บังคับ

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

DataBits

ค่าแจกแจง

"seven"

"eight"

DeviceControlSignals

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

  • cts

    บูลีน

    CTS (Clear To Send)

  • dcd

    บูลีน

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

  • dsr

    บูลีน

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

  • ri

    บูลีน

    RI (Ring Indicator)

DeviceInfo

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

  • displayName

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

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

  • เส้นทาง

    สตริง

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

  • productId

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

    รหัสผลิตภัณฑ์ USB หากระบุได้สำหรับอุปกรณ์พื้นฐาน

  • vendorId

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

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

HostControlSignals

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

  • dtr

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

    DTR (Data Terminal Ready)

  • rts

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

    RTS (คำขอส่ง)

ParityBit

ค่าแจกแจง

"ไม่"

"odd"

"even"

ReceiveError

ค่าแจกแจง

"ยกเลิกการเชื่อมต่อ"
ระบบยกเลิกการเชื่อมต่อแล้ว

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

"device_lost"
อุปกรณ์น่าจะยกเลิกการเชื่อมต่อจากโฮสต์

"หยุด"
อุปกรณ์ตรวจพบเงื่อนไขการหยุด

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

"เกิน"
เกิดการล้นบัฟเฟอร์อักขระ อักขระถัดไปหายไป

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

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

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

ReceiveErrorInfo

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

  • connectionId

    ตัวเลข

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

  • ข้อผิดพลาด

    รหัสข้อผิดพลาดที่ระบุว่าเกิดอะไรขึ้น

ReceiveInfo

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

  • connectionId

    ตัวเลข

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

  • เพิ่มเติม

    ArrayBuffer

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

SendError

ค่าแจกแจง

"ยกเลิกการเชื่อมต่อ"
ระบบยกเลิกการเชื่อมต่อแล้ว

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

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

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

SendInfo

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

  • bytesSent

    ตัวเลข

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

  • ข้อผิดพลาด

    SendError ไม่บังคับ

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

StopBits

ค่าแจกแจง

"one"

"two"

เมธอด

clearBreak()

Promise Chrome 45 ขึ้นไป
chrome.serial.clearBreak(
  connectionId: number,
  callback?: function,
)
: Promise<boolean>

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • callback

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

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    Chrome 117 ขึ้นไป

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

connect()

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

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

พารามิเตอร์

  • เส้นทาง

    สตริง

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

  • ตัวเลือก

    ConnectionOptions ไม่บังคับ

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

  • callback

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

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

    (connectionInfo: ConnectionInfo) => void

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

  • Chrome 117 ขึ้นไป

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

disconnect()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • callback

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

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    Chrome 117 ขึ้นไป

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

flush()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

  • callback

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

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    Chrome 117 ขึ้นไป

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

getConnections()

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

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

พารามิเตอร์

  • callback

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

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

    (connectionInfos: ConnectionInfo[]) => void

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

  • Promise<ConnectionInfo[]>

    Chrome 117 ขึ้นไป

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

getControlSignals()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • callback

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

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

    (signals: DeviceControlSignals) => void

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

  • Chrome 117 ขึ้นไป

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

getDevices()

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

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

พารามิเตอร์

  • callback

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

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

    (ports: DeviceInfo[]) => void

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

  • Promise<DeviceInfo[]>

    Chrome 117 ขึ้นไป

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

getInfo()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • callback

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

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

    (connectionInfo: ConnectionInfo) => void

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

  • Chrome 117 ขึ้นไป

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

send()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • เพิ่มเติม

    ArrayBuffer

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

  • callback

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

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

    (sendInfo: SendInfo) => void

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

  • Promise<SendInfo>

    Chrome 117 ขึ้นไป

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

setBreak()

Promise Chrome 45 ขึ้นไป
chrome.serial.setBreak(
  connectionId: number,
  callback?: function,
)
: Promise<boolean>

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • callback

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

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    Chrome 117 ขึ้นไป

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

setControlSignals()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • สัญญาณ

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

  • callback

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

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    Chrome 117 ขึ้นไป

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

setPaused()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

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

    บูลีน

    Flag เพื่อระบุว่าจะหยุดชั่วคราวหรือยกเลิกการหยุดชั่วคราว

  • callback

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

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

    () => void

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

  • Promise<void>

    Chrome 117 ขึ้นไป

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

update()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • ตัวเลือก

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

  • callback

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

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    Chrome 117 ขึ้นไป

    ระบบรองรับ Promise สำหรับไฟล์ 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