PDA

View Full Version : مشکل در استفاده از Comport



Z_Programming
یک شنبه 21 شهریور 1389, 12:19 عصر
سلام
دوستان من دارم از comport استفاده می کنم.وقتی خوندن و نوشتن رو به صورت ReadString,WriteString انجام می دم مشکلی ندارم اما وقتی می خوام به صورت read ,write انجام بدم نمی شه.می شه کمکم کنید؟
ممنون

ariobarzan
دوشنبه 22 شهریور 1389, 08:17 صبح
http://www.barnamenevis.org/forum/showthread.php?t=245373

سلام
من با Comport کار کردم
کار باهش راحته

اول روی فرم یه ComPort بزار
2- با دستور ComPort1.Open این کمپوننت گوش به زنگ داده های دریافتی از پورت سریال میشه می تونی این دستور را موقع نمایش فرم اجرا کنی
3- در خاصیت onRxChar اون شروع کن به کد نویسی
ComPort1.Read(data,count)

data یه متغیره که از نوع Byte باید تعریف کنی
Count هم متغیریه که جزیی از پروسیجر onRxChar خود برنامه تعریف میکنه

بقیه کار هم بستگی بخودت داره مثلا میتونی یه Memo بزاری روی صفحه که وقتی یه دیتا اومد تو پورت سریال و این کمپوننت اتوماتیک دیتا رو خوند توی memo هم درج کنه یا اینکه دیتا رو پردازش کنی و تصمیم خاصی بگیری
فقط یادت باشه که پیکربندی اطلاعات ارسالی و پورت باید با هم سازگار باشه
برای تنظیم پیکربندی پورت هم از دستور ComPort1.ShowSetupDialog
استفاده کن .
به همین راحتی
موفق باشی:چشمک:
--------------------
با دستور ComPort1.close
هم این کمپوننت دست از گوش دادن به پورت سریال برمیداره:عصبانی++:
بهتره موقعی که کاری با پورت نداری یا آخر برنامه این دستور را هم بنویسی

Z_Programming
دوشنبه 22 شهریور 1389, 09:23 صبح
ببینید من داده ها را با دستور: comport.ReadStr(Data,Count) می خوندم،وقتی که با WriteStr ارسال می کردم و هیچ مشکلی نبود.اما حالا داده هام رشته نیستند بنابراین می خوام با Write,Read بخونم.در دستور read(Data,Count)

data باید از نوعPAnsiChar باشد.من این کد رو نوشتم اما درmemo چیزی نشون نمی ده


ComPort.Read(Data,Count);
Memo1.Text := Memo1.Text + Data
data:Pansichar

ariobarzan
دوشنبه 22 شهریور 1389, 22:07 عصر
اگه مقدار HEX دیتا رو میخوای :




Memo1.Lines.Add((IntToHex(ord(data),2)));

Z_Programming
سه شنبه 23 شهریور 1389, 09:05 صبح
من فکر می کنم داده رو نمی خونه و روی دستور Read گیر می کنه چون وقتی می خوام اطلاعات خونده شده رو show message کنه نمی تونه.فکر نمی کنم مشکل در اضافه شدن به Memo باشه.هر کاریش می کنم نمی شه،کمکم کنید:عصبانی++:
Mer30

ariobarzan
سه شنبه 23 شهریور 1389, 23:44 عصر
خب وقتی با showmessage چیزی نشون نده توی memo هم چیزی اضافه نمیشه
اول مطمئن شو که سخت افزار داره دیتا میفرسته . اینو میتونی با hyper terminal تست کنی
بعد تنظیمات پورت مهمه که باید با پیکربندی اطلاعات ارسالی ست شده باشه
حتما نیاز به اطلاعات نحوه ارسال دیتا از طرف سخت افزار هست
از این دوتا که مطمئن شدی بعد میرسی به دستور read و ارسال به memo

تلاش کن حتما موفق می شی:تشویق::تشویق::تشویق:

Z_Programming
چهارشنبه 24 شهریور 1389, 11:21 صبح
مرسی،مشکل رو پیدا کردم باید خودم براش فضا اختصاص بدم.وقتی با Set Length بهش فضا اختصاص دادم مشکل حل شد

Mer30

ariobarzan
چهارشنبه 24 شهریور 1389, 19:13 عصر
:تشویق::تشویق::تشویق::تشویق:: شویق::تشویق::تشویق::تشویق::ت ویق::تشویق::تشویق::تشویق::تش یق::تشویق::تشویق::تشویق::تشو ق::تشویق: