(How) Can I change vi execution priority at runtime

Hi all,
I am using Daemons (free running VI's) and I communicate to them through Queues.
They are part of my device driver architecture and use a producer architecture (For Acquisition) or a consumer Architecture (For Control)
I have a single Daemon VI to which I deploy a "Device Object" using a Polymorphic class implimentation.
This implimentation has one subtle shortfall,
I am not able to change the execution priority at launch
There is a property node that taunts that it is possible but the help (And run time Error message) says it not available at runtime.
Does anyone know of an alternative method?
Here are what I have thought of to-date:
1. Have 5 different daemons each with a different priority [Distasteful for Code maintainance]
2. Make Priority Low, and ensure that at least 1 VI in the driver has a high priority [Not sure if it works, obscure implimentation]
Kind Regards,
Tim L.
iTm - Senior Systems Engineer
uses: LABVIEW 2012 SP1 x86 on Windows 7 x64. cFP, cRIO, PXI-RT
Solved!
Go to Solution.

Ben,
I debated wheter or not to put more information in my post, I didn't want to bore my potential support Sensei's.
Here Goes:
As I hinted in my initial post, I am devoloping a set of drivers for my large application.
I am using a compact Field Point and am under some fairly aggressive rescource pressures.
Heavy RS422/485 Serial Comms @115200, Digital Acquisition and some heavy data processing.
My understanding of this type of system (Jump in if you have any improvement suggestions):
Priority #1 [High Priority](Producer) is to get data out of the Acquisition Buffers and in my case, perform Writes/Outputs/control activities as demanded.
So any "Hardware" Device Driver Daemons that I lanuch need to be run at high priority.  The drivers should do as little as is necessary so as not to hog this thread. Event based architecure is preferred over polled.
These drivers tend to be launched as Daemons so that they can run in a different priority and are not affected by other activities, they are inherently asynchronus.
Priority #2 [Above Normal Priority](Consumer->Producer) Protocol/state interpretation/Data Filtering.
Now that the data is out of the buffers, what does it mean? is it a valid communicationss message, was there a button pushed, is there an object in the transducer field.
These functions may take a bit longer (but not too much) to execute, but as they are on a lower priority, buffers can continue to be emptied.
These "filters" tend to be launched as Daemons also so that they can run in a different priority and are not affected by other activities they are inherently asynchronus.
Priority #3 [Normal Priority](Consumer) Number Crunching, Heavy Lifting , Control determination..
An event has occurred and some caculation interpretation and potentialy control needs to be performed, Do it.
Tend to be event based and as there are multiple stimulii tend to be best managed by an event structure.  This allows for interaction with the front panel as well (should the need arise).
Priority #4 [Low Priority](Slip-Scheduled) User interface/User Data/Report Generation.
Who Cares if it is a bit late, Work away in background.  In the case of user updates, they can slip later and later, no need to catch up.
For others reading this thread, I found This Module Help invaluable in understanding how Labview manages execution priority.
Theory Done, I am essentialy a lazy programmer, and don't like to write and maintain too many different .vi's if I can help it, <Rant> ESPECIALY IF THEY ARE THE SAME VI WITH A DIFFERENT PRIORITY! </rant>.
So I have written one Daemon and one Daemon manager (to rule them all). For each driver I require, I launch a Daemon, passing the "Base" Class object to the Daemon prior to Run, I rely on the override capability of polymorphism to choose the correct methods.
My "Base" Driver class contains all of the functions required for operation.  I use it as an enforcable template for future driver development (It also auto fills in my Icon's wich is great for a Lazy Programmer like me).
I have established that my protocol driver (Priority #2) is compatable with the same daemon Architecture from above, Instead of looking at hardware, it monitors a Queue/Notifier/User Events from the lower level hardware driver.
I was very smug when I figured that one out, until.... I realised that they would need to be launched at different priorities to respect the RTOS, and thus my question.
I am not trying to change priority per-se, but to choose one prior to launch and then to leave it.
Cat Killed? (Curiosity Cured?)
iTm - Senior Systems Engineer
uses: LABVIEW 2012 SP1 x86 on Windows 7 x64. cFP, cRIO, PXI-RT

Similar Messages

  • How can i change character set on forms9i runtime?

    Hi Every Body,
    i am a user on forms9i developer.
    i want to know how can i change character set definition when i run a form on web(with oc4j).
    is it any JAR file or another file that i can change display of characters on forms9i runtime on web?
    thanks a lot.
    f-badiee.

    hi frank,
    thanks a lot for your attention.
    i have a problem on persian language.
    whereas oracle dosn't support persian(farsi) language,
    i use arabic character set for simulation.
    in oracle developer6i (forms) i had no problem about displaying farsi fonts on runtime.
    but in forms9i that runs forms on web(java applet) i can't use farsi fonts correctly.
    for example when i type a word(boilerplate text) on farsi language in form builder i can see it correctly but when i run my forms on web , characters of that word have some displacement.
    i want to know that is there any configuration file for solving this problem?
    thanks a lot.
    be successful.
    f-badiee.

  • How can I change the state of a runtime menu item programati​cally?

    Using LabView 6.1, I would like to change the state of the runtime menu item "Operate/Print at completion".
    The goal here is to print the VI front panel according to the operator choice (OK ->print, Cancel ->don't print)
    In a first release, I put a Stop function at the dialog output (activated by the cancel button) but this function stop the complete application and my idea where to stop only the VI in which the dialog is running.
    In a second release, I've tried to use the "Application
    control/Menu" but I receive every time an error:
    Error 88 occured at Cannot modify application menu item in the printtest.vi.
    Possible reasons: LabView, Runtime menu error...
    Any suggestion is appreciated.
    Re
    gards,
    phidu

    Instead of using the print at completion option, print the VI programatically if the user selects to print...open a reference to the VI you want to print and use an invoke node to print vi to printer.
    Alternatively create another VI with a layout optimized for printout, set it to print at completion and run and load the data into that VI if and only if the user OKs the print...
    Mads
    MTO

  • How can we change the Job priority in the Source system

    Hi All,
    We are facing an issue with the process chain execution in the Production system. We have a process chain which runs daily in BI system and the chain is designed in such a way, that as soon as the chain starts in BI system,  a corresponding job is triggered in the Source system (ECC  6.0system).
    Now the issue is that after we have our Source system upgraded the memory allocation for the particular Job (FIGL )is reduced and due to which the FIGL job is failing frequently. When we have consulted some experts.They  advised Us to increase the Priority of the Job in source system to A/1, as of now the job is running in B/2 priority.
    Please let us know the way how we can increase the priority of the Source system Job, so that when the process chain triggers a job in source system and that particular jobs  should run with Priority A/1.
    Thanks in advance.
    Regards,
    Chandra.

    Hi Chandra,
    First please find the job name in SM37 for FIGL and check the job status to be in "released" status. Select that job and go to job menu and click on change. then it will take you to the job screen where you have "job class". Here you can change the job class to "A" to get to high priority.
    If you are unable to edit the job then create a new job with the same variants by clicking STEP button in the Job screen.
    Try these steps, let me know if are able to do so.
    Regards,
    Ravi Kanth

  • How can I change the SocketFactory at runtime?

    I have a question, maybe someone has had a similar problem. I have a client-server application with communication over RMI. The client may, through a dialog box, choose a connection "submethod":
    * a simple RMI
    * RMI over fixed ports
    * RMI over HTTP.
    After selection the application registers the proper socket factory with the RMISocketFactory.setSocketFactory(...) method. So, if the user disconnects from the server and tries to reconnect with another "submethod", the application throws the following exception:
    java.net.SocketException: factory already definedAPI says "The RMI socket factory can only be set once", so how can I change the connection submethod at runtime?
    Regards,
    Marek.

    You can't.

  • Can you please tell me how can i change the parameter of Applet using Aspec

    Respect Members
    Can we apply Aspectwerkz on Applet? In our project we have to
    change the method parameters before its execution(Around Advice) , can we do this in applet using Aspectwerkz?
    Can you please tell me how can i change the parameter of Applet using Aspectwerkz or AspectJ ?
    I did it by for Java Application using the AspectJ And Aspectwerkz But not able to do for Applet.
    For Applet I Am setting the parameter in JAVA plug in for Aspectwerkz e.g. -Xdebug -Xrunaspectwerkz -Xbootclasspath & path for xml file in which pointcut is defined.
    If you any Friend working on it or any author who might be helpfull for me please Forward this mail to him/her
    THANKs in Advance
    [email protected]

    hello rodale, what you're seeing is probably a side effect of firefox not being able to save certain preferences into its profile folder.
    go to ''firefox > help > troubleshooting information'', click on ''profile folder/show folder'' and close all firefox windows afterwards. a windows explorer window should open up - in there delete the file named '''user.js'''.
    in case this didn't solve the issue yet please also refer to [[How to fix preferences that won't save]].

  • How can we modify the Task Priority in BPM workspace???

    How can we modify the Task Priority in BPM workspace??? Is it possible?? If so what is the best and easy way to implement this??

    Hi Chandra,
    First please find the job name in SM37 for FIGL and check the job status to be in "released" status. Select that job and go to job menu and click on change. then it will take you to the job screen where you have "job class". Here you can change the job class to "A" to get to high priority.
    If you are unable to edit the job then create a new job with the same variants by clicking STEP button in the Job screen.
    Try these steps, let me know if are able to do so.
    Regards,
    Ravi Kanth

  • If I chose the wrong folder as defaulf for downloads to go to, how can I change it?

    I use download manager. I hit '''yes''' when asked if I wanted to make the folder shown as the default for future downloads of that type. I did not mean to do that. How can I change the default folder?

    Hi belladonna82,
    You should take a look at the [[Downloads window]] and [[Options window - General panel]] Knowledge Base articles. They will give you all the details you need. Unless you are talking about the default action and not the actual download folder? If so, you should look at [[Options window - Applications panel]].
    Hopefully this helps!

  • How can I change the display of Inbox in my iPad's mail app- so that it takes up the full screen?

    How can I change the display of Inbox in my iPad's mail app- so that it takes up the whole screen, as opposed to just about one third; the other two thirds display the full text of the selected email?

    You can't change the display in the Mail app, if you are holding the iPad in landscape orientation then the left-hand third will be for navigation, and the right-hand two-thirds will be an email. If you hold the iPad in portrait orientation then the navigation section becomes a drop-down section.

  • How can I change the default "from" email account on my iPad/iPhone in IOS 8.2?

    I currently use my phone & pad for business and personal use.  My emails should come from my business account but they're coming from my Yahoo account.  How can I change it without having to manually change each email?  I've checked online but I don't see settings/mail,contacts,calendars/default account in this new revision of software.
    Thanks!

    Hi bschmidt0726,
    Go to "Setting"; scroll down to the 4th box for "iCloud"; You need to turn on you "Mail" option in the "iCloud" settings.
    Then,
    Go into "Settings", scroll down to "Mail, Contacts, Calendars"; on the left panel, scroll down to the 4th box; there you'll find the "Default Account" settings.

  • How can I change an english/american keyboard to a danish one?

    How can I change an english/american keyboard to a danish one on a Macbook Air?

    Apple menu / System Preferences / Keyboard / Input sources.
    Click + (bottom left) and in the pane that comes up, select Danish on the left, and click Add.
    Of course that can only change what the keys actually input, not what is written on the keys. If you wish to change the physical look of the keys as well, get in touch with Apple and ask if they can replace the keyboard.

  • I don't remember my old Apple ID and I closed my email account that I was using for my old Apple ID. Now, how can I change my icloud id on my Ipad. The old icloud id is still on my Ipad.

    I don't remember my old Apple ID and I closed my email account that I was using for my old Apple ID. Now, how can I change my icloud id on my Ipad. The old icloud id is still on my Ipad.

    ChrisJ4203,
    Thank you for the help.  Every app on my phone was downloaded using my old I-tunes ID.  I just hope that they will re-download under my new ID because I still can't change it on my phone.  In order to change to the new ID it says I have to sign out from the old ID and change to the new one.  My problem is that I don't remember my password to be able to sign out from my old ID.  Then the phone says it can change my password through e-mail and I  agree but I never get an e-mail at my old address or the new one.
    BHuyett

  • How can I change a calendar event color?

    Hi,
    Just spent too much time trying to figure this out, but how can I change events colors in my calendar?
    I'm not talking about the color of a calendar, this affects all events, but event per event.
    And I don't want to set multiple calendars.
    One calendar, different events with different colors...
    Please don't tell me that such a basic feature is not available when it is in bad amateur freewares...
    Thanks for any help
    P.S. Please disregard answers like "why don't you want multiple calendars", etc...

    Anyone with a solution for that basic feature?

  • How can I change the background of a running webpage on my own. Example Facebook I want to change its backround color from white to black just in my view not for all

    How can I change the background of a running webpage on my own. Example Facebook I want to change its background color from white to black just in my view, not for all. Cause I really hate some site with white background because as I read for an hour it aches my eyes but not on those with darker background color.

    You can use the NoSquint extension to set font sizes (text/page zoom) and text colors on web pages.
    *NoSquint: https://addons.mozilla.org/firefox/addon/nosquint/

  • How can you change your security question for I tunes?

    How can you change your security question for I tunes?

    If you have a rescue email address (which is not the same thing as an alternate email address) set up on your account then the steps half-way down this page give you a reset link on your account : http://support.apple.com/kb/HT5312
    If you don't have a rescue email address (you won't be able to add one until you can answer 2 of your questions) then you will need to contact iTunes Support / Apple to get the questions reset.
    Contacting Apple about account security : http://support.apple.com/kb/HT5699
    When they've been reset (and if you don't already have a rescue email address) you can then use the steps half-way down the HT5312 link above to add a rescue email address for potential future use

Maybe you are looking for

  • Dual Monitor Causes Taskbar to Dissapear

    I have a T410i with the docking station. I have two Samsung B2230 monitors attached via DVI. This works fine for a while, but eventually the Taskbar will dissapear. I can see the top pixel or two of it rendering at the bottom of the screen so I can t

  • Does a SWC defined for Java not update the Standard SAP SWC changes?

    Hi, I am facing this problem on 7.0 SP 13 box. I have a standard SAP provided SWC. There is a field in data type with occurrence - min 5 max 5. I wanted to change it to 0...5. SAP has provided me a note and after applying, it is seen in the imported

  • Modifying SOAP faults

    We'd like to include a bit of detailed information if a SOAP fault is generated by our Web services. Is there a good way to modify SOAP faults before returning them to the client ? Maybe intercepting them ? We are using Workshop 9.2 and XMLBeans ...

  • Open ports

    I need to open up ports UDP 88 & 3074 and port TCP 3074 so i can use my Xbox. any thoughts ?

  • Powershell Script Error, its saying The term is not recognized as the name of cmdlet

    Hi, When i am running following script into powershell, getting this error. i was not able to find out what could be the cause?Please help me out. Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue functionCreate-SPFoldersBulk