با سلام، میخوام دستورات کنترلی به پردازنده بردرو بصورت دستورات متنی ارسال کنم (یه چیزی مثل AT command ها) شماچه روش یا الگوریتمی رو برای دریافت و پردازش پیشنهاد میدید؟
اطلاعیه
Collapse
No announcement yet.
پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی
Collapse
X
-
پاسخ : پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی
نوشته اصلی توسط mojalan نمایش پست هابا سلام، میخوام دستورات کنترلی به پردازنده بردرو بصورت دستورات متنی ارسال کنم (یه چیزی مثل AT command ها) شماچه روش یا الگوریتمی رو برای دریافت و پردازش پیشنهاد میدید؟
این مطلب در ابتدا به شکل دستورات ارسالی بستگی داره. یعنی اول باید بدونید رشته ی دریافت شده از چه بخشهایی تشکیل شده، بعد اون بخشها رو از هم جدا و احتمالا رشته های عددی رو به عدد تبدیل کنین و مثلا چک سامش رو محاسبه و مقایسه کنین تا از صحت رشته ی دریافتی مطمئن بشین.
و پس از اون پاسخ مناسب اون دستور رو بدین یا اجراش کنین.
یک رشته ی استاندارد ارسالی عموما شامل یک کاراکتر استارت، دو بایت هدر، یک بایت تعداد بایتهای دیتا، خود بایتهای دیتا، یک یا دو بایت چک سام، دو بایت فوتر و کاراکتر انتهایی هست.
بایتهای دیتا در واقع بخش اصلی فرمان دریافتی رو شامل میشن و اونها هم باید شکل و نوعشون مشخص باشه و مشابه همین فرآیند روشون اجرا بشه. اول نوع دستور مشخص بشه و بعد پارامترهای احتمالی که نحوه ی انجام دستور رو مشخص میکنن، و در نهایت دستور اجرا بشه.کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.
- تشکرها 1
-
پاسخ : پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی
سپاس، بحثم سر الکوریتم دریافت هست،*مثلا کل کارشته رو دریافت کنم (با فرض وجود کاراکتر نهایی) و بعد مثلا اگر صد نوع دستور داریم ،*در یک فرایند if, else بگردم ببینم محتویات رشته برابر با کدوم دستور هست تا مابقی کار رو انجام بدم،که یه الگوریتم خیلی کند هست برای میکروکنترلر!
یا بایتها رو تک تک دریافت کنم و در همون لحظه درخت تصمیم رو برم پایین تا دریافت بایتهای بعدی ، مثلا اگر بایت فعلی T*هست دیگه دستوراتی که مثلا با S* شروع شدند شامل لیست جستجوی من نخواهند شدو ..
دیدگاه
-
پاسخ : پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی
سلام خدمت دوستان
می تونی از select case استفاده کنی که خیلی راحته نه if و elseهمیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
تایپیک های من:
حل تمام مشکلات atmega128a (eca.ir)
آموزش کار با سایت (eca.ir)
- تشکرها 1
دیدگاه
-
پاسخ : پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی
نوشته اصلی توسط electromohammad نمایش پست هاسلام خدمت دوستان
می تونی از select case استفاده کنی که خیلی راحته نه if و else
موضوع به همین سادگی نیست. زبان سی نمیتونه رشته ها رو مستقیما مقایسه کنه پس از ساختار سوییچ و کیس توی این مورد نمیشه استفاده کرد.
نوشته اصلی توسط mojalanبا سلام، میخوام دستورات کنترلی به پردازنده بردرو بصورت دستورات متنی ارسال کنم (یه چیزی مثل AT command ها) شماچه روش یا الگوریتمی رو برای دریافت و پردازش پیشنهاد میدید؟
اگر به هر دلیل دو دستوری داشتید که هش یکسانی داشتن، این که شناسایی کنید دستور رسیده کدومه به اندازه چک کردن دو تا رشته ساده میشه.
این یک پیشنهاداولیه است و باید خودتون ببینید همچین چیزی عملی هست یا نه.
- تشکرها 1
دیدگاه
-
پاسخ : پردازنده رشته یا الگوریتم تصمیم گیری از دستورات رشته ای ورودی
نوشته اصلی توسط mojalan نمایش پست هاسپاس، بحثم سر الکوریتم دریافت هست،*مثلا کل کارشته رو دریافت کنم (با فرض وجود کاراکتر نهایی) و بعد مثلا اگر صد نوع دستور داریم ،*در یک فرایند if, else بگردم ببینم محتویات رشته برابر با کدوم دستور هست تا مابقی کار رو انجام بدم،که یه الگوریتم خیلی کند هست برای میکروکنترلر!
یا بایتها رو تک تک دریافت کنم و در همون لحظه درخت تصمیم رو برم پایین تا دریافت بایتهای بعدی ، مثلا اگر بایت فعلی T*هست دیگه دستوراتی که مثلا با S* شروع شدند شامل لیست جستجوی من نخواهند شدو ..
از نظر قابلیت اطمینان، طبعا شما باید کل رشته رو دریافت کنین.
کاراکترهای کنترلی و چک سام رو محاسبه و مقایسه کنین و بعد در صورت صحت رشته دریافتی، برید سراغ تشخیص اجرای فرمان.
زمانی که صرف اینکار میشه فکر نمی کنم از زمان ارسال یک بایت با باودریت معمول بیشتر باشه.
اما در کل پروسه ی تجزیه رشته ی دریافتی، کاملا به تنوع محتویات رشته مربوطه و طراح باید به در نظر گرفتن تریدآف بین سرعت و قابلیت اطمینان، روش بهینه رو انتخاب کنه.کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.
- تشکرها 1
دیدگاه
دیدگاه