اطلاعیه

Collapse
No announcement yet.

جدا کردن اعداد ، حروف و علایم در ارتباط سریال usart

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

    جدا کردن اعداد ، حروف و علایم در ارتباط سریال usart

    سلام به همه دوستان
    من یه دیتای دریافتی از پورت سریال دارم و میخوام یک سری اطلاعات رو استخراج کنم.
    با اتمگا 16 و sim800 کار میکنم و پیامکی رو که دریافت میکنم میخوام یکسری عدد ازش استخراج کنم.
    با چه دستوری میتونم این کار رو انجام بدم.
    از دستور strtok استفاده کردم ولی به درستی جواب نگرفتم.
    مثلا با ارسال رشته temp-20-hello- عبارت temp20hello رو دریافت میکنم.
    از کامپایلر AtmelStudio استفاده میکنم . با کدویژن هم کسی کمک کنه باز خوبه
    ممنون

    #2
    پاسخ : جدا کردن اعداد ، حروف و علایم در ارتباط سریال usart

    نوشته اصلی توسط mzselec نمایش پست ها
    سلام به همه دوستان
    من یه دیتای دریافتی از پورت سریال دارم و میخوام یک سری اطلاعات رو استخراج کنم.
    با اتمگا 16 و sim800 کار میکنم و پیامکی رو که دریافت میکنم میخوام یکسری عدد ازش استخراج کنم.
    با چه دستوری میتونم این کار رو انجام بدم.
    از دستور strtok استفاده کردم ولی به درستی جواب نگرفتم.
    مثلا با ارسال رشته temp-20-hello- عبارت temp20hello رو دریافت میکنم.
    از کامپایلر AtmelStudio استفاده میکنم . با کدویژن هم کسی کمک کنه باز خوبه
    ممنون
    با درود
    این کار زیاد سخت نیست و جز ابتدایی ترین کار ها با پورت سریال و هر پورت ارتباطی دیگه ست
    من چون سال هاست با این موارد کار نکردم دقیق یادم نیست
    ولی شمایی که دارید با این موارد کار میکنید باید خودتون بتونید این کار انجام بدید با ایده ها ی خودتون و تلاش مکرر
    خب شما این حروف و علایم به صورت بایت بایت دریافت میکنید و در نهایت در یک رشته ذهیره میکنید و بعد پردازش میکنید
    خب هر بایت این رشته چیزی جز یک کد عدد نیست که بین 0 تا 255
    از روی همین اعداد میتونید معادل اونو پیدا کنید
    پس تک تک بایت ها رو تفکیک و بررسی کنید . مثلا برای پیدا کردن اعداد اسکی بایت رو چک کنید ایا در محدوده فلان عدد تا فلان عدد هست که نشانه عدد اسکی هست و اون ها رو در ارایه یا رشته دیگه ذخییره کنید و با توابع باز تبدیلات لازم انجام بدیذ
    یه راه دیگه در صورتی که پیام دریافتی ساختار ثابتی داره این که از موقیععت مکانی اعداد یا حروف برای استخراجشون استفاده کنید

    و همچنین توابع مربوطه که کمک منیکنه توی کتابخونه ها هست .. باید توابع کتابخونه ها رو بشناسید تا بتونید در جای مناسب ازش استفاده کنید
    و بیشتر از هر چیزی باید خودتون تلاش کنید و ایده ایجاد کنید
    جدیدترین ویرایش توسط کاکو; ۱۹:۵۰ ۱۴۰۱/۰۱/۱۸.

    دیدگاه


      #3
      پاسخ : جدا کردن اعداد ، حروف و علایم در ارتباط سریال usart

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

      و همچنین توابع مربوطه که کمک منیکنه توی کتابخونه ها هست .. باید توابع کتابخونه ها رو بشناسید تا بتونید در جای مناسب ازش استفاده کنید
      و بیشتر از هر چیزی باید خودتون تلاش کنید و ایده ایجاد کنید
      ممنون ، منظورتون این هست که شماره خانه هایی که دیتای مورد نیازم هست رو پیدا کنم و توسط اونها دیتام رو تفکیک کنم؟

      دیدگاه


        #4
        پاسخ : جدا کردن اعداد ، حروف و علایم در ارتباط سریال usart

        نوشته اصلی توسط mzselec نمایش پست ها
        ممنون ، منظورتون این هست که شماره خانه هایی که دیتای مورد نیازم هست رو پیدا کنم و توسط اونها دیتام رو تفکیک کنم؟
        بله
        اگر دیتا یا رشته ای که دریافت میکنید ثابت هسست .. از روی شماره خانه ارایه یا رشته اقدام به استخراج کنید
        مثلا عبارت شما همیشه میگه
        ساعت 5 عصر
        ساعت 21 عصر
        ساعت 16 عصر
        از خانه مه اعداد شروع میشن جستجو و پردازش روی خانه ها رو شروع کنید تا زمانی که به حروف لرسید و دیتا های استخراج شده رو در ارایه یا رشته جدید ذخیره کنید
        اگر رشته مورد نظر رو استخراج کردید با توابع کتابخونه ای میتونید اون ها رو از حالت رشته به اعداد تبدیل کنید و در یک ریجستر به اندازه مورد نیاز ددخیره کنید تا بتونید هر کاری با اون انجام بدید

        یادتون نره اندیس رشته ها و ارایه ها از صفر شروع میشه یعنی اولین خانه خانه شماره صفر

        اگرم ثابت نیست عبارت رو از همون اولین خانه .. بایت ها رو تک تک برای پیدا کردن اعداد و حتی ممیز پردازش کنید
        جدیدترین ویرایش توسط کاکو; ۰۱:۱۰ ۱۴۰۱/۰۱/۲۰.

        دیدگاه


          #5
          پاسخ : جدا کردن اعداد ، حروف و علایم در ارتباط سریال usart

          نوشته اصلی توسط کاکو نمایش پست ها
          بله
          اگر دیتا یا رشته ای که دریافت میکنید ثابت هسست .. از روی شماره خانه ارایه یا رشته اقدام به استخراج کنید
          مثلا عبارت شما همیشه میگه
          ساعت 5 عصر
          ساعت 21 عصر
          ساعت 16 عصر
          از خانه مه اعداد شروع میشن جستجو و پردازش روی خانه ها رو شروع کنید تا زمانی که به حروف لرسید و دیتا های استخراج شده رو در ارایه یا رشته جدید ذخیره کنید
          اگر رشته مورد نظر رو استخراج کردید با توابع کتابخونه ای میتونید اون ها رو از حالت رشته به اعداد تبدیل کنید و در یک ریجستر به اندازه مورد نیاز ددخیره کنید تا بتونید هر کاری با اون انجام بدید

          یادتون نره اندیس رشته ها و ارایه ها از صفر شروع میشه یعنی اولین خانه خانه شماره صفر

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

          دیدگاه

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