Skip to content

Releases: finger563/webgme-hfsm

v1.6.2

23 May 17:43
092610a
Compare
Choose a tag to compare

What's Changed

  • feat(simulator): Update simulator to alert if the event name is bad by @finger563 in #164
  • fix(generator): allow end states from choice states in the initial state transition path by @finger563 in #165

Full Changelog: v1.6.1...v1.6.2

v1.6.1

22 May 22:47
2f1e706
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.6.0...v1.6.1

v1.6.0

09 Aug 15:25
7e272b2
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.5.0...v1.6.0

v1.5.0

11 Apr 14:25
2091ef2
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.4.1...v1.5.0

Version 1.4.1

28 Jul 14:59
Compare
Choose a tag to compare

What's Changed

  • Bump shell-quote from 1.7.2 to 1.7.3 by @dependabot in #137
  • Feature/root event spawning helper functions by @finger563 in #138
  • Make EventFactory thread safe
  • Add colored output to test bench / debug output for easier use
  • Update formatting of test bench debug output for readability
  • Update simulator to not warn about no initial state if the only child is a documentation node

Full Changelog: v1.4...v1.4.1

Version 1.4

28 Jul 14:56
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.3...v1.4.0

Version 1.3

20 Jul 15:32
Compare
Choose a tag to compare

Software Generator Changes:

  • allows using _root-> when accessing non-static member of the root class (in the Definitions / Declarations)
  • Updates the scoping to be StateMachine::{{{HFSM name}}}::Event
  • Updates all states to have the _root pointer mentioned above
  • Removes static & global allocation of all state objects - instead no state objects are allocated for you - you must allocate an object of type StateMachine::{{{HFSM name}}}::Root which itself allocates the needed state objects and configures them.
  • Moves the eventFactory into the StateMachine::{{{HFSM name}}}::Root class
  • Added Declarations to the generation of all states - for local custom data; should only be used in the state's functions, not within transition actions.

Consistency Checks

  • Local transitions must have events
  • Internal transitions must have events
  • Initial states must have exactly one transition
  • Initial state transitions cannot have guards or events
  • No two sibling states can have the same name
  • States cannot have more than one initial state
  • States must have an initial sub state selected
  • States should not have any transitions without an Event unless
    they contain an End State
  • Any substate containing an End State must have an End Transition
    (no event) leaving the state
  • States cannot have more than one End Transition
  • End Transitions cannot have guard conditions
  • Choice pseudostate transitions (out of the choice) cannot have
    events
  • Cannot have multiple events with similar names
    (e.g. capitalization difference)
  • Choice pseudostates must have a default (unguarded) transition
  • No two transitions out of a state should have the same Event /
    Guard combination
  • All complete states containing children must have an initial
    state configured and properly wired up to transition to one of their
    children
  • All leaf states must have a valid non-zero timer period (note:
    timer periods for non-leaf states are unused)
  • No substates (e.g. any state other than the root) should have
    Includes set.

Simulator Changes:

  • fix context menu / selection so that you can properly re-parent / arrange / remove objects using the context menu
  • better handling / checking of initial states in simulator - with the checks either becoming alerts (popups) or warnings in the log panel
  • better handling of choice psuedostates - pressing None is equivalent to selecting the default transition for the choice psuedostate
  • better warning of choice pseudostates - they must have default transitions out of them, so the user is now warned (in the log panel) if a choice psuedostate does not have a default transition
  • Ability to handle an end state connected (even through choice pseudostates) to an initial state.

Version 1.2

10 Jan 16:30
Compare
Choose a tag to compare

Enhancements:

  • #89 Default to single-select, hold ctrl key to enable muti-select
  • #87 enforce in code generator that states containing end pseudostates must have end transitions
  • #85 HFSM now allows loading another HFSM from the model (switching the viewed HFSM)
  • #84 add generated method to determine if the HFSM has reached its end state
  • #83 add support for clearing the active state visualization in the HFSMViz for better printing
  • #82 show HFSM initialization in active state panel of HFSMViz
  • #72 refactor generated code for HFSM
  • #70 add webgme path comments to allow automatic parsing of build errors to attribute line numbers
  • #69 add tick and restart events to the generated test bench programs
  • #68 don't convert event names to upper case - they are generated exactly as in the model
  • #66 refactor HFSM meta / code generators for better inclusion as a library within another webgme project
  • #67 updated documentation (added WIKI and videos to GitHub)
  • #64 use edgehandle styles for better visual indication of the current target node of the dragged transition
  • #62 improve edge drawing interface
  • #60 add support for dragging/dropping a selection of nodes and transitions
  • #58 animate state transition in simulator
  • #49 add context menu option for multi-select to arrange selection into a grid
  • #47 improve generated code event handling run-time efficiency
  • #44 added support for creating instances of states subtrees by dragging and dropping from the tree-browser or split-panel
  • #39 shrink / remove gifs in README - placed them in the WIKI so they don't take up repo space
  • #35 Added support for Local Transitions
  • #31 describe basic development process for HFSMs
  • #29 create a context menu for moving a set of states and their transitions into another state

Bugfixes:

  • #91 make sure all examples have timer periods in all leaf states
  • #90 Fixed entry execution when HFSM initializes into a choice pseudostate
  • #86 fix simulator panel not updating when HFSMViz loads a new HFSM
  • #81 model checking should ensure all leaf states have non-zero timer periods
  • #80 no active state in HFSMViz simulator if initial transition goes to choice pseudostate and user selects none
  • #79 fix deep history pseudostate transitions in simulator
  • #78 fix reparenting from context menu calculates position incorrectly
  • #77 fix using the move context menu to move a state into itself throws an exception
  • #76 do a str compare to see if guards on transition set are the same and give warning to user
  • #75 fix shouldn't be able to create a connection between initial state and end state
  • #74 fix when in split screen the HFSMViz doesn't update properly
  • #73 fix cannot generate code if no events exist in the model
  • #71 fix simulator does not work if initial state points to a choice pseudostate
  • #65 fix if initial state of an object points to choice state, selecting set active state of the object incorrectly stops at the choice state
  • #63 fix placement of context menu for transition creation