मैं बैटरी चालित एचआईडी डिवाइस के लिए बैटरी जानकारी की रिपोर्ट करने की कोशिश कर रहा हूं (यूएसबी प्लग किए जाने पर, बीएलई अन्यथा)। के परिशिष्ट A के उदाहरण से रिपोर्ट डिस्क्रिप्टर को पढ़ना HID पॉवर डिवाइसेस के लिए उपयोग तालिकाएँ (v1.1) मुझे होस्ट को बैटरी के बारे में डेटा रिपोर्ट करने के लिए दो संग्रह दिखाई देते हैं:

UsagePage(Power Device), Unit(none),
Usage(PresentStatus), Collection(Logical), ; Present status collection
    Usage(Good),
    UsagePage(Battery System), Usage(BelowRemainingCapacityLimit),
    Usage(Charging), Usage(Discharging),
    ReportSize(1), ReportCount(4), Logical Minimum (0), Logical Maximum (1), Unit(0),
    Feature(Constant, Variable, Absolute, Volatile),
End Collection(), ; End of Present Status collection
UsagePage(Power Device),
Usage(ChangedStatus), Collection(Logical), ; Changed Status collection
    Usage(Good),
    UsagePage(Battery System), Usage(BelowRemainingCapacityLimit),
    Usage(Charging), Usage(Discharging),
    ReportSize(2), ReportCount(4), Logical Minimum (0), Logical Maximum (1),
    Input(Data, Variable, Absolute, Volatile),
End Collection(), ; End of Changed Status collection

मेरे पास इसे चार्ज करने के लिए केवल एक लीपो बैटरी और एक डायोड है, इसलिए मैं बाकी बिजली उपकरण सामान को बाहर निकालने की योजना बना रहा हूं क्योंकि मुझे लगता है कि मुझे बैटरी सिस्टम उपयोग पृष्ठ से वह सब कुछ मिल सकता है जो मैं चाहता हूं। नतीजतन मैं कुछ और देख रहा हूं (मुझे यह बताने के लिए स्वतंत्र महसूस करें कि क्या यह शुरुआत के रूप में बर्बाद है):

UsagePage(Battery System), Usage(BelowRemainingCapacityLimit),
Usage(Charging), Usage(Discharging),
ReportSize(1), ReportCount(3), Logical Minimum (0), Logical Maximum (1), Unit(0),
Feature(Constant, Variable, Absolute, Volatile),

कल्पना से रिपोर्ट को देखते हुए, मेरे दो प्रश्न हैं:

  1. क्षमता मोड केवल आकार 1 क्यों है? मान 0 - 3 हैं, क्या यह आकार 2 नहीं है?

  2. चेंजस्टैटस संग्रह में वास्तव में क्या जाता है? मैं देख रहा हूं कि रिपोर्ट का आकार 1 के बजाय 2 है - क्या रिपोर्टिंग वहां भी पुरानी स्थिति है? मैं कल्पना में कहीं और कुछ भी नहीं देख रहा हूं जो एक संकेत देता है। वास्तव में, कल्पना कहती है कि चेंजस्टैटस तत्व बूलियन होना चाहिए, जो आकार 1 होना चाहिए, नहीं?

0
TrivialCase 8 जिंदा 2021, 00:43

1 उत्तर

सबसे बढ़िया उत्तर
  1. क्षमता मोड में 0 से 3 मान हो सकते हैं, लेकिन यदि आपका डिवाइस केवल मोड 0 (मिलीएम्प-घंटे में मापी गई क्षमता) या मोड 1 (मिलीवाट-घंटे में मापी गई क्षमता) का समर्थन करता है, तो मुझे लगता है कि 1-बिट चौड़ा क्षेत्र होना ठीक है इसे रिकॉर्ड करें। आप 8-बिट फ़ील्ड को भी परिभाषित कर सकते हैं जो केवल 0 या 1 मान संग्रहीत करता है, भले ही यह 255 तक मान रख सके।

  2. मुझे लगता है कि उदाहरणों के लेखक 4 स्थिति बिट्स को 2-बिट चौड़ा बनाकर फ़ील्ड को 8 बिट्स में संरेखित करने का प्रयास कर रहे होंगे - इसलिए 0, 00 के रूप में संग्रहीत किया जाएगा और 1 को रिपोर्ट में 01 के रूप में संग्रहीत किया जाएगा। या यह एक टाइपो हो सकता था - मैंने यूएसबी विनिर्देशों में कई अन्य उदाहरण देखे हैं जिनमें त्रुटियां हैं।

1
aja 9 जिंदा 2021, 04:14
आह, मुझे नहीं पता था कि आप बिट फ़ील्ड को उनके मूल्यों से अधिक व्यापक सेट कर सकते हैं ... यह आसान है।
 – 
TrivialCase
9 जिंदा 2021, 17:03