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.

Tags: NI Software

Similar Questions

  • Satellite Pro - keyboard very weird behavior - help needed

    Hello

    Recently, the keyboard on my satellite pro laptop computer has been behaving very oddly - particularly three keys Y, H, N.

    Basically, they stopped working every time I start the machine (that is, rely on them and no character appears). It's the same in all programs. However, if I press shift with on of the three keys (to create a capital Y, H, N) it works. If I then try to type lowercase letter after that he then lets me!

    I read if certain keys on the keyboard online don't work then it means that this is probably due to a spill - this is certainly not the case with my computer and I don't know why or how this parasite has occurred. I wonder if a clean reinstall of windows xp would be useful?

    If anyone can shed some light on this or help me then it would be really appreciated.

    Thanks in advance.

    Hello

    It's a very interesting question. So far I didn't have that kind of experience. If you want to try reinstalling the unit with recovery CD or DVD. It will be interesting to know if this problem occurs again.

    Please let me know what happens after the recovery procedure. Don t forget to back up your data, because the installation procedure will remove all data on the HARD drive.

    Good bye

  • BlackBerry Smartphones very weird behavior of 8900

    A few hours earlier, every single button on my old Curve 8900 of 6 months has stopped working (with the exception of the trackball)-I could move the trackball, bu pushing impossible to record what anyone with the phone. All keys in the dirt wasn't working, nor theft, etc locking button. The phone was the connection to the network - I received calls, and text but Coulnd't ' t respond to calls, read text.  I took the battery 8 or 9 times, each time waiting for the phone to re start, check software secuirty etc. etc. and re start, but still the same problem. I plug my phone into the load and which seems to have alleviated some of the problems most of the keys work now.

    BUT the 'b' when you use sms or bbm now seems to be recognized a 'b', followed by the return and line break. The "del" button does not work to push a short - I kicked so he can delete whatever it is.

    the 'p' button listed as 'xp' as does the key "x".

    the "w" key capitalized automatically.

    key ' $' (changed under prefs has "£" does not work.)

    I have not dropped the phone.

    There is no liquid spills or food on it.

    I have not downloaded any software in weeks.

    I still out battery several times and tried all above with charger connected and plugged in to the United Nations.

    Someone at - it ideas?

    TIA

    Wayno

    DudeManGuy wrote:

    A way to help with a phone becomes journaled or more hydrated ice should immediately remove the battery and put the phone and battery in a bowl of rice. Rice acts as the silica...

    Dude, maybe you skipped reading the suggestions above.

  • Weird behavior of the wifi service

    My project showed very weird behavior. As in the connection of signals and slots he was segfaults. I posted that in here . Also, I couldn't create a QTimer object. This all happened after I have use some features of the wifi_service.h file. My CPP code file is subsequently

    /*
     * WifiController.cpp
     *
     *  Created on: Jul 4, 2013
     *      Author: Roland
     */
    
    #include "WifiController.hpp"
    #include 
    #include "GeoNotification.hpp"
    WifiController::WifiController() {}
    WifiController::~WifiController() {}
    
    int WifiController::toggleWifiState(bool state)
    {
        getWifiState();
        int status = wifi_set_sta_power(state);
        return status;
    
    }
    int WifiController::getWifiState()
    {
        wifi_status_t *status;
        wifi_get_status(status);
        if(*status == WIFI_STATUS_BUSY)
        {
            return 2;
        }
        if(*status == WIFI_STATUS_RADIO_ON)
        {
            return 1;
        }
        if(*status == WIFI_STATUS_RADIO_OFF)
        {
            return 0;
        }
    
        return 0;
    }
    

    The strangeness begins after I call the getWifiState() function. It fills the fi last statement and returns 0. But after these problems occur. But if I don't call this function then, everything works fine.

    This will produce undefined behavior:

    wifi_status_t *status; // unitialized address
    wifi_get_status(status); // wifi_get_status will write into random memory
    

    wifi_get_status waiting for an address of the variable to write to:

    wifi_status_t status;
    wifi_get_status(&status); // & takes the address of status
    

    You will also need to check the return value of wifi_get_status. An example of code:

    http://supportforums.BlackBerry.com/T5/native-development/check-the-WiFi-signal-with-quot-WiFi-get-s...

  • 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.

  • 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...

  • expandItem super weird behavior

    Well, now it'll be strain some of you:

    I have a tree. Simple, right? So far, Yes. BUT I want to update the dataProvider of the tree when I press a button. Now the difficult thing is that when I update the dataProvider data comes back and he could be in a different order and records (branches) and nodes (leaves) will not be in the same position as before index.

    So, I basically need iterate tree.openItems, store the id of the relevant items that are opened in the tree and then store these values in a table. Then, after my tree is updated, loop in this table and based on the values in the table (id who remain always the same, no matter what position or branches/leaves of the index have) open items that have been opened before I updated the dataProvider.

    Simple in theory, but in application, I get a very strange behavior. My code looks like this:

    public var catOpened:Array = new Array();
    public var updateItems:Boolean = false;

    <! - this is the function that is called when you click on the button that updates the dataProvider - >
    public function updateCategory (): void {}
    for {(var x: String en cat_tree.openItems)}
    catOpened [x] = cat_tree.openItems[x].@id;
    Alert.Show (cat_tree.openItems [x] .@ID);
    }
    updateItems = true;
    categories_list_http. Send();
    }

    <!-this is the function that is called to->
    public function updateCategoriesTree (): void {}
    if(updateItems == true) {}
    for {(var x: String en catOpened)}

    Alert.Show (categories_list.node. (@id () == catOpened [x]) [0]);
    cat_tree.validateNow ();
    cat_tree.expandItem (categories_list.node. (@id () == catOpened [x]), true, false, false);
    }
    updateItems = false;
    }
    }

    Format of the result of my HTTPService is e4x. It should work, right?

    But what I get back is a strange named folder in each elements previously opened, named something like "E31781EA-D5D2-0301-151E-BB3412BF099C" and in this case a node called exactly the same thing. The good news is that is not totally off the mark because he puts at least this weird folder inside the folder whose expandItems is actually supposed to open.

    I posted a screenshot to: http://able.org/dev/screenshot2.jpg

    'Applied Scholastics' and 'Criminon' records were records that were opened before the update the dataProvider, update don't reopen, they just weird records, I opened myself to the screenshot.

    Any ideas? I'm puzzled.

    Thank you!

    So, I thought about it all now (finally).

    I write (once again) the answer so that anyone trying such a feat in the future will not have to go through what I went through.

    It's all in one (SINGLE - well, kinda simple) line of code. It must be longer we had to find a way to do something that actually had a line of code! Well, it's here:

    cat_tree.expandItem (.. categories_list node. (@id == [x] catOpened) .parent () .node [categories_lis.. t node. (@ID==catOpened[x]).childIndex ()], true, false, false);

    And this is probably one of the longest lines of code without spaces, you will ever see.

    So, my duties now look like:

    public var catOpened:Array = new Array();
    public var AlreadyOpened:Array = new Array();
    public var updateItems:Boolean = false;

    public var catVScroll:Number = 0;
    public var catHScroll:Number = 0;

    CATEGORY TREE FUNCTIONS

    public function addCategory (): void {}
    if(updateItems === false) {}
    captureCatTreeSettings();

    var rVars:Object = new Object();
    rVars.category = cat_tree.selectedItem.@id;
    rVars.add_cat = true;
    categories_list_http. Send (rVars);
    }
    }

    private function captureCatTreeSettings (): void {}
    catOpened = new Array();
    for (var x: String in cat_tree.openItems) {catOpened.push(cat_tree.openItems[x].@id) ;}
    catHScroll = cat_tree.horizontalScrollPosition;
    catVScroll = cat_tree.verticalScrollPosition;
    }

    public function removeCategory (): void {}
    if(updateItems === false) {}
    You cannot delete a category with groups inside that you could cause serious harm to the database and people would go "missing".
    If (groups_list. Children () .length () == 0 & cat_tree.selectedItem... Children () .length () == 0) {}
    captureCatTreeSettings();
    var rVars:Object = new Object();
    rVars.category = cat_tree.selectedItem.@id;
    rVars.remove_cat = true;
    categories_list_http. Send (rVars);
    }
    else {}
    Alert.Show ("cannot delete a category unempty!");
    }
    }
    }

    private function updateCategory (): void {}
    if(updateItems === false) {}
    captureCatTreeSettings();
    var TextInput (cat_tree.itemEditorInstance) .text = new_name:String;

    var rVars:Object = new Object();
    rVars.category = cat_tree.selectedItem.@id;
    rVars.new_name = NewName;
    categories_list_http. Send (rVars);
    }
    }

    public function updateCategoriesTree (): void {}
    if(updateItems === true) {}
    cat_tree.invalidateDisplayList ();
    AlreadyOpened = new Array();
    for {(var x: String en catOpened)}
    If (AlreadyOpened.IndexOf (catOpened [x]) =-1) {}
    cat_tree.expandItem (.. categories_list node. (@id == [x] catOpened) .parent () .node [categories_li st.. node. (@ID==catOpened[x]).childIndex ()], true, false, false);
    }
    }
    cat_tree.validateDisplayList ();
    cat_tree.verticalScrollPosition = catVScroll;
    cat_tree.horizontalScrollPosition = catHScroll;
    updateItems = false;
    }
    }

    And my categories_list_http HTTPService tag looks like:

    And my cat_tree tag tree looks like:

    Wow! It's as simple as that. The key lies in the '... ' descriptor (descending). E4X is actually pretty cool when you start to get the hang of it.

    Talk about a learning curve, it's probably best classified as learning 'right angle '. I'm glad that I took the time, I got to understand that, because I learned a LOT on the way.

    Well well, hope that helps someone in the future.

    Above and outside - Taka

  • I lost my phone 2 weeks ago. Now, I received a message telling me to connect to find my iphone but the link is very weird

    I lost my phone 2 weeks ago. Now, I received a message telling me to connect to find my iphone, but the link is very weird.

    I entered my information it because I wanted to see where was my phone, but nothing has arrived. After that I connected to my laptop and I could go on my account, but it seems that my Iphone (that got stolen) are there any more and I can't locate. What do you think? would it be the thievs who send me this message on my news?

    This is because it is a phishing attempt to make you try to open a session, so that they get the powers they need to disable find my iPhone on your device. Do NOT click on anything and ignore it.

    Sorry, I see that you were already there and gave them the information. Your device, as well as your iCloud account have been compromised. You need to change your password immediately. Your device is finished now, you will never recover.

  • Weird behavior of Safari Dock icon

    For several months now, I noticed a weird behavior of the Safari icon on the dock.

    Note: I have the Safari Dock permanently icon in the dock if the application is running or not for quick access.

    With open Safari, after periods of inactivity or after the awakening of the mode standby, the icon will lose the small black dot on the bottom that indicates an active application.

    By clicking on the icon or a .webloc file reveals that Safari is still active, but because the icon does not animate as it does when it is launched.

    How can I fix and when Safari * is * open its Dock icon indicates that it * all the time *?

    Probably also related...

    All too often, after similar as scenarios above, Safari actually leave - all on its own.

    How can I fix this too?

    Safari has also been freezing quite often lately have to be re-launched or sometimes requiring a restart of the computer system.

    Something is not.

    Go step by step and test.

    1. Disable Extensions and test them.

    Safari > Preferences > Extensions

    Uncheck 'Enable the Extension' and test.

    Enable the Extensions one by one and test.

    To uninstall any extension, select it and click the "Uninstall" button

    2. Quit Safari if it is open.

    Hold down the option key and click on the "Go" menu in the Finder menu bar.

    Select 'Library', then 'Caches.

    Find the folder "com.apple.Safari".

    Right-click on "com.apple.Safari" and select "move to trash".

    Restart Safari.

    3 remove the test and com.apple.Safari.plist file.

    Empty the trash.

    Quit all applications.

    Hold down the option key and click on the "Go" menu in the Finder menu bar.

    Select 'Library' in the menu dropdown.

    Library > Preferences > com.apple.Safari.plist

    Right-click on it and select "place it in the trash.

    Close the Finder window.

    Turn it back on.    Restart Safari.

    If this does not help, "put back" the com.apple.Safari.plist

    Right click on the trash icon in the Dock, then select 'open '.

    Right-click on the com.apple.Safari.plist and select 'Put Back'.

  • Weird behavior of Firefox in Facebook when scrolling down

    Hello

    My Firefox has a weird behavior when I open Facebook and start to scroll, I have attached two images, first image is when I open facebook, everything is ok (I dimmed the contacts), second image is when I start scrolling down, you will see square masive black with blue navigation. That happens only when firefox is "enlarged" and not with windows. I also try to disable all addons or run firefox in safe mode I have also reinstalled it and the problem is still there. Have any suggestions, which could be bad, also if forgot to tell you that any information not hesitate to ask and I will it provide.

    Hello

    Try Firefox Safe mode to see if the problem goes away. Firefox Safe mode is a troubleshooting mode that temporarily disables hardware acceleration, restores some settings and disables add-ons (extensions and themes).

    If Firefox is open, you can restart Firefox Safe mode in the Help menu:

    • Click the menu button

      click Help

      then select restart with disabled modules.

    If Firefox does not work, you can start Firefox in Mode safe as follows:

    • On Windows: Hold down the SHIFT key when you open the desktop Firefox or shortcut in the start menu.
    • On Mac: Hold the option key during the startup of Firefox.
    • On Linux: Exit Firefox, go to your Terminal and run firefox-safe-mode
      (you may need to specify the installation path of Firefox for example/usr/lib/firefox)

    When the Firefox Safe Mode window appears, select "start mode safe."

    If the problem is not present in Firefox Safe Mode, your problem is probably caused by an extension, theme or hardware acceleration. Please follow the steps described in the section Troubleshooting extensions, themes and problems of hardware acceleration to resolve common Firefox problems to find the cause.

    To exit safe mode of Firefox, simply close Firefox and wait a few seconds before you open Firefox for normal use again.

    When find you what is causing your problems, please let us know. This might help others with the same problem.

  • Satellite L670D - keyboard is very weird

    Good, everyone

    I just got my laptop Toshiba L670 before I had a pixel that is stuck in my screen and send it back, so they gave me a new one, but now I got another problem since today my keyboard is very weird, as it keeps stuck sometimes when you type, my friend told me that it was something with ghosting. But I tested a USB keyboard on this subject and that everything worked well.

    Can someone please help me how to solve this problem, it is still able to fix or should I return again...

    Tom's right. These questions are always set by the BIOS updated.
    Please visit the Toshiba BIOS download page and check for the latest update of BIOS - http://eu.computers.toshiba-europe.com/innovation/download_bios.jsp

  • Weird behavior with Signal to simulate and loops

    I'm having a weird behavior with Signal to simulate and while loops. Attached a photo of my program. The problem I have is that when I use Stop to stop inside while loop, then use to restart the inner loop, simulate Signal instantly generates a bunch of points of data between when I pressed Stop and Go. By example, if I stop for 5 seconds, wait 5 seconds, then press Go, it will instantly generate data for t = 5 t = 10. What I need is for the generation of signals to stop when I press stop and continue where it left off when I press Go. How can I accomplish this? I have no idea why he exhibits the behavior described in the first place.

    Hi optometry.

    Can you give us a screenshot of the configuration window for the VI express to simulate signal? I was able to reproduce the problem when I used "Simulate the time of acquisition" at times, but the VI's are featured as you described you wanted when I used "run as fast as possible." Have you tried this setting?

  • HP 8600; Printer says it is ready for wireless printing, but will not print my documents. It prints all the pages of the test very well. What I am doing wrong?

    Printer says it is ready for wireless printing, but will not print my documents. It prints all the pages of the test very well. What I am doing wrong?

    Contact HP support.
    http://h10025.www1.HP.com/ewfrf/wc/pfinder?cc=us&DLC=en&LC=en&tool=&query=8600#n251

  • 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.

  • a class of EOImpl create() method call

    How do I pass and AttributeList to the create of an EOImpl class method if the method is not called directly? Is it true that when you call vo.createRow (), the create() method is called automatically? If so, vo.createRow () accepts no arguments.

    Just set the values of attribute in line with VO, and it would automatically create in the EO line.

    row.setAttribute ("AttributeName", value);

    In case you have typecasted your line to the voRowImpl type, you can do it like this:
    Row.Set(value);

    Please don't bother about how values are themselves defined in the EO (if your goal is to get the functionality and not the technology).

    Concerning
    Sumit

Maybe you are looking for