اطلاعیه

Collapse
No announcement yet.

پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی

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

    پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی

    با سلام، میخوام دستورات کنترلی به پردازنده بردرو بصورت دستورات متنی ارسال کنم (یه چیزی مثل AT command ها) شماچه روش یا الگوریتمی رو برای دریافت و پردازش پیشنهاد میدید؟

    #2
    پاسخ : پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی

    نوشته اصلی توسط mojalan نمایش پست ها
    با سلام، میخوام دستورات کنترلی به پردازنده بردرو بصورت دستورات متنی ارسال کنم (یه چیزی مثل AT command ها) شماچه روش یا الگوریتمی رو برای دریافت و پردازش پیشنهاد میدید؟
    با سلام
    این مطلب در ابتدا به شکل دستورات ارسالی بستگی داره. یعنی اول باید بدونید رشته ی دریافت شده از چه بخشهایی تشکیل شده، بعد اون بخشها رو از هم جدا و احتمالا رشته های عددی رو به عدد تبدیل کنین و مثلا چک سامش رو محاسبه و مقایسه کنین تا از صحت رشته ی دریافتی مطمئن بشین.
    و پس از اون پاسخ مناسب اون دستور رو بدین یا اجراش کنین.
    یک رشته ی استاندارد ارسالی عموما شامل یک کاراکتر استارت، دو بایت هدر، یک بایت تعداد بایتهای دیتا، خود بایتهای دیتا، یک یا دو بایت چک سام، دو بایت فوتر و کاراکتر انتهایی هست.
    بایتهای دیتا در واقع بخش اصلی فرمان دریافتی رو شامل میشن و اونها هم باید شکل و نوعشون مشخص باشه و مشابه همین فرآیند روشون اجرا بشه. اول نوع دستور مشخص بشه و بعد پارامترهای احتمالی که نحوه ی انجام دستور رو مشخص میکنن، و در نهایت دستور اجرا بشه.
    کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

    دیدگاه


      #3
      پاسخ : پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی

      سپاس، بحثم سر الکوریتم دریافت هست،*مثلا کل کارشته رو دریافت کنم (با فرض وجود کاراکتر نهایی) و بعد مثلا اگر صد نوع دستور داریم ،*در یک فرایند if, else بگردم ببینم محتویات رشته برابر با کدوم دستور هست تا مابقی کار رو انجام بدم،که یه الگوریتم خیلی کند هست برای میکروکنترلر!
      یا بایتها رو تک تک دریافت کنم و در همون لحظه درخت تصمیم رو برم پایین تا دریافت بایتهای بعدی ، مثلا اگر بایت فعلی T*هست دیگه دستوراتی که مثلا با S* شروع شدند شامل لیست جستجوی من نخواهند شدو ..

      دیدگاه


        #4
        پاسخ : پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی

        سلام خدمت دوستان
        می تونی از select case استفاده کنی که خیلی راحته نه if و else
        همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
        لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
        تایپیک های من:
        حل تمام مشکلات atmega128a (eca.ir)
        آموزش کار با سایت (eca.ir)

        دیدگاه


          #5
          پاسخ : پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی

          نوشته اصلی توسط electromohammad نمایش پست ها
          سلام خدمت دوستان
          می تونی از select case استفاده کنی که خیلی راحته نه if و else
          سلام
          موضوع به همین سادگی نیست. زبان سی نمیتونه رشته ها رو مستقیما مقایسه کنه پس از ساختار سوییچ و کیس توی این مورد نمیشه استفاده کرد.
          نوشته اصلی توسط mojalan
          با سلام، میخوام دستورات کنترلی به پردازنده بردرو بصورت دستورات متنی ارسال کنم (یه چیزی مثل AT command ها) شماچه روش یا الگوریتمی رو برای دریافت و پردازش پیشنهاد میدید؟
          اگر دستورات از پیش مشخص هستن و قابل ترکیب با هم نیستن، یکی از راه ها میتونه Hash Table باشه. شما باید یک الگوریتم هش مناسب انتخاب کنید و یک جدول هم درست میکنید از هش دستورات. حال هر دستوری رسید با همون تابع هش میگیرید و با یک سرچ ساده تو جدول دستور رو شناسایی میکنید.
          اگر به هر دلیل دو دستوری داشتید که هش یکسانی داشتن، این که شناسایی کنید دستور رسیده کدومه به اندازه چک کردن دو تا رشته ساده میشه.
          این یک پیشنهاداولیه است و باید خودتون ببینید همچین چیزی عملی هست یا نه.

          دیدگاه


            #6
            پاسخ : پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی

            نوشته اصلی توسط mojalan نمایش پست ها
            سپاس، بحثم سر الکوریتم دریافت هست،*مثلا کل کارشته رو دریافت کنم (با فرض وجود کاراکتر نهایی) و بعد مثلا اگر صد نوع دستور داریم ،*در یک فرایند if, else بگردم ببینم محتویات رشته برابر با کدوم دستور هست تا مابقی کار رو انجام بدم،که یه الگوریتم خیلی کند هست برای میکروکنترلر!
            یا بایتها رو تک تک دریافت کنم و در همون لحظه درخت تصمیم رو برم پایین تا دریافت بایتهای بعدی ، مثلا اگر بایت فعلی T*هست دیگه دستوراتی که مثلا با S* شروع شدند شامل لیست جستجوی من نخواهند شدو ..
            فرایند ارتباط سریال کاملا در دست طراح هست.
            از نظر قابلیت اطمینان، طبعا شما باید کل رشته رو دریافت کنین.
            کاراکترهای کنترلی و چک سام رو محاسبه و مقایسه کنین و بعد در صورت صحت رشته دریافتی، برید سراغ تشخیص اجرای فرمان.
            زمانی که صرف اینکار میشه فکر نمی کنم از زمان ارسال یک بایت با باودریت معمول بیشتر باشه.
            اما در کل پروسه ی تجزیه رشته ی دریافتی، کاملا به تنوع محتویات رشته مربوطه و طراح باید به در نظر گرفتن تریدآف بین سرعت و قابلیت اطمینان، روش بهینه رو انتخاب کنه.
            کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

            دیدگاه

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