اطلاعیه

Collapse
No announcement yet.

اشکال در برنامه gps

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

    اشکال در برنامه gps

    و خدایی که در این نز دیکیست
    دوستان سلام
    یه سوال تو برنامه خوندن دیتا gps با میکرو دارم
    وقتی دیتا تو یه خط تموم میشه کاراکتر پایانی چیه ؟ اینتره یا ......؟
    راستش میخوام از هر کدو م از مد های اون جدا استفاده کنم برای همین خط به خط دارم می رم جلو .
    ممنون میشم منو یار ی کنید...............
    در میان مردم پی دستی هستم پی گرمای نگاهی حتی در پس این همه چشم سردی غربت انسان پیداست
    در پس، این همه نور این همه رنگ چه کسی میبیند اشک آن کودک را چشم آن مردی را
    که شبانگاه، سر افکنده ز شرم و به یاد طفل اش بی صدا میگرید، می شکند
    آری این شهر من است این همان شهر شما است در پی چشمی باش که نگاه اش آبی است و پر از نم نم باران بهار

    #2
    پاسخ : اشکال در برنامه gps

    نیازی به تشخیص سطر نیست شما از کارکتر $ برای تشخیص ابتدای پیغام واز کاراکتر های بعدی برای نوع پیغام میتونید استفاده کنید

    دیدگاه


      #3
      پاسخ : اشکال در برنامه gps

      شاید دارن از دستور input توی بیسیک یا scanf توی سی استفاده میکنن که نمیتونن پایان خط رو تشخیص بدن


      توی بیسیک برنامه دنبال کارکتر 13 میگرده (یعنی عدد 13 یا همون CR (carriage return) که توی سی میشه \n)

      البته توی سی هم همینطوریه

      ولی بعضی از سیستمها بعد یا قبل \n یه کارکتر 10 اسکی رو که میشه line feed هم ارسال میکنه

      که این کار رو خراب میکنه

      وقتی شما با if داده رو چک میکنید این 10 معمولا اول خط دوم به بعد هست واسه همین جواب غلط در میاد

      میتونی با هر کامپایلری که داری کار میکنه رشته رو کارکتر به کارکتر به شکل کد اسکی نشون بدی تا ببینی چی توش اضافست

      بعد با دستورهای کار با رشته ها اونو جدا کنی

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

      به هر حال ارتباطهای استاندارد این دو کد رو میفرستن اگه چیز دیگه ای توشه این دیگه تقصیر این چینیهاست (یه عمر کنگ فو کار میکردن الان رفتن تو کار الکترونیک)

      (cr یعنی انتهای خط فعلی line feed هم یعنی برو خط بعد)
      به وبلاگم سر بزنید

      دیدگاه


        #4
        پاسخ : اشکال در برنامه gps

        نوشته اصلی توسط samisin
        نیازی به تشخیص سطر نیست شما از کارکتر $ برای تشخیص ابتدای پیغام واز کاراکتر های بعدی برای نوع پیغام میتونید استفاده کنید
        اول از توجهتون تشکر میکنم
        اما من دقیقا اخر هر سطرو میخوام چون که ممکنه تو حالت cold باشه و با$ شروع نشه اما حتما با اینتر یا ine feed تموم میشه .

        نوشته اصلی توسط alitaroosheh
        شاید دارن از دستور input توی بیسیک یا scanf توی سی استفاده میکنن که نمیتونن پایان خط رو تشخیص بدن
        از شما هم تشکر میکنم
        راستش من با سی برنامم رو نوشتم و با تابع getchar کار میکنم البته در ماهیت قضیه که فرقی نمیکنه


        نوشته اصلی توسط alitaroosheh

        وقتی شما با if داده رو چک میکنید این 10 معمولا اول خط دوم به بعد هست واسه همین جواب غلط در میاد
        کاملا حرفتون صحیحه و روشتون هم بسیار مناسبه .


        نوشته اصلی توسط alitaroosheh


        اگه چیز دیگه ای توشه این دیگه تقصیر این چینیهاست (یه عمر کنگ فو کار میکردن الان رفتن تو کار الکترونیک)

        حرف حق که جواب نداره











        در میان مردم پی دستی هستم پی گرمای نگاهی حتی در پس این همه چشم سردی غربت انسان پیداست
        در پس، این همه نور این همه رنگ چه کسی میبیند اشک آن کودک را چشم آن مردی را
        که شبانگاه، سر افکنده ز شرم و به یاد طفل اش بی صدا میگرید، می شکند
        آری این شهر من است این همان شهر شما است در پی چشمی باش که نگاه اش آبی است و پر از نم نم باران بهار

        دیدگاه


          #5
          پاسخ : اشکال در برنامه gps

          اگه اجازه بدید یه سوال دیگه مطرح کنم

          من تو این برنامه برای عرض جغرافیایی چهار عدد دارم بعد یه ممیز و دوباره چهار عدد دیگه درسته ؟
          حالا دو عدد اول که درجه است .(اینو جدا کردم )
          دو عدد دوم هم به عنوان ساعت جدا کردم
          میرسیم به چها عدد بعد از ممیز .از این چهارتا میخوام دو تا عدد به عنوان دقیقه بگیرم و بقیه رو رها کنم
          الگوریتم من این جوریه که ابتدا چها کاراکتر با ماهیت اسکیم رو به چهار اینتیجر دسیمال تبدیل می کنم و بعد در 60 ضرب کرده سپس و در متغیر m میریزم و حالا
          f=m/10000;
          تا حال یه عدد دو رقمی البته با ماهیت دسیمال دارم ..درسته ؟
          از اینجا به بعد باید این عدد دسیمالم رو به اسکی تبدیل کنم با این برنامه
          a=f%10;
          b=f/10;
          a یکان عددمه و b دهگان ....درسته ؟
          به a و b باید 48 تا اضافه کرد تا هر کدوم اسکی بشه ..
          حالا به ترتیب می ریزم تو یه ارایه دو تایی و ازش به عنوان دقیقه استفاده می کنم ...
          اما جوابی که می گیرم یه کاراکتره که تا حالا تو عمرم هم ندیدم و حتی نمیتونم براتون اینجا بزارم .
          فکر میکنید مشکل من باید کجا باشه ؟ ممنون میشم که کمکم کنید ........


          در میان مردم پی دستی هستم پی گرمای نگاهی حتی در پس این همه چشم سردی غربت انسان پیداست
          در پس، این همه نور این همه رنگ چه کسی میبیند اشک آن کودک را چشم آن مردی را
          که شبانگاه، سر افکنده ز شرم و به یاد طفل اش بی صدا میگرید، می شکند
          آری این شهر من است این همان شهر شما است در پی چشمی باش که نگاه اش آبی است و پر از نم نم باران بهار

          دیدگاه


            #6
            پاسخ : اشکال در برنامه gps

            دوستان عزیز کسی نیست که به من کمک کنه :cry2:
            در میان مردم پی دستی هستم پی گرمای نگاهی حتی در پس این همه چشم سردی غربت انسان پیداست
            در پس، این همه نور این همه رنگ چه کسی میبیند اشک آن کودک را چشم آن مردی را
            که شبانگاه، سر افکنده ز شرم و به یاد طفل اش بی صدا میگرید، می شکند
            آری این شهر من است این همان شهر شما است در پی چشمی باش که نگاه اش آبی است و پر از نم نم باران بهار

            دیدگاه


              #7
              پاسخ : اشکال در برنامه gps

              آقا بیخیال من از حرفات چیزی سر در نیاوردم oo: :mrgreen:

              ولی جای این کارا خوب از توابع کتاخونه های stream.h و string.h استفاده کن

              توش تابع هست عدد به اسکی و اسکی به عدد (از هر نوع) انجام میده و توی string.h هم از این کارای جدا کردن و کپی کردن یه قسمت یه آرایه جای دیگه

              مثلا ftoa توی Stream.h عدد از نوع float رو به رشته تبدیل میکنه

              امیدوارم درست متوجه منظورت شده باشم :mrgreen:
              به وبلاگم سر بزنید

              دیدگاه


                #8
                پاسخ : اشکال در برنامه gps

                سلام تا جایی که من می دونم در هر حالت علامت $ برای تشخیص ابتدای پیغام هست حتی وقتی هیچ اطلاعاتی دریافت نشه
                برای تبدیل کاراکتر به اینتیجر از توابع atoi وitoa در کتابخونه stdlib استفاده کن
                تعداد ویرگول ها در هر شرایطی ثابته ومیتونی برای تشخیص محل داده مورد نظر ازش بهره مند شی
                همچنین فواصل زمانی ماژول رو زیاد مثلا 3 ثانیه تنضیم کن وانتراپت گیرنده رو استفاده کن

                دیدگاه

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