تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 3 اولاول 123 آخرآخر
نمايش نتايج 11 به 20 از 28

نام تاپيک: خواندن محتویات فایل متنی

  1. #11
    اگه نباشه جاش خالی می مونه n340's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    0511
    پست ها
    371

    پيش فرض

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

    خب در مورد 500 بایت اول فایل wav
    من کارم ساخت عدوات الکترونیک هستش
    البته در بعد صنعتی
    حال نیاز به ای سی با حجم بالا دارم و می بایست محتویات یک فایل با حجم 2 مگ رو درون این ای سی بریزم
    پس نیاز هست مثلا 100 بایت 100 بایت اطلاعات رو خوانده و ارسال کنم به میکرو و میکرو بعد از دریاقت صحیح اطلاعات یک ok به پورت سریال ارسال کند تا برنامه تشخیص دهد که ارسال صحیح بود و به سراغ 100 بایت بعدی برود.

  2. #12
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    شما از رویداد آمدن اطلاعات پورت سریال استفاده کن.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    درون این while بایت های پورت سریال رو بردارید.
    برای کارتان پکت تعریف کنید. مثلا اگر اول 0x50 اومد بعد 0xaa اومد بعد 0x55 اومد یعنی اطلاعات درسته. اگر هم 0x50 اومد بعد 0xbb اومد بعد 0x55 اومد میکرو می گه دیتای دریافتیش خراب هست.
    شما اطلاعات رو بفرستید. بعد روند ارسال رو متوقف کنید(مثلا یک متغیر رو بررسی کنید اگر true شده بود برید سراغ بایت های بعدی). میکرو که پاسخ داد همان متغیر را بسته به شرایط تغییر دهید( اطلاعات درست آمده یا نه) اگر پاسخ صحیح آمد حلقه ی ارسال اطلاعات رو ادامه دهید. برای متوقف کردن می تونید یک while روی متغیر قرار دهید.
    حتما در برنامه های کند نظیر این از چند ریسمان یا چند پشت کار کن یا چند وظیفه استفاده کنید. این گونه ریسمان اصلی درگیر نمی شود.

    موفق باشید.

  3. #13
    اگه نباشه جاش خالی می مونه n340's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    0511
    پست ها
    371

    پيش فرض

    حتما در برنامه های کند نظیر این از چند ریسمان یا چند پشت کار کن یا چند وظیفه استفاده کنید. این گونه ریسمان اصلی درگیر نمی شود.
    من هنوز زیاد به اصطلاحات فنی C# وارد نشدن در این مورد توضیح می فرمایید

  4. #14
    اگه نباشه جاش خالی می مونه n340's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    0511
    پست ها
    371

    پيش فرض

    پروژه ای در این رابطه پیدا کردم که فکر کنم با تایم اوت مقدار دریافتی را دائم میخواند

    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    ولی کمی به مشکل برخوردم ،برای دریافت اطلاعات ارسالی بعد گذشت کمی زمات برنامه به مشکل برمیخورد و به خط زیر اشکال میگیرد

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    فکر کنم اطلاعات ارسالی می بایست حتما \r\n رو داشته باشند تا به عنوان خط خونده شوند
    Last edited by n340; 12-08-2012 at 14:18.

  5. #15
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    ریسمان همان Thread است.پشت کار کن همان BackgroundWorker هست.وظیفه هم Task.مختصری از مختصرات کلیات برنامه نویسی موازی:یک برنامه ی ساده تنها یکسری کد را پشت هم اجرا می کند. حال اگر بخواهیم چندین کد به صورت همزمان اجرا شوند یکی از موارد بیان شده مفید خواهد بود. برنامه شما در حالت عادی به کاربر پاسخ می دهد در نتیجه نباید متوقف شود چرا که توقف آن باعث می شود برنامه Not Responding شود. پس باید این روند ها را توسط یکسری کد دیگر اجرا کرد تا کد اصلی درگیر نشود.موفق باشید.

  6. #16
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    شما از ReadLine استفاده نکن. این متد برای سیستم ارسال رشته مناسب است نه ارسال بایت شما با توابعی نظیر putchar در میکرو مقادیر را بفرستید و در رایانه از ReadExisting استفاده کنید. این متد هرچه درون بافر است را می خواند.

  7. #17
    اگه نباشه جاش خالی می مونه n340's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    0511
    پست ها
    371

    پيش فرض

    برنامه رو به شکل زیر نوشتم

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    خب تا اینجا فایل m رو میخونه و ارسال میکنه به پورت سریال و مشکلی وجود نداره
    فقط اضافه کردن این پخش اخر کی سخته که 20 بایت رو ارسال کنه و صبر کنه برای ok از سمت گیرنده و ارسال 20 بایت بعدی
    فکر کنم به همون ترید نیاز باشه،ولی من در این مورد اصلا اطلاعاتی ندارم
    مثالی دارید
    کل پروژه رو ضمیمه هم کردم
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

  8. #18
    اگه نباشه جاش خالی می مونه n340's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    0511
    پست ها
    371

    پيش فرض

    مشکل به نظر حل شد
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  9. #19
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    من فرصت نکردم برنامه شما رو کامل بررسی کنم. اما چند نکته رو در کدهاتون دیدم که یادآورم:
    1- از متغیر char برای اطلاعات خام استفاده نکنید. برای اطلاعات خام از byte استفاده کنید.
    2- لیست پورت های موازی را دستی ندهید. بلکه comboBox رو با استفاده از همان کلاس serialPort کامل کنید. این کلاس یک متد استاتیک برای بدست آورن پورت های سریال رایانه دارد.
    3- حلقه قفل شما امن نیست. اگر اطلاعاتی نیاید چه می شود؟ تا قیامت آن قسمت می ماند!!!!!
    4- مدت زمان Timeout شما کم است. شما حداقل 500ms درج کنید.
    5- از رشته برای بررسی پکت های سریال استفاده نکنید. چون مقادیر عددی را نمی توانید خوب در اختیار بگیرید.
    6- همیشه ی همیشه نیازی به invoke نیست. شما کافیست تا عنصر مورد نظر را توسط پراپرتی InvkoeRequired بررسی کرده و در صورتی که نیاز است invoke کنید.

    طبق بیان شما برنامه کار می کند. اما سعی کنید موارد بالا را نیز بررسی کنید.
    بخشی از کد شما را تغییر دادم که در زیر قرار می دهم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این طوری حلقه بررسی شما قفل نمی کنه. یک متغیر هم اضافه کنید که اگر 2 بار دیتا ارسال شد و ok نیامد خطا دهد و ارسال متوقف گردد.


    موفق باشید.

  10. این کاربر از Msba بخاطر این مطلب مفید تشکر کرده است


  11. #20
    اگه نباشه جاش خالی می مونه n340's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    0511
    پست ها
    371

    پيش فرض

    با تشکر از وقتی گزاشتید،برنامه رو به تکمیلی میرود
    فقط یک مورد مشکل برخوردم
    به byte کردن متغییر اولیه و همچنین دو خط بعد برنامه به مشکل برخورد و ارسالی نداشت که دوباره به char برگرداندم
    دلیل استفاده از بایت و تبدیل ان به UTF چیست؟

    نهایتا بصورت زیر تغییرات اعمال شد
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و چند سوال ،در قسمت بالا من ترید t رو ساخته و t رو استارت میزنم ،کجا میتونم این t رو کنسل کنم که اصلا دیگر تابع mgf فراخوانی نشود
    و textbox نمایش را چگونه میشود تنظیم نمود تا متن جدید را دنبال کند و پیغام های جدید را نمایش دهد کند.
    مقایسه رشته "ok" مشکل داشت و نهایتا با ارسال "x" خاتمه دادم موضوع ارسال رو
    و در مورد بیت خطا نیازی به این بیت نیست چون ممکنه میکرو پیغام هایی رو به حالت تکست هست بخواد ارسال کته،و مصرفی جز دیدن کاربر ندارد
    و در اخر چگونه میشود از browse استفاده کرد

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •