Александр Терентьев (aterentiev) wrote,
Александр Терентьев
aterentiev

FSM интересное решение

Писал я пару дней назад вопрос про графы-диаграммы. Спасибо всем откликнувшимся.

В процессе поиска нашел я интересный вариант. Это Graphwiz. Содержит псевдоязык и автоматические генераторы графов. Получается что-то такое:



Исходный код вполне читаем и представляет собой что-то такое, описывающее узлы и связи между ними:
[Spoiler (click to open)]
digraph finite_state_machine {

  rankdir = TD;
  size = "20";

  node [ shape = hexagon, style = filled, fillcolor = green, fontname = Verdana, fontsize = 8, label = "DR Flush" ] start;
  node [ shape = hexagon, style = filled, fillcolor = green, fontname = Verdana, fontsize = 8, label = "End" ] end;

  node [ shape = point, fillcolor = red, width = 0.2 ]; end10;

  node [ shape = rectangle, label = "Send CMD106", style = filled, color = black, fillcolor = white ]; a1;

  node [ shape = ellipse, style = filled, color = black, fillcolor = lightblue, label = "CMD106_WAIT 10" ]; fsm10; 

  # labels
  node [ shape = plaintext, label = "--> STOP\nTR10/01", fontname = Verdana, fontsize = 8, fillcolor = white ]; label_10_01;
  node [ shape = plaintext, label = "TransactionTimeout\nTR10/02", fontname = Verdana, fontsize = 8, fillcolor = white ]; label_10_02;
  node [ shape = plaintext, label = "CMD106 response received\nTR10/03", fontname = Verdana, fontsize = 8, fillcolor = white ]; label_10_03;

  #edges
  start -> a1:n; a1:s -> fsm10;

  fsm10:w -> label_10_01:n; label_10_01:s -> end10;
  fsm10 -> label_10_02:n; label_10_02:s -> end;
  fsm10:e -> label_10_03:n; label_10_03:s -> end;

}


Интересный и приятный продукт.
Tags: Инструмент, Работа
Subscribe

  • Garmin, все-таки, приличные рукожопы

    Подарили мне давеча товарищи, узнавшие, что я начал ездить на велосипеде, гарминовый гаджет. Точнее, два - датчик скорости и каденса. Ну, думаю, ура,…

  • LinkedIn

    Я уже долгое время пытаюсь понять, чем движет на LinkedIn незнакомых мне людей, запрашивающих разрешения на добавление в "друзья". Лично я…

  • Выкалки

    Когда мне начинают в интернете заявлять, что я кому-то должен выкать - рука тянется к ban_set. Неужели остались еще люди, не осознающие, что в…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments