PDA

View Full Version : ارسال و دریافت هگز روی پورت



omidan321
دوشنبه 08 مهر 1392, 19:43 عصر
سلام به همگی
میخام یه پروسیجر یا فانکشن بنویسم که اعداد رو از هگز به دسیمال و برعکس تبدیل بکنه کسی میتونه کمکم کنه ؟
2. نوشتن اطلاعات روی پورت ایا الگوریتم خاصی داره ؟ اگه اره که ممنون میشم راهنماییم کنید

یوسف زالی
دوشنبه 08 مهر 1392, 20:36 عصر
1- سه بارش رو یادمه کد گذاشتیم.
بگردید.
2- الگوریتم خاص نداره، کامپوننت خاص داره. ComPort برای سریال مناسبه.
بگردید باز هم نمونه داره.

omidan321
دوشنبه 08 مهر 1392, 21:18 عصر
پورت سریال رو دیگه با کمک شما اساتید فوت آب شدم (دیگه میتونم تو دانشگاه واسش تز بدم) واسه این گفتم که شاید برای هگز الگوریتم دیگهای داشته باشه

****** اما مشکل من در تبدیل به هگز و برعکسش هست که سورس های زیادی دیدم ولی مشکلم با هیچکدومشون حل نشد

firststep
سه شنبه 09 مهر 1392, 14:00 عصر
پورت سریال رو دیگه با کمک شما اساتید فوت آب شدم (دیگه میتونم تو دانشگاه واسش تز بدم) واسه این گفتم که شاید برای هگز الگوریتم دیگهای داشته باشه

نه فکر نمی کنم عادی باید بفرسنتین



****** اما مشکل من در تبدیل به هگز و برعکسش هست که سورس های زیادی دیدم ولی مشکلم با هیچکدومشون حل نشد

مگه مشکل شما چیه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

omidan321
سه شنبه 09 مهر 1392, 16:20 عصر
برای من دیتای هگز میاد و منهم باید هگز پاسخ بدم هگز وقتی میاد کد شده میگیرم و هگز هم نمیتونم بفرستم

omidan321
چهارشنبه 10 مهر 1392, 20:30 عصر
کسی نیست ج منو بده به خدا کارم گیره اساسی

MohsenB
چهارشنبه 10 مهر 1392, 23:01 عصر
سلام

چرا اینقدر مسائل رو پیچیده میکنید ؟!
مگه هگز چیه؟ هگزم برای خودش یه مبناییه ، مثل دسیمال ، اوتال و ... . مثل اینه که یکی بگه من دسیمال رو نمیفهمم ولی از یک تا 100 رو میتونم بشمارم .!!

یه چیز دیگه هم که مبهمه اینه که منظور شما از گرفتن اطلاعات بصورت هگز چیه؟ بصورت کاراکترهای هگز دریافت میکنید ؟؟ بصورت BCD دریافت میکنید ؟؟؟ بصورت تکه اعداد بین 0 تا 15 دریافت میکنید ؟؟؟؟
یه کم بیشتر توضیح بدید .


موفق باشید

omidan321
پنج شنبه 11 مهر 1392, 06:07 صبح
ببینید من باید اطلاعات رو به این صورت بفرستم 13 23 1c a9 99 اول اینکه من اطلاعات رو با دستور زیر ارسال می کنم

var i:integer;
send_hex: array[1..5] of char
for i:=i to send_hex.length do
comport.write(send_hex[i],1);


با این کد میشه ارسال هگز کرد تو یه نرم افزار که قابلیت خوندن با هگز رو داره، به صورت هگز دریافت نمیکنه
** ایا درست هست که من اطلاعات هگز رو به صورت رشته دریافت کنم و تو یهالگوریتم جداگانه اونو تبدیلش به هگز کنم ؟
** توی دریافت هم مشکلی شبیه به همین دارم طرف فرستنده من داره اطلاعات رو میفرسته اما من قابلیت نمایش اونو ندارم

MohsenB
جمعه 12 مهر 1392, 12:01 عصر
سلام

بازم چیزی که مبهمه اینه که این پنج تا عددی که گفتین تشکیل یه عدد رو میده یا هر کروم یه عدده ؟
ولی در کل اگر قصد و منظور شما تبدیل عدد هگزادسیمال به دسیمال هست میتونید از روش ساده زیر استفاده کنید :

//convert 'D2' to '210'
r:= StrToInt('$D2');

برعکسشم که انشاءالله بلدین :

r:= IntToHex(210, 2);

