Add an item to all state machine constants
I have a state machine using an enum for the state indicator. In
the current state, the next state is indicated by an enum
constant. If I want to add a state, how can I update all of the
constants? Here is the problem. If I add (or delete) an
item in the selector of the case structure, it is red because the enum
constants do not have that value in them. Conversely, if I add an
item to one of the constants I can "Add case for every value" and add
it to the seletor, but then I have to manually add that item to each of
the other constants. Also, the way I usually create the constants
is to pop-up on the exit tunnel for the enum in the case structure and
"Create constant". Unfortunately, that tunnel retains the choices
of the old enum and the new choice must be manually added. Is
there any way around this? I would like a method that allows me
to add or delete choices at will and have all of the constants
automatically update to match.
Roy
Well LabVIEW has just what you need in the "type def"! The next time you create a enum, right click on it, select create a control go to the front panel, right click on the control and select "Advanced" and then "Customize" to enter the control editor (if you have selected in your front panel "tools", "options", "front panel", "open the control editor with a double click", you can ust double click on the control to enter the control editor). In the control editor you will see a toolbar pull down with the "Control" option. If you pull it down and change to "Type Def" you can modify the control and all copies of it will now get automatically updated, including constants created from the type definition. The strict type def controls the look of the control as well, so it is most often used to make sure that operator interface instances of a control look the same. When you save this new type def it should ask you whether to update all instances, which will update the original control , you will have to go back and make a constant from the new control type to replace that original one, but now every copy made from that one will update when you update the type definition, and you can do that from the constant on the diagram by right clicking and selecting "open type def".
P.M.
Putnam
Certified LabVIEW Developer
Senior Test Engineer
Currently using LV 6.1-LabVIEW 2012, RT8.5
LabVIEW Champion
Similar Messages
-
Labview State machines Edit Items
Iam using a state machines, Iam having a problem with updating new items in the state machines..
What happens when I right click on the enum attached to the shift register and try to add new item to it..
the cases change to numbers istead of actual choices..
what can I do to fix this.
ThanksR U Sure
I can do it
Thanks & Regards,
Kunal Raithatha.
CTD - CLAD (I wish I can take off that A, and maybe use it later to replace D :-)
Easy Tip :- "To copy an image to a VI icon, drag the image file and place it on the icon
located in the upper right corner of the front panel or block diagram" ...If you know any
more reply back.
Attachments:
SK0480.vi 5 KB -
Powershell 4.0 How to use Add-Printer to add printer for all users (machine)
Is there a way I can use Powershell 4.0 Add-Printer cmdlet to add a printer for all users (machine)? I tried from an admin account but it only adds a printer for the currently logged on user.
thanks.Adding a printer for all users requires having access to their profiles (and registry hive for user) to save the mapped printer information. Your best bet is to either use Group Policy Preferences or write a user logon script that ones when they log in and
maps the printer if not already mapped.
Group Policy Preferences Example
I wrote an article a while back that shows how to use a GPO logon script to map a printer. It doesn't use V4, but the process would be the same as far as a GPO goes.
http://learn-powershell.net/2012/11/15/use-powershell-logon-script-to-update-printer-mappings/
Boe Prox
Blog |
Twitter
PoshWSUS |
PoshPAIG | PoshChat |
PoshEventUI
PowerShell Deep Dives Book -
hi,
I have a requirement: in my site collection i have an announcement list. and in my site collection some 600+ sub sites exist. sharepoint admin uploads an announcement into this rootweb's announcement list. now is there any way
i can add the same announcement -which has title, description, date time etc .- to all the 600+ sub sites' announcement list?
i know , if i write a list item event receiver i will be able to iterate through eacha nd every subweb of my site collec and add this item into those sub web's announcement list. But, without writing an event receiver and creating and deploying
another wsp and avoiding all those headache, is it possible to achieve this requirement?
any other approaches are highly appreciated!Hi,
As a workaround, we can create a winform application for admin use only to add the item to all the sub web's announcement list.
Developing Sharepoint Windows Forms
http://www.codeproject.com/Tips/566370/Developing-Sharepoint-Windows-Forms
Best Regards,
Dennis Guo
TechNet Community Support
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
[email protected] -
Using "Enum constant" in state machine.
hallo all.
i bild state machine, with 10 states. i move beetwen the states with Enum constant.
my qustion is: if i want to add/delete some states, why i need to update the Enum constant at every state ?
there is way to update "Enum constant" at one state, and all other "Enum constant"(in other states) will update automatically
thanksIf you save you enum as a type def and replace all of the current occurences of the enum wi the type def, you shoud there after only have to update teh typedef.
1) Find an oocurance of the enum
2) Right-click and change to control.
3) Find control and select Advanced customize
3) Pull down on selector and change from "control" to "type def"
4) Save control.
5) close editor and when prompeted say yes to replace control.
6) Change control back to constant
7) replcae all previous occurances by choosing replace >>> the typedef'd control.
8) Case structure will folow typed def from that point forward.
Ben
Message Edited by Ben on 12-24-2006 03:31 PM
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
Wiring constants into the queue in a queued, event driven state machine
I'm creating a queued state machine. Every time I change the queue control options to create a new event I have to recreate a constant in each queued event. Is there a way around this? I'm up to 27 events and changing them all is cumbersome. And I'm sure there are more to folow.
Are you using enums for your constants? If so, make a control from one, right click on it and under "advanced" select "customize" and when in the control editor change the pulldown from "Control" to "Type def." Save it with a useful name, and then in the vi in which you originally created it, use it to create a new constant. You will be able to select the different constant values were you need them and now when you want to add or subtract a "named" value you just click on the closest copy of the type def, either control or diagram constant, and choose customize (or double click into the tool editor if you made that choice in the options in the Tool pulldown at the top of the screen). Any changes you make will automatically be replicated everywhere you have used the typedef, whether a control, indicator or constant. Using enums also allows having case statements that have cases with the same names at the "named" value.
Hope this helps and is what you were refering too.
Putnam Monroe
Certified LabVIEW Developer
Putnam
Certified LabVIEW Developer
Senior Test Engineer
Currently using LV 6.1-LabVIEW 2012, RT8.5
LabVIEW Champion -
How to add a state to an existing state machine?
Hello,
I have a state machine with 5 states. See attached vi (LabVIEW 7.1).
Now I want to add another state ("wait") between state Druck Aufbau and Druck Abbau. How can I do that?
I tried to add a state to the enum on the left and then I noticed that I would have to modify every enum in the vi and the case structure as well.
Is there an easier way?
Greetings Johannes
Using LabVIEW 7.1 and 2009 recently
Attachments:
Hysterese_Disc.vi 75 KBYou should replace all enums of the state machine with your type def'ed one. Thus, every change you make will be propagated throughout your state machine. When you need to add or delete states, change the typ def (so the Enum.ctl), and then all the enums will change. Thats the very reason of type definitions. In future, always use type defed enums.
Felix
www.aescusoft.de
My latest community nugget on producer/consumer design
My current blog: A journey through uml -
Using a Ring in a State Machine - Can I Show the Item Name in Each Case?
In the past, I've always used strings to pass states from one loop iteration to the next. I'd like to try doing that numerically, with a Ring or similar to avoid problems with typos in my strings. However, when I set it up with a ring, each case only shows the Ring number, not the text description. Is there a way to set up a numerically-based case structure that shows a text description for each case? Thanks!
Solved!
Go to Solution.diarmaede wrote:
Ahah! Replaced the ring constant with an Enum constant, and everything works beautifully now. Never mind.
I'll still mind to help you with the question you will have soon.
Save the enum as a type def then replace all of the constants of that enum with the type-def'd version. By using a type def, you can edit the type def to add new values and all instanses will automatically adapt. WIth a plain enum, if you edit one instance and not the others, you will be back in number land again.
Ben
TO save as type def...
click-click create control
Goto FP and right-click new enum control and chose advanced customize.
In Control editor change drop down from "Control" to "type def".
Save
Replace
Find terminal id diagram and choose convert to constant
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
I keep getting the following message "some items (meaning all of them) were not transferred because iTunes match is enabled." when I try to drag and drop a playlist, song, or album to my iPhone. This was NEVER a problem before iTunes match or the last iOS update. So what is the deal? Why can't i just add music to my phone from the mac? There is space on the phone. The only way I have found to get the music i want to the phone is to have it download from the phone. This is not something i want to have to do: go through and manually add every album and recreate a playlist on the phone when its there on the mac. And, even more irritating, since the new update, when the phone is plugged into the mac i can't actually view from the mac what music is on the phone. This is incredibly frustrating and any help would be much appreciated in managing my music libraries for each device.
Hi,
You cannot manually manage music with match turned on on your iOS device. If you want to manage music manually, you will need to turn off match on your iPhone.
Jim -
Create Multiple tasks for Single Item in List using state machine workflow in sharepoint
Hi,
I want to create multiple create tasks for Single Item in List based on Assigned to column using state machine Workflow through visual studio
Here Assigned to column allows multiple users. so i have to create task for every user based on column .
I'm trying for this but i didn't got any solution
Please provide solution for this.Hi,
According to your post, my understanding is that you wanted to allow multiple users to approve.
There are some articles about creating parallel tasks in state machine workflow, you can have a look at them.
http://www.codeproject.com/Articles/477849/Create-Parallel-Task-in-State-Machine-Workflow-in
http://msdn.microsoft.com/en-us/library/office/hh128697(v=office.14).aspx
http://social.technet.microsoft.com/Forums/office/en-US/b16ee858-4360-479a-a686-4ee35b7be9db/sharepoint-2010-workflow-creating-multiple-tasks?forum=sharepointdevelopmentprevious
Thanks & Regards,
Jason
Jason Guo
TechNet Community Support -
AddItem() adds item to all JComboBoxes
I dynamically generate a series of JComboBoxes using a loop.
inside my loop i test if a certain condition is true, if true i add an item.
The problem is that when the condition tests true, the item I add is added to all my dynamically generated JComboBoxes.
Hopefully some fresher eyes can spot my error.
thanks in advance,
Pete
Here's the offending code:
for(int i = 0; i < counter; ++i)
unitField[i] = new JTextField(5);
boxWeights[i] = new JComboBox(vecWeightText);
String tempName = FCProItem.ingredients.getNameOfIngredient();
lblIngredients[i] = new JLabel(tempName);
if(FCProItem.ingredientsi].hasConversiontempName,FCProMenuItem.CONVERSION_FILE_PATH_TEST) )
System.out.println("Add conversion to combo-box for: " + FCProItem.ingredients[i].getNameOfIngredient());
Vector hold = FCProItem.ingredients[i].getIngredientConversions(tempName);
for(int z = 0; z < hold.size(); z++)
if(z % 3 == 0)
boxWeights[i].addItem(hold.elementAt(z));
.... more code...In my efforts to solve this I've ruled out as mcu as i can think of.
My problem remains, however, slightly improved. Now I add the correct items, yet still to very JComboBox.
Latest code:
for(int i = 0; i < counter; ++i)
unitField[i] = new JTextField(5);
boxWeights[i] = new JComboBox(vecWeightText);
String tempName = FCProItem.ingredients.getNameOfIngredient();
lblIngredients[i] = new JLabel(tempName);
boolean flag = FCProItem.ingredients[i].hasConversion(tempName, FCProMenuItem.CONVERSION_FILE_PATH_TEST);
if( flag )// we have a conversion
Vector hold = FCProItem.ingredients[i].getIngredientConversions(tempName);
for(int z = 0; z < hold.size(); z=z+2)
boxWeights[i].addItem(hold.elementAt(z)); -
How do I add new data to the same file in a State Machine?
Hello,
I have a State Machine, with a State where 3 samples of data are collected in a For Loop. I would like to save this data in a file and keep adding new data to the same file each time I get to this state. The problem I'm running into is that each time I reach this State, my old data in the Excel file gets replaced with the new data instead of being continuously added in the same file.
Ive tried Shift Registers but I may not be using them correctly since my file keeps displaying only 3 new data points.
Any ideas will be appreciated!
Thank you, so much.
-PeterWhere should I place these shift registers? Where should I place my File I/O VIs? Is it possible to use the Write to Spreadsheet File VI in this situation?
Ive attached a very simple example of the problem. Thank you.
Attachments:
StandardStateMachine 2.vi 16 KB -
Dear Fellow LabVIEW programmers:
Most of the systems you deal with are reactive. It means that their
primary function is constant interaction with their environment by
sending and receiving events. But most likely, they can have something
happening inside them too, even when they are not processing messages
received from outside. So, such systems have to continuosly react to
external and internal stimuli. Right? Moreover, most likely, they
consist of subsystems that are reactive too and, in turn, can have
their own "life", to an extent independent from other parts (with
which they still communicate, of course). Reactive (event-driven)
systems are more naturally modeled with active objects. So, why then
should we try to model and code them with GOOP and its passive
("dead"!) objects?
"Flat" State Machines have been known for decades to have severe
limitations. It's been more than 20 years since Dr. Harel invented
Hierarchical State Machines (statecharts) to fight those limitations.
Then why does NI still tout the same old good Moore FSM as the
ultimate tool for event-driven programming in LabVIEW in its $995
State Diagram KIt?
The LabHSM toolkit we are happy to present, makes it possible to
easily create and then maintain complex event-driven applications in
LabVIEW as a collection of HSM-driven active object VIs using a higher
level of abstraction and agile software development methodologies.
These active object VIs are created based on a universal Hierarchical
State Machine ( HSM or statechart ) template. So. all your code looks
similar regardless of its functionality!
We all love just jump to code, right? However, to be good boys, we
need to do design first. Then implement it in code. If the logic is
modified we need to redo the design first and then redo the code. When
using LabHSM where behavior information is abstracted into a separate
HSM data file editable with a supplied editor, there is no need for
coding separate from design any more. The modified behavior becomes
code automatically as soon as the HSM file is saved. Design is code!
The implementation basically follows Dr. Samek's Quantum Programming
paradigm. (see http://www.quantum-leaps.com). However, as already
mentioned, LabHSM stores the behavior information in a file separate
from the code itself. It also adds state dependent priorities to
events, a separate queue for public events/messages, and, of course,
some LabVIEW specific code like capturing front panel user events and
putting them into the private Events queue. Communication and
instantiation functions are also rather specific for LabVIEW.
It is available for UNLIMITED PERIOD trial. Please visit
http://www.labhsm.com for details and download. The site also contains
references which you may want to check to learn more about
hierarchical state machines and active object computing.
Since this is our debut we will appreciate any comments and
suggestions. Our contact information is available on our site, of
course.
Have a G'day!Symtx is currently hiring the following position. Please contact me if interested.
Amy Cable
Symtx, HR
[email protected]
Symtx, the leading supplier of functional test equipment, hires the brightest & most talented engineering professionals to design & manufacture complex custom electronic systems for advanced technology leaders in the defense, aerospace, communications, medical, transportation & semiconductor industries. Symtx’ challenging & dynamic work environment seeks to fill openings with highly qualified electronic engineering design professionals.The ideal candidate will be responsible for defining the requirements, software design and code development, and integration of test control software for custom functional test systems. Candidate should be familiar with data acquisition concepts, instrument control, complex test, measurement and calibration algorithm development and definition and implementation of control interfaces to hardware. Prefer familiarity with instrument control via GPIB, VXI, MXI, RS-232 desirable. Requires BS/MSEE and 3 -7+ yrs of experience in one or several of the following test applications in a Windows NT/2000/XP environment using Labwindows CVI, TestStand, Labview, Visual Basic, C++ and knowledge of RF systems is a plus. Job responsibilities will include software design, development, integration, team leadership, and interfacing with customers( includes PDR’s & CDR’s). -
How to REpublish Custom Task Forms (InfoPath) to SharePoint 2010 State Machine Workflows
I am new to SharePoint. Sorry if answer to my question is obvious.
I've create Custom Task Form in InfoPath and publish it (File/Publish/Network Location [Form Template Path and filename='MYPROJECT/Forms/ApprovalForm.xsn'; Form template name='ApprovalForm'], in the next window I've cleared Public URL according to the articlehttp://www.codeproject.com/Articles/195348/SharePoint-2010-State-Machine-Workflows-with-Custo).
After it I've added module Forms, and added ApprovalForm.xsn from the existing items.
My xml files: Elements.xml
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Workflow
Name="Order New Server"
Description="My SharePoint Workflow"
Id="482cbc86-b717-4981-a49a-3cf4c89e9399"
CodeBesideClass="Myproj.OrderNewServer.OrderNewServer"
CodeBesideAssembly="$assemblyname$"
TaskListContentTypeId="0x01080100C9C9515DE4E24001905074F980F93160">
<Categories/>
<AssociationData><Data></Data></AssociationData>
<MetaData>
<AssociationCategories>List</AssociationCategories>
<Task2_FormURN>urn:schemas-microsoft-com:office:infopath:ApprovalForm:-myXSD-2012-03-09T14-11-55</Task2_FormURN>
<StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl>
</MetaData>
</Workflow>
</Elements>
Feature.Template.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/" ReceiverAssembly="Microsoft.Office.Workflow.Feature, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Receiverlass="Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver">
<Properties>
<Property Key="GloballyAvailable" Value="true" />
<Property Key="RegisterForms" Value="Forms\*.xsn"/>
</Properties>
</Feature>
My form work fine, but when I make changes and republish it, it doesn't update (I see old form). What I tryed:
IISReset
Clear all cookies and cache in IE
Retract solution, restart VS2010, reboot computer.
Change assembly number, guid.
I have no ideas, what can I try for republish my form with changes.
Thank you in advance for any suggestions.
PS: sorry for my writing. English is not my native language.
PPS: when I save new Form to new location and add it to the project, it works.I've found how can I republish changes. But it seems more like crutch than solution, but it works:
After republishing InfoPath form, I delete file from project (DEL on ApprovalForm.xsn in Solution explorer) and after it add it again. (Add/Existing Item). And then redeploy! Hurray!
Is there any way to redeploy a Task Form directly on the server without importing it in Visual Studio again? I am using some data connections in my task form which are different for different environments (staging, dev. etc.). Seems like I've to create a separate
Workflow WSP file for each envrionment. Any comments? -
Flexible state machine "configuration" (script interpreter?)
Hi all,
I am currently re-thinking the implementation of a larger labview project which controls
an instrument via RT on a CRIO system.
Since the instrument is constantly improved and new features added to make it more and more
automated I come to the limits of the current design.
A quick description:
The instrument should be capable of taking different kinds of measurements either at
constant conditions or at conditions that continuously change.
Before an measurement, the instruments needs to be conditioned, which is a rather complicated
sequence of valves opened/closed, pumps started/stopped, temperature settings and so on.
I currently use commands stored in a text file and read into an array of command clusters (enum'ed command + string for parameters)
to be processed during conditioning.
Then the user can run another sequence to make a certain kind of measurement.
This works nicely but is not flexible enough. The conditioning and measurement sequences should be easily
editable without making changes to LV code.
This is one reason I did not yet code this as a state machine, but it is a logical next step to do so.
States would be idle, conditioning, measurement, re-conditioning ....
But how do I do this in a most flexible way?
In the sequences, I sometimes need to check for instrument parameters, and it would be elegant to
call sub-sequences. I already implemented a looping feature to repeat some commands
between two positions in the command array several times. But without the possibility to jump
out of the loop.
In short, if I continue this way I am about to write an interpreter for a simple scripting language .....
I know that possibly VeriStand has a lot of this functionality but I am bit hesitant to make
a big change like this and I am not sure if I can re-use the existing LV code to access and control
hardware using VeriStand.
Is there a good/elegant solution to what I intend to do with just LV and without re-inventing the wheel (script interpreter)?
OlafThe most flexible way to implement this would be to use a command pattern and LabVIEW classes. Using this approach, you core state machine would probably never change and you dynamically add or remove steps as needed. Take some time to learn how this works by writing a couple of simple examples, then dive in. It will be easier than you may think.
This account is no longer active. Contact ShadesOfGray for current posts and information.
Maybe you are looking for
-
I get wireless connection but my internet does not work on my ipad 2
I get wireless connection but my internet does not work on my ipad 2
-
I was trying to burn an iMovie project to a dvd through iDvd but that didn't work. I then just tried burning the project to a disc without using iDvd and when I went back to my iMovie library, it wasn't there anymore.
-
URGENT( PNP LDB SELECTION SCREEN )
hiiiii, can anyone tell about the field PNPDISBD of pnp LDB in sap-hr , and why it is used. Is There any field on selection screen related to this when we use pnp LDB.
-
Need BTV code for a JVC LT-42TG30J TV
Hi everybody, i have tried all the codes listed for the above telly but none of them work :-( Anybody got one of these sets or know of a code that works please BTW its a black BT remote. many thanks Keith. Solved! Go to Solution.
-
Hello so i was selling stuff of online game and now i got limited and i have to Provide Invoices they ask me this Please confirm that you own the merchandise you're selling. Helpful documents include copies of sales receipts, itemized lists of goods