اطلاعیه

Collapse
No announcement yet.

ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

    چند تا راه داری
    بهترینش که من جواب گرفتم اینه
    کد:
    S1 = Right$(gsmdata, 2)
    
    'S1 = Left$(S1, 1)
    If S1 = Chr$(13) & Chr$(10)
    یعنی اینکه وفتی که یک کد رو میفرستی با bascom اخرش یک line feet carreturn یا به عبارتی vbCrLf
    خوب شما 2 کاراکتر اخر رو میگیری و اگر vbCrLf بود کارت رو انچام میدی

    راه دیگش اینه که با دستور mid ببینی چند تا کاراکتر اومده
    به راه دیگش اینه که تو میکرو بعد از هر دستور یم ماراکتر مشخص مثلا * بفرستی و تو vb6 چک کنی و وفتی start رو دیدی یعنی دیتا کانلا دریافت شده
    علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

    دیدگاه


      پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

      سلام
      بچه ها یکی نیست به من بگه ویژوال بیسیک در کل چیه و در کل بدرد چی میخوره و در کل کجا ها کاربرد داره
      در کل به من بفهمونید دیگه
      باشه
      ممننون
      :wow:
      مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

      دیدگاه


        پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

        ویژوال بیسیک یه زبان برنامه نویسی هست وبرای کامپیوتر هست

        اگر شما بخواید یه برنامه واسه کامپیوتر یا ویندوز بسازی باید بری سراغ این
        علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

        دیدگاه


          پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

          سلام
          من به یه مشکل برخوردم. یه ماهی هست که دارم روش کار میکنم اما جواب نمیگیرم. یه برنامه با بسکام نوشتم که فایل رو از توی mmc به پورت سریال کامپیوتر میفرسته. مشکل اینجاست که اگه یه فایل با حجم کم مثلا 1 کیلو بایت رو بفرستم درست کار میکنه اما اگه یه فایل بزرگتر مثلا 10 کیلو بایت رو بفرستم تعدادی از بایتها گم میشه و به کامپیوتر نمی رسه. برنامه کامپیوتر رو با vb6 نوشتم و از mscomm32 استفاده کردم. برنامه به این شکله: کامپیوتر به میکرو فرمان ارسال رو میده و یه تایمر در کامپیوتر روشن میشه. وقفه دریافت در کامپیوتر فعال شده و با هر بایتی که دریافت میشه در روتین oncomm تایمر ریست میشه. اگه کل فایل منتقل بشه تایمر سرریز میشه و در روتین timer داده از بافر خونده میشه. لطفا اگه کسی با این مشکل مواجه شده راهنمایی کنه.

          دیدگاه


            پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

            سلام

            میخواستم یه تاپیک جدا باز کنم، دیدم اینجا همه جمعن، همینجا سوالمو بگم. :read:

            من یه برنامه تو ویژوال بیسیک نوشتم که از طریق rs232 با یه میکرو مرتبط میشه. یه تکست باکس دارم که هر داده ای رو بخوام میفرستم.
            ولی الان میخوام یه فایل رو تو ویژوال بیسیک بگیرم و با فرمت باینری به میکرو بدم.
            حالا چطوری تو ویژوال بیسیک آدرس بدم که فایل رو از کجا برداره. مثلا یه فایل txt. درست کردم میخوام بگم اینو بفرسته. تو این فایلهای آموزشی یه چیزهایی یافتم ولی دقیقا سر و تهشو نفهمیدم.

            کسی نمونه کد از دریافت یه فایل و ذخیره ش تو یه آرایه داره؟

            تشکر


            دیدگاه


              پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

              نوشته اصلی توسط rt28
              سلام

              میخواستم یه تاپیک جدا باز کنم، دیدم اینجا همه جمعن، همینجا سوالمو بگم. :read:

              من یه برنامه تو ویژوال بیسیک نوشتم که از طریق rs232 با یه میکرو مرتبط میشه. یه تکست باکس دارم که هر داده ای رو بخوام میفرستم.
              ولی الان میخوام یه فایل رو تو ویژوال بیسیک بگیرم و با فرمت باینری به میکرو بدم.
              حالا چطوری تو ویژوال بیسیک آدرس بدم که فایل رو از کجا برداره. مثلا یه فایل txt. درست کردم میخوام بگم اینو بفرسته. تو این فایلهای آموزشی یه چیزهایی یافتم ولی دقیقا سر و تهشو نفهمیدم.

              کسی نمونه کد از دریافت یه فایل و ذخیره ش تو یه آرایه داره؟

              تشکر
              من یه زمون اینو تو c++ نوشته بودم . البته ویژال نه . شاید به دردت بخوره .
              #include<fstream.h>
              #include<iostream.h>
              #include<stdlib.h>
              #include<conio.h>
              #include<string.h>
              #include<stdio.h>
              int main()
              {
              char *name;
              clrscr();
              ofstream fp("test"
              if(!fp){
              cout<<"Cannot open file.";
              exit(0);
              }
              cout<<"Enter names and to end:\n";
              first:
              gets (name);

              if (!strcmp( name,"name&quot)
              {
              goto conti;
              }
              else if(!name[0])
              {
              goto conti;
              }
              fp<< name<<"\n";
              goto first;

              conti:

              return 0;
              }

              دیدگاه


                پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

                dim Fnum as Long , Flen as Long , i as Long -1
                Fnum = FreeFile() -2
                Flen = FileLen("C:\FileName.txt&quot -3
                Open "C:\FileName.txt" For Binary as #Fnum -4
                For i = 0 to Flen -5
                Get #Fnum , Array(i) -6
                next i -7
                سلام این کد فکر میکنم کارتون رو راه میندازه

                دیدگاه


                  پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

                  نوشته اصلی توسط aed
                  dim Fnum as Long , Flen as Long , i as Long -1
                  Fnum = FreeFile() -2
                  Flen = FileLen("C:\FileName.txt&quot -3
                  Open "C:\FileName.txt" For Binary as #Fnum -4
                  For i = 0 to Flen -5
                  Get #Fnum , Array(i) -6
                  next i -7
                  سلام این کد فکر میکنم کارتون رو راه میندازه
                  این خط ارور میده
                  Get #Fnum , Array(i)

                  compile error: expected list separator

                  این ارور برای چی میاد؟

                  دیدگاه


                    پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

                    فهمیدم مشکل چی بود

                    یه دونه از اینا "," کم بود

                    Get #Fnum , , Array(i)

                    حالا سوال بعد: :smile:

                    فرض کنید طول آرایه 800 باشه، یعنی حجم فایل 800 بایت باشه.
                    برای ارسال باید اینارو 60 تا 60 تا بفرستم بره که قاعدتا باید یه حلقه تو در تو بزنم با نقطه شروع و پایان متغیر. حالا سوال اینه که دستوری تو VB هست که منتظر بمونه تا یه کاراکتر خاص از میکرو بیاد بعدش سری بعدی رو بفرسته؟

                    دیدگاه


                      پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

                      مجددا سلام

                      کسی نبود این سوال منو جواب بده؟ چه دستوری تو ویژوال بیسیک هست که منتظر میمونه یه کاراکتر از میکرو بیاد بعد ادامه بده؟

                      من این دستور رو پیدا کردم ولی کار نمیکنه.

                      Do Until MSComm1.CommEvent = comEvReceive
                      loop

                      نظر انتقاد پیشنهاد

                      دیدگاه


                        پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

                        سلام
                        من از آخرین باری که با vb6 کار کردم مدتهای زیادی می گذره پیشنهادم این هست شما هم به vb.net روجوع کنین و خودتون رو به روز نگه دارین
                        این خاصیت رو ست کردین؟inputlen
                        MSCOmm1.inputlen=0
                        و همچنین می تونین توسط MSCOmm1.input بایت از راه رسیده رو بخونین
                        مثلا

                        dim b as string
                        b=0
                        do
                        MSCOmm1.input
                        loop until b<>0

                        و با رسیدن اولین بایت از حلقه خارج بشین
                        هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                        دیدگاه


                          پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

                          سلام
                          inputlen رو ست کرده بودم

                          این برنامه ای هم که گذاشتین دوتا ایراد میگیره. MSCOmm1.input ظاهرا باید تو یه آرایه ذخیره بشه از طرفی وقتی b رو ارایه تعریف میکنم خط آخر رو ایراد میگیره.

                          وقتی از خود CommEvent استفاده میکنم که کلا هنگ میکنه!

                          این vb.net دقیقا چیه؟

                          ممنون

                          دیدگاه


                            پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

                            سلام
                            خروجی تابع string هست برنامه رو عجله ای قرار دادم متغییر b رو یادم رفت نسبت بدم
                            dim b as string
                            b=0
                            do
                            b=MSCOmm1.input
                            loop until b<>0

                            vb.net نسخه پیشرفته basci تحت کامپایلر visual studio 2003 به بعد هست و همچنین با بهره گیری از پلت فرم دات نت خیلی از کارها به مراتب ساده تر شدن ان
                            هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                            دیدگاه


                              پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

                              بااجازه ی بزرگترا. L-)

                              جناب rt28 میشه یه باره دیگه مشکلتون رو خیلی کوتاه تر عرض کنید.این رو بذارید جای تنبلی بنده.

                              من قدیما خیلی کارا با ویژوال بیسیک انجام میدادم.میگم شاید شاید شاید بتونم بهتون کمک کنم.
                              ?Why not

                              دیدگاه


                                پاسخ : ویژوال بیسیک و ارتباط کامپیوتر (پورتrs232) با میکرو

                                نوشته اصلی توسط baby_1
                                سلام
                                خروجی تابع string هست برنامه رو عجله ای قرار دادم متغییر b رو یادم رفت نسبت بدم
                                dim b as string
                                b=0
                                do
                                b=MSCOmm1.input
                                loop until b<>0

                                vb.net نسخه پیشرفته basci تحت کامپایلر visual studio 2003 به بعد هست و همچنین با بهره گیری از پلت فرم دات نت خیلی از کارها به مراتب ساده تر شدن ان
                                خط b=MSCOmm1.input رو درست کرده بودم ولی خط آخر ارور type mismatch میده

                                این برنامه vb.net رو از کجا دانلود کنم؟ یه سرچ زدم یه سری لینک پیدا کردم ولی نمیدونم از کدوم سایت بگیرم که کامل باشه بعدا دردسر درست نکنه.


                                نوشته اصلی توسط QUARK
                                بااجازه ی بزرگترا. L-)

                                جناب rt28 میشه یه باره دیگه مشکلتون رو خیلی کوتاه تر عرض کنید.این رو بذارید جای تنبلی بنده.

                                من قدیما خیلی کارا با ویژوال بیسیک انجام میدادم.میگم شاید شاید شاید بتونم بهتون کمک کنم.
                                تشکر :smile:
                                من میخوام یه فایل رو با ویژوال بیسیک و RS232 بفرستم به میکرو. برای ارسال هم میخوام تو بسته های 60 بایتی ارسال کنم و بعد از هر 60 بایت VBمنتظر بمونه تا یه کاراکتر از میکرو دریافت کنه (میکرو اعلام آمادگی کنه) بعد 60 بایت بعدی رو بفرسته. از دستور CommEvent که استفاده میکنم کلا هنگ میکنه. یعنی not responding میشه که باید ببندمش دوباره بازش کنم.

                                دیدگاه

                                لطفا صبر کنید...
                                X