Combining LVOOP DVR with dynamic distribution class and asynchronous Runtime Preserve

OK, the title seems like a cornucopia of terms LVOOP.  But there's a reason.  It is sort of an extension of THIS thread.

Do I have recently created a LVOOP approach to load completely asynchronous user interface elements into sub-panels.  This I have combined with a global repository for objects (which are essentially the singletons with functionality of the user interface) which are shared via DVR, thus eliminating a large number of synchronization headaches).

This means that I can have a universal framework to initiate a secondary user interface elements.  Changes made to the object there are automatically reflected in the global repository.

So far so good.

What I do like is a combination of two buildings of apparently clumsy code that I need to keep things running.

Construct odd 1:

I defined a function "Launch UI" in my parent class which is the dynamic distribution (which allows to take care to launch its own UI of each object).  It takes a parent DVR as second entry object which sure is the exact type and the type of object called using the code below.  The Type REAL to two entries for the launch of VI in PEI are identical.  This is guaranteed because I need every new class instead of this function.

Here I pass the DVR from outside to 'Launch' VI International preliminary examination, but the object obtained within the IPE retains information for DD thereby ensuring that the VI called for the launch of the user interface is identical to the type of object in the DVR REAL.  It works well and putting this bizarre construction within the parent class, abuse is minimized, it works very well and seems to have no major side effects.

So now we have a VI running asynchronously in the background that belongs to a specific object, but has a DVR which it * thinks * is a parent Type, but because of the measures taken previously, is actually of the same type as the object itself.

In order to make use of the functionality defined in this kind of real object, I continually have to re - interpret the object within the IPE as described below.  Otherwise only the Parent feature is available.

If I access only methods of the parent class, then the Preserve feature is not necessary.

Is there a more elegant way to do it?  I find the net result of this code and cast to be really useful and much easier to manage the road non - DVR since synchronization problems disappear.  Through the use of the near-atomic REI, we remove the chances of blocking.

All editing in the asynchronous interface user of VI is automatically reflected in all subsequent use of the DVR.  Even if digital recorders are not shared between the screws, this makes it easier (for me) the puzzle of the synchronization.  If you start this expansion beyond the limits of a single VI, the benefits in synchronization becomes really huge.  You can even have several interface user objects based on the same data in the background without additional synchronization needs.  Required only one synchronization is a global 'data updates' for the object in question, in which case the UI elements simply update their indicators and the DVR's controls again.  It is trivial.

So, I am convinced that the net result of this is very beneficial.

My question is if there is a better, safer, or more 'official' way to do?

I was about to start a new idea to combine the 'Preserve Run time class' and Terminal DVR of the International preliminary examination so that the casting is done automatically.  We could then have a double entry in PEI, the DVR (of the base type) as well as the ACTUAL Type of the object, but of course to return an error if the types are incompatible.  It would be like an "imposter" DVR of entry for International preliminary examination which allows a re-interpretation of the object type.

Would all of this go away if we allowed dynamic distribution work with DVRs?  No doubt.

Shane

I agree that the deletion of bizarre construction #1 probably requires a dynamic send on DVR.  Unfortunately, if you look at the post of the exchange of ideas on that, there are a few nasty subtleties concerned by the application, so I wasn't expecting any time soon.

For bizarre construction #2, you can cast the DVR itself.  Make a constant DVR that refers to the class of the child and lowered it seized goes in PEI.  If you need to return the parent type after the International preliminary examination, branch just the wire DVR before melting and use it as your lead.

Tags: NI Software

