PDA

View Full Version : خواندن دیتا از USB با پروتکل HID



arastoahmadi
یک شنبه 13 مهر 1399, 11:44 صبح
با سلام

دوستان من میخام یه برنامه با سی شارپ بنویسم که اولا دستگاه هایی رو که از پروتکل HID استفاده میکنن رو تشخیص و سپس از هردستگاه دیتا رو هم بخونم و هم رایت کنم ممنون میشم به من بگید در وهله اول باید چه کاری رو انجام بدم

مهدی کرامتی
یک شنبه 13 مهر 1399, 12:27 عصر
کاری که میخوای بکنی اصلا آسان نیست. چون ویندوز ترجیح هندل کردن عملیات مربوط به دستگاه های HID رو خودش بعهده بگیره. ماجرا جایی سخت تر میشه که می بینی دستگاه های HID رو نمی تونی به صورت پورت سریال در اختیار بگیری. با این توصیف، با کلی سرچ و تست شاید بتونی داده رو از دستگاه فوق بخوانی، اما زیاد روی نوشتنش حساب نکن.
با این توصیف، اگر نوع دستگاه مشخصه (که چی برات میفرسته) بگو برات مثال ارائه کنم.

arastoahmadi
یک شنبه 13 مهر 1399, 13:41 عصر
ممنون از پاسختون جناب کرامتی بزرگوار

دستگاه من شبیه ترازوه که وزن رو به من نشون میده و از طریق کابل یو اس بی به سیستم هم متصل و درایور راه اندازم داره ، حالا اگه مثالی هم باشه که از طریق سی شارپ بتونم داده ها رو به صورت کامل بخونم کمک بسیار زیادی به من خواهید کرد

مهدی کرامتی
یک شنبه 13 مهر 1399, 17:02 عصر
سازنده دستگاه مورد نظر شما آیا سایتی که در مورد این دستگاه توضیحات بیشتری داده باشه داره؟
اگر هست آدرسش رو اینجا بگذارید.

arastoahmadi
دوشنبه 14 مهر 1399, 07:32 صبح
http://www.benetechco.net/en/products/gm1356.html

این لینک مربوط به دستکاهه

مهدی کرامتی
دوشنبه 14 مهر 1399, 11:00 صبح
http://www.benetechco.net/en/products/gm1356.html

این لینک مربوط به دستکاهه

در سایت فوق و PDF ای که در اون صفحه قابل دانلوده چیزی درباره نحوه ارتباط مطرح نکرده. مستندات بیشتری از اون دستگاه در اختیار ندارید؟

arastoahmadi
دوشنبه 14 مهر 1399, 12:18 عصر
نه متاسفانه همین مشخصاتو ازش داشتم ناگفته نماند که من با نرم افزار usbAnalyzer تونستم دیتاهایی که میاد رو ببینم ولی من هدفم اینه که خودم با سی شارپ یه واسط طراحی کنم که این دیتاها رو بگیره ، آیا صرفا با نرم افزار میشه این کارو انجام داد ؟ سوال یعدیم اینه که آیا با ماژول سخت افزاری ft232 میتونیم یو اس بی رو به سریال تبدیل کنیم و بعد از پورت سریال دیتا رو بخونیم ، ممنون میشم راهنمایی بفرمایید و تا جایی که ممکنه من از مبدل سخت افزاری دیگه ای استفاده نکنم

مهدی کرامتی
دوشنبه 14 مهر 1399, 14:40 عصر
اگر مطمئن هستید نوع ارتباط دستگاه تون با USB HID است با استفاده از این کتابخانه می توانید ورودی های دریافتی از اون دستگاه رو دریافت کنید:
https://www.nuget.org/packages/HidLibrary
آدرس ریپوزیتوری اش هم در گیت هاب این است:
https://github.com/mikeobrien/HidLibrary

کتابخانه LibUsbDotNet (https://github.com/LibUsbDotNet/LibUsbDotNet) هم هست که البته کار کردن باهاش سخت تره، ولی تا جایی که یادمه اجازه میده هر نوع دستگاهی که می تونه براتون اطلاعات بفرسته رو با استفاده از برنامه های کمکی همراهش تبدیل به یک پورت سریال کنید.


سوال بعدیم اینه که آیا با ماژول سخت افزاری ft232 میتونیم یو اس بی رو به سریال تبدیل کنیم و بعد از پورت سریال دیتا رو بخونیم
بله. شدنی هست. منتهی باز میبایست یک میکروکنترلر وجود داشته باشه که دریافت داده ها از پروتکل HID رو به داده های قابل انتقال بر روی پورت سریال ترجمه کنه. با FT232 (که البته فکر نکنم اصلش رو پیدا کنید، ورژن های موجود در بازار ما همه کپی است و درایور اصلی اش به محث اینکه این کپی ها رو ببینه محتویاتش رو پاک می کنه تا قابل استفاده نباشه!، اگر بتوانید CH340 یا هم خانواده هاش رو پیدا کنید بهتره. سری های PL2303 هم مثل FT232 فقط کپی هاش تو ایران پیدا میشه و درایورش هم همون رفتار FT232 رو می کنه) مستقیما نمیشه اونکار رو انجام داد، چون فقط حکم یک رابط USB رو داره و خودش نمی تونه تصمیم گیرنده برای انجام کار خاصی باشه، قابلیت ترجمه پروتکل HID به Serial رو هم نداره.