|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 5:44 am
|
Страница 1 от 1
|
[ 12 мнения ] |
|
Modeling Software with Finite State Machines
| Автор |
Съобщение |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
 Modeling Software with Finite State Machines
Трябва ми книга, статия, сламка, в която да е описано с примери (като за деца ученици) на разбираем не-академичен език какво представляват крайните автомата (в случая на Мили), как работят и как да се реализират софтуерно. Ако има един реален обект, който да управляваме - как се дефинират състоянията, преходите, евентите, изходите и т.н. Също така как да се декомпозира сложна стейт машина с няколко по-прости синхронизирани такива
На времето преди повече от 15г. IAR имаха VisualState софтуерче, което обаче не го поддържат от много време и го няма. Имахме и книжките му в офиса, но при пренасянето ни, някъде се потурчиха и ги нямам сега. (В него имаше примери за светофар, перална машина, CD плеар и др.)
Някой може ли да помогне с подобна литература?
|
| Чет Окт 17, 2024 9:46 am |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: Modeling Software with Finite State Machines
напиши в гоо заглавието на поста  chatGPT питай ... в стил за деца Arduino, microPY, PLC ... https://microblocks.fun/
_________________ main[-1u]={1};
|
| Чет Окт 17, 2024 10:36 am |
|
 |
|
Bai Ui
Ранг: Форумен бог
Регистриран на: Вто Ное 06, 2018 5:18 pm Мнения: 1750
|
 Re: Modeling Software with Finite State Machines
https://fizzim.com/Генерира код на Verilog и VHDL но е опън сорс, може да го пипнеш ако разбираш Java да ти генерира на С и други езици. Може просто да го ползваш да си чертаеш мехурчести диагрми за презентации и техн. документация.
_________________ “Intelligence is the ability to adapt to change.” Stephen Hawking
|
| Чет Окт 17, 2024 3:40 pm |
|
 |
|
Bai Ui
Ранг: Форумен бог
Регистриран на: Вто Ное 06, 2018 5:18 pm Мнения: 1750
|
 Re: Modeling Software with Finite State Machines
ОК, малко ъпдейт - накарах чата да ми генерира С код по мехурчеста диаграма от Fizzim, ето го резултата:  |  |  |  | Код: #include <stdio.h>
// Дефиниции на състоянията typedef enum { IDLE, READ, DLY, DONE } state_t;
state_t current_state = IDLE; // Начално състояние
// Променливи за изходи int rd = 0; int ds = 0;
// Входове int go = 0; int ws = 0;
// Функция за промяна на състоянията void fsm_update() { switch(current_state) { case IDLE: rd = 0; ds = 0; if (go == 1) { current_state = READ; } break;
case READ: rd = 1; ds = 0; if (ws == 1) { current_state = DLY; } break;
case DLY: rd = 1; ds = 0; if (ws == 1) { current_state = READ; } else { current_state = DONE; } break;
case DONE: rd = 0; ds = 1; current_state = IDLE; // Връща се към IDLE след като е приключено break;
default: current_state = IDLE; // Ако има грешка, връща се към IDLE break; } }
int main() { // Примерно изпълнение printf("Начално състояние: IDLE\n"); // Симулираме преходи go = 1; // Старт (go) е активен fsm_update(); // Промяна на състоянието printf("Текущо състояние: READ, rd=%d, ds=%d\n", rd, ds); ws = 1; // Симулираме вход (ws) fsm_update(); printf("Текущо състояние: DLY, rd=%d, ds=%d\n", rd, ds); ws = 0; // Продължаваме fsm_update(); printf("Текущо състояние: DONE, rd=%d, ds=%d\n", rd, ds); fsm_update(); // Връщане в IDLE printf("Текущо състояние: IDLE, rd=%d, ds=%d\n", rd, ds);
return 0; }
|  |  |  |  |
пп това е Мур машина, но във Fizzim има много примери включително Мили машини
_________________ “Intelligence is the ability to adapt to change.” Stephen Hawking
|
| Чет Окт 17, 2024 3:53 pm |
|
 |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
 Re: Modeling Software with Finite State Machines
