What architecture for my application?

Hello!

For my test bench, I developed the LabVIEW software. In the last months, I asked several questions in this forum, but always about the details of my application. Until now, I never really questioned the general architecture (which is certainly a mistake, that I want to learn).

What drives this desire to review my work, it's that I am currently not able to interrupt the complete progam or subfeatures of controlled prematurely or if errors occur.

I hope you could give me some suggestions which would fit my application better. I'm not really experienced in structured programming, use for example architectures producer/consumer etc and I'll read up on them, but first I need a general boost in the right direction.

First a brief overview of my hard - and software:

HW:

  • 3 different controllers control of actuators
  • 2 different cameras

SW:

  • Front for the interaction with the user
  • Several measurement routines that use different combinations of actuators and cameras. For example "move to position 1 and take a picture, then move on to position 2, etc.. These routines can be quite long, including the analysis of the images and decisions based on the results. These routines must sit in event of an event structure that in turn lies in my main program (the program of the façade).
  • Void / screw (lowest level in my software) who send the actual orders for controllers, for example 'move', 'read the current position' etc. These Sub VIs are separated from my Panel VI and consist of structures events themselves, an event for every basic function. These event structures are controlled from the front panel via the dynamic user events. So basically a push of button on the remote.

Finally a very brief example of workflow in my software:

  1. Façade is started. Along the SubVIs for controllers are also started
  2. Lance user measure routine N1 with a button
  3. Start of the event in the front panel. In this case, other events are generated sequentally, according to the algorithm of measure.
  4. These remote events live Sub point 1, for example remote press the buttons for the basic functions in the desired order (move, take photo etc.).

Problem is that the user cannot terminate measurement routines before they are completed, because the program is locked up in the case of corresponding event.

In addition, when a controller reports an error (e.g., loss of power), as routine orders keep coming which results in more errors.

This should be possible with my new architecture:

  • The user in the front panel (as before)
  • Premature termination of all auxiliary program if the user wants or if the error occurs. Then a defined State must be entered (including closure of all references, power off all devices, etc.)

I'm not at work right now, but I'll upload some screenshots later because let's face it – which was a wall of text

But maybe it's enough for a few first thoughts of you?

Thank you!

I tend to like to have HAL - so I tend to create a module that is designed just to communicate with the instrument and then my main loop of the program (e.g. routine measurement / logic program) interact with that and sends updates to the user interface. This is because if I want to use this material in another application, I can re - use the 'module '. It's perfectly OK to have your material combined with your message loop - loop, but if it takes a long time to read the data of the instrument, your application would be not as sensitive to the façade events (because it must wait to finish first).

So, you could have:
-UI event loop
-The main Message loop (responds to user interface events and your program 'flow')
-Hardware Loop (to initialize and communicate with the instrument)

Tags: NI Software

