View Full Version : سوال: خواندن و نوشتن مقادیر هگزا بر روی پورت شبکه
gholami146
چهارشنبه 06 خرداد 1394, 19:42 عصر
با سلام
من باید برنامه ای بنویسم که بتونه مقادیری از نوع ASCII رو از روی پورت شبکه Ethernet بخونه و بنویسه
من از دلفی XE6 استفاده می کنم و این کد هایی رو که من باید ارسال و دریافت کنم مربوط به یک دستگاه اندازه گیری دما و رطوبت هست
از دوستان تقاضا دارم اگر می تونن منو راهنمایی کنن
با تشکر
Mask
پنج شنبه 07 خرداد 1394, 02:09 صبح
خوب الان مشکل دقیقا کجاست؟
پروتکل دستگاه چیه؟کافیه یه پورت Listen کنید تا دیتای دستگاه رو بگیرید و روی همون پورت هم مقادیر مورد نیاز رو ارسال کنید.
gholami146
پنج شنبه 28 خرداد 1394, 23:43 عصر
با تشکر از لطف شما
من از طریق پورت 2101 که در دستگاه مقصد تعریف شده با استفاده از TclientSocket ارتباط برقرار کردم.
فقط باید به این دستگاه از طریق مقادیر هگزا دسیمال داده ارسال کنم و جواب رو که باز هم بصورت هگزا دسیمال هست بخونم این دستگاه از یک فرمول خاص استفاده می کنه که به شکل زیر هست
Command :|Frame Header | Length | Address | Command Code | Check Code | Ending Frame
که مقادیر فریم هدر برابر با 0xFF و مقدار اندینگ فریم برابر با 0xFE هست و مقدار چک کد هم از فرمول
Check code = 0x00 - (Lenghth + Add + Command cod +Data ) محاسبه میشه
حالا من میخ.ام بدم نم من چطوری میتونم این مقادیر رو با استفاده از کامپوننت TClientSocket خود دلفی بصورت هگزا به داخل شبکه ارسال کنم
که تقریبا این شکلی میشه
Command :|0xFF|0x06|0x01|0x01|check code|0x0FE
لطفا در صورت ممکن راهنمایی کنید
pbm_soy
جمعه 29 خرداد 1394, 02:43 صبح
قبل از هرکاری شما باید دستگاه مقابل را بدرستی باید شناسائی کنید!
آیا در دستگاه مقابل سرویسی در حال اجرا است؟ با توجه به اینکه شما میخواید از طریق سوکت نویسی به آن وصل شوید پس جواب مثبت است!
این سرویس به چه پورتی گوش میدهد؟ نوع این پورت از چه نوع است TCP یا UDP ؟ البته نوع این پورت بروی این نوع دستگاه ها اکثرا TCP است
آیا همرا دستگاه دفترچه ای یا راهنمائی نیست؟ که پروتکلهای دستگاه را توضیح دهد؟ حتما باید باشد و یا اینکه میتوانید مدل دستگاه را سرچ کنید و پیدا کنید (البته با کمی شانس)
تنها چیزی که از پست بالا میتوان فهمید اینه که شما نیاز به یک structure و یا record دارید که در آن این چند فیلد باشد و سپس شما یک نمونه از این رکورد ایجاد میکنید و داده هایتان را در آن ذخیره کرده و از طریق کانکشنی که ایجاد کردید به سمت دستگاه بفرستید!
درضمن چون خیلی وقته دلفی ننوشتم و تا اونجائی که یادم میاد دلفی داده نوع هگز ندارد و داده های هگز را باید بصورت رشته ای ذخیره کنی و بفرستی مانند '1F0C'
gholami146
جمعه 29 خرداد 1394, 08:23 صبح
بله البته سرویس داره روی پورت ۲۱۰۱ TCP
اگه ممکنه در مورد ارسال اطلاعات بصورت هگزادسیمال بر روی سوکت توضیحاتی بدید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.