Jump to content

mike5

Members
  • Posts

    160
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by mike5

  1. Well, I want to pop up some message when my VI cannot connect to the server.

    I noticed that when if the VI could not reach to the server, the udp open will timeout.

    Hi Ned,

     

    I'm not sure you know exactly what's going on here... UDP is a connectionless protocol, "UDP open" will never connect to the server. What I think it does it tries to bind a local UDP port. This is the port that will be used as "source port" in "UDP write".

    Maybe the timeout happens because it is unable to bind that port.

     

    My question is, do you need to bind a specific local port?

    The way you have written the application, it will send a datagram from source port 5000, to destination port 5000. You could just as easily leave the source port to be assigned randomly, especially since you do not expect top receive a response.

     

    Br, Mike

    • Like 1
  2. This is a fixed-length string. If I right-click it, it gives me an option called "Set String Length", which isn't there on normal strings. It lets me set fixed, bounded, or variable (which changes it to a regular string and removes the menu option), as well as setting a length. I tried Googling it, and I couldn't find anything about it. I also can't find anything in LabVIEW's help files.

    It is in the help file if you know what you're looking for :)

    http://zone.ni.com/reference/en-XX/help/371361H-01/lvconcepts/type_descriptors/

    See section titled String, Path, and Picture Data Types.

    Br, Mike

  3. I hadn't considered explicitly separating syntax from semantics, but now that you mention it I can see that's what I did. By altering my tonal inflection I changed the semantics without changing the syntax. I suppose any "disproof" of the paradox would have to separate syntax and semantics to some extent, since the semantics of the original statement is indeed a paradox.

    Ha, the "classic" mistake. Goedel's incompleteness proof shows exactly that it is impossible to separate the syntax from semantics, even for something as simple as adding natural numbers.

    Br, Mike

  4. Hi all,

    a while back I was thinking about the how bad the LabVIEW debugging really is.

    The single stepping is a nightmare, as soon as your project has more than 3 VIs.

    Add to this the re-entrant VIs and multiprocess application, and you are soon lost in a sea of windows.

    I even posted this idea on the idea exchange, but it is not really thought through.

    So I was thinking - why don't we all come up with a good solution to this problem. Something that would address most of our needs and propose solutions for these problems that we would like to see.

    THEN we submit this proposal to the idea exchange and also promote it with our kudos. How does that sound?

    So, my problems are:

    • too many windows open at once.

    Each function opens 2 windows, front panel and block diagram. Once you step through the function, the windows remain open. You don't have a clear idea where you came from (the trace in the drop-down is not really helpful). You don't have a quick access to the input parameters.
    • not seeing all the blocked threads in a multiprocess application.

    If you set a break point which gets hit in multiple processes, LabVIEW opens all those windows for you, and it only adds to the clutter. You start debugging one instance, and all the other instances are blocked. Even if you click "continue" in those other instances, the windows stay open. If one of them hits a break-point again, you don't know this. In short, it's a mess...

    (This is not indented in the editor)

    The best way to overcome all this that I can come up with is and
    overview
    panel.

    It would contain a hierarchical list of all functions (call stack)
    • all VIs where the execution is currently blocked would be marked
    • all VIs that contain a breakpoint would be marked
    • you could easily get to the input parameter values for each function
    • you could disable breakpoints in some threads/processes only concentrating on the instance that is of interest to you
    • you could combine this with an "auto-close" functionality that would automatically close the windows that were not explicitly open (like parents of function you are currently tracing)
    • show the watched wires (to combine this with the problems of the watch window)

    Unfortunately I currently don't have the time to create a mockup picture, but I hope my description is good enough to get us started.

    Please add your own ideas and discuss.

    Thanks, Mike

  5. How about checking attributes of each file I'm extracting? IIRC ZIP archive stores all file information at the end of an archive. Because I'm not reopening the archive for each file...

    Anyhow, all this has got to do with the folder separator on PXI-RT (discussed here), so we'll patch the OpenG ZIP library to do this correctly, and the problem should go away...

    Br, Mike

  6. It appears it was "my bad" - or was it. I had a VI that extracted "all files one-by-one" instead of calling the OpenG "Expand ZIP". But I don't understand where the difference comes from (20 seconds vs X minutes). On inspection my VI didn't have any errors that would account for such a difference.

    Is "Extract single file from ZIP" really that much slower?

    Br, Miha

  7. Hi all,

    I'm starting using the DSC module, and since it has it's own shared variable data type, I'm forced to use DataSockets for reading and writing data.

    So, the DataSocket Read function has a "connection in" interface. This can take (among other things) connection reference from DataSocket Open function, or a DSC Shared Variable wire.

    If I use the latter, is the connection closed implicitly, or what? And if this implies Open/Read/Close how much overhead do Open and Close this bring?

    Thanks for any insight.

    Br, Mike

  8. I have another related problem - you know if you have the same "project" (not lvproj), and it is intended to run on two different targets (Win and PXI RT).

    I have two different lvproj files, one for each target type. If you build your win32 project first, and then PXI RT after that, LabVIEW recompiles all the VIs for the new target. But, it does the same for all its internal <vi.lib> VIs as well.

    If I click on the "Project->Save all" LabVIEW takes care of internal VIs, but if I script this, how do I save all the internal <vi.lib> VIs? I tried to get something usefully from Target/Depenedencies, but don't know exactly how to proceed.

    Do I just iterate over all descendants, and try to cast to appropriate item type? What Items do I have to take care of?

    VIs, controls, libraries, virtual folders? Anything else comes to mind?

    Any help will be greatly appreciated.

    Br, Miha

  9. Hi all,

    I am using an application builder to automate the creation of source distributions. I have a prototype VI that works when invoked from LabVIEW, but produces the following error, if a create an EXE application:

    
    LabVIEW: Resource not found.
    
     
    
    An error occured loading VI 'AB_ExportedVI_Define_VI_Prototype.vi'.
    
    LabVIEW load error code 3: Could not load front panel.
    
    [/CODE]

    I couldn't find a way to include the front-panel of VI in some external library. If it was one of my project files it's easy, but this...

    Thanks in advance and best regards, Miha

  10. That is a misnomer (and a common one) since foreign sites are not bound by US laws. The only thing realistically that can be achieved (as they do in Thailand) is restrict access to those sites from US governed territories. Good luck with extradition on SOPA grounds too.

    So, you're saying that the good and benevolent leaders of the US would never put presure on other countries to do what they want?

    http://arstechnica.c...-censorship.ars

    Br, Mike

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.