Best architecture for testing multiple (8) serial devices

I am not new to LabVIEW but am being tasked with a challenging project I want to be prepared for as best I can.  I am familiar with Event Structures and State Diagrams but feel these may not be adequate for the following specifications:
1.  Most likely 8 serial devices need tested simultaneously
2.  Tested every 2 hours for 48 hours
3.  Records for each one must be created and saved at each interval
I want to learn Queue's etc and am thinking a combination of producer consumer and the above two mentioned may be required.
Any basic architecture recommendations that may work would be appreciated.  FYI, I have never used Producer Consumer.
Thanks

As tbob pointed out, the architecture will be fully dependent on the exact details of the problem.  That being said, I do have my two cents to put in.  In my work, I deal a lot with serial communication (too much, in my opinion); in some instances, I am dealing with the same device on different machines and in other instances, different devices talking on different ports on the same machine.  Regardless of what the implementation is, you will find that there is a lot of commonality to be found in serial IO (open port, close port, configure port, send ascii command, receive ascii data, block simultaneous attempts to R/W, etc, etc) that is really independent of implementation.  To me, this just screams for an object-oriented approach.  The ability to reuse or change the details of the code while limiting changes to the interface itself is awesome.  In your case, if you have 8 similar devices, I see 8 instances of a class which inherits properties from a Serial IO superclass; if we are dealing with different types, then you can exploit the inheritance features of objects to basically call 8 instances of different children of the Serial IO superclass. 
All that being said, I think some of the details are missing as tbob pointed out.  However, instantiation of 8 objects will prevent some of the issues that might be associated with asynchronicity as all of the properties and methods would be associated with an instance. 
Anyway, that's my thought.  Give me another week or two and I will probably have an example of this up.
Cheers, Matt 
Matt Richardson
Certified LabVIEW Developer
MSR Consulting, LLC

