Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by mike5

  1. Basically the "trick" is that Variant data type has two completely unrelated uses: It can be used as a "wrapper" for any other data type It can function as a "hash table" And it can be just one (x)or the other, not both at the same time.
  2. 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
  3. 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
  4. 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
  5. Phew! For a moment there I thought this is gonna turn into a lolcat thread . Luckily it went the other way.
  6. Looking for *what*? The property you mention is not displayed in the picture. OTOH, where does the "Get Text Rect.vi" come from - just in case I ever need to know... Br, Mike
  7. In most languages the Booleans are stored as bytes. Memory is cheap. Also, to store a single Boolean on any modern computer, it will always use a byte. It is the smallest addressable piece of data on any computer. Even for arrays it would not pay to pack the Booleans into bits. As I said, memory is cheap, and having to do arithmetic to read a single Boolean value is a bigger waste of resource than memory space is... In the end, you usually want it simple and fast. Br, Mike
  8. 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
  9. I usually solve this problem in LV2010 with Ctrl-Alt-"Run Arrow" (Or is it Shift-Ctrl- ?) and/or Tools/Advanced.../Mass recompile Br, Mike
  10. There's an error in your code... She very cute. Congratulations to you and your wife! Mike
  11. Thanks, I didn't notice this. It will be most useful. Br, Miha
  12. sachsm: I've set the Variable class to almost everything possible, and still the picture looks like this: Br, Mike
  13. I sorry, I was using EPICS terminology. This is what I mean: Br, Mike
  14. But you can set data value monitors only on the DSC shared variable types. So, what you're saying is that it is best to use both, each for its own purpose? Br, Mike
  15. DSC module uses totally different Shared Variable type than LabVIEW base. So, if you want to use functions for monitoring SV value changes, you cannot use LV base functions like "Read Variable" on the same variables. But you can use the DataSocket functions like "DataSocket Read".
  16. Thanks. I gather from your reply, that the connection is closed. You don't get any connections that are permanently open from using calling the Read/Write just once? Br, Mike
  17. 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
  18. The easiest thing to do is go to "Tools/Options..." and in the "Environment" set your "Application", "Dialog" and "System" font to size 18. Then your LabVIEW looks like your Windows font size is set to 100% instead of 125%. Br, Miha
  19. 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
  20. 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
  21. Hi scripting people. I couldn't find a way to script "Project->Save All". Can anyone offer some guidance to achieve this? Thanks and best regards, Miha
  22. 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
  23. So, I guess the question is "Have you trained a successor for your current role, and when do we get to meet him?" But seriously, thank you for your help and involment with user community. I didn't deal with you directly much, but whenever I saw your post I thought "now we'll get some real answers". To have someone like that from NI is great for us developers and users. That is also the reason for my openig joke. We came to rely on you for the really difficult stuff so much, that hearing you saying "I won't be able to help you to the extent that I used to" makes me nervous. I just hope your superiors are aware of this, and have someone ready to step in your current shoes. Good luck with your next assignment. I'm sure you'll be excellent at it, as you are now. Br, Mike
  24. Hi all. UDP is a connectionless protocol, but still the stack receives an ICMP error message if sending to a non-bound port. In short, is there a way to get some sort of error if sending UDP datagram to the server that is just not there? Thanks in advance and best regards, Mike
  25. Thanks TheJ, and AQ. I'll take a look at this. Actually, it didn't help. The function knows how to look at inside the F1 type to determine that it contains a cluster. We have in the mean-time deduced that F1 stands for "type definition" or something similar. So, if our cluster is in the type-def control, then it has F1, if we just copy it out and onto the block diagram as a constant, the F1 goes away, leaving only the cluster. There are still a few unknowns, but we'll hopefully figure them out sooner or later. Br, Mike
  • Create New...

Important Information

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