در مورد ارسال اطلاعات هم : اگر افزونگی اطلاعات براتون مهم نیست همین روش خوبه ولی اگر کاهش حجم اطلاعات و افزایش سرعت مهمه باید بجای ارسال بصورت کاراکتر از خود بایت ارسالی استفاده کنید . میتونید این حالت رو در همین مثال بالا مشاهده کنید که شما برای ارسال هر بایت از دو بایت استفاده کرده اید . یعنی دو رقم عدد هگز میتونن اعدادی بین 0 تا 255 باشن که از یک بایت فراتر نمیرن ولی وقتی بصورت دوتا کاراکتر ارسال میکنید ، هر کاراکتر یک بایت رو اشغال میکنن ... .


موفق باشید

یوسف زالی
جمعه 12 مهر 1392, 12:51 عصر
البته اولیش StrToInt هست.

omidan321
چهارشنبه 17 مهر 1392, 08:51 صبح
من در مورد تبدیل اطلاعات هگز مشکلی ندارم (مثل همین کدی که دوستان دادند رو استفاده می کنم )
من یک نرم افزار دارم که اطلاعات رو به صورت هگز برای من میفرسته (نه استرینگی که شبیه به هگز باشه)
من با 1 کامپیوتر دیگه عبارت - a1 25 36- رو بااون نرم افزار ارسال می کنم
تصویر زیر دریافت اطلاعات توسط دلفی رو نسون میده
111670
با انواع متد های دریافت هم امتحان کردم ولی همشون همین طورین

کمک کککککککککککککک

omidan321
شنبه 20 مهر 1392, 09:28 صبح
کسی نیست ؟؟؟؟؟؟؟؟؟؟؟؟؟

یوسف زالی
شنبه 20 مهر 1392, 09:54 صبح
کدی که می بینید هگز نیست.
احتمالا از فشرده سازی استفاده نمی کنید؟

Delphi Coder
شنبه 20 مهر 1392, 13:01 عصر
برادر من عدد عدده. چه فرقی میکنه هگز یا باینری یا اکتال یا هگزا دسیمال این چیزا همش مربوط به نمایش اعداد میشه. شما وقتی کلاس مبانی کامپیوتر نرفتی تا پایه ای ترین اطلاعات مربوط به این رشته رو باهاش آشنا بشید روی پورتها چیکار دارید میکنید.

omidan321
دوشنبه 22 مهر 1392, 07:53 صبح
شما وقتی کلاس مبانی کامپیوتر نرفتی تا پایه ای ترین اطلاعات مربوط به این رشته رو باهاش آشنا بشید روی پورتها چیکار دارید میکنید.


کدی که می بینید هگز نیست.
احتمالا از فشرده سازی استفاده نمی کنید؟

اخوی من نا بلد
لینک زیر یک برنامه هست که قسمت پایینش انتخاب اینکه hex ارسال بکنی. شما با این نرم افزار هگز ارسال کن بعد با دلفی دریافتش رو انجام بده بعد از این کار منو راهنمایی کنید تا بتونم این کار از قول شما راحت رو انجام بدم - من الان تقریبا یک ماهی میشه که روش درام این کارو انجام می دم
منتظر جواب دوستان هستم

اینم لینک نرم افزار ارسال هگز:

http://uploadtak.com/images/g3538_serial_port_terminal.rar
http://uploadtak.com/viewer.php?file=g3538_serial_port_terminal.rar

omidan321
شنبه 27 مهر 1392, 09:55 صبح
کسی نیست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

omidan321
سه شنبه 21 آبان 1392, 12:52 عصر
سلام دوباره
من میخام کد هگز رو به صورتی روی پورت ارسال کنم که توی طرف مقابلم هم همین کد رو بگیره .
الان وقتی کد هگز رو ارسال میکنم اونور یه چیزه دیگه دریافت میکنه

برای مثال من این دیتا رو ارسال میکنم 16 161 81 242 22 که ارسال میکنم ولی اون سمت b4 44 e7 00 68 کدی که دریافت میکنم اینه .(من میخام دقیقا همین کد رو بگیره - )



میخام ببینم کسی از اساتید میتونه کمکم کنه؟؟؟؟؟؟؟؟؟

MohsenB
چهارشنبه 22 آبان 1392, 11:23 صبح
سلام

شما از چه کامپوننتی استفاده می کنید؟
فکر میکنم از nrComm نیست ، درسته ؟ اگر نیست پیشنهاد میکنم که از اون استفاده کنید ، هم مثالهای زیادی داره و هم فرومی برای پاسخگویی همراه با سوالات قبلی کاربرانش .


موفق باشید

omidan321
شنبه 25 آبان 1392, 07:17 صبح
مرسی این کامپوننت nrComm نسخه free وجود نداره ؟ هر چی هست نسخه تریالش هست .

اگه کسی هست که نسخه فری این کامپوننت رو در اختیار مون بزاره ممنون میشم .