PDA

View Full Version : باز کردن پورت سریال با Creatfile Api



noorsoft
سه شنبه 08 مرداد 1387, 19:44 عصر
من با استفاده از تابع Createfile به طریق زیر استفاده می کنم ولی پورت باز نمیشه



Ret = CreateFile("Com5:", GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or _
FILE_SHARE_WRITE, mySA, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
hModem = Ret

noorsoft
پنج شنبه 10 مرداد 1387, 08:41 صبح
دوستان برای پیدا کردن نام پورتهای موجود برای استفاده در دستور Createflie باید از چه دستوری استفاده کرد

Mbt925
پنج شنبه 10 مرداد 1387, 10:59 صبح
1. از وجود پورت مربوطه مطمئن بشید.

2. از ثابت زیر بجای OPEN_EXISTING استفاده کنید، ببینید مشکل حل میشه یا نه:


Public Const OPEN_ALWAYS = 4

البته برای باز کردن بعضی پورت ها کاربرد داره!

Mbt925
پنج شنبه 10 مرداد 1387, 11:26 صبح
دوستان برای پیدا کردن نام پورتهای موجود برای استفاده در دستور Createflie باید از چه دستوری استفاده کرد

اینجا یه نمونه قرار داده:

با استفاده از CreateFile:


http://vbnet.mvps.org/index.html?code/system/comtestapi.htm

با استفاده از MsComm:


http://vbnet.mvps.org/index.html?code/system/comtestmscomm.htm

noorsoft
شنبه 12 مرداد 1387, 05:50 صبح
مشکل من با استفاده ار تابع iRasEnumDevices حل شد

فقط میخواستم ببینم شما با تابع ReadFile کار کردین؟

Mbt925
شنبه 12 مرداد 1387, 10:31 صبح
بله، کار کردم.

یه نمونه که با استفاده از این تابع و تابع WrtiteFile عمل کپی فایل ها رو انجام میده هم در تاپیک نمونه های کاربردی قرار دادم. با نام MBFastCopy.
البته برای خوندن پورت کار کمی فرق می کنه ولی بازهم مشابه هست:

آرگومان اول تابع ReadFile و تابع WriteFile هندل پورت باز شده توسط تابع CreateFile خواهد بود.
- آرگومان خروجی تابع CreateFile هندل پورت باز شده است.

noorsoft
دوشنبه 14 مرداد 1387, 07:09 صبح
از چه طریقی میشه فهمید اطلاعاتی در بافر وجود داره و بعد شروع به خواندن آنها بکنیم

Mbt925
دوشنبه 14 مرداد 1387, 09:43 صبح
یه بار با استفاده از تابع ReadFile یه بایت بخونید، اگه مقدار بازگشتی 1 بایت اطلاعات بود، یعنی بافر خالی نیست.

noorsoft
پنج شنبه 17 مرداد 1387, 09:04 صبح
یعنی من باید خودم داخل یک تایمر هر بار بافر را چک کنم ببینم اطلاعاتی ارسال شده یا نه