Similar Questions

  • Architecture for large Applications of ADF

    My developer team finished a web application that contains about 350 web pages, 45 entity object and as the view object 90 between 12 modules app.

    The problem of enforcement is that weakens.


    I use all the tips, I get to guide performance and tuning... then I think the problem is that the architecture is building.

    Is correct use a proyect for model think but is a viewController project correct use?

    Maybe we can get more performance with bills viewCOntroller multiple each of them using the dependence on the same model project and of multiple war file attached to file an ear?


    Thanks for the tips...


    NOTE: I use ADF 11 with webLogic... All queries that use in the application in 50 to 100 ms, are moments of database...

    Published by: user10363801 on 05/03/2011 15:52

    The first thing to do would be to understand what is the source of the slowness in your application. I don't think that the slowness has to do with how your split your application into modules.
    Try and pin-point where slow - is making the pages? is it to get the data? what queries - or maybe she receives the data from the database for the medium level?
    Without such information it will be very difficult to recommend on a way to solve the problem.

  • What architecture for loop to hour of time timed with responsiveness front

    I cannot consider this application planning.  I was originally using an Event Driven Architecture with a State Machine in queue to analyse Panel UI changes and react accordingly.  (Something like the solution found here).

    Datalogging should be done in its own loop with the data passed by a queue.

    If you want, you can have multiple queues and several loops of consumer.

  • Applications such as Firefox and Pandora, do not recognize that I have updated to v 9.0.1 of Firefox, even though that I have updated to him twice. What can I do for other applications to recognize that I use Firefox 9.0.1?

    I've updated to Firefox 9.0.1 twice. I still get messages from Firefox and Mozilla among others asking me to upgrade to the latest version of Firefox so that my system works. When I do help > about Firefox, it shows that I'm using version 9.0.1. What additional steps are needed for other applications, including Firefox, to recognize that I am using 9.0.1 version?
    Thank you.
    Rory

    Your user agent is corrupted by the Fast Browser Search (FBSMTWB) that identifies you as Firefox/3.5.7

    see your user agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; RV:1.9.1.7) Gecko/20091221 Firefox/3.5.7 FBSMTWB

    reset the user as mha007 above answer agent

    See also these pages and discussions on Fast Browser Search (FBSMTWB in the user agent).

    http://help.fastbrowsersearch.com/

    http://www.pccybertek.com/2009/05/remove-fast-browser-search

    Thank you

  • What are the original applications for the iPhone 6 s. I had to sync to my iPhone 3g to my new 6s in order to maintain my contacts. can someone please send screenshots of an iPhone running 6s with applications shown. I need pages outside the home page.

    What are the original applications for the iPhone 6 s. I had to sync to my iPhone 3g to my new 6s in order to maintain my contacts. Unfortunately, I lost a lot of these new applications. can someone please send screenshots of an iPhone running 6s with applications shown. I need pages other than the home page. Thank you!

    'Stock' apps are part of the installation of iOS and cannot be removed, so there is nothing to verify or prove.

    When you move to a new phone, just need restoring your old backup phone and compatible applications will be synchronized to the new.

  • What is the best application to download free music for mac

    Hi, which is the best free music download for mac application? I m looking for an application that download music directly to iTunes.Hope, I get a few recommendations.

    Thank you

    Free music, you mean legal music? Sorry I had to ask, but the music is usually paid for and not free. Give most of the download sites free tracks, including iTunes - Sainte-Cécile - EP of the Foo Fighters is free on iTunes at the moment around the world

    Game Google also offer free titles... it not what the rest of us do, pay for it.

  • When I try to download photoshop CC, I ask for an application to download with. What application should I use?

    I tried to download photoshop CC. When I click on download, I wonder for an application. What should I use? I can't understand how to download this. Help, please!

    You must install the creative cloud application.

    Mylenium

  • Y at - it tone of output no matter what headset for MacBook Pro OSX10.10.5?

    Y at - it tone of output no matter what headset for MacBook Pro OSX10.10.5?

    I use the application Boom 2.

  • How can I get the installer for my application check the operating system type and then install the correct driver type?

    I have a request that I wrote and have been use and distribute for awhile. The installer I created for this application is an additional installer to install a driver for the USB connection. The USB connection is actually a virtual COM Port. The problem is that the people who drafted modified driver setup the installation program itself. They used to have an installer that would check for 32-bit or 64-bit OS and then install the appropriate driver.

    Now, they have two distinct installation programs: one for the other for 32-bit and 64-bit. They let the user know their OS and install the appropriate driver. I'd rather not have to rely on my users to do. From what I've seen the creater Installer provides that an executable to be run after the application installs.

    Is it possible to have the installer of the application, check the type of OS and then run the correct executable file after installing my application? I think that I could write an Installer 'wrapper' that checks the type of operating system then executes the correct Installer. But I expect a better solution.

    Thank you
    Joe

    So, I make it work!

    The trick is to find a way to determine what type of OS you are using. The method I used was, indeed, read the environment variable. A buddy of mine sent me this link:

    http://StackOverflow.com/questions/2401756/how-to-find-if-the-machine-is-32bit-or-64bit One of the phrases he bibliography the Processor_Architecture environment variable.

    It seemed like a reasonable idea. So I started to research how read LV it environment variables turns out, you do it by reading a registry key. There is an example of LV on how to read a registry key. But I did not know where they are in the registry. So, I searched the Processor_Architecture registry. I found it in HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment.

    According to the article in the link, this value will already be x 86 for a 32 bit OS, or something with 64 inside. I just check the response for x 86 string. If it is, I just run the x 86 version of the driver Installer. Otherwise, I run the x 64 version.

    It turned out to be as simple as that.

    I hope this helps someone.

    Joe

  • I want to choose the right USB DAQ device for my application

    Let me share the .exe file, that I use for my application, i.e. the thermostat for QCD. It is available at the following URL:

    http://www.teamwavelength.com/support/software.php?page=datasheets&view=temperaturecontrollers

    Temperature controller I use is PTC 10 K - CH got the NI USB 6351 data acquisition card. I tried the interface between the PC and PTC 10 K - CH, but could not get the desired results. (no monitoring/precise temperature control for the conduct of the LASER Source). It's a .exe file, I couldn't find how code works as well. So even if the program runs without error, I can't understand why it does not show the proper temperature values. Manual for the same Temp.Controller is available on the website of electronic wavelength.

    I would like to know if NI USB 6351 is suitable for the PTC 10 K - CH? If so, what are the common mistakes, I need to make the same thing with LabVIEW interfacing while (because I'm a beginner)? Any help is appreciated.

    Hi DEV_DS,

    It seems that you have just 2 channels of, 1 AO channel, and 1 line.  Glancing at the datasheet, I see no reason that the USB-6351 should not work with the PTC10K-CH.

    Can you share with us a screenshot of the configuration tab data acquisition channels, a screenshot of your list of devices and Interfaces developed NI MAX, and a description of the physical wiring connections you have made in the material?

  • How to choose a material suitable for my application

    How to choose a material suitable for my application. I expect a generic response that will suit all scenarios. Normal 0 false false false MicrosoftInternetExplorer4

    After a few details about your request.

    What types of signals you want to acquire?  How many?  How often, once a day, once per second, thousands per second, millions per second?  Do you need to output analog or digital inputs or outputs?

    You need a conditioning of special as for thermocouple signals, gauges of constraint, accelerometers, amplification of the tensions, the reduction of tensions, current loops?

  • Cannot install Microsoft Streets & Trips with GPS 2011 error: your registry settings for this application were not copied correctly.

    Original title: Registry loading problem streets & trips

    I bought the MicroSoft Streets & Trips with GPS 2011 disc. After the loading and activation, I get the message "your registry settings for this application were not correctly copied. I uninstalled and reinstalled 3 times. I even thought that it might be a computer problem, so I bought a new computer, but same result. Should I simply a damaged drive? What is my solution?  Russ B, Mt Laurel NJ.

    Hello

    1. where did you buy the disc?

    I suggest you to send your request in the below link.

    Support for Microsoft Streets & Trips: http://social.Microsoft.com/forums/en-us/streetsandtrips/threads

    Reference: http://www.Microsoft.com/streets/en-us/community-and-news.aspx

    Hope this information is useful.

  • Anyone know if I should trust a message concerning a program on my PC, try to connect to the internet: consent UI for administrative applications?

    Program: Consent UI for administrative applications
    Location: C:\windows\system32\consent.exe

    Hi DHMechnikov,

    ·         What operating system do you use?

    Method 1: Try disabling UAC and find the issue.

    Enable or disable the User Account Control

    Turn user account control or disable in Windows 7

    Note: These types of changes can affect the security of your computer or can affect settings for other people who use the computer. We recommend that you leave UAC to help your computer course.

    Method 2: You can run the Microsoft Safety Scanner to search for infection by the virus. Check out the following link to do the same thing.

    Microsoft Safety Scanner - free online tool for PC health and safety

  • I have an error that says"the application-specific permission settings do not permit grant local activation for the application of the COM CLSID/w Server (BA 126ADI-2166-11 D 1-B1D0-0008 (OSFC1270))

    The error indicates that the application-specific permission settings do not grant approval to local activation for the application server COM with the CLSID (BA 126ADI-2166-11 D 1 - BLM - OO8 OSFC127OE) to the user NT Autoritative / network service SID (S-1-5-20).  The error message says it can be changed by using the component services administration tool.  I can't say what to do when I get to the admin tools.  Can you help me..

    Hi mildrednorcross,

    1. when exactly you receive this error message?

    2. is your computer connected to the server or the domain?

    If your computer is on a domain network, your question will be better suited for the IT Pro TechNet public. Please post your question in the forum TechNet for assistance:

    http://social.technet.Microsoft.com/forums/en/itproxpsp/threads

    Hope the helps of information.

  • priority of the Internet for each application

    priority of the Internet/network for each application as between ie8, firefox and a download manager like utorrent, igetter, orbit downloader

    Hi, Thibaut,.

    There are some non-Microsoft programs, you can download from the Internet and use them to set the priority for each application.

    Note: Using non-Microsoft program is at your own risk.

    For more information on the definition of priority network, see the following article:
    See How to change the binding order of the network in Windows XP cards

    Visit our Microsoft answers feedback Forum and let us know what you think.

Maybe you are looking for

  • Error exporting iMOvie

    In the case of iMovie on iPad mini gig 3 16 I try to save the project with video to Photo app, pops up a message "unknown error." This could be the cause? I have 3 GB of available space on my camera and have already been able to record a 700 20 min t

  • DIP-SWITCH graphics

    Did someone at never do a graphic Dipswitch in a LabView environment where you can toggle switches with a mouseclick (= Control)? Or as an indicator. Something like this (2colors would be nice): I was looking for an ActiveX control, but was not very

  • How can I re-insatall rt120.bpl?

    It seems that rtl20.bpl or rt120.bpl has been uninstalled by inadvertence. Now I want to reinstall rtl20.bpl or rt120.bpl

  • BlackBerry smartphones, I've lost the languange Arabic support after update the software of the TORCH

    I just bought my new blackberry torch yesterday and it was Arab language support. After that upgrades over the Arabic language did not show in the list of languages only English and Español. can anyone help please?

  • Adobe is conventional to install the latest version when I have already,

    HelloI bought an HP computer brand new, and when I try to open an Adobe Document, its saying "Please install the latest version of Adobe Reader" I have 10 windows and I installed Adobe Reader yesterday and check for updates. Help I need urgently this