[Development] QStateMachine and SCXML?

Kevin Funk kevin.funk at kdab.com
Fri Jan 8 12:12:28 CET 2016


On Friday, January 08, 2016 09:14:25 AM Ch'Gans wrote:
> Just discovered this few days ago:
> https://github.com/KDAB/KDStateMachineEditor

Heya,

unfortunately KDStateMachineEditor has nothing to do with Vikas' request.

KDStateMachineEditor can import/export SCXML from/to its internal state 
machine representation, that's true.  You can import an SCXML file, and you'd 
get the graphical representation of the state machine in the editor interface; 
or you'd export a currently edited state machine as SCXML.

Which it cannot do is *initializing* a QStateMachine based on a SCXML 
specification. Vikas was probably referring to scc:
  https://blog.qt.io/blog/2009/08/10/introducing-scc-the-scxml-compiler-for-the-qt-state-machine-framework/

We played around with that idea in the past, too, but abandoned it b/c the 
SCXML *format* is just too far away from the Qt world.

@Vikas: What you might want to do: Check out the new Declarative State Machine 
Framework in Qt 5.4 which KDAB and Ford Motor Company have developed in a 
joint effort to overcome the problems using SCXML as description format:
  http://doc.qt.io/qt-5/qtqml-statemachine-qmlmodule.html

Instead of using XML, this uses QML to describe a state machine, with all the 
benefits you get by leveraging QML features such as property bindings, etc.

Example:

    DSM.StateMachine {
            id: stateMachine
            initialState: state
            running: true
            DSM.State {
                id: state
                DSM.TimeoutTransition {
                    targetState: finalState
                    timeout: 1000
                }
            }
            DSM.FinalState {
                id: finalState
            }
        }

Hope this helps,

Cheers,
Kevin

> Hope this helps.
> Chris
> 
> On 8 January 2016 at 05:35, Vikas Bhargava <vikascodestuff at gmail.com> wrote:
> > Hi,
> > Can someone point me to the latest on whether State Machine initialization
> > based on a scxml specification would be supported. The last discussion I
> > could find
> > on the topic is at least 5 years old. The current State Machine framework
> > has no support as far as I can see.
> > 
> > Regards,
> > Vikas
> > 
> > _______________________________________________
> > Development mailing list
> > Development at qt-project.org
> > http://lists.qt-project.org/mailman/listinfo/development
> 
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

-- 
Kevin Funk | kevin.funk at kdab.com | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 7021 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20160108/f91e928a/attachment.bin>


More information about the Development mailing list