chrome.serial

คำอธิบาย

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

สิทธิ์

serial

ความพร้อมใช้งาน

ChromeOS เท่านั้น

ประเภท

ConnectionInfo

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

  • อัตราบิต

    number ไม่บังคับ

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

  • bufferSize

    ตัวเลข

    ดู ConnectionOptions.bufferSize

  • connectionId

    ตัวเลข

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

  • ctsFlowControl

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

    ดูConnectionOptions.ctsFlowControl ระบบอาจละเว้นช่องนี้หากเกิดข้อผิดพลาดขณะค้นหาอุปกรณ์ที่เกี่ยวข้อง

  • dataBits

    DataBits ไม่บังคับ

    ดูConnectionOptions.dataBits ระบบอาจละเว้นช่องนี้หากเกิดข้อผิดพลาดขณะค้นหาอุปกรณ์ที่เกี่ยวข้อง

  • name

    สตริง

    ดู ConnectionOptions.name

  • parityBit

    ParityBit ไม่บังคับ

    ดูConnectionOptions.parityBit ระบบอาจละเว้นช่องนี้หากเกิดข้อผิดพลาดขณะค้นหาอุปกรณ์ที่เกี่ยวข้อง

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

    บูลีน

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

  • ถาวร

    บูลีน

    ดู ConnectionOptions.persistent

  • receiveTimeout

    ตัวเลข

    ดู ConnectionOptions.receiveTimeout

  • sendTimeout

    ตัวเลข

    ดู ConnectionOptions.sendTimeout

  • stopBits

    StopBits ไม่บังคับ

    ดูConnectionOptions.stopBits ระบบอาจละเว้นช่องนี้หากเกิดข้อผิดพลาดขณะค้นหาอุปกรณ์ที่เกี่ยวข้อง

ConnectionOptions

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

  • อัตราบิต

    number ไม่บังคับ

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

  • bufferSize

    number ไม่บังคับ

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

  • ctsFlowControl

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

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

  • dataBits

    DataBits ไม่บังคับ

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

  • name

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

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

  • parityBit

    ParityBit ไม่บังคับ

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

  • ถาวร

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

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

  • receiveTimeout

    number ไม่บังคับ

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

  • sendTimeout

    number ไม่บังคับ

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

  • stopBits

    StopBits ไม่บังคับ

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

DataBits

ค่าแจกแจง

"เจ็ด"

"แปด"

DeviceControlSignals

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

  • cts

    บูลีน

    CTS (Clear To Send)

  • dcd

    บูลีน

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

  • dsr

    บูลีน

    DSR (Data Set Ready)

  • ri

    บูลีน

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

DeviceInfo

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

  • displayName

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

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

  • เส้นทาง

    สตริง

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

  • productId

    number ไม่บังคับ

    รหัสสินค้า USB หากระบุรหัสสินค้าสำหรับอุปกรณ์ที่เกี่ยวข้องได้

  • vendorId

    number ไม่บังคับ

    รหัสผู้ให้บริการ PCI หรือ USB หากระบุรหัสสำหรับอุปกรณ์ที่เกี่ยวข้องได้

HostControlSignals

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

  • dtr

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

    DTR (Data Terminal Ready)

  • rts

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

    RTS (Request To Send)

ParityBit

ค่าแจกแจง

"no"

"odd"

"even"

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()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • callback

    function ไม่บังคับ

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    Chrome 117 ขึ้นไป

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

connect()

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

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

พารามิเตอร์

  • เส้นทาง

    สตริง

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

  • ตัวเลือก

    ConnectionOptions ไม่บังคับ

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

  • callback

    function ไม่บังคับ

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

    (connectionInfo: ConnectionInfo) => void

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

  • Chrome 117 ขึ้นไป

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

disconnect()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • callback

    function ไม่บังคับ

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    Chrome 117 ขึ้นไป

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

flush()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

  • callback

    function ไม่บังคับ

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    Chrome 117 ขึ้นไป

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

getConnections()

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

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

พารามิเตอร์

  • callback

    function ไม่บังคับ

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

    (connectionInfos: ConnectionInfo[]) => void

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

  • Promise<ConnectionInfo[]>

    Chrome 117 ขึ้นไป

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

getControlSignals()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • callback

    function ไม่บังคับ

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

    (signals: DeviceControlSignals) => void

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

  • Chrome 117 ขึ้นไป

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

getDevices()

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

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

พารามิเตอร์

  • callback

    function ไม่บังคับ

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

    (ports: DeviceInfo[]) => void

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

  • Promise<DeviceInfo[]>

    Chrome 117 ขึ้นไป

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

getInfo()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • callback

    function ไม่บังคับ

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

    (connectionInfo: ConnectionInfo) => void

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

  • Chrome 117 ขึ้นไป

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

send()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • เพิ่มเติม

    ArrayBuffer

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

  • callback

    function ไม่บังคับ

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

    (sendInfo: SendInfo) => void

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

  • Promise<SendInfo>

    Chrome 117 ขึ้นไป

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

setBreak()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • callback

    function ไม่บังคับ

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    Chrome 117 ขึ้นไป

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

setControlSignals()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • สัญญาณ

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

  • callback

    function ไม่บังคับ

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    Chrome 117 ขึ้นไป

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

setPaused()

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

หยุดชั่วคราวหรือกลับมาทำงานอีกครั้งสำหรับการเชื่อมต่อที่เปิดอยู่

พารามิเตอร์

  • connectionId

    ตัวเลข

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

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

    บูลีน

    แฟล็กเพื่อระบุว่าจะหยุดชั่วคราวหรือกลับมาทำงานอีกครั้ง

  • callback

    function ไม่บังคับ

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

    () => void

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

  • Promise<void>

    Chrome 117 ขึ้นไป

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

update()

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

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

พารามิเตอร์

  • connectionId

    ตัวเลข

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

  • ตัวเลือก

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

  • callback

    function ไม่บังคับ

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

    (result: boolean) => void

    • ผลลัพธ์

      บูลีน

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

  • Promise<boolean>

    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