The search for a perfect design pattern

The search for a perfect design pattern
I am searching tip to upgrade a labview program used. I am looking for the best approach to make
my program more robust and scalable.Software and hardware. 
Today the system consists of :
GPS, weather station, ultrasound wind sensor, echosounder  and a  webcamera,  all connected to a computer.
The computer OS is XP pro with Labview version 2009 installed. Except for the webcamera all peripherals have serial communication interface. 
The webcamera  interface is ethernet.
Device                           Data type                 Interval                    Interface
GPS                                NMEA string                1 second                   Serial  rs232
Ultrasound wind sensor   NMEA string                1 second                   Serial rs232
Weather, temp,humid     NMEA string               35 seconds                 Serial rs232
Echosounder                  NMEA string               500ms-5 seconds       Serial rs232
                                                                      (depending of depth)
Webcamera                    Jpg                           Snapshot on demand  Ethernet
The tasks to be solved
All the data have to be stored.
All the data have to be displayed in real time.
Weather history data must be buffered to be plotted in a graph (pop-up windows).
Absolute wind speed and direction have to be calculated.
Option to send navigation data attached to email at desired time intervals.
Image snapshot at desired time intervals.
The data wich streams into the serial ports are not synchronized and vary in intervals . Would it be a good idea to put all the serial peripherals into a serial device server. Is it possible to let the server place a event in my software, to  trigger reading of the data, from the the server.  Or how could that be done in other ways?
The perfect design pattern
In version one of the software I use 4 parallel loops to read data at the serial ports, inside these loops the data was separated and outputted to a datasocket server.  I used datasocked read in other loops to present and store data. But it did not look good, and yes it was a mess, a really rat nest. I am looking for a better design pattern.
 Could some kind of producer/ consumer pattern be the way to go?
Comments and tips are wanted.
TIK

Nice Project! Congratulations ;-)
I am not an expert for large applications. But your project looks nice and manageable. Here my straightforward ideas:
I would build a GUI, with menu bar, pop-up graph display thing.
THen low level tasks with each one handling a RS232 device and feeding queues or fireing notifications.
Maybe handle the snapshots in an event structure on the GUI blockdiagramm.
When GUI and producer tasks are running, close the gap with a middle layer which captures the data and actualizes GUI by reference. For instance the graph-thing-dialogue triggers a "flush queue" and displays the last 200 entries of the array of data.
I often run into issues when having defined too many userevent structures. I guess i am too stupid for that. Thats why i rather use queues (when i dont want to loose data) or notifiers (data is up-to-date). Nevertheless I like a "stop-all-tasks" user event...traditionally.
My team is actually developing a large application. We are using LabVIEW classes and objects.
So have fun!
Yours
RZM

