FSMachine 1.0.0

FSMachine 1.0.0

测试已测试
Lang语言 Obj-CObjective C
许可证 Apache 2
发布上次发布2014年12月

Dan Hawkes 维护。



FSMachine 1.0.0

  • 作者
  • danhawkes

Objective C 中的一个简单状态机。

特性

  • 对摩尔和梅利式机器的支持
  • 对状态进入/退出和转换期间的操作的支持
  • 条件转换
  • پیش آزمون ماشین
  • 可配置的日志记录

安装

使用

// TODO

示例

// Dispense a can for 3 mBTC. Don't give any change, but carry credit over to the next person.

FSEvent *insert1 = [FSEvent eventWithName:@"insert 1"];
FSEvent *insert2 = [FSEvent eventWithName:@"insert 2"];

FSMachine *machine = [FSMachine machineWithBuilder:^(FSMachineBuilder *machine) {

    FSState *zero = [machine addState:@"zero"];
    FSState *one = [machine addState:@"one"];
    FSState *two = [machine addState:@"two"];

    FSActionBlock dispenseCan = ^{
        NSLog(@"Kerchunk!");
    };

    [zero transitionTo:one onEvent:insert1];
    [zero transitionTo:two onEvent:insert2];

    [one transitionTo:two onEvent:insert1];
    [one transitionTo:zero onEvent:insert2 withAction:dispenseCan];

    [two transitionTo:zero onEvent:insert1 withAction:dispenseCan];
    [two transitionTo:one onEvent:insert2 withAction:dispenseCan];
}];

[machine post:insert1]; // [zero] -> [one]
[machine post:insert1]; // [one] -> [two]
[machine post:insert2]; // [two] -> [one], "Kerchunk!"

// (next person comes along…)

[machine post:insert2];  // [one] -> [zero], "Kerchunk!"

待办事项

  • 更多示例
  • 马尔可夫模型?

贡献

…是受到鼓励的。鼓励报告错误和请求合并。

许可证

Apache 2.0。有关更多信息,请参阅 LICENSE 文件。