ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

نمایش نتایج: از 1 به 9 از 9
  1. #1
    2009/01/09
    23
    0

    ارسال یک مقدار دابل با پورت سریال و دریافت آن با کامپیوتر دیگر

    سلام من می خوام برنامه ای بنویسم با زبان c++ که یک مقدار دابل را با پورت سریال از یک کامپیوتر به یک کامپیوتر دیگر بفرستد و به درستی دریافت کند
    لطفا اگه کسی چنین کدی داره یا می تونه راهنمایی کنید
  2. #2
    2009/10/21
    تهران
    2,505
    207

    پاسخ : ارسال یک مقدار دابل با پورت سریال و دریافت آن با کامپیوتر دیگر

    در کد زیر یک عدد float (4 بایتی)ارسال میشه

    char* chptr;
    .
    .
    .
    chptr=(char*)&myfloat;
    putchar(*chptr);
    chptr++;
    putchar(*chptr);
    chptr++;
    putchar(*chptr);
    chptr++;
    putchar(*chptr);

    چون بایت با آدرس کمتر ابتدا ارسال میشه در طرف دیگه 4 بایت دریافت و به تعداد لازم شیفت داده میشه (اولین بایت هیچی؛ دومین بایت یک بایت شیفت داده میشه و ...)
    و در آخر 4 بایت به هم چسبونده میشن مثلا با اپراتور or و بعد tpecast میشن به float
    این راه اصولیش هست راه های دیگه هم هست که میشه انجام داد
  3. #3
    2009/01/09
    23
    0

    پاسخ : ارسال یک مقدار دابل با پورت سریال و دریافت آن با کامپیوتر دیگر

    ممنون از پاسختون
    در مورد دریافتش ، وقفه یا برنامه انتظار برای دریافت اطلاعات باید چی کار کرد
  4. #4
    2009/01/09
    23
    0

    پاسخ : ارسال یک مقدار دابل با پورت سریال و دریافت آن با کامپیوتر دیگر

    لطفا کسی کمک کنه
    در مورد دریافت اطلاعات از پورت rs232 بین دو تا کامپیوتر در زبان c++ باید چی کار کنم
  5. #5
    2012/07/21
    834
    23

    پاسخ : ارسال یک مقدار دابل با پورت سریال و دریافت آن با کامپیوتر دیگر

    شما باید اطلاعات مختصری راجه به انواع داده ها در کامپایلر مورد نظرتون داشته باشید. متغیر اعشاری ممیز شناور دو نوعه: یکی با دقت تکی یا single یا float که 4 بایت حافظه اشغال می کنه، و دیگری با دقت مضاعف یا double که 8 بایت حافظه می گیره.
    ساده ترین راه ارسال باینری اعداد اعشاری اینه که محدوده مورد نظر رو مشخص کنی، عدد رو ضرب در یک مقیاس بزرگ کنی و بعد به شکل عدد صحیح بفرستی. سمت گیرنده هم کافیه عدد صحیح دریافتی رو بر مقیاس تبدیل کنی. مثلاً اعداد بین 30 تا 30- که ضرب در 1000 بشه و تا سه رقم اعشار دقت داشته باشه.
    اگر همچنان به ارسال خودِ متغیر اعشار مُصر هستید، از راهی که دوستمون اشاره کردند باید استفاده کنید. به این صورت که یه اشاره گر از نوع تک بایتی (char یا uchar) تعریف کنید و آدرس متغیر مورد نظرتون رو بهش تخصیص بدید. بعدش 4 بار (برای float) یا 8 بار (برای double) محتوای اشاره گر رو به پورت سریال بفرستید و اشاره گر رو اضافه کنید.
    این مثالش (برای float که 4 بایته):
    کد:
    char* p_char;
    float x_f;
    .
    x_f=1.23;
    .
    p_char= (char*) &x_f;
    for(int i=0; i<4; i++)
       sendbyte(*p_char++);
    در گیرنده برعکس عمل کنید:
    کد:
    char* p_char;
    float x_f;
    .
    p_char= (char*) &x_f;
    for(int i=0; i<4; i++)
      {
       *p_char = getbyte();
       p_char++;
      }
    
    // Now 'x_f' has a valid number.
    بیایید با Google آشتی کنیم!
  6. #6
    2009/01/09
    23
    0

    پاسخ : ارسال یک مقدار دابل با پورت سریال و دریافت آن با کامپیوتر دیگر

    خیلی ممنون از پاسختون
    اگه برنامه ای برای ارسال و دریافت اطلاعات هم دارید لطفا برام بفرستید
  7. #7
    2012/07/21
    834
    23

    پاسخ : ارسال یک مقدار دابل با پورت سریال و دریافت آن با کامپیوتر دیگر

    نقل قول نوشته اصلی توسط gholamaligolabi
    خیلی ممنون از پاسختون
    اگه برنامه ای برای ارسال و دریافت اطلاعات هم دارید لطفا برام بفرستید
    خواهش می کنم.
    اون قسمت دیگه کارِ شماست
    بیایید با Google آشتی کنیم!
  8. #8
    2009/01/09
    23
    0

    پاسخ : ارسال یک مقدار دابل با پورت سریال و دریافت آن با کامپیوتر دیگر

    بازم سلام
    این کارو وقتی داخل یک کامپیوتر انجام میدم دابل به دست اومده درسته ولی وقتی ارسالش می کنم توی کامپیوتر دوم از 8 بایت بایت اول اشتباه ارسال میشه ولی بایت های دوم و سوم و چهارم اکثرا دقیق ارسال میشه و بایت های آخر تقریبا رندم است و در مجموع جواب درست به دست نمیاد
    روش دیگه ای هست یا راهی برای درست کردن این مشکل ممنون
  9. #9
    2012/07/21
    834
    23

    پاسخ : ارسال یک مقدار دابل با پورت سریال و دریافت آن با کامپیوتر دیگر

    نقل قول نوشته اصلی توسط gholamaligolabi
    این کارو وقتی داخل یک کامپیوتر انجام میدم دابل به دست اومده درسته
    یعنی چی "داخل یک کامپیوتر"؟! از پورت سریال استفاده می کنید آیا؟!

    نقل قول نوشته اصلی توسط gholamaligolabi
    روش دیگه ای هست یا راهی برای درست کردن این مشکل ممنون
    شما یک پورت سریال لازم دارید که اعداد موجود در 8 بایت حافظه رو به ترتیب می فرستید برای گیرنده. چیزِ عجیب غریبی نیست که انقدر بزرگش می کنید! اول ارتباط سریال رو چک کنید و همه جور عددی روی اون بفرستید تا مطمئن بشید درسته. بعدش هم برنامه تون رو خوب دیباگ کنید. این کار شدنیه، راه حلش رو بهتون گفتیم.
    من شونصد بار از این روش برای ارتباط باینری استفاده کردم و مشکلی نداشتم مگر در سخت افزار پورت سریال یا خطاهای برنامه نویسی که هر دو قابل رفع هستند.
    بیایید با Google آشتی کنیم!
نمایش نتایج: از 1 به 9 از 9

موضوعات مشابه

  1. پاسخ: 0
    آخرين نوشته: 2015/03/12, 18:19
  2. مشکل در ارسال و دریافت عدد در پورت سریال بین دو میکرو
    توسط mehdi_24 در انجمن میکروکنترلرهای AVR
    پاسخ: 7
    آخرين نوشته: 2014/11/21, 12:35
  3. ارسال و دریافت حجم زیاد اطلاعات از پورت سریال
    توسط KARAMI_AMIR1 در انجمن میکروکنترلرهای AVR
    پاسخ: 16
    آخرين نوشته: 2013/12/03, 09:15
  4. دریافت 16 بیت و ارسال 32 بیت داده به کامپیوتر از طریق پورت سریال
    توسط ashaebani2002 در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2012/05/18, 19:51
  5. دریافت اطلاعات از پورت سریال کامپیوتر
    توسط nex2004 در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2011/02/04, 10:28

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •