ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
17 мая
110325 Топик полностью
=AlexD= (15.01.2008 12:19, просмотров: 370) ответил Алексей Мусин на А то, что FSM (более общо, алгоритм) может делать чел, который Си и не знает, зато он профи в области, для которой девайс предназначен.
Ну и дать ему ключевые слова Си, и правила их применения (ограниченный набор). Что тут такого? А набить полученный шаблон рабочим кодом сможет уже программист. Какая разница - чему человека учить? Пример:  tERROR Control(tCMD cmd) { switch (cmd) { case ON_HOOK: switch (state) { case NUL: ; // bla-bla-bla break; case BELL: ; // bla-bla-bla state = ACTIVE; break; } break; case OFF_HOOK: switch (state) { case WAIT_KEY: state = NUL; break; case DIALLING: case WAIT: case BELL: case ACTIVE: ; // bla-bla-bla state = NUL; break; case PASSIVE: ; // bla-bla-bla state = NUL; break; } break; case KEY: switch (state) { case WAIT_KEY: ; // bla-bla-bla state = DIALLING; break; case DIALLING: // íàáîð íîìåðà ; // bla-bla-bla break; } break; case ACK: switch (state) { case DIALLING: state = WAIT; break; } break; case CALL: switch (state) { case NUL: ; // bla-bla-bla state = BELL; break; case DISABLE: ; // bla-bla-bla break; } break; case ANSWER: switch (state) { case DIALLING: state = ACTIVE; break; case WAIT: state = ACTIVE; break; } break; case BREAK: switch (state) { case WAIT_KEY: case DIALLING: case WAIT: case ACTIVE: ; // bla-bla-bla state = PASSIVE; break; case BELL: ; // bla-bla-bla state = NUL; break; } break; case ON: switch (state) { case DISABLE: state = NUL; break; } break; case OFF: switch (state) { case WAIT_KEY: case DIALLING: case WAIT: case BELL: case ACTIVE: ; // bla-bla-bla state = DISABLE; break; case NUL: case PASSIVE: ; // bla-bla-bla state = DISABLE; break; case DISABLE: break; } break; } return NO_ERROR; } Хотите сказать что это офигенно сложно???
надо придумать объяснение этому мудизму, иначе рехнуться можно