Hi Brett,

The CLA is now in place and you are able to proceed with the contributions.

Based on the discussions at QtCS and the mailing lists, what was seen as the 
best approach for the repositories? A new playground project for both QQSM and 
Replicant?

Yours,

--

Tuukka Turunen
Director, R&D
Digia, Qt

Address: Piippukatu 11, 40100 Jyväskylä, FINLAND
Email: [email protected]<mailto:[email protected]>
Mobile: + 358 40 7655 800

Qt Website: http://qt.digia.com<http://qt.digia.com/>
Qt Blog: http://blog.qt.digia.com<http://blog.qt.digia.com/>
Qt Project: http://www.qt-project.org<http://www.qt-project.org/>

------------------------------------------------------------------
PRIVACY AND CONFIDENTIALITY NOTICE
This message and any attachments are intended only for use by the named 
addressee and may contain privileged and/or confidential information. If you 
are not the named addressee you should not disseminate, copy or take any action 
in reliance on it. If you have received this message in error, please contact 
the sender immediately and delete the message and any attachments accompanying 
it. Digia Plc does not accept liability for any corruption, interception, 
amendment, tampering or viruses occurring to this message.
------------------------------------------------------------------

From: Tuukka Turunen <[email protected]<mailto:[email protected]>>
Date: Monday 2 June 2014 09:55
To: "Stottlemyer, Brett (B.S.)" <[email protected]<mailto:[email protected]>>, 
"[email protected]<mailto:[email protected]>" 
<[email protected]<mailto:[email protected]>>
Subject: Re: [Development] Request for sandbox area: QQSM


Hi Brett,

Thank you for the initiative. I also think there is indeed a lot of unleashed 
potential in the Qt State Machine Framework for such applications that benefit 
from having a solid state machine based development approach. Qt State Machine 
Framework  is not yet hooked into the Qt Quick world, so also from that 
viewpoint your proposal looks good. Whether it is the right approach to hook 
into Qt Quick will be found out when the detailed discussions and reviews are 
done.

Making a playground project for QQSM would be a good first step. However, the 
CLA needs to be signed prior to you being able to contribute the code. You can 
find the Corporate CLA, accepted by other companies contributing to Qt, at: 
https://qt-project.org/legal/Corporate_QtContributionLicenseAgreement.pdf. If 
you can get it signed before  the Qt Contributor Summit, it would make it 
easier to discuss the details about QQSM.

Looking forward in seeing you in Berlin.

Yours,

--

Tuukka Turunen
Director, R&D
Digia, Qt

Address: Piippukatu 11, 40100 Jyväskylä, FINLAND
Email: [email protected]<mailto:[email protected]>
Mobile: + 358 40 7655 800

Qt Website: http://qt.digia.com<http://qt.digia.com/>
Qt Blog: http://blog.qt.digia.com<http://blog.qt.digia.com/>
Qt Project: http://www.qt-project.org<http://www.qt-project.org/>

------------------------------------------------------------------
PRIVACY AND CONFIDENTIALITY NOTICE
This message and any attachments are intended only for use by the named 
addressee and may contain privileged and/or confidential information. If you 
are not the named addressee you should not disseminate, copy or take any action 
in reliance on it. If you have received this message in error, please contact 
the sender immediately and delete the message and any attachments accompanying 
it. Digia Plc does not accept liability for any corruption, interception, 
amendment, tampering or viruses occurring to this message.
------------------------------------------------------------------

From: <Stottlemyer>, "Brett (B.S.)" 
<[email protected]<mailto:[email protected]>>
Date: Saturday 31 May 2014 01:14
To: "[email protected]<mailto:[email protected]>" 
<[email protected]<mailto:[email protected]>>
Subject: [Development] Request for sandbox area: QQSM

Hi list,

My name is Brett Stottlemyer.  I work for Ford Motor Company, and Ford has 
graciously agreed to let us contribute some of the cool stuff we’ve developed 
back to Qt.  We aren’t quite done with everything yet (still waiting on the 
Corporate CLA), but I will be at Qt Contributors Summit in a week and a half to 
discuss this and a 2nd project, and answer (hopefully a bunch) of good 
questions.

I’d like to officially request a sandbox for: QQSM

What is it?
QQSM is the Qt QML State Machine.  Simply put, it is a QML module to allow you 
to create Qt State Machine Framework instances via the QML engine.

What need does this module solve?
QQSM makes it a lot easier to create state machines.  You get all of the 
benefits of the maturity of Qt's State Machine Framework, the ability to 
introspect/debug the machine with tools like gammaray, but with a simplified 
syntax and QML's runtime bindings.  An example of the simplification?  A guard 
condition for a transition can use QML/javascript and use signal parameters in 
deciding whether to trigger a transition – entirely in QML markup.

Detailed description
QQSM is basically a Domain Specific Language (in QML) for simplified 
descriptions of State Machines.  While the C++ State Machine Framework is 
complete, it requires a lot of boilerplate code.  The examples I've seen have 
created numerous QSignalTransition derived classes, one for each boolean 
condition required to test for a transition.

While QML already has a State type, this is not a complete, deterministic state 
machine.  This is an overly simplified state machine, in that it provides 
little in terms of error checking or nested states.

The proposed QQSM module, on the other hand, provides BasicState (to not 
conflict with existing State type), HistoryState and FinalState, plus 
StateMachine, SignalTransition and TimeoutTransition types.  The benefit of QML 
for State Machines is much more than just having to write less code, though.  
Two features of the QML engine are runtime processing of scripted code, and 
dynamic Signal/Slot connections.  Since all SignalTransition classes provide a 
boolean result for eventTest(), a single C++ implementation was created that 
uses a boolean property ("guard") for the eventTest result.  This allows any 
QML/Javascript expression that resolves to a boolean to be used.  The dynamic 
connections make is easy to bind onEntry and onExit signals to non-state 
machine QObjects.

The end result is an environment that allows State Machines to be developed 
rapidly and succinctly.

Hope you like the idea, and approve the sandbox area.

Looking forward to your thoughts!

Sincerely,
Brett Stottlemyer
Ford Motor Company

_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to