One tip that I would offer is to consider using a Strict TypeDef Enum to drive
your state machine rather than a string.

Part of the reason for this is to prevent accidental coding errors such as
mis-typing a string or forgetting to implement a case.  Also, if you further
develop your state machine into a component (based on LabVIEW Component
Oriented Design (LCOD) - see the book "A Software Engineering Approach to
LabVIEW" for details) which uses a LV2 style global approach to locally
contain component information, the Enum turns into a very simple way of
accessing the components functions.  (perhaps I should have broken up that
'sentence' a little)

One minor drawback is having to save the Strict TypeDef Enum in a separate
.ctl file.  However, I have also taken advantage of this when implementing
multiple components which share the same states/functions.

Anyway - just my thoughts.

John Howard

>>> Scott Serlin 01/16/04 12:17PM >>>
Thanks for the info.  I was hoping for a faster way to add and modify
states to the state machine.  Also, does anyone have any state machine
tips that they can share?  I typically use a string driven state
machine.  I then call out each state from other states.  I also use a
"nextstate" local variable so that I can reuse particular states in the
machine over and over again and not have to replicate the state
throughout the machine.  Let me and the email list know your tips.
Thanks.

Scott

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
Behalf Of [EMAIL PROTECTED] 
Sent: Friday, January 16, 2004 7:48 AM
To: [EMAIL PROTECTED] 
Cc: Info LabVIEW (E-mail); 'John'
Subject: Re: State machine diagram editor






Rolf K. wrote:
> I have looked at the State Machine Toolkit and believe that it is fine
for
> the standard state machines a lot of users usually encounter but my
state
> machines usually always tend to be just a tiny little bit more
involved
so
> that I would have to hand edit the generated state machine afterwards
> anyhow and once modified manually you can't seem to go back to
continue
> with the State Diagram Editor.

The inability to go back to the editor after you manually edit is true
of
most computer-aided wizards. The fundamental problem is that the wizard
knows how to maintain a state machine under certain conditions and how
to
modify various pieces when you change something in the editor. Once you
introduce a non-standard component, the wizard has no idea how to handle
that component as the system changes. The
once-you-manually-edit-you-can't-go-back-to-automatic problem covers the
State Machine, Express VIs, and a lot of tools built by just about every
piece of helpful software ever written on this planet. It requires
either a
sophisticated AI to recognize all the components that can be introduced
into a system by a user or a very restricted set of things the user can
introduce. Notice how HTML editors handle non-standard tags.

Pojundery,
Stephen R. Mercer
-= LabVIEW R&D =-
"I do not believe that Hell is a physical place. I believe that Hell is
an
hour of the morning." -- Jan 16, 2004


Reply via email to