Целта ми е как всичко това да мога да го обесня "цветно" и интуитивно на ученици, както и да им дам правила за правилна декомпозиция на някаква реална задача (прост и по-сложен светофар примерно) на няколко по-малки и синхронно работещи стейт машини, както и иерархично декомпозиране, където е подходящо и възможно. Като следваща стъпка - да им се покаже как от таблично или мехурчесто описана стейт машина да се напише код на С/С++ .
Интересуват ме за момента МИЛИ машини, при които новото изходно състояние зависи както от входовете, така и от вътрешното моментно състояние на машината.
между другото IAR се оказа, че отново предлагат VisualState за който писах. Има и триал, но документацията, която свалих за сегашната им версия е силно ориентирана към самата програма и умишлено или не в нея няма обяснения за таблично описание на стейт машина.
|
| Чет Окт 17, 2024 4:23 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11265 Местоположение: Добрич
|
 Re: Modeling Software with Finite State Machines
Е те точно "академичния" вариант ти трябва. Няма как един ученик да схване идеята за конкретен автомат, ако не му обясниш цялата картинка. От опит мога да кажа, че подробностите много бързо се забравят. Ако ме питаш какъв точно беше автомата Мур или на Мили, не мога да ти кажа без да отворя вики-то. Но принципните неща като краен автомат, автомат с памет и т.н. не бива да се забравят. То даже още по-ниско се почва с комбинаторна логика и логика с памет. Щото автоматите са само частичен случай на схеми с логика и/или памет. Иначе за демонстрации може да видиш и node red. Не съм го ползвал щото мразя визуалните неща, но с него може да правиш всякакви стейт машини и автоматизации. Демонстрацията може да е по-истинска ако го пуснеш през домашния асистент (homeass), така ще осигуриш връзка с реалния свят - телефони, рутери и тем подобни уреди. Съответно имаш събития, сигнали и каквото се сетиш. Може с нарисувана стейт машинка да размигаш съвсем истинска ламба. Така демото няма да е ограничено до един джам в някакво си приложение.
|
| Чет Окт 17, 2024 5:23 pm |
|
 |
|
HCL
Ранг: Форумен бог
Регистриран на: Вто Дек 14, 2004 1:31 pm Мнения: 3849
|
 Re: Modeling Software with Finite State Machines
Запиши кратко видео как играеш Fortnite. В дясно от видеото графики на два автомата, единият показващ състоянието на героя, другият на мунициите.
Автомат_Герой: {бяга, стои} Автомат_Муниции: {16..0}
Със сигурност ще им привлечеш вниманието. Като задача с повишена трудност можеш да ги подканиш да добавят състояния стреля и презарежда, като с това можеш да онагледиш връзките между автоматите. Презареждането, връща мунициите на 16. А стрелбата от стояща и бягаща позиция онагледява експлозията на състоянията на автомата и как може да се адресира проблема посредством добавяне на нови автомати. Успех, звучи забавно начинание.
|
| Пет Окт 18, 2024 2:02 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: Modeling Software with Finite State Machines
ако си поиграеш с чата може да получиш интересни резултати 
_________________ main[-1u]={1};
|
| Пет Окт 18, 2024 3:07 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: Modeling Software with Finite State Machines
ето ти оригинала ... не че е нещо де  просто тъп въпрос
_________________ main[-1u]={1};
|
| Пет Окт 18, 2024 3:10 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: Modeling Software with Finite State Machines
малко му се скарах че рисува тъпотии но може да постигнеш резултати ... свърши ми FREE-то 
_________________ main[-1u]={1};
|
| Пет Окт 18, 2024 3:18 pm |
|
 |
|
stewie
Ранг: Популярен
Регистриран на: Сря Фев 20, 2013 5:18 pm Мнения: 381 Местоположение: България
|
 Re: Modeling Software with Finite State Machines
Тук има много информация за FSM/HSM. Виж тук за софтуер за моделиране. Обясненията на Миро Самек за FSM/HSM са много добри. Във видеата има и работещ код. Много добра (и малка) библиотека за FSM/HSM от Зефир.
|
| Пон Окт 28, 2024 12:11 am |
|
 |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
 Re: Modeling Software with Finite State Machines
stewie, Изглежда това ще свърши работа. а и програмата е фри и не иска някакво специално лицензиране, за да се използва.
Клипчетата също са достатъчно ясни, за да бъдат разбрани от ученици.
10х
|
| Пон Окт 28, 2024 6:19 pm |
|
|
|
Страница 1 от 1
|
[ 12 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 4 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|