Similar Questions

  • Problem with the combination of LabVIEW (dynamic distribution) classes, statechart module and module FPGA

    LOCATION:

    -I am developing a software plugin based on plug-ins based on LabVIEW classes that are instantiated in running. Plugin real classes come from the plug in generic classes that define interfaces to the VI instantiation and can provide basic functionality. This means that many of the methods of the class are dynamic distribution and even methods of child classes can call the parent method.

    -Plugins top level (the ones directly accessible by the main VI) each have a run method that animates a plug-in specific state transitions.

    -Transitions of the plug-in data acquisition (DAQ class) class calls a method of the DAQ class that reads data from an FPGA card OR and transmits to another component via a queue.

    PROBLEM:

    -Higher sampling rate, a FPGA-to-host FIFO overflow occurs after some time. When I "weigh" the system just by moving a window of Firefox browser on the screen, the overflow is triggered immediately. I did not have this kind of problem in older software, where I was also reading a FIFO of FPGA, but made no use of LabVIEW classes or diagrams.

    SOLUTIONS I'VE TRIED (WITHOUT SUCCESS):

    -J' put the transitions in a timed (instead of a simple while loop) loop that I assigned specifically to an own kernel (I have a quad-core processor), while I left all the other loops of my app (there many of them) in any simple loops. FIFO overflow still occurs, however.

    QUESTION:

    -Does anyone have a tip how I could fix this problem? What could be the cause: dynamic distribution methods, the acquisition of data of state transitions or just the fact that I have a large number of loops? However, I cannot change the fact that I have dynamic distribution methods because it is the essence of my architecture...

    Tips are greatly appreciated!

    I've now changed the execution priority of all the screws involved in reading of the FPGA FIFO '(highest) priority critical time '. This seems to be improving the situation much: so far I have not a FIFO overflow, even when I move around the windows on the screen. I hope it stays like that...

  • DVR with 4.5 RTMP and iOS, is possible?

    I was previously using FMS 3.5 to record from flash media live encoder using the DVR application. It worked and I could get in a live stream, all this not only a window, and I was using RTMP for playback (not HTTP).

    Now I would like to move to 4.5 and continue to use RTMP for DVR, BUT add support for iOS. So my question is, is it possible? I have looked over the documentation several times and cannot understand it. I see livepackager and who seems to support CTS but must also use adobe http dynamic streaming and it is not true DVR (Yes actually save).

    So is the dvr app now obsolete, and if not how can I add support for her iPhone? I already have a custom player and really hope that I don't need to rewrite so that it uses adobe http dynamic streaming just for that.

    best,

    Tuviah

    Hello

    a. any plan update dvrcast to 4.5 and take in charge the RTMP protocol and iOS. Am I correct that they would simply require the code server-side, and would be possible if livepkgr was open source?

    Rep. : DVRCast is not updated. You must use the livepkgr application, if you are looking for the box ready applications in FMS for iOS. The code for livepkgr is available under FMS-Installation\samples\application\livepkgr. You can use it to make your own applications, as you make changes somewhere else too (httpd.conf and etc.).

    b. how to configure livepkgr to save everything on the disc (not just a window) so that a F4F is created for the entire recording session, which can be viewed later. I read the documentation and could not find it. I'll give you an example of use cases, we need our website to record live meetings that can last minutes or hours (and that remote users and look at in any point even at the minute the meeting 3 is already 5 hours) and we need to let users access records of previous meetings.

    Rep. : Livepkgr app records the length of your life on the disk, without any limit of time (if you do not want). Everything is recorded on the disc.

    c. and y b also possible on iOS or we we just a window during the live recording?

    Rep. : Record is separated from the delivery. iOS may or may not be subscribed or used, but recording will continue as long as publication occurs. Remember, what the publication on RTMP (permanent connection), but delivery HLS is over HTTP.

    d. with http instead of RTMP delivery we will have specific framework seeking or just keyframe search? It is a requirement because we associate bookmarks and metadata with frames.

    Rep. : I'm not much more of an expert on this subject, but I guess that his search for keyframe.

    e. I rejoice to rewrite my current netstream code, but if you do then do. Is the strobe Media Player open source, and it would be possible to include it in my custom player (and not the other way around)?

    Rep. : It should be possible to integrate seamlessly.

  • Help with the AS3 Classes and packages

    Hello

    I'm trying to see if I can implement a function of speech synthesis in Flash. I found this post, which explains in detail how to integrate Google with Flash text-to-speech functionality. Looks pretty good, but the post seems to be written for programmers in AS3 uber-genius... Well not really, but at least those who already know how to assemble these pieces.

    I know a little about the use of the classes and packages, but do not understand how all segments of code in his position could be stitched together.

    No chance anyone can check this and give me a basic overview of how all these pieces go together? So I can try to implement myself...

    http://blog.onebyonedesign.com/ActionScript/Googles-text-to-speech-engine-in-Flash/

    Thank you very much in advance!

    Elliott

    PS. also open to an alternative to speech in Flash, if you know a easier... Thank you!!

    Here's a link to something that might be useful for you as well as to learn how to work with custom classes.  I don't think I've ever seen of it, but it was mentioned in another of tutorials from Lee that I watch and that it helped me anyway.

    http://gotoandlearn.com/play.php?id=30

    Insofar as the page you will bound, that third largest section of the code (the class named hand) is basically what you want to use for any Flash file you have on your page that provides the interface text/speech.  Then you would copy to a file named "Main.as" you have in the same folder as your swf file and use it as your document class.  The document class is specified in the properties of your fla Panel.

    One thing about this file, it's that I can't import the file "GTextToSpeech.as" that he uses.  So, you may need to add as an import at the beginning of your Main.as file.  The file GTextToSpeech.as is it that you would name the file you create using the first section of the code on this page.

    This small second section of the code, this is what you will place in a php file.  According to the file Main.as name this php file should be "proxy.php".  This file must be in the same folder as the html page that loads the swf file.

  • Problem with dynamic arrays, XML and JavaScript patterns

    With the applied XML schema my JavaScript does not correctly work when it is added a 2nd row at my dynamic table. Instead of an added empty line 1st row data is copied on the 2nd line and if you change the data in the 2nd row it modifies data in the 1st row also. It works fine if the XML schema data connection is well removed.

    No idea what I can do to get this working with the schema that is applied in the same way, it works without the schema?

    Thanks for your help,

    Brian

    There you go. Its not a problem.

  • Secondary asynchronous dynamic distribution

    Hello

    A little, I have a problem with the help of screws of class member in a secondary school.  Take a look at this project, I joined to the VI for an example of what I'm trying to do (in LV 2011).

    Basically, I want to decide based on a user selection what Viewer I'll run and throw in a secondary school.  The user can change this during the operation of the program.  I decided to do the various viewers all the members of a class so that I can add new viewers and don't forget that all are compatible.

    Here's the question.  If I want to use the function of VI run asynchronously, I can't do this with dynamic distribution terminals (limitation in LabVIEW).  So, I did a pitcher that incorporates a static distribution terminals.  I call this launcher using the function to run asynchronously, and then the Launcher I runs the specific instances through dynamic distribution.  It works, and I can verify that the screws run with screw open their facades when they are run.  But I can't seem to get a reference to this VI which is launched via the Launcher to put in my main VI high school.

    I have a workaround, you can see in the other method used to launch screws in the example.  Selects directly using the name of the class member.  The data is passed to the VI using the method of control value.

    As I said, I have a solution to the problem.  But I wonder if there is a better way to do it.  So, if anyone knows how I can launch a VI of asynchronously and place its façade in a school I would like to hear about it.  Thanks to LabVIEW gurus.

    BTW, how easy you can solve your problem is to create a temporary queue, pass it in to the call of the CGRA (with static VI passing it in the dynamic), then you have the dynamic VI post its own Ref to the queue.  The calling code will wait in the queue for the reference, and then destroy the queue.

  • AMPe ADF with Dynamic tab Shell not made in iPAD 1 +.

    Hello

    We used the Oracle Dynamic tab Shell templates to build our page of dashboard with several dynamic tabs.
    A year back when we have initially created the main dashboard with Dynamic tab Shell and used of the UIShell API to open new dynamic tab when clicking the command links in the browser side of left hand. We started with Jdev 11.1.1.3 and upgrade us until Jdev 11.1.1.5.

    Now this last requirement is, we need to test our applications in the Safari browser in iPAD (2.0). During the test, we observed under questions.

    (1) the page with Dynamic tab Shell JSPX is keep showing "Loading"... "We had updated the Safari browser twice to render the page.
    (2) any af:commandLink under the JSPX which has shell model dynamic tab, does not. We have lots of links on the left navigation and when clicking on each link will open a new tab dynamic (we use UIShell API). Nothing happens when clicking on these af:commandLinks.
    (3) we have 'Home' and 'Logout' links at the top right. Nothing happens on the links click too.

    All these as af:commandLinks and af:commandButtons not working as expected when we have them beside a JSPX page without shell dynamic tab.

    Tested and observed the same behavior both in version 1.0 and newer iPad iPAD 2.0.
    We desperately need help on thin. Pls let us know, if I need to provide more details. Are there specific configurations required to make it work in Jdev 11.1.1.5? At this stage we cannot improve our Env 11.1.1.6 or 11.1.2 as we already have these applications in Production and we should give users flexibility to be used in the iPAD.

    Help, please!

    Thank you!!
    Subba.

    Subba,

    I understand, however support for iPad added in PS5 is a set of new features, not a bug fix, so this cannot be claimed as a one off patch with the support of the Oracle. In this case that is expected to capture customers highlights new features of upgrade.

    Thank you

  • Summary of functions (two entries) for classes of brother with a dynamic distribution of entry: the static entry retains the type of the parent class.

    Suppose that in a hypothetical example, I have a superclass (number) with two children (real and complex) classes.

    I would define a function of sum for these classes, using dynamic distribution.

    Real or complex would have its own method of the sum (VI) which would be subject to various operations, such as the real and complex numbers are different.

    As I understand it, the normal way to proceed in OOP is for each of these methods to have an entry of dynamic distribution and a static entry of its own type.

    Problem: Labview doesn't let me do this!

    I first define an input method dynamic-shipping dummy for the numberof the parent class, but only the first entry can be dynamic-Envoy while the other is statically typed as number.

    Then, when I create override methods in my two children classes real and complex, the second entry (static) remains under the number (the type of the parent class). This is not fair, because then I can't access the private data of the child class of type real or complex that will be connected to the second input (static).

    What is the solution to this problem (usually)?

    I think that, in LVOOP, you use only a dynamic terminal or a static terminal to the terminal object.

    You can have several other terminals, but all the dynamics VI (methods with the same name) must have the same API (terminals).

    If you have to understand your preferred mode to pass, use multiple terminals, not used by each method, or use a cluster that contains all the numbers to pass (real or complex, both of which are not used in each method) or you can try a Variant, as shown.

  • VISA dynamic distribution and net

    Hello

    I'm learning to use LVOOP. I like to have the abstraction layer HAL for my test for that program she works for various instruments.

    Most of the instruments are connected to the computer via GPIB, so I can use VISA. Therefore, I created a class of material abstraction called 'meter' with a VISA as its property. So I have a dynamic dispatch VI called write VISA. This can work if all the instruments of the child are provided with VISA.

    However, an instrument is connected via a USB port, and the instrument of the vendor driver is .net. So this one tool will not work with the dynamic dispatch because I can't use write VISA.

    What is the best way to handle this situation?

    Thank you

    Joseph

    Why you need to dynamic distribution allows to write the refnum? Somewhere in your code, you must select a specific instrument instance, perhaps using a box structure. At this point, you could also include the initialization code for the specific instrument. In the case of VISA, you could write the refnum, and in the case of .NET, you can call the constructor (that is, create the refnum inside the class, not going outside).

  • Very weird behavior of LV OOP/classes: wrong dynamic distribution method is called

    I have very strange problem: a Subvi (start_scanning.vi) in my software is supposed to call a method on dynamic distribution (send_trigger.vi) of a class of LV:

    However, instead of calling the send_trigger.vi, a completely different method (with a different name and a component of connector without matching) of a class parent is called. LabVIEW then immediately displays a dialog box indicating "LabVIEW: an input parameter is not valid." For example if the input is a path, the path can contain a character not allowed by the operating system such as? or @. The first level VI "main.vi" was arrested in stranger on the block diagram of the 'GenericPlugin.lvclass:set_current_objective.vi '.

    GenericPlugin.lvclass:set_current_objective.vi (mentioned in the message of the dialog box) is the method that is called instead of the correct method. The input parameter invalid, that the message of the dialog box refers to is probably the enum that I pass to my method of distribution dynamic (this enum of course does not match the input parameter expected by set_current_objective.vi).

    I tried to give LabVIEW an additional clue he's trying to call the wrong way by putting another input to the façade of the set_current_objective.vi control (and plug it into the connector pane). Indeed, this change something: LabVIEW then completely stalls (does not respond to ANY user input more), but the correct method (send_trigger.vi) is not executed (sensors inside the method do not run). What is the case if, rather than add additional control on the front of the set_current_objective.vi Panel, I try to pass another enum value to send_trigger.vi.

    A strange observation is that at some point the VI (e.g., start_scanning.vi) somehow try to call the method of dynamic distribution gets locked (the façade seems that ran the VI; and the block schema cannot be modified more).

    I would be grateful any indication which could help me to solve this problem, because I am really stuck now...

    All of the code-compilation of mass seems to have solved the problem.

  • dynamic distribution and an order for various devices of construction

    I have a code that is written on a device. The device will be changed, but perform the same basic (frequency setting, power etc) commands. So, I wrote a dynamic dispatch VI that takes a command string predefined and written to the appropriate device based on what communication mechanism is used (SNMP, VISA, etc.). My question is related to the predefined command string that feeds this VI. I think that the creation of the chain of command VI should also be dynamic distribution and should build the command appropriate for the given device. But some devices might have several parameters required for the construction of this string (for example, snmp) and something like VISA may not be only one parameter. Dynamic distribution screw must have the same connector components, so what is the best way to handle this? I thought about having a class of 'settings' in the connector pane that holds all the specific parameters for a device. But it seems exaggerated to make a class for something like this, when a variant would do the trick as input. However, having a variant as it tends to make me think of distribution dynamic is not necessarily the right choice in the first place because you force a similar connector component.

    I also consider if some necessary inputs are, in fact, the State of the object and that it could be found in the object itself. This would reduce the connector pane entries and can mitigate some of these problems all together.

    Thoughts?

    for (imstuck) wrote:

    I also consider if some necessary inputs are, in fact, the State of the object and that it could be found in the object itself. This would reduce the connector pane entries and can mitigate some of these problems all together.

    That's what I'd do. Make settings of the object data, so when you then call the function to generate the dynamic distribution VI command string has all the right data available to it.

  • Combining a circular buffer with dynamic data

    Hello

    I am trying to save data in a test that surrounds an impact event to determine the period during which the acceleration passes a certain threshold. I want to record a second of data before and after the event occurs, I put the threshold crossing. The duration will be about 10-15 ms, so two seconds of data at 10 kHz will be a lot of data. I have my VI written so far to export the data from the buffer to an excel file, but is it possible that I could record an extra second of data and it concatenate into what I already have? I usually use the express VI of data collection for dynamic data collection and report generation specific excel live for static data, but how could combine the two?

    Any kind of conceptual thinking would be much appreciated.

    Thank you!

    What I've done in the past, is to use a queue of fixed size with the queue with loss to store data (is like a circular buffer).  Then, when the threshold is detected, recording a 1 second.  Your queue should now have 2 seconds of stored data that you can then write just to your file (use the status of the queue to get data without emptying the queue).

  • Workflow managed bean with dynamic class

    Hello

    I am trying to create an Adaptive workflow, which is generic and can be reused.  The problem I have is trying to define the bean managed support.  Ideally I'd like a different class of bean to be used in various circumstances, but with the same name.  I don't know what class to use until the output of the task is called.

    I can't use for EL do know

    <managed-bean id="__1">
      <managed-bean-name>RegionBacking</managed-bean-name>
      <managed-bean-class>${pageFlowScope.regionBackingClass}</managed-bean-class>
      <managed-bean-scope>pageFlow</managed-bean-scope>
    </managed-bean>
    

    (regionBackingClass is a java.lang.String parameter passed in the taskflow with the class path).

    At this point, I need to use different classes have the same method names in their breast, just different code in methods, but that could change in the future.

    Thank you.

    Hello

    use a model approach. The managed bean configured as managed bean is simply a wrapper and instantiated dynamically the class that you want to manage the logic. Thus, you can for example pass the class name as input argument for the workflow in the managed bean and admire you the name then create the instance of the class to send all requests to.

    Frank

  • L2l between an ASA 5505 and WatchGuard XTM330 with dynamic IP

    Hi guys,.

    I looked for a solution on this one but can't find inappropriate, most of the discussions were old and with dead links to the solution.

    We have an ASA 5505 with static IP address on the outside and a customer who have a WatchGuard XTM330 with dynamic IP address to the outside.

    Is it possible to have an L2L VPN between our ASA and the WatchGuard when he has a dynamic IP?

    I have no experience on the series of WatchGuard,

    so, I am very grateful for any answer!

    Thanks in advance and have a nice day

    BR

    Robin

    Hi Robin,

    Here are the links you can make reference when configuring static to the dynamic VPN tunnel: -.
    http://www.Cisco.com/c/en/us/support/docs/security/ASA-5500-x-series-next-generation-firewalls/112075-dynamic-IPSec-ASA-router-CCP.html

    This one is with Pix on the remote side, but the configuration will remain the same on the local side: -.
    http://www.WatchGuard.com/docs/4-6-Firebox-CiscoPix.PDF

    Kind regards
    Dinesh Moudgil

    PS Please rate helpful messages.

  • VPN IPSEC ASA with counterpart with dynamic IP and certificates

    Hello!

    Someone please give me config the work of the ASA for ASA Site to Site IPSEC VPN with counterpart with dynamic IP and authentication certificates.

    He works with PSK authentication. But the connection landed at DefaultRAGroup instead of DefaultL2LGroup with certificate

    authentication.

    Should what special config I ask a DefaultRAGroup to activate the connection?

    Thank you!

    The ASA uses parts of the client cert DN to perform a tunnel-group  lookup to place the user in a group.  When "peer-id-validate req" is  defined the ASA also tries to compare the IKE ID (cert DN) with the  actual cert DN (also received in IKE negotiation), if the comparison  fails the connection fails. know you could set "peer-id-validate cert"  for the time being and the ASA will try to compare the values but allow  the connection if it cannot. 

    In general I would suggest using option "cert."

    With nocheck, we are simply not strict on IKE ID matchin the certificate, which is normally not a problem of security :-)

