سلام. چه جوری می شه تو ویژوال استودیو، به پورت یو اس بی دسترسی داشت؟ مثلا یک رشته را بفرستیم. چه دستوری لازم هست؟
اطلاعیه
Collapse
No announcement yet.
پورت usb در ویژوال استودیو
Collapse
X
-
پاسخ : پورت usb در ویژوال استودیو
حساب `پورت USBآ با بقیه پورت ها مثل com و lpt و ... کاملن فرق میکنه. برای ارتباط با اون به این راحتی نمیشه کاری انجام داد مگر اینکه خودتون درایور اختصاصی بنویسید یا از کتابخانه های آماده استفاده کنید چون این پورت حالت های کاملن متفاوت و متنوعی داره . مثلن نحوه ارتباط پورت با mouse زمین تا زیر زمین با ارتباط flash memory فرق داره :mrgreen:
اگه میخوای اطلاعات بیشتر کسب کنی بد نیست این سند رسمی مشخصات USB نسخه 2 هست
http://sdphca.ucsd.edu/Lab_Equip_Manuals/usb_20.pdf
مطمئن نکاهش کنی یکم وحشت میکنی :surprised: :mrgreen:
راه راحت تر اینه که یه تبدیل USBآ به serial مثل بورد های مبتنی بر FT232 یا CP210xآ بگیری و به این پورت به صورت سریال نگاه کنی که هم خیلی کار رو راخت میکنه هم شرکت های سازنده ای چیپ ها کلی نمونه کد و مثال برنامه نویسی برای زبان های مختلف برنامه نویس ارائه کردن که خیلی کمکت میکنه. قیمت ارزانی هم دارند :smile:
-
پاسخ : پورت usb در ویژوال استودیو
من متوجه منظورتون نشدم،
اگه میخواید یک رشته توسط USB با استفاده از ارتباط USB2Serial مث FT232 ارسال یا دریافت کنید که کار آسونیه!
یه SerialPort باس بیارین روی فرم، معرفی کردن مشخصات:
کد:serialPort1.PortName = "COM5"; serialPort1.BaudRate = 1000000;
کد:serialPort1.Open();
کد:serialPort1.Write("Test");
کد:using System.Net; using System.Net.Sockets;
موفق باشید
«پشتکار» «پشتکار» «پشتکار»
دیدگاه
-
پاسخ : پورت usb در ویژوال استودیو
با سلام
ارتباط با USB بستگی به کلاسی داره که ویندوز میشناسدشون. ساده ترین اونا کلاس VCP یا پورت سریال مجازیه که در عمل شما فقط کابلتون رو عوض کردین.
من پیشنهاد میکنم از پروتکل HID استفاده کنین که یه ارتباط USB واقعیه.درایور نمیخواد و DLL آهاش هم تو نت هست. کار باهاش هم راحته.
من تو سی شارپ خیلی باهاش کار کردم.کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.
دیدگاه
-
پاسخ : پورت usb در ویژوال استودیو
سوال شما مبهمه . چون گیرنده و فرستنذه رو مشخص نکردید. ولی میشه بحث رو کلی شروع کرد تا شما بگی که منظورتون چیه
از نظر برنامه نویسی usb رو به 4 لایه تقیسم میکنن به ترتیب از بالا به پایین اینه
4-device or host
3-portocol
2-link
1-physical layer
مسلما شما نمی خوای تو سه لایه زیرین کار کنی پس میمونه لایه host و device و باز مسلمه که شما نمی خوای برای host برنامه بنویسی پس میمونه device
حالا خود device به دو قسمت تقسیم میشه
1- device استاندارد
2-device سفارشی
خوب باز مسلمه که شما می خوای با یک device استاندارد کار کنی
خوب دیواس استانداد usb بالغ بر 20 کلاس است ولی مهمترینشون 5 تا است
1- Audio-01h
2- CDC -02h
3- HID-03h
4-Printer -07h
5- Mass Storage-08h
و در نهایت ماکروسافت برای این کلاس ها درایور های استانداد داره
مثلا به ترتیب
Usbaudio.sys
Usbser.sys
Hidclass.sys
Usbprint.sys
Usbstor.sys
حال فرض کنیم شما می خوای با یک وسیله از نوع hid ارتباط برقرار کنی ویندوز توابع api زیر را دارد
توابع شناسایی
HidD_GetAttributes
HidD_GetHidGuid
HidD_GetIndexedString
HidD_GetManufacturerString
HidD_GetPhysicalDescriptor
HidD_GetPreparsedData
HidD_GetProductString
HidD_GetSerialNumberString
HidD_GetNumInputBuffers
HidD_SetNumInputBuffers
توابع ارتباط
HidD_GetInputReport
HidD_SetFeature
HidD_SetOutputReport
ReadFile
WriteFile
و در نهایت توابع گزارش گیری
HidP_GetButtonCaps
HidP_GetButtons
HidP_GetButtonsEx
HidP_GetCaps
HidP_GetData
HidP_GetExtendedAttributes
HidP_GetLinkCollectionNodes
HidP_GetScaledUsageValue
HidP_GetSpecificButtonCaps
HidP_GetSpecificValueCaps
HidP_GetUsages
HidP_GetUsagesEx
HidP_GetUsageValue
HidP_GetUsageValueArray
HidP_GetValueCaps
HidP_InitializeReportForID
HidP_IsSameUsageAndPage
HidP_MaxDataListLength
HidP_MaxUsageListLength
HidP_SetButtons
HidP_SetData
HidP_SetScaledUsageValue
HidP_SetUsages
HidP_SetUsageValue
HidP_SetUsageValueArray
HidP_UnsetButtons
HidP_UnsetUsages
HidP_UsageAndPageListDifference
HidP_UsageListDifference
مثلا صفحه کلید و ماوس از hid استفاده میکنن که دارای
تنها موردی که همه آدما یقین دارن خدا در حقش زیاد لطف کرده
داشتن عقله زیادتر از دیگر آدم ها است
دیدگاه
-
پاسخ : پورت usb در ویژوال استودیو
نوشته اصلی توسط نو رسیدهبا سلام
من پیشنهاد میکنم از پروتکل HID استفاده کنین که یه ارتباط USB واقعیه.درایور نمیخواد و DLL آهاش هم تو نت هست. کار باهاش هم راحته.
من تو سی شارپ خیلی باهاش کار کردم.
ممنونهرکه خود را یک بار با اشکهایش شستشو دهد تا زنده است پاک و مقدس میماند
دیدگاه
-
پاسخ : پورت usb در ویژوال استودیو
اولا پیشنهاد میکنم برای ارتباط با USB اصلا سراغ روشهای معمول ارتباط با پورتها مثل ارسال دیتا به آدرس پورت و غیره نرین. چون عملیات ارسال و دریافت دیتا تو این پورت بطور کاملا سخت افزاری انجام میشه و آدرسها شناور هستن. سراغ مطالعه پروتکلش هم نرین، چون هم خیلی پیچیدس و در صورت فهم کاملش هم هیچ دخل و تصرفی توش نمی تونید بکنید. بنا براین لطفا آب در هاون نکوبین و یکراست برین سراغ درایور ها و DLLآ های آماده و مخصوص اینکار.
همونطور که پیشتر گفتم ابتدا باید یه سخت افزار با پورت usbآ به PC وصل بشه که از طرف سیستم به عنوان HID شناخته بشه.مثلا یه برد با میکرو های PIC که پورت USBآ دارن. بعدش شما با استفاده از DLL های مربوط به ارتباط با HID میتونین اختیارش رو بدست بگیرین و کنترلش کنین.
اگه سخت افزار جانبی درست تعریف شده باشه دارای دو شناسه 16 بیتی بنامهای VID و PID خواهد بود که یه کد یونیک برای هر USB DEVICE هست و اولی ID سازنده محصول و دومی ID خود محصوله که از طرف سایت USB.ORG به سازندگان و محصولات تجاری اختصاص داده میشه. بنابراین بین ابزار های USB مختلفی که به PC تون وصله، شما میتونین ابزار مورد نظرتون رو شناسایی کنین و با اون ارتباط برقرار کنین.
بعد از برقراری ارتباط دیتا، نوبت به نرم افزار های دو طرف میرسه که طوری نوشته بشن که زبون همو بفهمن و اطلاعات دریافتی رو درست تفسیر یا اجرا کنن.کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.
دیدگاه
-
پاسخ : پورت usb در ویژوال استودیو
سلام دوستان.
حالا با این توضیحاتی که دادید، تقریبا یچیزهایی دستم اومد،
حالا باید از کجا شروع کنم؟
فکرشو نمیکردم این همه دردسر داشته باشه،
برای پورتهای دیگه ، هم همینقدر داستان داره؟
یا مثلا برای لینوکس چی؟
هنوز تو ذهنم این یه علامت سواله بزرگه ، و تو نت هم گشتم ، هیچی نبود.
با تشکر.به سمت نور خورشید حرکت کن،تو میتونی تابش خورشید رو حس کنی ،حتی اگه کور باشی.
(پیش به سوی هدف)
دیدگاه
دیدگاه