Similar Messages

  • Best Practice for using multiple models

    Hi Buddies,
         Can u tell me the best practices for using multiple models in single WD application?
        Means --> I am using 3 RFCs on single application for my function. Each time i am importing that RFC model under
        WD --->Models and i did model binding seperately to Component Controller. Is this is the right way to impliment  multiple            models  in single application ?

    It very much depends on your design, but One RFC per model is definitely a no no.
    Refer to this document to understand how should you use the model in most efficient way.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/705f2b2e-e77d-2b10-de8a-95f37f4c7022?quicklink=events&overridelayout=true
    Thanks
    Prashant

  • Best practice for running multiple sites on 1 CF install?

    Hi-
    I'm setting up a new hosting environment (Windows Server 2008 Standard 64 bit VPS  configuration, MySQL, IIS 7, CF 9)
    Has anyone seen any docs or can anyone suggest best practices for configuring multiple sites in this environment? At this point I'm thinking simple is best, one new site in IIS for each client (domain) and point it to CF.
    Given this environment, is anyone aware of any gotchas within the setup of CF 9 on IIS 7?
    Thank you in advance,
    Rich

    There's nothing wrong with that approach. You can run as many IIS sites as you like against a single CF install.
    As for installing CF on IIS 7, I recommend that you do the following: install CF 9 without connecting it to IIS, then installing the 9.0.1 upgrade and any hotfixes, then connecting CF to IIS using the web server configuration utility. This will keep you from having to install the IIS 6 compatibility layer that's needed with CF 9 but not with CF 9.0.1.
    Dave Watts, CTO, Fig Leaf Software
    http://www.figleaf.com/
    http://training.figleaf.com/

  • Best practice for deleting multiple rows from a table , using creator

    Hi
    Thank you for reading my post.
    what is best practive for deleting multiple rows from a table using rowSet ?
    for example how i can execute something like
    delete from table1 where field1= ? and field2 =?
    Thank you

    Hi,
    Please go through the AppModel application which is available at: http://developers.sun.com/prodtech/javatools/jscreator/reference/codesamples/sampleapps.html
    The OnePage Table Based example shows exactly how to use deleting multiple rows from a datatable...
    Hope this helps.
    Thanks,
    RK.

  • Best practice for test reports location -multiple installers

    Hi,
    What is recommended best practice for saving test reports with multiple installers of different applications:
    For example, if I have 3 different teststand installers: Installer1, Installer2 and Installer3 and I want to save test reports of each installer at:
    1. C:\Reports\Installer1\TestReportfilename
    2. C:\Reports\Installer2\TestReportfilename
    3. C:\Reports\Installer3\TestReportfilename
    How could I do this programatically as to have all reports at the proper folder when teststand installers are deployed to a test PC?
    Thanks,
    Frank

    There's no recommended best practice for what you're suggesting. The example here shows how to programmatically modify a report path. And, this Knowledge Base describes how you can change a report's filepath based on test results.
    -Mike 
    Applications Engineer
    National Instuments

  • Best Practise for connecting to Ethernet based device

    Hi,
    I have inherited a system where we have a cDAQ-9181 controlling an vehicle access barrier, with a LabView application on  a PC talking to it via Ethernet.
    (The application is very simple - press a button > send a value to the 9181 unit > opens the barrier )
    All works fine most of the time.
    ( We occasionally get network related errors. The LabView application sometimes thinks another PC has reserved the unit, or gives “error 89130 - device not available for routing” )
    The users would now like to be able to easily run the application from a second PC ( not at the same time ), but this seems to be a problem. If I exit the application on PC “A” and run it on PC “B” it struggles to reserve the chassis, and throws the “89130” error and I have to restart the unit via MAC.
    While I’m a “veteran” control programmer, I’m new to LabView, and would be very grateful for any pointers on “best practise” for talking to devices via Ethernet, or any specific suggestions for handling multiple PCs talking to a single device.
    Thank You.
    Tim.

    Hi Tim,
    Thank you for your post and welcome to the NI forums.
    There are lots of knowledgebase articles on our website and you should be able to find documentation for most of our hardware.
    There is a good troubleshooting guide for cDAQ Ethernet here (http://ae.natinst.com/public.nsf/web/searchinternal/e67b4e4749f378ff862577270059bd4b?OpenDocument) - it outlines the steps to take to ensure you have a stable a connection as possible. You may have already seen it, but the quick-start guide for your specific device may also be worth consulting for best practices. Are these helpful?
    As for using more than one PC - this shouldn't be too much of an issue. I would expect that the resource isn't being closed correctly - when you exit the App on PC 'A', how are you closing off the resource?
    Best regards,
    Eden S
    Applications Engineer
    National Instruments UK & Ireland

  • Best practice for test to production

    I actually only have one server for test and production, but the dev processes all point to development databases and the production processes will point to production databases.
    The only real change is to make the JMS queue points to prod vs test. There doesn't seem to be an easy way to copy a complete process and change the name. That would work best for me.
    Any ideas?
    Edited by: ss396s on Nov 19, 2009 9:21 AM

    Yes you can. With SOA 11g, you can create deployment profiles to change poperties during deployment. You can also build your own deployment mechanism, as I did.
    http://orasoa.blogspot.com/2009/04/new-oracle-soa-build-server-osbs.html
    Marc

  • Best option for testing the Restore of an Backup Online with Legato

    In my company is needed to test of Restore of an Backup Online with Legato of my Production System in a server available for test with the same operating system Windows 2000 Server, the same version of SAP R/3 4.6B and database Oracle 8.1.7.4.1, but the SID is different.
    My question as is the best way to make this procedure? It will need to return to install sap with the same SID of production ??? or a way exists to change the SID and next to restore the backup online.
    I like to know me the best one practice that they can recommend to me for these cases.
    Thanks to all
    dcardena

    Hi,
    /people/sap.user72/blog/2006/03/04/complete-xi-backup-restore-in-an-hour How u feel abt this.
    The R3COPY (for releases 4.X) is a supported database-specific (backup/restore) procedure to perform faster Homogeneous System Copies.
    Regards
    vinod

  • Best practice for testing a web form after converting to a connection file

    I was using InfoPath to test a web form using a web service for the connection. I decided to deploy the form to SharePoint to make sure it worked outside of InfoPath preview mode. This required me to convert the connection to a connection file and publish
    that in SharePoint. After getting all that set up, it appears to work from SharePoint.
    Now I want to go back and work on the form some more. But in InfoPath it appears preview is no longer an option because the form is using a connection file. While trying to preview the form I am given a message that basically says the form will have to be
    published in order for it to make the connection. This would mean I would have to overwrite the form on SharePoint just to test.
    I suppose I could publish to a different form library and switch back when I'm done but it would seem that InfoPath preview should still be an option for testing. Is there something I'm missing in InfoPath that would allow me to still test with this form?

    Not sure what you're doing, but previewing IP forms with data connections should be quite possible.
    Scott Brickey
    MCTS, MCPD, MCITP
    www.sbrickey.com
    Strategic Data Systems - for all your SharePoint needs
    To put it simply, here are the basic steps:
    Create IP form based on web service
    Fill out form and test via Preview
    Convert data connection to a connection file
    Publish IP form and test on SharePoint
    Go back into IP and try to test again via Preview <--- no longer works - now stuck with testing on SharePoint which is "live"
    This could be a factor of how our SharePoint environment is configured. I have no other experience to base it on.

  • Best Practices for FSCM Multiple systems scenario

    Hi guys,
    We have a scenario to implement FSCM credit, collections and dispute management solution for our landscape comprising the following:
    a 4.6c system
    a 4.7 system
    an ECC 5 system
    2 ECC6 systems
    I have documented my design, but would like to double check and rob minds with colleagues regarding the following areas/questions.
    Business partner replication and synchronization: what is the best practice for the initial replication of customers in each of the different systems to business partners in the FSCM system? (a) for the initial creation, and (b) for on-going synchronization of new customers and changes to existing customers?
    Credit Management: what is the best practice for update of exposures from SD and FI-AR from each of the different systems? Should this be real-time for each transaction from SD and AR  (synchronous) or periodic, say once a day? (assuming we can control this in the BADI)
    Is there any particular point to note in dispute management?
    Any other general note regarding this scenario?
    Thanks in advance. Comments appreciated.

    Hi,
    I guess when you've the informations that the SAP can read and take some action, has to be asynchronous (from non-SAP to FSCM);
    But when the credit analysis is done by non-SAP and like an 'Experian', SAP send the informations with invoices paid and not paid and this non-SAP group give a rate for this customer. All banks and big companies in the world does the same. And for this, you've the synchronous interface. This interface will updated the FSCM-CR (Credit), blocking or not the vendor, decreasing or increasing them limit amount to buy.
    So, for these 1.000 sales orders, you'll have to think with PI in how to create an interface for this volume? What parameters SAP does has to check? There's an time interval to receive and send back? Will be a synchronous or asynchronous?
    Contact your PI to help think in this information exchange.
    Am I clear in your question?
    JPA

  • Best Architecture for Fortran Code with Line Numbers

    Hi all,
    I have large fortran 90 file (10+ pages) which I need to convert to LabVIEW.
    It contains several branching statements with Line Numbers, e.g.:
    1000 IF (condition) goto 2000
    I would like to know what is the best architecture to deal with this branching of the program.
    Should I break the sections (based on line numbers) into user events or states?
    Has anyone done similar conversions? 
    Cheers,
    Battler.

    battler. wrote:
    Hi all,
    I have large fortran 90 file (10+ pages) which I need to convert to LabVIEW.
    It contains several branching statements with Line Numbers, e.g.:
    1000 IF (condition) goto 2000
    I would like to know what is the best architecture to deal with this branching of the program.
    Should I break the sections (based on line numbers) into user events or states?
    Has anyone done similar conversions? 
    Cheers,
    Battler.
    I would insert a preliminary step where I would assign a descriptive name to each line number that is the target of a branch. The names become the names of the states (like Christian was hinting at) then diagram the code into a state transition diagram. The rest gets passed to a developer to complete.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • What's best architecture for DAQmx app with two operational modes?

    I have an architectural question.  I am writing an application which takes measurements from a custom sensor which has two modes of operation: 1) idle mode where two voltages are sampled slowly, run through a transform, and then the result is plotted such that the user can see the idle state of the sensor; 2) a testing mode where the user defines a testing time of some number of seconds then hits 'Go' and records high-speed acquisition for the specified number of seconds (with some sort of simultaneous real-time plotting) and then writes the data out to a file.  I am trying to use the 'Top Level Application using Events" VI template but have run into issues with the VI not responding to UI clicks when in an event case...I got around **some** of these issues but now I am stuck because I can't get the app to register an abort button click when in testing mode.  I think I am missing something when it comes to events as LabVIEW defines them.  (I'm a .NET programmer)  My basic question is what is the best top-level VI architecture to use for something like this?  I don't want to go down the wrong path and have to re-write the whole thing...
    **I did come up with a seemingly neat way to get a tab control to switch tabs from inside an event case...I look at the X, Y coordinates of a mouse click and if it is within one of the tab selector zones at the top, left of the control I programmatically swith to the corresponding tab...seems like there should be an easier way but it works.

    I think that the best would probably be a producer consumer type architecture  with events.  You can do a search in the example finder and find a good one. As for the events not responding, you probably just need to uncheck the check box for disabling the front panel until the event finishes. You will find this at the bottom of the dialog box for the event structure.
    Joe.
    "NOTHING IS EVER EASY"

  • What is the best architecture for such app ?

    Each user will have independent block with info.
    For example
    - picture with info
    - timetable
    - favorite books
    He can show or hide each block.
    Some block can be obsolete in the future.
    Another block can be added in the future.
    First idea is put every info in user table.
    public class User
        public int UserId {get;set;}
        public string UserName {get;set;}
        //First block info
        public byte[] Image {get;set;}
        public string Deskription {get;set;}
        public bool IsInfoEnabled {get;set;}
        //Second block info
        public int TimeTableId
        public int TimeTableName
        public bool IsTimeTableNameEnabled {get;set;}
    So I get table which will be growing up in width ( i mean columns ).
    But I don't like to delete columns from these big table.
    That's why I decided to move all content block to separate table.
    Second idea :
    public class User
        public int UserId {get;set;}
        public string UserName {get;set;}
        public int InfoBlockId {get;set;}
        public int TimeTableBlockId {get;set;}
    public class InfoBlock
        public int InfoBlockId {get;set;}
        public byte[] Image {get;set;}
        public string Deskription {get;set;}
        public bool IsInfoEnabled {get;set;}
    public class TimeTableBlock
        public int TimeTableBlockId {get;set;}
    In second way scalability is better, but I will get more queries through numerous tables.
    What is the best way ? If you have your additional idea share it!
    My .NET Blog with projects and feedback.
    Since May 30, 2014 I am waiting for Microsoft fix
    these 2 bug. If you know how to speed them up, please help

    As your question is about architecture..
    The first question is: Do you want to follow a Code-First or Database-First design.
    Then you may choose the appropriate forum. From your post, I guess, it's Code-First. So take your wording as an outline. Thus you need a User class and blocks. As blocks can have different types, we need some polymorphism here. Thus it could be an IBlock.
    So that your concrete types derive from it:
    Instead of an interface it could be also an abstract base class:

  • Best practice for displaying multiple subpanels?

    I have about 20 different subpanels to display controls for different functional groups.   What is considered the best way to represent these on the main front panel?  For example:
    - tab control with a sub-panel on each tab?
    - Single subpanel using Insert/Remove methods to display the selected subpanel
      (select visible panel with buttons or ring menu?)
    - some other way?
    Considering from both code development/maintenance point of view and user experience point of view, what do you consider the best way to implement this?
    Thanks and Best Regards,
    -- J.
    Message Edited by JeffBuckles on 06-18-2009 01:45 PM

    Hello,
    It is hard to determine what is best for your specific type of information. In the end, they all do the same thing, but what is the best for your users? What looks the best? Which provides the easiest accessibility? Which do you find to be most intuitite? There are instances where any number of these methods might work for a particular application and would not be as good in another one. This all depends on how you would like to present the information to the user and also the level of accessibility that you would like. If there was only one best way to do this, why even give options?
    -Zach
    Certified LabVIEW Developer

  • Best practices for Calling Multiple Business Services in OSB

    Hi All,
    I have a requirement where I need to call multiple business services in OSB. We are presently calling them sequentially in a proxy pipeline. I was wondering if we could accomplish the same task in a better way. Each of the business services are mutually exclusive.
    Thanks in Advance,
    Rudraksh

    Hi Eric,
    Thanks for the response. We figured that it is possible to call multiple services with Split Join. However, we ran into the issue you described. We had a blocking call and had to wait until each of the services returned a response.
    However, we needed a Async model for our design and felt that this might not be a right fit.
    We are now looking at implementing the publish option with QoS configured as this fits our usecase better. Thanks for the help again.
    Rudraksh

Maybe you are looking for