Code Monkey home page Code Monkey logo

webgme-hfsm's People

Contributors

dependabot[bot] avatar finger563 avatar kecso avatar p-ranav avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

webgme-hfsm's Issues

Add support for end-states

Would have the semantics that the timer / task for the HFSM would be cancelled. Since that would provide support for cancelling the dynamic task/timer, we should add support for how to trigger the task/timer without necessarily needing to write it all in code.

Allow state machine creation in HFSM Vizualizer

Should allow transitions between any arbitrary state objects regardless of level.

Needs to support at minimum:

  • State object creation / removal
  • External transition creation / removal
  • State object / external transition selection (for edit in property editor)

Add events for transitions into the meta

transitions occur because of events, with optional guards on the events (as in real HFSMs). States can also have functions that occur when events are triggered while they're in the state, and can themselves emit events.

Separate build system and platform specific generator code from HFSM language generation

How possible is this? Ideally we would have a few plugins:

  • one to handle generation of HFSM into language specific source code
  • another to handle generation of build system / platform specific code and build files

These plugins would interact through a well-defined interface to produce the combination of language + build system source code when desired by the user.

When dragging and dropping new objects into the HFSM, set their position according to where they were dropped

If possible, we should do this; might be hard because right now we're relying on this kind of pathway:

  1. User drags object over Viz
  2. User drop object onto Viz -> triggers a drop event
  3. Drop event creates a new commit with WebGME that creates the object in the model
  4. WebGME notifies Viz that a new object has been created
  5. Viz adds new object from WebGME into HFSM graph

Would need to store the drop information (position, type?) so that when we get an addNode event we can try to figure out where it goes

Basic Development Process for complex HFSMs

Develop the entire hfsm hierarchy as a roadmap before implementing well-formed sub-hfsms.

Use the Selected State window in the hfsmViz to determine what states have been fully developed. Untouched states will display red for entry/exit. If a field is intentionally blank, add a space.

Define states from the top down and transitions from the bottom up.

With no transitions defined into a state, it is impossible to reach that state, meaning it can be developed/compiled without affecting the behavior of the working portion of the hsfm.

Update code generators to support UML meta spec.

Should properly handle:

  • Event code generation : turn events into objects that can be emitted / consumed
  • Internal transition generation : allow states to perform actions based on events with optional guards
  • Message queue for state machine which allows it to receive and consume events in well defined order
  • History and choice pseudostate generation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.