PDA

View Full Version : سوال: گرفتن اطلاعات از پرت com



javadt
چهارشنبه 14 بهمن 1388, 20:34 عصر
سلام
من اطلاعات من در دستگاهم به این شکل هست

1111
2222
3333
4444
5555
6666

توی یک کامند با cm.Output دستور رو میفرستم

و اینجوری با یک کامند دیگه اطلاعات روی تکست باکس میریزم


For i = 0 To cm.InBufferCount <> 0
Text1.Text = Text1.Text & cm.Input
Next i
اما فقط خط اول اطلاعات میاد و بافر کانت 0 میشه
یعنی 1111
حالا چطوری می تونم کل اطلاعات رو بگیرم؟
با تشکر

vahid_d_0101
چهارشنبه 14 بهمن 1388, 22:45 عصر
فکر کنم دستگاهی که اطلاعات را میفرسته باید تنطظیم کنی که بعد از 1111 دستور اینتر را بفرسته CHR(13)
بعد 2222 را بفرسته

vbhamed
پنج شنبه 15 بهمن 1388, 09:17 صبح
سلام

شما باید InputBufferCount رو هم چک کنی تا اگر بزرگتر از 0 بود اونموقع بخونی چون پورت که نمیتونه با سرعت برنامه شما کار کنه

javadt
پنج شنبه 15 بهمن 1388, 10:02 صبح
فکر کنم دستگاهی که اطلاعات را میفرسته باید تنطظیم کنی که بعد از 1111 دستور اینتر را بفرسته CHR(13)
بعد 2222 را بفرسته

دستگاه اینتر رو میفرسته


سلام

شما باید InputBufferSize رو هم چک کنی تا اگر بزرگتر از 0 بود اونموقع بخونی چون پورت که نمیتونه با سرعت برنامه شما کار کنه

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

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

vbhamed
پنج شنبه 15 بهمن 1388, 14:10 عصر
سلام


If mscomm1.InputBufferCount > 0 Then
list1.additem mscomm1.input
End If

javadt
پنج شنبه 15 بهمن 1388, 16:29 عصر
من این رو امتحان کردم
وقتی که اطلاعات رو اول دستگاه ارسال می کنه بعد من روی کامند کلیک کنم فقط خط اول رو میاره
ولی وقتی در زمان ارسال اطلاعات با تایمر این کار رو می کنم اطلاعات بیشتری ولی به صورت ناقص نشون میده
مثلا یک 5 کاراکتر یکی 2 و... کم داره
لطفا راهنمایی فرمایید
با تشکر

vbhamed
پنج شنبه 15 بهمن 1388, 17:39 عصر
سلام

خب یا دستگاهتون دیر میفرسته یا برنامه زود می گیره
یك مقدار تاخیر براي هر با اجراي دستور mscomm1.input بزارید

javadt
پنج شنبه 15 بهمن 1388, 20:09 عصر
نه مشکل از دستگاه نیست
چون با یک برنامه عمومی کار با پرت تست کردم هیچ مشکلی نداشتم و اطلاعات رو کامل و درست داد
اما با برنامه خودم مشکل نداره
اگر توی تایمر بزارم که اطلاعات رو کم و ناقص می ده و اگر توی کامند فقط خط اول اطلاعات رو میده

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

vbhamed
شنبه 17 بهمن 1388, 00:22 صبح
سلام
تنظيمات پورتتون چطوريه ؟
Baud rate چنده
Databit
Parity

درست با سخت افزارتون تنظيم شده ؟