Jump to content

Francois Normandin

Members
  • Posts

    1,209
  • Joined

  • Last visited

  • Days Won

    46

Everything posted by Francois Normandin

  1. QUOTE (gsmart @ Aug 12 2008, 10:24 AM) QUOTE (jgcode @ Aug 12 2008, 10:34 AM) I am moving to Perforce for personal LabVIEW use due to the 2-user freebie. ... For multi developer work - LV integration is essential for smooth work IMO. Well, if NI uses Perforce and it's free for 1 or 2 users, than I might as well start fresh with it. Should our team grows to more than 1 developer , it doesn't seem to be prohibitively costly to buy licenses... thanks for the tips.
  2. I'm contemplating the idea of using SCC for my (rather small) development projects and would like to know which SCC software people are using out there. There's a list of supported SCC programs on NI website but I have no clue which ones are better suited for LabVIEW projects. Corrolary question: Are there any good open-source SCCs?
  3. QUOTE (wkins @ Aug 11 2008, 08:05 AM) That would depend much on what type of data and how frequent the exchange is. There are queues, notifiers, refnums, LV2 functional globals... But you've got to be careful when subVis talk to each other directly. You might run into data collision problems. There is no "one" method that could be described as the best one. Not knowing your data architecture, I could be way off... but I'd probably try to have a master VI that does the communication all in one place and make sure the subVis don't talk to each other too much. This way, everyone knows who's talking to who. It's easier to debug. QUOTE (wkins @ Aug 11 2008, 08:05 AM) 2. What are the best most efficient methods of transferring data between seperate (parallel) while loops on the same block diagram? I'd have to say Queues, for the simplicity of the design. Take a look at Producer/Consumer design patterns. There are numerous sources for help. Either from LabVIEW "New..." screen and help files, or other sources like http://expressionflow.com/2007/10/01/labview-queued-state-machine-architecture/' target="_blank">ExpressionFlow.
  4. QUOTE (zorro @ Aug 8 2008, 01:04 PM) First = row Second = column You can get this info by hovering your mouse over the "Index Array". You'll get the first as "Row Index" and second as "Column Index". Similarly for a 3D, you'll get the first as "Page index", then "Row Index" and finally "Column Index".
  5. QUOTE (Darren @ Aug 6 2008, 04:35 PM) Works like a charm. I'll echo Chris: "How do you find the time during NI Week?" :thumbup:
  6. QUOTE (Yair @ Aug 6 2008, 01:44 PM) I thought it was in that file. I'll give it a shot. thanks EDIT: lvclass is an XML file, however its properties are not text. I think this is the one I need to sort out: <Property Name="NI.LVClass.ParentClassLinkInfo" Type="Bin">#'#!!1!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!!Q!!!!!1Z198*F<H1O<(: D<'&T=Q"16%AQ!!!!&!!"!!)!$F"B=G6O>#ZM>G.M98.T!!!!!!</Property> I'll spend a nice evening tonight...
  7. Right-click on the path control. Select Browse Options from the properties and you can set all you need (folder, file or both; existing or new; pattern labels; etc.).
  8. I'm trying to get the class hierarchy of many lvclass files that are not loaded in memory (some kind of plugin architecture). However, I could not find a way to do it without using VI scripting. It's simple to get the answer if I drop the object constants on the block diagram, . My goal is to read the directories, find all lvclass files and extract their hierarchy. Using "To More Specific Class" to compare to existing classes prior to code distribution and monitoring errors is okay, but I don't know if the user has added/cloned a new class to extend functionalities. Actually, it's a feature of the code I'm developing (cloning and editing a template class). When reading a lvclass file using "Get LV Class Default Value.vi", I end up with the generic LV Object and cannot detect hierarchy because I cannot typecast. (not knowing what is the object type I need to typecast) The snapshot above is a temporary VI that I create using scripting and it works fine. But I found it executes in about 50ms and I need to loop it (n^2) where n is the number of classes it detects. For 8 classes detected, it takes more than 3 seconds... Is there a simpler way to achieve this? Here's the code (sorry: LV 8.6 already!) :thumbup: Download File:post-10515-1217971233.zip
  9. QUOTE (Tomi Maila @ Jul 31 2008, 04:58 AM) Can RC4 be used without a license?
  10. QUOTE (Xrockyman @ Jul 31 2008, 10:16 AM) Place the object outside the tab control and use the arrow keys to move it in place. Don't drag-and-drop or it will be inserted in the tab control. EDIT: SAME THOUGHT, TOO LATE!
  11. QUOTE (Jon Sjöstedt @ Jul 31 2008, 03:38 AM) Some people on this forum are far better than myself to give advice on this topic, but you might want to start by looking at http://wiki.lavag.org/Functional_global_variable' rel='nofollow' target="_blank">Functional Global Variables. Not the perfect solution for data protection... but it's a start to build on. May I ask why you don't want to use LVOOP or GOOP? Are you developing for an RT system?
  12. QUOTE (crelf @ Jul 30 2008, 10:01 AM) Lucky me, I won't be there... (Why do I feel ambivalent about this statement?)
  13. QUOTE (george seifert @ Jul 30 2008, 09:38 AM) OK... how many of us geeks thought of the exact same thing and wouldn't dare?
  14. Here's University of Montreal, Montreal, Canada
  15. QUOTE (Xrockyman @ Jul 29 2008, 12:09 PM) You can have "Time Stamp" be wired to X axis instead of Numeric. This way you get the X-array in ascending order of absolute or relative time and you'll get consistent representation when changing date. http://lavag.org/old_files/monthly_07_2008/post-10515-1217351226.png' target="_blank">
  16. QUOTE (Daklu @ Jul 23 2008, 10:25 AM) You're quite right about that! QUOTE (Daklu @ Jul 23 2008, 10:25 AM) To do this I'd wire FALSE into Auto-Dispose and use Close Reference when my main app shuts down, correct? Or leave Auto-Dispose unwired... default is False. QUOTE (Daklu @ Jul 23 2008, 10:25 AM) Let me make sure I understand the implications of your suggestion... I use "Get Control Value" in my main vi with a reference to the spawned vi wired into it. Since my main app doesn't know when the spawned vi stops, it will need to poll Get Control Value until it sees the values are no longer changing. (Or I could just put a "Stopped?" boolean indicator on the connection pane.) Yes, but that's inefficient... (see below for other suggestion) QUOTE (Daklu @ Jul 23 2008, 10:25 AM) Tangential question: Suppose the spawned vi was storing data in a buffer and I wanted to periodically read and empty the buffer. I don't suppose there's a way for the spawned vi to know when it's indicator has been read? (Maybe I could use a "Trigger" control on the spawned vi that would place the collected data on a buffer indicator. I think you should consider using Register Events functionality. I'm not familiar with this too much so I could be wrong, but that's the avenue I'd explore if I were in your context. That would go like this: a) Register an event in your main VI. b) Pass the Event reference to the dynamically loaded VI using "Set Control Value" method. c) When your dynamically loaded VI produces the data, it triggers the event programmatically. d) Your Main App will register the event occurence and use "Get Control Value" method to get data from dynamically loaded VI. An alternative way would be to have a queue... Much simpler but harder to debug. Start a queue and pass Queue Name or Queue reference to your Dyn. Loaded VI to add data. Read Queue Status in your Main App to get data. EDIT: eaolson's suggestion is similar to Queue, but I realize it's much simpler! :thumbup:
  17. QUOTE (Daklu @ Jul 22 2008, 07:03 PM) You can use the method "Get Control Value" to recuperate a certain value from your dynamically loaded VI. Wire the label name of your control/indicator to get a Variant of its current value. However, the code you display might not work all the time... It will work if the diagram of your dynamically loaded VI loads in memory completely before you dispose of the reference. I suggest you do not close the reference since you took care of wiring the "Auto Dispose Ref" to TRUE. This is sufficient to ensure your dynamically loaded VI will continue running even if the caller aborts. Opening it's front panel AND wiring Auto Dispose Ref is exactly what you need. Closing the reference might put you in trouble... Check out Christina's Eyes on VIs about VI server for more in-depth explanation of this behavior.
  18. QUOTE (Ton @ Jul 22 2008, 01:28 AM) Too bad there are no block diagrams... I can't convert from v6i without it. The preview for that function doesn't show the masking ability.
  19. Hi SkifIL, thanks to join the effort... however the question is not to make the front panel programmatically transparent, but rather to have it done with a mask. Or if you prefer, can it be done for certain colors and not for the others? The expected outcome of this behavior is that you could have, for example, UI with irregular form, such as this: It's possible in Windows... can we reproduce this effect with LabVIEW?
  20. UDP over LAN restricts you to 8192 bytes per send (1024 x 8 bits). For larger datasets, you'll need to send in many packets and find a way for your receivers to "know" how to concatenate the pieces together. Use some wrapper brackets or tags for sending large datasets. QUOTE How will you broadcast if not through a LAN? Do you have an other mean of connecting your clients to the server? A UDP is nice to avoid management of connections, but you can never be sure that the client received the data, or even how many clients are connected. For diagnostic purposes, I would tend to agree with NevilleD and use TCP.
  21. It's only one VI, but it simulates a producer and a consumer... Download File:post-10515-1216411135.vi (LV 8.5) CCT rules!!!
  22. QUOTE (Draqo85 @ Jul 18 2008, 03:24 PM) Use a conditional terminal when you Read UDP data (or monitor error, timeout code = 56). If it's empty, do nothing, else append your data.
  23. QUOTE (Louis Manfredi @ Jul 17 2008, 08:41 AM) I was browsing a physics forum this afternoon and stumbled on the question as to what could compose a force field like in Star Trek. An interesting hypothesis is proposed... Could that be the Chi substance?
×
×
  • Create New...

Important Information

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