Maybe you are looking for

  • Is it possible to display only icons on the personal bar?

    I want to show only icons on the toolbar bookmarks... in order to keep more items bookmarked that I often open. In the "Customize toolbar" dialog, I chose 'Icons' in the drop down list of 'Show', but still see the text in the bookmarks toolbar. Anoth

  • HP Pavilion 15 p001tx: I reset windows 10 and I lost all the software

    After some time due to a problem in the application of the parameters of Windows 10, desperately I had to reset that 10 Windows keeping files. After the reset, I found that programs that pre-loaded with factory reset disappeared, like Energy Star, ma

  • G580 21057 maximum RAM

    Hello I have Lenovo laptop, G580 - 21057. There the core i5 processor 3210 m. Laptop computer came with preinstalled 4 GB memory. Is it possible to increase the 16 GB RAM? It says portable were 4 total memory slots and only installed the memory modul

  • How to implement "inferior to" by choosing functions based on the digital inputs

    I have a 1 d table and I would like to divide what is happening with different values I made sure the table shows an element, with a scroll bar to change the item The picture is random When the element is< 512="" i="" want="" a="" to=""> When the ele

  • deletion does not work in outlook express 6.0

    When you just through emails, looking at them and finally to delete... I have a problem that it (delete) works for a while, and then for some reason, the icon of deletion at the top of the disposal of the OE stops working (pushing deletion does nothi