سلام. کسی میدونه state machine چیه و چطوری میتونه در برنامه نویسی کمک کنه؟
اطلاعیه
Collapse
No announcement yet.
state machine
Collapse
X
-
پاسخ : state machine
State Machine یک نوع سیستمه که بر اساس Status های ورودی یک خروجی میسازه یا یک عمل دیگه ای انجام میده! براساس این تعریف State machine یه نمودار از روند کلی سیستم به ما میده از مدل های ریاضی و منطقی تشکیل شده.
یهState Machine همیشه تو یه حالت قرار داره و میتونه از حالتی به حالتی دیگه تغییر کنه و چون در حالت عملی تنها میتونه تعدادی از حالات رو پشتیبانی کنی بهش Finite State Machine میگن یا FSM.
مثلا اگه درب جائی بازشد و اگر دزدگیر فعال بود آژیر بکشه و الی آخر.......
از روی این نمودار شما میتونی برنامه رو یه شکل یکجا ببینی و بررسی کنی. یعنی تمام خطهای برنامه خلاصه میشه تو چندتا شکل و یک سری ارتباطات.
مثل این :
- تشکرها 1
-
پاسخ : state machine
مرسی از توضیح خوبتون... فقط میشه لطفآ یه مثال ملموس تر بزنین؟مثلآ برای نوشتن برنامه ی روباتی که قراره یه مسیری رو بره ... به هدفش ( یه مکعب که روی هر وجهش یا صفر یا یک نوشته ) که رسید ازش یه عکس بگیره... اگر صفر بود یکش کنه اگه نه که stop کنه.. چطوری میشه state machine و بکار برد؟
دیدگاه
-
پاسخ : state machine
نوشته اصلی توسط negin-bahadoriمرسی از توضیح خوبتون... فقط میشه لطفآ یه مثال ملموس تر بزنین؟مثلآ برای نوشتن برنامه ی روباتی که قراره یه مسیری رو بره ... به هدفش ( یه مکعب که روی هر وجهش یا صفر یا یک نوشته ) که رسید ازش یه عکس بگیره... اگر صفر بود یکش کنه اگه نه که stop کنه.. چطوری میشه state machine و بکار برد؟
تو حالت اول که خوب همه به نوعی انجام میدن یا می کشن یا تو ذهنشون ترسیم میکنن که تنها کمکی که به ما منکنه اینه که باعث میشه فرک کلی برنامه رو از اول درست طراحی کنیم و فکر همه جاشو بکنیم.
ولی در حالت دوم که هی با نرم افزار در حال Synchronous (هماهنگ) شدنه میتونه همزمان که نمودار تغییر میکنه نرم افزار هم تغییر کنه و حتی نتیجه رو روی سخت افزار نشون بده.
مثلآ برای نوشتن برنامه ی روباتی که قراره یه مسیری رو بره ... به هدفش ( یه مکعب که روی هر وجهش یا صفر یا یک نوشته ) که رسید ازش یه عکس بگیره... اگر صفر بود یکش کنه اگه نه که stop کنه.. چطوری میشه state machine و بکار برد؟
میتونی اول تمام حالت هایی (Status) که روبات ممکنه باهاش روبرو بشه در هر موقعیتو اول لیست کنی بعد یکی یکی برای اونها بک عکس العمل طراحی کنی بعد دوباره بعد از عکس العمل حالت های جدید و به همین شکل تا انتها ....
مثلا اول روبات روشن میشه و راه اندازی می کنه قسمت های مختلف و حالا قراره یه مسیرو بره . حالت های مختلف :
1- روبات تو مسیره ----> حرکت در جهت مسیر (بعد حات هایی که تو مسیر پیش میاد مثل پیچ به چپ و راست، انتهای مسیر ، مسیر گم میشه و ....)
2- رویات مسیر و میبینه ولی توش نیست -----> مسلما به سمت مسیر حرکت کنه
3- روبات مسیرو نمی بینه ----> باید مسیرو پیدا کنه
طبق این یک نمودار ایجاد میشه که توش کلی شرط و روال داره که تو یه تیم این روالها تقسیم میشه و باز طبق این نمودار روال ها به هم مرتبط میشن.
نوشته اصلی توسط mojtaba_ledبا سلام
آقا ببخشید این IAR visualSTATE هم برای این کار استفاده میشه ؟
یه سوال دیگه ، منم متوجه نشدم چی شد ، الان با این State Machine میشه یه برنامه نوشت ؟ و اون رو مثلا روی یه میکرو پروگرام کرد ؟
http://www.iar.com/en/Products/IAR-visualSTATE/
اینم یه مثال ازش :
دیدگاه
-
پاسخ : state machine
مهمترین ویژگی اون اینه که تو طراحی کمکت میکنه ! :redface: خیلی راحت تره وقتی تمام سطوح برنامه یا یک روال رو یک جا رو کاغذ میبینی.
علاوه بر این او توی کم کردن Bug های برنامت و همچینین عکس العمل های بی معنی هم خیلی کمکت میکنه !
می دونی باید خودت نیازشو احساس کنی وقتی 2 3 بار دیدی آخر برنامت که همچی تمومه یهو میفهمی یه چیزیو یادت رفته. با State Machine اگه اون یادت رفته باشه دیگه جلوی چشته و می فهمی ولی تو برنامه باید اول Error بده بعد کلی بگردی و Debug کنی بعد تازه پیداش کنی! قبول دارم تا حدی برای برنامه های کوچیک شاید نیاز نباشه ولی از اصول اولیه طراحیه. هم تو الکترونیک هم تو سایر علوم مخصوصا مدیریت.
دیدگاه
-
پاسخ : state machine
نوشته اصلی توسط mojtaba_ledجناب خوانساری عزیز
شما الان با چه نرم افزاری برای این State Machine کار میکنید ؟ میشه ، یه استارتی در رابطه با آموزشش بزنید تا ماهم راه بیوفتبم ؟
ممنون
State Machine رو اکثرا رو کاغذ میکشن و تحلیل میکنن ! (بیشتر هم تو کار تیمی)
ولی اگه مصری رو مدل نرم افزاریش، همونی که خودت گفتی تنها گزینته فعلا ! (پیشنهاد میکنم تنها باهاش آشنا شو کاربرد اونطوری برات نخواهد داشت)
دیدگاه
-
پاسخ : state machine
ممنون از همه درباره توضیحات درباره State Machine
من با توجه به توضیحاتی که در این باره دادین
یک نرم افزار پیشنهاد می کنم البته به کار برنامه نویسی میکرو نمی یاد
برای برنامه نویسی lموبایل تحت جاوا است و الگوریتم آن براساس State Machine که توضیح دادین است.اسمش netbeans است
هم کتاب و هم جزوه اینترنتیش به راحتی یافت می شود.
شمای برنامه netbeans
دیدگاه
دیدگاه