Similar Messages

  • In iTunes 11.0.2.26, an Albums search by track names returns albums as if they only have one track on them, but I still want to access the entire album. How can I have the search results show the entire album (with just the searched for name highlighted)?

    Hello, all.
    In iTunes 11.0.2.26, an Albums search by track names returns albums as if they only have one track on them, but I still want to access the entire album. How can I have the search results show the entire album (with just the searched for name highlighted)? For instance, I'm wanting to play an album with a particular track on it or I'm searching for albums that include that track. iTunes incorrectly assumes that all I'm after is that one track and then incorrectly displays the album as if there is only one ttrack on it. This is a bonkers default setting. Can I change this?

    Click the search magnifying glass and uncheck "Search entire library".
    Type in the name of the track.
    Click the album of interest to show tracks.
    Select the track.
    Press the X in the search box to clear the search.
    Double click the track you want to start playing first.
    tt2

  • Pavilion dv6 - the search for WLAN doesnt exist after installing windows 7 ultimate

    pavilion dv6 - the search for WLAN doesnt exist after installing windows 7 ultimate
    after installing windows 7 my computer only displays the LAN on my quicklaunch bar and I can even search for open WLAN networks =(

    Hi:
    You probably need to install the wireless card driver.

  • Skipping the search for linked images

    Hi all
    My indesign document have 250 images. While I have moved the indesign document to different server. All the images are missing links now. While I am opening the document indesign looking for image links, this process is cosuming more time to open the document.
    I want to just skip the searching for linked file and open the file. I will relink them afterwards.
    Skipping the search for linked images while opening the indesign file is prossible?
    Thanks in advance
    Regards
    arul

    That preference can be changed. Edit>preferences>file linking (Windows) or InDesign>preferences>file linking (Mac)
    Bob

  • Problems with the Search for room content

    Hi,
    I face a problem configuring the search for room content using KM search iView (com.sap.km.Search).
    I found the chapter Configuring the Search for Room Content in the help. So I set up the following things :
    1- I assign the room_id iView parameter to the roomid room parameter (in the template)
    2- I added room_cm_search component to the component set (I added it at the bottom of the "component for basic search function")
    3- I select the entry "Folder" as the default search scope in the search option set. I specify a root folder for search as well.
    But it doesn't work properly. It always returns "no result found". And if I add the room_cm_search component at the top of the "component for basic search function", It runs the search on all the documents of the default search scope, and not only on the room documents.
    Can you please tell me the right way to configure the search for room content using the com.sap.km.Search iView ?
    I work on EP 7.0 SP 10.
    Thanks a lot,
    Loïc LEVEUGLE

    Hi Loic,
    the Room Content Search iView is a special Search iView that is filtering for documents that were created in the Room Context (all documents get a specific metadata that is keeping the roomiD) . The easiest thing is to use the standard iView used for the delivered templates from SAP.
    I would advise to use the iView that is already preconfigured for a room template or part template and can be found and referenced in your template from the following path: Portal Content ->com.sap.ip.collaboration--> TemplateAndPartContent --> Generic -->iViews and take the iView "Search Room"
    If you reference that iView in your room template or room part template, you have to think about the correct configuration in the template configuration iView. Just take as example the configuration of the part template "SAP Search Room".
    Or even better: Copy a template (room or part) from SAP that is containing the Room Search and delete everything what you don´t need out of the template. You safe time and you can add all additional content you´ll need to your template. Some ideas can be found in the following "How to Guide":
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f0496f69-cb70-2910-21a6-c4cf2cc66311
    What you have written under 3 -> would never work as the root folder for search doesn´t make any sense as the documents of a room are stored in different folders and you can´t define a root folder. Therefor you have the specific room_id parameter that is filtering what documents belong to the room.
    Good luck,
    Anja

  • HT4796 The PC side quits during the search for files to migrate. It starts with Documents then dies.

    I am trying to migrate Office Outlook info from a Windows 7 PC to a MacBook Air Mac OS X v10.7 Lion. The computers match, then the search for files commences and the PC side quits. No programs are open and the Windows auto update is off. I uninstalled and reinstalled the migration assistant program with the same result.

    That's nothing!
    An engineer and I contacted Adobe technical support by phone to ensure the PC I was having custom built was configured to its optimum. They advised XP64 as the best operating environment. After that discussion we had to completely revise procurement, etc to get the bits and compatible XP64 compatible software, putting the build project back a few weeks as well, Imagine how I laughed when I found out on one of these forums that XP64 is the worst choice and totally unsupported by CS4!
    I have written to Shantanu Narayen, Adobe CEO and didn't even get an acknowledgement I raised this last week on the Adobe stand at BVE and was told they'd get someone to contact me asap but guess what, niet...! To be fair there has been one Adobe executive that recognises the problem and the damage poor customer support is causing the company; he has been as helpful as he can. Unfortunately, it seems the overall Adobe culture at the top is "get the money and run". If your problem goes beyond what's already on their web pages, tough luck!
    Regards,
    Graham

  • What is the Search for:-  All images/All documents/all movies for in Finder

    I am confused as to the purpose of Search for:- All images/documents/movies in Finder. I seem to have documents, pictures and music I have never seen or downloaded, and often photos I have actually downloaded are copied in triplicate sometimes more. I have at times got 10,000 items in my documents in Search for? My worry really is does this all take up memory on my computer and if so why is it happening and how do I stop it?
    I do hope someone can explain the purpose of the Search For?
    Jai309

    Thanks Kappy, I had thought that is what it probably was but just confused by all the items I never searched for or downloaded. Now that I know it doesn't take up any memory I shan't worry about it. When I deleted everything from the search for files all the photos in my iphoto and documents were also removed. (thankfully I always have my stuff backed up on hard drive) I guess one just shouldn't remove them? Is there a safe way to clear it out without loosing the stuff I need to keep?
    Regards
    Jai309

  • Each time i turn on computer the search for new downloads comes up. I have checked into area and selected only monthly updates. Help pls.

    Each time I turn on computer and enter Safari the "search for updated software" popup comes on.  I have selected for monthly checks. 
    Any hlp please to turn this off would be appreciated.
    Jette

    Go to /Library/Preferences.
    Move the com.apple.SoftwareUpdate.plist file to the Trash.
    Restart your Mac.

  • TS1424 The search for itunes wont work..... any ideas?

    The search for itunes will not work...I can put the name in but when I click on the search symbol it will not work?

    If you want to simply do a 'fresh' install (versus wiping out all of your data and doing a 'clean' install) simply boot to your Recovery partition (hold down the Command and R keys whilst booting) and when the Recovery screen appears, elect to freshly install OS X.
    Don't know that will solve your problem, though... did you do the 'automatic' update or download the update as a disk image (.dmg)? I wouldn't think that would be causing your problems...
    Clinton

  • Could Buffer replace the Queue in Producer/Consumer Design Pattern

    Hello,
    I have a question that the task of Buffer is to store the data and the queue is also of the same so could we use the Buffer inplace of queue in a Producer/Consumer Design Pattern.
    Solved!
    Go to Solution.

    No, those buffer examples are not nearly equal to a queue and will never ever "replace" queues in producer/consumer.
    The most important advantage of queues for producer/consumer (which none of the other buffer mechanics share) is that it works eventbased to notify the reader that data is available. So if you would simply replace the queue by overly elaborate buffer mechanics as you attached to your last post, you will lose a great deal of the the purpose using producer/consumer.
    So, to compare both mechanics:
    - Queue works eventbased, whereas the buffer example does not.
    - Queue has to allocate memory during runtime if more elements are written to the queue than dequeued. This is also true for the buffer (it has to be resized).
    - Since the buffer is effectively simply an array with overhead, memory management is getting slow and messy with increasing memory fragmentation. Queues perform way better here (but have their limits there too).
    - The overhead for the buffer (array handling) has to be implemented manually. Queue functions encapsulate all necessary functionality you will ever need. So queues do have a simple API, whereas the buffer has not.
    - Since the buffer is simply an array, you will have a hard time sharing the content in two parallel running loops. You will need to either implement additional overhead using data value references to manage the buffer or waste lots of memory by using mechanics like variables. In addition to wasting memory, you will presumably run into race conditions so do not even think about this.
    So this leads to four '+' for the queue and only one point where "buffer" equals the queue.
    i hope, this clears things up a bit.
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Looking for a tutorial/design-pattern for Manage User and Permissions.

    Hello,
    I wonder if anyone knows a good tutorial/blog with reference to security - howto Manage Users and Permissions.
    In my application I have GROUPS and each group has access to different RECORDS and CASES.
    Example:
    Groups: Alfa, Beta, Gamma
    Record: R1, R2, R3...
    Case: C100, C200, C300
    Group Alfa can view: R1, R2 and C300
    Group Beta can view: R1, R3, C200, C100, C300,
    Group Gamma can view: R3
    My question is this: what should be the best way (design-pattern?) to force a policy to securing the Records/Cases?
    What should every case/record implemented to verify that a user (part of a group) has the right to access the entity.
    Thank You!

    Sorry if this one is too basic for you but as I do not know your level of experience try:
    http://www.adobe.com/devnet/dreamweaver/articles/first_dynamic_site_pt3_print.html
    HTH
    There are also many other tutorials on:
    http://www.adobe.com/devnet/dreamweaver/application_development.html

  • How to find the executables for OWB Client, Design and Runtime Repositories

    Hi Guys,
    I have installed OWB 10G in the my local desktop (in D Drive). From the start menu, I can see the menu options for OWB Client, OWB Design Repository and OWB Run time Repository. If I want to get that execuatbles from which location can I find out. All the menu options are pointing out into d:\OWB Home \....\bin\launch.exe, but when we hit launch.exe nothing is displayed on the screen. can anyone give their suggestions pls
    Regards
    Kishan

    launch.exe is the executable but if you look at the lnk files in your start menu the launch exe is followed by two parameters where the last one points to a specific cl file (I'm guessing short for command line) in the same bin directory that also contains a number of parameters. Here all the java jar files are listed that are needed to launch the specific component and how much memory the application can/may use.
    So you won't find a classic windows executable if that is what you are looking for. But why are you searching for this in the first place since you can just copy the shortcut/lnk file if you want shortcuts in other places?

  • Restricting the Search  for Material while creating Shopping Cart

    HI SRM GURUS
    We are in SRM version 5.0 and following a classic scenarios.
    In search strategy while we are creating a shopping cart and we click on the start button a list of all the  materails  appear from where the user can select any item.
    Now in R/3 if a user belongs to Mumbai plant can we restrict the search that only material existing in Mumbai plant in R/3 appears in the search criteria and not that all the materials are displayed.
    Regards,
    Nimish Sheth

    Hi Vadim,
       The Plant related data for products/material is not stored anywhere in SRM.Then where can I apply the filters for the materials pertaining to the specific  plants through the BADI BBP_F4_READ_ON_ENTRY through the Method GET_PRODUCT?
    Regards,
    Disha.

  • How is implemented the search for collab objects?

    Hello everybody!!
    Can someone tell me how are stored the 'cards' (but i'm not sure it's card for collab objects like projects, discussions...)? Because i'm not sure these objects are crawled...
    In fact i would like to disable the search on some specific native collab objects (some projects needs to be hidden completly) but not all. Is it possible??
    Thanks.

    Unfortunately, there is no configuration setting in Collab that you can disable certain types of objects to be indexed, nor can you disable objects from certain projects to be indexed. I am not sure this will help your case, but just FYI: you can disable certain types of documents to be indexed by editing filetypes.xml.

  • HT204370 If I pause a rented movie and then try to resume play, I am told that the movie has not been downloaded and to go to iTunes in the menu and download it.  There is no download section showing and the search for rentals option produces nada...

    When I pause a rented movie and then try and finish watching it, I am told that I have already rented this movie and it has not been downloaded.  I am instructed to go to iTunes on the AppleTv menu, but there is no download section on any menu and search for rentals only gives me a continuous spinning wheel?

    The time it takes to load is dependent on your network. Rentals made on ATV won't be available on any other device.
    What is your current connection. Use speedtest.net
    Make sure DNS is set to automatic (settings - general - network)
    If on wifi try Ethernet
    Go to istumbler (Mac) or netstumbler (PC) to get a report of the network, look for signal strength and noise

Maybe you are looking for