ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਸਟੈਕ ਨਿਰਦੇਸ਼ ਮੈਨੂਅਲ

USB ਡਿਵਾਈਸ ਸਟੈਕ

ਨਿਰਧਾਰਨ

  • USB ਸੰਸਕਰਣ: 1.5.1
  • ਰਿਲੀਜ਼ ਦੀ ਮਿਤੀ: 21 ਜੁਲਾਈ, 2025
  • ਸਾਦਗੀ SDK ਸੰਸਕਰਣ: 2025.6.1

ਉਤਪਾਦ ਵੱਧview

ਸਿਲੀਕਾਨ ਲੈਬਜ਼ ਦੁਆਰਾ USB ਡਿਵਾਈਸ ਸਟੈਕ ਬਹੁਪੱਖੀ ਅਤੇ
IoT ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਵਰਤੋਂ ਵਿੱਚ ਆਸਾਨ USB ਕਨੈਕਟੀਵਿਟੀ, ਸਹੂਲਤ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ
ਨੈੱਟਵਰਕ ਸਹਿ-ਪ੍ਰੋਸੈਸਰਾਂ ਅਤੇ ਹੋਸਟਾਂ ਵਿਚਕਾਰ ਸੰਚਾਰ।

ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ

  • ਕੁਸ਼ਲ USB ਡਿਵਾਈਸ ਸਟੈਕ
  • IoT ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਆਦਰਸ਼
  • ਨੈੱਟਵਰਕ ਸਹਿ-ਪ੍ਰੋਸੈਸਰਾਂ ਵਿਚਕਾਰ ਸੰਚਾਰ ਲਈ ਸਮਰਥਨ ਅਤੇ
    ਮੇਜ਼ਬਾਨ

ਉਤਪਾਦ ਵਰਤੋਂ ਨਿਰਦੇਸ਼

USB ਡਿਵਾਈਸ ਕੌਂਫਿਗਰੇਸ਼ਨ

ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ ਦੇ ਅਨੁਸਾਰ USB ਡਿਵਾਈਸ ਸੈਟਿੰਗਾਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰੋ।
USB ਡਿਵਾਈਸ ਕੌਂਫਿਗਰੇਸ਼ਨ ਸੈਕਸ਼ਨ ਦਾ ਹਵਾਲਾ ਦੇ ਕੇ ਲੋੜਾਂ
ਦਸਤਾਵੇਜ਼ਾਂ ਵਿੱਚ।

USB ਡਿਵਾਈਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ

ਇਹ ਸਮਝਣ ਲਈ ਕਿ ਕਿਵੇਂ ਕਰਨਾ ਹੈ, USB ਡਿਵਾਈਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ ਦੀ ਪਾਲਣਾ ਕਰੋ
ਪ੍ਰੋਗਰਾਮ ਕਰੋ ਅਤੇ ਵੱਖ-ਵੱਖ ਲਈ USB ਡਿਵਾਈਸ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰੋ
ਐਪਲੀਕੇਸ਼ਨ.

USB ਡਿਵਾਈਸ ਕਲਾਸਾਂ

USB ਡਿਵਾਈਸ ਕਲਾਸ ਸੈਕਸ਼ਨ ਇੱਕ ਓਵਰ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈview ਵੱਖ-ਵੱਖ ਦੇ
CDC ACM, HID, MSC SCSI, ਅਤੇ ਵੈਂਡਰ ਕਲਾਸ ਵਰਗੀਆਂ ਕਲਾਸਾਂ। ਚੁਣੋ
ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਦੀ ਕਾਰਜਸ਼ੀਲਤਾ ਦੇ ਆਧਾਰ 'ਤੇ ਢੁਕਵੀਂ ਸ਼੍ਰੇਣੀ।

USB ਡਿਵਾਈਸ ਸਮੱਸਿਆ ਨਿਪਟਾਰਾ

ਜੇਕਰ ਤੁਹਾਨੂੰ USB ਡਿਵਾਈਸ ਨਾਲ ਕੋਈ ਸਮੱਸਿਆ ਆਉਂਦੀ ਹੈ, ਤਾਂ ਵੇਖੋ
ਹੱਲ ਅਤੇ ਡੀਬੱਗਿੰਗ ਲਈ USB ਡਿਵਾਈਸ ਟ੍ਰਬਲਸ਼ੂਟਿੰਗ ਸੈਕਸ਼ਨ
ਸੁਝਾਅ

ਮਾਈਕ੍ਰੋਸਾਫਟ ਵਿੰਡੋਜ਼ ਓਐਸ USB ਹੋਸਟ

ਜੇਕਰ ਤੁਸੀਂ USB ਡਿਵਾਈਸ ਨੂੰ Microsoft Windows OS USB ਨਾਲ ਵਰਤ ਰਹੇ ਹੋ
ਮੇਜ਼ਬਾਨ, ਵਿੱਚ ਦਿੱਤੇ ਗਏ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਪਾਲਣਾ ਕਰਨਾ ਯਕੀਨੀ ਬਣਾਓ
ਸਹਿਜ ਏਕੀਕਰਨ ਲਈ ਦਸਤਾਵੇਜ਼।

FAQ

ਸਵਾਲ: ਕੁਝ ਆਮ ਸਾਬਕਾ ਕੀ ਹਨampਮੈਂ ਕਿੰਨੇ ਡਿਵਾਈਸਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਣਾ ਸਕਦਾ ਹਾਂ
ਇਹ USB ਸਟੈਕ?

A: USB ਸਟੈਕ ਤੁਹਾਨੂੰ ਡਿਵਾਈਸਾਂ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ
USB-ਤੋਂ-ਸੀਰੀਅਲ ਅਡੈਪਟਰ, ਚੂਹੇ ਜਾਂ ਕੀਬੋਰਡ, ਹਟਾਉਣਯੋਗ ਸਟੋਰੇਜ
ਡਿਵਾਈਸਾਂ, ਅਤੇ ਕਸਟਮ ਡਿਵਾਈਸਾਂ।

ਸਵਾਲ: ਕੀ ਇਸਦੀ ਵਰਤੋਂ ਲਈ ਕੋਈ ਖਾਸ ਸਾਫਟਵੇਅਰ ਲੋੜਾਂ ਹਨ?
USB ਡਿਵਾਈਸ ਸਟੈਕ?

A: ਅਨੁਕੂਲ ਸਾਫਟਵੇਅਰ ਵਿੱਚ ਸਿਮਪਲੀਸਿਟੀ SDK, ਸਿਮਪਲੀਸਿਟੀ ਸ਼ਾਮਲ ਹੈ
ਸਟੂਡੀਓ, ਸਿਮਪਲਿਸਿਟੀ ਕਮਾਂਡਰ, ਜੀਸੀਸੀ (ਜੀਐਨਯੂ ਕੰਪਾਈਲਰ ਕਲੈਕਸ਼ਨ),
ARM ਲਈ IAR ਏਮਬੈਡਡ ਵਰਕਬੈਂਚ, ਅਤੇ IAR EWARM।

ਯੂਨੀਵਰਸਲ ਸੀਰੀਅਲ ਬੱਸ USB

ਯੂਨੀਵਰਸਲ ਸੀਰੀਅਲ ਬੱਸ USB

USB ਓਵਰview ਵੱਧview
ਰੀਲੀਜ਼ ਨੋਟਸ USB
ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂview
USB ਡਿਵਾਈਸ ਕੌਂਫਿਗਰੇਸ਼ਨ ਖਤਮview
USB ਡਿਵਾਈਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ ਓਵਰview
USB ਡਿਵਾਈਸ ਕਲਾਸਾਂ ਖਤਮview ਸੀਡੀਸੀ ਏਸੀਐਮ ਕਲਾਸ ਓਵਰview HID ਕਲਾਸ ਖਤਮview MSC SCSI ਕਲਾਸ ਓਵਰview ਵਿਕਰੇਤਾ ਕਲਾਸ ਖਤਮview
USB API API ਦਸਤਾਵੇਜ਼ USB ਡਿਵਾਈਸ API USB ਡਿਵਾਈਸ ACM API a sl_usbd_cdc_ cm_line_coding_t sl_usbd_cdc_acm_callbacks_t USB ਡਿਵਾਈਸ CDC API a sl_usbd_cdc_subcl ss_driver_t USB ਡਿਵਾਈਸ ਕੋਰ API
sl_usbd_ਡਿਵਾਈਸ_ਕੌਨਫਿਗ_ਟੀ sl_usbd_ਸੈੱਟਅੱਪ_req_ਟੀ
ਇੱਕ sl_usbd_cl ss_driver_t USB ਡਿਵਾਈਸ HID API
sl_usbd_hid_callbacks_t USB ਡਿਵਾਈਸ MSC API
ਇੱਕ sl_usbd_msc_subcl ss_driver_t USB ਡਿਵਾਈਸ MSC SCSI API
sl_usbd_msc_scsi_ਕਾਲਬੈਕ_t

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

1/174

ਯੂਨੀਵਰਸਲ ਸੀਰੀਅਲ ਬੱਸ USB
ਇੱਕ sl_usbd_msc_scsi_lun_ ਪਾਈ
sl_usbd_msc_scsi_lun_info sl_usbd_msc_scsi_lun
USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ API sl_usbd_vendor_callbacks_t
API ਦਸਤਾਵੇਜ਼ USB ਡਿਵਾਈਸ ਸਮੱਸਿਆ ਨਿਪਟਾਰਾ
ਵੱਧview ਮਾਈਕ੍ਰੋਸਾਫਟ ਵਿੰਡੋਜ਼ ਓਐਸ USB ਹੋਸਟ
ਵੱਧview

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

2/174

ਵੱਧview
ਵੱਧview
USB ਡਿਵਾਈਸ
USB ਕੰਪਿਊਟਰ ਸਿਸਟਮਾਂ ਦੇ ਇਤਿਹਾਸ ਵਿੱਚ ਸਭ ਤੋਂ ਸਫਲ ਸੰਚਾਰ ਇੰਟਰਫੇਸਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ ਅਤੇ ਕੰਪਿਊਟਰ ਪੈਰੀਫਿਰਲਾਂ ਨੂੰ ਜੋੜਨ ਲਈ ਅਸਲ ਮਿਆਰ ਹੈ। ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਸਟੈਕ ਇੱਕ USB ਡਿਵਾਈਸ ਮੋਡੀਊਲ ਹੈ ਜੋ ਖਾਸ ਤੌਰ 'ਤੇ ਏਮਬੈਡਡ ਸਿਸਟਮਾਂ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਸਿਲੀਕਾਨ ਲੈਬਜ਼ ਦੀ ਗੁਣਵੱਤਾ, ਸਕੇਲੇਬਿਲਟੀ ਅਤੇ ਭਰੋਸੇਯੋਗਤਾ ਦੇ ਨਾਲ ਜ਼ਮੀਨ ਤੋਂ ਬਣਾਇਆ ਗਿਆ, ਇਹ USB 2.0 ਨਿਰਧਾਰਨ ਦੀ ਪਾਲਣਾ ਕਰਨ ਲਈ ਇੱਕ ਸਖ਼ਤ ਪ੍ਰਮਾਣਿਕਤਾ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚੋਂ ਲੰਘਿਆ ਹੈ। ਇਹ ਦਸਤਾਵੇਜ਼ ਦੱਸਦਾ ਹੈ ਕਿ ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਸਟੈਕ ਨੂੰ ਕਿਵੇਂ ਸ਼ੁਰੂ ਕਰਨਾ, ਸ਼ੁਰੂ ਕਰਨਾ ਅਤੇ ਵਰਤਣਾ ਹੈ। ਇਹ ਵੱਖ-ਵੱਖ ਸੰਰਚਨਾ ਮੁੱਲਾਂ ਅਤੇ ਉਹਨਾਂ ਦੇ ਉਪਯੋਗਾਂ ਦੀ ਵਿਆਖਿਆ ਕਰਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਇੱਕ ਓਵਰ ਵੀ ਸ਼ਾਮਲ ਹੈview ਤਕਨਾਲੋਜੀ, ਸੰਰਚਨਾ ਸੰਭਾਵਨਾਵਾਂ ਦੀਆਂ ਕਿਸਮਾਂ, ਲਾਗੂ ਕਰਨ ਦੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ, ਅਤੇ ਸਾਬਕਾampਹਰੇਕ ਉਪਲਬਧ ਕਲਾਸ ਲਈ ਕੁਝ ਆਮ ਵਰਤੋਂ।
USB ਸੰਕਲਪਾਂ ਨੂੰ ਜਲਦੀ ਸਮਝਣ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰਨ ਲਈ, ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਸਾਬਕਾ ਸ਼ਾਮਲ ਹਨampਬੁਨਿਆਦੀ ਫੰਕਸ਼ਨਾਂ ਦੇ ਨਾਲ USB ਦੇ ਘੱਟ। ਇਹ ਸਾਬਕਾamples ਤੁਹਾਨੂੰ ਇੱਕ ਢਾਂਚਾ ਪ੍ਰਦਾਨ ਕਰੇਗਾ ਜੋ ਤੁਹਾਨੂੰ ਡਿਵਾਈਸਾਂ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਉਦਾਹਰਣamples ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ:
USB-ਤੋਂ-ਸੀਰੀਅਲ ਅਡੈਪਟਰ (ਸੰਚਾਰ ਡਿਵਾਈਸ ਕਲਾਸ) ਮਾਊਸ ਜਾਂ ਕੀਬੋਰਡ (ਮਨੁੱਖੀ ਇੰਟਰਫੇਸ ਡਿਵਾਈਸ ਕਲਾਸ) ਹਟਾਉਣਯੋਗ ਸਟੋਰੇਜ ਡਿਵਾਈਸ (ਮਾਸ ਸਟੋਰੇਜ ਕਲਾਸ) ਕਸਟਮ ਡਿਵਾਈਸ (ਵਿਕਰੇਤਾ ਕਲਾਸ)
ਹੇਠ ਦਿੱਤਾ ਓਵਰ ਹੈview ਦਸਤਾਵੇਜ਼ ਭਾਗਾਂ ਵਿੱਚੋਂ:
ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ USB ਡਿਵਾਈਸ ਕੌਂਫਿਗਰੇਸ਼ਨ USB ਡਿਵਾਈਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ USB ਡਿਵਾਈਸ ਕਲਾਸਾਂ
ਸੀਡੀਸੀ ਏਸੀਐਮ ਕਲਾਸ ਐਚਆਈਡੀ ਕਲਾਸ ਐਮਐਸਸੀ ਐਸਸੀਐਸਆਈ ਕਲਾਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਯੂਐਸਬੀ ਡਿਵਾਈਸ ਟ੍ਰਬਲਸ਼ੂਟਿੰਗ ਮਾਈਕ੍ਰੋਸਾਫਟ ਵਿੰਡੋਜ਼ ਓਐਸ ਯੂਐਸਬੀ ਹੋਸਟ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

3/174

USB
USB

USB ਵਰਜਨ 1.5.1 21 ਜੁਲਾਈ, 2025 – ਰਿਲੀਜ਼ ਨੋਟਸ
ਸਾਦਗੀ SDK ਵਰਜਨ 2025.6.1
ਸਿਲੀਕਾਨ ਲੈਬਜ਼ ਦਾ ਕੁਸ਼ਲ USB ਡਿਵਾਈਸ ਸਟੈਕ IoT ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਬਹੁਪੱਖੀ, ਵਰਤੋਂ ਵਿੱਚ ਆਸਾਨ USB ਕਨੈਕਟੀਵਿਟੀ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਨੈੱਟਵਰਕ ਸਹਿ-ਪ੍ਰੋਸੈਸਰਾਂ ਅਤੇ ਹੋਸਟਾਂ ਵਿਚਕਾਰ ਸੰਚਾਰ ਸ਼ਾਮਲ ਹੈ। ਪਹਿਲਾਂ ਦੀਆਂ ਰੀਲੀਜ਼ਾਂ ਲਈ ਇੱਥੇ ਕਲਿੱਕ ਕਰੋ।
ਜਾਰੀ ਸਾਰ
ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ | API ਬਦਲਾਅ | ਬੱਗ ਫਿਕਸ | ਚਿੱਪ ਸਮਰੱਥਕਰਨ
ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ
ਸਿਰਫ਼ ਅੰਡਰਲਾਈੰਗ ਪਲੇਟਫਾਰਮ ਬਦਲਦਾ ਹੈ।
API ਤਬਦੀਲੀਆਂ
ਕੋਈ ਨਹੀਂ।
ਬੱਗ ਫਿਕਸ
ਕੋਈ ਨਹੀਂ।
ਚਿੱਪ ਸਮਰੱਥਕਰਨ
ਕੋਈ ਨਹੀਂ।
ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ
ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ | ਸੁਧਾਰ | ਹਟਾਈਆਂ ਗਈਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ | ਨਾਪਸੰਦ ਕੀਤੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ
ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ
ਕੋਈ ਨਹੀਂ।
ਸੁਧਾਰ
ਸਿਰਫ਼ ਅੰਡਰਲਾਈੰਗ ਪਲੇਟਫਾਰਮ ਬਦਲਦਾ ਹੈ।
ਹਟਾਈਆਂ ਗਈਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ
ਕੋਈ ਨਹੀਂ।
ਬਰਤਰਫ਼ ਕੀਤੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ
ਕੋਈ ਨਹੀਂ।
API ਤਬਦੀਲੀਆਂ
ਨਵੇਂ API | ਸੋਧੇ ਹੋਏ API | ਹਟਾਏ ਗਏ API | ਨਾਪਸੰਦ ਕੀਤੇ API
ਨਵੇਂ APIs

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

4/174

USB
ਕੋਈ ਨਹੀਂ।
ਸੋਧੇ ਹੋਏ API
ਕੋਈ ਨਹੀਂ।
ਹਟਾਏ ਗਏ API
ਕੋਈ ਨਹੀਂ।
ਨਾਪਸੰਦ ਕੀਤੇ API
ਕੋਈ ਨਹੀਂ।
ਬੱਗ ਫਿਕਸ
ਕੋਈ ਨਹੀਂ।
ਚਿੱਪ ਸਮਰੱਥਕਰਨ
ਕੋਈ ਨਹੀਂ।
ਐਪਲੀਕੇਸ਼ਨ ਐਕਸampਲੇ ਬਦਲਾਅ
ਨਵੇਂ ਸਾਬਕਾamples | ਸੋਧਿਆ ਹੋਇਆ Exampਹਟਾਇਆ ਗਿਆ ਐਕਸamples | ਨਾਪਸੰਦ ਕੀਤਾ ਗਿਆ Examples
ਨਵੇਂ ਸਾਬਕਾamples
ਕੋਈ ਨਹੀਂ।
ਸੋਧਿਆ ਗਿਆ ਐਕਸamples
ਕੋਈ ਨਹੀਂ।
ਹਟਾਇਆ ਸਾਬਕਾamples
ਕੋਈ ਨਹੀਂ।
ਨਾਪਸੰਦ ਕੀਤਾ ਗਿਆ ਐਕਸamples
ਕੋਈ ਨਹੀਂ।
ਰਿਲੀਜ਼ ਤਬਦੀਲੀਆਂ ਦਾ ਪ੍ਰਭਾਵ
ਪ੍ਰਭਾਵ ਬਿਆਨ | ਮਾਈਗ੍ਰੇਸ਼ਨ ਗਾਈਡ
ਪ੍ਰਭਾਵ ਬਿਆਨ
ਕੋਈ ਨਹੀਂ।
ਮਾਈਗ੍ਰੇਸ਼ਨ ਗਾਈਡ
ਕੋਈ ਨਹੀਂ।
ਜਾਣੇ-ਪਛਾਣੇ ਮੁੱਦੇ ਅਤੇ ਸੀਮਾਵਾਂ
ਕੋਈ ਨਹੀਂ।
ਇਸ ਰੀਲੀਜ਼ ਦੀ ਵਰਤੋਂ ਕਰਨਾ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

5/174

USB

ਰੀਲੀਜ਼ ਵਿੱਚ ਕੀ ਹੈ? | ਅਨੁਕੂਲ ਸਾਫਟਵੇਅਰ | ਸਥਾਪਨਾ ਅਤੇ ਵਰਤੋਂ | ਮਦਦ ਅਤੇ ਫੀਡਬੈਕ

ਰਿਲੀਜ਼ ਵਿੱਚ ਕੀ ਹੈ?

USB ਡਿਵਾਈਸ ਸਟੈਕ ਐਪਲੀਕੇਸ਼ਨ ਐਕਸamples
ਅਨੁਕੂਲ ਸਾਫਟਵੇਅਰ

ਸਾਫਟਵੇਅਰ
ਸਿਮਪਲਿਸਿਟੀ ਐਸਡੀਕੇ ਸਿਮਪਲਿਸਿਟੀ ਸਟੂਡੀਓ ਸਿਮਪਲਿਸਿਟੀ ਕਮਾਂਡਰ ਜੀਸੀਸੀ ਦ ਜੀਐਨਯੂ ਕੰਪਾਈਲਰ ਕਲੈਕਸ਼ਨ) ਏਆਰਐਮ ਲਈ ਆਈਏਆਰ ਏਮਬੈਡਡ ਵਰਕਬੈਂਚ ਆਈਏਆਰ ਈਵਾਰਮ

ਅਨੁਕੂਲ ਵਰਜਨ ਜਾਂ ਵੇਰੀਐਂਟ
2025.6.0 5.11.0 1.18.2 (ਸਿਮਪਲਿਸਿਟੀ ਸਟੂਡੀਓ ਨਾਲ ਮੁਹੱਈਆ) 12.2.1 (ਸਿਮਪਲਿਸਿਟੀ ਸਟੂਡੀਓ ਨਾਲ ਮੁਹੱਈਆ) 9.40.1 (ਸਿਮਪਲਿਸਿਟੀ ਸਟੂਡੀਓ ਨਾਲ ਮੁਹੱਈਆ)

ਇੰਸਟਾਲੇਸ਼ਨ ਅਤੇ ਵਰਤੋਂ

ਆਪਣੇ ਵਿਕਾਸ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸਾਡੇ ਵੇਖੋ:
USB ਡਿਵਾਈਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ। API ਦਸਤਾਵੇਜ਼।
ਸੁਰੱਖਿਅਤ ਵਾਲਟ ਏਕੀਕਰਨ ਬਾਰੇ ਜਾਣਕਾਰੀ ਲਈ, ਸੁਰੱਖਿਅਤ ਵਾਲਟ ਵੇਖੋ।
ਦੁਬਾਰਾview ਸੁਰੱਖਿਆ ਅਤੇ ਸਾਫਟਵੇਅਰ ਸਲਾਹਕਾਰ ਸੂਚਨਾਵਾਂ ਅਤੇ ਆਪਣੀਆਂ ਸੂਚਨਾ ਤਰਜੀਹਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ:
ò https://community.silabs.com/ 'ਤੇ ਜਾਓ। ó ਆਪਣੇ ਖਾਤੇ ਦੇ ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਨਾਲ ਲੌਗਇਨ ਕਰੋ। ô ਆਪਣੇ ਪ੍ਰੋ 'ਤੇ ਕਲਿੱਕ ਕਰੋfile ਪੰਨੇ ਦੇ ਉੱਪਰ-ਸੱਜੇ ਕੋਨੇ ਵਿੱਚ ਆਈਕਨ।
õ ਡ੍ਰੌਪਡਾਉਨ ਮੀਨੂ ਤੋਂ ਸੂਚਨਾਵਾਂ ਚੁਣੋ। ö ਸੂਚਨਾਵਾਂ ਭਾਗ ਵਿੱਚ, ਮੁੜ-ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਮੇਰੀ ਉਤਪਾਦ ਸੂਚਨਾਵਾਂ ਟੈਬ 'ਤੇ ਜਾਓ।view ਇਤਿਹਾਸਕ ਸੁਰੱਖਿਆ ਅਤੇ ਸਾਫਟਵੇਅਰ ਸਲਾਹਕਾਰ
ਸੂਚਨਾਵਾਂ
÷ ਆਪਣੀਆਂ ਤਰਜੀਹਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ, ਤੁਸੀਂ ਕਿਹੜੇ ਉਤਪਾਦ ਅੱਪਡੇਟ ਅਤੇ ਸਲਾਹਾਂ ਦਿੰਦੇ ਹੋ, ਇਸਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨ ਲਈ ਸੂਚਨਾਵਾਂ ਪ੍ਰਬੰਧਿਤ ਕਰੋ ਟੈਬ ਦੀ ਵਰਤੋਂ ਕਰੋ।
ਪ੍ਰਾਪਤ ਕਰੋ.
ਸਿਫ਼ਾਰਸ਼ੀ ਸੰਰਚਨਾ ਸੈਟਿੰਗਾਂ ਲਈ, ਇੱਥੇ ਦੇਖੋ।
ਇਸ ਰੀਲੀਜ਼ ਵਿੱਚ ਸਾਫਟਵੇਅਰ ਬਾਰੇ ਹੋਰ ਜਾਣਨ ਲਈ, ਸਾਡੇ ਔਨਲਾਈਨ ਦਸਤਾਵੇਜ਼ਾਂ ਵਿੱਚ ਡੁਬਕੀ ਲਗਾਓ।
ਮਦਦ ਅਤੇ ਫੀਡਬੈਕ

ਸਿਲੀਕਾਨ ਲੈਬਜ਼ ਸਪੋਰਟ ਨਾਲ ਸੰਪਰਕ ਕਰੋ। ਜਵਾਬ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਾਡੇ Ask AI ਟੂਲ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਇਸ ਪੰਨੇ ਦੇ ਸਿਖਰ 'ਤੇ ਖੋਜ ਖੇਤਰ ਵੇਖੋ।

ਨੋਟ: Ask AI ਪ੍ਰਯੋਗਾਤਮਕ ਹੈ।

ਸਾਡੇ ਡਿਵੈਲਪਰ ਭਾਈਚਾਰੇ ਤੋਂ ਮਦਦ ਪ੍ਰਾਪਤ ਕਰੋ।
SDK ਰੀਲੀਜ਼ ਅਤੇ ਰੱਖ-ਰਖਾਅ ਨੀਤੀ
ਸਾਡੀ SDK ਰਿਲੀਜ਼ ਅਤੇ ਰੱਖ-ਰਖਾਅ ਨੀਤੀ ਵੇਖੋ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

6/174

ਵੱਧview
ਵੱਧview
ਨਿਰਧਾਰਨ
"ਯੂਨੀਵਰਸਲ ਸੀਰੀਅਲ ਬੱਸ ਸਪੈਸੀਫਿਕੇਸ਼ਨ ਰਿਵੀਜ਼ਨ 2.0" ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ "ਇੰਟਰਫੇਸ ਐਸੋਸੀਏਸ਼ਨ ਡਿਸਕ੍ਰਿਪਟਰ ਇੰਜੀਨੀਅਰਿੰਗ ਚੇਂਜ ਨੋਟਿਸ (ECN)" ਨੂੰ ਲਾਗੂ ਕਰਦਾ ਹੈ ਟ੍ਰਾਂਸਫਰ ਕਿਸਮਾਂ
ਕੰਟਰੋਲ ਬਲਕ ਇੰਟਰੱਪਟ USB ਕਲਾਸਾਂ ਸੰਚਾਰ ਡਿਵਾਈਸ ਕਲਾਸ (CDC) ਐਬਸਟਰੈਕਟ ਕੰਟਰੋਲ ਮਾਡਲ (ACM) ਮਨੁੱਖੀ ਇੰਟਰਫੇਸ ਡਿਵਾਈਸ (HID) ਮਾਸ ਸਟੋਰੇਜ ਕਲਾਸ (MSC) ਵਿਕਰੇਤਾ-ਵਿਸ਼ੇਸ਼ ਕਲਾਸ ਫਰੇਮਵਰਕ
ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ
ਮੈਮੋਰੀ ਫੁੱਟਪ੍ਰਿੰਟ ਨੂੰ ਘੱਟ ਤੋਂ ਘੱਟ ਕਰਨ ਲਈ ਸਿਰਫ਼ ਲੋੜੀਂਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਸਕੇਲੇਬਲ ਪੂਰੀ-ਸਪੀਡ (12 Mbit/s) ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ ਕੰਪੋਜ਼ਿਟ (ਮਲਟੀ-ਫੰਕਸ਼ਨ) ਡਿਵਾਈਸਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ ਮਲਟੀ-ਕੌਂਫਿਗਰੇਸ਼ਨ ਡਿਵਾਈਸਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ USB ਪਾਵਰ-ਸੇਵਿੰਗ ਫੰਕਸ਼ਨੈਲਿਟੀਜ਼ (ਡਿਵਾਈਸ ਸਸਪੈਂਡ ਅਤੇ ਰੈਜ਼ਿਊਮੇ) ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ ਮਾਈਕਰਿਅਮ OS ਵਿੱਚ ਮਾਸ ਸਟੋਰੇਜ ਕਲਾਸ ਦਾ ਪੂਰਾ ਏਕੀਕਰਨ File ਸਿਸਟਮ ਮੋਡੀਊਲ CMSIS-RTOS2 ਐਬਸਟਰੈਕਸ਼ਨ ਲੇਅਰ ਨਾਲ ਵਿਕਸਤ ਕੀਤਾ ਗਿਆ ਹੈ ਤਾਂ ਜੋ ਇਹ ਵੱਖ-ਵੱਖ OSes ਨਾਲ ਕੰਮ ਕਰ ਸਕੇ। ਸਿਲੀਕਾਨ ਲੈਬਜ਼ GSDK FreeRTOS ਅਤੇ ਮਾਈਕਰੀਅਮ OS ਪੋਰਟਾਂ ਦੇ ਨਾਲ ਆਉਂਦਾ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

7/174

ਵੱਧview
ਵੱਧview

USB ਡਿਵਾਈਸ ਕੌਂਫਿਗਰੇਸ਼ਨ

ਇਹ ਭਾਗ ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਨੂੰ ਕਿਵੇਂ ਸੰਰਚਿਤ ਕਰਨਾ ਹੈ ਬਾਰੇ ਚਰਚਾ ਕਰਦਾ ਹੈ। ਸੰਰਚਨਾ ਪੈਰਾਮੀਟਰਾਂ ਦੇ ਤਿੰਨ ਸਮੂਹ ਹਨ, ਜਿਵੇਂ ਕਿ:
USB ਡਿਵਾਈਸ ਕੋਰ ਕੌਂਫਿਗਰੇਸ਼ਨ USB ਡਿਵਾਈਸ ਜਾਣਕਾਰੀ ਕੌਂਫਿਗਰੇਸ਼ਨ USB ਡਿਵਾਈਸ ਹਾਰਡਵੇਅਰ ਕੌਂਫਿਗਰੇਸ਼ਨ
USB ਡਿਵਾਈਸ ਕੋਰ ਕੌਂਫਿਗਰੇਸ਼ਨ
ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਨੂੰ sl_usbd_core_config.h ਵਿੱਚ ਸਥਿਤ #defines ਦੇ ਸੈੱਟ ਰਾਹੀਂ ਕੰਪਾਈਲ ਸਮੇਂ 'ਤੇ ਕੌਂਫਿਗਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। file. USB ਡਿਵਾਈਸ ਜਦੋਂ ਵੀ ਸੰਭਵ ਹੋਵੇ #defines ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਕਿਉਂਕਿ ਉਹ ਕੋਡ ਅਤੇ ਡੇਟਾ ਆਕਾਰਾਂ ਨੂੰ ਕੰਪਾਈਲ ਸਮੇਂ 'ਤੇ ਸਕੇਲ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ ਜਿਸ ਦੇ ਅਧਾਰ ਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸਮਰੱਥ ਹਨ। ਇਹ ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਦੇ ਰੀਡ-ਓਨਲੀ ਮੈਮੋਰੀ (ROM) ਅਤੇ ਰੈਂਡਮ-ਐਕਸੈਸ ਮੈਮੋਰੀ (RAM) ਫੁੱਟਪ੍ਰਿੰਟਸ ਨੂੰ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਦੀਆਂ ਜ਼ਰੂਰਤਾਂ ਦੇ ਅਧਾਰ ਤੇ ਐਡਜਸਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
ਸਿਫਾਰਸ਼ੀ: ਡਿਫਾਲਟ ਮੁੱਲਾਂ (ਬੋਲਡ ਵਿੱਚ ਉਜਾਗਰ ਕੀਤੇ) ਨਾਲ ਸੰਰਚਨਾ ਪ੍ਰਕਿਰਿਆ ਸ਼ੁਰੂ ਕਰੋ।
ਹੇਠਾਂ ਦਿੱਤੇ ਭਾਗ ਟੈਂਪਲੇਟ ਸੰਰਚਨਾ ਵਿੱਚ ਦਿੱਤੇ ਕ੍ਰਮ ਦੇ ਆਧਾਰ 'ਤੇ ਸੰਗਠਿਤ ਕੀਤੇ ਗਏ ਹਨ। file, sl_usbd_core_config.h.
ਕੋਰ ਸੰਰਚਨਾ ਕਲਾਸਾਂ ਸੰਰਚਨਾ
ਕੋਰ ਸੰਰਚਨਾ
ਟੇਬਲ - USB ਡਿਵਾਈਸ ਕੋਰ ਕੌਂਫਿਗਰੇਸ਼ਨ ਸਥਿਰਾਂਕ

ਸਥਿਰ ਵਰਣਨ

ਪੂਰਵ-ਨਿਰਧਾਰਤ ਮੁੱਲ

SL_USBD_TA SK_STACK_ ਆਕਾਰ

USBD ਕੋਰ ਟਾਸਕ ਦੇ ਸਟੈਕ ਆਕਾਰ ਨੂੰ ਬਾਈਟਾਂ ਵਿੱਚ ਕੌਂਫਿਗਰ ਕਰਦਾ ਹੈ।

4096

SL_USBD_TA SK_PRIORIT Y

USBD ਕੋਰ ਟਾਸਕ ਦੀ ਤਰਜੀਹ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਦਾ ਹੈ। ਇਹ ਇੱਕ CMSIS-RTOS2 ਤਰਜੀਹ ਹੈ।

ਓਐਸਪ੍ਰਾਇਓਰਿਟੀਹਾਈ

SL_USBD_A UTO_START _USB_DEVIC E

ਜੇਕਰ ਯੋਗ ਹੈ, ਤਾਂ ਕਰਨਲ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਬਾਅਦ USB ਡਿਵਾਈਸ ਆਪਣੇ ਆਪ ਚਾਲੂ ਹੋ ਜਾਵੇਗੀ ਅਤੇ ਉਹ 1 USBD ਕੋਰ ਟਾਸਕ ਪਹਿਲੀ ਵਾਰ ਤਹਿ ਕੀਤਾ ਜਾਵੇਗਾ। ਜੇਕਰ ਅਯੋਗ ਹੈ, ਤਾਂ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ USB ਹੋਸਟ ਦੁਆਰਾ ਖੋਜੇ ਜਾਣ ਲਈ ਤਿਆਰ ਹੋਣ 'ਤੇ sl_usbd_core_start_device() ਨੂੰ ਕਾਲ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ।

SL_USBD_C sl_usbd_add_configuration() ਰਾਹੀਂ ਜੋੜੀਆਂ ਜਾਣ ਵਾਲੀਆਂ ਸੰਰਚਨਾਵਾਂ ਦੀ ਕੁੱਲ ਸੰਖਿਆ

1

ONFIGURATI ਫੰਕਸ਼ਨ।

ON_QUANTI

TY

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

8/174

ਵੱਧview

ਨਿਰੰਤਰ
SL_USBD _ਇੰਟਰਫ਼ ACE_QU ਐਂਟੀਟੀ
SL_USBD _ALT_INT ERFACE_QUANTI
TY
SL_USBD _ਇੰਟਰਫ਼ ACE_GR
OUP_QU
ਐਂਟੀਟੀ
SL_USBD _DESCRI
PTOR_QLanguage
UANTITY
SL_USBD _STRING _QUANTI
TY
SL_USBD _OPEN_E NDPOIN TS_QUA NTITY

ਵਰਣਨ ਤੁਹਾਡੀਆਂ ਸਾਰੀਆਂ ਸੰਰਚਨਾਵਾਂ ਲਈ ਜੋੜਨ ਵਾਲੇ USB ਇੰਟਰਫੇਸਾਂ ਦੀ ਕੁੱਲ ਸੰਖਿਆ। ਇਹ ਬਹੁਤ ਹੱਦ ਤੱਕ ਵਰਤੇ ਗਏ ਕਲਾਸ(ਆਂ) 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਇੱਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਨੂੰ ਕਿੰਨੇ ਇੰਟਰਫੇਸਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਇਸ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਕਲਾਸ(ਆਂ) ਦੇ "ਕੋਰ ਤੋਂ ਸਰੋਤ ਲੋੜਾਂ" ਭਾਗ ਵੇਖੋ।
ਤੁਹਾਡੀਆਂ ਸਾਰੀਆਂ ਸੰਰਚਨਾਵਾਂ ਲਈ ਜੋੜਨ ਲਈ ਕੁੱਲ USB ਵਿਕਲਪਿਕ ਇੰਟਰਫੇਸਾਂ ਦੀ ਗਿਣਤੀ। ਇਹ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵਰਤੇ ਗਏ ਕਲਾਸ(ਆਂ) 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਇਹ ਮੁੱਲ ਹਮੇਸ਼ਾ SL_USBD_INTERFACE_QUANTITY ਦੇ ਬਰਾਬਰ ਜਾਂ ਵੱਧ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਇੱਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਲਈ ਕਿੰਨੇ ਵਿਕਲਪਿਕ ਇੰਟਰਫੇਸਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਇਸ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਕਲਾਸ(ਆਂ) ਦੇ "ਕੋਰ ਤੋਂ ਸਰੋਤ ਲੋੜਾਂ" ਭਾਗ ਵੇਖੋ।
ਤੁਹਾਡੀਆਂ ਸਾਰੀਆਂ ਸੰਰਚਨਾਵਾਂ ਲਈ ਜੋੜੇ ਜਾਣ ਵਾਲੇ USB ਇੰਟਰਫੇਸ ਸਮੂਹਾਂ ਦੀ ਕੁੱਲ ਸੰਖਿਆ। ਇਹ ਬਹੁਤ ਹੱਦ ਤੱਕ ਵਰਤੇ ਗਏ ਕਲਾਸ(ਆਂ) 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਇੱਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਲਈ ਕਿੰਨੇ ਇੰਟਰਫੇਸ ਸਮੂਹਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਇਸ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਕਲਾਸ(ਆਂ) ਦੇ "ਕੋਰ ਤੋਂ ਸਰੋਤ ਲੋੜਾਂ" ਭਾਗ ਵੇਖੋ।
ਤੁਹਾਡੀਆਂ ਸਾਰੀਆਂ ਸੰਰਚਨਾਵਾਂ ਲਈ ਜੋੜਨ ਵਾਲੇ ਐਂਡਪੁਆਇੰਟ ਡਿਸਕ੍ਰਿਪਟਰਾਂ ਦੀ ਕੁੱਲ ਸੰਖਿਆ। ਇਹ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵਰਤੇ ਗਏ ਕਲਾਸ (ਆਂ) 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਇੱਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਨੂੰ ਕਿੰਨੇ ਐਂਡਪੁਆਇੰਟ ਡਿਸਕ੍ਰਿਪਟਰਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਇਸ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੀ ਕਲਾਸ (ਆਂ) ਦੇ "ਕੋਰ ਤੋਂ ਸਰੋਤ ਲੋੜਾਂ" ਭਾਗ ਵਿੱਚ "ਐਂਡਪੁਆਇੰਟਾਂ ਦੀ ਗਿਣਤੀ" ਵੇਖੋ। ਧਿਆਨ ਦਿਓ ਕਿ ਕੰਟਰੋਲ ਐਂਡਪੁਆਇੰਟਾਂ ਨੂੰ ਇੱਥੇ ਵਿਚਾਰਨ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੈ। USB ਸਟ੍ਰਿੰਗਾਂ ਦੀ ਕੁੱਲ ਸੰਖਿਆ। ਮਾਤਰਾ ਨੂੰ ਜ਼ੀਰੋ 'ਤੇ ਸੈੱਟ ਕਰਨ ਨਾਲ ਵਿਸ਼ੇਸ਼ਤਾ ਅਯੋਗ ਹੋ ਜਾਵੇਗੀ। ਇਸਨੂੰ ਅਯੋਗ ਕਰਨ ਨਾਲ ਡਿਵਾਈਸ ਐਪਲੀਕੇਸ਼ਨ ਤੋਂ ਪਾਸ ਕੀਤੀਆਂ ਗਈਆਂ ਕਿਸੇ ਵੀ USB ਵਰਣਨ ਸਟ੍ਰਿੰਗਾਂ ਨੂੰ ਸਟੋਰ ਨਹੀਂ ਕਰ ਸਕੇਗੀ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਹੋਸਟ ਵਰਣਨ ਸਟ੍ਰਿੰਗਾਂ (ਜਿਵੇਂ ਕਿ ਨਿਰਮਾਤਾ ਅਤੇ ਉਤਪਾਦ ਦਾ ਨਾਮ) ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ ਹੋਵੇਗਾ। ਪ੍ਰਤੀ ਸੰਰਚਨਾ ਖੁੱਲ੍ਹੇ ਅੰਤ ਬਿੰਦੂਆਂ ਦੀ ਕੁੱਲ ਸੰਖਿਆ। ਇੱਕ ਡਿਵਾਈਸ ਨੂੰ ਕੰਟਰੋਲ ਟ੍ਰਾਂਸਫਰ ਲਈ ਘੱਟੋ-ਘੱਟ ਦੋ ਖੁੱਲ੍ਹੇ ਅੰਤ ਬਿੰਦੂਆਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਪਰ ਤੁਹਾਨੂੰ ਵਰਤੇ ਗਏ ਕਲਾਸ (ਆਂ) ਦੇ ਅੰਤ ਬਿੰਦੂਆਂ ਨੂੰ ਵੀ ਜੋੜਨਾ ਚਾਹੀਦਾ ਹੈ। ਇੱਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਨੂੰ ਕਿੰਨੇ ਖੁੱਲ੍ਹੇ ਅੰਤ ਬਿੰਦੂਆਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਇਸ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੀ ਕਲਾਸ (ਆਂ) ਦੇ "ਕੋਰ ਤੋਂ ਸਰੋਤ ਲੋੜਾਂ" ਭਾਗ ਵਿੱਚ "ਐਂਡਪੁਆਇੰਟਾਂ ਦੀ ਗਿਣਤੀ" ਵੇਖੋ।

ਪੂਰਵ-ਨਿਰਧਾਰਤ ਮੁੱਲ
10 10
2
20 30 20

ਕਲਾਸ ਸੰਰਚਨਾ
ਕਲਾਸਾਂ ਵਿੱਚ ਖਾਸ ਕੰਪਾਈਲ-ਟਾਈਮ ਕੌਂਫਿਗਰੇਸ਼ਨ ਹੁੰਦੇ ਹਨ। ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ USB ਡਿਵਾਈਸ ਕਲਾਸਾਂ ਵੇਖੋ।
USB ਡਿਵਾਈਸ ਜਾਣਕਾਰੀ ਸੰਰਚਨਾ

sl_usbd_device_config.h ਸੰਰਚਨਾ file ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਸੰਬੰਧੀ ਮੁੱਢਲੀ ਜਾਣਕਾਰੀ, ਜਿਵੇਂ ਕਿ ਵਿਕਰੇਤਾ/ਉਤਪਾਦ ID, ਡਿਵਾਈਸ ਸਤਰ, ਆਦਿ ਸੈੱਟ ਕਰਨ ਲਈ ਕੰਪਾਈਲ-ਟਾਈਮ #define-s ਨੂੰ ਮੁੜ ਸਮੂਹਬੱਧ ਕਰਦਾ ਹੈ। ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਇਸ ਕੌਂਫਿਗਰੇਸ਼ਨ ਵਿੱਚ ਉਪਲਬਧ ਹਰੇਕ ਜਾਣਕਾਰੀ ਕੌਂਫਿਗਰੇਸ਼ਨ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੀ ਹੈ। file.

ਸਾਰਣੀ - USB ਡਿਵਾਈਸ ਜਾਣਕਾਰੀ ਸੰਰਚਨਾ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੀ ਹੈ

ਨਿਰੰਤਰ
SL_USBD_DEVIC ਈ_ਵੈਂਡਰ_ਆਈਡੀ
SL_USBD_DEVIC E_PRODUCT_ID

ਵਰਣਨ ਤੁਹਾਡਾ ਵਿਕਰੇਤਾ ਪਛਾਣ ਨੰਬਰ ਜਿਵੇਂ ਕਿ USB ਇੰਪਲੀਮੈਂਟਰਜ਼ ਫੋਰਮ ਦੁਆਰਾ ਦਿੱਤਾ ਗਿਆ ਹੈ। ਤੁਸੀਂ ਵਿਕਰੇਤਾ ਆਈਡੀ ਕਿਵੇਂ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ ਇਸ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, http://www.usb.org/developers/vendor/ ਵੇਖੋ। ਤੁਹਾਡਾ ਉਤਪਾਦ ਪਛਾਣ ਨੰਬਰ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

9/174

ਵੱਧview

ਨਿਰੰਤਰ

ਵਰਣਨ

SL_USBD_DEVICE_RELEASE ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਦਾ ਰਿਲੀਜ਼ ਨੰਬਰ। _NUMBER

SL_USBD_DEVICE_MANUFA ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਦੇ ਨਿਰਮਾਤਾ ਦਾ ਵਰਣਨ ਕਰਨ ਵਾਲੀ ਸਤਰ। ਇਸ ਸੰਰਚਨਾ ਨੂੰ ਅਣਡਿੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ

ਸੀਟੀਯੂਆਰ_ਸਟ੍ਰਿੰਗ

ਸੰਰਚਨਾ SL_USBD_STRING_QUANTITY 0 ਤੇ ਸੈੱਟ ਹੈ।

SL_USBD_DEVICE_PRODUC ਸਤਰ ਤੁਹਾਡੇ ਉਤਪਾਦ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ। ਇਸ ਸੰਰਚਨਾ ਨੂੰ ਅਣਡਿੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਸੰਰਚਨਾ

ਟੀ_ਸਟ੍ਰਿੰਗ

SL_USBD_STRING_QUANTITY 0 'ਤੇ ਸੈੱਟ ਹੈ।

SL_USBD_DEVICE_SERIAL_N ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਦਾ ਸੀਰੀਅਲ ਨੰਬਰ ਰੱਖਣ ਵਾਲੀ ਸਟ੍ਰਿੰਗ। ਇਸ ਸੰਰਚਨਾ ਨੂੰ ਅਣਡਿੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ

ਉੰਬਰ_ਸਟ੍ਰਿੰਗ

ਸੰਰਚਨਾ SL_USBD_STRING_QUANTITY 0 ਤੇ ਸੈੱਟ ਹੈ।

SL_USBD_DEVICE_LANGUA ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਦੇ ਸਟ੍ਰਿੰਗਾਂ ਦੀ ਭਾਸ਼ਾ ਦਾ ਪਛਾਣ ਨੰਬਰ। ਸੰਭਵ ਮੁੱਲ ਹਨ:
ਜੀਈ_ਆਈਡੀ

– SL_USBD_LANG_ID_ARABIC_SAUDI_ARABIA

– SL_USBD_LANG_ID_ਚੀਨੀ_ਤਾਈਵਾਨ

- SL_USBD_LANG_ID_ENGLISH_US

– SL_USBD_LANG_ID_ENGLISH_UK

- SL_USBD_LANG_ID_ਫਰੈਂਚ

- SL_USBD_LANG_ID_ਜਰਮਨ

– SL_USBD_LANG_ID_ਯੂਨਾਨੀ

– SL_USBD_LANG_ID_ਇਟਾਲੀਅਨ

– SL_USBD_LANG_ID_ਪੋਰਟੁਗੁਏਜ਼

– SL_USBD_LANG_ID_ਸੰਸਕ੍ਰਿਤ

ਜਦੋਂ SL_USBD_STRING_QUANTITY ਸੰਰਚਨਾ 0 'ਤੇ ਸੈੱਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਇਸ ਸੰਰਚਨਾ ਨੂੰ ਅਣਡਿੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।

USB ਡਿਵਾਈਸ ਹਾਰਡਵੇਅਰ ਕੌਂਫਿਗਰੇਸ਼ਨ

ਤੁਹਾਡੇ ਦੁਆਰਾ ਵਰਤੇ ਜਾ ਰਹੇ ਸਿਲੀਕਾਨ ਲੈਬਜ਼ ਡਿਵਾਈਸ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹੋਏ, ਤੁਹਾਡੇ ਕੋਲ USB VBUS ਸੈਂਸ ਸਿਗਨਲ ਲਈ ਸੰਰਚਿਤ ਕਰਨ ਲਈ GPIO ਪਿੰਨ ਅਤੇ ਪੋਰਟ ਹੋ ਸਕਦਾ ਹੈ। ਸੰਰਚਨਾ ਪਰਿਭਾਸ਼ਿਤ sl_usbd_hardware_config.h ਹੈਡਰ ਵਿੱਚ ਹਨ। file.

ਨਿਰੰਤਰ
SL_USBD_DRIVER_VBUS_SENSE_PORT SL_USBD_DRIVER_VBUS_SENSE_PIN

ਵਰਣਨ
ਤੁਹਾਡੇ ਬੋਰਡ 'ਤੇ USB VBUS ਸੈਂਸ ਸਿਗਨਲ ਲਈ GPIO ਪੋਰਟ। ਤੁਹਾਡੇ ਬੋਰਡ 'ਤੇ USB VBUS ਸੈਂਸ ਸਿਗਨਲ ਲਈ GPIO ਪਿੰਨ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

10/174

ਵੱਧview
ਵੱਧview
USB ਡਿਵਾਈਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ
ਇਹ ਭਾਗ ਦੱਸਦਾ ਹੈ ਕਿ USB ਡਿਵਾਈਸ ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ।
USB ਡਿਵਾਈਸ ਮੋਡੀਊਲ ਦਾ ਸ਼ੁਰੂਆਤੀ ਸੈੱਟਅੱਪ
ਇਹ ਭਾਗ USB ਡਿਵਾਈਸ ਮੋਡੀਊਲ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਅਤੇ ਇੱਕ ਡਿਵਾਈਸ ਨੂੰ ਜੋੜਨ, ਤਿਆਰ ਕਰਨ ਅਤੇ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਲੋੜੀਂਦੇ ਮੁੱਢਲੇ ਕਦਮਾਂ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ। USB ਡਿਵਾਈਸ ਮੋਡੀਊਲ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨਾ USB ਡਿਵਾਈਸ ਕੋਰ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨਾ aClss(es) ਨੂੰ ਸ਼ੁਰੂ ਕਰਨਾ ਆਪਣਾ USB ਡਿਵਾਈਸ ਜੋੜਨਾ ਆਪਣਾ USB ਡਿਵਾਈਸ ਬਣਾਉਣਾ ਸੰਰਚਨਾ(ਆਂ) ਜੋੜਨਾ USB ਫੰਕਸ਼ਨ(ਆਂ) ਜੋੜਨਾ ਆਪਣਾ USB ਡਿਵਾਈਸ ਸ਼ੁਰੂ ਕਰਨਾ
ਇਵੈਂਟ ਹੁੱਕ ਫੰਕਸ਼ਨ
USB ਡਿਵਾਈਸ ਮੋਡੀਊਲ ਸ਼ੁਰੂ ਕਰਨਾ
USB ਡਿਵਾਈਸ ਕੋਰ ਸ਼ੁਰੂ ਕਰਨਾ
a US a ਫੰਕਸ਼ਨ sl_usbd_core_init() ਨੂੰ ਕਲਿੱਪ ਕਰਕੇ B ਡਿਵਾਈਸ ਮੋਡੀਊਲ ਕੋਰ ਨੂੰ ਲਾਈਸਿੰਗ ਸ਼ੁਰੂ ਕਰਕੇ ਸ਼ੁਰੂ ਕਰੋ। ਹੇਠਾਂ ਦਿੱਤੀ ਉਦਾਹਰਣ sl_usbd_core_init() ਨੂੰ ਕਲਿੱਪ ਦਿਖਾਉਂਦੀ ਹੈ।
Example – sl_usbd_core_init() ਨੂੰ ਕਾਲ ਕਰਨਾ
sl_status_t status; status = sl_usbd_core_init(); ਜੇਕਰ (status ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */
}
ਕਲਾਸਾਂ ਸ਼ੁਰੂ ਕਰਨਾ
USB ਡਿਵਾਈਸ ਮੋਡੀਊਲ ਕੋਰ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਹਰੇਕ ਕਲਾਸ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹੋ। ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ ਆਪਣੇ acl ss(es) ਦਾ ਭਾਗ "ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ" ਵੇਖੋ।
ਆਪਣਾ USB ਡਿਵਾਈਸ ਬਣਾਉਣਾ
ਸੰਰਚਨਾ(ਆਂ) ਜੋੜਨਾ
ਆਪਣੀ ਡਿਵਾਈਸ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਇਸ ਵਿੱਚ USB ਫੰਕਸ਼ਨ ਜੋੜਨਾ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹੋ, ਇੱਕ ਨਵੀਂ ਕੌਂਫਿਗਰੇਸ਼ਨ ਨਾਲ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋਏ। ਇੱਕ ਡਿਵਾਈਸ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਇੱਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਜੋੜਨ ਲਈ, ਫੰਕਸ਼ਨ aa sl_usbd_core_ dd_configur tion() ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰੋ। ਇਹ ਫੰਕਸ਼ਨ ਹਰੇਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਲਈ ਕਾਲ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਜੋੜਨਾ ਚਾਹੁੰਦੇ ਹੋ। ਉਦਾਹਰਣ ਵਜੋਂampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ ਫੁੱਲ-ਸਪੀਡ ਕਿਵੇਂ ਜੋੜਨਾ ਹੈ।
Example – ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਵਿੱਚ ਸੰਰਚਨਾ(ਆਂ) ਜੋੜਨਾ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

11/174

ਵੱਧview

sl_status_t ਸਥਿਤੀ; uint8_t config_nbr_fs;

/* ਡਿਵਾਈਸ ਵਿੱਚ ਇੱਕ ਪੂਰੀ-ਸਪੀਡ ਸੰਰਚਨਾ ਜੋੜਨਾ। */

ਸਥਿਤੀ = sl_usbd_core_add_configuration(0,

/* ਸੰਰਚਨਾ ਲਈ ਕੋਈ ਖਾਸ ਗੁਣ ਨਹੀਂ ਹਨ। */

100u,

/* ਵੱਧ ਤੋਂ ਵੱਧ ਬਿਜਲੀ ਦੀ ਖਪਤ: 100mA।

*/

SL_USBD_ਡਿਵਾਈਸ_ਸਪੀਡ_ਪੂਰਾ,

/* ਫੁੱਲ-ਸਪੀਡ ਕੌਂਫਿਗਰੇਸ਼ਨ।

*/

“ਸੰਰਚਨਾ ਜੋੜੋ ਸਾਬਕਾamp"ਫੁੱਲ-ਸਪੀਡ ਕੌਂਫਿਗਰੇਸ਼ਨ",

&config_nbr_fs);

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਸੰਭਾਲਣ ਨੂੰ ਇੱਥੇ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। */

}

USB ਫੰਕਸ਼ਨ(ਆਂ) ਜੋੜਨਾ
ਆਪਣੀ ਡਿਵਾਈਸ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਸੰਰਚਨਾ ਸਫਲਤਾਪੂਰਵਕ ਜੋੜਨ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਆਪਣੀ ਡਿਵਾਈਸ ਵਿੱਚ ਇੰਟਰਫੇਸ ਅਤੇ ਐਂਡਪੁਆਇੰਟ ਜੋੜ ਸਕਦੇ ਹੋ। ਹਰੇਕ USB ਕਲਾਸ ਦੀਆਂ ਇੰਟਰਫੇਸ ਅਤੇ ਐਂਡਪੁਆਇੰਟ ਦੀ ਕਿਸਮ, ਮਾਤਰਾ ਅਤੇ ਹੋਰ ਮਾਪਦੰਡਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਆਪਣੀਆਂ ਜ਼ਰੂਰਤਾਂ ਹੁੰਦੀਆਂ ਹਨ। ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਆਪਣੀਆਂ ਪੇਸ਼ ਕੀਤੀਆਂ ਕਲਾਸਾਂ ਵਿੱਚ ਇੰਟਰਫੇਸ ਅਤੇ ਐਂਡਪੁਆਇੰਟ ਜੋੜਦਾ ਹੈ।
ਆਪਣੀ ਐਪਲੀਕੇਸ਼ਨ ਤੋਂ, ਤੁਸੀਂ ਇੱਕ USB ਕਲਾਸ ਨੂੰ ਇੰਸਟੈਂਟੀਏਟ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਇਸਨੂੰ ਇੱਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਵਿੱਚ ਜੋੜ ਸਕਦੇ ਹੋ। USB ਡਿਵਾਈਸ ਕਲਾਸ ਇੰਸਟੈਂਸ ਦੀ ਧਾਰਨਾ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, USB ਡਿਵਾਈਸ ਕਲਾਸਾਂ ਵੇਖੋ। ਧਿਆਨ ਦਿਓ ਕਿ ਤੁਸੀਂ ਇੱਕ ਮਲਟੀ-ਫੰਕਸ਼ਨ (ਕੰਪੋਜ਼ਿਟ) ਡਿਵਾਈਸ ਬਣਾਉਣ ਲਈ ਇੱਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਵਿੱਚ ਕਈ ਵੱਖ-ਵੱਖ ਕਲਾਸ ਇੰਸਟੈਂਸਾਂ ਨੂੰ ਇੰਸਟੈਂਟੀਏਟ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਜੋੜ ਸਕਦੇ ਹੋ।
ਸਾਬਕਾampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ ਇੱਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਕਿਵੇਂ ਬਣਾਉਣਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਇੱਕ ਸੰਰਚਨਾ ਵਿੱਚ ਕਿਵੇਂ ਜੋੜਨਾ ਹੈ।
Example – ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਵਿੱਚ ਇੱਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ

sl_status_t ਸਥਿਤੀ; uint8_t ਕਲਾਸ_nbr;
/* ਉਸ ਕਲਾਸ ਦਾ ਇੱਕ ਉਦਾਹਰਣ ਬਣਾਓ ਜਿਸਨੂੰ ਤੁਸੀਂ ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹੋ।*/ /* ਧਿਆਨ ਦਿਓ ਕਿ ਕਲਾਸ ਦੇ ਆਧਾਰ 'ਤੇ ਇਸ ਫੰਕਸ਼ਨ ਵਿੱਚ ਹੋਰ ਆਰਗੂਮੈਂਟ ਹੋ ਸਕਦੇ ਹਨ। */ ਸਥਿਤੀ = sl_usbd_ _create_instance(&class_nbr); if (status ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */ }
/* ਫੁੱਲ-ਸਪੀਡ ਕੌਂਫਿਗਰੇਸ਼ਨ ਵਿੱਚ ਕਲਾਸ ਇੰਸਟੈਂਸ ਸ਼ਾਮਲ ਕਰੋ। */ ਸਥਿਤੀ = sl_usbd_ _add_to_configuration(class_nbr, /* sl_usbd_ ਦੁਆਰਾ ਵਾਪਸ ਕੀਤਾ ਗਿਆ ਕਲਾਸ ਨੰਬਰ _ਉਦਾਹਰਣ_ਬਣਾਓ। */
config_nbr_fs); /* sl_usbd_core_add_configuration() ਦੁਆਰਾ ਵਾਪਸ ਕੀਤਾ ਗਿਆ ਸੰਰਚਨਾ ਨੰਬਰ। */ ਜੇਕਰ (ਸਥਿਤੀ ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */ }
ਆਪਣਾ USB ਡਿਵਾਈਸ ਸ਼ੁਰੂ ਕਰਨਾ
ਡਿਫਾਲਟ ਤੌਰ 'ਤੇ, ਡਿਵਾਈਸ ਸ਼ੁਰੂਆਤੀਕਰਨ ਪੂਰਾ ਹੋਣ ਅਤੇ ਕਰਨਲ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਬਾਅਦ USB ਡਿਵਾਈਸ ਕੋਰ ਟਾਸਕ ਦੁਆਰਾ ਡਿਵਾਈਸ ਆਪਣੇ ਆਪ ਸ਼ੁਰੂ ਹੋ ਜਾਵੇਗੀ। ਡਿਵਾਈਸ ਕਦੋਂ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ ਅਤੇ USB ਹੋਸਟ ਦੁਆਰਾ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ, ਇਹ ਨਿਯੰਤਰਣ ਕਰਨ ਲਈ, ਆਟੋ-ਸਟਾਰਟ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਅਯੋਗ ਕਰਨ ਲਈ ਸੰਰਚਨਾ ਪਰਿਭਾਸ਼ਿਤ SL_USBD_AUTO_START_USB_DEVICE ਦੀ ਵਰਤੋਂ ਕਰੋ। ਅਯੋਗ ਹੋਣ 'ਤੇ, ਆਪਣੀ ਡਿਵਾਈਸ ਬਣਾਉਣ/ਤਿਆਰ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਇਸਨੂੰ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਫੰਕਸ਼ਨ sl_usbd_core_start_device() ਨੂੰ ਕਾਲ ਕਰਕੇ ਇਸਨੂੰ USB ਹੋਸਟ ਲਈ ਦ੍ਰਿਸ਼ਮਾਨ ਬਣਾ ਸਕਦੇ ਹੋ।
ਸਾਬਕਾampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ sl_usbd_core_start_device() ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੀ ਡਿਵਾਈਸ ਨੂੰ ਕਿਵੇਂ ਸ਼ੁਰੂ ਕਰਨਾ ਹੈ।
Example - ਆਪਣੀ ਡਿਵਾਈਸ ਸ਼ੁਰੂ ਕਰਨਾ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

12/174

ਵੱਧview

sl_status_t ਸਥਿਤੀ;
status = sl_usbd_core_start_device(); ਜੇਕਰ (status ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */ }

ਇਵੈਂਟ ਹੁੱਕ ਫੰਕਸ਼ਨ
USB ਡਿਵਾਈਸ ਕੋਰ ਮੋਡੀਊਲ ਦੋ ਕਮਜ਼ੋਰ ਹੁੱਕ ਫੰਕਸ਼ਨ ਪੇਸ਼ ਕਰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਆਪਣੀ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਦੁਬਾਰਾ ਪਰਿਭਾਸ਼ਿਤ ਕਰ ਸਕਦੇ ਹੋ। ਉਹਨਾਂ ਦਾ ਉਦੇਸ਼ ਬੱਸ ਅਤੇ ਕੌਂਫਿਗਰੇਸ਼ਨ ਘਟਨਾਵਾਂ ਵਾਪਰਨ 'ਤੇ ਸੂਚਿਤ ਕਰਨਾ ਹੈ।
ਟੇਬਲ - USB ਇਵੈਂਟ ਹੁੱਕ ਫੰਕਸ਼ਨ

ਘਟਨਾ

ਵਰਣਨ

ਬੱਸ

USB ਬੱਸ ਘਟਨਾ ਵਾਪਰਨ 'ਤੇ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

USB ਕੌਂਫਿਗਰੇਸ਼ਨ ਘਟਨਾ ਵਾਪਰਨ 'ਤੇ ਕੌਂਫਿਗਰੇਸ਼ਨ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

ਫੰਕਸ਼ਨ ਦਸਤਖਤ
ਜ਼ਰੂਰ sl_usbd_on_bus_event(sl_usbd_bus_event_t ਇਵੈਂਟ); ਜ਼ਰੂਰ sl_usbd_on_config_event(sl_usbd_config_event_t ਇਵੈਂਟ, uint8_t config_nbr);

Example – ਇਵੈਂਟ ਹੁੱਕ ਫੰਕਸ਼ਨ

void sl_usbd_on_bus_event(sl_usbd_bus_event_t ਇਵੈਂਟ) { ਸਵਿੱਚ (ਇਵੈਂਟ) { ਕੇਸ SL_USBD_EVENT_BUS_CONNECT:
// ਜਦੋਂ USB ਕੇਬਲ ਹੋਸਟ ਕੰਟਰੋਲਰ ਬ੍ਰੇਕ ਵਿੱਚ ਪਾਈ ਜਾਂਦੀ ਹੈ ਤਾਂ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ;
case SL_USBD_EVENT_BUS_DISCONNECT: // ਜਦੋਂ USB ਕੇਬਲ ਨੂੰ ਹੋਸਟ ਕੰਟਰੋਲਰ ਬ੍ਰੇਕ ਤੋਂ ਹਟਾਇਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ;
ਕੇਸ SL_USBD_EVENT_BUS_RESET: // ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਹੋਸਟ ਰੀਸੈਟ ਕਮਾਂਡ ਬ੍ਰੇਕ ਭੇਜਦਾ ਹੈ;
ਕੇਸ SL_USBD_EVENT_BUS_SUSPEND: // ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਹੋਸਟ ਸਸਪੈਂਡ ਕਮਾਂਡ ਬ੍ਰੇਕ ਭੇਜਦਾ ਹੈ;
ਕੇਸ SL_USBD_EVENT_BUS_RESUME: // ਜਦੋਂ ਹੋਸਟ ਵੇਕ ਅੱਪ ਕਮਾਂਡ ਬ੍ਰੇਕ ਭੇਜਦਾ ਹੈ ਤਾਂ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ;
ਡਿਫਾਲਟ: ਬ੍ਰੇਕ; } }
void sl_usbd_on_config_event(sl_usbd_config_event_t ਇਵੈਂਟ, uint8_t config_nbr) { ਸਵਿੱਚ (ਇਵੈਂਟ) { ਕੇਸ SL_USBD_EVENT_CONFIG_SET:
// ਉਦੋਂ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਹੋਸਟ ਇੱਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਬ੍ਰੇਕ ਸੈੱਟ ਕਰਦਾ ਹੈ;
case SL_USBD_EVENT_CONFIG_UNSET: // ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਇੱਕ ਸੰਰਚਨਾ ਅਨਸੈੱਟ ਹੁੰਦੀ ਹੈ break;
ਡਿਫਾਲਟ: ਬ੍ਰੇਕ; } }

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

13/174

ਵੱਧview

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

14/174

ਵੱਧview
ਵੱਧview

USB ਡਿਵਾਈਸ ਕਲਾਸਾਂ

ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਵਿੱਚ ਉਪਲਬਧ USB ਕਲਾਸਾਂ ਕੁਝ ਆਮ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸਾਂਝੀਆਂ ਕਰਦੀਆਂ ਹਨ। ਇਹ ਭਾਗ ਇਹਨਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਕੋਰ ਲੇਅਰ ਨਾਲ ਉਹਨਾਂ ਦੇ ਪਰਸਪਰ ਪ੍ਰਭਾਵ ਬਾਰੇ ਦੱਸਦਾ ਹੈ।
ਕਿਸੇ ਖਾਸ ਕਲਾਸ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, ਹੇਠਾਂ ਦਿੱਤੇ ਵੇਖੋ:
ਸੀਡੀਸੀ ਏਸੀਐਮ ਕਲਾਸ ਐਚਆਈਡੀ ਕਲਾਸ ਐਮਐਸਸੀ ਐਸਸੀਐਸਆਈ ਕਲਾਸ ਵਿਕਰੇਤਾ ਕਲਾਸ
ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਾਰੇ
USB ਡਿਵਾਈਸ ਵਿੱਚ ਉਪਲਬਧ USB ਕਲਾਸਾਂ ਕਲਾਸ ਇੰਸਟੈਂਸ ਦੀ ਧਾਰਨਾ ਨੂੰ ਲਾਗੂ ਕਰਦੀਆਂ ਹਨ। ਇੱਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਇੱਕ ਡਿਵਾਈਸ ਦੇ ਅੰਦਰ ਇੱਕ ਫੰਕਸ਼ਨ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਫੰਕਸ਼ਨ ਨੂੰ ਇੱਕ ਇੰਟਰਫੇਸ ਦੁਆਰਾ ਜਾਂ ਇੰਟਰਫੇਸਾਂ ਦੇ ਸਮੂਹ ਦੁਆਰਾ ਦਰਸਾਇਆ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਇੱਕ ਖਾਸ ਕਲਾਸ ਨਾਲ ਸਬੰਧਤ ਹੈ।
ਹਰੇਕ USB ਕਲਾਸ ਲਾਗੂਕਰਨ ਵਿੱਚ ਕੁਝ ਆਮ ਸੰਰਚਨਾਵਾਂ ਅਤੇ ਫੰਕਸ਼ਨ ਹੁੰਦੇ ਹਨ, ਜੋ ਕਿ ਕਲਾਸ ਇੰਸਟੈਂਸ ਦੀ ਧਾਰਨਾ ਦੇ ਅਧਾਰ ਤੇ ਹੁੰਦੇ ਹਨ। ਆਮ ਸੰਰਚਨਾਵਾਂ ਅਤੇ ਫੰਕਸ਼ਨ ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵਿੱਚ ਪੇਸ਼ ਕੀਤੇ ਗਏ ਹਨ। ਕਾਲਮ ਸਿਰਲੇਖ 'ਸਥਿਰ ਜਾਂ ਫੰਕਸ਼ਨ' ਵਿੱਚ, ਪਲੇਸਹੋਲਡਰ XXXX ਨੂੰ ਕਲਾਸ ਦੇ ਨਾਮ ਨਾਲ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ: CDC, HID, MSC, CDC_ACM ਜਾਂ VENDOR (ਫੰਕਸ਼ਨ ਨਾਮਾਂ ਲਈ ਵਿਕਰੇਤਾ)।
ਸਾਰਣੀ - ਕਈ ਸ਼੍ਰੇਣੀਆਂ ਦੀਆਂ ਉਦਾਹਰਣਾਂ ਦੀ ਧਾਰਨਾ ਨਾਲ ਸਬੰਧਤ ਸਥਿਰਾਂਕ ਅਤੇ ਕਾਰਜ

ਸਥਿਰ ਜਾਂ ਫੰਕਸ਼ਨ
SL_USBD_XXXX_CL ASS_INS TANCE_QUANTITY
SL_USBD_XXXX_CONFIGUR ATION_QUANTITY
sl_usb d _XXXX_cre ate _instance ()
sl_usbd_XXXX_conf ਵਿੱਚ_ਜੋੜੋ()

ਵਰਣਨ
ਕਲਾਸ ਉਦਾਹਰਣਾਂ ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ ਸੰਖਿਆ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਦਾ ਹੈ।
ਵੱਧ ਤੋਂ ਵੱਧ ਸੰਰਚਨਾਵਾਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਦਾ ਹੈ। ਕਲਾਸ ਸ਼ੁਰੂਆਤ ਦੇ ਦੌਰਾਨ, ਇੱਕ ਬਣਾਇਆ ਗਿਆ ਕਲਾਸ ਇੰਸਟੈਂਸ ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ ਕੌਂਫਿਗਰੇਸ਼ਨਾਂ ਵਿੱਚ ਜੋੜਿਆ ਜਾਵੇਗਾ। ਇੱਕ ਨਵਾਂ ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਂਦਾ ਹੈ।
ਨਿਰਧਾਰਤ ਡਿਵਾਈਸ ਕੌਂਫਿਗਰੇਸ਼ਨ ਵਿੱਚ ਇੱਕ ਮੌਜੂਦਾ ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਦਾ ਹੈ।

ਕੋਡ ਲਾਗੂ ਕਰਨ ਦੇ ਮਾਮਲੇ ਵਿੱਚ, ਕਲਾਸ ਇੱਕ ਸਥਾਨਕ ਗਲੋਬਲ ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕਰੇਗੀ ਜਿਸ ਵਿੱਚ ਇੱਕ ਕਲਾਸ ਕੰਟਰੋਲ ਢਾਂਚਾ ਹੋਵੇਗਾ। ਇਹ ਕਲਾਸ ਕੰਟਰੋਲ ਢਾਂਚਾ ਇੱਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ ਅਤੇ ਇਸ ਵਿੱਚ ਕਲਾਸ ਇੰਸਟੈਂਸ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਖਾਸ ਜਾਣਕਾਰੀ ਹੋਵੇਗੀ।
ਹੇਠ ਦਿੱਤੇ ਅੰਕੜੇ ਕਈ ਕੇਸ ਦ੍ਰਿਸ਼ ਦਿਖਾਉਂਦੇ ਹਨ। ਹਰੇਕ ਚਿੱਤਰ ਵਿੱਚ ਇੱਕ ਕੋਡ ਐਕਸ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈample ਜੋ ਕਿ ਕੇਸ ਦ੍ਰਿਸ਼ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ।
ਚਿੱਤਰ - ਮਲਟੀਪਲ ਕਲਾਸ ਇੰਸਟੈਂਸ - FS ਡਿਵਾਈਸ (1 ਇੰਟਰਫੇਸ ਦੇ ਨਾਲ 1 ਕੌਂਫਿਗਰੇਸ਼ਨ) ਇੱਕ ਆਮ USB ਡਿਵਾਈਸ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਡਿਵਾਈਸ ਫੁੱਲ-ਸਪੀਡ (FS) ਹੈ ਅਤੇ ਇਸ ਵਿੱਚ ਇੱਕ ਸਿੰਗਲ ਕੌਂਫਿਗਰੇਸ਼ਨ ਹੈ। ਡਿਵਾਈਸ ਦੇ ਫੰਕਸ਼ਨ ਨੂੰ ਡੇਟਾ ਸੰਚਾਰ ਲਈ ਐਂਡਪੁਆਇੰਟਸ ਦੇ ਇੱਕ ਜੋੜੇ ਤੋਂ ਬਣੇ ਇੱਕ ਇੰਟਰਫੇਸ ਦੁਆਰਾ ਦਰਸਾਇਆ ਗਿਆ ਹੈ। ਇੱਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਇਆ ਗਿਆ ਹੈ ਅਤੇ ਤੁਹਾਨੂੰ ਇਸਦੇ ਸੰਬੰਧਿਤ ਐਂਡਪੁਆਇੰਟ ਨਾਲ ਪੂਰੇ ਇੰਟਰਫੇਸ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਦੀ ਆਗਿਆ ਦੇਵੇਗਾ।
ਚਿੱਤਰ - ਮਲਟੀਪਲ ਕਲਾਸ ਇੰਸਟੈਂਸ - 1 ਇੰਟਰਫੇਸ ਦੇ ਨਾਲ FS ਡਿਵਾਈਸ 1 ਕੌਂਫਿਗਰੇਸ਼ਨ)

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

15/174

ਵੱਧview

ਚਿੱਤਰ - ਮਲਟੀਪਲ ਕਲਾਸ ਇੰਸਟੈਂਸ - FS ਡਿਵਾਈਸ (1 ਇੰਟਰਫੇਸ ਦੇ ਨਾਲ 1 ਸੰਰਚਨਾ) ਨਾਲ ਸੰਬੰਧਿਤ ਕੋਡ ਉਦਾਹਰਣ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ।ampਹੇਠਾਂ le.
Example – ਮਲਟੀਪਲ ਕਲਾਸ ਇੰਸਟੈਂਸ – 1 ਇੰਟਰਫੇਸ ਦੇ ਨਾਲ FS ਡਿਵਾਈਸ 1 ਕੌਂਫਿਗਰੇਸ਼ਨ)

sl_status_t ਸਥਿਤੀ; uint8_t ਕਲਾਸ_0;

void app_usbd_XXXX_enable(uint8_t class_nbr) { /* ਕਲਾਸ ਯੋਗ ਘਟਨਾ ਨੂੰ ਸੰਭਾਲੋ। */ }

void app_usbd_XXXX_disable(uint8_t class_nbr) { /* ਕਲਾਸ ਡਿਸਏਬਲ ਈਵੈਂਟ ਨੂੰ ਹੈਂਡਲ ਕਰੋ। */ }

sl_usbd_XXXX_ਕਾਲਬੈਕ_t ਕਲਾਸ_ਕਾਲਬੈਕ = {

(1)

.enable = ਐਪ_usbd_XXXX_enable,

.ਅਯੋਗ = ਐਪ_ਯੂਐਸਬੀਡੀ_ਐਕਸਐਕਸਐਕਸ_ਅਯੋਗ

};

ਸਥਿਤੀ = sl_usbd_XXXX_init();

(2)

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* $$$$ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲੋ। */

}

ਸਥਿਤੀ = sl_usbd_XXXX_create_instance(&class_callbacks,

(3)

&ਕਲਾਸ_0);

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* $$$$ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲੋ। */

}

ਸਥਿਤੀ = sl_usbd_XXXX_add_to_configuration(class_0, config_0);

(4)

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* $$$$ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲੋ। */

}

(1) ਹਰੇਕ ਕਲਾਸ ਡਿਵਾਈਸ ਕਨੈਕਟ/ਡਿਸਕਨੈਕਟ ਇਵੈਂਟਸ ਅਤੇ ਕਲਾਸ ਵਿਸ਼ੇਸ਼ ਇਵੈਂਟਸ ਲਈ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨਾਂ ਦਾ ਇੱਕ ਸੈੱਟ ਪੇਸ਼ ਕਰਦੀ ਹੈ। sl_usbd_XXXX_create_instance() ਨਾਲ ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਂਦੇ ਸਮੇਂ ਕਾਲਬੈਕ ਸਟ੍ਰਕਚਰ ਆਬਜੈਕਟ ਨੂੰ ਆਰਗੂਮੈਂਟ ਵਜੋਂ ਪਾਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਫੰਕਸ਼ਨ।
(1) ਕਲਾਸ ਸ਼ੁਰੂ ਕਰੋ। ਸਾਰੇ ਅੰਦਰੂਨੀ ਵੇਰੀਏਬਲ, ਢਾਂਚੇ, ਅਤੇ ਕਲਾਸ ਪੋਰਟ ਸ਼ੁਰੂ ਕੀਤੇ ਜਾਣਗੇ। ਧਿਆਨ ਦਿਓ ਕਿ ਕੁਝ ਕਲਾਸਾਂ ਵਿੱਚ Init() ਫੰਕਸ਼ਨ ਹੋਰ ਆਰਗੂਮੈਂਟ ਲੈ ਸਕਦਾ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

16/174

ਵੱਧview
(2) ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਓ, ਜੋ ਕਿ class_0 ਹੈ। ਫੰਕਸ਼ਨ sl_usbd_XXXX_create_instance() class_0 ਨਾਲ ਸੰਬੰਧਿਤ ਇੱਕ ਕਲਾਸ ਕੰਟਰੋਲ ਸਟ੍ਰਕਚਰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ। ਕਲਾਸ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹੋਏ, sl_usbd_XXXX_create_instance() ਵਿੱਚ ਕਲਾਸ ਨੰਬਰ ਤੋਂ ਇਲਾਵਾ ਵਾਧੂ ਪੈਰਾਮੀਟਰ ਹੋ ਸਕਦੇ ਹਨ ਜੋ ਕਲਾਸ ਕੰਟਰੋਲ ਸਟ੍ਰਕਚਰ ਵਿੱਚ ਸਟੋਰ ਕੀਤੀ ਕਲਾਸ-ਵਿਸ਼ੇਸ਼ ਜਾਣਕਾਰੀ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ। aaa (3) cl ss inst nce, class_0, ਨੂੰ ਨਿਰਧਾਰਤ ਸੰਰਚਨਾ ਨੰਬਰ, config_0 ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ। sl_usbd_XXXX_add_to_configuration() ਇੰਟਰਫੇਸ 0 ਅਤੇ ਇਸਦੇ ਸੰਬੰਧਿਤ IN ਅਤੇ OUT ਅੰਤ ਬਿੰਦੂ ਬਣਾਏਗਾ। ਨਤੀਜੇ ਵਜੋਂ, ਕਲਾਸ ਇੰਸਟੈਂਸ ਇੰਟਰਫੇਸ 0 ਅਤੇ ਇਸਦੇ ਅੰਤ ਬਿੰਦੂਆਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ। ਇੰਟਰਫੇਸ 0 'ਤੇ ਕੀਤਾ ਗਿਆ ਕੋਈ ਵੀ ਸੰਚਾਰ ਕਲਾਸ ਇੰਸਟੈਂਸ ਨੰਬਰ, class_0 ਦੀ ਵਰਤੋਂ ਕਰੇਗਾ। ਚਿੱਤਰ - ਮਲਟੀਪਲ ਕਲਾਸ ਇੰਸਟੈਂਸ - FS ਡਿਵਾਈਸ (2 ਸੰਰਚਨਾ ਅਤੇ ਮਲਟੀਪਲ ਇੰਟਰਫੇਸ) ਇੱਕ ਵਧੇਰੇ ਗੁੰਝਲਦਾਰ ਐਕਸ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈample. ਇੱਕ ਪੂਰੀ-ਗਤੀ ਵਾਲਾ ਯੰਤਰ ਦੋ ਸੰਰਚਨਾਵਾਂ ਤੋਂ ਬਣਿਆ ਹੁੰਦਾ ਹੈ। ਯੰਤਰ ਦੇ ਦੋ ਫੰਕਸ਼ਨ ਹਨ ਜੋ ਇੱਕੋ ਸ਼੍ਰੇਣੀ ਨਾਲ ਸਬੰਧਤ ਹਨ, ਪਰ ਹਰੇਕ ਫੰਕਸ਼ਨ ਨੂੰ ਦੋ ਇੰਟਰਫੇਸਾਂ ਦੁਆਰਾ ਦਰਸਾਇਆ ਗਿਆ ਹੈ ਅਤੇ ਦੋ-ਦਿਸ਼ਾਵੀ ਅੰਤਮ ਬਿੰਦੂਆਂ ਦਾ ਇੱਕ ਜੋੜਾ ਹੈ। ਇਸ ਉਦਾਹਰਣ ਵਿੱਚampਇਸ ਲਈ, ਦੋ ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਏ ਜਾਂਦੇ ਹਨ। ਹਰੇਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਇੰਟਰਫੇਸਾਂ ਦੇ ਇੱਕ ਸਮੂਹ ਨਾਲ ਜੁੜਿਆ ਹੁੰਦਾ ਹੈ, ਜੋ ਕਿ ਚਿੱਤਰ - ਮਲਟੀਪਲ ਕਲਾਸ ਇੰਸਟੈਂਸ - FS ਡਿਵਾਈਸ (1 ਇੰਟਰਫੇਸ ਦੇ ਨਾਲ 1 ਸੰਰਚਨਾ) ਅਤੇ ਚਿੱਤਰ - ਮਲਟੀਪਲ ਕਲਾਸ ਇੰਸਟੈਂਸ - FS ਡਿਵਾਈਸ (2 ਸੰਰਚਨਾ ਅਤੇ ਮਲਟੀਪਲ ਇੰਟਰਫੇਸ) ਦੇ ਉਲਟ ਹੁੰਦਾ ਹੈ ਜਿੱਥੇ ਕਲਾਸ ਇੰਸਟੈਂਸ ਇੱਕ ਸਿੰਗਲ ਇੰਟਰਫੇਸ ਨਾਲ ਜੁੜਿਆ ਹੁੰਦਾ ਸੀ।
ਚਿੱਤਰ - ਮਲਟੀਪਲ ਕਲਾਸ ਇੰਸਟੈਂਸ - FS ਡਿਵਾਈਸ 2 ਕੌਂਫਿਗਰੇਸ਼ਨ ਅਤੇ ਮਲਟੀਪਲ ਇੰਟਰਫੇਸ)

ਚਿੱਤਰ - ਮਲਟੀਪਲ ਕਲਾਸ ਇੰਸਟੈਂਸ - FS ਡਿਵਾਈਸ (2 ਕੌਂਫਿਗਰੇਸ਼ਨ ਅਤੇ ਮਲਟੀਪਲ ਇੰਟਰਫੇਸ) ਨਾਲ ਸੰਬੰਧਿਤ ਕੋਡ ਉਦਾਹਰਣ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ।ampਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ। ਸਪਸ਼ਟਤਾ ਲਈ ਗਲਤੀ ਪ੍ਰਬੰਧਨ ਨੂੰ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ।
Example – ਮਲਟੀਪਲ ਕਲਾਸ ਇੰਸਟੈਂਸ – FS ਡਿਵਾਈਸ 2 ਕੌਂਫਿਗਰੇਸ਼ਨ ਅਤੇ ਮਲਟੀਪਲ ਇੰਟਰਫੇਸ)

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

17/174

ਵੱਧview

sl_status_t ਸਥਿਤੀ; uint8_t ਕਲਾਸ_0; uint8_t ਕਲਾਸ_1;
ਸਥਿਤੀ = sl_usbd_XXXX_init();
ਸਥਿਤੀ = sl_usbd_XXXX_create_instance(&class_0); ਸਥਿਤੀ = sl_usbd_XXXX_create_instance(&class_1);
ਸਥਿਤੀ = sl_usbd_XXXX_ਸੰਰਚਨਾ ਵਿੱਚ_ਜੋੜੋ(ਕਲਾਸ_0, cfg_0); ਸਥਿਤੀ = sl_usbd_XXXX_ਸੰਰਚਨਾ ਵਿੱਚ_ਜੋੜੋ(ਕਲਾਸ_1, cfg_0);
ਸਥਿਤੀ = sl_usbd_XXXX_ਸੰਰਚਨਾ ਵਿੱਚ_ਜੋੜੋ(ਕਲਾਸ_0, cfg_1); ਸਥਿਤੀ = sl_usbd_XXXX_ਸੰਰਚਨਾ ਵਿੱਚ_ਜੋੜੋ(ਕਲਾਸ_1, cfg_1);

(1)
(2) (3)
(4) (5)
(6) (6)

(1) ਕਲਾਸ ਸ਼ੁਰੂ ਕਰੋ। ਕੋਈ ਵੀ ਅੰਦਰੂਨੀ ਵੇਰੀਏਬਲ, ਬਣਤਰ, ਅਤੇ ਕਲਾਸ ਪੋਰਟ ਸ਼ੁਰੂ ਕੀਤੇ ਜਾਣਗੇ।
(2) ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਓ, class_0। ਫੰਕਸ਼ਨ sl_usbd_XXXX_create_instance() class_0 ਨਾਲ ਜੁੜੇ ਇੱਕ ਕਲਾਸ ਕੰਟਰੋਲ ਢਾਂਚੇ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।
(3) ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਓ, class_1। ਫੰਕਸ਼ਨ sl_usbd_XXXX_create_instance() class_1 ਨਾਲ ਜੁੜੇ ਇੱਕ ਹੋਰ ਕਲਾਸ ਕੰਟਰੋਲ ਢਾਂਚੇ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।
(4) cfg_0 ਸੰਰਚਨਾ ਵਿੱਚ ਕਲਾਸ ਇੰਸਟੈਂਸ, class_0, ਜੋੜੋ। sl_usbd_XXXX_add_to_configuration() ਇੰਟਰਫੇਸ 0, ਇੰਟਰਫੇਸ 1, ਵਿਕਲਪਿਕ ਇੰਟਰਫੇਸ, ਅਤੇ ਸੰਬੰਧਿਤ IN ਅਤੇ OUT ਅੰਤਮ ਬਿੰਦੂ ਬਣਾਏਗਾ। ਕਲਾਸ ਇੰਸਟੈਂਸ ਨੰਬਰ, class_0, ਇੰਟਰਫੇਸ 0 ਜਾਂ ਇੰਟਰਫੇਸ 1 'ਤੇ ਕਿਸੇ ਵੀ ਡੇਟਾ ਸੰਚਾਰ ਲਈ ਵਰਤਿਆ ਜਾਵੇਗਾ।
(5) cfg_0 ਸੰਰਚਨਾ ਵਿੱਚ ਕਲਾਸ ਇੰਸਟੈਂਸ, class_1, ਜੋੜੋ। sl_usbd_XXXX_add_to_configuration() ਇੰਟਰਫੇਸ 2, ਇੰਟਰਫੇਸ 3 ਅਤੇ ਉਹਨਾਂ ਨਾਲ ਜੁੜੇ IN ਅਤੇ OUT ਅੰਤਮ ਬਿੰਦੂ ਬਣਾਏਗਾ। ਕਲਾਸ ਇੰਸਟੈਂਸ ਨੰਬਰ, class_1, ਇੰਟਰਫੇਸ 2 ਜਾਂ ਇੰਟਰਫੇਸ 3 'ਤੇ ਕਿਸੇ ਵੀ ਡੇਟਾ ਸੰਚਾਰ ਲਈ ਵਰਤਿਆ ਜਾਵੇਗਾ।
(6) ਦੂਜੀ ਸੰਰਚਨਾ, cfg_1 ਵਿੱਚ ਉਹੀ ਕਲਾਸ ਉਦਾਹਰਣਾਂ, class_0 ਅਤੇ class_1, ਸ਼ਾਮਲ ਕਰੋ।
ਹਰੇਕ ਕਲਾਸ sl_usbd_XXXX_callbacks_t ਕਿਸਮ ਦੀ ਬਣਤਰ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੀ ਹੈ। ਇਸਦਾ ਉਦੇਸ਼ ਹਰੇਕ ਕਲਾਸ ਨੂੰ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨਾਂ ਦਾ ਇੱਕ ਸੈੱਟ ਦੇਣਾ ਹੈ ਜਿਸਨੂੰ ਘਟਨਾ ਵਾਪਰਨ 'ਤੇ ਕਾਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਹਰੇਕ ਕਲਾਸ ਵਿੱਚ ਦੋ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨ ਮੌਜੂਦ ਹਨ। ਉਹਨਾਂ ਨੂੰ ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵਿੱਚ ਪੇਸ਼ ਕੀਤਾ ਗਿਆ ਹੈ।
ਸਾਰਣੀ - ਆਮ ਕਲਾਸ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨ

ਖੇਤਰਾਂ ਦਾ ਵੇਰਵਾ .enable USB ਕਲਾਸ ਇੰਸਟੈਂਸ ਸਫਲਤਾਪੂਰਵਕ ਸਮਰੱਥ ਹੋਣ 'ਤੇ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। .disable USB ਕਲਾਸ ਇੰਸਟੈਂਸ ਅਯੋਗ ਹੋਣ 'ਤੇ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

ਫੰਕਸ਼ਨ ਦਸਤਖਤ void app_usbd_XXXX_enable(uint8_t class_nbr); void app_usbd_XXXX_disable(uint8_t class_nbr);

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

18/174

ਵੱਧview
ਵੱਧview
USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ
USB ਡਿਵਾਈਸ CDC ਬੇਸ ਕਲਾਸ ਓਵਰview USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਸਰੋਤ ਲੋੜਾਂ ਕੋਰ USB ਡਿਵਾਈਸ CDC ACM ਸਬਕਲਾਸ ਓਵਰ ਤੋਂview USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਕੌਂਫਿਗਰੇਸ਼ਨ USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ
ਇਹ ਭਾਗ ਸੰਚਾਰ ਡਿਵਾਈਸ ਕਲਾਸ (CDC) ਕਲਾਸ ਅਤੇ ਸਿਲੀਕਾਨ ਲੈਬਜ਼ ਦੇ USB ਡਿਵਾਈਸ ਸਟੈਕ ਦੁਆਰਾ ਸਮਰਥਿਤ ਸੰਬੰਧਿਤ CDC ਸਬਕਲਾਸ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ। ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB-ਡਿਵਾਈਸ ਵਰਤਮਾਨ ਵਿੱਚ ਐਬਸਟਰੈਕਟ ਕੰਟਰੋਲ ਮਾਡਲ (ACM) ਸਬਕਲਾਸ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਆਮ ਤੌਰ 'ਤੇ ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
ਸੀਡੀਸੀ ਵਿੱਚ ਕਈ ਤਰ੍ਹਾਂ ਦੇ ਦੂਰਸੰਚਾਰ ਅਤੇ ਨੈੱਟਵਰਕਿੰਗ ਯੰਤਰ ਸ਼ਾਮਲ ਹਨ। ਦੂਰਸੰਚਾਰ ਯੰਤਰਾਂ ਵਿੱਚ ਐਨਾਲਾਗ ਮਾਡਮ, ਐਨਾਲਾਗ ਅਤੇ ਡਿਜੀਟਲ ਟੈਲੀਫੋਨ, ਆਈਐਸਡੀਐਨ ਟਰਮੀਨਲ ਅਡੈਪਟਰ, ਆਦਿ ਸ਼ਾਮਲ ਹਨ। ਉਦਾਹਰਣ ਵਜੋਂampਜਾਂ, ਨੈੱਟਵਰਕਿੰਗ ਡਿਵਾਈਸਾਂ ਵਿੱਚ ADSL ਅਤੇ ਕੇਬਲ ਮਾਡਮ, ਈਥਰਨੈੱਟ ਅਡੈਪਟਰ ਅਤੇ ਹੱਬ ਹੁੰਦੇ ਹਨ। CDC ਇੱਕ USB ਲਿੰਕ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਮੌਜੂਦਾ ਸੰਚਾਰ ਸੇਵਾਵਾਂ ਦੇ ਮਿਆਰਾਂ, ਜਿਵੇਂ ਕਿ V.250 (ਟੈਲੀਫੋਨ ਨੈੱਟਵਰਕ ਉੱਤੇ ਮਾਡਮਾਂ ਲਈ) ਅਤੇ ਈਥਰਨੈੱਟ (ਸਥਾਨਕ ਖੇਤਰ ਨੈੱਟਵਰਕ ਡਿਵਾਈਸਾਂ ਲਈ) ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਇੱਕ ਢਾਂਚਾ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਇੱਕ ਸੰਚਾਰ ਡਿਵਾਈਸ ਡਿਵਾਈਸ ਪ੍ਰਬੰਧਨ, ਲੋੜ ਪੈਣ 'ਤੇ ਕਾਲ ਪ੍ਰਬੰਧਨ, ਅਤੇ ਡੇਟਾ ਟ੍ਰਾਂਸਮਿਸ਼ਨ ਦਾ ਇੰਚਾਰਜ ਹੁੰਦਾ ਹੈ।
ਸੀਡੀਸੀ ਡਿਵਾਈਸਾਂ ਦੇ ਸੱਤ ਪ੍ਰਮੁੱਖ ਸਮੂਹਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਹਰੇਕ ਸਮੂਹ ਸੰਚਾਰ ਦੇ ਇੱਕ ਮਾਡਲ ਨਾਲ ਸਬੰਧਤ ਹੈ, ਜਿਸ ਵਿੱਚ ਕਈ ਉਪ-ਸ਼੍ਰੇਣੀਆਂ ਸ਼ਾਮਲ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਸੀਡੀਸੀ ਬੇਸ ਕਲਾਸ ਤੋਂ ਇਲਾਵਾ ਡਿਵਾਈਸਾਂ ਦੇ ਹਰੇਕ ਸਮੂਹ ਦਾ ਆਪਣਾ ਨਿਰਧਾਰਨ ਦਸਤਾਵੇਜ਼ ਹੁੰਦਾ ਹੈ। ਸੱਤ ਸਮੂਹ ਹਨ:
ਪਬਲਿਕ ਸਵਿੱਚਡ ਟੈਲੀਫੋਨ ਨੈੱਟਵਰਕ (PSTN), ਵੌਇਸਬੈਂਡ ਮਾਡਮ, ਟੈਲੀਫੋਨ, ਅਤੇ ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਡਿਵਾਈਸਾਂ ਸਮੇਤ ਡਿਵਾਈਸਾਂ। ਏਕੀਕ੍ਰਿਤ ਸੇਵਾਵਾਂ ਡਿਜੀਟਲ ਨੈੱਟਵਰਕ (ISDN) ਡਿਵਾਈਸਾਂ, ਟਰਮੀਨਲ ਅਡੈਪਟਰ ਅਤੇ ਟੈਲੀਫੋਨ ਸਮੇਤ। ਈਥਰਨੈੱਟ ਕੰਟਰੋਲ ਮਾਡਲ (ECM) ਡਿਵਾਈਸਾਂ, IEEE 802 ਪਰਿਵਾਰ ਦਾ ਸਮਰਥਨ ਕਰਨ ਵਾਲੇ ਡਿਵਾਈਸਾਂ ਸਮੇਤ (ਉਦਾਹਰਨ: ਕੇਬਲ ਅਤੇ ADSL ਮਾਡਮ, WiFi ਅਡੈਪਟਰ)। ਅਸਿੰਕ੍ਰੋਨਸ ਟ੍ਰਾਂਸਫਰ ਮੋਡ (ATM) ਡਿਵਾਈਸਾਂ, ADSL ਮਾਡਮ ਅਤੇ ATM ਨੈੱਟਵਰਕਾਂ ਨਾਲ ਜੁੜੇ ਹੋਰ ਡਿਵਾਈਸਾਂ (ਵਰਕਸਟੇਸ਼ਨ, ਰਾਊਟਰ, LAN ਸਵਿੱਚ) ਸਮੇਤ। ਵਾਇਰਲੈੱਸ ਮੋਬਾਈਲ ਕਮਿਊਨੀਕੇਸ਼ਨ (WMC) ਡਿਵਾਈਸਾਂ, ਵੌਇਸ ਅਤੇ ਡੇਟਾ ਸੰਚਾਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਮਲਟੀ-ਫੰਕਸ਼ਨ ਸੰਚਾਰ ਹੈਂਡਸੈੱਟ ਡਿਵਾਈਸਾਂ ਸਮੇਤ। ਈਥਰਨੈੱਟ ਇਮੂਲੇਸ਼ਨ ਮਾਡਲ (EEM) ਡਿਵਾਈਸਾਂ ਜੋ ਈਥਰਨੈੱਟ-ਫ੍ਰੇਮਡ ਡੇਟਾ ਦਾ ਆਦਾਨ-ਪ੍ਰਦਾਨ ਕਰਦੀਆਂ ਹਨ। ਨੈੱਟਵਰਕ ਕੰਟਰੋਲ ਮਾਡਲ (NCM) ਡਿਵਾਈਸਾਂ, ਹਾਈ-ਸਪੀਡ ਨੈੱਟਵਰਕ ਡਿਵਾਈਸਾਂ ਸਮੇਤ (ਹਾਈ ਸਪੀਡ ਪੈਕੇਟ ਐਕਸੈਸ ਮਾਡਮ, ਲਾਈਨ ਟਰਮੀਨਲ ਉਪਕਰਣ)
ਸੀਡੀਸੀ ਅਤੇ ਸੰਬੰਧਿਤ ਸਬਕਲਾਸ ਲਾਗੂਕਰਨ ਹੇਠ ਲਿਖੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹਨ:
ਯੂਨੀਵਰਸਲ ਸੀਰੀਅਲ ਬੱਸ, ਸੰਚਾਰ ਯੰਤਰਾਂ ਲਈ ਕਲਾਸ ਪਰਿਭਾਸ਼ਾਵਾਂ, ਸੋਧ 1.2, 3 ਨਵੰਬਰ 2010। ਯੂਨੀਵਰਸਲ ਸੀਰੀਅਲ ਬੱਸ, ਸੰਚਾਰ, PSTN ਯੰਤਰਾਂ ਲਈ ਸਬਕਲਾਸ, ਸੋਧ 1.2, 9 ਫਰਵਰੀ 2007।
USB ਡਿਵਾਈਸ CDC ਬੇਸ ਕਲਾਸ ਓਵਰview
ਸੰਚਾਰ ਸਮਰੱਥਾ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਇੱਕ CDC ਡਿਵਾਈਸ ਹੇਠ ਲਿਖੇ ਇੰਟਰਫੇਸਾਂ ਤੋਂ ਬਣੀ ਹੁੰਦੀ ਹੈ:
ਕਮਿਊਨੀਕੇਸ਼ਨ ਕਲਾਸ ਇੰਟਰਫੇਸ (CCI) ਡਿਵਾਈਸ ਪ੍ਰਬੰਧਨ ਅਤੇ ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ ਕਾਲ ਪ੍ਰਬੰਧਨ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਹੈ।
ਡਿਵਾਈਸ ਪ੍ਰਬੰਧਨ ਡਿਵਾਈਸ ਦੀ ਆਮ ਸੰਰਚਨਾ ਅਤੇ ਨਿਯੰਤਰਣ ਅਤੇ ਹੋਸਟ ਨੂੰ ਘਟਨਾਵਾਂ ਦੀ ਸੂਚਨਾ ਦੇਣ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ। ਕਾਲ ਪ੍ਰਬੰਧਨ ਕਾਲ ਸਥਾਪਨਾ ਅਤੇ ਸਮਾਪਤੀ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ। ਕਾਲ ਪ੍ਰਬੰਧਨ ਨੂੰ DCI ਰਾਹੀਂ ਮਲਟੀਪਲੈਕਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਸਾਰੇ CDC ਡਿਵਾਈਸਾਂ ਲਈ ਇੱਕ CCI ਲਾਜ਼ਮੀ ਹੈ। ਇਹ CDC ਡਿਵਾਈਸ ਦੁਆਰਾ ਸਮਰਥਿਤ ਸੰਚਾਰ ਮਾਡਲ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਕੇ CDC ਫੰਕਸ਼ਨ ਦੀ ਪਛਾਣ ਕਰਦਾ ਹੈ। CCI ਤੋਂ ਬਾਅਦ ਇੰਟਰਫੇਸ ਕੋਈ ਵੀ ਪਰਿਭਾਸ਼ਿਤ USB ਕਲਾਸ ਇੰਟਰਫੇਸ ਹੋ ਸਕਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਆਡੀਓ ਜਾਂ ਵਿਕਰੇਤਾ-ਵਿਸ਼ੇਸ਼ ਇੰਟਰਫੇਸ। ਵਿਕਰੇਤਾ-ਵਿਸ਼ੇਸ਼ ਇੰਟਰਫੇਸ ਨੂੰ ਖਾਸ ਤੌਰ 'ਤੇ DCI ਦੁਆਰਾ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ।
ਡੇਟਾ ਕਲਾਸ ਇੰਟਰਫੇਸ (DCI) ਡੇਟਾ ਟ੍ਰਾਂਸਮਿਸ਼ਨ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਹੈ। ਪ੍ਰਸਾਰਿਤ ਅਤੇ/ਜਾਂ ਪ੍ਰਾਪਤ ਡੇਟਾ ਕਿਸੇ ਖਾਸ ਦੀ ਪਾਲਣਾ ਨਹੀਂ ਕਰਦਾ ਹੈ
ਫਾਰਮੈਟ। ਡੇਟਾ ਇੱਕ ਸੰਚਾਰ ਲਾਈਨ ਤੋਂ ਕੱਚਾ ਡੇਟਾ, ਇੱਕ ਮਲਕੀਅਤ ਫਾਰਮੈਟ ਦੀ ਪਾਲਣਾ ਕਰਨ ਵਾਲਾ ਡੇਟਾ, ਆਦਿ ਹੋ ਸਕਦਾ ਹੈ। CCI ਦੀ ਪਾਲਣਾ ਕਰਨ ਵਾਲੇ ਸਾਰੇ DCIs ਨੂੰ ਅਧੀਨ ਇੰਟਰਫੇਸ ਵਜੋਂ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਇੱਕ CDC ਡਿਵਾਈਸ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਇੱਕ CCI ਅਤੇ ਜ਼ੀਰੋ ਜਾਂ ਵੱਧ DCI ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ। ਇੱਕ CCI ਅਤੇ ਕੋਈ ਵੀ ਅਧੀਨ DCI ਮਿਲ ਕੇ ਹੋਸਟ ਨੂੰ ਇੱਕ ਵਿਸ਼ੇਸ਼ਤਾ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ। ਇਸ ਸਮਰੱਥਾ ਨੂੰ ਇੱਕ ਫੰਕਸ਼ਨ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਇੱਕ CDC ਕੰਪੋਜ਼ਿਟ ਡਿਵਾਈਸ ਵਿੱਚ, ਤੁਹਾਡੇ ਕੋਲ ਕਈ ਹੋ ਸਕਦੇ ਹਨ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

19/174

ਵੱਧview
ਫੰਕਸ਼ਨ। ਇਸ ਲਈ, ਡਿਵਾਈਸ CCI ਅਤੇ DCI(s) ਦੇ ਕਈ ਸੈੱਟਾਂ ਤੋਂ ਬਣੀ ਹੋਵੇਗੀ ਜਿਵੇਂ ਕਿ ਚਿੱਤਰ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ - CDC ਕੰਪੋਜ਼ਿਟ ਡਿਵਾਈਸ।
ਚਿੱਤਰ - ਸੀਡੀਸੀ ਕੰਪੋਜ਼ਿਟ ਡਿਵਾਈਸ

ਇੱਕ CDC ਡਿਵਾਈਸ ਹੇਠ ਲਿਖੇ ਅੰਤਮ ਬਿੰਦੂਆਂ ਦੇ ਸੁਮੇਲ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਸੰਭਾਵਨਾ ਰੱਖਦੀ ਹੈ:
ਕੰਟਰੋਲ IN ਅਤੇ OUT ਐਂਡਪੁਆਇੰਟਸ ਦੀ ਇੱਕ ਜੋੜੀ ਨੂੰ ਡਿਫਾਲਟ ਐਂਡਪੁਆਇੰਟ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਵਿਕਲਪਿਕ ਬਲਕ ਜਾਂ ਇੰਟਰੱਪਟ IN ਐਂਡਪੁਆਇੰਟ। ਬਲਕ ਜਾਂ ਆਈਸੋਕ੍ਰੋਨਸ IN ਅਤੇ OUT ਐਂਡਪੁਆਇੰਟਸ ਦੀ ਇੱਕ ਜੋੜੀ। ਧਿਆਨ ਦਿਓ ਕਿ ਸਿਲੀਕਾਨ ਲੈਬਸ USB ਡਿਵਾਈਸ ਸਟੈਕ ਵਰਤਮਾਨ ਵਿੱਚ ਆਈਸੋਕ੍ਰੋਨਸ ਐਂਡਪੁਆਇੰਟਸ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਹੈ।
ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵੱਖ-ਵੱਖ ਅੰਤਮ ਬਿੰਦੂਆਂ ਦੀ ਵਰਤੋਂ ਅਤੇ ਸੀਡੀਸੀ ਦੇ ਕਿਸ ਇੰਟਰਫੇਸ ਦੁਆਰਾ ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ।
ਸਾਰਣੀ - ਸੀਡੀਸੀ ਐਂਡਪੁਆਇੰਟ ਵਰਤੋਂ

ਅੰਤ ਬਿੰਦੂ
ਕੰਟਰੋਲ IN
ਕੰਟਰੋਲ ਬਾਹਰ
ਇੰਟਰੱਪਟ ਜਾਂ ਥੋਕ IN ਥੋਕ ਜਾਂ ਆਈਸੋਕ੍ਰੋਨਸ IN ਥੋਕ ਜਾਂ ਆਈਸੋਕ੍ਰੋਨਸ
ਬਾਹਰ

ਦਿਸ਼ਾ
ਡਿਵਾਈਸ-ਟੂ-ਹੋਸਟ
ਹੋਸਟ-ਟੂਡਿਵਾਈਸ
ਡਿਵਾਈਸ-ਟੂ-ਹੋਸਟ
ਡਿਵਾਈਸ-ਟੂ-ਹੋਸਟ
ਹੋਸਟ-ਟੂਡਿਵਾਈਸ

ਇੰਟਰਫੇਸ ਵਰਤੋਂ

ਸੀ.ਸੀ.ਆਈ

ਗਣਨਾ ਲਈ ਮਿਆਰੀ ਬੇਨਤੀਆਂ, ਕਲਾਸ-ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ, ਡਿਵਾਈਸ

ਪ੍ਰਬੰਧਨ, ਅਤੇ ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ ਕਾਲ ਪ੍ਰਬੰਧਨ।

ਸੀ.ਸੀ.ਆਈ

ਗਣਨਾ ਲਈ ਮਿਆਰੀ ਬੇਨਤੀਆਂ, ਕਲਾਸ-ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ, ਡਿਵਾਈਸ

ਪ੍ਰਬੰਧਨ, ਅਤੇ ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ ਕਾਲ ਪ੍ਰਬੰਧਨ।

ਸੀ.ਸੀ.ਆਈ

ਇਵੈਂਟ ਨੋਟੀਫਿਕੇਸ਼ਨ, ਜਿਵੇਂ ਕਿ ਰਿੰਗ ਡਿਟੈਕਟ, ਸੀਰੀਅਲ ਲਾਈਨ ਸਟੇਟਸ, ਨੈੱਟਵਰਕ ਸਟੇਟਸ।

ਡੀ.ਸੀ.ਆਈ

ਕੱਚਾ ਜਾਂ ਫਾਰਮੈਟ ਕੀਤਾ ਡਾਟਾ ਸੰਚਾਰ।

ਡੀ.ਸੀ.ਆਈ

ਕੱਚਾ ਜਾਂ ਫਾਰਮੈਟ ਕੀਤਾ ਡਾਟਾ ਸੰਚਾਰ।

ਜ਼ਿਆਦਾਤਰ ਸੰਚਾਰ ਯੰਤਰ ਘਟਨਾਵਾਂ ਦੇ ਹੋਸਟ ਨੂੰ ਸੂਚਿਤ ਕਰਨ ਲਈ ਇੱਕ ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਜਦੋਂ ਇੱਕ ਮਲਕੀਅਤ ਪ੍ਰੋਟੋਕੋਲ USB ਪ੍ਰੋਟੋਕੋਲ ਗਲਤੀਆਂ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਡੇਟਾ ਰੀਟ੍ਰਾਂਸਮਿਸ਼ਨ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਤਾਂ ਡੇਟਾ ਟ੍ਰਾਂਸਮਿਸ਼ਨ ਲਈ ਆਈਸੋਕ੍ਰੋਨਸ ਐਂਡਪੁਆਇੰਟਸ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ। ਆਈਸੋਕ੍ਰੋਨਸ ਸੰਚਾਰ ਕੁਦਰਤੀ ਤੌਰ 'ਤੇ ਡੇਟਾ ਗੁਆ ਸਕਦਾ ਹੈ ਕਿਉਂਕਿ ਇਸ ਵਿੱਚ ਕੋਈ ਰੀਟ੍ਰੀ ਵਿਧੀ ਨਹੀਂ ਹੈ।
ਸੰਚਾਰ ਦੇ ਸੱਤ ਪ੍ਰਮੁੱਖ ਮਾਡਲ ਕਈ ਉਪ-ਸ਼੍ਰੇਣੀਆਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਦੇ ਹਨ। ਇੱਕ ਉਪ-ਸ਼੍ਰੇਣੀ ਦੱਸਦੀ ਹੈ ਕਿ ਡਿਵਾਈਸ ਪ੍ਰਬੰਧਨ ਅਤੇ ਕਾਲ ਪ੍ਰਬੰਧਨ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਡਿਵਾਈਸ ਨੂੰ CCI ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਸਾਰੇ ਸੰਭਵ ਉਪ-ਸ਼੍ਰੇਣੀਆਂ ਅਤੇ ਸੰਚਾਰ ਮਾਡਲ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ ਜਿਸ ਨਾਲ ਉਹ ਸਬੰਧਤ ਹਨ।
ਸਾਰਣੀ - ਸੀਡੀਸੀ ਉਪ-ਸ਼੍ਰੇਣੀਆਂ

ਉਪ-ਸ਼੍ਰੇਣੀ
ਡਾਇਰੈਕਟ ਲਾਈਨ ਕੰਟਰੋਲ ਮਾਡਲ ਐਬਸਟਰੈਕਟ ਕੰਟਰੋਲ ਮਾਡਲ

ਸੰਚਾਰ ਮਾਡਲ
PSTN
PSTN

Exampਇਸ ਉਪ-ਸ਼੍ਰੇਣੀ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਡਿਵਾਈਸਾਂ ਦੀ ਜਾਣਕਾਰੀ
USB ਹੋਸਟ ਦੁਆਰਾ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਨਿਯੰਤਰਿਤ ਮਾਡਮ ਡਿਵਾਈਸਾਂ
ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਡਿਵਾਈਸਾਂ, ਇੱਕ ਸੀਰੀਅਲ ਕਮਾਂਡ ਸੈੱਟ ਦੁਆਰਾ ਨਿਯੰਤਰਿਤ ਮਾਡਮ ਡਿਵਾਈਸਾਂ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

20/174

ਵੱਧview

ਉਪ-ਸ਼੍ਰੇਣੀ

ਸੰਚਾਰ ਮਾਡਲ

Exampਇਸ ਉਪ-ਸ਼੍ਰੇਣੀ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਡਿਵਾਈਸਾਂ ਦੀ ਜਾਣਕਾਰੀ

ਟੈਲੀਫੋਨ ਕੰਟਰੋਲ ਮਾਡਲ

PSTN

ਮਲਟੀ-ਚੈਨਲ ਕੰਟਰੋਲ ISDN ਮਾਡਲ

CAPI ਕੰਟਰੋਲ ਮਾਡਲ ISDN

ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕਿੰਗ ECM ਕੰਟਰੋਲ ਮਾਡਲ

ਏਟੀਐਮ ਨੈੱਟਵਰਕਿੰਗ

ਏ.ਟੀ.ਐਮ

ਕੰਟਰੋਲ ਮਾਡਲ

ਵਾਇਰਲੈੱਸ ਹੈਂਡਸੈੱਟ ਕੰਟਰੋਲ ਮਾਡਲ

ਡਬਲਯੂ.ਐਮ.ਸੀ

ਡਿਵਾਈਸ ਪ੍ਰਬੰਧਨ WMC

ਮੋਬਾਈਲ ਡਾਇਰੈਕਟ ਲਾਈਨ ਮਾਡਲ

ਡਬਲਯੂ.ਐਮ.ਸੀ

ਓਬੈਕਸ

ਡਬਲਯੂ.ਐਮ.ਸੀ

ਈਥਰਨੈੱਟ ਇਮੂਲੇਸ਼ਨ EEM ਮਾਡਲ

ਨੈੱਟਵਰਕ ਕੰਟਰੋਲ ਮਾਡਲ

ਪੜਤਾਲੀਆ

ਵੌਇਸ ਟੈਲੀਫੋਨੀ ਡਿਵਾਈਸਾਂ
ਮੁੱਢਲੇ ਰੇਟ ਟਰਮੀਨਲ ਅਡੈਪਟਰ, ਪ੍ਰਾਇਮਰੀ ਰੇਟ ਟਰਮੀਨਲ ਅਡੈਪਟਰ, ਟੈਲੀਫੋਨ
ਬੇਸਿਕ ਰੇਟ ਟਰਮੀਨਲ ਅਡੈਪਟਰ, ਪ੍ਰਾਇਮਰੀ ਰੇਟ ਟਰਮੀਨਲ ਅਡੈਪਟਰ, ਟੈਲੀਫੋਨ DOC-SIS ਕੇਬਲ ਮਾਡਮ, ADSL ਮਾਡਮ ਜੋ PPPoE ਇਮੂਲੇਸ਼ਨ ਦਾ ਸਮਰਥਨ ਕਰਦੇ ਹਨ, Wi-Fi ਅਡੈਪਟਰ (IEEE 802.11-ਫੈਮਿਲੀ), IEEE 802.3 ਅਡੈਪਟਰ ADSL ਮਾਡਮ
ਵਾਇਰਲੈੱਸ ਡਿਵਾਈਸਾਂ ਨਾਲ ਜੁੜਨ ਵਾਲਾ ਮੋਬਾਈਲ ਟਰਮੀਨਲ ਉਪਕਰਣ
ਵਾਇਰਲੈੱਸ ਡਿਵਾਈਸਾਂ ਨਾਲ ਜੁੜਨ ਵਾਲਾ ਮੋਬਾਈਲ ਟਰਮੀਨਲ ਉਪਕਰਣ ਵਾਇਰਲੈੱਸ ਡਿਵਾਈਸਾਂ ਨਾਲ ਜੁੜਨ ਵਾਲਾ ਮੋਬਾਈਲ ਟਰਮੀਨਲ ਉਪਕਰਣ
ਵਾਇਰਲੈੱਸ ਡਿਵਾਈਸਾਂ ਨਾਲ ਜੁੜਨ ਵਾਲੇ ਮੋਬਾਈਲ ਟਰਮੀਨਲ ਉਪਕਰਣ ਈਥਰਨੈੱਟ ਫਰੇਮਾਂ ਨੂੰ ਟ੍ਰਾਂਸਪੋਰਟ ਦੀ ਅਗਲੀ ਪਰਤ ਵਜੋਂ ਵਰਤਦੇ ਹੋਏ ਡਿਵਾਈਸਾਂ। ਰੂਟਿੰਗ ਅਤੇ ਇੰਟਰਨੈਟ ਕਨੈਕਟੀਵਿਟੀ ਡਿਵਾਈਸਾਂ ਲਈ ਨਹੀਂ IEEE 802.3 ਅਡੈਪਟਰ ਜੋ ਨੈੱਟਵਰਕ 'ਤੇ ਹਾਈ-ਸਪੀਡ ਡੇਟਾ ਬੈਂਡਵਿਡਥ ਰੱਖਦੇ ਹਨ

ਕੋਰ ਤੋਂ USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਸਰੋਤ ਲੋੜਾਂ

ਹਰ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਫੰਕਸ਼ਨ sl_usbd_cdc_acm_add_to_configuration() ਨੂੰ ਕਾਲ ਕਰਕੇ USB ਕੌਂਫਿਗਰੇਸ਼ਨ ਵਿੱਚ CDC ACM ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਦੇ ਹੋ, ਤਾਂ ਕੋਰ ਤੋਂ ਹੇਠਾਂ ਦਿੱਤੇ ਸਰੋਤ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਣਗੇ।

ਸਰੋਤ
ਇੰਟਰਫੇਸ ਵਿਕਲਪਿਕ ਇੰਟਰਫੇਸ ਐਂਡਪੁਆਇੰਟ ਇੰਟਰਫੇਸ ਗਰੁੱਪ

ਮਾਤਰਾ
2 2 3 1

ਧਿਆਨ ਦਿਓ ਕਿ ਉਹ ਨੰਬਰ ਪ੍ਰਤੀ ਸੰਰਚਨਾ ਹਨ। ਆਪਣੇ SL_USBD_INTERFACE_QUANTITY , SL_USBD_ALT_INTERFACE_QUANTITY , SL_USBD_INTERFACE_GROUP_QUANTITY ਅਤੇ SL_USBD_DESCRIPTOR_QUANTITY ਸੰਰਚਨਾ ਮੁੱਲਾਂ ਨੂੰ ਸੈੱਟ ਕਰਦੇ ਸਮੇਂ, ਇਹ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣਾ ਨਾ ਭੁੱਲੋ ਕਿ ਕਲਾਸ ਕਿੰਨੀਆਂ ਸੰਰਚਨਾਵਾਂ ਜੋੜੀਆਂ ਜਾਣਗੀਆਂ। SL_USBD_OPEN_ENDPOINTS_QUANTITY ਸੰਰਚਨਾ ਮੁੱਲ ਲਈ, ਕਿਉਂਕਿ ਅੰਤ ਬਿੰਦੂ ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਖੋਲ੍ਹੇ ਜਾਂਦੇ ਹਨ ਜਦੋਂ ਇੱਕ ਸੰਰਚਨਾ ਹੋਸਟ ਦੁਆਰਾ ਸੈੱਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤੁਹਾਨੂੰ ਸਿਰਫ਼ ਇੱਕ ਕਲਾਸ ਉਦਾਹਰਣ ਲਈ ਲੋੜੀਂਦੇ ਅੰਤ ਬਿੰਦੂਆਂ ਦੀ ਗਿਣਤੀ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣ ਦੀ ਲੋੜ ਹੈ।
USB ਡਿਵਾਈਸ CDC ACM ਸਬਕਲਾਸ ਓਵਰview

ਸੀਡੀਸੀ ਬੇਸ ਕਲਾਸ ਇੱਕ ਕਮਿਊਨੀਕੇਸ਼ਨ ਕਲਾਸ ਇੰਟਰਫੇਸ (ਸੀਸੀਆਈ) ਅਤੇ ਡੇਟਾ ਕਲਾਸ ਇੰਟਰਫੇਸ (ਡੀਸੀਆਈ) ਤੋਂ ਬਣਿਆ ਹੁੰਦਾ ਹੈ, ਜਿਸਦੀ ਚਰਚਾ USB ਡਿਵਾਈਸ ਸੀਡੀਸੀ ਬੇਸ ਕਲਾਸ ਓਵਰ ਵਿੱਚ ਵਿਸਥਾਰ ਵਿੱਚ ਕੀਤੀ ਗਈ ਹੈ।view . ਇਹ ਭਾਗ ACM ਕਿਸਮ ਦੇ CCI ਬਾਰੇ ਚਰਚਾ ਕਰਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਪ੍ਰਬੰਧਨ ਤੱਤ ਲਈ ਇੱਕ ਡਿਫਾਲਟ ਐਂਡਪੁਆਇੰਟ ਅਤੇ ਸੂਚਨਾ ਤੱਤ ਲਈ ਇੱਕ ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟ ਹੁੰਦਾ ਹੈ। DCI ਉੱਤੇ ਅਣ-ਨਿਰਧਾਰਤ ਡੇਟਾ ਨੂੰ ਲਿਜਾਣ ਲਈ ਬਲਕ ਐਂਡਪੁਆਇੰਟਸ ਦੀ ਇੱਕ ਜੋੜੀ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ACM ਸਬਕਲਾਸ ਦੋ ਕਿਸਮਾਂ ਦੇ ਸੰਚਾਰ ਯੰਤਰਾਂ ਦੁਆਰਾ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:
AT ਕਮਾਂਡਾਂ ਦਾ ਸਮਰਥਨ ਕਰਨ ਵਾਲੇ ਡਿਵਾਈਸ (ਉਦਾਹਰਨ ਲਈ, ਵੌਇਸਬੈਂਡ ਮਾਡਮ)। ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਡਿਵਾਈਸਾਂ ਜਿਨ੍ਹਾਂ ਨੂੰ ਵਰਚੁਅਲ COM ਪੋਰਟ ਡਿਵਾਈਸ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ।
ACM ਸਬਕਲਾਸ ਲਈ ਕਈ ਸਬਕਲਾਸ-ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ ਹਨ। ਉਹ ਤੁਹਾਨੂੰ ਡਿਵਾਈਸ ਨੂੰ ਕੰਟਰੋਲ ਅਤੇ ਕੌਂਫਿਗਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀਆਂ ਹਨ। ਸਾਰੀਆਂ ACM ਬੇਨਤੀਆਂ ਦੀ ਪੂਰੀ ਸੂਚੀ ਅਤੇ ਵੇਰਵਾ ਨਿਰਧਾਰਨ ਵਿੱਚ ਮਿਲ ਸਕਦਾ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

21/174

ਵੱਧview PSTN ਡਿਵਾਈਸਾਂ ਲਈ ਉਪ-ਸ਼੍ਰੇਣੀ, ਸੰਸ਼ੋਧਨ 1.2, 9 ਫਰਵਰੀ, 2007 =, ਭਾਗ 6.2.2।
ਇਸ ਸੂਚੀ ਤੋਂ, ਸਿਲੀਕਾਨ ਲੈਬਜ਼9 ਏਸੀਐਮ ਸਬਕਲਾਸ ਹੇਠ ਲਿਖਿਆਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ:
ਸਾਰਣੀ - ਸਿਲੀਕਾਨ ਲੈਬਜ਼ ਦੁਆਰਾ ਸਮਰਥਤ ACM ਬੇਨਤੀਆਂ

ਸਬਕਲਾਸ ਬੇਨਤੀ ਵੇਰਵਾ

ਸੈੱਟਕੌਮ ਫੀਚਰ ਗੇਟਕੌਮ ਫੀਚਰ ਕਲੀਅਰਕੌਮ ਫੀਚਰ

ਹੋਸਟ ਇਹ ਬੇਨਤੀ ਕਿਸੇ ਦਿੱਤੇ ਗਏ ਸੰਚਾਰ ਵਿਸ਼ੇਸ਼ਤਾ ਲਈ ਸੈਟਿੰਗਾਂ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਭੇਜਦਾ ਹੈ। ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਲਈ ਨਹੀਂ ਵਰਤਿਆ ਜਾਂਦਾ।
ਹੋਸਟ ਇਹ ਬੇਨਤੀ ਕਿਸੇ ਦਿੱਤੇ ਗਏ ਸੰਚਾਰ ਵਿਸ਼ੇਸ਼ਤਾ ਲਈ ਮੌਜੂਦਾ ਸੈਟਿੰਗਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਭੇਜਦਾ ਹੈ। ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਲਈ ਨਹੀਂ ਵਰਤਿਆ ਜਾਂਦਾ।
ਹੋਸਟ ਇਹ ਬੇਨਤੀ ਕਿਸੇ ਦਿੱਤੇ ਗਏ ਸੰਚਾਰ ਵਿਸ਼ੇਸ਼ਤਾ ਲਈ ਸੈਟਿੰਗਾਂ ਨੂੰ ਸਾਫ਼ ਕਰਨ ਲਈ ਭੇਜਦਾ ਹੈ। ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਲਈ ਨਹੀਂ ਵਰਤਿਆ ਜਾਂਦਾ।

ਸੈੱਟਲਾਈਨ ਕੋਡਿੰਗ

ਹੋਸਟ ਇਹ ਬੇਨਤੀ ACM ਡਿਵਾਈਸ ਸੈਟਿੰਗਾਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਲਈ ਭੇਜਦਾ ਹੈ: ਬੌਡ ਰੇਟ, ਸਟਾਪ ਬਿੱਟਾਂ ਦੀ ਗਿਣਤੀ, ਪੈਰਿਟੀ ਕਿਸਮ ਅਤੇ ਡੇਟਾ ਬਿੱਟਾਂ ਦੀ ਗਿਣਤੀ। ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਲਈ, ਇਹ ਬੇਨਤੀ ਹਰ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਓਪਨ ਵਰਚੁਅਲ COM ਪੋਰਟ ਲਈ ਸੀਰੀਅਲ ਸੈਟਿੰਗਾਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਦੇ ਹੋ ਤਾਂ ਇੱਕ ਸੀਰੀਅਲ ਟਰਮੀਨਲ ਦੁਆਰਾ ਆਪਣੇ ਆਪ ਭੇਜੀ ਜਾਂਦੀ ਹੈ।

ਗੇਟਲਾਈਨ ਕੋਡਿੰਗ

ਹੋਸਟ ਇਹ ਬੇਨਤੀ ਮੌਜੂਦਾ ACM ਸੈਟਿੰਗਾਂ (ਬੌਡ ਰੇਟ, ਸਟਾਪ ਬਿੱਟ, ਪੈਰਿਟੀ, ਡੇਟਾ ਬਿੱਟ) ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਭੇਜਦਾ ਹੈ। ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਲਈ, ਸੀਰੀਅਲ ਟਰਮੀਨਲ ਵਰਚੁਅਲ COM ਪੋਰਟ ਓਪਨਿੰਗ ਦੌਰਾਨ ਆਪਣੇ ਆਪ ਇਸ ਬੇਨਤੀ ਨੂੰ ਭੇਜਦੇ ਹਨ।

SetControlLineState ਹੋਸਟ ਇਹ ਬੇਨਤੀ ਅੱਧੇ-ਡੁਪਲੈਕਸ ਮਾਡਮਾਂ ਲਈ ਕੈਰੀਅਰ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਭੇਜਦਾ ਹੈ ਅਤੇ ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਡੇਟਾ ਟਰਮੀਨਲ ਉਪਕਰਣ (DTE) ਤਿਆਰ ਹੈ ਜਾਂ ਨਹੀਂ। ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਮਾਮਲੇ ਵਿੱਚ, DTE ਇੱਕ ਸੀਰੀਅਲ ਟਰਮੀਨਲ ਹੈ। ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਲਈ, ਕੁਝ ਸੀਰੀਅਲ ਟਰਮੀਨਲ ਤੁਹਾਨੂੰ ਕੰਟਰੋਲ ਸੈੱਟ ਨਾਲ ਇਹ ਬੇਨਤੀ ਭੇਜਣ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ।

ਸੈੱਟਬ੍ਰੇਕ

ਹੋਸਟ ਇਹ ਬੇਨਤੀ RS-232 ਸਟਾਈਲ ਬ੍ਰੇਕ ਤਿਆਰ ਕਰਨ ਲਈ ਭੇਜਦਾ ਹੈ। ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਲਈ, ਕੁਝ ਸੀਰੀਅਲ ਟਰਮੀਨਲ ਤੁਹਾਨੂੰ ਇਹ ਬੇਨਤੀ ਭੇਜਣ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ।

ਸਿਲੀਕਾਨ ਲੈਬਜ਼9 ਏਸੀਐਮ ਸਬਕਲਾਸ ਹੋਸਟ ਨੂੰ ਮੌਜੂਦਾ ਸੀਰੀਅਲ ਲਾਈਨ ਸਥਿਤੀ ਬਾਰੇ ਸੂਚਿਤ ਕਰਨ ਲਈ ਇੰਟਰੱਪਟ IN ਐਂਡਪੁਆਇੰਟ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਸੀਰੀਅਲ
ਲਾਈਨ ਸਟੇਟ ਇੱਕ ਬਿੱਟਮੈਪ ਹੈ ਜੋ ਹੋਸਟ ਨੂੰ ਇਸ ਬਾਰੇ ਸੂਚਿਤ ਕਰਦਾ ਹੈ:

ਓਵਰਰਨ ਪੈਰਿਟੀ ਗਲਤੀ ਦੇ ਕਾਰਨ ਡੇਟਾ ਰੱਦ ਕੀਤਾ ਗਿਆ ਫਰੇਮਿੰਗ ਗਲਤੀ ਰਿੰਗ ਸਿਗਨਲ ਖੋਜ ਦੀ ਸਥਿਤੀ ਬ੍ਰੇਕ ਖੋਜ ਵਿਧੀ ਦੀ ਸਥਿਤੀ ਟ੍ਰਾਂਸਮਿਸ਼ਨ ਕੈਰੀਅਰ ਦੀ ਸਥਿਤੀ ਰਿਸੀਵਰ ਕੈਰੀਅਰ ਖੋਜ ਦੀ ਸਥਿਤੀ

ਸਿਲੀਕਾਨ ਲੈਬਜ਼9 ਏਸੀਐਮ ਸਬਕਲਾਸ ਲਾਗੂਕਰਨ ਹੇਠ ਲਿਖੇ ਨਿਰਧਾਰਨਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ:
ਯੂਨੀਵਰਸਲ ਸੀਰੀਅਲ ਬੱਸ, ਸੰਚਾਰ, PSTN ਡਿਵਾਈਸਾਂ ਲਈ ਸਬਕਲਾਸ, ਸੰਸ਼ੋਧਨ 1.2, 9 ਫਰਵਰੀ, 2007।
USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਕੌਂਫਿਗਰੇਸ਼ਨ

ਇਹ ਭਾਗ CDC ACM ਕਲਾਸ (ਸੰਚਾਰ ਡਿਵਾਈਸ ਕਲਾਸ, ਐਬਸਟਰੈਕਟ ਕੰਟਰੋਲ ਮਾਡਲ) ਨੂੰ ਕਿਵੇਂ ਸੰਰਚਿਤ ਕਰਨਾ ਹੈ ਬਾਰੇ ਚਰਚਾ ਕਰਦਾ ਹੈ। ਸੰਰਚਨਾ ਪੈਰਾਮੀਟਰਾਂ ਦੇ ਦੋ ਸਮੂਹ ਹਨ:
USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਐਪਲੀਕੇਸ਼ਨ ਵਿਸ਼ੇਸ਼ ਸੰਰਚਨਾਵਾਂ USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਇੰਸਟੈਂਸ ਸੰਰਚਨਾਵਾਂ
USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਐਪਲੀਕੇਸ਼ਨ ਵਿਸ਼ੇਸ਼ ਸੰਰਚਨਾਵਾਂ

ਸੀਡੀਸੀ ਬੇਸ ਕਲਾਸ ਏਸੀਐਮ ਸਬਕਲਾਸ
ਸੀਡੀਸੀ ਬੇਸ ਕਲਾਸ

ਪਹਿਲਾਂ, ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ CDC ਕਲਾਸ ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਆਪਣੀ ਐਪਲੀਕੇਸ਼ਨ ਜ਼ਰੂਰਤਾਂ ਦੇ ਅਨੁਸਾਰ CDC ਕੰਪਾਈਲ-ਟਾਈਮ ਕੌਂਫਿਗਰੇਸ਼ਨ #define-s ਨੂੰ ਐਡਜਸਟ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੋਏਗੀ। ਉਹਨਾਂ ਨੂੰ sl_usbd_core_config.h ਹੈਡਰ ਦੇ ਅੰਦਰ ਦੁਬਾਰਾ ਇਕੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। file CDC ਸੈਕਸ਼ਨ ਦੇ ਅਧੀਨ। ਉਹਨਾਂ ਦਾ ਉਦੇਸ਼ USB ਡਿਵਾਈਸ ਮੋਡੀਊਲ ਨੂੰ ਇਹ ਦੱਸਣਾ ਹੈ ਕਿ ਕਿੰਨੀਆਂ USB CDC ਵਸਤੂਆਂ ਨਿਰਧਾਰਤ ਕਰਨੀਆਂ ਹਨ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

22/174

ਵੱਧview

ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਇਸ ਸੰਰਚਨਾ ਢਾਂਚੇ ਵਿੱਚ ਉਪਲਬਧ ਹਰੇਕ ਸੰਰਚਨਾ ਖੇਤਰ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ।
ਟੇਬਲ - USB ਡਿਵਾਈਸ CDC ਕੌਂਫਿਗਰੇਸ਼ਨ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ

ਸੰਰਚਨਾ ਦਾ ਨਾਮ
S_INSTANCE_QUANT ITY ਦੇ ਰੂਪ ਵਿੱਚ SL_USBD_CDC_CL
SL_USBD_CDC_CONF IGURATION_QUANTI
TY
SL_USBD_CDC_ਡਾਟਾ _ਇੰਟਰਫੇਸ_ਕੁਆਂਟੀ
TY

ਵਰਣਨ
ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਕੇ ਤੁਹਾਡੇ ਦੁਆਰਾ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਕਲਾਸ ਉਦਾਹਰਣਾਂ ਦੀ ਗਿਣਤੀ
sl_usbd_cdc_acm_create_instance()।
ਸੰਰਚਨਾਵਾਂ ਦੀ ਗਿਣਤੀ। ACM ਕਲਾਸ ਉਦਾਹਰਨਾਂ ਨੂੰ sl_usbd_cdc_acm_add_to_configuration() ਵਿੱਚ ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ aaaa ਸੰਰਚਨਾਵਾਂ ਵਿੱਚ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਸਾਰੇ CDC ਫੰਕਸ਼ਨਾਂ ਲਈ ਡੇਟਾ ਇੰਟਰਫੇਸਾਂ (DCI) ਦੀ ਕੁੱਲ ਸੰਖਿਆ। ਹਰੇਕ CDC ACM ਫੰਕਸ਼ਨ aaaaaaaaa ਫੰਕਸ਼ਨ sl_usbd_cdc_acm_create_instance() ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ ਜੋ dd dt ਇੰਟਰਫੇਸ ce ਕਰੇਗਾ।

ਪੂਰਵ-ਨਿਰਧਾਰਤ ਮੁੱਲ
2
1
2

ACM ਸਬਕਲਾਸ
ACM ਸਬਕਲਾਸ ਵਿੱਚ ਇੱਕ ਕੰਪਾਈਲ-ਟਾਈਮ ਕੌਂਫਿਗਰੇਸ਼ਨ ਹੈ ਜੋ ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵਿੱਚ ਦਿਖਾਈ ਗਈ ਹੈ।
ਟੇਬਲ - USB ਡਿਵਾਈਸ CDC ACM ਕੌਂਫਿਗਰੇਸ਼ਨ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ

ਸੰਰਚਨਾ ਦਾ ਨਾਮ
SL_USBD_CDC_ACM_SUBCL ASS_I NSTANCE_QUANTITY

ਵਰਣਨ
ਨੂੰ ਕਾਲ ਰਾਹੀਂ ਤੁਹਾਡੇ ਦੁਆਰਾ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਸਬਕਲਾਸ ਉਦਾਹਰਣਾਂ ਦੀ ਸੰਖਿਆ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਦਾ ਹੈ
ਫੰਕਸ਼ਨ sl_usbd_cdc_acm_create_instance() .

ਪੂਰਵ-ਨਿਰਧਾਰਤ ਮੁੱਲ
2

USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਇੰਸਟੈਂਸ ਕੌਂਫਿਗਰੇਸ਼ਨ

ਇਹ ਭਾਗ CDC ACM ਸੀਰੀਅਲ ਕਲਾਸ ਉਦਾਹਰਣਾਂ ਨਾਲ ਸਬੰਧਤ ਸੰਰਚਨਾਵਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣਾ ਲਾਈਨ ਸਟੇਟ ਅੰਤਰਾਲ ਕਾਲ mgmt ਸਮਰੱਥਾਵਾਂ p_acm_callbacks
ਕਲਾਸ ਇੰਸਟੈਂਸ ਰਚਨਾ

ਇੱਕ CDC ACM ਸੀਰੀਅਲ ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣ ਲਈ, ਫੰਕਸ਼ਨ T a sl_usbd_cdc_acm_create_instance() ਨੂੰ ਕਾਲ ਕਰੋ। ਉਸਦਾ ਫੰਕਸ਼ਨ ਤਿੰਨ ਕੌਂਫਿਗਰੇਸ਼ਨ ਆਰਗੂਮੈਂਟਾਂ ਰੱਖਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਇੱਥੇ ਦੱਸਿਆ ਗਿਆ ਹੈ।

ਲਾਈਨ_ਸਟੇਟ_ਇੰਟਰਵਲ
ਇਹ ਉਹ ਅੰਤਰਾਲ ਹੈ (ਮਿਲੀਸਕਿੰਟਾਂ ਵਿੱਚ) ਜਿਸ ਵਿੱਚ ਤੁਹਾਡਾ CDC ACM ਸੀਰੀਅਲ ਕਲਾਸ ਇੰਸਟੈਂਸ Taa ਹੋਸਟ ਨੂੰ ਲਾਈਨ ਸਟੇਟ ਸੂਚਨਾਵਾਂ ਦੀ ਰਿਪੋਰਟ ਕਰੇਗਾ। ਉਸਦਾ vlue ਦੋ ਦੀ ਪਾਵਰ (1, 2, 4, 8, 16, ਆਦਿ) ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।

ਕਾਲ_ਐਮਜੀਐਮਟੀ_ਸਮਰੱਥਾ
ਕਾਲ ਪ੍ਰਬੰਧਨ ਸਮਰੱਥਾਵਾਂ ਬਿੱਟਮੈਪ। ਬਿੱਟਮੈਪ ਦੇ ਸੰਭਵ ਮੁੱਲ ਇਸ ਪ੍ਰਕਾਰ ਹਨ:

ਮੁੱਲ (ਬਿੱਟ)
SL_USBD_ACM_SERIAL_CALL_MGMT_DEV
SL_USBD_ACM_SERIAL_CALL_MGMT_DATA_CCI _DCI

ਵਰਣਨ
ਡਿਵਾਈਸ ਕਾਲ ਪ੍ਰਬੰਧਨ ਨੂੰ ਖੁਦ ਸੰਭਾਲਦੀ ਹੈ। ਡਿਵਾਈਸ ਡੇਟਾ ਕਲਾਸ ਇੰਟਰਫੇਸ ਰਾਹੀਂ ਕਾਲ ਪ੍ਰਬੰਧਨ ਜਾਣਕਾਰੀ ਭੇਜ/ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੀ ਹੈ।

ਪੀ_ਏਸੀਐਮ_ਕਾਲਬੈਕ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

23/174

ਵੱਧview

aa M aa p_acm_callbacks sl_usbd_cdc_acm_callbacks_t ਕਿਸਮ ਦੀ ਬਣਤਰ ਵੱਲ ਸੰਕੇਤਕ ਹੈ। ਇਸਦਾ ਉਦੇਸ਼ CDC AC Cl ss ਕਾਲਬੈਕ ਫੰਕਸ਼ਨਾਂ ਦੇ ਸੈੱਟ ਨੂੰ ਕਾਲ ਕਰਨ ਲਈ ਦੇਣਾ ਹੈ ਜਦੋਂ ਇੱਕ CDC ACM ਘਟਨਾ ਵਾਪਰਦੀ ਹੈ। ਸਾਰੇ ਕਾਲਬੈਕ ਲਾਜ਼ਮੀ ਨਹੀਂ ਹੁੰਦੇ ਹਨ ਅਤੇ ਇੱਕ ਨਲ ਪੁਆਇੰਟਰ (NULL) ਕਾਲਬੈਕ ਬਣਤਰ ਵੇਰੀਏਬਲ ਵਿੱਚ ਪਾਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਜਦੋਂ ਕਾਲਬੈਕ ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ ਹੈ। ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਇਸ ਸੰਰਚਨਾ ਢਾਂਚੇ ਵਿੱਚ ਉਪਲਬਧ ਹਰੇਕ ਸੰਰਚਨਾ ਖੇਤਰ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ।
ਸਾਰਣੀ – sl_usbd_cdc_acm _callbacks_t ਸੰਰਚਨਾ ਢਾਂਚਾ

ਖੇਤਰ

ਵਰਣਨ

.ਯੋਗ ਕਰੋ

USB ਕਲਾਸ ਇੰਸਟੈਂਸ ਸਮਰੱਥ ਹੋਣ 'ਤੇ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ

ਸਫਲਤਾਪੂਰਵਕ

.ਅਯੋਗ ਕਰੋ

USB ਕਲਾਸ ਇੰਸਟੈਂਸ ਅਯੋਗ ਹੋਣ 'ਤੇ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

.line_control_changed ਲਾਈਨ ਕੰਟਰੋਲ ਤਬਦੀਲੀ ਪ੍ਰਾਪਤ ਹੋਣ 'ਤੇ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

line_coding_changed ਜਦੋਂ ਲਾਈਨ ਕੋਡਿੰਗ ਵਿੱਚ ਤਬਦੀਲੀ ਪ੍ਰਾਪਤ ਹੁੰਦੀ ਹੈ ਤਾਂ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

ਫੰਕਸ਼ਨ ਦਸਤਖਤ
ਜ਼ਰੂਰ ਐਪ_ਯੂਐਸਬੀਡੀ_ਸੀਡੀਸੀ_ਏਸੀਐਮ_ਏਨੇਬਲ(ਯੂਆਈਐਨਟੀ8_ਟੀ ਸਬਕਲਾਸ_ਐਨਬੀਆਰ);
ਜ਼ਰੂਰ ਐਪ_ਯੂਐਸਬੀਡੀ_ਸੀਡੀਸੀ_ਏਸੀਐਮ_ਡਿਸੇਬਲ(ਯੂਆਈਐਨਟੀ8_ਟੀ ਸਬਕਲਾਸ_ਐਨਬੀਆਰ);
void app_usbd_cdc_acm_line_control_changed(uint8_t subclass_nbr, uint8_t event, uint8_t event_chngd); bool app_usbd_cdc_acm_line_coding_changed(uint8_t subclass_nbr, subclass_nbr, sl_usbd_cdc_acm_line_coding_t
*ਪੀ_ਲਾਈਨ_ਕੋਡਿੰਗ

ਕਾਲਬੈਕ ਫੰਕਸ਼ਨਾਂ ਲਈ ਇਵੈਂਟ ਸੂਚਨਾ ਕਾਲਬੈਕ ਰਜਿਸਟਰ ਕਰਨਾ ਭਾਗ ਵੇਖੋ example.
USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ

ਇਹ ਭਾਗ ਦੱਸਦਾ ਹੈ ਕਿ CDC ਐਬਸਟਰੈਕਟ ਕੰਟਰੋਲ ਮਾਡਲ ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ। USB ਡਿਵਾਈਸ ਸ਼ੁਰੂ ਕਰਨਾ CDC ACM ਕਲਾਸ ਇੱਕ USB ਡਿਵਾਈਸ ਜੋੜਨਾ CDC ACM ਕਲਾਸ ਇੰਸਟੈਂਸ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਵਿੱਚ CDC ACM ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਚਾਰ ਕਰਨਾ
USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਸ਼ੁਰੂ ਕਰਨਾ

ਆਪਣੀ ਡਿਵਾਈਸ ਵਿੱਚ CDC ACM ਕਲਾਸ ਕਾਰਜਕੁਸ਼ਲਤਾ ਜੋੜਨ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ sl_usbd_cdc_init() ਅਤੇ sl_usbd_cdc_acm_init() ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਜੋੜ ਕੇ CDC ਬੇਸ ਕਲਾਸ ਅਤੇ ACM ਸਬਕਲਾਸ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨਾ ਪਵੇਗਾ। ਹੇਠਾਂ ਦਿੱਤੀ ਉਦਾਹਰਣ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਡਿਫਾਲਟ ਆਰਗੂਮੈਂਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ sl_usbd_cdc_init() ਅਤੇ sl_usbd_cdc_acm_init() ਨੂੰ ਕਿਵੇਂ cll ਕਰਨਾ ਹੈ।

Example – CDC ACM ਕਲਾਸ ਦੀ ਸ਼ੁਰੂਆਤ

sl_status_t ਸਥਿਤੀ;
status = sl_usbd_cdc_init(); ਜੇਕਰ (status ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */
}
ਸਥਿਤੀ = sl_usbd_cdc_acm_init(); ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */
}
ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਵਿੱਚ ਇੱਕ USB ਡਿਵਾਈਸ CDC ACM ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ
ਆਪਣੀ ਡਿਵਾਈਸ ਵਿੱਚ CDC ACM ਕਲਾਸ ਕਾਰਜਕੁਸ਼ਲਤਾ ਜੋੜਨ ਲਈ, ਤੁਹਾਨੂੰ ਇੱਕ ਉਦਾਹਰਣ ਬਣਾਉਣੀ ਪਵੇਗੀ, ਫਿਰ ਇਸਨੂੰ ਆਪਣੀ ਡਿਵਾਈਸ ਦੇ ਸੰਰਚਨਾ(ਆਂ) ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨਾ ਪਵੇਗਾ।
ਇੱਕ CDC ACM ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣਾ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

24/174

ਵੱਧview
ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਦੇ ਸੰਰਚਨਾ(ਆਂ) ਵਿੱਚ CDC ACM ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ ਇਵੈਂਟ ਸੂਚਨਾ ਕਾਲਬੈਕ ਰਜਿਸਟਰ ਕਰਨਾ
ਇੱਕ CDC ACM ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣਾ
aa M aaa ਫੰਕਸ਼ਨ sl_usbd_cdc_acm_create_instance() ਨੂੰ ਕਲਿੱਪ ਕਰਕੇ CDC AC clss ਇੰਸਟੈਂਟ ਬਣਾਓ। T aaa M aaa ਹੇਠਾਂ ਦਿੱਤੀ ਉਦਾਹਰਣ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ sl_usbd_cdc_acm_create_instance() ਨਾਲ CDC AC clss ਇੰਸਟੈਂਟ ਕਿਵੇਂ ਬਣਾਉਣਾ ਹੈ।
Example – sl_usbd_cdc_acm_create_instance() ਰਾਹੀਂ ਇੱਕ CDC ACM ਫੰਕਸ਼ਨ ਬਣਾਉਣਾ

uint8_t ਸਬਕਲਾਸ_nbr; sl_status_t ਸਥਿਤੀ;
ਸਥਿਤੀ = sl_usbd_cdc_acm_create_instance(64u, SL_USBD_ACM_SERIAL_CALL_MGMT_DATA_CCI_DCI | SL_USBD_ACM_SERIAL_CALL_MGMT_DEV, NULL, &subclass_nbr);
ਜੇਕਰ (status ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */
}
ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਦੇ ਸੰਰਚਨਾ(ਆਂ) ਵਿੱਚ CDC ACM ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ
ਇੱਕ CDC ACM ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਇਸਨੂੰ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਕੇ ਇੱਕ ਸੰਰਚਨਾ ਵਿੱਚ ਜੋੜ ਸਕਦੇ ਹੋ
sl_usbd_cdc_acm_add_to_configuration() .
ਹੇਠਾਂ ਦਿੱਤੀ ਉਦਾਹਰਣ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ sl_usbd_cdc_acm_add_to_configuration() ਨੂੰ ਕਿਵੇਂ ਕਲਮ ਕਰਨਾ ਹੈ।
Example – USBD ACM sl_usbd_cdc_acm_add_to_configuration() ਨੂੰ ਕਾਲ ਕਰੋ

sl_status_t ਸਥਿਤੀ;

ਸਥਿਤੀ = sl_usbd_cdc_acm_add_to_configuration(subclass_nbr,

(1)

ਸੰਰਚਨਾ_ਐਨਬੀਆਰ_ਐਫਐਸ);

(2)

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਸੰਭਾਲਣ ਨੂੰ ਇੱਥੇ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। */

}

aaa (1) sl_usbd_cdc_acm_create_instance() ਦੁਆਰਾ ਵਾਪਸ ਕੀਤੀ ਗਈ ਸੰਰਚਨਾ ਵਿੱਚ dd ਕਰਨ ਲਈ Cl ss ਨੰਬਰ। (2) ਸੰਰਚਨਾ ਨੰਬਰ (ਇੱਥੇ ਇਸਨੂੰ ਇੱਕ ਫੁੱਲ-ਸਪੀਡ ਸੰਰਚਨਾ ਵਿੱਚ ਜੋੜ ਰਿਹਾ ਹੈ)।
ਇਵੈਂਟ ਸੂਚਨਾ ਕਾਲਬੈਕ ਰਜਿਸਟਰ ਕਰਨਾ
CDC ACM ਸੀਰੀਅਲ ਕਲਾਸ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਲਾਈਨ ਕੰਟਰੋਲ ਜਾਂ ਕੋਡਿੰਗ ਵਿੱਚ ਕਿਸੇ ਵੀ ਬਦਲਾਅ ਬਾਰੇ ਸੂਚਨਾ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨਾਂ ਰਾਹੀਂ ਸੂਚਿਤ ਕਰ ਸਕਦਾ ਹੈ। ACM ਇੰਸਟੈਂਸ ਬਣਾਉਣ ਦੌਰਾਨ ਇੱਕ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨ ਬਣਤਰ ਨੂੰ ਆਰਗੂਮੈਂਟ ਵਜੋਂ ਪਾਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਧਿਆਨ ਦਿਓ ਕਿ ਉਹ ਕਾਲਬੈਕ ਵਿਕਲਪਿਕ ਹਨ। ਉਦਾਹਰਨample – CDC ACM ਕਾਲਬੈਕ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਕਾਲਬੈਕ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ। ਉਦਾਹਰਣample – CDC ACM ਕਾਲਬੈਕ ਲਾਗੂਕਰਨ ਇੱਕ ਸਾਬਕਾ ਦਰਸਾਉਂਦਾ ਹੈampਕਾਲਬੈਕ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਦਾ ਸਮਾਂ।
Example – CDC ACM ਕਾਲਬੈਕ ਰਜਿਸਟ੍ਰੇਸ਼ਨ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

25/174

ਵੱਧview

uint8_t ਸਬਕਲਾਸ_nbr; sl_status_t ਸਥਿਤੀ;
sl_usbd_cdc_acm_callbacks_t sli_usbd_cdc_acm_callbacks = { ਐਪ_usbd_cdc_acm_ਕਨੈਕਟ, ਐਪ_usbd_cdc_acm_ਡਿਸਕਨੈਕਟ, ਐਪ_usbd_cdc_acm_ਲਾਈਨ_ਕੰਟਰੋਲ_ਬਦਲਿਆ, ਐਪ_usbd_cdc_acm_ਲਾਈਨ_ਕੋਡਿੰਗ_ਬਦਲਿਆ, };
ਸਥਿਤੀ = sl_usbd_cdc_acm_create_instance(64u, SL_USBD_ACM_SERIAL_CALL_MGMT_DATA_CCI_DCI | SL_USBD_ACM_SERIAL_CALL_MGMT_DEV, &sli_usbd_cdc_acm_callbacks, &subclass_nbr);
ਜੇਕਰ (status ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */ }
Example – CDC ACM ਕਾਲਬੈਕ ਲਾਗੂਕਰਨ

ਬੂਲ ਐਪ_ਯੂਐਸਬੀਡੀ_ਸੀਡੀਸੀ_ਏਸੀਐਮ_ਲਾਈਨ_ਕੋਡਿੰਗ_ਬਦਲਿਆ ਗਿਆ (uint8_t

ਸਬਕਲਾਸ_ਐਨਬੀਆਰ,

sl_usbd_cdc_acm_line_coding_t *p_line_coding)

{

uint32_t ਬੌਡਰੇਟ_ਨਵਾਂ;

uint8_t ਪੈਰਿਟੀ_ਨਵਾਂ;

uint8_t ਸਟਾਪ_ਬਿਟਸ_ਨਵਾਂ;

uint8_t ਡਾਟਾ_ਬਿੱਟ_ਨਵਾਂ;

/* ਕਰਨ ਲਈ ਨਵੀਂ ਲਾਈਨ ਕੋਡਿੰਗ ਲਾਗੂ ਕਰੋ।*/ baudrate_new = p_line_coding->BaudRate; parity_new = p_line_coding->Parity; stop_bits_new = p_line_coding->StopBits; data_bits_new = p_line_coding->DataBits;

ਵਾਪਸੀ (ਸੱਚ);

(1)

}

void app_usbd_cdc_acm_line_control_changed (uint8_t ਸਬਕਲਾਸ_nbr, uint8_t ਇਵੈਂਟ, uint8_t ਇਵੈਂਟ_ਚੈਂਜਡ)
{ ਬੂਲ rts_state; ਬੂਲ rts_state_ਬਦਲਿਆ; ਬੂਲ dtr_state; ਬੂਲ dtr_state_ਬਦਲਿਆ; ਬੂਲ brk_state; ਬੂਲ brk_state_ਬਦਲਿਆ;

/* ਕਰਨ ਲਈ ਨਵਾਂ ਲਾਈਨ ਕੰਟਰੋਲ ਲਾਗੂ ਕਰੋ। */ rts_state = ((event & SL_USBD_CDC_ACM_CTRL_RTS) ! 0) ? true : false; rts_state_changed = ((event_changed & SL_USBD_CDC_ACM_CTRL_RTS) ! 0) ? true : false; dtr_state = ((event & SL_USBD_CDC_ACM_CTRL_DTR) ! 0) ? true : false; dtr_state_changed = ((event_changed & SL_USBD_CDC_ACM_CTRL_DTR) ! 0) ? true : false; brk_state = ((event & SL_USBD_CDC_ACM_CTRL_BREAK) ! 0) ? true : false; brk_state_changed = ((event_changed & SL_USBD_CDC_ACM_CTRL_BREAK) ! 0) ? ਸੱਚ : ਗਲਤ;
}

(1) ਜੇਕਰ ਲਾਈਨ ਕੋਡਿੰਗ ਲਾਗੂ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਿਹਾ ਤਾਂ ਇਸ ਫੰਕਸ਼ਨ ਨੂੰ ਗਲਤ ਵਾਪਸ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਨਹੀਂ ਤਾਂ, ਸਹੀ ਵਾਪਸ ਕਰੋ।
ਸੀਡੀਸੀ ਏਸੀਐਮ ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਚਾਰ ਕਰਨਾ
ਸੀਰੀਅਲ ਸਥਿਤੀ
ਲਾਈਨ ਕੋਡਿੰਗ ਲਾਈਨ ਕੰਟਰੋਲ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

26/174

ਵੱਧview

ਲਾਈਨ ਸਟੇਟ ਸਬਕਲਾਸ ਇੰਸਟੈਂਸ ਕਮਿਊਨੀਕੇਸ਼ਨ
ਸੀਰੀਅਲ ਸਥਿਤੀ
ਲਾਈਨ ਕੋਡਿੰਗ
USB ਹੋਸਟ CDC ACM ਡਿਵਾਈਸ ਦੀ ਲਾਈਨ ਕੋਡਿੰਗ (ਬੌਡ ਰੇਟ, ਪੈਰਿਟੀ, ਆਦਿ) ਨੂੰ ਕੰਟਰੋਲ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਜ਼ਰੂਰੀ ਹੋਵੇ, ਐਪਲੀਕੇਸ਼ਨ ਲਾਈਨ ਕੋਡਿੰਗ ਸੈੱਟ ਕਰਨ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਹੁੰਦੀ ਹੈ। ਮੌਜੂਦਾ ਲਾਈਨ ਕੋਡਿੰਗ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ ਸੈੱਟ ਕਰਨ ਲਈ ਦੋ ਫੰਕਸ਼ਨ ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਹਨ, ਜਿਵੇਂ ਕਿ ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵਿੱਚ ਦੱਸਿਆ ਗਿਆ ਹੈ।
ਟੇਬਲ - ਸੀਡੀਸੀ ਏਸੀਐਮ ਲਾਈਨ ਕੋਡਿੰਗ ਫੰਕਸ਼ਨ

ਫੰਕਸ਼ਨ
sl_usbd_cdc_acm_g ਅਤੇ t_line _co d ing ()
sl_usbd_cdc_acm_s ਅਤੇ t_line _cod ing ()

ਵਰਣਨ
ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਮੌਜੂਦਾ ਲਾਈਨ ਕੋਡਿੰਗ ਸੈਟਿੰਗਾਂ ਨੂੰ SetLineCoding ਬੇਨਤੀਆਂ ਨਾਲ ਹੋਸਟ ਤੋਂ ਜਾਂ ਫੰਕਸ਼ਨ sl_usbd_cdc_acm_set_line_coding() ਨਾਲ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੀ ਹੈ।
ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਲਾਈਨ ਕੋਡਿੰਗ ਸੈੱਟ ਕਰ ਸਕਦੀ ਹੈ। ਹੋਸਟ GetLineCoding ਬੇਨਤੀ ਨਾਲ ਸੈਟਿੰਗਾਂ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦਾ ਹੈ।

ਲਾਈਨ ਕੰਟਰੋਲ
USB ਹੋਸਟ CDC ACM ਡਿਵਾਈਸ ਦੇ ਲਾਈਨ ਕੰਟਰੋਲ (RTS ਅਤੇ DTR ਪਿੰਨ, ਬ੍ਰੇਕ ਸਿਗਨਲ, ਅਤੇ ਹੋਰ) ਨੂੰ ਕੰਟਰੋਲ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਜ਼ਰੂਰੀ ਹੋਵੇ, ਤਾਂ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਲਾਈਨ ਕੰਟਰੋਲ ਲਾਗੂ ਕਰਨ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਹੁੰਦੀ ਹੈ। ਮੌਜੂਦਾ ਲਾਈਨ ਕੰਟਰੋਲਾਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ ਸੈੱਟ ਕਰਨ ਲਈ ਇੱਕ ਫੰਕਸ਼ਨ ਪ੍ਰਦਾਨ ਕੀਤਾ ਗਿਆ ਹੈ, ਜਿਵੇਂ ਕਿ ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵਿੱਚ ਦੱਸਿਆ ਗਿਆ ਹੈ।
ਟੇਬਲ - ਸੀਡੀਸੀ ਏਸੀਐਮ ਲਾਈਨ ਕੰਟਰੋਲ ਫੰਕਸ਼ਨ

ਫੰਕਸ਼ਨ
sl_usb d _cd c_acm_g e t_line _co ntr o l_state ()

ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ SetControlLineState ਬੇਨਤੀ ਨਾਲ ਹੋਸਟ ਦੁਆਰਾ ਸੈੱਟ ਕੀਤੀ ਮੌਜੂਦਾ ਕੰਟਰੋਲ ਲਾਈਨ ਸਥਿਤੀ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੀ ਹੈ।

ਲਾਈਨ ਸਟੇਟ
USB ਹੋਸਟ ਨਿਯਮਤ ਅੰਤਰਾਲ 'ਤੇ ਲਾਈਨ ਸਥਿਤੀ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਹਰ ਵਾਰ ਬਦਲਣ 'ਤੇ ਲਾਈਨ ਸਥਿਤੀ ਨੂੰ ਅਪਡੇਟ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਜਦੋਂ ਜ਼ਰੂਰੀ ਹੋਵੇ, ਤਾਂ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਲਾਈਨ ਸਥਿਤੀ ਸੈੱਟ ਕਰਨ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਹੈ। ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵਿੱਚ ਦੱਸੇ ਅਨੁਸਾਰ, ਮੌਜੂਦਾ ਲਾਈਨ ਨਿਯੰਤਰਣਾਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ ਸੈੱਟ ਕਰਨ ਲਈ ਦੋ ਫੰਕਸ਼ਨ ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਹਨ।
ਟੇਬਲ - ਸੀਡੀਸੀ ਏਸੀਐਮ ਲਾਈਨ ਸਟੇਟ ਫੰਕਸ਼ਨ

ਫੰਕਸ਼ਨ
sl_usb d _cd c_acm_se t _ਲਾਈਨ _ਸਟੇਟ _e vent()
sl_usbd_cdc_acm_cle ar_line _state _e vent()

ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਕਿਸੇ ਵੀ ਲਾਈਨ ਸਟੇਟ ਇਵੈਂਟ(ਆਂ) ਨੂੰ ਸੈੱਟ ਕਰ ਸਕਦੀ ਹੈ। ਲਾਈਨ ਸਟੇਟ ਸੈੱਟ ਕਰਦੇ ਸਮੇਂ, ਸੀਰੀਅਲ ਲਾਈਨ ਸਟੇਟ ਵਿੱਚ ਬਦਲਾਅ ਬਾਰੇ ਸੂਚਿਤ ਕਰਨ ਲਈ ਹੋਸਟ ਨੂੰ ਇੱਕ ਇੰਟਰੱਪਟ IN ਟ੍ਰਾਂਸਫਰ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ।
ਐਪਲੀਕੇਸ਼ਨ ਲਾਈਨ ਸਟੇਟ ਦੇ ਦੋ ਇਵੈਂਟਾਂ ਨੂੰ ਕਲੀਅਰ ਕਰ ਸਕਦੀ ਹੈ: ਟ੍ਰਾਂਸਮਿਸ਼ਨ ਕੈਰੀਅਰ ਅਤੇ ਰਿਸੀਵਰ ਕੈਰੀਅਰ ਡਿਟੈਕਸ਼ਨ। ਬਾਕੀ ਸਾਰੀਆਂ ਇਵੈਂਟਾਂ ACM ਸੀਰੀਅਲ ਇਮੂਲੇਸ਼ਨ ਸਬਕਲਾਸ ਦੁਆਰਾ ਸਵੈ-ਕਲੀਅਰ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।

ਸਬਕਲਾਸ ਇੰਸਟੈਂਸ ਕਮਿਊਨੀਕੇਸ਼ਨ

ਸਿਲੀਕਾਨ ਲੈਬਜ਼ ਦਾ ACM ਸਬਕਲਾਸ ਹੋਸਟ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਲਈ ਹੇਠ ਲਿਖੇ ਫੰਕਸ਼ਨ ਪੇਸ਼ ਕਰਦਾ ਹੈ। ਫੰਕਸ਼ਨ9 ਪੈਰਾਮੀਟਰਾਂ ਬਾਰੇ ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ, CDC ACM ਸਬਕਲਾਸ ਫੰਕਸ਼ਨ ਸੰਦਰਭ ਵੇਖੋ।

ਫੰਕਸ਼ਨ ਦਾ ਨਾਮ
sl_usb d _cd c_acm_ ਦੁਬਾਰਾ ਵਿਗਿਆਪਨ () sl_usb d _cd c_acm_ਲਿਖੋ ()

ਓਪਰੇਸ਼ਨ
ਇੱਕ ਬਲਕ OUT ਐਂਡਪੁਆਇੰਟ ਰਾਹੀਂ ਹੋਸਟ ਤੋਂ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਇਹ ਫੰਕਸ਼ਨ ਬਲਾਕ ਕਰ ਰਿਹਾ ਹੈ। ਇੱਕ ਬਲਕ IN ਐਂਡਪੁਆਇੰਟ ਰਾਹੀਂ ਹੋਸਟ ਨੂੰ ਡੇਟਾ ਭੇਜਦਾ ਹੈ। ਇਹ ਫੰਕਸ਼ਨ ਬਲਾਕ ਕਰ ਰਿਹਾ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

27/174

ਵੱਧview

ਸਾਰਣੀ - CDC ACM ਸੰਚਾਰ API ਸੰਖੇਪ aaaaa sl_usbd_cdc_acm_read() nd sl_usbd_cdc_acm_write() ਸਮਕਾਲੀ ਸੰਚਾਰ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ, ਜਿਸਦਾ ਅਰਥ ਹੈ ਕਿ trnsfer ਬਲੌਕ ਕਰ ਰਿਹਾ ਹੈ। ਦੂਜੇ ਸ਼ਬਦਾਂ ਵਿੱਚ, ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਨ 'ਤੇ, ਐਪਲੀਕੇਸ਼ਨ ਉਦੋਂ ਤੱਕ ਬਲੌਕ ਹੋ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਤੱਕ ਟ੍ਰਾਂਸਫਰ ਇੱਕ ਗਲਤੀ ਦੇ ਨਾਲ ਜਾਂ ਬਿਨਾਂ ਪੂਰਾ ਨਹੀਂ ਹੋ ਜਾਂਦਾ। ਹਮੇਸ਼ਾ ਲਈ ਉਡੀਕ ਕਰਨ ਤੋਂ ਬਚਣ ਲਈ ਇੱਕ ਸਮਾਂ ਸਮਾਪਤੀ ਨਿਰਧਾਰਤ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਸਾਬਕਾampਹੇਠਾਂ ਇੱਕ ਪੜ੍ਹਨ ਅਤੇ ਲਿਖਣ ਦੀ ਉਦਾਹਰਣ ਦਿਖਾਉਂਦਾ ਹੈample ਜੋ ਬਲਕ OUT ਐਂਡਪੁਆਇੰਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੋਸਟ ਤੋਂ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਅਤੇ ਬਲਕ IN ਐਂਡਪੁਆਇੰਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੋਸਟ ਨੂੰ ਡੇਟਾ ਭੇਜਦਾ ਹੈ।
ਸੂਚੀ - ਸੀਰੀਅਲ ਪੜ੍ਹੋ ਅਤੇ ਲਿਖੋ ਐਕਸample

__ਅਲਾਈਨਡ(4) uint8_t rx_buf[2];

__ਅਲਾਈਨਡ(4) uint8_t tx_buf[2];

uint32_t

ਐਕਸਫਰ_ਲੇਨ;

sl_status_t ਵੱਲੋਂ ਹੋਰ

ਸਥਿਤੀ;

ਸਥਿਤੀ = sl_usbd_cdc_acm_read(subclass_nbr,

(1)

rx_buf,

(2)

2u,

0u,

(3)

&xfer_len);

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਸੰਭਾਲਣ ਨੂੰ ਇੱਥੇ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। */

}

ਸਥਿਤੀ = sl_usbd_cdc_acm_write(subclass_nbr,

(1)

tx_buf,

(4)

2u,

0u,

(3)

&xfer_len);

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਸੰਭਾਲਣ ਨੂੰ ਇੱਥੇ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। */

}

T aaaaa M (1) he cl ss inst nce ਨੰਬਰ sl_usbd_cdc_acm_create_instance() ਨਾਲ ਬਣਾਇਆ ਗਿਆ ਹੈ, ਟ੍ਰਾਂਸਫਰ ਨੂੰ ਸਹੀ ਬਲਕ OUT ਜਾਂ IN ਐਂਡਪੁਆਇੰਟ ਤੇ ਰੂਟ ਕਰਨ ਲਈ AC ਸਬਕਲਾਸ ਦਾ n ਇੰਟਰਨਲ ਹਵਾਲਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। (2) ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਫੰਕਸ਼ਨ ਨੂੰ ਪ੍ਰਦਾਨ ਕੀਤਾ ਗਿਆ ਬਫਰ ਸਾਰੇ ਡੇਟਾ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨ ਲਈ ਕਾਫ਼ੀ ਵੱਡਾ ਹੈ। ਨਹੀਂ ਤਾਂ, ਸਿੰਕ੍ਰੋਨਾਈਜ਼ੇਸ਼ਨ ਸਮੱਸਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। (3) ਇੱਕ ਅਨੰਤ ਬਲਾਕਿੰਗ ਸਥਿਤੀ ਤੋਂ ਬਚਣ ਲਈ, ਮਿਲੀਸਕਿੰਟ ਵਿੱਚ ਦਰਸਾਏ ਗਏ ਇੱਕ ਟਾਈਮਆਉਟ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰੋ। 809 ਦਾ ਮੁੱਲ ਐਪਲੀਕੇਸ਼ਨ ਟਾਸਕ ਨੂੰ ਹਮੇਸ਼ਾ ਲਈ ਉਡੀਕਦਾ ਹੈ। (4) ਐਪਲੀਕੇਸ਼ਨ ਸ਼ੁਰੂਆਤੀ ਟ੍ਰਾਂਸਮਿਟ ਬਫਰ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

28/174

ਵੱਧview
ਵੱਧview

USB ਡਿਵਾਈਸ HID ਕਲਾਸ

USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਓਵਰview USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਸਰੋਤ ਲੋੜਾਂ ਕੋਰ USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਸੰਰਚਨਾ USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ HID ਪੀਰੀਅਡਿਕ ਇਨਪੁੱਟ ਰਿਪੋਰਟਾਂ ਟਾਸਕ
ਇਹ ਭਾਗ ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਦੁਆਰਾ ਸਮਰਥਿਤ ਹਿਊਮਨ ਇੰਟਰਫੇਸ ਡਿਵਾਈਸ (HID) ਕਲਾਸ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ।
HID ਕਲਾਸ ਵਿੱਚ ਮਨੁੱਖਾਂ ਦੁਆਰਾ ਕੰਪਿਊਟਰ ਕਾਰਜਾਂ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਯੰਤਰ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ ਕੀਬੋਰਡ, ਚੂਹੇ, ਪੁਆਇੰਟਿੰਗ ਯੰਤਰ, ਅਤੇ ਗੇਮ ਯੰਤਰ।
HID ਕਲਾਸ ਨੂੰ ਇੱਕ ਸੰਯੁਕਤ ਡਿਵਾਈਸ ਵਿੱਚ ਵੀ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਨੌਬਸ, ਸਵਿੱਚ, ਬਟਨ ਅਤੇ ਸਲਾਈਡਰ ਵਰਗੇ ਨਿਯੰਤਰਣ ਹੁੰਦੇ ਹਨ। ਉਦਾਹਰਣ ਵਜੋਂampਇੱਕ ਆਡੀਓ ਹੈੱਡਸੈੱਟ ਵਿੱਚ le, ਮਿਊਟ ਅਤੇ ਵਾਲੀਅਮ ਕੰਟਰੋਲ ਹੈੱਡਸੈੱਟ ਦੇ HID ਫੰਕਸ਼ਨ ਦੁਆਰਾ ਨਿਯੰਤਰਿਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। HID ਕਲਾਸ ਸਿਰਫ਼ ਕੰਟਰੋਲ ਅਤੇ ਇੰਟਰੱਪਟ ਟ੍ਰਾਂਸਫਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਿਸੇ ਵੀ ਉਦੇਸ਼ ਲਈ ਡੇਟਾ ਦਾ ਆਦਾਨ-ਪ੍ਰਦਾਨ ਕਰ ਸਕਦਾ ਹੈ।
HID ਕਲਾਸ ਸਭ ਤੋਂ ਪੁਰਾਣੀਆਂ ਅਤੇ ਸਭ ਤੋਂ ਵੱਧ ਵਰਤੀਆਂ ਜਾਣ ਵਾਲੀਆਂ USB ਕਲਾਸਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ। ਸਾਰੇ ਪ੍ਰਮੁੱਖ ਹੋਸਟ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ HID ਡਿਵਾਈਸਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਇੱਕ ਨੇਟਿਵ ਡਰਾਈਵਰ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ, ਇਸੇ ਕਰਕੇ ਕਈ ਤਰ੍ਹਾਂ ਦੇ ਵਿਕਰੇਤਾ-ਵਿਸ਼ੇਸ਼ ਡਿਵਾਈਸਾਂ HID ਕਲਾਸ ਨਾਲ ਕੰਮ ਕਰਦੀਆਂ ਹਨ। ਇਸ ਕਲਾਸ ਵਿੱਚ ਕਈ ਤਰ੍ਹਾਂ ਦੀਆਂ ਆਉਟਪੁੱਟ ਆਈਟਮਾਂ ਵੀ ਸ਼ਾਮਲ ਹਨ ਜਿਵੇਂ ਕਿ LEDs, ਆਡੀਓ, ਟੈਕਟਾਈਲ ਫੀਡਬੈਕ, ਆਦਿ।
HID ਲਾਗੂਕਰਨ ਹੇਠ ਲਿਖੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ:
ਮਨੁੱਖੀ ਇੰਟਰਫੇਸ ਡਿਵਾਈਸਾਂ (HID) ਲਈ ਡਿਵਾਈਸ ਕਲਾਸ ਪਰਿਭਾਸ਼ਾ, 6/27/01, ਸੰਸਕਰਣ 1.11। ਯੂਨੀਵਰਸਲ ਸੀਰੀਅਲ ਬੱਸ HID ਵਰਤੋਂ ਟੇਬਲ, 10/28/2004, ਸੰਸਕਰਣ 1.12।
USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਓਵਰview
ਵੱਧview
ਇੱਕ HID ਡਿਵਾਈਸ ਹੇਠ ਲਿਖੇ ਅੰਤਮ ਬਿੰਦੂਆਂ ਤੋਂ ਬਣੀ ਹੁੰਦੀ ਹੈ:
ਕੰਟਰੋਲ IN ਅਤੇ OUT ਐਂਡਪੁਆਇੰਟਸ ਦਾ ਇੱਕ ਜੋੜਾ ਜਿਸਨੂੰ ਡਿਫਾਲਟ ਐਂਡਪੁਆਇੰਟ ਕਿਹਾ ਜਾਂਦਾ ਹੈ ਇੱਕ ਇੰਟਰੱਪਟ IN ਐਂਡਪੁਆਇੰਟ ਇੱਕ ਵਿਕਲਪਿਕ ਇੰਟਰੱਪਟ OUT ਐਂਡਪੁਆਇੰਟ
ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵੱਖ-ਵੱਖ ਅੰਤਮ ਬਿੰਦੂਆਂ ਦੀ ਵਰਤੋਂ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ:
ਸਾਰਣੀ - HID ਕਲਾਸ ਦੇ ਅੰਤਮ ਬਿੰਦੂਆਂ ਦੀ ਵਰਤੋਂ

ਐਂਡਪੁਆਇੰਟ ਦਿਸ਼ਾ ਵਰਤੋਂ

ਕੰਟਰੋਲ IN
ਕੰਟਰੋਲ
ਬਾਹਰ
ਇੰਟਰੱਪਟ IN
ਰੁਕਾਵਟ
ਬਾਹਰ

ਡਿਵਾਈਸ-ਟੂ-ਹੋਸਟ
ਹੋਸਟ-ਟੂਡਿਵਾਈਸ
ਡਿਵਾਈਸ-ਟੂ-ਹੋਸਟ
ਹੋਸਟ-ਟੂਡਿਵਾਈਸ

ਗਣਨਾ, ਕਲਾਸ-ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ, ਅਤੇ ਡੇਟਾ ਸੰਚਾਰ ਲਈ ਮਿਆਰੀ ਬੇਨਤੀਆਂ (GET_REPORT ਬੇਨਤੀ ਦੇ ਨਾਲ ਹੋਸਟ ਨੂੰ ਭੇਜੀਆਂ ਗਈਆਂ ਇਨਪੁਟ, ਵਿਸ਼ੇਸ਼ਤਾ ਰਿਪੋਰਟਾਂ)। ਗਣਨਾ, ਕਲਾਸ-ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ ਅਤੇ ਡੇਟਾ ਸੰਚਾਰ ਲਈ ਮਿਆਰੀ ਬੇਨਤੀਆਂ (ਆਉਟਪੁੱਟ, SET_REPORT ਬੇਨਤੀ ਦੇ ਨਾਲ ਹੋਸਟ ਤੋਂ ਪ੍ਰਾਪਤ ਵਿਸ਼ੇਸ਼ਤਾ ਰਿਪੋਰਟਾਂ)। ਡੇਟਾ ਸੰਚਾਰ (ਇਨਪੁਟ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾ ਰਿਪੋਰਟਾਂ)।
ਡਾਟਾ ਸੰਚਾਰ (ਆਉਟਪੁੱਟ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾ ਰਿਪੋਰਟਾਂ)।

ਰਿਪੋਰਟ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

29/174

ਵੱਧview

ਇੱਕ ਹੋਸਟ ਅਤੇ ਇੱਕ HID ਡਿਵਾਈਸ ਰਿਪੋਰਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਡੇਟਾ ਦਾ ਆਦਾਨ-ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ। ਇੱਕ ਰਿਪੋਰਟ ਵਿੱਚ HID ਡਿਵਾਈਸ ਦੇ ਨਿਯੰਤਰਣਾਂ ਅਤੇ ਹੋਰ ਭੌਤਿਕ ਇਕਾਈਆਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਦੇਣ ਵਾਲਾ ਫਾਰਮੈਟ ਕੀਤਾ ਡੇਟਾ ਹੁੰਦਾ ਹੈ। ਇੱਕ ਨਿਯੰਤਰਣ ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਹੇਰਾਫੇਰੀ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਡਿਵਾਈਸ ਦੇ ਇੱਕ ਪਹਿਲੂ ਨੂੰ ਸੰਚਾਲਿਤ ਕਰਦਾ ਹੈ। ਉਦਾਹਰਣ ਵਜੋਂample, ਇੱਕ ਕੰਟਰੋਲ ਮਾਊਸ ਜਾਂ ਕੀਬੋਰਡ 'ਤੇ ਇੱਕ ਬਟਨ, ਇੱਕ ਸਵਿੱਚ, ਆਦਿ ਹੋ ਸਕਦਾ ਹੈ। ਹੋਰ ਸੰਸਥਾਵਾਂ ਉਪਭੋਗਤਾ ਨੂੰ ਡਿਵਾਈਸ ਦੀਆਂ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਸਥਿਤੀ ਬਾਰੇ ਸੂਚਿਤ ਕਰਦੀਆਂ ਹਨ। ਉਦਾਹਰਣ ਵਜੋਂample, ਕੀਬੋਰਡ 'ਤੇ LEDs ਉਪਭੋਗਤਾ ਨੂੰ ਕੈਪਸ ਲਾਕ ਚਾਲੂ ਹੋਣ, ਸੰਖਿਆਤਮਕ ਕੀਪੈਡ ਦੇ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ, ਆਦਿ ਬਾਰੇ ਸੂਚਿਤ ਕਰਦੇ ਹਨ।
ਰਿਪੋਰਟ ਡੇਟਾ ਦੇ ਫਾਰਮੈਟ ਅਤੇ ਵਰਤੋਂ ਨੂੰ ਹੋਸਟ ਦੁਆਰਾ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਦੀ ਸਮੱਗਰੀ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਕੇ ਸਮਝਿਆ ਜਾਂਦਾ ਹੈ। ਸਮੱਗਰੀ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਇੱਕ ਪਾਰਸਰ ਦੁਆਰਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਇੱਕ ਡਿਵਾਈਸ ਵਿੱਚ ਹਰੇਕ ਨਿਯੰਤਰਣ ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਡੇਟਾ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ। ਇਹ ਉਹਨਾਂ ਆਈਟਮਾਂ ਤੋਂ ਬਣਿਆ ਹੁੰਦਾ ਹੈ ਜੋ ਡਿਵਾਈਸ ਬਾਰੇ ਜਾਣਕਾਰੀ ਦੇ ਟੁਕੜੇ ਹੁੰਦੇ ਹਨ ਅਤੇ ਇੱਕ 1-ਬਾਈਟ ਪ੍ਰੀਫਿਕਸ ਅਤੇ ਵੇਰੀਏਬਲ-ਲੰਬਾਈ ਦੇ ਹੁੰਦੇ ਹਨ।
ਡਾਟਾ। ਆਈਟਮ ਫਾਰਮੈਟ ਬਾਰੇ ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ, ਵੇਖੋ
1.11=, ਭਾਗ 5.6 ਅਤੇ 6.2.2।
ਤਿੰਨ ਮੁੱਖ ਕਿਸਮਾਂ ਦੀਆਂ ਚੀਜ਼ਾਂ ਹਨ:
ਮੁੱਖ ਆਈਟਮ ਕੁਝ ਖਾਸ ਕਿਸਮਾਂ ਦੇ ਡੇਟਾ ਖੇਤਰਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਜਾਂ ਸਮੂਹਬੱਧ ਕਰਦੀ ਹੈ।
ਗਲੋਬਲ ਆਈਟਮ ਇੱਕ ਨਿਯੰਤਰਣ ਦੀਆਂ ਡੇਟਾ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ।
ਸਥਾਨਕ ਆਈਟਮ ਇੱਕ ਨਿਯੰਤਰਣ ਦੀਆਂ ਡੇਟਾ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ।
ਹਰੇਕ ਆਈਟਮ ਕਿਸਮ ਨੂੰ ਵੱਖ-ਵੱਖ ਫੰਕਸ਼ਨਾਂ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਆਈਟਮ ਫੰਕਸ਼ਨ ਨੂੰ ਇੱਕ ਵੀ ਕਿਹਾ ਜਾ ਸਕਦਾ ਹੈ tag. ਇੱਕ ਆਈਟਮ ਫੰਕਸ਼ਨ ਨੂੰ ਇੱਕ ਉਪ-ਆਈਟਮ ਦੇ ਰੂਪ ਵਿੱਚ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜੋ ਤਿੰਨ ਮੁੱਖ ਆਈਟਮ ਕਿਸਮਾਂ ਵਿੱਚੋਂ ਇੱਕ ਨਾਲ ਸਬੰਧਤ ਹੈ। ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਇੱਕ ਸੰਖੇਪ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈview ਹਰੇਕ ਆਈਟਮ ਕਿਸਮ ਵਿੱਚ ਆਈਟਮ9 ਦੇ ਫੰਕਸ਼ਨ। ਹਰੇਕ ਸ਼੍ਰੇਣੀ ਵਿੱਚ ਆਈਟਮਾਂ ਦੇ ਪੂਰੇ ਵੇਰਵੇ ਲਈ, ਵੇਖੋ
ਸਾਰਣੀ - ਹਰੇਕ ਆਈਟਮ ਕਿਸਮ ਲਈ ਆਈਟਮ ਦੇ ਫੰਕਸ਼ਨ ਵਰਣਨ

ਆਈਟਮ ਆਈਟਮ ਕਿਸਮ ਫੰਕਸ਼ਨ

ਵਰਣਨ

ਮੁੱਖ ਇੰਪੁੱਟ

ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ ਭੌਤਿਕ ਨਿਯੰਤਰਣਾਂ ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਡੇਟਾ ਬਾਰੇ ਜਾਣਕਾਰੀ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ।

ਮੁੱਖ ਆਉਟਪੁੱਟ ਡਿਵਾਈਸ ਨੂੰ ਭੇਜੇ ਗਏ ਡੇਟਾ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ।

ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾ

ਡਿਵਾਈਸ ਨੂੰ ਭੇਜੀ ਗਈ ਜਾਂ ਪ੍ਰਾਪਤ ਕੀਤੀ ਗਈ ਡਿਵਾਈਸ ਕੌਂਫਿਗਰੇਸ਼ਨ ਜਾਣਕਾਰੀ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ ਜੋ ਡਿਵਾਈਸ ਜਾਂ ਇਸਦੇ ਕਿਸੇ ਇੱਕ ਹਿੱਸੇ ਦੇ ਸਮੁੱਚੇ ਵਿਵਹਾਰ ਨੂੰ ਪ੍ਰਭਾਵਤ ਕਰਦੀ ਹੈ।

ਮੁੱਖ ਸੰਗ੍ਰਹਿ ਸਮੂਹ ਨਾਲ ਸਬੰਧਤ ਆਈਟਮਾਂ (ਇਨਪੁੱਟ, ਆਉਟਪੁੱਟ ਜਾਂ ਵਿਸ਼ੇਸ਼ਤਾ)।

ਸੰਗ੍ਰਹਿ ਦਾ ਮੁੱਖ ਅੰਤ ਇੱਕ ਸੰਗ੍ਰਹਿ ਨੂੰ ਬੰਦ ਕਰਦਾ ਹੈ। ਸੰਗ੍ਰਹਿ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

30/174

ਵੱਧview

ਆਈਟਮ ਆਈਟਮ ਕਿਸਮ ਫੰਕਸ਼ਨ

ਵਰਣਨ

ਗਲੋਬਲ ਵਰਤੋਂ ਪੰਨਾ

ਡਿਵਾਈਸ ਦੇ ਅੰਦਰ ਉਪਲਬਧ ਇੱਕ ਫੰਕਸ਼ਨ ਦੀ ਪਛਾਣ ਕਰਦਾ ਹੈ।

ਗਲੋਬਲ ਲਾਜ਼ੀਕਲ ਲਾਜ਼ੀਕਲ ਇਕਾਈਆਂ ਵਿੱਚ ਰਿਪੋਰਟ ਕੀਤੇ ਮੁੱਲਾਂ ਦੀ ਹੇਠਲੀ ਸੀਮਾ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਘੱਟੋ-ਘੱਟ

ਗਲੋਬਲ ਲਾਜ਼ੀਕਲ ਲਾਜ਼ੀਕਲ ਇਕਾਈਆਂ ਵਿੱਚ ਰਿਪੋਰਟ ਕੀਤੇ ਮੁੱਲਾਂ ਦੀ ਉਪਰਲੀ ਸੀਮਾ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਵੱਧ ਤੋਂ ਵੱਧ

ਗਲੋਬਲ ਫਿਜ਼ੀਕਲ ਭੌਤਿਕ ਇਕਾਈਆਂ ਵਿੱਚ ਰਿਪੋਰਟ ਕੀਤੇ ਮੁੱਲਾਂ ਦੀ ਹੇਠਲੀ ਸੀਮਾ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਭੌਤਿਕ ਇਕਾਈਆਂ ਵਿੱਚ ਦਰਸਾਈ ਗਈ ਲਾਜ਼ੀਕਲ ਘੱਟੋ-ਘੱਟ ਘੱਟੋ-ਘੱਟ ਹੈ।

ਗਲੋਬਲ ਭੌਤਿਕ ਭੌਤਿਕ ਇਕਾਈਆਂ ਵਿੱਚ ਰਿਪੋਰਟ ਕੀਤੇ ਮੁੱਲਾਂ ਦੀ ਉਪਰਲੀ ਸੀਮਾ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਭੌਤਿਕ ਇਕਾਈਆਂ ਵਿੱਚ ਦਰਸਾਈ ਗਈ ਲਾਜ਼ੀਕਲ ਅਧਿਕਤਮ ਅਧਿਕਤਮ ਹੈ।

ਗਲੋਬਲ ਯੂਨਿਟ

ਬੇਸ 10 ਵਿੱਚ ਯੂਨਿਟ ਘਾਤ ਅੰਕ ਦਰਸਾਉਂਦਾ ਹੈ। ਘਾਤ ਅੰਕ -8 ਤੋਂ +7 ਤੱਕ ਹੁੰਦਾ ਹੈ।

ਘਾਤਕ

ਗਲੋਬਲ ਯੂਨਿਟ

ਰਿਪੋਰਟ ਕੀਤੇ ਮੁੱਲਾਂ ਦੀ ਇਕਾਈ ਦਰਸਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਣ ਵਜੋਂ, ਲੰਬਾਈ, ਪੁੰਜ, ਤਾਪਮਾਨ ਇਕਾਈਆਂ, ਆਦਿ।

ਗਲੋਬਲ ਰਿਪੋਰਟ ਆਕਾਰ

ਰਿਪੋਰਟ ਫੀਲਡਾਂ ਦੇ ਆਕਾਰ ਨੂੰ ਬਿੱਟਾਂ ਵਿੱਚ ਦਰਸਾਉਂਦਾ ਹੈ।

ਗਲੋਬਲ ਰਿਪੋਰਟ ਆਈਡੀ ਕਿਸੇ ਖਾਸ ਰਿਪੋਰਟ ਵਿੱਚ ਜੋੜੇ ਗਏ ਪ੍ਰੀਫਿਕਸ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।

ਗਲੋਬਲ ਰਿਪੋਰਟ ਗਿਣਤੀ

ਕਿਸੇ ਆਈਟਮ ਲਈ ਡੇਟਾ ਖੇਤਰਾਂ ਦੀ ਸੰਖਿਆ ਦਰਸਾਉਂਦਾ ਹੈ।

ਗਲੋਬਲ ਪੁਸ਼

ਗਲੋਬਲ ਆਈਟਮ ਸਟੇਟ ਟੇਬਲ ਦੀ ਇੱਕ ਕਾਪੀ CPU ਸਟੈਕ 'ਤੇ ਰੱਖਦਾ ਹੈ।

ਗਲੋਬਲ ਪੌਪ

ਆਈਟਮ ਸਟੇਟ ਟੇਬਲ ਨੂੰ ਸਟੈਕ ਤੋਂ ਆਖਰੀ ਢਾਂਚੇ ਨਾਲ ਬਦਲਦਾ ਹੈ।

ਸਥਾਨਕ ਵਰਤੋਂ

ਇੱਕ ਵਰਤੋਂ ਪੰਨੇ ਦੇ ਅੰਦਰ ਇੱਕ ਖਾਸ ਵਰਤੋਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਇੱਕ ਸੂਚਕਾਂਕ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਹ ਵਿਕਰੇਤਾ ਦੁਆਰਾ ਇੱਕ ਖਾਸ ਨਿਯੰਤਰਣ ਜਾਂ ਨਿਯੰਤਰਣਾਂ ਦੇ ਸਮੂਹ ਲਈ ਸੁਝਾਏ ਗਏ ਵਰਤੋਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇੱਕ ਵਰਤੋਂ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਡਿਵੈਲਪਰ ਨੂੰ ਇਸ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ ਕਿ ਇੱਕ ਨਿਯੰਤਰਣ ਅਸਲ ਵਿੱਚ ਕੀ ਮਾਪ ਰਿਹਾ ਹੈ।

ਸਥਾਨਕ ਵਰਤੋਂ

ਇੱਕ ਐਰੇ ਜਾਂ ਬਿੱਟਮੈਪ ਨਾਲ ਸੰਬੰਧਿਤ ਸ਼ੁਰੂਆਤੀ ਵਰਤੋਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ।

ਘੱਟੋ-ਘੱਟ

ਸਥਾਨਕ ਵਰਤੋਂ

ਇੱਕ ਐਰੇ ਜਾਂ ਬਿੱਟਮੈਪ ਨਾਲ ਜੁੜੇ ਅੰਤਮ ਉਪਯੋਗ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ।

ਅਧਿਕਤਮ

ਸਥਾਨਕ ਡਿਜ਼ਾਈਨਰ ਨਿਯੰਤਰਣ ਲਈ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਸਰੀਰ ਦੇ ਹਿੱਸੇ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ। ਸੂਚਕਾਂਕ ਭੌਤਿਕ ਵਿੱਚ ਇੱਕ ਡਿਜ਼ਾਈਨਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ।

ਸੂਚਕਾਂਕ

ਵਰਣਨਕਰਤਾ।

ਸਥਾਨਕ ਡਿਜ਼ਾਈਨਰ ਇੱਕ ਐਰੇ ਜਾਂ ਬਿੱਟਮੈਪ ਨਾਲ ਜੁੜੇ ਸ਼ੁਰੂਆਤੀ ਡਿਜ਼ਾਈਨਰ ਦੇ ਸੂਚਕਾਂਕ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਘੱਟੋ-ਘੱਟ

ਸਥਾਨਕ ਡਿਜ਼ਾਈਨਰ ਇੱਕ ਐਰੇ ਜਾਂ ਬਿੱਟਮੈਪ ਨਾਲ ਜੁੜੇ ਅੰਤ ਵਾਲੇ ਡਿਜ਼ਾਈਨਰ ਦੇ ਸੂਚਕਾਂਕ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਵੱਧ ਤੋਂ ਵੱਧ

ਸਥਾਨਕ ਸਤਰ ਇੰਡੈਕਸ

ਸਟ੍ਰਿੰਗ ਡਿਸਕ੍ਰਿਪਟਰ ਲਈ ਸਟ੍ਰਿੰਗ ਇੰਡੈਕਸ। ਇਹ ਇੱਕ ਸਟ੍ਰਿੰਗ ਨੂੰ ਇੱਕ ਖਾਸ ਆਈਟਮ ਜਾਂ ਕੰਟਰੋਲ ਨਾਲ ਜੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।

ਸਥਾਨਕ ਸਤਰ

ਇੱਕ ਐਰੇ ਵਿੱਚ ਕੰਟਰੋਲਾਂ ਨੂੰ ਕ੍ਰਮਵਾਰ ਸਟ੍ਰਿੰਗਾਂ ਦੇ ਸਮੂਹ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦੇ ਸਮੇਂ ਪਹਿਲੀ ਸਟ੍ਰਿੰਗ ਇੰਡੈਕਸ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।

ਘੱਟੋ-ਘੱਟ ਜਾਂ ਬਿੱਟਮੈਪ।

ਸਥਾਨਕ ਸਥਾਨਕ

ਸਤਰ ਅਧਿਕਤਮ
ਡੀਲੀਮੀਟਰ

ਕਿਸੇ ਐਰੇ ਜਾਂ ਬਿੱਟਮੈਪ ਵਿੱਚ ਨਿਯੰਤਰਣਾਂ ਨੂੰ ਕ੍ਰਮਵਾਰ ਸਟ੍ਰਿੰਗਾਂ ਦੇ ਸਮੂਹ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦੇ ਸਮੇਂ ਆਖਰੀ ਸਟ੍ਰਿੰਗ ਇੰਡੈਕਸ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।
ਸਥਾਨਕ ਆਈਟਮਾਂ ਦੇ ਸੈੱਟ ਦੀ ਸ਼ੁਰੂਆਤ ਜਾਂ ਅੰਤ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ।

ਇੱਕ control9s ਡੇਟਾ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਹੇਠ ਲਿਖੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ:
ਇਨਪੁੱਟ, ਆਉਟਪੁੱਟ ਜਾਂ ਵਿਸ਼ੇਸ਼ਤਾ ਮੁੱਖ ਆਈਟਮਾਂ ਵਰਤੋਂ ਸਥਾਨਕ ਆਈਟਮ ਵਰਤੋਂ ਪੰਨਾ ਗਲੋਬਲ ਆਈਟਮ ਲਾਜ਼ੀਕਲ ਘੱਟੋ-ਘੱਟ ਗਲੋਬਲ ਆਈਟਮ ਲਾਜ਼ੀਕਲ ਵੱਧ ਤੋਂ ਵੱਧ ਗਲੋਬਲ ਆਈਟਮ ਰਿਪੋਰਟ ਆਕਾਰ ਗਲੋਬਲ ਆਈਟਮ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

31/174

ਵੱਧview
ਰਿਪੋਰਟ ਕਾਉਂਟ ਗਲੋਬਲ ਆਈਟਮ ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਇੱਕ ਹੋਸਟ HID ਪਾਰਸਰ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਤੋਂ ਮਾਊਸ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਸਮੱਗਰੀ ਦੀ ਨੁਮਾਇੰਦਗੀ ਦਰਸਾਉਂਦੀ ਹੈ। ਮਾਊਸ ਵਿੱਚ ਤਿੰਨ ਬਟਨ ਹਨ (ਖੱਬੇ, ਸੱਜੇ, ਅਤੇ ਪਹੀਏ)। ਕੋਡ ਨੂੰ ਸਾਬਕਾ ਵਿੱਚ ਪੇਸ਼ ਕੀਤਾ ਗਿਆ ਹੈ।ampਹੇਠਾਂ ਇਸ ਮਾਊਸ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਪ੍ਰਤੀਨਿਧਤਾ ਦੇ ਅਨੁਸਾਰ ਇੱਕ ਕੋਡ ਲਾਗੂਕਰਨ ਹੈ।
ਚਿੱਤਰ - ਇੱਕ ਹੋਸਟ HID ਪਾਰਸਰ ਤੋਂ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਸਮੱਗਰੀ View

(1) ਵਰਤੋਂ ਪੰਨਾ ਆਈਟਮ ਫੰਕਸ਼ਨ ਡਿਵਾਈਸ ਦੇ ਆਮ ਫੰਕਸ਼ਨ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਸ ਉਦਾਹਰਣ ਵਿੱਚample, HID ਡਿਵਾਈਸ ਇੱਕ ਨਾਲ ਸਬੰਧਤ ਹੈ
ਆਮ ਡੈਸਕਟਾਪ ਕੰਟਰੋਲ।
(2) ਸੰਗ੍ਰਹਿ ਐਪਲੀਕੇਸ਼ਨ ਮੁੱਖ ਆਈਟਮਾਂ ਨੂੰ ਸਮੂਹਬੱਧ ਕਰਦੀ ਹੈ ਜਿਨ੍ਹਾਂ ਦਾ ਇੱਕ ਸਾਂਝਾ ਉਦੇਸ਼ ਹੁੰਦਾ ਹੈ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਤੋਂ ਜਾਣੂ ਹੋ ਸਕਦੇ ਹਨ। ਚਿੱਤਰ ਵਿੱਚ, ਸਮੂਹ ਤਿੰਨ ਇਨਪੁੱਟ ਮੁੱਖ ਆਈਟਮਾਂ ਤੋਂ ਬਣਿਆ ਹੈ। ਇਸ ਸੰਗ੍ਰਹਿ ਲਈ, ਨਿਯੰਤਰਣਾਂ ਲਈ ਸੁਝਾਇਆ ਗਿਆ ਵਰਤੋਂ ਇੱਕ ਮਾਊਸ ਹੈ ਜਿਵੇਂ ਕਿ ਵਰਤੋਂ ਆਈਟਮ ਦੁਆਰਾ ਦਰਸਾਇਆ ਗਿਆ ਹੈ। (3) ਨੇਸਟਡ ਸੰਗ੍ਰਹਿ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਇੱਕ ਸਿੰਗਲ ਨਿਯੰਤਰਣ ਜਾਂ ਨਿਯੰਤਰਣਾਂ ਦੇ ਸਮੂਹ ਦੀ ਵਰਤੋਂ ਬਾਰੇ ਵਧੇਰੇ ਵੇਰਵੇ ਦੇਣ ਲਈ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਇਸ ਉਦਾਹਰਣ ਵਿੱਚample, ਕਲੈਕਸ਼ਨ ਫਿਜ਼ੀਕਲ, ਜੋ ਕਿ ਕਲੈਕਸ਼ਨ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਨੇਸਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਉਹੀ ਤਿੰਨ ਇਨਪੁੱਟ ਆਈਟਮਾਂ ਤੋਂ ਬਣਿਆ ਹੈ ਜੋ ਕਲੈਕਸ਼ਨ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਂਦੇ ਹਨ। ਕਲੈਕਸ਼ਨ ਫਿਜ਼ੀਕਲ ਦੀ ਵਰਤੋਂ ਡੇਟਾ ਆਈਟਮਾਂ ਦੇ ਇੱਕ ਸਮੂਹ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੋ ਇੱਕ ਜਿਓਮੈਟ੍ਰਿਕ ਬਿੰਦੂ 'ਤੇ ਇਕੱਠੇ ਕੀਤੇ ਡੇਟਾ ਬਿੰਦੂਆਂ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ। ਉਦਾਹਰਣ ਵਜੋਂample, ਸੁਝਾਇਆ ਗਿਆ ਵਰਤੋਂ ਇੱਕ ਪੁਆਇੰਟਰ ਹੈ ਜਿਵੇਂ ਕਿ ਵਰਤੋਂ ਆਈਟਮ ਦੁਆਰਾ ਦਰਸਾਇਆ ਗਿਆ ਹੈ। ਇੱਥੇ ਪੁਆਇੰਟਰ ਵਰਤੋਂ ਮਾਊਸ ਸਥਿਤੀ ਨਿਰਦੇਸ਼ਾਂਕਾਂ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ ਅਤੇ ਸਿਸਟਮ ਸੌਫਟਵੇਅਰ ਸਕ੍ਰੀਨ ਕਰਸਰ ਦੀ ਗਤੀ ਵਿੱਚ ਮਾਊਸ ਨਿਰਦੇਸ਼ਾਂਕਾਂ ਦਾ ਅਨੁਵਾਦ ਕਰੇਗਾ। (4) ਨੇਸਟਡ ਵਰਤੋਂ ਪੰਨੇ ਵੀ ਸੰਭਵ ਹਨ ਅਤੇ ਡਿਵਾਈਸ ਦੇ ਆਮ ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ ਇੱਕ ਖਾਸ ਪਹਿਲੂ ਬਾਰੇ ਹੋਰ ਵੇਰਵੇ ਦਿੰਦੇ ਹਨ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਦੋ ਇਨਪੁਟ ਆਈਟਮਾਂ ਨੂੰ ਸਮੂਹਬੱਧ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਮਾਊਸ ਦੇ ਬਟਨਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ। ਇੱਕ ਇਨਪੁਟ ਆਈਟਮ ਮਾਊਸ ਦੇ ਤਿੰਨ ਬਟਨਾਂ (ਸੱਜੇ, ਖੱਬੇ ਅਤੇ ਪਹੀਏ) ਨੂੰ ਆਈਟਮ ਲਈ ਡੇਟਾ ਖੇਤਰਾਂ ਦੀ ਸੰਖਿਆ (ਰਿਪੋਰਟ ਗਿਣਤੀ ਆਈਟਮ), ਡੇਟਾ ਖੇਤਰ ਦਾ ਆਕਾਰ (ਰਿਪੋਰਟ ਆਕਾਰ ਆਈਟਮ) ਅਤੇ ਹਰੇਕ ਡੇਟਾ ਖੇਤਰ ਲਈ ਸੰਭਵ ਮੁੱਲਾਂ (ਵਰਤੋਂ ਘੱਟੋ ਘੱਟ ਅਤੇ ਵੱਧ ਤੋਂ ਵੱਧ, ਲਾਜ਼ੀਕਲ ਘੱਟੋ ਘੱਟ ਅਤੇ ਵੱਧ ਤੋਂ ਵੱਧ ਆਈਟਮਾਂ) ਦੇ ਰੂਪ ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਦੂਜੀ ਇਨਪੁਟ ਆਈਟਮ ਇੱਕ 13-ਬਿੱਟ ਸਥਿਰ ਹੈ ਜੋ ਇਨਪੁਟ ਰਿਪੋਰਟ ਡੇਟਾ ਨੂੰ ਇੱਕ ਬਾਈਟ ਸੀਮਾ 'ਤੇ ਇਕਸਾਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। ਇਹ ਇਨਪੁਟ ਆਈਟਮ ਸਿਰਫ ਪੈਡਿੰਗ ਦੇ ਉਦੇਸ਼ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। (5) ਇੱਕ ਆਮ ਡੈਸਕਟੌਪ ਨਿਯੰਤਰਣ ਦਾ ਹਵਾਲਾ ਦੇਣ ਵਾਲਾ ਇੱਕ ਹੋਰ ਨੇਸਟਡ ਵਰਤੋਂ ਪੰਨਾ ਮਾਊਸ ਸਥਿਤੀ ਨਿਰਦੇਸ਼ਾਂਕਾਂ ਲਈ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਸ ਵਰਤੋਂ ਪੰਨੇ ਲਈ, ਇਨਪੁੱਟ ਆਈਟਮ ਦੋ ਵਰਤੋਂ ਦੁਆਰਾ ਦਰਸਾਏ ਗਏ x- ਅਤੇ y-ਧੁਰੇ ਨਾਲ ਸੰਬੰਧਿਤ ਡੇਟਾ ਖੇਤਰਾਂ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ।
ਆਈਟਮਾਂ
ਪਿਛਲੇ ਮਾਊਸ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਸਮੱਗਰੀ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਹੋਸਟ9s HID ਪਾਰਸਰ ਡਿਵਾਈਸ ਦੁਆਰਾ ਇੱਕ ਇੰਟਰੱਪਟ IN ਟ੍ਰਾਂਸਫਰ ਨਾਲ ਜਾਂ GET_REPORT ਬੇਨਤੀ ਦੇ ਜਵਾਬ ਵਿੱਚ ਭੇਜੇ ਗਏ ਇਨਪੁਟ ਰਿਪੋਰਟ ਡੇਟਾ ਦੀ ਵਿਆਖਿਆ ਕਰਨ ਦੇ ਯੋਗ ਹੁੰਦਾ ਹੈ। ਚਿੱਤਰ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਮਾਊਸ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਨਾਲ ਸੰਬੰਧਿਤ ਇਨਪੁਟ ਰਿਪੋਰਟ ਡੇਟਾ - ਇੱਕ ਹੋਸਟ HID ਪਾਰਸਰ ਤੋਂ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਸਮੱਗਰੀ View is

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

32/174

ਵੱਧview

ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ। ਰਿਪੋਰਟ ਡੇਟਾ ਦਾ ਕੁੱਲ ਆਕਾਰ 4 ਬਾਈਟ ਹੈ। ਇੱਕੋ ਅੰਤਮ ਬਿੰਦੂ 'ਤੇ ਵੱਖ-ਵੱਖ ਕਿਸਮਾਂ ਦੀਆਂ ਰਿਪੋਰਟਾਂ ਭੇਜੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। ਵੱਖ-ਵੱਖ ਕਿਸਮਾਂ ਦੀਆਂ ਰਿਪੋਰਟਾਂ ਨੂੰ ਵੱਖਰਾ ਕਰਨ ਦੇ ਉਦੇਸ਼ ਲਈ, ਡੇਟਾ ਰਿਪੋਰਟ ਵਿੱਚ ਇੱਕ 1-ਬਾਈਟ ਰਿਪੋਰਟ ID ਪ੍ਰੀਫਿਕਸ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ। ਜੇਕਰ ਇੱਕ ਰਿਪੋਰਟ ID ਸਾਬਕਾ ਵਿੱਚ ਵਰਤੀ ਗਈ ਸੀampਮਾਊਸ ਰਿਪੋਰਟ ਦੇ ਅਨੁਸਾਰ, ਰਿਪੋਰਟ ਡੇਟਾ ਦਾ ਕੁੱਲ ਆਕਾਰ 5 ਬਾਈਟ ਹੋਵੇਗਾ।
ਟੇਬਲ - ਇਨਪੁਟ ਰਿਪੋਰਟ ਹੋਸਟ ਨੂੰ ਭੇਜੀ ਗਈ ਹੈ ਅਤੇ 3 ਬਟਨਾਂ ਵਾਲੇ ਮਾਊਸ ਦੀ ਸਥਿਤੀ ਦੇ ਅਨੁਸਾਰ ਹੈ।

ਬਿੱਟ ਆਫਸੈੱਟ
0 1 2 3 16 24

ਬਿੱਟ ਗਿਣਤੀ 1 1 1 13 8 8

ਵਰਣਨ ਬਟਨ 1 (ਖੱਬਾ ਬਟਨ). ਬਟਨ 2 (ਸੱਜਾ ਬਟਨ). ਬਟਨ 3 (ਪਹੀਏ ਵਾਲਾ ਬਟਨ). ਵਰਤਿਆ ਨਹੀਂ ਗਿਆ। ਧੁਰੀ X 'ਤੇ ਸਥਿਤੀ। ਧੁਰੀ Y 'ਤੇ ਸਥਿਤੀ।

ਇੱਕ ਭੌਤਿਕ ਵਰਣਨਕਰਤਾ ਸਰੀਰ ਦੇ ਉਸ ਹਿੱਸੇ ਜਾਂ ਹਿੱਸਿਆਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜੋ ਕਿਸੇ ਨਿਯੰਤਰਣ ਜਾਂ ਨਿਯੰਤਰਣ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਲਈ ਬਣਾਇਆ ਗਿਆ ਹੈ। ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਇਸ ਜਾਣਕਾਰੀ ਦੀ ਵਰਤੋਂ ਇੱਕ ਡਿਵਾਈਸ ਦੇ ਨਿਯੰਤਰਣ ਨੂੰ ਇੱਕ ਕਾਰਜਸ਼ੀਲਤਾ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਕਰ ਸਕਦੀ ਹੈ। ਇੱਕ ਭੌਤਿਕ ਵਰਣਨਕਰਤਾ ਇੱਕ ਵਿਕਲਪਿਕ ਕਲਾਸ-ਵਿਸ਼ੇਸ਼ ਵਰਣਨਕਰਤਾ ਹੁੰਦਾ ਹੈ ਅਤੇ ਜ਼ਿਆਦਾਤਰ ਡਿਵਾਈਸਾਂ ਨੂੰ ਇਸਦੀ ਵਰਤੋਂ ਕਰਨ ਦਾ ਬਹੁਤ ਘੱਟ ਲਾਭ ਹੁੰਦਾ ਹੈ। ਵੇਖੋ
ਕੋਰ ਤੋਂ USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਸਰੋਤ ਲੋੜਾਂ

ਹਰ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ sl_usbd_hid_add_to_configuration() ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਕੇ USB ਕੌਂਫਿਗਰੇਸ਼ਨ ਵਿੱਚ HID ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਦੇ ਹੋ, ਤਾਂ ਹੇਠਾਂ ਦਿੱਤੇ ਸਰੋਤ ਕੋਰ ਤੋਂ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਣਗੇ।

ਸਰੋਤ
ਇੰਟਰਫੇਸ ਵਿਕਲਪਿਕ ਇੰਟਰਫੇਸ ਐਂਡਪੁਆਇੰਟ ਇੰਟਰਫੇਸ ਗਰੁੱਪ

ਮਾਤਰਾ
1 1 1 (2 ਜੇਕਰ ਇੰਟਰੱਪਟ OUT ਐਂਡਪੁਆਇੰਟ ਯੋਗ ਹੈ) 0

ਧਿਆਨ ਦਿਓ ਕਿ ਉਹ ਨੰਬਰ ਪ੍ਰਤੀ ਸੰਰਚਨਾ ਹਨ। ਆਪਣੇ SL_USBD_INTERFACE_QUANTITY , SL_USBD_ALT_INTERFACE_QUANTITY , SL_USBD_INTERFACE_GROUP_QUANTITY ਅਤੇ SL_USBD_DESCRIPTOR_QUANTITY ਸੰਰਚਨਾ ਮੁੱਲਾਂ ਨੂੰ ਸੈੱਟ ਕਰਦੇ ਸਮੇਂ, ਇਹ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣਾ ਨਾ ਭੁੱਲੋ ਕਿ ਕਲਾਸ ਕਿੰਨੀਆਂ ਸੰਰਚਨਾਵਾਂ ਜੋੜੀਆਂ ਜਾਣਗੀਆਂ। SL_USBD_OPEN_ENDPOINTS_QUANTITY ਸੰਰਚਨਾ ਮੁੱਲ ਲਈ, ਕਿਉਂਕਿ ਅੰਤ ਬਿੰਦੂ ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਖੋਲ੍ਹੇ ਜਾਂਦੇ ਹਨ ਜਦੋਂ ਇੱਕ ਸੰਰਚਨਾ ਹੋਸਟ ਦੁਆਰਾ ਸੈੱਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤੁਹਾਨੂੰ ਸਿਰਫ਼ ਇੱਕ ਕਲਾਸ ਉਦਾਹਰਣ ਲਈ ਲੋੜੀਂਦੇ ਅੰਤ ਬਿੰਦੂਆਂ ਦੀ ਗਿਣਤੀ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣ ਦੀ ਲੋੜ ਹੈ।
USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਕੌਂਫਿਗਰੇਸ਼ਨ

HID ਕਲਾਸ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਲਈ ਕੌਂਫਿਗਰੇਸ਼ਨ ਪੈਰਾਮੀਟਰਾਂ ਦੇ ਦੋ ਸਮੂਹ ਵਰਤੇ ਜਾਂਦੇ ਹਨ:
USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਐਪਲੀਕੇਸ਼ਨ-ਵਿਸ਼ੇਸ਼ ਸੰਰਚਨਾਵਾਂ USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਇੰਸਟੈਂਸ ਸੰਰਚਨਾਵਾਂ
USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਐਪਲੀਕੇਸ਼ਨ-ਵਿਸ਼ੇਸ਼ ਸੰਰਚਨਾਵਾਂ

ਪਹਿਲਾਂ, ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਆਪਣੀ ਐਪਲੀਕੇਸ਼ਨ ਜ਼ਰੂਰਤਾਂ ਦੇ ਅਨੁਸਾਰ ਪਰਿਭਾਸ਼ਿਤ HID ਕੰਪਾਈਲ-ਟਾਈਮ ਕੌਂਫਿਗਰੇਸ਼ਨ ਨੂੰ ਐਡਜਸਟ ਕਰੋ। ਉਹਨਾਂ ਨੂੰ sl_usbd_core_config.h ਹੈਡਰ ਦੇ ਅੰਦਰ ਦੁਬਾਰਾ ਇਕੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। file HID ਭਾਗ ਦੇ ਅਧੀਨ। ਇਹਨਾਂ ਨੂੰ ਦੋ ਭਾਗਾਂ ਵਿੱਚ ਵੰਡਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਮਾਤਰਾ ਸੰਰਚਨਾ ਅਤੇ HID ਕਾਰਜ ਸੰਰਚਨਾ। ਮਾਤਰਾ ਸੰਰਚਨਾ ਦਾ ਉਦੇਸ਼ USB ਡਿਵਾਈਸ ਮੋਡੀਊਲ ਨੂੰ ਇਹ ਦੱਸਣਾ ਹੈ ਕਿ ਕਿੰਨੀਆਂ USB HID ਵਸਤੂਆਂ ਨਿਰਧਾਰਤ ਕਰਨੀਆਂ ਹਨ।
ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਹਰੇਕ ਸੰਰਚਨਾ ਪਰਿਭਾਸ਼ਿਤ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ।
ਸਾਰਣੀ - USB ਡਿਵਾਈਸ HID ਕੌਂਫਿਗਰੇਸ਼ਨ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੀ ਹੈ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

33/174

ਵੱਧview

ਸੰਰਚਨਾ ਦਾ ਨਾਮ
SL_USBD_HID_CL ASS_I NSTANCE_QUANTITY
SL_USBD_HID_CONFIG URATION_QUANTITY
SL_USBD_HID_REPORT_ ID_QUANTITY
SL_USBD_HID_PUSH_P OP_ITEM_QUANTITY
SL_USBD_HID_TIMER_T ASK_STACK_SIZE
SL_USBD_HID_TIMER_T ਪੁੱਛੋ_ਪ੍ਰਾਇਓਰਿਟੀ

ਵਰਣਨ
ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਕੇ ਤੁਹਾਡੇ ਦੁਆਰਾ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਕਲਾਸ ਉਦਾਹਰਣਾਂ ਦੀ ਗਿਣਤੀ
sl_usbd_ਛੁਪਾਓ_ਬਣਾਓ_ਉਦਾਹਰਣ()।
ਸੰਰਚਨਾਵਾਂ ਦੀ ਗਿਣਤੀ। HID ਕਲਾਸ ਉਦਾਹਰਨਾਂ ਨੂੰ ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ aaaa ਸੰਰਚਨਾਵਾਂ ਵਿੱਚ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਫੰਕਸ਼ਨ sl_usbd_hid_add_to_configuration() ਵਿੱਚ। ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਰਿਪੋਰਟ ID ਦੀ ਕੁੱਲ ਸੰਖਿਆ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਦਾ ਹੈ।
ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਪੁਸ਼/ਪੌਪ ਆਈਟਮਾਂ ਦੀ ਕੁੱਲ ਸੰਖਿਆ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਦਾ ਹੈ।
ਟਾਈਮਰ ਟਾਸਕ ਸਾਰੇ ਟਾਈਮਰ-ਅਧਾਰਿਤ HID ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ। ਇਹ ਸੰਰਚਨਾ ਤੁਹਾਨੂੰ ਸਟੈਕ ਆਕਾਰ (ਬਾਈਟਾਂ ਦੀ ਗਿਣਤੀ ਵਿੱਚ) ਸੈੱਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। HID ਟਾਸਕ ਦੀ ਤਰਜੀਹ। ਇਹ ਇੱਕ CMSIS-RTOS2 ਤਰਜੀਹ ਹੈ।

ਪੂਰਵ-ਨਿਰਧਾਰਤ ਮੁੱਲ
2 1 2 0 2048
ਓਐਸਪ੍ਰਾਇਓਰਿਟੀਹਾਈ

USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਇੰਸਟੈਂਸ ਕੌਂਫਿਗਰੇਸ਼ਨ ਕਲਾਸ ਇੰਸਟੈਂਸ ਕ੍ਰਿਏਸ਼ਨ ਸਬਕਲਾਸ
ਪ੍ਰੋਟੋਕੋਲ ਦੇਸ਼_ਕੋਡ
interval_in ਅਤੇ interval_out p_hid_callback HID ਕਲਾਸ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ Exampਇਹ ਭਾਗ HID ਕਲਾਸ ਉਦਾਹਰਣਾਂ ਨਾਲ ਸਬੰਧਤ ਸੰਰਚਨਾਵਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ।
ਕਲਾਸ ਇੰਸਟੈਂਸ ਰਚਨਾ
ਇੱਕ HID ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣਾ ਫੰਕਸ਼ਨ aaa sl_usbd_hid_create_instance() ਨੂੰ ਕਾਲ ਕਰਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜੋ ਹੇਠਾਂ ਦੱਸੇ ਗਏ ਸੰਰਚਨਾ ਆਰਗੂਮੈਂਟਾਂ ਨੂੰ ਤੋੜਦਾ ਹੈ।
ਉਪ-ਸ਼੍ਰੇਣੀ
HID ਸਬਕਲਾਸ ਦਾ ਕੋਡ। ਸੰਭਵ ਮੁੱਲ ਹਨ:
SL_USBD_HID_SUBCL ASS_NONE SL_USBD_HID_SUBCL ASS_BOOT
ਇੱਕ HID ਡਿਵਾਈਸ ਜੋ ਬੂਟ ਸਬਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ, ਨੂੰ ਸਟੈਂਡਰਡ ਰਿਪੋਰਟ ਫਾਰਮੈਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਸਬਕਲਾਸ ਕੋਡਾਂ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, HID ਸਪੈਸੀਫਿਕੇਸ਼ਨ ਰੀਵਿਜ਼ਨ 1.11 ਦਾ ਸੈਕਸ਼ਨ 4.2 ਵੇਖੋ।
ਪ੍ਰੋਟੋਕੋਲ
HID ਡਿਵਾਈਸ ਦੁਆਰਾ ਵਰਤਿਆ ਜਾਣ ਵਾਲਾ ਪ੍ਰੋਟੋਕੋਲ। ਸੰਭਵ ਮੁੱਲ ਹਨ:
SL_USBD_HID_PROTOCOL_NONE SL_USBD_HID_PROTOCOL_KBD SL_USBD_HID_PROTOCOL_ਮਾਊਸ
ਜੇਕਰ ਤੁਹਾਡਾ HID ਫੰਕਸ਼ਨ ਇੱਕ ਮਾਊਸ ਹੈ, ਤਾਂ ਪ੍ਰੋਟੋਕੋਲ ਨੂੰ aa SL_USBD_HID_PROTOCOL_MOUSE ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੇਕਰ ਇਹ ਕੀਬੋਰਡ ਹੈ, ਤਾਂ ਇਸਨੂੰ O ਤੇ SL_USBD_HID_PROTOCOL_KBD ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਤਰ੍ਹਾਂ, ਪ੍ਰੋਟੋਕੋਲ ਨੂੰ SL_USBD_HID_PROTOCOL_NONE ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਸਬਕਲਾਸ ਕੋਡਾਂ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, HID ਸਪੈਸੀਫਿਕੇਸ਼ਨ ਰਿਵੀਜ਼ਨ 1.11 ਦਾ ਸੈਕਸ਼ਨ 4.3 ਵੇਖੋ।
ਦੇਸ਼ ਦਾ ਕੋਡ
ਦੇਸ਼ ਕੋਡ ਦੀ ਆਈਡੀ। ਸੰਭਵ ਮੁੱਲ ਹਨ:
SL_USBD_HID_COUNTRY_CODE_ਨਹੀਂ_ਸਮਰਥਿਤ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

34/174

ਵੱਧview
SL_USBD_HID_COUNTRY_CODE_ARABIC SL_USBD_HID_COUNTRY_CODE_BELGIAN SL_USBD_HID_COUNTRY_CODE_CANADIAN_FRENCH SL_USBD_HID_COUNTRY_CODE_CZECH_Republic SL_USBD_HID_COUNTRY_CODE_DANISH SL_USBD_HID_COUNTRY_CODE_FINNISH SL_USBD_HID_COUNTRY_CODE_FRENCH SL_USBD_HID_COUNTRY_CODE_GREEK SL_USBD_HID_COUNTRY_CODE_HEBREW SL_USBD_HID_COUNTRY_CODE_HUNGARY SL_USBD_HID_COUNTRY_CODE_INTERNATIONAL SL_USBD_HID_COUNTRY_CODE_ITALIAN SL_USBD_HID_COUNTRY_CODE_JAPAN_KATAKANA SL_USBD_HID_COUNTRY_CODE_CODE_L ATIN_AMERICAN SL_USBD_HID_COUNTRY_CODE_NETHERL ANDS_DUCH SL_USBD_HID_COUNTRY_CODE_Norwegian SL_USBD_HID_COUNTRY_CODE_PARSIAN_FARSI SL_USBD_HID_COUNTRY_CODE_POL ਅਤੇ SL_USBD_HID_COUNTRY_CODE_POL ਅਤੇ SL_USBD_HID_COUNTRY_CODE_PORTUGUESE SL_USBD_HID_COUNTRY_CODE_RUSIA SL_USBD_HID_COUNTRY_CODE_SLOVAKIA SL_USBD_HID_COUNTRY_CODE_SPANISH SL_USBD_HID_COUNTRY_CODE_SWEDISH SL_USBD_HID_COUNTRY_CODE_SWISS_FRENCH SL_USBD_HID_COUNTRY_CODE_SWISS_GERMAN SL_USBD_HID_COUNTRY_CODE_SWITZERL ਅਤੇ SL_USBD_HID_COUNTRY_CODE_TAIWAN SL_USBD_HID_COUNTRY_CODE_TURKISH_Q SL_USBD_HID_COUNTRY_CODE_US SL_USBD_HID_COUNTRY_CODE_YUG OSL AVIA SL_USBD_HID_COUNTRY_CODE_TURKISH_F
ਦੇਸ਼ ਕੋਡ ਇਹ ਪਛਾਣਦਾ ਹੈ ਕਿ ਹਾਰਡਵੇਅਰ ਕਿਸ ਦੇਸ਼ ਲਈ ਸਥਾਨਕ ਕੀਤਾ ਗਿਆ ਹੈ। ਜ਼ਿਆਦਾਤਰ ਹਾਰਡਵੇਅਰ ਸਥਾਨਕ ਨਹੀਂ ਹੁੰਦੇ ਅਤੇ ਇਸ ਲਈ ਇਹ aaaav lue SL_USBD_HID_COUNTRY_CODE_NOT_SUPPORTED (0) ਹੋਵੇਗਾ। ਹਾਲਾਂਕਿ, ਕੀਬੋਰਡ ਮੈਨੂੰ ਕੀ ਕੈਪਸ ਦੀ ਭਾਸ਼ਾ ਦਰਸਾਉਣ ਲਈ ਫੀਲਡ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
ਦੇਸ਼ ਕੋਡਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, HID ਨਿਰਧਾਰਨ ਸੰਸ਼ੋਧਨ 1.11 ਦਾ ਭਾਗ 6.2.1 ਵੇਖੋ।
ਅੰਤਰਾਲ_ਇਨ ਅਤੇ ਅੰਤਰਾਲ_ਆਉਟ
interval_in ਅਤੇ interval_out IN ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟ ਅਤੇ OUT ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟ ਦੇ ਪੋਲਿੰਗ ਅੰਤਰਾਲ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ।
ਇਹ ਐਂਡਪੁਆਇੰਟ ਦੇ ਪੋਲਿੰਗ ਅੰਤਰਾਲ ਨੂੰ ਮਿਲੀਸਕਿੰਟਾਂ ਵਿੱਚ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਸ ਮੁੱਲ ਨੂੰ ਸੈੱਟ ਕਰਨਾ ਇਸ ਗੱਲ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਹੋਸਟ ਲਈ ਇੱਕ ਨਵੀਂ ਰਿਪੋਰਟ ਤਿਆਰ ਕਰਨ ਲਈ ਕਿੰਨੀ ਵਾਰ ਸੰਵੇਦਨਸ਼ੀਲ ਹੈ। ਉਦਾਹਰਣ ਵਜੋਂ, ਜੇਕਰ ਇੱਕ ਰਿਪੋਰਟ ਹਰ 16 ਮਿਲੀਸਕਿੰਟਾਂ ਵਿੱਚ ਤਿਆਰ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਅੰਤਰਾਲ 16 ਜਾਂ ਘੱਟ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
ਮੁੱਲ 2 (1, 2, 4, 8, 16, ਆਦਿ) ਦੀ ਪਾਵਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
ਜੇਕਰ ctrl_rd_en ਨੂੰ ਸਹੀ 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਤਾਂ ਇੱਕ interval_out v lue ਨੂੰ ਅਣਡਿੱਠਾ ਕਰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।
ਪੀ_ਹਿਡ_ਕਾਲਬੈਕ
aaaa p_hid_callback sl_usbd_hid_callbacks_t ਕਿਸਮ ਦੀ ਬਣਤਰ ਵੱਲ ਸੰਕੇਤਕ ਹੈ। ਇਸਦਾ ਉਦੇਸ਼ HID ਘਟਨਾ ਵਾਪਰਨ 'ਤੇ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨਾਂ ਦੇ HID Cl ss ਸੈੱਟ ਨੂੰ ਕਾਲ ਕਰਨਾ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

35/174

ਵੱਧview

ਸਾਰੇ ਕਾਲਬੈਕ ਲਾਜ਼ਮੀ ਨਹੀਂ ਹਨ ਅਤੇ ਜਦੋਂ ਕਾਲਬੈਕ ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ ਹੈ ਤਾਂ ਕਾਲਬੈਕ ਸਟ੍ਰਕਚਰ ਵੇਰੀਏਬਲ ਵਿੱਚ ਇੱਕ ਨਲ ਪੁਆਇੰਟਰ (NULL) ਪਾਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਇਸ ਕੌਂਫਿਗਰੇਸ਼ਨ ਸਟ੍ਰਕਚਰ ਵਿੱਚ ਉਪਲਬਧ ਹਰੇਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਫੀਲਡ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ।
ਟੇਬਲ – sl_usbd_hid_callbacks_t ਸੰਰਚਨਾ ਢਾਂਚਾ

ਖੇਤਰ

ਵਰਣਨ

ਫੰਕਸ਼ਨ ਦਸਤਖਤ

.ਯੋਗ .ਅਯੋਗ .ਰਿਪੋਰਟ_ਡੇਸਕ_ਗੈਟ ਕਰੋ
.ਫਾਈ_ਡੈਸਕ_ਲੈ ਜਾਓ
.ਸੈੱਟ_ਆਉਟਪੁੱਟ_ਰਿਪੋਰਟ .ਫੀਚਰ_ਰਿਪੋਰਟ_ਗੈਟ_ਕਰੋ .ਫੀਚਰ_ਰਿਪੋਰਟ_ਸੈੱਟ_ਕਰੋ

USB ਕਲਾਸ ਇੰਸਟੈਂਸ ਸਫਲਤਾਪੂਰਵਕ ਸਮਰੱਥ ਹੋਣ 'ਤੇ ਕਾਲ ਕੀਤੀ ਗਈ। USB ਕਲਾਸ ਇੰਸਟੈਂਸ ਅਯੋਗ ਹੋਣ 'ਤੇ ਕਾਲ ਕੀਤੀ ਗਈ।
HID ਇੰਸਟੈਂਸ ਬਣਾਉਣ ਦੌਰਾਨ ਤੁਹਾਡੇ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਨੂੰ ਪਾਸ ਕਰਨ ਲਈ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਤੁਹਾਡੇ ਹਰੇਕ HID ਫੰਕਸ਼ਨ ਲਈ, ਤੁਹਾਨੂੰ ਇੱਕ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਪ੍ਰਦਾਨ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਹੋਸਟ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਡਿਵਾਈਸ ਦੁਆਰਾ ਭੇਜੀ ਜਾਣ ਵਾਲੀ ਆਵਰਤੀ ਰਿਪੋਰਟ ਨੂੰ ਕਿਵੇਂ ਪਾਰਸ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਆਪਣਾ ਖੁਦ ਦਾ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਲਿਖਣਾ ਚੁਣੌਤੀਪੂਰਨ ਹੋ ਸਕਦਾ ਹੈ, ਅਤੇ ਇਸ ਲਈ ਮਦਦ ਕਰਨ ਲਈ ਕੁਝ ਸਰੋਤ ਹਨ। ਇਹ ਇੱਕੋ ਇੱਕ ਲਾਜ਼ਮੀ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨ ਹੈ। HID ਇੰਸਟੈਂਸ ਬਣਾਉਣ ਦੌਰਾਨ ਤੁਹਾਡੇ ਭੌਤਿਕ ਡਿਸਕ੍ਰਿਪਟਰ ਨੂੰ ਪਾਸ ਕਰਨ ਲਈ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਭੌਤਿਕ ਡਿਸਕ੍ਰਿਪਟਰ ਇੱਕ ਡਿਸਕ੍ਰਿਪਟਰ ਹੈ ਜੋ ਮਨੁੱਖੀ ਸਰੀਰ ਦੇ ਖਾਸ ਹਿੱਸੇ ਜਾਂ ਹਿੱਸਿਆਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜੋ ਇੱਕ ਨਿਯੰਤਰਣ ਜਾਂ ਨਿਯੰਤਰਣ ਨੂੰ ਸਰਗਰਮ ਕਰ ਰਹੇ ਹਨ। ਭੌਤਿਕ ਡਿਸਕ੍ਰਿਪਟਰਾਂ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, HID ਸਪੈਸੀਫਿਕੇਸ਼ਨ ਰੀਵਿਜ਼ਨ 1.11 ਦਾ ਸੈਕਸ਼ਨ 6.2.3 ਵੇਖੋ। ਭੌਤਿਕ ਡਿਸਕ੍ਰਿਪਟਰ ਵਿਕਲਪਿਕ ਹੈ ਅਤੇ ਜ਼ਿਆਦਾਤਰ ਸਮਾਂ ਅਣਡਿੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇੱਥੇ ਪਾਸ ਕੀਤੇ ਗਏ ਬਫਰ ਨੂੰ NULL ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਲੰਬਾਈ 0 ਤੇ ਸੈੱਟ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਹੋਸਟ ਤੁਹਾਡੇ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਵਿੱਚ ਦੱਸੇ ਅਨੁਸਾਰ ਇੱਕ ਰਿਪੋਰਟ ਸੈੱਟ ਕਰਦਾ ਹੈ (ਜਦੋਂ ਇਹ ਇੱਕ ਰਿਪੋਰਟ ਭੇਜਦਾ ਹੈ)।
ਜਦੋਂ ਹੋਸਟ ਤੁਹਾਡੇ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਵਿੱਚ ਦੱਸੇ ਅਨੁਸਾਰ ਇੱਕ ਵਿਸ਼ੇਸ਼ਤਾ ਰਿਪੋਰਟ ਦੀ ਬੇਨਤੀ ਕਰਦਾ ਹੈ ਤਾਂ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਕਾਲ ਉਦੋਂ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਹੋਸਟ ਤੁਹਾਡੇ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਵਿੱਚ ਦੱਸੇ ਅਨੁਸਾਰ ਇੱਕ ਵਿਸ਼ੇਸ਼ਤਾ ਰਿਪੋਰਟ ਸੈੱਟ ਕਰਦਾ ਹੈ।

ਵੋਇਡ ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿਡ_ਏਨੇਬਲ(ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ); ਵੋਇਡ ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿਡ_ਡਿਸੇਬਲ(ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ); ਵੋਇਡ ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿਡ_ਗੇਟ_ਰਿਪੋਰਟ_ਡੇਸਕ(ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ, ਕੰਸਟ ਯੂਆਈਐਨਟੀ8_ਟੀ *ਪੀ_ਰਿਪੋਰਟ_ਪੀਟੀਆਰ, ਯੂਆਈਐਨਟੀ16_ਟੀਪੀ_ਰਿਪੋਰਟ_ਲੇਨ);
ਵੋਇਡ ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿਡ_ਗੇਟ_ਫਾਈ_ਡੇਸਕ (ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ, ਕੰਸਟ ਯੂਆਈਐਨਟੀ8_ਟੀ *ਪੀ_ਰਿਪੋਰਟ_ਪੀਟੀਆਰ, ਯੂਆਈਐਨਟੀ16_ਟੀਪੀ_ਰਿਪੋਰਟ_ਲੇਨ);
ਵੋਇਡ ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿਡ_ਸੈੱਟ_ਆਉਟਪੁੱਟ_ਰਿਪੋਰਟ(ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ, ਯੂਆਈਐਨਟੀ8_ਟੀ ਰਿਪੋਰਟ_ਆਈਡੀ, ਯੂਆਈਐਨਟੀ8_ਟੀ *ਪੀ_ਰਿਪੋਰਟ_ਬਫ, ਯੂਆਈਐਨਟੀ16_ਟੀ ਰਿਪੋਰਟ_ਲੇਨ); ਵੋਇਡ ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿਡ_ਗੈਟ_ਫੀਚਰ_ਰਿਪੋਰਟ(ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ, ਯੂਆਈਐਨਟੀ8_ਟੀ ਰਿਪੋਰਟ_ਆਈਡੀ, ਯੂਆਈਐਨਟੀ8_ਟੀ *ਪੀ_ਰਿਪੋਰਟ_ਬਫ, ਯੂਆਈਐਨਟੀ16_ਟੀ ਰਿਪੋਰਟ_ਲੇਨ); ਵੋਇਡ ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿਡ_ਸੈੱਟ_ਫੀਚਰ_ਰਿਪੋਰਟ(ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ, ਯੂਆਈਐਨਟੀ8_ਟੀ ਰਿਪੋਰਟ_ਆਈਡੀ, ਯੂਆਈਐਨਟੀ8_ਟੀ *ਪੀ_ਰਿਪੋਰਟ_ਬਫ, ਯੂਆਈਐਨਟੀ16_ਟੀ ਰਿਪੋਰਟ_ਲੇਨ);

.ਪ੍ਰੋਟੋਕੋਲ_ਪ੍ਰੋਟੋਕਾਲ ਪ੍ਰਾਪਤ ਕਰੋ

ਮੌਜੂਦਾ ਸਰਗਰਮ ਪ੍ਰੋਟੋਕੋਲ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।

ਵੋਇਡ ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿਡ_ਗੈੱਟ_ਪ੍ਰੋਟੋਕੋਲ(uint8_t ਕਲਾਸ_ਐਨਬੀਆਰ, uint8_t *ਪੀ_ਪ੍ਰੋਟੋਕੋਲ);

.ਸੈੱਟ_ਪ੍ਰੋਟੋਕੋਲ

ਮੌਜੂਦਾ ਕਿਰਿਆਸ਼ੀਲ ਪ੍ਰੋਟੋਕੋਲ ਸੈੱਟ ਕਰਦਾ ਹੈ।

ਵੋਇਡ ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿਡ_ਸੈੱਟ_ਪ੍ਰੋਟੋਕੋਲ (ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ, ਯੂਆਈਐਨਟੀ8_ਟੀ ਪ੍ਰੋਟੋਕੋਲ);

HID ਕਲਾਸ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਐਕਸample

ਸਿਲੀਕਾਨ ਲੈਬਜ਼ ਦੇ HID ਕਲਾਸampਐਪਲੀਕੇਸ਼ਨ ਇੱਕ ਸਾਬਕਾ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈampਇੱਕ ਸਧਾਰਨ ਮਾਊਸ ਲਈ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਦਾ ਲੀ। ਸਾਬਕਾampਹੇਠਾਂ ਇੱਕ ਮਾਊਸ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਦਿਖਾਇਆ ਗਿਆ ਹੈ।
Example – ਮਾਊਸ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ

ਸਥਿਰ uint8_t ਐਪ_usbd_hid_report_desc[] = {

(1) (2)

SL_USBD_HID_GLOBAL_USAGE_PAGE + 1, SL_USBD_HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS,

SL_USBD_HID_LOCAL_USAGE + 1, SL_USBD_HID_CA_ਮਾਊਸ,

(3)

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

36/174

ਵੱਧview

SL_USBD_HID_MAIN_COLLECTION +1, SL_USBD_HID_COLLECTION_APPLICATION,(4)

SL_USBD_HID_LOCAL_USEGE +1, SL_USBD_HID_CP_POINTER,(5)

SL_USBD_HID_MAIN_COLLECTION +1, SL_USBD_HID_COLLECTION_ਭੌਤਿਕ,(6)

SL_USBD_HID_GLOBAL_USAGE_PAGE +1, SL_USBD_HID_USAGE_PAGE_BUTTON,(7)

SL_USBD_HID_LOCAL_USAGE_MIN +1,0 01,

SL_USBD_HID_LOCAL_USAGE_MAX +1,0 03,

SL_USBD_HID_GLOBAL_LOG_MIN +1,0 00,

SL_USBD_HID_GLOBAL_LOG_MAX +1,0 01,

SL_USBD_HID_GLOBAL_REPORT_COUNT +1,0 03,

SL_USBD_HID_GLOBAL_REPORT_SIZE +1,0 01,

SL_USBD_HID_MAIN_INPUT +1, SL_USBD_HID_MAIN_DATA |

SL_USBD_HID_MAIN_VERIABLE |

SL_USBD_HID_MAIN_ABSOLUTE,

SL_USBD_HID_GLOBAL_REPORT_COUNT +1,0 01,(8)

SL_USBD_HID_GLOBAL_REPORT_SIZE +1,0 0D,

SL_USBD_HID_MAIN_INPUT +1, SL_USBD_HID_MAIN_CONSTANT,(9)

SL_USBD_HID_GLOBAL_USAGE_PAGE +1, SL_USBD_HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS,

SL_USBD_HID_LOCAL_USAGE +1, SL_USBD_HID_DV_X,

SL_USBD_HID_LOCAL_USAGE +1, SL_USBD_HID_DV_Y,

SL_USBD_HID_GLOBAL_LOG_MIN +1,0 81,

SL_USBD_HID_GLOBAL_LOG_MAX +1,0 7F,

SL_USBD_HID_GLOBAL_REPORT_SIZE +1,0 08,

SL_USBD_HID_GLOBAL_REPORT_COUNT +1,0 02,

SL_USBD_HID_MAIN_INPUT +1, SL_USBD_HID_MAIN_DATA |

SL_USBD_HID_MAIN_VERIABLE |

SL_USBD_HID_MAIN_RELATIVE,

SL_USBD_HID_MAIN_END ਸੰਗ੍ਰਹਿ,(10)

SL_USBD_HID_MAIN_END ਸੰਗ੍ਰਹਿ

(11)};

(1) ਮਾਊਸ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਨੂੰ ਦਰਸਾਉਂਦੀ ਟੇਬਲ ਨੂੰ ਇਸ ਤਰੀਕੇ ਨਾਲ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਕਿ ਹਰੇਕ ਲਾਈਨ ਇੱਕ ਛੋਟੀ ਜਿਹੀ ਆਈਟਮ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ। ਬਾਅਦ ਵਾਲਾ 1-ਬਾਈਟ ਪ੍ਰੀਫਿਕਸ ਅਤੇ 1-ਬਾਈਟ ਡੇਟਾ ਤੋਂ ਬਣਿਆ ਹੈ। ਵੇਖੋ viewਚਿੱਤਰ ਵਿੱਚ ਇੱਕ ਹੋਸਟ HID ਪਾਰਸਰ ਦੁਆਰਾ ਸੰਪਾਦਿਤ - ਇੱਕ ਹੋਸਟ HID ਪਾਰਸਰ ਤੋਂ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਸਮੱਗਰੀ View.
(2) ਜੈਨਰਿਕ ਡੈਸਕਟਾਪ ਵਰਤੋਂ ਪੰਨਾ ਵਰਤਿਆ ਗਿਆ ਹੈ।
(3) ਜੈਨਰਿਕ ਡੈਸਕਟੌਪ ਵਰਤੋਂ ਪੰਨੇ ਦੇ ਅੰਦਰ, ਵਰਤੋਂ tag ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ ਕਿ ਨਿਯੰਤਰਣਾਂ ਦਾ ਸਮੂਹ ਇੱਕ ਮਾਊਸ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਹੈ। ਇੱਕ ਮਾਊਸ ਸੰਗ੍ਰਹਿ ਵਿੱਚ ਆਮ ਤੌਰ 'ਤੇ ਦੋ ਧੁਰੇ (X ਅਤੇ Y) ਅਤੇ ਇੱਕ, ਦੋ, ਜਾਂ ਤਿੰਨ ਬਟਨ ਹੁੰਦੇ ਹਨ।
(4) ਚੂਹੇ ਇਕੱਠੇ ਕਰਨ ਦਾ ਕੰਮ ਸ਼ੁਰੂ ਹੋ ਗਿਆ ਹੈ।
(5) ਮਾਊਸ ਸੰਗ੍ਰਹਿ ਦੇ ਅੰਦਰ, ਇੱਕ ਵਰਤੋਂ tag ਹੋਰ ਖਾਸ ਤੌਰ 'ਤੇ ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ ਕਿ ਮਾਊਸ ਕੰਟਰੋਲ ਪੁਆਇੰਟਰ ਸੰਗ੍ਰਹਿ ਨਾਲ ਸਬੰਧਤ ਹਨ। ਇੱਕ ਪੁਆਇੰਟਰ ਸੰਗ੍ਰਹਿ ਧੁਰਿਆਂ ਦਾ ਸੰਗ੍ਰਹਿ ਹੈ ਜੋ ਉਪਭੋਗਤਾ ਦੇ ਇਰਾਦਿਆਂ ਨੂੰ ਕਿਸੇ ਐਪਲੀਕੇਸ਼ਨ ਵੱਲ ਨਿਰਦੇਸ਼ਤ ਕਰਨ, ਦਰਸਾਉਣ ਜਾਂ ਇਸ਼ਾਰਾ ਕਰਨ ਲਈ ਇੱਕ ਮੁੱਲ ਪੈਦਾ ਕਰਦਾ ਹੈ।
(6) ਪੁਆਇੰਟਰ ਸੰਗ੍ਰਹਿ ਸ਼ੁਰੂ ਹੋ ਗਿਆ ਹੈ।
(7) ਬਟਨ ਵਰਤੋਂ ਪੰਨਾ ਤਿੰਨ 1-ਬਿੱਟ ਖੇਤਰਾਂ ਤੋਂ ਬਣੀ ਇੱਕ ਇਨਪੁੱਟ ਆਈਟਮ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਹਰੇਕ 1-ਬਿੱਟ ਖੇਤਰ ਕ੍ਰਮਵਾਰ ਮਾਊਸ9 ਦੇ ਬਟਨ 1, 2 ਅਤੇ 3 ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਅਤੇ 0 ਜਾਂ 1 ਦਾ ਮੁੱਲ ਵਾਪਸ ਕਰ ਸਕਦਾ ਹੈ।
(8) ਬਟਨ ਵਰਤੋਂ ਪੰਨੇ ਲਈ ਇਨਪੁੱਟ ਆਈਟਮ 13 ਹੋਰ ਬਿੱਟਾਂ ਨਾਲ ਪੈਡ ਕੀਤੀ ਗਈ ਹੈ।
(9) ਇੱਕ ਹੋਰ ਆਮ ਡੈਸਕਟੌਪ ਵਰਤੋਂ ਪੰਨਾ X ਅਤੇ Y ਧੁਰਿਆਂ ਨਾਲ ਮਾਊਸ ਸਥਿਤੀ ਦਾ ਵਰਣਨ ਕਰਨ ਲਈ ਦਰਸਾਇਆ ਗਿਆ ਹੈ। ਇਨਪੁੱਟ ਆਈਟਮ ਦੋ 8-ਬਿੱਟ ਖੇਤਰਾਂ ਤੋਂ ਬਣੀ ਹੈ ਜਿਨ੍ਹਾਂ ਦਾ ਮੁੱਲ -127 ਅਤੇ 127 ਦੇ ਵਿਚਕਾਰ ਹੋ ਸਕਦਾ ਹੈ।
(10) ਪੁਆਇੰਟਰ ਸੰਗ੍ਰਹਿ ਬੰਦ ਹੈ।
(11) ਚੂਹਿਆਂ ਦਾ ਸੰਗ੍ਰਹਿ ਬੰਦ ਹੈ।
USB.org HID ਪੰਨਾ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

37/174

ਵੱਧview
USB ਇੰਪਲੀਮੈਂਟਰਜ਼ ਫੋਰਮ (USB-IF) ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਫਾਰਮੈਟ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੇ ਨਾਲ "HID ਡਿਸਕ੍ਰਿਪਟਰ ਟੂਲ" ਨਾਮਕ ਇੱਕ ਟੂਲ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ http://www.usb.org/developers/hidpage/ ਵੇਖੋ।
USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ
ਇਹ ਭਾਗ ਦੱਸਦਾ ਹੈ ਕਿ HID ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ। USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਸ਼ੁਰੂ ਕਰਨਾ ਆਪਣੇ ਡਿਵਾਈਸ ਵਿੱਚ ਇੱਕ USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਚਾਰ ਕਰਨਾ
USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਸ਼ੁਰੂ ਕਰਨਾ
ਆਪਣੀ ਡਿਵਾਈਸ ਵਿੱਚ HID ਕਲਾਸ ਫੰਕਸ਼ਨੈਲਿਟੀ ਜੋੜਨ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਫੰਕਸ਼ਨ sl_usbd_hid_init() ਨੂੰ ਕਾਲ ਕਰਕੇ ਕਲਾਸ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨਾ ਪਵੇਗਾ। ਉਦਾਹਰਣ ਵਜੋਂampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ ਡਿਫਾਲਟ ਆਰਗੂਮੈਂਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ sl_usbd_hid_init() ਨੂੰ ਕਿਵੇਂ ਕਾਲ ਕਰਨਾ ਹੈ। sl_usbd_hid_init() ਨੂੰ ਪਾਸ ਕਰਨ ਲਈ ਕੌਂਫਿਗਰੇਸ਼ਨ ਆਰਗੂਮੈਂਟਾਂ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਐਪਲੀਕੇਸ਼ਨ ਸਪੈਸੀਫਿਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਵੇਖੋ।
Example – sl_usbd_hid_init() ਨੂੰ ਕਾਲ ਕਰਨਾ
sl_status_t ਸਥਿਤੀ;
ਸਥਿਤੀ = sl_usbd_hid_init(); ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */
}
ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਵਿੱਚ ਇੱਕ USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ
ਆਪਣੀ ਡਿਵਾਈਸ ਵਿੱਚ HID ਕਲਾਸ ਕਾਰਜਕੁਸ਼ਲਤਾ ਜੋੜਨ ਲਈ, ਤੁਹਾਨੂੰ ਇੱਕ ਉਦਾਹਰਣ ਬਣਾਉਣੀ ਪਵੇਗੀ, ਫਿਰ ਇਸਨੂੰ ਆਪਣੀ ਡਿਵਾਈਸ ਦੇ ਸੰਰਚਨਾ(ਆਂ) ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨਾ ਪਵੇਗਾ।
ਇੱਕ HID ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣਾ
ਫੰਕਸ਼ਨ sl_usbd_hid_create_instance() ਨੂੰ ਕਾਲ ਕਰਕੇ ਇੱਕ HID ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਓ। exampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ ਡਿਫਾਲਟ ਆਰਗੂਮੈਂਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ sl_usbd_hid_create_instance() ਰਾਹੀਂ ਇੱਕ ਸਧਾਰਨ ਮਾਊਸ ਫੰਕਸ਼ਨ ਕਿਵੇਂ ਬਣਾਇਆ ਜਾਵੇ। sl_usbd_hid_create_instance() ਨੂੰ ਪਾਸ ਕਰਨ ਲਈ ਕੌਂਫਿਗਰੇਸ਼ਨ ਆਰਗੂਮੈਂਟਾਂ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਇੰਸਟੈਂਸ ਕੌਂਫਿਗਰੇਸ਼ਨ ਵੇਖੋ।
Example – sl_usbd_hid_create_instance() ਰਾਹੀਂ ਮਾਊਸ ਫੰਕਸ਼ਨ ਜੋੜਨਾ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

38/174

ਵੱਧview
/* ਗਲੋਬਲ ਸਥਿਰਾਂਕ। */ ਸਥਿਰ ਸਥਿਰਾਂਕ uint8_t app_usbd_hid_mouse_report_desc[] = {
SL_USBD_HID_GLOBAL_USAGE_PAGE + 1, SL_USBD_HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS, SL_USBD_HID_LOCAL_USAGE + 1, SL_USBD_HID_CA_MOUSE, SL_USBD_HID_MAIN_COLLECTION + 1, SL_USBD_HID_COLLECTION_APPLICATION, SL_USBD_HID_LOCAL_USAGE + 1, SL_USBD_HID_CP_POINTER, SL_USBD_HID_MAIN_COLLECTION + 1, SL_USBD_HID_COLLECTION_PHYSICAL, SL_USBD_HID_GLOBAL_USAGE_PAGE + 1, SL_USBD_HID_USAGE_PAGE_BUTTON, SL_USBD_HID_LOCAL_USAGE_MIN + 1, 0 01, SL_USBD_HID_LOCAL_USAGE_MAX + 1, 0 03, SL_USBD_HID_GLOBAL_LOG_MIN + 1, 0 00, SL_USBD_HID_GLOBAL_LOG_MAX + 1, 0 01, SL_USBD_HID_GLOBAL_REPORT_COUNT + 1, 0 03, SL_USBD_HID_GLOBAL_REPORT_SIZE + 1, 0 01, SL_USBD_HID_MAIN_INPUT + 1, SL_USBD_HID_MAIN_DATA | SL_USBD_HID_MAIN_VERIABLE | SL_USBD_HID_MAIN_ABSOLUTE, SL_USBD_HID_GLOBAL_REPORT_COUNT + 1, 0 01, SL_USBD_HID_GLOBAL_REPORT_SIZE + 1, 0 0D, SL_USBD_HID_MAIN_INPUT + 1, SL_USBD_HID_MAIN_CONSTANT, SL_USBD_HID_GLOBAL_USAGE_PAGE + 1, SL_USBD_HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS, SL_USBD_HID_LOCAL_USAGE + 1, SL_USBD_HID_DV_X, SL_USBD_HID_LOCAL_USAGE + 1, SL_USBD_HID_DV_Y, SL_USBD_HID_GLOBAL_LOG_MIN + 1, 0 81, SL_USBD_HID_GLOBAL_LOG_MAX + 1, 0 7F, SL_USBD_HID_GLOBAL_REPORT_SIZE + 1, 0 08, SL_USBD_HID_GLOBAL_REPORT_COUNT + 1, 0 02, SL_USBD_HID_MAIN_INPUT + 1, SL_USBD_HID_MAIN_DATA | SL_USBD_HID_MAIN_VERIABLE | SL_USBD_HID_MAIN_RELATIVE, SL_USBD_HID_MAIN_ENDCOLLECTION, SL_USBD_HID_MAIN_ENDCOLLECTION };
/* ਸਥਾਨਕ ਵੇਰੀਏਬਲ।*/ uint8_t class_nbr; sl_status_t ਸਥਿਤੀ;
sl_usbd_hid_callbacks_t ਐਪ_usbd_hid_callbacks = { ਨਲ, ਨਲ, ਐਪ_usbd_hid_get_report_desc, ਨਲ, ਨਲ, ਨਲ, ਨਲ, ਨਲ, ਨਲ };
ਵੋਇਡ ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿਡ_ਗੇਟ_ਰਿਪੋਰਟ_ਡੇਸਕ (ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ, ਕੰਸਟ ਯੂਆਈਐਨਟੀ8_ਟੀ **ਪੀ_ਰਿਪੋਰਟ_ਪੀਟੀਆਰ, ਯੂਆਈਐਨਟੀ16_ਟੀ *ਪੀ_ਰਿਪੋਰਟ_ਲੇਨ)
{ (ਖਾਲੀ) ਕਲਾਸ_ਐਨਬੀਆਰ;
*ਪੀ_ਰਿਪੋਰਟ_ਪੀਟੀਆਰ = ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿੱਡ_ਮਾਊਸ_ਰਿਪੋਰਟ_ਡੈਸਕ; *ਪੀ_ਰਿਪੋਰਟ_ਲੇਨ = ਆਕਾਰ(ਐਪ_ਯੂਐਸਬੀਡੀ_ਹਿੱਡ_ਮਾਊਸ_ਰਿਪੋਰਟ_ਡੈਸਕ); }
ਸਥਿਤੀ = sl_usbd_hid_create_instance(SL_USBD_HID_SUBCLASS_BOOT, SL_USBD_HID_PROTOCOL_MOUSE, SL_USBD_HID_COUNTRY_CODE_NOT_SUPPORTED, Ex_USBD_HID_Mouse_ReportDesc, sizeof(Ex_USBD_HID_Mouse_ReportDesc), 2u, 2u, true, &app_usbd_hid_callbacks, &class_nbr);
ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

39/174

ਵੱਧview
/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਨੂੰ ਸੰਭਾਲਣ ਸੰਬੰਧੀ ਜਾਣਕਾਰੀ ਇੱਥੇ ਸ਼ਾਮਲ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */}
ਆਪਣੀ ਡਿਵਾਈਸ ਦੇ ਕੌਂਫਿਗਰੇਸ਼ਨ(ਆਂ) ਵਿੱਚ HID ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ HID ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾ ਲੈਂਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਇਸਨੂੰ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਕੇ ਇੱਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਵਿੱਚ ਜੋੜ ਸਕਦੇ ਹੋ।
sl_usbd_ਛੁਪਾਓ_ਸੰਰਚਨਾ ਵਿੱਚ_ਜੋੜੋ()।
ਸਾਬਕਾampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ sl_usbd_hid_add_to_configuration() ਨੂੰ ਕਿਵੇਂ ਕਾਲ ਕਰਨਾ ਹੈ।
Example – sl_usbd_hid_add_to_configuration() ਨੂੰ ਕਾਲ ਕਰਨਾ

sl_status_t ਸਥਿਤੀ;

sl_usbd_ਲੁਕਾਓ_ਜੋੜੋ_ਸੰਰਚਨਾ ਵਿੱਚ(ਕਲਾਸ_nbr,

(1)

ਸੰਰਚਨਾ_ਐਨਬੀਆਰ_ਐਫਐਸ); (2)

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਸੰਭਾਲਣ ਨੂੰ ਇੱਥੇ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। */

}

(1) sl_usbd_hid_create_instance() ਦੁਆਰਾ ਵਾਪਸ ਕੀਤੀ ਗਈ ਸੰਰਚਨਾ ਵਿੱਚ ਜੋੜਨ ਲਈ ਕਲਾਸ ਨੰਬਰ। (2) ਸੰਰਚਨਾ ਨੰਬਰ (ਇੱਥੇ ਇਸਨੂੰ ਇੱਕ ਫੁੱਲ-ਸਪੀਡ ਸੰਰਚਨਾ ਵਿੱਚ ਜੋੜਨਾ)।
USB ਡਿਵਾਈਸ HID ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਚਾਰ ਕਰਨਾ
ਕਲਾਸ ਇੰਸਟੈਂਸ ਕਮਿਊਨੀਕੇਸ਼ਨ ਸਿੰਕ੍ਰੋਨਸ ਕਮਿਊਨੀਕੇਸ਼ਨ ਕਲਾਸ ਇੰਸਟੈਂਸ ਕਮਿਊਨੀਕੇਸ਼ਨ HID ਕਲਾਸ ਹੋਸਟ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਲਈ ਹੇਠ ਲਿਖੇ ਫੰਕਸ਼ਨ ਪੇਸ਼ ਕਰਦਾ ਹੈ।
ਸਾਰਣੀ - HID ਸੰਚਾਰ API ਸੰਖੇਪ

ਫੰਕਸ਼ਨ ਦਾ ਨਾਮ
sl_usb d _hid _ re ad _sy nc() sl_usb d _hid _write _sy nc()

ਓਪਰੇਸ਼ਨ ਇੰਟਰੱਪਟ ਆਊਟ ਐਂਡਪੁਆਇੰਟ ਰਾਹੀਂ ਹੋਸਟ ਤੋਂ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਇਹ ਫੰਕਸ਼ਨ ਬਲਾਕ ਕਰ ਰਿਹਾ ਹੈ। ਇੰਟਰੱਪਟ IN ਐਂਡਪੁਆਇੰਟ ਰਾਹੀਂ ਹੋਸਟ ਨੂੰ ਡੇਟਾ ਭੇਜਦਾ ਹੈ। ਇਹ ਫੰਕਸ਼ਨ ਬਲਾਕ ਕਰ ਰਿਹਾ ਹੈ।

ਸਮਕਾਲੀ ਸੰਚਾਰ ਸਮਕਾਲੀ ਸੰਚਾਰ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਟ੍ਰਾਂਸਫਰ ਬਲੌਕ ਹੋ ਰਿਹਾ ਹੈ। ਫੰਕਸ਼ਨ ਕਾਲ 'ਤੇ, ਐਪਲੀਕੇਸ਼ਨ ਉਦੋਂ ਤੱਕ ਬਲੌਕ ਹੋ ਜਾਂਦੇ ਹਨ ਜਦੋਂ ਤੱਕ ਟ੍ਰਾਂਸਫਰ ਕਿਸੇ ਗਲਤੀ ਦੇ ਨਾਲ ਜਾਂ ਬਿਨਾਂ ਪੂਰਾ ਨਹੀਂ ਹੋ ਜਾਂਦਾ। ਹਮੇਸ਼ਾ ਲਈ ਉਡੀਕ ਕਰਨ ਤੋਂ ਬਚਣ ਲਈ ਇੱਕ ਸਮਾਂ ਸਮਾਪਤੀ ਨਿਰਧਾਰਤ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਸਾਬਕਾampਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਇੱਕ ਰੀਡ ਐਂਡ ਰਾਈਟ ਦਿਖਾਉਂਦਾ ਹੈ ਜੋ ਇੰਟਰੱਪਟ ਆਉਟ ਐਂਡਪੁਆਇੰਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੋਸਟ ਤੋਂ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਅਤੇ ਇੰਟਰੱਪਟ IN ਐਂਡਪੁਆਇੰਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੋਸਟ ਨੂੰ ਡੇਟਾ ਭੇਜਦਾ ਹੈ।
Example – ਸਮਕਾਲੀ HID ਪੜ੍ਹੋ ਅਤੇ ਲਿਖੋ

__ਅਲਾਈਨਡ(4) uint8_t rx_buf[2];

__ਅਲਾਈਨਡ(4) uint8_t tx_buf[2];

uint32_t

ਐਕਸਫਰ_ਲੇਨ;

sl_status_t ਵੱਲੋਂ ਹੋਰ

ਸਥਿਤੀ;

ਸਥਿਤੀ = sl_usbd_hid_read_sync(class_nbr,

(1)

(ਖਾਲੀ *)rx_buf,

(2)

2u,

0u,

(3)

&xfer_len);

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਸੰਭਾਲਣ ਨੂੰ ਇੱਥੇ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। */

}

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

40/174

ਵੱਧview
status =sl_usbd_hid_read_sync(class_nbr,(1)(void *)rx_buf,(2)2u,0u,(3)&xfer_len);if(status ! SL_STATUS_OK){/* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */}
status =sl_usbd_hid_write_sync(class_nbr,(1)(void *)tx_buf,(4)2u,0u,(3)&xfer_len);if(status ! SL_STATUS_OK){/* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */}
(1) sl_usbd_hid_create_instance() ਤੋਂ ਬਣਾਇਆ ਗਿਆ ਕਲਾਸ ਇੰਸਟੈਂਸ ਨੰਬਰ HID ਕਲਾਸ ਲਈ ਟ੍ਰਾਂਸਫਰ ਨੂੰ ਸਹੀ ਇੰਟਰੱਪਟ OUT ਜਾਂ IN ਐਂਡਪੁਆਇੰਟ ਤੇ ਰੂਟ ਕਰਨ ਲਈ ਇੱਕ ਅੰਦਰੂਨੀ ਹਵਾਲਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
(2) ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਫੰਕਸ਼ਨ ਨੂੰ ਦਿੱਤਾ ਗਿਆ ਬਫਰ ਇੰਨਾ ਵੱਡਾ ਹੈ ਕਿ ਸਾਰੇ ਡੇਟਾ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਇਆ ਜਾ ਸਕੇ। ਨਹੀਂ ਤਾਂ, ਸਿੰਕ੍ਰੋਨਾਈਜ਼ੇਸ਼ਨ ਸਮੱਸਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ, ਰੀਡ ਓਪਰੇਸ਼ਨ ਜਾਂ ਤਾਂ ਕੰਟਰੋਲ ਐਂਡਪੁਆਇੰਟ ਨਾਲ ਜਾਂ ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟ ਨਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜੋ ਕਿ sl_usbd_hid_create_instance() ਨੂੰ ਕਾਲ ਕਰਦੇ ਸਮੇਂ ਕੰਟਰੋਲ ਰੀਡ ਫਲੈਗ ਸੈੱਟ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ।
(3) ਇੱਕ ਅਨੰਤ ਬਲਾਕਿੰਗ ਸਥਿਤੀ ਤੋਂ ਬਚਣ ਲਈ, ਮਿਲੀਸਕਿੰਟਾਂ ਵਿੱਚ ਦਰਸਾਏ ਗਏ ਇੱਕ ਟਾਈਮਆਉਟ ਨੂੰ ਨਿਰਧਾਰਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। 809 ਦਾ ਮੁੱਲ ਐਪਲੀਕੇਸ਼ਨ ਟਾਸਕ ਨੂੰ ਹਮੇਸ਼ਾ ਲਈ ਉਡੀਕ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ।
(4) ਐਪਲੀਕੇਸ਼ਨ ਸ਼ੁਰੂਆਤੀ ਟ੍ਰਾਂਸਮਿਟ ਬਫਰ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ।
HID ਪੀਰੀਅਡਿਕ ਇਨਪੁੱਟ ਰਿਪੋਰਟਾਂ ਦਾ ਕੰਮ
ਬੈਂਡਵਿਡਥ ਬਚਾਉਣ ਲਈ, ਹੋਸਟ ਕੋਲ ਰਿਪੋਰਟਿੰਗ ਬਾਰੰਬਾਰਤਾ ਨੂੰ ਸੀਮਤ ਕਰਕੇ ਇੱਕ ਇੰਟਰੱਪਟ IN ਐਂਡਪੁਆਇੰਟ ਤੋਂ ਰਿਪੋਰਟਾਂ ਨੂੰ ਚੁੱਪ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਹੈ। ਅਜਿਹਾ ਕਰਨ ਲਈ, ਹੋਸਟ ਨੂੰ SET_IDLE ਬੇਨਤੀ ਭੇਜਣੀ ਚਾਹੀਦੀ ਹੈ। ਸਿਲੀਕਾਨ ਲੈਬਜ਼ ਦੁਆਰਾ ਲਾਗੂ ਕੀਤੇ ਗਏ HID ਕਲਾਸ ਵਿੱਚ ਇੱਕ ਅੰਦਰੂਨੀ ਕੰਮ ਹੁੰਦਾ ਹੈ ਜੋ ਰਿਪੋਰਟਿੰਗ ਬਾਰੰਬਾਰਤਾ ਸੀਮਾ ਦਾ ਸਤਿਕਾਰ ਕਰਦਾ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਇੱਕ ਜਾਂ ਕਈ ਇਨਪੁਟ ਰਿਪੋਰਟਾਂ 'ਤੇ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹੋ। ਚਿੱਤਰ ਪੀਰੀਅਡਿਕ ਇਨਪੁਟ ਰਿਪੋਰਟਾਂ ਟਾਸਕ ਪੀਰੀਅਡਿਕ ਇਨਪੁਟ ਰਿਪੋਰਟਾਂ ਟਾਸਕਾਂ ਦੇ ਕੰਮਕਾਜ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
ਚਿੱਤਰ - ਸਮੇਂ-ਸਮੇਂ 'ਤੇ ਇਨਪੁੱਟ ਰਿਪੋਰਟਾਂ ਦਾ ਕੰਮ

(1) ਡਿਵਾਈਸ ਨੂੰ ਇੱਕ SET_IDLE ਬੇਨਤੀ ਪ੍ਰਾਪਤ ਹੁੰਦੀ ਹੈ। ਇਹ ਬੇਨਤੀ ਇੱਕ ਦਿੱਤੇ ਗਏ ਰਿਪੋਰਟ ID ਲਈ ਇੱਕ ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਨਿਰਧਾਰਤ ਕਰਦੀ ਹੈ। SET_IDLE ਬੇਨਤੀ ਬਾਰੇ ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ, ਵੇਖੋ
(2) ਇੱਕ ਰਿਪੋਰਟ ਆਈਡੀ ਢਾਂਚਾ (HID ਕਲਾਸ ਸ਼ੁਰੂਆਤੀ ਪੜਾਅ ਦੌਰਾਨ ਨਿਰਧਾਰਤ) ਨੂੰ ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਦੇ ਨਾਲ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਕਾਊਂਟਰ ਨੂੰ ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਮੁੱਲ ਦੇ ਨਾਲ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਰਿਪੋਰਟ ਆਈਡੀ ਢਾਂਚਾ ਇੱਕ ਲਿੰਕਡ ਸੂਚੀ ਦੇ ਅੰਤ ਵਿੱਚ ਪਾਇਆ ਜਾਂਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਇਨਪੁਟ ਰਿਪੋਰਟਾਂ ID ਢਾਂਚਿਆਂ ਹੁੰਦੀਆਂ ਹਨ। ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਮੁੱਲ 4-ms ਯੂਨਿਟ ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ ਜੋ 4 ਤੋਂ 1020 ms ਦੀ ਰੇਂਜ ਦਿੰਦਾ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

41/174

ਵੱਧview
ਜੇਕਰ ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਇੰਟਰੱਪਟ IN ਐਂਡਪੁਆਇੰਟ ਦੇ ਪੋਲਿੰਗ ਅੰਤਰਾਲ ਤੋਂ ਘੱਟ ਹੈ, ਤਾਂ ਰਿਪੋਰਟਾਂ ਪੋਲਿੰਗ ਅੰਤਰਾਲ 'ਤੇ ਤਿਆਰ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।
(3) ਹਰ 4 ms 'ਤੇ, ਆਵਰਤੀ ਇਨਪੁਟ ਰਿਪੋਰਟ ਟਾਸਕ ਇਨਪੁਟ ਰਿਪੋਰਟਾਂ ID ਸੂਚੀ ਨੂੰ ਬ੍ਰਾਊਜ਼ ਕਰਦਾ ਹੈ। ਹਰੇਕ ਇਨਪੁਟ ਰਿਪੋਰਟ ID ਲਈ, ਟਾਸਕ ਦੋ ਸੰਭਾਵਿਤ ਕਾਰਜਾਂ ਵਿੱਚੋਂ ਇੱਕ ਕਰਦਾ ਹੈ। ਟਾਸਕ ਪੀਰੀਅਡ ਦੀ ਮਿਆਦ ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਲਈ ਵਰਤੀ ਗਈ 4-ms ਯੂਨਿਟ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ। ਜੇਕਰ ਹੋਸਟ ਦੁਆਰਾ ਕੋਈ SET_IDLE ਬੇਨਤੀਆਂ ਨਹੀਂ ਭੇਜੀਆਂ ਗਈਆਂ ਹਨ, ਤਾਂ ਇਨਪੁਟ ਰਿਪੋਰਟਾਂ ID ਸੂਚੀ ਖਾਲੀ ਹੈ ਅਤੇ ਟਾਸਕ ਕੋਲ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਲਈ ਕੁਝ ਵੀ ਨਹੀਂ ਹੈ। ਟਾਸਕ ਸਿਰਫ਼ ਉਹਨਾਂ ਰਿਪੋਰਟ IDs ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਦਾ ਹੈ ਜੋ 0 ਤੋਂ ਵੱਖਰੀਆਂ ਹਨ ਅਤੇ 0 ਤੋਂ ਵੱਧ ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਵਾਲੀਆਂ ਹਨ।
(4) ਦਿੱਤੇ ਗਏ ਇਨਪੁਟ ਰਿਪੋਰਟ ID ਲਈ, ਟਾਸਕ ਇਹ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਬੀਤ ਗਈ ਹੈ। ਜੇਕਰ ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਨਹੀਂ ਬੀਤ ਗਈ ਹੈ, ਤਾਂ ਕਾਊਂਟਰ ਘਟਾਇਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਹੋਸਟ ਨੂੰ ਕੋਈ ਇਨਪੁਟ ਰਿਪੋਰਟ ਨਹੀਂ ਭੇਜੀ ਜਾਂਦੀ।
(5) ਜੇਕਰ ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਬੀਤ ਗਈ ਹੈ (ਭਾਵ, ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਕਾਊਂਟਰ ਜ਼ੀਰੋ ਤੱਕ ਪਹੁੰਚ ਗਿਆ ਹੈ), ਤਾਂ ਇੰਟਰੱਪਟ IN ਐਂਡਪੁਆਇੰਟ ਰਾਹੀਂ sl_usbd_hid_write_sync() ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਕੇ ਹੋਸਟ ਨੂੰ ਇੱਕ ਇਨਪੁਟ ਰਿਪੋਰਟ ਭੇਜੀ ਜਾਂਦੀ ਹੈ।
(6) ਟਾਸਕ ਦੁਆਰਾ ਭੇਜਿਆ ਗਿਆ ਇਨਪੁਟ ਰਿਪੋਰਟ ਡੇਟਾ ਰਿਪੋਰਟ ਡਿਸਕ੍ਰਿਪਟਰ ਵਿੱਚ ਦਰਸਾਏ ਗਏ ਹਰੇਕ ਇਨਪੁਟ ਰਿਪੋਰਟ ਲਈ ਨਿਰਧਾਰਤ ਇੱਕ ਅੰਦਰੂਨੀ ਡੇਟਾ ਬਫਰ ਤੋਂ ਆਉਂਦਾ ਹੈ। ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਟਾਸਕ ਇੱਕ ਇਨਪੁਟ ਰਿਪੋਰਟ ਭੇਜਣ ਲਈ sl_usbd_hid_write_sync() ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰ ਸਕਦਾ ਹੈ। ਇਨਪੁਟ ਰਿਪੋਰਟ ਡੇਟਾ ਭੇਜਣ ਤੋਂ ਬਾਅਦ, sl_usbd_hid_write_sync() ਇੱਕ ਇਨਪੁਟ ਰਿਪੋਰਟ ID ਨਾਲ ਜੁੜੇ ਅੰਦਰੂਨੀ ਬਫਰ ਨੂੰ ਹੁਣੇ ਭੇਜੇ ਗਏ ਡੇਟਾ ਨਾਲ ਅਪਡੇਟ ਕਰਦਾ ਹੈ। ਫਿਰ, ਪੀਰੀਅਡਿਕ ਇਨਪੁਟ ਰਿਪੋਰਟ ਟਾਸਕ ਹਮੇਸ਼ਾਂ ਉਹੀ ਇਨਪੁਟ ਰਿਪੋਰਟ ਡੇਟਾ ਭੇਜਦਾ ਹੈ ਜੋ ਹਰੇਕ ਨਿਸ਼ਕਿਰਿਆ ਅਵਧੀ ਬੀਤਣ ਤੋਂ ਬਾਅਦ ਅਤੇ ਜਦੋਂ ਤੱਕ ਐਪਲੀਕੇਸ਼ਨ ਟਾਸਕ ਅੰਦਰੂਨੀ ਬਫਰ ਵਿੱਚ ਡੇਟਾ ਨੂੰ ਅਪਡੇਟ ਨਹੀਂ ਕਰਦਾ। ਪੀਰੀਅਡਿਕ ਇਨਪੁਟ ਰਿਪੋਰਟ ਟਾਸਕ ਦੁਆਰਾ ਕੀਤੇ ਗਏ ਸੰਚਾਰ ਦੇ ਸਹੀ ਸਮੇਂ 'ਤੇ ਹੋਣ ਵਾਲੇ ਸੋਧ ਦੀ ਸਥਿਤੀ ਵਿੱਚ ਇਨਪੁਟ ਰਿਪੋਰਟ ID ਡੇਟਾ ਦੇ ਭ੍ਰਿਸ਼ਟਾਚਾਰ ਤੋਂ ਬਚਣ ਲਈ ਕੁਝ ਲਾਕਿੰਗ ਵਿਧੀ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

42/174

ਵੱਧview
ਵੱਧview
USB ਡਿਵਾਈਸ MSC ਕਲਾਸ
USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਓਵਰview USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਸਰੋਤ ਲੋੜਾਂ ਕੋਰ ਤੋਂ USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਸੰਰਚਨਾ USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਸਟੋਰੇਜ ਡਰਾਈਵਰ
ਇਹ ਭਾਗ ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਦੁਆਰਾ ਸਮਰਥਿਤ ਮਾਸ ਸਟੋਰੇਜ ਡਿਵਾਈਸ ਕਲਾਸ (MSC) ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ। MSC ਇੱਕ ਪ੍ਰੋਟੋਕੋਲ ਹੈ ਜੋ ਇੱਕ USB ਡਿਵਾਈਸ ਅਤੇ ਇੱਕ ਹੋਸਟ ਵਿਚਕਾਰ ਜਾਣਕਾਰੀ ਦੇ ਟ੍ਰਾਂਸਫਰ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ। ਟ੍ਰਾਂਸਫਰ ਕੀਤੀ ਜਾ ਰਹੀ ਜਾਣਕਾਰੀ ਕੁਝ ਵੀ ਹੈ ਜੋ ਇਲੈਕਟ੍ਰਾਨਿਕ ਤੌਰ 'ਤੇ ਸਟੋਰ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਪ੍ਰੋਗਰਾਮ, ਸਰੋਤ ਕੋਡ, ਦਸਤਾਵੇਜ਼, ਚਿੱਤਰ, ਸੰਰਚਨਾ ਡੇਟਾ, ਜਾਂ ਹੋਰ ਟੈਕਸਟ ਜਾਂ ਸੰਖਿਆਤਮਕ ਡੇਟਾ। USB ਡਿਵਾਈਸ ਹੋਸਟ ਲਈ ਇੱਕ ਬਾਹਰੀ ਸਟੋਰੇਜ ਮਾਧਿਅਮ ਵਜੋਂ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ, ਜੋ ਟ੍ਰਾਂਸਫਰ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦੀ ਹੈ। fileਡਰੈਗ ਐਂਡ ਡ੍ਰੌਪ ਰਾਹੀਂ।
A file ਸਿਸਟਮ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਕਿ ਕਿਵੇਂ files ਸਟੋਰੇਜ ਮੀਡੀਆ ਵਿੱਚ ਸੰਗਠਿਤ ਹਨ। USB ਮਾਸ ਸਟੋਰੇਜ ਕਲਾਸ ਸਪੈਸੀਫਿਕੇਸ਼ਨ ਲਈ ਕਿਸੇ ਖਾਸ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ file ਸਿਸਟਮ ਨੂੰ ਅਨੁਕੂਲ ਡਿਵਾਈਸਾਂ 'ਤੇ ਵਰਤਿਆ ਜਾਵੇਗਾ। ਇਸਦੀ ਬਜਾਏ, ਇਹ ਸਮਾਲ ਕੰਪਿਊਟਰ ਸਿਸਟਮ ਇੰਟਰਫੇਸ (SCSI) ਪਾਰਦਰਸ਼ੀ ਕਮਾਂਡ ਸੈੱਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਡੇਟਾ ਦੇ ਸੈਕਟਰਾਂ ਨੂੰ ਪੜ੍ਹਨ ਅਤੇ ਲਿਖਣ ਲਈ ਇੱਕ ਸਧਾਰਨ ਇੰਟਰਫੇਸ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਇਸ ਤਰ੍ਹਾਂ, ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ USB ਡਰਾਈਵ ਨੂੰ ਇੱਕ ਹਾਰਡ ਡਰਾਈਵ ਵਾਂਗ ਮੰਨ ਸਕਦੇ ਹਨ, ਅਤੇ ਇਸਨੂੰ ਕਿਸੇ ਵੀ ਨਾਲ ਫਾਰਮੈਟ ਕਰ ਸਕਦੇ ਹਨ file ਸਿਸਟਮ ਜੋ ਉਹਨਾਂ ਨੂੰ ਪਸੰਦ ਹੈ।
USB ਮਾਸ ਸਟੋਰੇਜ ਡਿਵਾਈਸ ਕਲਾਸ ਦੋ ਟ੍ਰਾਂਸਪੋਰਟ ਪ੍ਰੋਟੋਕੋਲਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ:
ਬਲਕ-ਓਨਲੀ ਟ੍ਰਾਂਸਪੋਰਟ (BOT) ਕੰਟਰੋਲ/ਬਲਕ/ਇੰਟਰੱਪਟ (CBI) ਟ੍ਰਾਂਸਪੋਰਟ (ਸਿਰਫ਼ ਫਲਾਪੀ ਡਿਸਕ ਡਰਾਈਵਾਂ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ)
ਮਾਸ ਸਟੋਰੇਜ ਡਿਵਾਈਸ ਕਲਾਸ ਸਿਰਫ਼ BOT ਪ੍ਰੋਟੋਕੋਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ SCSI ਪਾਰਦਰਸ਼ੀ ਕਮਾਂਡ ਸੈੱਟ ਨੂੰ ਲਾਗੂ ਕਰਦਾ ਹੈ, ਜਿਸਦਾ ਅਰਥ ਹੈ ਕਿ ਡੇਟਾ ਅਤੇ ਸਥਿਤੀ ਜਾਣਕਾਰੀ ਨੂੰ ਸੰਚਾਰਿਤ ਕਰਨ ਲਈ ਸਿਰਫ਼ ਬਲਕ ਐਂਡਪੁਆਇੰਟ ਵਰਤੇ ਜਾਣਗੇ। MSC ਲਾਗੂਕਰਨ ਕਈ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
ਐਮਐਸਸੀ ਲਾਗੂਕਰਨ ਹੇਠ ਲਿਖੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ:
ਯੂਨੀਵਰਸਲ ਸੀਰੀਅਲ ਬੱਸ ਮਾਸ ਸਟੋਰੇਜ ਕਲਾਸ ਸਪੈਸੀਫਿਕੇਸ਼ਨ ਓਵਰview, ਸੋਧ 1.3 ਸਤੰਬਰ 5, 2008। ਯੂਨੀਵਰਸਲ ਸੀਰੀਅਲ ਬੱਸ ਮਾਸ ਸਟੋਰੇਜ ਕਲਾਸ ਬਲਕ-ਓਨਲੀ ਟ੍ਰਾਂਸਪੋਰਟ, ਸੋਧ 1.0 ਸਤੰਬਰ 31, 1999।
USB ਡਿਵਾਈਸ MSC aCl ss ਓਵਰview
ਪ੍ਰੋਟੋਕੋਲ ਐਂਡਪੁਆਇੰਟ ਕਲਾਸ ਬੇਨਤੀਆਂ ਸਮਾਲ ਕੰਪਿਊਟਰ ਸਿਸਟਮ ਇੰਟਰਫੇਸ (SCSI)
ਪ੍ਰੋਟੋਕੋਲ
ਇਸ ਭਾਗ ਵਿੱਚ, ਅਸੀਂ ਮਾਸ ਸਟੋਰੇਜ ਕਲਾਸ ਦੇ ਬਲਕ-ਓਨਲੀ ਟ੍ਰਾਂਸਪੋਰਟ (BOT) ਪ੍ਰੋਟੋਕੋਲ ਬਾਰੇ ਚਰਚਾ ਕਰਾਂਗੇ। ਬਲਕ-ਓਨਲੀ ਟ੍ਰਾਂਸਪੋਰਟ ਪ੍ਰੋਟੋਕੋਲ ਵਿੱਚ ਤਿੰਨ ਐੱਸ ਹਨtages:
ਕਮਾਂਡ ਟ੍ਰਾਂਸਪੋਰਟ ਡੇਟਾ ਟ੍ਰਾਂਸਪੋਰਟ ਸਟੇਟਸ ਟ੍ਰਾਂਸਪੋਰਟ
ਮਾਸ ਸਟੋਰੇਜ ਕਮਾਂਡਾਂ ਹੋਸਟ ਦੁਆਰਾ ਕਮਾਂਡ ਬਲਾਕ ਰੈਪਰ (CBW) ਨਾਮਕ ਢਾਂਚੇ ਰਾਹੀਂ ਭੇਜੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਡੇਟਾ ਟ੍ਰਾਂਸਪੋਰਟ ਦੀ ਲੋੜ ਵਾਲੀਆਂ ਕਮਾਂਡਾਂ ਲਈtage, ਹੋਸਟ CBW ਦੀ ਲੰਬਾਈ ਅਤੇ ਫਲੈਗ ਖੇਤਰਾਂ ਦੁਆਰਾ ਦਰਸਾਏ ਅਨੁਸਾਰ ਡਿਵਾਈਸ ਤੋਂ ਬਾਈਟਾਂ ਦੀ ਸਹੀ ਸੰਖਿਆ ਭੇਜਣ ਜਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੇਗਾ। ਡੇਟਾ ਟ੍ਰਾਂਸਪੋਰਟ ਤੋਂ ਬਾਅਦtage, ਹੋਸਟ ਡਿਵਾਈਸ ਤੋਂ ਇੱਕ ਕਮਾਂਡ ਸਟੇਟਸ ਰੈਪਰ (CSW) ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਜੋ ਕਮਾਂਡ ਦੀ ਸਥਿਤੀ ਦੇ ਨਾਲ-ਨਾਲ ਕਿਸੇ ਵੀ ਡੇਟਾ ਅਵਸ਼ੇਸ਼ (ਜੇਕਰ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

43/174

ਵੱਧview
ਕੋਈ ਵੀ)। ਉਹਨਾਂ ਕਮਾਂਡਾਂ ਲਈ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਡੇਟਾ ਟ੍ਰਾਂਸਪੋਰਟ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈtage, ਹੋਸਟ CBW ਭੇਜਣ ਤੋਂ ਬਾਅਦ ਸਿੱਧਾ CSW ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ। ਪ੍ਰੋਟੋਕੋਲ ਦਾ ਵੇਰਵਾ ਚਿੱਤਰ - MSC ਪ੍ਰੋਟੋਕੋਲ ਵਿੱਚ ਦਿੱਤਾ ਗਿਆ ਹੈ।
ਚਿੱਤਰ - MSC ਪ੍ਰੋਟੋਕੋਲ

ਅੰਤ ਬਿੰਦੂ
ਡਿਵਾਈਸ ਵਾਲੇ ਪਾਸੇ, BOT ਨਿਰਧਾਰਨ ਦੀ ਪਾਲਣਾ ਵਿੱਚ, MSC ਹੇਠ ਲਿਖੇ ਅੰਤ ਬਿੰਦੂਆਂ ਤੋਂ ਬਣਿਆ ਹੈ: ਕੰਟਰੋਲ IN ਅਤੇ OUT ਅੰਤ ਬਿੰਦੂਆਂ ਦਾ ਇੱਕ ਜੋੜਾ ਜਿਸਨੂੰ ਡਿਫਾਲਟ ਅੰਤ ਬਿੰਦੂ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਬਲਕ IN ਅਤੇ OUT ਅੰਤ ਬਿੰਦੂਆਂ ਦਾ ਇੱਕ ਜੋੜਾ।
ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਅੰਤਮ ਬਿੰਦੂਆਂ ਦੇ ਵੱਖ-ਵੱਖ ਉਪਯੋਗਾਂ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ।
ਸਾਰਣੀ - MSC ਅੰਤਮ ਬਿੰਦੂ ਵਰਤੋਂ

ਅੰਤ ਬਿੰਦੂ
ਕੰਟਰੋਲ ਇਨ ਕੰਟਰੋਲ ਆਉਟ ਥੋਕ ਇਨ ਥੋਕ ਆਉਟ

ਦਿਸ਼ਾ
ਡਿਵਾਈਸ ਤੋਂ ਹੋਸਟ ਹੋਸਟ ਤੋਂ ਡਿਵਾਈਸ ਡਿਵਾਈਸ ਤੋਂ ਹੋਸਟ ਹੋਸਟ ਤੋਂ ਡਿਵਾਈਸ

ਵਰਤੋਂ
ਗਣਨਾ ਅਤੇ MSC ਕਲਾਸ-ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ ਗਣਨਾ ਅਤੇ MSC ਕਲਾਸ-ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ CSW ਅਤੇ ਡੇਟਾ ਭੇਜੋ CBW ਅਤੇ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰੋ

ਕਲਾਸ ਬੇਨਤੀਆਂ
MSC BOT ਪ੍ਰੋਟੋਕੋਲ ਲਈ ਦੋ ਪਰਿਭਾਸ਼ਿਤ ਨਿਯੰਤਰਣ ਬੇਨਤੀਆਂ ਹਨ। ਇਹਨਾਂ ਬੇਨਤੀਆਂ ਅਤੇ ਉਹਨਾਂ ਦੇ ਵਰਣਨ ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵਿੱਚ ਵਿਸਤ੍ਰਿਤ ਹਨ।

ਸਾਰਣੀ - ਮਾਸ ਸਟੋਰੇਜ ਕਲਾਸ ਬੇਨਤੀਆਂ

ਕਲਾਸ ਬੇਨਤੀਆਂ
ਥੋਕ-ਓਨਲੀ ਮਾਸ ਸਟੋਰੇਜ ਰੀਸੈੱਟ

ਵਰਣਨ
ਇਹ ਬੇਨਤੀ ਮਾਸ ਸਟੋਰੇਜ ਡਿਵਾਈਸ ਅਤੇ ਇਸਦੇ ਸੰਬੰਧਿਤ ਇੰਟਰਫੇਸ ਨੂੰ ਰੀਸੈਟ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਬੇਨਤੀ ਡਿਵਾਈਸ ਨੂੰ ਅਗਲਾ ਕਮਾਂਡ ਬਲਾਕ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਤਿਆਰ ਕਰਦੀ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

44/174

ਵੱਧview

ਕਲਾਸ ਬੇਨਤੀਆਂ

ਵਰਣਨ

ਵੱਧ ਤੋਂ ਵੱਧ ਪ੍ਰਾਪਤ ਕਰੋ ਇਹ ਬੇਨਤੀ ਡਿਵਾਈਸ ਦੁਆਰਾ ਸਮਰਥਿਤ ਸਭ ਤੋਂ ਵੱਧ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਨੰਬਰ (LUN) ਵਾਪਸ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਉਦਾਹਰਣ ਵਜੋਂampਲੇ, ਏ

LUN

LUN 0 ਅਤੇ LUN 1 ਵਾਲਾ ਯੰਤਰ 1 ਦਾ ਮੁੱਲ ਵਾਪਸ ਕਰੇਗਾ। ਇੱਕ ਸਿੰਗਲ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਵਾਲਾ ਯੰਤਰ 0 ਵਾਪਸ ਕਰੇਗਾ ਜਾਂ

ਬੇਨਤੀ। ਵੱਧ ਤੋਂ ਵੱਧ ਮੁੱਲ ਜੋ ਵਾਪਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ 15 ਹੈ।

ਛੋਟਾ ਕੰਪਿਊਟਰ ਸਿਸਟਮ ਇੰਟਰਫੇਸ SCSI

ਪ੍ਰੋਗਰਾਮਿੰਗ ਇੰਟਰਫੇਸ ਪੱਧਰ 'ਤੇ, MSC ਡਿਵਾਈਸ ਸਟੈਂਡਰਡ ਸਟੋਰੇਜ-ਮੀਡੀਆ ਸੰਚਾਰ ਪ੍ਰੋਟੋਕੋਲਾਂ ਵਿੱਚੋਂ ਇੱਕ ਨੂੰ ਲਾਗੂ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ SCSI ਅਤੇ SFF-8020i (ATAPI)। "ਪ੍ਰੋਗਰਾਮਿੰਗ ਇੰਟਰਫੇਸ" ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਕਿਹੜਾ ਪ੍ਰੋਟੋਕੋਲ ਲਾਗੂ ਕੀਤਾ ਗਿਆ ਹੈ, ਅਤੇ ਹੋਸਟ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਨੂੰ USB ਸਟੋਰੇਜ ਡਿਵਾਈਸ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਲਈ ਢੁਕਵੇਂ ਡਿਵਾਈਸ ਡਰਾਈਵਰ ਨੂੰ ਲੋਡ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। SCSI USB MSC ਸਟੋਰੇਜ ਡਿਵਾਈਸਾਂ ਨਾਲ ਵਰਤਿਆ ਜਾਣ ਵਾਲਾ ਸਭ ਤੋਂ ਆਮ ਪ੍ਰੋਟੋਕੋਲ ਹੈ। ਅਸੀਂ MSC SCSI ਸਬਕਲਾਸ ਲਈ ਇੱਕ ਲਾਗੂਕਰਨ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਾਂ ਜਿਸਨੂੰ ਸਾਡੇ GSDK ਉਪਭੋਗਤਾ ਬਾਕਸ ਤੋਂ ਬਾਹਰ ਵਰਤ ਸਕਦੇ ਹਨ।
SCSI ਕੰਪਿਊਟਰਾਂ ਅਤੇ ਪੈਰੀਫਿਰਲ ਡਿਵਾਈਸਾਂ ਵਿਚਕਾਰ ਸੰਚਾਰ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਮਿਆਰਾਂ ਦਾ ਇੱਕ ਸਮੂਹ ਹੈ। ਇਹਨਾਂ ਮਿਆਰਾਂ ਵਿੱਚ ਕਮਾਂਡਾਂ, ਪ੍ਰੋਟੋਕੋਲ, ਇਲੈਕਟ੍ਰੀਕਲ ਇੰਟਰਫੇਸ ਅਤੇ ਆਪਟੀਕਲ ਇੰਟਰਫੇਸ ਸ਼ਾਮਲ ਹਨ। ਸਟੋਰੇਜ ਡਿਵਾਈਸ ਜੋ ਹੋਰ ਹਾਰਡਵੇਅਰ ਇੰਟਰਫੇਸਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ USB, ਡਿਵਾਈਸ/ਹੋਸਟ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ ਡਿਵਾਈਸ ਦੇ ਸੰਚਾਲਨ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਅਤੇ ਸਟੋਰੇਜ ਮੀਡੀਆ ਵਿੱਚ ਡੇਟਾ ਦੇ ਬਲਾਕਾਂ ਨੂੰ ਟ੍ਰਾਂਸਫਰ ਕਰਨ ਲਈ SCSI ਕਮਾਂਡਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।
SCSI ਕਮਾਂਡਾਂ ਡਿਵਾਈਸ ਕਿਸਮਾਂ ਅਤੇ ਫੰਕਸ਼ਨਾਂ ਦੀ ਇੱਕ ਵਿਸ਼ਾਲ ਸ਼੍ਰੇਣੀ ਨੂੰ ਕਵਰ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ, ਡਿਵਾਈਸਾਂ ਨੂੰ ਇਹਨਾਂ ਕਮਾਂਡਾਂ ਦੇ ਇੱਕ ਉਪ ਸਮੂਹ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਆਮ ਤੌਰ 'ਤੇ, ਬੁਨਿਆਦੀ ਸੰਚਾਰ ਲਈ ਹੇਠ ਲਿਖੀਆਂ ਕਮਾਂਡਾਂ ਜ਼ਰੂਰੀ ਹਨ:
ਪੁੱਛਗਿੱਛ ਪੜ੍ਹਨ ਦੀ ਸਮਰੱਥਾ (10) ਪੜ੍ਹੋ (10) ਬੇਨਤੀ ਸੈਂਸ ਟੈਸਟ ਯੂਨਿਟ ਤਿਆਰ ਲਿਖੋ (10)
ਕੋਰ ਤੋਂ USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਸਰੋਤ ਲੋੜਾਂ

ਹਰ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਫੰਕਸ਼ਨ sl_usbd_msc_add_to_configuration() ਰਾਹੀਂ USB ਸੰਰਚਨਾ ਵਿੱਚ ਇੱਕ MSC ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਦੇ ਹੋ, ਤਾਂ ਹੇਠਾਂ ਦਿੱਤੇ ਸਰੋਤ ਕੋਰ ਤੋਂ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਣਗੇ।

ਸਰੋਤ
ਇੰਟਰਫੇਸ ਵਿਕਲਪਿਕ ਇੰਟਰਫੇਸ ਐਂਡਪੁਆਇੰਟ ਇੰਟਰਫੇਸ ਗਰੁੱਪ

ਮਾਤਰਾ
1 1 2 0

ਧਿਆਨ ਦਿਓ ਕਿ ਉਹ ਨੰਬਰ ਪ੍ਰਤੀ ਸੰਰਚਨਾ ਹਨ। ਆਪਣੇ SL_USBD_INTERFACE_QUANTITY , SL_USBD_ALT_INTERFACE_QUANTITY , SL_USBD_INTERFACE_GROUP_QUANTITY ਅਤੇ SL_USBD_DESCRIPTOR_QUANTITY ਸੰਰਚਨਾ ਮੁੱਲਾਂ ਨੂੰ ਸੈੱਟ ਕਰਦੇ ਸਮੇਂ, ਇਹ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣਾ ਨਾ ਭੁੱਲੋ ਕਿ ਕਲਾਸ ਕਿੰਨੀਆਂ ਸੰਰਚਨਾਵਾਂ ਜੋੜੀਆਂ ਜਾਣਗੀਆਂ। SL_USBD_OPEN_ENDPOINTS_QUANTITY ਸੰਰਚਨਾ ਮੁੱਲ ਲਈ, ਕਿਉਂਕਿ ਅੰਤ ਬਿੰਦੂ ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਖੋਲ੍ਹੇ ਜਾਂਦੇ ਹਨ ਜਦੋਂ ਇੱਕ ਸੰਰਚਨਾ ਹੋਸਟ ਦੁਆਰਾ ਸੈੱਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤੁਹਾਨੂੰ ਸਿਰਫ਼ ਇੱਕ ਕਲਾਸ ਉਦਾਹਰਣ ਲਈ ਲੋੜੀਂਦੇ ਅੰਤ ਬਿੰਦੂਆਂ ਦੀ ਗਿਣਤੀ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣ ਦੀ ਲੋੜ ਹੈ।
USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਕੌਂਫਿਗਰੇਸ਼ਨ

MSC ਕਲਾਸ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਲਈ ਕੌਂਫਿਗਰੇਸ਼ਨ ਪੈਰਾਮੀਟਰਾਂ ਦੇ ਦੋ ਸਮੂਹ ਵਰਤੇ ਜਾਂਦੇ ਹਨ:
USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਐਪਲੀਕੇਸ਼ਨ-ਵਿਸ਼ੇਸ਼ ਸੰਰਚਨਾਵਾਂ USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਸੰਰਚਨਾ
USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਐਪਲੀਕੇਸ਼ਨ-ਵਿਸ਼ੇਸ਼ ਸੰਰਚਨਾਵਾਂ

ਕਲਾਸ ਕੰਪਾਈਲ-ਟਾਈਮ ਕੌਂਫਿਗਰੇਸ਼ਨ ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣਾ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

45/174

ਵੱਧview

ਕਲਾਸ ਕੰਪਾਈਲ-ਟਾਈਮ ਸੰਰਚਨਾਵਾਂ
ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਅਤੇ SCSI ਸਬਕਲਾਸ sl_usbd_core_config.h ਵਿੱਚ ਸਥਿਤ #defines ਰਾਹੀਂ ਕੰਪਾਈਲ ਸਮੇਂ 'ਤੇ ਕੌਂਫਿਗਰ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। file.
ਸਾਰਣੀ - ਆਮ ਸੰਰਚਨਾ ਸਥਿਰਾਂਕ

ਸੰਰਚਨਾ ਦਾ ਨਾਮ

ਵਰਣਨ

SL_USBD_MSC_CLASS_INST ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਰਾਹੀਂ ਤੁਹਾਡੇ ਦੁਆਰਾ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਕਲਾਸ ਉਦਾਹਰਣਾਂ ਦੀ ਗਿਣਤੀ

ANCE_QUANTITY

sl_usbd_msc_scsi_create_instance()।

SL_USBD_MSC_CONFIGURA ਸੰਰਚਨਾ ਦੀ ਸੰਖਿਆ ਜਿਸ ਵਿੱਚ ਇੱਕ ਕਲਾਸ ਇੰਸਟੈਂਸ ਨੂੰ ਕਾਲ ਰਾਹੀਂ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ

TION_QUANTITY

ਫੰਕਸ਼ਨ sl_usbd_msc_scsi_add_to_configuration() .

SL_USBD_MSC_LUN_QUANT ਪ੍ਰਤੀ ਕਲਾਸ ਉਦਾਹਰਣ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟਾਂ ਦੀ ਗਿਣਤੀ ਜੋ ਤੁਸੀਂ ਇੱਕ ਕਾਲ ਰਾਹੀਂ ਜੋੜੋਗੇ

ਆਈ.ਟੀ.ਆਈ.

ਫੰਕਸ਼ਨ sl_usbd_msc_scsi_lun_add() .

SL_USBD_MSC_SCSI_64_BIT 64 ਬਿੱਟਾਂ ਦੇ ਲਾਜੀਕਲ ਬਲਾਕ ਐਡਰੈੱਸ (LBA) ਲਈ ਸਮਰਥਨ ਨੂੰ ਸਮਰੱਥ ਜਾਂ ਅਯੋਗ ਕਰਦਾ ਹੈ।
_ਐਲਬੀਏ_ਈਐਨ

SL_USBD_MSC_DATA_BUFF ਬਾਈਟਾਂ ਵਿੱਚ ਪ੍ਰਤੀ ਕਲਾਸ ਉਦਾਹਰਣ ਡੇਟਾ ਬਫਰ ਦਾ ਆਕਾਰ ER_SIZE

ਪੂਰਵ-ਨਿਰਧਾਰਤ ਮੁੱਲ
2
1
2
0
512

ਕਲਾਸ ਇੰਸਟੈਂਸ ਰਚਨਾ
ਇੱਕ USB ਡਿਵਾਈਸ ਬਣਾਉਣਾ MSC SCSI ਕਲਾਸ ਇੰਸਟੈਂਸ sl_usbd_msc_scsi_create_instance() ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਫੰਕਸ਼ਨ ਇੱਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਆਰਗੂਮੈਂਟ ਲੈਂਦਾ ਹੈ ਜਿਸਦਾ ਵਰਣਨ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ।
p_scsi_ਕਾਲਬੈਕ
p_scsi_callbacks sl_usbd_msc_scsi_callbacks_t ਕਿਸਮ ਦੇ ਇੱਕ ਸੰਰਚਨਾ ਢਾਂਚੇ ਲਈ ਇੱਕ ਪੁਆਇੰਟਰ ਹੈ। ਆਮ USB ਡਿਵਾਈਸ ਕਲਾਸ ਕਾਲਬੈਕ ਕਨੈਕਟ/ਡਿਸਕਨੈਕਟ ਤੋਂ ਇਲਾਵਾ, ਇਹ MSC ਕਲਾਸ ਨੂੰ ਵਿਕਲਪਿਕ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨਾਂ ਦਾ ਇੱਕ ਸੈੱਟ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜੋ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ 'ਤੇ ਇੱਕ ਘਟਨਾ ਵਾਪਰਨ 'ਤੇ ਕਾਲ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਜੇਕਰ ਕਿਸੇ ਕਾਲਬੈਕ ਦੀ ਲੋੜ ਨਾ ਹੋਵੇ ਤਾਂ ਇੱਕ ਨਲ ਪੁਆਇੰਟਰ (NULL) ਇਸ ਆਰਗੂਮੈਂਟ ਨੂੰ ਪਾਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਇਸ ਸੰਰਚਨਾ ਢਾਂਚੇ ਵਿੱਚ ਉਪਲਬਧ ਹਰੇਕ ਸੰਰਚਨਾ ਖੇਤਰ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ।
ਸਾਰਣੀ – sl_usbd_msc_scsi_callbacks_t ਸੰਰਚਨਾ ਢਾਂਚਾ

ਖੇਤਰ

ਵਰਣਨ

.ਯੋਗ ਕਰੋ

USB ਕਲਾਸ ਇੰਸਟੈਂਸ ਸਫਲਤਾਪੂਰਵਕ ਸਮਰੱਥ ਹੋਣ 'ਤੇ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

.disable USB ਕਲਾਸ ਇੰਸਟੈਂਸ ਅਯੋਗ ਹੋਣ 'ਤੇ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

.host_eject ਫੰਕਸ਼ਨ ਉਦੋਂ ਬੁਲਾਇਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਇੱਕ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਹੋਸਟ ਤੋਂ ਬਾਹਰ ਕੱਢਿਆ ਜਾਂਦਾ ਹੈ।

ਫੰਕਸ਼ਨ ਦਸਤਖਤ
ਜ਼ਰੂਰ ਐਪ_ਯੂਐਸਬੀਡੀ_ਐਮਐਸਸੀ_ਐਸਸੀਆਈ_ਏਨੇਬਲ(ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ);
ਜ਼ਰੂਰ ਐਪ_ਯੂਐਸਬੀਡੀ_ਐਮਐਸਸੀ_ਐਸਸੀਆਈ_ਡਿਸਏਬਲ(ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ); ਜ਼ਰੂਰ ਐਪ_ਯੂਐਸਬੀਡੀ_ਐਮਐਸਸੀ_ਐਸਸੀਆਈ_ਹੋਸਟ_ਇਜੈਕਟ(ਯੂਆਈਐਨਟੀ8_ਟੀ ਕਲਾਸ_ਐਨਬੀਆਰ, ਯੂਆਈਐਨਟੀ8_ਟੀ ਲੂ_ਐਨਬੀਆਰ);

USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਕੌਂਫਿਗਰੇਸ਼ਨ

ਇੱਕ MSC ਕਲਾਸ ਇੰਸਟੈਂਸ ਵਿੱਚ ਇੱਕ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਜੋੜਨਾ ਫੰਕਸ਼ਨ sl_usbd_msc_lun_add() ਨੂੰ ਕਾਲ ਕਰਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਫੰਕਸ਼ਨ ਇੱਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਆਰਗੂਮੈਂਟ ਲੈਂਦਾ ਹੈ ਜਿਸਦਾ ਵਰਣਨ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ।

ਪੀ_ਲੂ_ਜਾਣਕਾਰੀ

p_lu_info sl_usbd_msc_scsi_lun_info_t ਕਿਸਮ ਦੀ ਬਣਤਰ ਵੱਲ ਇੱਕ ਪੁਆਇੰਟਰ ਹੈ। ਇਸਦਾ ਉਦੇਸ਼ MSC ਕਲਾਸ ਨੂੰ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰਨਾ ਹੈ।
ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਇਸ ਸੰਰਚਨਾ ਢਾਂਚੇ ਵਿੱਚ ਉਪਲਬਧ ਹਰੇਕ ਸੰਰਚਨਾ ਖੇਤਰ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ।

ਸਾਰਣੀ – sl_usbd_msc_scsi_lun_info_t ਸੰਰਚਨਾ ਢਾਂਚਾ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

46/174

ਵੱਧview

ਖੇਤਰ

ਵਰਣਨ

ਖੇਤਰ
.scsi_lun_api_p ਟ੍ਰ

ਵਰਣਨ
ਮੀਡੀਆ ਡਰਾਈਵਰ API ਵੱਲ ਪੁਆਇੰਟਰ ਜੋ ਇਸ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਨੂੰ ਸੰਭਾਲੇਗਾ। ਸਟੋਰੇਜ ਡਰਾਈਵਰਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਸਟੋਰੇਜ ਡਰਾਈਵਰ ਵੇਖੋ।

.ਵੇਖੋ ਜਾਂ r_id _ p tr
.ਉਤਪਾਦ_ਆਈਡੀ_ਪੀਟੀਆਰ
.p ro d uct_ re v isi on_level .is_ re ad _o nly

ਇੱਕ ਸਤਰ ਵੱਲ ਪੁਆਇੰਟਰ ਜਿਸ ਵਿੱਚ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਦੀ ਵਿਕਰੇਤਾ ਪਛਾਣ ਸ਼ਾਮਲ ਹੈ। ਸਤਰ ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ ਲੰਬਾਈ 8 ਅੱਖਰ ਹੈ। ਇੱਕ ਸਤਰ ਵੱਲ ਪੁਆਇੰਟਰ ਜਿਸ ਵਿੱਚ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਦੀ ਉਤਪਾਦ ਪਛਾਣ ਸ਼ਾਮਲ ਹੈ। ਸਤਰ ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ ਲੰਬਾਈ 16 ਅੱਖਰ ਹੈ। ਉਤਪਾਦ ਸੋਧ ਪੱਧਰ।
ਝੰਡਾ ਜੋ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਕੀ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਨੂੰ ਬਿੰਦੂ ਤੋਂ ਸਿਰਫ਼ ਪੜ੍ਹਨ ਲਈ ਦੇਖਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ view ਹੋਸਟ (ਸੱਚਾ) ਜਾਂ ਨਹੀਂ (ਗਲਤ) ਦਾ।

USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ

ਇਹ ਭਾਗ ਦੱਸਦਾ ਹੈ ਕਿ MSC ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ।
USB ਡਿਵਾਈਸ ਸ਼ੁਰੂ ਕਰਨਾ MSC ਕਲਾਸ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਵਿੱਚ ਇੱਕ USB ਡਿਵਾਈਸ MSC SCSI ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਹੈਂਡਲਿੰਗ
USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਸ਼ੁਰੂ ਕਰਨਾ

ਆਪਣੀ ਡਿਵਾਈਸ ਵਿੱਚ MSC SCSI ਕਲਾਸ ਫੰਕਸ਼ਨੈਲਿਟੀ ਜੋੜਨ ਲਈ, ਪਹਿਲਾਂ ਫੰਕਸ਼ਨ sl_usbd_msc_init() ਅਤੇ sl_usbd_msc_scsi_init() ਨੂੰ ਕਾਲ ਕਰਕੇ MSC ਬੇਸ ਕਲਾਸ ਅਤੇ SCSI ਸਬਕਲਾਸ ਨੂੰ ਸ਼ੁਰੂ ਕਰੋ।
ਸਾਬਕਾampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ sl_usbd_msc_init() ਅਤੇ sl_usbd_msc_scsi_init() ਨੂੰ ਕਿਵੇਂ ਕਾਲ ਕਰਨਾ ਹੈ।

Example – sl_usbd_msc_init() ਅਤੇ sl_usbd_msc_scsi_init() ਨੂੰ ਕਾਲ ਕਰਨਾ

sl_status_t ਸਥਿਤੀ;
status = sl_usbd_msc_init(); ਜੇਕਰ (status ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */
}
ਸਥਿਤੀ = sl_usbd_msc_scsi_init(); ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */
}
ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਵਿੱਚ ਇੱਕ USB ਡਿਵਾਈਸ MSC SCSI ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ
ਆਪਣੀ ਡਿਵਾਈਸ ਵਿੱਚ MSC SCSI ਕਲਾਸ ਫੰਕਸ਼ਨੈਲਿਟੀ ਜੋੜਨ ਲਈ, ਪਹਿਲਾਂ ਇੱਕ ਇੰਸਟੈਂਸ ਬਣਾਓ, ਫਿਰ ਇਸਨੂੰ ਆਪਣੀ ਡਿਵਾਈਸ ਦੇ ਕੌਂਫਿਗਰੇਸ਼ਨ(ਆਂ) ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ। ਤੁਹਾਨੂੰ ਆਪਣੇ ਇੰਸਟੈਂਸ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਜੋੜਨਾ ਚਾਹੀਦਾ ਹੈ।
ਇੱਕ MSC SCSI ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣਾ
ਫੰਕਸ਼ਨ sl_usbd_msc_scsi_create_instance() ਨੂੰ ਕਾਲ ਕਰਕੇ ਇੱਕ MSC SCSI ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਓ।
ਸਾਬਕਾampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ ਡਿਫਾਲਟ ਆਰਗੂਮੈਂਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ sl_usbd_msc_scsi_create_instance() ਨੂੰ ਕਿਵੇਂ ਕਾਲ ਕਰਨਾ ਹੈ। sl_usbd_msc_scsi_create_instance() ਨੂੰ ਪਾਸ ਕਰਨ ਲਈ ਸੰਰਚਨਾ ਆਰਗੂਮੈਂਟਾਂ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਐਪਲੀਕੇਸ਼ਨ ਸਪੈਸੀਫਿਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਵੇਖੋ।
Example – sl_usbd_ msc_scsi_create_instance() ਨੂੰ ਕਾਲ ਕਰਨਾ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

47/174

ਵੱਧview

uint8_t ਕਲਾਸ_ਐਨਬੀਆਰ; sl_ਸਟੇਟਸ_ਟੀ ਸਥਿਤੀ;
sl_usbd_msc_scsi_callbacks_t ਐਪ_usbd_msc_scsi_callbacks = { .ਯੋਗ = ਖਾਲੀ, .ਅਯੋਗ = ਖਾਲੀ, .ਹੋਸਟ_ਇਜੈਕਟ = ਖਾਲੀ };
ਸਥਿਤੀ = sl_usbd_msc_scsi_create_instance(&app_usbd_msc_scsi_callbacks,0 &class_nbr);
ਜੇਕਰ (status ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */ }
ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਦੇ ਸੰਰਚਨਾ(ਆਂ) ਵਿੱਚ MSC ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ
ਇੱਕ MSC ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਇਸਨੂੰ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਕੇ ਇੱਕ ਸੰਰਚਨਾ ਵਿੱਚ ਜੋੜ ਸਕਦੇ ਹੋ
sl_usbd_msc_ਸੰਰਚਨਾ ਵਿੱਚ_ਜੋੜੋ()।
ਸਾਬਕਾampਹੇਠਾਂ ਦਿਖਾਓ ਕਿ ਡਿਫਾਲਟ ਆਰਗੂਮੈਂਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ sl_usbd_msc_scsi_add_to_configuration() ਨੂੰ ਕਿਵੇਂ ਕਾਲ ਕਰਨਾ ਹੈ।
Example – sl_usbd_ msc_scsi_add_to_configuration() ਨੂੰ ਕਾਲ ਕਰਨਾ

sl_status_t ਸਥਿਤੀ;

ਸਥਿਤੀ = sl_usbd_msc_scsi_add_to_configuration(class_nbr,

(1)

ਸੰਰਚਨਾ_ਐਨਬੀਆਰ_ਐਫਐਸ);

(2)

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਸੰਭਾਲਣ ਨੂੰ ਇੱਥੇ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। */

}

(1) sl_usbd_msc_scsi_create_instance() ਦੁਆਰਾ ਵਾਪਸ ਕੀਤੀ ਗਈ ਸੰਰਚਨਾ ਵਿੱਚ ਜੋੜਨ ਲਈ ਕਲਾਸ ਨੰਬਰ। (32) ਸੰਰਚਨਾ ਨੰਬਰ (ਇੱਥੇ ਇਸਨੂੰ ਇੱਕ ਫੁੱਲ-ਸਪੀਡ ਸੰਰਚਨਾ ਵਿੱਚ ਜੋੜਨਾ)।
USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਹੈਂਡਲਿੰਗ
ਇੱਕ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਜੋੜਨਾ ਇੱਕ ਸਟੋਰੇਜ ਮਾਧਿਅਮ ਨੂੰ ਜੋੜਨਾ/ਵੱਖ ਕਰਨਾ
ਇੱਕ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਜੋੜਨਾ
ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੇ MSC SCSI ਕਲਾਸ ਇੰਸਟੈਂਸ ਵਿੱਚ ਇੱਕ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਜੋੜਦੇ ਹੋ, ਤਾਂ ਇਸਨੂੰ ਇੱਕ ਸਟੋਰੇਜ ਮਾਧਿਅਮ (RAMDisk, SD ਕਾਰਡ, ਫਲੈਸ਼ ਮੈਮੋਰੀ, ਆਦਿ) ਨਾਲ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। MSC ਕਲਾਸ ਸਟੋਰੇਜ ਮੀਡੀਆ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਲਈ ਇੱਕ ਸਟੋਰੇਜ ਡਰਾਈਵਰ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਜੋੜਦੇ ਸਮੇਂ ਇਸ ਡਰਾਈਵਰ ਨੂੰ ਸਪਲਾਈ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ।
ਸਾਬਕਾampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ sl_usbd_msc_scsi_lun_add() ਰਾਹੀਂ ਇੱਕ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਕਿਵੇਂ ਜੋੜਨਾ ਹੈ।
Example – sl_usbd_msc_scsi_lun_add() ਰਾਹੀਂ ਇੱਕ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਜੋੜਨਾ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

48/174

ਵੱਧview

sl_usbd_msc_scsi_lun_t *lu_object_ptr = ਖਾਲੀ;

sl_usbd_msc_scsi_lun_info_t lu_info;

sl_status_t ਵੱਲੋਂ ਹੋਰ

ਸਥਿਤੀ;

lu_info.sl_usbd_msc_scsi_lun_api_t = &ਐਪ_usbd_scsi_ਸਟੋਰੇਜ_ਬਲਾਕ_ਡਿਵਾਈਸ_api;

lu_info.vendor_id_ptr ਵੱਲੋਂ ਹੋਰ

= “ਸਿਲੀਕਾਨ ਲੈਬਜ਼”;

lu_info.product_id_ptr ਵੱਲੋਂ ਹੋਰ

= “ਬਲਾਕ ਡਿਵਾਈਸ ਐਕਸampਲੇ”;

lu_info.product_revision_level = 0x1000u;

lu_info.is_read_only ਵੱਲੋਂ ਹੋਰ

= ਗਲਤ;

ਸਥਿਤੀ = sl_usbd_msc_scsi_lun_add(class_nbr, &lu_info, &lu_object_ptr);
ਜੇਕਰ (status ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */ }

ਸਟੋਰੇਜ ਮਾਧਿਅਮ ਨੂੰ ਜੋੜਨਾ/ਵੱਖ ਕਰਨਾ
ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਜੋੜਨ ਤੋਂ ਬਾਅਦ, ਹੋਸਟ ਸਾਈਡ ਤੋਂ ਉਪਲਬਧ ਹੋਣ ਲਈ ਇੱਕ ਸਟੋਰੇਜ ਮਾਧਿਅਮ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। MSC ਕਲਾਸ ਲਾਜ਼ੀਕਲ ਯੂਨਿਟ ਨਾਲ ਸਟੋਰੇਜ ਮੀਡੀਆ ਐਸੋਸੀਏਸ਼ਨ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਦੋ ਫੰਕਸ਼ਨ ਪੇਸ਼ ਕਰਦਾ ਹੈ: sl_usbd_msc_scsi_lun_attach() ਅਤੇ sl_usbd_msc_scsi_lun_detach()। ਇਹ ਫੰਕਸ਼ਨ ਤੁਹਾਨੂੰ ਲੋੜ ਪੈਣ 'ਤੇ ਏਮਬੈਡਡ ਐਪਲੀਕੇਸ਼ਨ ਤੋਂ ਐਕਸੈਸ ਦੁਬਾਰਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਟੋਰੇਜ ਡਿਵਾਈਸ ਨੂੰ ਹਟਾਉਣ ਦੀ ਨਕਲ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ।
ਸਾਬਕਾampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ ਫੰਕਸ਼ਨ sl_usbd_msc_scsi_lun_attach() ਅਤੇ sl_usbd_msc_scsi_lun_detach() ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ।
Example – ਮੀਡੀਆ ਅਟੈਚ/ਡੀਟੈਚ

sl_status_t ਸਥਿਤੀ;

ਸਥਿਤੀ = sl_usbd_msc_scsi_lun_attach(lu_object_ptr); ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */
}

(1)

ਸਥਿਤੀ = sl_usbd_msc_scsi_lun_detach(lu_object_ptr); ਜੇਕਰ (ਸਥਿਤੀ ! SL_STATUS_OK) {
/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਸੰਭਾਲਣ ਨੂੰ ਇੱਥੇ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। */
}

(2)

ਸਥਿਤੀ = sl_usbd_msc_scsi_lun_attach(lu_object_ptr) ਜੇਕਰ (ਸਥਿਤੀ ! SL_STATUS_OK) {
/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਸੰਭਾਲਣ ਨੂੰ ਇੱਥੇ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। */
}

(3)

(1) ਇਸ ਪਲ ਤੋਂ, ਜੇਕਰ MSC ਡਿਵਾਈਸ ਇੱਕ ਹੋਸਟ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ, ਤਾਂ ਸਟੋਰੇਜ ਮੀਡੀਆ ਪਹੁੰਚਯੋਗ ਹੈ।
(2) ਜੇਕਰ MSC ਡਿਵਾਈਸ ਕਿਸੇ ਹੋਸਟ ਨਾਲ ਜੁੜੀ ਹੋਈ ਹੈ, ਤਾਂ ਮੀਡੀਆ ਹੁਣ ਅਣਉਪਲਬਧ ਦਿਖਾਈ ਦੇਵੇਗਾ। ਇਸ ਸਮੇਂ, ਏਮਬੈਡਡ ਐਪਲੀਕੇਸ਼ਨ ਤੋਂ ਮੀਡੀਆ 'ਤੇ ਓਪਰੇਸ਼ਨ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ।
(3) ਦੁਬਾਰਾ, ਜੇਕਰ MSC ਡਿਵਾਈਸ ਹੋਸਟ ਨਾਲ ਜੁੜੀ ਹੋਈ ਹੈ, ਤਾਂ ਸਟੋਰੇਜ ਮੀਡੀਆ ਕਨੈਕਟਡ ਦਿਖਾਈ ਦੇਵੇਗਾ।
USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਸਟੋਰੇਜ ਡਰਾਈਵਰ
USB ਡਿਵਾਈਸ MSC ਕਲਾਸ ਨੂੰ ਸਟੋਰੇਜ ਮਾਧਿਅਮ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਲਈ ਇੱਕ ਸਟੋਰੇਜ ਡਰਾਈਵਰ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਸ ਸਮੇਂ, ਸਿਲੀਕਾਨ ਲੈਬਜ਼ ਡਰਾਈਵਰਾਂ ਦੀ ਪੇਸ਼ਕਸ਼ ਨਹੀਂ ਕਰਦੀ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

49/174

ਵੱਧview
TPY aa he ਡਰਾਈਵਰ AI ਨੂੰ typedef sl_usbd_msc_scsi_lun_api_t ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਤੁਸੀਂ sl_usbd_msc_scsi_lun_add() ਨਾਲ dd logic l ਯੂਨਿਟ ਯੂਨਿਟ ਕਰਦੇ ਹੋ ਤਾਂ ਸਾਡੇ sl_usbd_msc_scsi_lun_api_t v rible ਨੂੰ ਤੁਹਾਡੇ sl_usbd_msc_scsi_lun_info_t v rible, pssed srgument ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਢਾਂਚਿਆਂ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ ਭਾਗ USB ਡਿਵਾਈਸ MSC SCSI API ਵੇਖੋ। ਸਟੋਰੇਜ ਡਰਾਈਵਰ ਲਾਗੂਕਰਨ RAM ਵਿੱਚ ਸੈਕਟਰਾਂ ਦੀ ਇੱਕ ਐਰੇ ਵਾਂਗ ਸਰਲ ਹੋ ਸਕਦਾ ਹੈ। ਆਮ ਸੈਕਟਰ ਆਕਾਰ (ਭਾਵ, ਬਲਾਕ ਆਕਾਰ) ਮਾਸ ਸਟੋਰੇਜ ਡਿਵਾਈਸਾਂ ਲਈ 512 ਹੈ, ਅਤੇ CD-ROM ਲਈ 2048 ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

50/174

ਵੱਧview
ਵੱਧview
USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ
USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਓਵਰview USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਸਰੋਤ ਲੋੜਾਂ ਕੋਰ USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਸੰਰਚਨਾ USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ ਵਿਕਰੇਤਾ ਕਲਾਸ ਤੁਹਾਨੂੰ ਵਿਕਰੇਤਾ-ਵਿਸ਼ੇਸ਼ ਡਿਵਾਈਸਾਂ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ ਜੋ ਇੱਕ ਮਲਕੀਅਤ ਪ੍ਰੋਟੋਕੋਲ ਨੂੰ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹਨ। ਇਹ ਹੋਸਟ ਅਤੇ ਡਿਵਾਈਸ ਵਿਚਕਾਰ ਡੇਟਾ ਟ੍ਰਾਂਸਫਰ ਕਰਨ ਲਈ ਬਲਕ ਐਂਡਪੁਆਇੰਟਸ ਦੀ ਇੱਕ ਜੋੜੀ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਬਲਕ ਟ੍ਰਾਂਸਫਰ ਵੱਡੀ ਮਾਤਰਾ ਵਿੱਚ ਗੈਰ-ਸੰਗਠਿਤ ਡੇਟਾ ਟ੍ਰਾਂਸਫਰ ਕਰਨ ਲਈ ਸੁਵਿਧਾਜਨਕ ਹਨ ਅਤੇ ਇੱਕ ਗਲਤੀ ਖੋਜ ਅਤੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਡੇਟਾ ਦਾ ਇੱਕ ਭਰੋਸੇਯੋਗ ਆਦਾਨ-ਪ੍ਰਦਾਨ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ। ਬਲਕ ਐਂਡਪੁਆਇੰਟਸ ਤੋਂ ਇਲਾਵਾ, ਵਿਕਰੇਤਾ ਕਲਾਸ ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟਸ ਦੀ ਇੱਕ ਵਿਕਲਪਿਕ ਜੋੜੀ ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦੀ ਹੈ। ਕੋਈ ਵੀ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ (OS) ਵਿਕਰੇਤਾ ਕਲਾਸ ਨਾਲ ਕੰਮ ਕਰ ਸਕਦਾ ਹੈ ਬਸ਼ਰਤੇ ਕਿ OS ਕੋਲ ਵਿਕਰੇਤਾ ਕਲਾਸ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਇੱਕ ਡਰਾਈਵਰ ਹੋਵੇ। OS 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹੋਏ, ਡਰਾਈਵਰ ਮੂਲ ਜਾਂ ਵਿਕਰੇਤਾ-ਵਿਸ਼ੇਸ਼ ਹੋ ਸਕਦਾ ਹੈ। ਉਦਾਹਰਣ ਵਜੋਂ, Microsoft Windows® ਦੇ ਅਧੀਨ, ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਵਿਕਰੇਤਾ ਡਿਵਾਈਸ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਲਈ Microsoft ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ WinUSB ਡਰਾਈਵਰ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਦੀ ਹੈ।
USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਓਵਰview
ਚਿੱਤਰ - ਵਿੰਡੋਜ਼ ਹੋਸਟ ਅਤੇ ਵੈਂਡਰ ਕਲਾਸ ਵਿਚਕਾਰ ਜਨਰਲ ਆਰਕੀਟੈਕਚਰ ਵੈਂਡਰ ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਹੋਸਟ ਅਤੇ ਡਿਵਾਈਸ ਵਿਚਕਾਰ ਜਨਰਲ ਆਰਕੀਟੈਕਚਰ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਸ ਉਦਾਹਰਣ ਵਿੱਚampਹਾਂ, ਹੋਸਟ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਐਮਐਸ ਵਿੰਡੋਜ਼ ਹੈ।
ਚਿੱਤਰ - ਐਮਐਸ ਵਿੰਡੋਜ਼ ਹੋਸਟ ਅਤੇ ਵਿਕਰੇਤਾ ਕਲਾਸ ਵਿਚਕਾਰ ਆਮ ਆਰਕੀਟੈਕਚਰ

ਐਮਐਸ ਵਿੰਡੋਜ਼ ਵਾਲੇ ਪਾਸੇ, ਐਪਲੀਕੇਸ਼ਨ ਇੱਕ USB ਲਾਇਬ੍ਰੇਰੀ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਕੇ ਵਿਕਰੇਤਾ ਡਿਵਾਈਸ ਨਾਲ ਸੰਚਾਰ ਕਰਦੀ ਹੈ। ਲਾਇਬ੍ਰੇਰੀਆਂ, ਜਿਵੇਂ ਕਿ libusb, ਇੱਕ ਡਿਵਾਈਸ ਅਤੇ ਇਸਦੇ ਸੰਬੰਧਿਤ ਪਾਈਪਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ, ਅਤੇ ਕੰਟਰੋਲ, ਬਲਕ ਅਤੇ ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟਸ ਦੁਆਰਾ ਡਿਵਾਈਸ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਲਈ ਇੱਕ API ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦੀਆਂ ਹਨ।
ਡਿਵਾਈਸ ਵਾਲੇ ਪਾਸੇ, ਵਿਕਰੇਤਾ ਕਲਾਸ ਹੇਠ ਲਿਖੇ ਅੰਤਮ ਬਿੰਦੂਆਂ ਤੋਂ ਬਣੀ ਹੈ:
ਕੰਟਰੋਲ IN ਅਤੇ OUT ਐਂਡਪੁਆਇੰਟਸ ਦੀ ਇੱਕ ਜੋੜੀ ਜਿਸਨੂੰ ਡਿਫਾਲਟ ਐਂਡਪੁਆਇੰਟ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਬਲਕ IN ਅਤੇ OUT ਐਂਡਪੁਆਇੰਟਸ ਦੀ ਇੱਕ ਜੋੜੀ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

51/174

ਵੱਧview

ਇੰਟਰੱਪਟ IN ਅਤੇ OUT ਐਂਡਪੁਆਇੰਟਸ ਦਾ ਇੱਕ ਜੋੜਾ। ਇਹ ਜੋੜਾ ਵਿਕਲਪਿਕ ਹੈ। ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵੱਖ-ਵੱਖ ਐਂਡਪੁਆਇੰਟਸ ਦੀ ਵਰਤੋਂ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ:
ਸਾਰਣੀ - ਵਿਕਰੇਤਾ ਕਲਾਸ ਅੰਤਮ ਬਿੰਦੂਆਂ ਦੀ ਵਰਤੋਂ

ਅੰਤਮ ਬਿੰਦੂ ਦਿਸ਼ਾ

ਕੰਟਰੋਲ IN
ਕੰਟਰੋਲ
ਬਾਹਰ
ਥੋਕ IN

ਡਿਵਾਈਸ-ਟੂ-ਹੋਸਟ
> ਹੋਸਟ-ਟੂਡਿਵਾਈਸ
ਡਿਵਾਈਸ-ਟੂ-ਹੋਸਟ

ਥੋਕ ਆਊਟ
ਇੰਟਰੱਪਟ IN
ਰੁਕਾਵਟ
ਬਾਹਰ

ਹੋਸਟ-ਟੂਡਿਵਾਈਸ
ਡਿਵਾਈਸ-ਟੂ-ਹੋਸਟ
ਹੋਸਟ-ਟੂਡਿਵਾਈਸ

ਵਰਤੋਂ
ਗਣਨਾ ਅਤੇ ਵਿਕਰੇਤਾ-ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ ਲਈ ਮਿਆਰੀ ਬੇਨਤੀਆਂ।
ਗਣਨਾ ਅਤੇ ਵਿਕਰੇਤਾ-ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ ਲਈ ਮਿਆਰੀ ਬੇਨਤੀਆਂ।
ਕੱਚਾ ਡਾਟਾ ਸੰਚਾਰ। ਡੇਟਾ ਨੂੰ ਇੱਕ ਮਲਕੀਅਤ ਪ੍ਰੋਟੋਕੋਲ ਦੇ ਅਨੁਸਾਰ ਸੰਰਚਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਕੱਚਾ ਡਾਟਾ ਸੰਚਾਰ। ਡੇਟਾ ਨੂੰ ਇੱਕ ਮਲਕੀਅਤ ਪ੍ਰੋਟੋਕੋਲ ਦੇ ਅਨੁਸਾਰ ਸੰਰਚਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਕੱਚਾ ਡਾਟਾ ਸੰਚਾਰ ਜਾਂ ਸੂਚਨਾ। ਡੇਟਾ ਨੂੰ ਇੱਕ ਮਲਕੀਅਤ ਪ੍ਰੋਟੋਕੋਲ ਦੇ ਅਨੁਸਾਰ ਢਾਂਚਾਬੱਧ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਕੱਚਾ ਡਾਟਾ ਸੰਚਾਰ ਜਾਂ ਸੂਚਨਾ। ਡੇਟਾ ਨੂੰ ਇੱਕ ਮਲਕੀਅਤ ਪ੍ਰੋਟੋਕੋਲ ਦੇ ਅਨੁਸਾਰ ਢਾਂਚਾਬੱਧ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।

ਡਿਵਾਈਸ ਐਪਲੀਕੇਸ਼ਨ ਹੋਸਟ ਨੂੰ ਜਾਂ ਉਸ ਤੋਂ ਡੇਟਾ ਭੇਜਣ ਜਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਬਲਕ ਅਤੇ ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟਸ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੀ ਹੈ। ਇਹ ਹੋਸਟ ਦੁਆਰਾ ਭੇਜੀਆਂ ਗਈਆਂ ਵਿਕਰੇਤਾ-ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ ਨੂੰ ਡੀਕੋਡ ਕਰਨ ਲਈ ਸਿਰਫ ਡਿਫੌਲਟ ਐਂਡਪੁਆਇੰਟ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੀ ਹੈ। ਸਟੈਂਡਰਡ ਬੇਨਤੀਆਂ ਨੂੰ ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਦੀ ਕੋਰ ਲੇਅਰ ਦੁਆਰਾ ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਕੋਰ ਤੋਂ USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਸਰੋਤ ਲੋੜਾਂ

ਹਰ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਫੰਕਸ਼ਨ sl_usbd_vendor_add_to_configuration() ਰਾਹੀਂ ਕਿਸੇ ਸੰਰਚਨਾ ਵਿੱਚ ਇੱਕ ਵਿਕਰੇਤਾ ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਦੇ ਹੋ, ਤਾਂ ਹੇਠਾਂ ਦਿੱਤੇ ਸਰੋਤ ਕੋਰ ਤੋਂ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਣਗੇ।

ਸਰੋਤ
ਇੰਟਰਫੇਸ ਵਿਕਲਪਿਕ ਇੰਟਰਫੇਸ ਐਂਡਪੁਆਇੰਟ ਇੰਟਰਫੇਸ ਗਰੁੱਪ

ਮਾਤਰਾ
1 1 2 (4 ਜੇਕਰ ਤੁਸੀਂ ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟਸ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਹੈ) 0

ਧਿਆਨ ਦਿਓ ਕਿ ਉਹ ਨੰਬਰ ਪ੍ਰਤੀ ਸੰਰਚਨਾ ਹਨ। ਆਪਣੇ SL_USBD_INTERFACE_QUANTITY , SL_USBD_ALT_INTERFACE_QUANTITY , SL_USBD_INTERFACE_GROUP_QUANTITY ਅਤੇ SL_USBD_DESCRIPTOR_QUANTITY ਸੰਰਚਨਾ ਮੁੱਲਾਂ ਨੂੰ ਸੈੱਟ ਕਰਦੇ ਸਮੇਂ, ਇਹ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣਾ ਨਾ ਭੁੱਲੋ ਕਿ ਕਲਾਸ ਕਿੰਨੀਆਂ ਸੰਰਚਨਾਵਾਂ ਜੋੜੀਆਂ ਜਾਣਗੀਆਂ। SL_USBD_OPEN_ENDPOINTS_QUANTITY ਸੰਰਚਨਾ ਮੁੱਲ ਲਈ, ਕਿਉਂਕਿ ਅੰਤ ਬਿੰਦੂ ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਖੋਲ੍ਹੇ ਜਾਂਦੇ ਹਨ ਜਦੋਂ ਇੱਕ ਸੰਰਚਨਾ ਹੋਸਟ ਦੁਆਰਾ ਸੈੱਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤੁਹਾਨੂੰ ਸਿਰਫ਼ ਇੱਕ ਕਲਾਸ ਉਦਾਹਰਣ ਲਈ ਲੋੜੀਂਦੇ ਅੰਤ ਬਿੰਦੂਆਂ ਦੀ ਗਿਣਤੀ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣ ਦੀ ਲੋੜ ਹੈ।
USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਸੰਰਚਨਾ

ਵਿਕਰੇਤਾ ਕਲਾਸ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਲਈ ਕੌਂਫਿਗਰੇਸ਼ਨ ਪੈਰਾਮੀਟਰਾਂ ਦੇ ਦੋ ਸਮੂਹ ਵਰਤੇ ਜਾਂਦੇ ਹਨ:
USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਐਪਲੀਕੇਸ਼ਨ-ਵਿਸ਼ੇਸ਼ ਸੰਰਚਨਾਵਾਂ USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਇੰਸਟੈਂਸ ਸੰਰਚਨਾਵਾਂ
USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਐਪਲੀਕੇਸ਼ਨ-ਵਿਸ਼ੇਸ਼ ਸੰਰਚਨਾਵਾਂ
ਪਹਿਲਾਂ, ਸਿਲੀਕਾਨ ਲੈਬਜ਼ USB ਡਿਵਾਈਸ ਵੈਂਡਰ ਕਲਾਸ ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਆਪਣੀ ਐਪਲੀਕੇਸ਼ਨ ਜ਼ਰੂਰਤਾਂ ਦੇ ਅਨੁਸਾਰ ਪਰਿਭਾਸ਼ਿਤ ਵੈਂਡਰ ਕੰਪਾਈਲ-ਟਾਈਮ ਕੌਂਫਿਗਰੇਸ਼ਨ ਨੂੰ ਐਡਜਸਟ ਕਰੋ। ਉਹਨਾਂ ਨੂੰ sl_usbd_core_config.h ਹੈਡਰ ਦੇ ਅੰਦਰ ਦੁਬਾਰਾ ਇਕੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। file ਵਿਕਰੇਤਾ ਭਾਗ ਦੇ ਅਧੀਨ। ਮਾਤਰਾ ਸੰਰਚਨਾ ਦਾ ਉਦੇਸ਼ USB ਡਿਵਾਈਸ ਮੋਡੀਊਲ ਨੂੰ ਇਹ ਦੱਸਣਾ ਹੈ ਕਿ ਕਿੰਨੇ USB ਵਿਕਰੇਤਾ ਵਸਤੂਆਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨਾ ਹੈ।
ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਹਰੇਕ ਸੰਰਚਨਾ ਪਰਿਭਾਸ਼ਿਤ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

52/174

ਵੱਧview

ਸਾਰਣੀ - USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਸੰਰਚਨਾ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੀ ਹੈ

ਸੰਰਚਨਾ ਦਾ ਨਾਮ

ਵਰਣਨ

ਪੂਰਵ-ਨਿਰਧਾਰਤ ਮੁੱਲ

SL_USBD_VENDOR_CLASS_INSTANCE_QUANTITY 2 ਫੰਕਸ਼ਨ sl_usbd_vendor_create_instance() ਨੂੰ ਕਾਲ ਰਾਹੀਂ ਤੁਹਾਡੇ ਦੁਆਰਾ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਕਲਾਸ ਉਦਾਹਰਣਾਂ ਦੀ ਗਿਣਤੀ।

SL_USBD_VENDOR_CONFIGURATION_QUANTITY ਸੰਰਚਨਾਵਾਂ ਦੀ ਗਿਣਤੀ। ਵਿਕਰੇਤਾ ਕਲਾਸ ਉਦਾਹਰਣਾਂ ਨੂੰ ਫੰਕਸ਼ਨ sl_usbd_vendor_add_to_configuration() ਤੇ ਕਾਲ ਰਾਹੀਂ ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ ਸੰਰਚਨਾਵਾਂ ਵਿੱਚ 1 ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ।

USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਇੰਸਟੈਂਸ ਕੌਂਫਿਗਰੇਸ਼ਨ

ਇਹ ਭਾਗ ਵਿਕਰੇਤਾ ਕਲਾਸ ਉਦਾਹਰਣਾਂ ਨਾਲ ਸਬੰਧਤ ਸੰਰਚਨਾਵਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ।
ਕਲਾਸ ਇੰਸਟੈਂਸ ਰਚਨਾ intr_en ਅੰਤਰਾਲ p_vendor_callbacks
ਕਲਾਸ ਇੰਸਟੈਂਸ ਰਚਨਾ

ਇੱਕ ਵੈਂਡਰ ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣਾ ਫੰਕਸ਼ਨ sl_usbd_vendor_create_instance() ਨੂੰ ਕਾਲ ਕਰਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜੋ ਕਿ ਹੇਠਾਂ ਦੱਸੇ ਗਏ ਤਿੰਨ ਕੌਂਫਿਗਰੇਸ਼ਨ ਆਰਗੂਮੈਂਟ ਲੈਂਦਾ ਹੈ।

ਇੰਟਰ_ਐਨ
ਬੂਲੀਅਨ ਜੋ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਕੀ ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟਸ ਦਾ ਇੱਕ ਜੋੜਾ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ ਜਾਂ ਨਹੀਂ।

ਮੁੱਲ
ਸੱਚ ਝੂਠ

ਵਰਣਨ
ਏਮਬੈਡਡ ਐਪਲੀਕੇਸ਼ਨ ਲਈ IN/OUT ਐਂਡਪੁਆਇੰਟਸ ਦਾ ਇੱਕ ਜੋੜਾ ਜੋੜਿਆ ਜਾਵੇਗਾ ਅਤੇ ਉਪਲਬਧ ਕਰਵਾਇਆ ਜਾਵੇਗਾ। ਕੋਈ ਵੀ ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟ ਨਹੀਂ ਜੋੜਿਆ ਜਾਵੇਗਾ। ਸਿਰਫ਼ ਬਲਕ IN/OUT ਐਂਡਪੁਆਇੰਟ ਦਾ ਇੱਕ ਜੋੜਾ ਉਪਲਬਧ ਹੋਵੇਗਾ।

ਅੰਤਰਾਲ
ਜੇਕਰ ਤੁਸੀਂ intr_en ਨੂੰ true ਤੇ ਸੈੱਟ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟ ਪੋਲਿੰਗ ਅੰਤਰਾਲ (ਮਿਲੀਸਕਿੰਟਾਂ ਵਿੱਚ) ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੇ ਹੋ। ਜੇਕਰ ਤੁਸੀਂ intr_en ਨੂੰ false ਤੇ ਸੈੱਟ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਅੰਤਰਾਲ ਨੂੰ 0 ਤੇ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ ਕਿਉਂਕਿ ਇਸਨੂੰ ਕਲਾਸ ਦੁਆਰਾ ਅਣਡਿੱਠਾ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ।
ਪੀ_ਵਿਕਰੇਤਾ_ਕਾਲਬੈਕ
p_vendor_callbacks ਇੱਕ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨ ਸਟ੍ਰਕਚਰ ਵੇਰੀਏਬਲ ਵੱਲ ਇੱਕ ਪੁਆਇੰਟਰ ਹੈ। ਜਿਸਨੂੰ ਤੁਸੀਂ ਕਲਾਸ ਵਿਸ਼ੇਸ਼ ਨਿਯੰਤਰਣ ਬੇਨਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੇ ਹੋ। ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਕਲਾਸ ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰਦੇ ਹੋ ਜਾਂ ਸੂਚਨਾ ਨੂੰ ਸਮਰੱਥ/ਅਯੋਗ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਇਸਨੂੰ NULL ਤੇ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ।
ਸਾਬਕਾampਹੇਠਾਂ ਤੁਹਾਡੇ ਕਲਾਸ ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀਆਂ ਹੈਂਡਲਰ ਦੇ ਸੰਭਾਵਿਤ ਦਸਤਖਤ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
Example – ਕਲਾਸ-ਵਿਸ਼ੇਸ਼ ਬੇਨਤੀ ਫੰਕਸ਼ਨ ਦੇ ਦਸਤਖਤ

ਵੋਇਡ ਐਪ_ਯੂਐਸਬੀਡੀ_ਵਿਕਰੇਤਾ_ਰੀਕਿਊ_ਹੈਂਡਲ(uint8_t

ਕਲਾਸ_ਐਨਬੀਆਰ, (1)

ਕਾਂਸਟ sl_usbd_setup_req_t *p_setup_req); (2)

sl_usbd_vendor_callbacks_t ਐਪ_usbd_vendor_callback_functions =
{
.enable = NULL, .disable = NULL, .setup_req = app_usbd_vendor_req_handle,
};

(1) ਵਿਕਰੇਤਾ ਕਲਾਸ ਉਦਾਹਰਣ ਨੰਬਰ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

53/174

ਵੱਧview

(2) ਹੋਸਟ ਤੋਂ ਪ੍ਰਾਪਤ ਸੈੱਟਅੱਪ ਬੇਨਤੀ ਵੱਲ ਇਸ਼ਾਰਾ।
USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ
ਇਹ ਭਾਗ ਦੱਸਦਾ ਹੈ ਕਿ ਵਿਕਰੇਤਾ ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ। USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਸ਼ੁਰੂ ਕਰਨਾ ਆਪਣੇ ਡਿਵਾਈਸ ਵਿੱਚ ਇੱਕ USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਚਾਰ ਕਰਨਾ
USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਸ਼ੁਰੂ ਕਰਨਾ
ਆਪਣੀ ਡਿਵਾਈਸ ਵਿੱਚ ਵੈਂਡਰ ਕਲਾਸ ਫੰਕਸ਼ਨੈਲਿਟੀ ਜੋੜਨ ਲਈ, ਪਹਿਲਾਂ USBD_Vendor_Init() ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਕੇ ਕਲਾਸ ਨੂੰ ਸ਼ੁਰੂ ਕਰੋ। ਸਾਬਕਾampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ sl_usbd_vendor_init() ਨੂੰ ਕਿਵੇਂ ਕਾਲ ਕਰਨਾ ਹੈ।
Example – sl_usbd_vendor_init() ਨੂੰ ਕਾਲ ਕਰਨਾ

sl_status_t ਸਥਿਤੀ;
ਸਥਿਤੀ = sl_usbd_vendor_init(); ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) { /* ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ। ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਇੱਥੇ ਜੋੜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। */ }
ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਵਿੱਚ ਇੱਕ USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ
ਆਪਣੀ ਡਿਵਾਈਸ ਵਿੱਚ ਵਿਕਰੇਤਾ ਕਲਾਸ ਕਾਰਜਕੁਸ਼ਲਤਾ ਜੋੜਨ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਇੱਕ ਉਦਾਹਰਣ ਬਣਾਉਣੀ ਪਵੇਗੀ, ਫਿਰ ਇਸਨੂੰ ਆਪਣੀ ਡਿਵਾਈਸ ਦੇ ਸੰਰਚਨਾ(ਆਂ) ਵਿੱਚ ਜੋੜਨਾ ਪਵੇਗਾ।
ਇੱਕ ਵੈਂਡਰ ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣਾ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਦੇ ਸੰਰਚਨਾ(ਆਂ) ਵਿੱਚ ਵੈਂਡਰ ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ
ਇੱਕ ਵਿਕਰੇਤਾ ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣਾ
ਫੰਕਸ਼ਨ sl_usbd_vendor_create_instance() ਨੂੰ ਕਾਲ ਕਰਕੇ ਇੱਕ ਵਿਕਰੇਤਾ ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਓ। exampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ ਡਿਫਾਲਟ ਆਰਗੂਮੈਂਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ sl_usbd_vendor_create_instance() ਨੂੰ ਕਿਵੇਂ ਕਾਲ ਕਰਨਾ ਹੈ। sl_usbd_vendor_create_instance() ਨੂੰ ਪਾਸ ਕਰਨ ਲਈ ਸੰਰਚਨਾ ਆਰਗੂਮੈਂਟਾਂ ਬਾਰੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਇੰਸਟੈਂਸ ਕੌਂਫਿਗਰੇਸ਼ਨ ਵੇਖੋ।
Example – sl_usbd_vendor_create_instance() ਨੂੰ ਕਾਲ ਕਰਨਾ

uint8_t ਕਲਾਸ_ਐਨਬੀਆਰ; sl_ਸਟੇਟਸ_ਟੀ ਸਥਿਤੀ;

ਸਥਿਤੀ = sl_usbd_vendor_create_instance(ਗਲਤ,

(1)

0u,

(2)

ਐਪ_ਯੂਐਸਬੀਡੀ_ਵਿਕਰੇਤਾ_ਕਾਲਬੈਕ_ਫੰਕਸ਼ਨ, (3)

&ਕਲਾਸ_ਐਨਬੀਆਰ);

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਸੰਭਾਲਣ ਨੂੰ ਇੱਥੇ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। */

}

(1) ਇਸ ਕਲਾਸ ਉਦਾਹਰਣ ਦੇ ਨਾਲ ਕੋਈ ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟ ਨਹੀਂ ਹਨ। (2) ਇੰਟਰੱਪਟ ਐਂਡਪੁਆਇੰਟ ਅਯੋਗ ਹੋਣ ਕਰਕੇ ਇੰਟਰਵਲ ਨੂੰ ਅਣਡਿੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

54/174

ਵੱਧview

(3) ਕਾਲਬੈਕ ਫੰਕਸ਼ਨ ਜੋ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਹਿੱਸਾ ਹੈ ਜੋ ਵਿਕਰੇਤਾ-ਵਿਸ਼ੇਸ਼ ਕਲਾਸ ਬੇਨਤੀਆਂ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ। ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਚਾਰ ਕਰਨਾ ਵੇਖੋ। ਆਪਣੀ ਡਿਵਾਈਸ ਦੇ ਸੰਰਚਨਾ(ਆਂ) ਵਿੱਚ ਵਿਕਰੇਤਾ ਕਲਾਸ ਇੰਸਟੈਂਸ ਜੋੜਨਾ ਇੱਕ ਵਿਕਰੇਤਾ ਕਲਾਸ ਇੰਸਟੈਂਸ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਇਸਨੂੰ USBD_Vendor_ConfigAdd() ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਕੇ ਇੱਕ ਸੰਰਚਨਾ ਵਿੱਚ ਜੋੜ ਸਕਦੇ ਹੋ। ਸਾਬਕਾampਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ ਡਿਫਾਲਟ ਆਰਗੂਮੈਂਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ sl_usbd_vendor_add_to_configuration() ਨੂੰ ਕਿਵੇਂ ਕਾਲ ਕਰਨਾ ਹੈ।
Example – sl_usbd_vendor_add_to_configuration() ਨੂੰ ਕਾਲ ਕਰਨਾ

sl_status_t ਸਥਿਤੀ;

ਸਥਿਤੀ = sl_usbd_vendor_add_to_configuration(class_nbr,

(1)

ਸੰਰਚਨਾ_ਐਨਬੀਆਰ_ਐਫਐਸ);

(2)

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* ਇੱਕ ਗਲਤੀ ਹੋਈ। ਗਲਤੀ ਸੰਭਾਲਣ ਨੂੰ ਇੱਥੇ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। */

}

(1) sl_usbd_vendor_create_instance() ਦੁਆਰਾ ਵਾਪਸ ਕੀਤੀ ਗਈ ਸੰਰਚਨਾ ਵਿੱਚ ਜੋੜਨ ਲਈ ਕਲਾਸ ਨੰਬਰ। (2) ਸੰਰਚਨਾ ਨੰਬਰ (ਇੱਥੇ ਇਸਨੂੰ ਇੱਕ ਫੁੱਲ-ਸਪੀਡ ਸੰਰਚਨਾ ਵਿੱਚ ਜੋੜਨਾ)।
USB ਡਿਵਾਈਸ ਵਿਕਰੇਤਾ ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਚਾਰ ਕਰਨਾ
ਜਨਰਲ ਸਿੰਕ੍ਰੋਨਸ ਕਮਿਊਨੀਕੇਸ਼ਨ ਅਸਿੰਕ੍ਰੋਨਸ ਕਮਿਊਨੀਕੇਸ਼ਨ ਵੈਂਡਰ ਬੇਨਤੀ ਜਨਰਲ ਵੈਂਡਰ ਕਲਾਸ ਹੋਸਟ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਲਈ ਹੇਠ ਲਿਖੇ ਫੰਕਸ਼ਨ ਪੇਸ਼ ਕਰਦਾ ਹੈ। ਫੰਕਸ਼ਨ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, USB ਡਿਵਾਈਸ ਵੈਂਡਰ API ਵੇਖੋ।
Table – Vendor Communication API Summary

ਫੰਕਸ਼ਨ ਦਾ ਨਾਮ
sl_usb d _v e nd o r_ re ad _b ulk_sy nc() sl_usb d _v e nd o r_write _b ulk_sy nc() sl_usb d _v e nd o r_ re ad _b ulk_asy nc() sl_usb d _v e nd o r_write _b ulk_asy nc() sl_usb d _v e nd o r_ re ad _inte rrup t_sy nc() sl_usb d _v e nd o r_write _inte rrup t_sy nc() sl_usb d _v e nd o r_ re ad _inte rrup t_asy nc
()
sl_usb d _v e nd o r_write _inte rrup t_asy nc
()

Operation Receives data from host through bulk OUT endpoint. This function is blocking. Sends data to host through bulk IN endpoint. This function is blocking. Receives data from host through bulk OUT endpoint. This function is non-blocking. Sends data to host through bulk IN endpoint. This function is non-blocking. Receives data from host through interrupt OUT endpoint. This function is blocking. Sends data to host through interrupt IN endpoint. This function is blocking. Receives data from host through interrupt OUT endpoint. This function is non-
ਬਲਾਕਿੰਗ
Sends data to host through interrupt IN endpoint. This function is non-blocking.

The vendor requests are also another way to communicate with the host. When managing vendor requests sent by the host, the application can receive or send data from or to the host using the control endpoint; you will need to provide an application callback passed as a parameter of sl_usbd_vendor_create_instance() . Synchronous Communication

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

55/174

ਵੱਧview

Synchronous communication means that the transfer is blocking. When a function is called, the application blocks until the transfer completes with or without an error. A timeout can be specified to avoid waiting forever. The example below shows a read and write that receives data from the host using the bulk OUT endpoint and sends data to the host using the bulk IN endpoint.
Example – Synchronous Bulk Read and Write

__ਅਲਾਈਨਡ(4) uint8_t rx_buf[2];

__ਅਲਾਈਨਡ(4) uint8_t tx_buf[2];

uint32_t

ਐਕਸਫਰ_ਲੇਨ;

sl_status_t ਵੱਲੋਂ ਹੋਰ

ਸਥਿਤੀ;

status = sl_usbd_vendor_read_bulk_sync(class_nbr,

(1)

(void *)&rx_buf[0],

(2)

2u,

0u,

(3)

&xfer_len);

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* $$$$ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲੋ। */

}

status = sl_usbd_vendor_write_bulk_sync( class_nbr,

(1)

(void *)&tx_buf[0],

(4)

2u,

0u,

(3)

false,

(5)

&xfer_len);

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* $$$$ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲੋ। */

}

(1) The class instance number created with sl_usbd_vendor_create_instance() provides an internal reference to the Vendor class to route the transfer to the proper bulk OUT or IN endpoint.
(2) The application must ensure that the buffer provided to the function is large enough to accommodate all the data. Otherwise, synchronization issues might happen.
(3) In order to avoid an infinite blocking situation, a timeout expressed in milliseconds can be specified. A value of 809 makes the application task wait forever.
(4) ਐਪਲੀਕੇਸ਼ਨ ਸ਼ੁਰੂਆਤੀ ਟ੍ਰਾਂਸਮਿਟ ਬਫਰ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ।
(5) If this flag is set to true , and the transfer length is multiple of the endpoint maximum packet size, the device stack will send a zero-length packet to the host to signal the end of the transfer.
The use of interrupt endpoint communication functions, sl_usbd_vendor_read_interrupt_sync() and sl_usbd_vendor_write_interrupt_sync() , is similar to bulk endpoint communication functions presented in Example – Synchronous Bulk Read and Write.
ਅਸਿੰਕ੍ਰੋਨਸ ਸੰਚਾਰ
Asynchronous communication means that the transfer is non-blocking. When a function is called, the application passes the transfer information to the device stack and does not block. Other application processing can be done while the transfer is in progress over the USB bus. Once the transfer has completed, a callback function is called by the device stack to inform the application about the transfer completion. The example below shows asynchronous read and write.
Example – Asynchronous Bulk Read and Write

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

56/174

ਵੱਧview

void app_usbd_vendor_comm (uint8_t class_nbr)

{

__ਅਲਾਈਨਡ(4) uint8_t rx_buf[2];

__ਅਲਾਈਨਡ(4) uint8_t tx_buf[2];

sl_status_t ਵੱਲੋਂ ਹੋਰ

ਸਥਿਤੀ;

status = sl_usbd_vendor_read_bulk_async(class_nbr,

(void *)&rx_buf[0],

(2)

2u,

app_usbd_vendor_rx_completed,

NULL);

(4)

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* $$$$ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲੋ। */

}

status = sl_usbd_vendor_write_bulk_async(class_nbr,

(void *)&tx_buf[0],

(5)

2u,

app_usbd_vendor_tx_completed,

ਨਲ,

(4)

false);

(6)

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* $$$$ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲੋ। */

}

}

(1) (3)
(1) (3)

static void app_usbd_vendor_rx_completed(uint8_t class_nbr,

(3)

void *p_buf,

uint32_t buf_len,

uint32_t xfer_len,

void *p_callback_arg,

sl_status_t status)

{

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* $$$$ Do some processing. */

} ਹੋਰ {

/* $$$$ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲੋ। */

}

}

static void app_usbd_vendor_tx_completed(uint8_t class_nbr,

(3)

void *p_buf,

uint32_t buf_len,

uint32_t xfer_len,

void *p_callback_arg,

sl_status_t status)

{

ਜੇ (ਸਥਿਤੀ ! SL_STATUS_OK) {

/* $$$$ Do some processing. */

} ਹੋਰ {

/* $$$$ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲੋ। */

}

}

(1) The class instance number provides an internal reference to the Vendor class to route the transfer to the proper bulk OUT or IN endpoint. (2) The application must ensure that the buffer provided is large enough to accommodate all the data. Otherwise, there may be synchronization issues. (3) The application provides a callback function pointer passed as a parameter. Upon completion of the transfer, the device stack calls this callback function so that the application can finalize the transfer by analyzing the transfer result. For instance, on completion of a read operation, the application might perform processing on the received data. Upon write completion, the application can indicate if the write was successful and how many bytes were sent.

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

57/174

ਵੱਧview
(4) An argument associated with the callback can be also passed. Then in the callback context, some private information can be retrieved. (5) The application provides the initialized transmit buffer. (6) If this flag is set to true , and the transfer length is a multiple of the endpoint maximum packet size, the device stack will send a zero-length packet to the host to signal the end of transfer. The use of interrupt endpoint communication functions, sl_usbd_vendor_read_interrupt_async() and sl_usbd_vendor_write_interrupt_async() , is similar to the bulk endpoint communication functions presented in Example Asynchronous Bulk Read and Write.
Vendor Request
The USB 2.0 specification defines three types of requests: standard, class, and vendor. All standard requests are handled directly by the core layer, while class requests are managed by the proper associated class. Vendor requests can be processed by the vendor class. To process vendor requests, you must provide an application callback as a parameter of sl_usbd_vendor_create_instance() . After a vendor request is received by the USB device, it must be decoded properly. The example below shows vendor request decoding. Certain requests may be required to receive from or send to the host during the data stage of a control transfer. If no data stage is present, you only have to decode the Setup packet. This example shows the three types of data stage management: no data, data OUT and data IN.
Example – Vendor Request Decoding

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

58/174

ਵੱਧview

#define APP_VENDOR_REQ_NO_DATA

0x01u - ਵਰਜਨ XNUMX

#define APP_VENDOR_REQ_RECEIVE_DATA_FROM_HOST 0x02u

#define APP_VENDOR_REQ_SEND_DATA_TO_HOST 0x03u

#define APP_VENDOR_REQ_DATA_BUF_SIZE

50 ਯੂ

static uint8_t app_vendor_req_buf[APP_VENDOR_REQ_DATA_BUF_SIZE];

static bool app_usbd_vendor_req (uint8_t

class_nbr,

const sl_usbd_setup_req_t *p_setup_req)

(1)

{

bool valid;

sl_status_t ਸਥਿਤੀ;

uint16_t req_len;

uint32_t xfer_len;

(void)class_nbr;

switch(p_setup_req->bRequest) { case APP_VENDOR_REQ_NO_DATA: valid = true; break;

(2) (3)

case APP_VENDOR_REQ_RECEIVE_DATA_FROM_HOST:

(4)

req_len = p_setup_req->wLength;

if (req_len > APP_VENDOR_REQ_DATA_BUF_SIZE) {

// Not enough room to receive data.

return (false);

}

// Receive data via Control OUT EP. // Wait transfer completion forever. status = sl_usbd_core_read_control_sync((void *)&app_vendor_req_buf[0u],
req_len, 0u, &xfer_len); if (status ! SL_STATUS_OK) { valid = false; } else { valid = true; } break;

case APP_VENDOR_REQ_SEND_DATA_TO_HOST:

(5)

req_len = APP_VENDOR_REQ_DATA_BUF_SIZE;

// Fill buf with a pattern. Mem_Set((void *)&AppVendorReqBuf[0u],
'ਏ',
req_len);

// Send data via Control IN EP. // Wait transfer completion forever. status = sl_usbd_core_write_control_sync((void *)&app_vendor_req_buf[0u],
req_len, 0u, false, &xfer_len); if (status ! SL_STATUS_OK) { valid = DEF_FAIL; } else { valid = DEF_OK; } break;

ਡਿਫਾਲਟ:

(6)

// Request is not supported.

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

59/174

ਵੱਧview

valid =true;break;
case APP_VENDOR_REQ_RECEIVE_DATA_FROM_HOST:(4) req_len = p_setup_req->wLength;if(req_len > APP_VENDOR_REQ_DATA_BUF_SIZE){// Not enough room to receive data.return(false);}// Receive data via Control OUT EP.// Wait transfer completion forever. status =sl_usbd_core_read_control_sync((void *)&app_vendor_req_buf[0u],
req_len,0u,&xfer_len);if(status ! SL_STATUS_OK){ valid =false;}else{ valid =true;}break;
case APP_VENDOR_REQ_SEND_DATA_TO_HOST:(5) req_len = APP_VENDOR_REQ_DATA_BUF_SIZE;// Fill buf with a pattern.Mem_Set((void *)&AppVendorReqBuf[0u],’A’,
req_len);// Send data via Control IN EP.// Wait transfer completion forever. status =sl_usbd_core_write_control_sync((void *)&app_vendor_req_buf[0u],
req_len,0u,false,&xfer_len);if(status ! SL_STATUS_OK){ valid = DEF_FAIL;}else{ valid = DEF_OK;}break;
default:(6)// Request is not supported. valid = DEF_FAIL;break;}return(valid);}

(1) The core will pass the Setup packet content to your application. The structure sl_usbd_setup_req_t contains the same fields as defined by the USB 2.0 specification (refer to section “9.3 USB Device Requests” of the specification for more details):

typedef struct {

uint8_t bmRequestType; /* Characteristics of request.

*/

uint8_t bRequest; /* Specific request.

*/

uint16_t wValue; /* Varies according to request.

*/

uint16_t wIndex; /* Varies according to request; typically used as index.*/

uint16_t wLength; /* Transfer length if data stage ਮੌਜੂਦ.

*/

} sl_usbd_setup_req_t;

(2) Determine the request. You may use a switch statement if you are using different requests. In this example, there are three different requests corresponding to the three types of the data stage: APP_VENDOR_REQ_NO_DATA, APP_VENDOR_REQ_RECEIVE_DATA_FROM_HOST, and APP_VENDOR_REQ_SEND_DATA_TO_HOST.
(3) If no data stage is present, you only need to decode the other fields. The presence of a data stage or not is indicated by the field wLength being non-null or null.
(4) If the host sends data to the device, you must call the function sl_usbd_core_read_control_sync() . The buffer provided should be able to contain up to wLength bytes. If any error occurs, return false to the core that will stall the status stage of the control transfer, indicating to the host that the request cannot be processed. true is returned in case of success.
(5) If the host receives data from the device, you must call the function sl_usbd_core_write_control_sync() . If any error occurs, return false to the core that will stall the status stage of the control transfer, indicating to the host that the request cannot be processed. true is returned in case of success.
(6) In this example, all requests not recognized are marked by returning false to the core. This one will stall the data or status stage of the control transfer indicating to the host that the request is not supported.
The host sends vendor requests through a host vendor application. USb libraries, such as libusb, can be used to help you develop your custom host vendor application.

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

60/174

API ਦਸਤਾਵੇਜ਼
API ਦਸਤਾਵੇਜ਼
API ਦਸਤਾਵੇਜ਼
ਮੋਡੀਊਲਾਂ ਦੀ ਸੂਚੀ
USB Device API USB Device ACM API USB Device CDC API USB Device Core API USB Device HID API USB Device MSC API USB Device MSC SCSI API USB Device Vendor API

ਵਰਣਨ
USB Device API USB Device ACM API USB Device CDC API USB Device Core API USB Device HID API USB Device MSC API USB Device MSC SCSI API USB Device Vendor API

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

61/174

USB Device API
USB Device API
USB Device API
USB Device API.
ਮੋਡੀਊਲ
USB Device ACM API USB Device CDC API USB Device Core API USB Device HID API USB Device MSC API USB Device MSC SCSI API USB Device Vendor API

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

62/174

USB Device ACM API

USB Device ACM API

USB Device ACM API

USB Device CDC ACM API.
ਮੋਡੀਊਲ
a sl_usbd_cdc_ cm_line_coding_t sl_usbd_cdc_acm_callbacks_t
ਫੰਕਸ਼ਨ

sl_status_t sl_status_t
sl_status_t sl_status_t sl_status_t
sl_status_t ਵੱਲੋਂ ਹੋਰ
sl_status_t ਵੱਲੋਂ ਹੋਰ
sl_status_t ਵੱਲੋਂ ਹੋਰ
sl_status_t sl_status_t sl_status_t sl_status_t sl_status_t

a sl_usbd_cdc_ cm_init(void)
GLOBAL VARIABLES.
ssll__uussbbdd__ccddcc__aaccmm__ccraellabtaec_kins_stta*npc_ea(cumin_tc1a6l_lbtalicnkes_,sutaintte8__int t*eprv_saul,bucinlats1s6__nt bcra)ll_mgmt_capabilities,
Add a new instance of the CDC ACM serial emulation subclass.
a a a a sl_usbd_cdc_ cm_ dd_to_configur tion(uint8_t subcl ss_nbr, uint8_t config_nbr)
Add a CDC ACM subclass class instance into USB device configuration.
a a sl_usbd_cdc_ cm_is_en bled(uint8_t subclass_nbr, bool *p_enabled)
Get the CDC ACM serial emulation subclass enable state.
a a a sl_usbd_cdc_ cm_re d(uint8_t subcl ss_nbr, uint8_t *p_buf, uint32_t buf_len, uint16_t timeout, uint32_t
*p_xfer_len) Receive data on the CDC ACM serial emulation subclass.
a a a a sl_usbd_cdc_ cm_re d_ sync(uint8_t subcl ss_nbr, uint8_t *p_buf, uint32_t buf_len, a a a a sl_usbd_cdc_ sync_function_t sync_fnct, void *p_ sync_ rg)
Receive data on the CDC ACM serial emulation subclass asynchronously.
a a sl_usbd_cdc_ cm_write(uint8_t subcl ss_nbr, uint8_t *p_buf, uint32_t buf_len, uint16_t timeout, uint32_t
*p_xfer_len) Send data on the CDC ACM serial emulation subclass.
a a a sl_usbd_cdc_ cm_write_ sync(uint8_t subcl ss_nbr, uint8_t *p_buf, uint32_t buf_len, a a a a sl_usbd_cdc_ sync_function_t sync_fnct, void *p_ sync_ rg)
Send data on the CDC ACM serial emulation subclass asynchronously.
a a a sl_usbd_cdc_ cm_get_line_control_st te(uint8_t subcl ss_nbr, uint8_t *p_line_ctrl)
Return the state of control lines.
a a a sl_usbd_cdc_ cm_get_line_coding(uint8_t subcl ss_nbr, sl_usbd_cdc_ cm_line_coding_t *p_line_coding)
Get the current state of the line coding.
a a a sl_usbd_cdc_ cm_set_line_coding(uint8_t subcl ss_nbr, sl_usbd_cdc_ cm_line_coding_t *p_line_coding)
Set a new line coding.
a a a sl_usbd_cdc_ cm_set_line_st te_event(uint8_t subcl ss_nbr, uint8_t events)
Set a line state event(s).
a a a a sl_usbd_cdc_ cm_cle r_line_st te_event(uint8_t subcl ss_nbr, uint8_t events)
Clear a line state event(s).

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

63/174

USB Device ACM API
ਮੈਕਰੋਜ਼
#define SL_USBD_CDC_ACM_NBR_NONE 255u
ਮੋਡਿਊਲ।
#define SL_USBD_CDC_ACM_PARITY_NONE 0u
PORT SETTINGS DEFINES.
#define SL_USBD_CDC_ACM_PARITY_ODD 1u #define SL_USBD_CDC_ACM_PARITY_EVEN 2u #define SL_USBD_CDC_ACM_PARITY_MARK 3u #define SL_USBD_CDC_ACM_PARITY_SPACE 4u #define SL_USBD_CDC_ACM_STOP_BIT_1 0u #define SL_USBD_CDC_ACM_STOP_BIT_1_5 1u #define SL_USBD_CDC_ACM_STOP_BIT_2 2u #define SL_USBD_CDC_ACM_CTRL_BREAK 0 01u
LINE EVENTS FLAGS DEFINES.
#define SL_USBD_CDC_ACM_CTRL_RTS 0 02u #define SL_USBD_CDC_ACM_CTRL_DTR 0 04u #define SL_USBD_CDC_ACM_STATE_DCD 0 01u #define SL_USBD_CDC_ACM_STATE_DSR 0 02u #define SL_USBD_CDC_ACM_STATE_BREAK 0 04u #define SL_USBD_CDC_ACM_STATE_RING 0 08u #define SL_USBD_CDC_ACM_STATE_FRAMING 0 10u #define SL_USBD_CDC_ACM_STATE_PARITY 0 20u #define SL_USBD_CDC_ACM_STATE_OVERUN 0 40u #define SL_USBD_CDC_ACM_CALL_MGMT_DEV 0 01u
CALL MANAGEMENT CAPABILITIES.
#define SL_USBD_CDC_ACM_CALL_MGMT_DATA_CCI_DCI 0 02u #define SL_USBD_CDC_ACM_CALL_MGMT_DATA_OVER_DCI 0 02u | 0 01u)
Function Documentation
sl_usbd_cdc_acm_init
sl_status_t sl_usbd_cdc_acm_init (void )
GLOBAL VARIABLES. Parameters
ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

64/174

USB Device ACM API

ਟਾਈਪ ਕਰੋ
ਬੇਕਾਰ

Direction N/A

Argument Name

MACROS GLOBAL CONSTANTS FUNCTION PROTOTYPES CDC ACM FUNCTIONS

Initialize the CDC ACM serial emulation subclass.
ਵਾਪਸੀ

Returns SL_STATUS_OK on success or another SL_STATUS code on failure.

ਵਰਣਨ

sl_usbd_cdc_acm_create_instance

sl_status_t sl_usbd_cdc_acm_create_instance (uint16_t line_state_interval, uint16_t call_mgmt_capabilities, sl_usbd_cdc_acm_callbacks_t * p_acm_callbacks, uint8_t * p_subclass_nbr)

Add a new instance of the CDC ACM serial emulation subclass.
ਪੈਰਾਮੀਟਰ

ਟਾਈਪ ਕਰੋ
uint16_t
uint16_t

Direction Argument Name

ਵਰਣਨ

N/A

line_state_interval Line state notification interval in milliseconds (value must

be a power of 2).

N/A

call_mgmt_capabilities Call Management Capabilities bitmap. OR’ed of the

following flags:

SL_USBD_CDC_ACM_CALL_MGMT_DEV Device handles call management itself. SL_USBD_CDC_ACM_CALL_MGMT_DATA_CCI_DCI Device can send/receive call management information over a Data Class interface.

sl_usbd_cdc_acm_callbacks_t N/A
*

uint8_t *

N/A

p_acm_callbacks p_subclass_nbr

Optional pointers to callback functions to be called on various events.
Param to variable that will receive CDC ACM serial emulation subclass instance number.

ਵਾਪਸੀ

Return SL_STATUS_OK on success or another SL_STATUS code on failure.

sl_usbd_cdc_acm_add_to_configuration

sl_status_t sl_usbd_cdc_acm_add_to_configuration (uint8_t subclass_nbr, uint8_t config_nbr)

Add a CDC ACM subclass class instance into USB device configuration.
ਪੈਰਾਮੀਟਰ

ਟਾਈਪ ਕਰੋ
uint8_t uint8_t

Direction N/A N/A

Argument Name
subclass_nbr config_nbr

Description CDC ACM serial emulation subclass instance number. Configuration index to add new test class interface to.

ਵਾਪਸੀ

ਕਾਪੀਰਾਈਟ © 2025 ਸਿਲੀਕਾਨ ਲੈਬਾਰਟਰੀਜ਼। ਸਾਰੇ ਹੱਕ ਰਾਖਵੇਂ ਹਨ.

65/174

USB Device ACM API
Returns SL_STATUS_OK on success or another SL_STATUS code on failure.

sl_usbd_cdc_acm_is_enabled

sl_status_t sl_usbd_cdc_acm_is_enabled (uint8_t subclass_nbr, bool * p_enabled)

Get the CDC ACM serial emulation subclass enable state.
ਪੈਰਾਮੀਟਰ

ਟਾਈਪ ਕਰੋ

ਦਿਸ਼ਾ

Argument Name

ਵਰਣਨ

uint8_t N/A

subclass_nbr CDC ACM serial emulation subclass instance number.

bool * N/A

p_enabled

Boolean to a variable that will receive enable status. The variable is set to true, CDC ACM serial emulation is enabled. The va

ਦਸਤਾਵੇਜ਼ / ਸਰੋਤ

SILICON LABS USB Device Stack [pdf] ਹਦਾਇਤ ਮੈਨੂਅਲ
USB Device Stack, Device Stack, Stack

ਹਵਾਲੇ

ਇੱਕ ਟਿੱਪਣੀ ਛੱਡੋ

ਤੁਹਾਡਾ ਈਮੇਲ ਪਤਾ ਪ੍ਰਕਾਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ। ਲੋੜੀਂਦੇ ਖੇਤਰਾਂ ਨੂੰ ਚਿੰਨ੍ਹਿਤ ਕੀਤਾ ਗਿਆ ਹੈ *