Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by shoneill

  1. QUOTE (menghuihantang @ Aug 21 2008, 11:53 PM) I was just dealing with this topic yesterday and today. The driver is designed for use with only a single camera. If you look under "Known Issues" http://zone.ni.com/devzone/cda/epd/p/id/5030' target="_blank">here then you'll see that. It might be that the selection is offered as an option, but not implemented. Shane.
  2. QUOTE (jgcode @ Aug 21 2008, 07:46 AM) Or use the OpenG versions with error inputs and outputs. You DO wire the erros terminaly, right? It's a better solution than sequence structure and needs less space on the diagram..... Shane.
  3. You can't cast a parent as a child unless the true class type of the object is in fact a child (having been previously up-casted). Your solution is to implement the code in the parent and then call it within the child, so logically the opposite to what you're questioning. Inheritance works in one way only. Why not remove the data from the children and simply use the parent implementation (Call parent method)? Shane.
  4. QUOTE (mross @ Aug 11 2008, 09:12 PM) I meant "most people" in a more general sense i.e. not just LV programmers..... I think in a pencil-and-paper scenario, more people would draw a horizontal line than a vertical line. Shane.
  5. QUOTE (eaolson @ Aug 11 2008, 07:50 PM) Differentiation between internals and the API is a topic unto itself of course. I think most people might also illustrate a 1-D structure in the horizontal rather than the vertical so it might be some innate preference hard-wired into our brains. Shane.
  6. QUOTE (eaolson @ Aug 11 2008, 04:39 PM) You may talk about them that way, but they're not stored that way. Even the old BMP format stores a collection of rows to generate a 2D picture. Try to imagine the old CRT with horizontal and vertical frequencies..... Shane.
  7. Sylvain, LabVIEW isn't re-ordering anything, you are. The graphs look more or less correct for what you're showing. What do you think the graph SHOULD look like? Shane.
  8. QUOTE (Yair @ Jul 15 2008, 05:14 PM) I would agree with the bug nomenclature.... The port should be settable regardless as to whether the server is active or not. Shane.
  9. QUOTE (Darren @ Jul 14 2008, 06:18 AM) I don't "get" any specific "chicken" reference, but it's funny nonetheless. Shane.
  10. QUOTE (Yair @ Jul 11 2008, 11:58 AM) Ah that makes sense. I did notice the concatenation "feature" before. That would of course be a perfect explanation, even if the result was slightly confusing.... Shane
  11. Yair, you kinda threw me by quoting yourself within your own post. I was trying to find the hidden reference somewhere....... Shane.
  12. QUOTE (Eugen Graf @ Jul 10 2008, 06:29 PM) It's clear that there is some functionality which is NOT given with UEs. When I look at the code for registering / broadcasting and so on, I still think UEs are a good choice for any multicast type of functionality. Would it not be effectively less code to have a small unit (single VI to run in parallel to the main VI) on each recipient's side with an event case registering for the event in question and sticking them into a local queue to add the required functionality? So this would be like using the UE for distribution, but a local queue for storage..... Disclaimer: I'vce often thought about something like this, but never actually implemented it. As such there may be some glaring disadvantage in my suggestion. Shane.
  13. Assuming all the code is on one machine, why not use user events with multiple subscribers registering for the event? In effect it's similar to a notifier but with the ability to work via an event case instead of a function. Once you register more than once, the event gets passed to EACH of the registrees (is that a real word?). It gives you essentially a 1..n link, albeit without the Queue (backlog) part. Sample VI Attached (LV 8.2.1). Shane. PS I just realised I forgot to destroy the two user events when the program finishes.... Oops
  14. QUOTE (Aristos Queue @ Jul 8 2008, 04:06 PM) Well I have to confess that I don't know what the official meaning of an "active object" is..... Google says http://en.wikipedia.org/wiki/Active_Object' rel='nofollow' target="_blank">this. (DOH! Ben got there first.....) All the same I'd imagine (in LV context) it's an object which has a background process as Ben describes. It could perhaps also be tied in with Events so that it comes into play whenever certain criteria are met. Queues would be another logical interface choice. I'm working on such a beast right now. I've recently "discovered" user events and am using them to implement an interface to a process spawned in parallel which then feeds back into the original program via Events. All asynchronous. Of course items defined by their interface are perhaps better called "components" than "objects" but maybe we should leave that discussion for another time.... Edit: I also see nothing in the Wikipedia definition which dictates the use of OOP at all. However, given the name, I'm sure it is meant to apply to OOP classes with a suitable interface and scheduler. I still like the idea of getting values back via Event structure. Having VIs for getting the values back requires either polling or restrictions in the concurrency of the solution, no? Either way, a nice method is required for making requests from the "active Object". Queues are the natural choice. Are there any other realistic possibilities? User Events could also be used here.... Any performance difference to be expected between queues and user events? Advantages disadvantages? Shane.
  15. QUOTE (JFM @ Jul 8 2008, 10:41 AM) I personally find this new feature a lazy way out which complicates things unnecessarily. I would have actually preferred an Iteration link to the stop condition of a while loop than a stop terminal in a for loop. Seems to make more sense to me as a while loop has already a non-determinate number of iterations whereas a for loop is fixed. An option on a while loop (Stop if Auto-index limit reached) would have been a better choice to implement what is basically the same idea. It's just a different visualisation. Shane.
  16. QUOTE (Yair @ Jun 27 2008, 01:33 PM) Seeing as the descriptors can be very long and complicated, it's very useful sometimes to know how to easily skip to the next item in the descriptor. Hence the first value. Of course one could deduce the next offset based on the data available, but I'd rather take the 0.25 Bytes (on average) cost of the second length value for faster response time in LabVIEW. Isn't this all derived from the general and pretty much global method of defining type descriptors? Such type descriptors for Controls can get pretty involved. Shane. Ps I see your point regarding the value of 18 instead of 20. I think this might also be a result of a global method of handling type descriptors IIRC. I think the descriptor for a PStr lists the total length as the total length of the DATA and thus excludes the two bytes for the size information. It will thus always be 2 Bytes short of a multiple of 4.
  17. QUOTE (lampersberger @ Jun 24 2008, 09:50 AM) Glad to have been able to help. Shane.
  18. This used to work.... Drop the vi as a sub-vi in an untitled block diagram (Put some broken code in if neccessary). Then double click it to open it without running it. Shane.
  19. QUOTE (crelf @ Jun 14 2008, 06:33 PM) Very "Power Rangers" meets "Planet Terror" meets "Army of Darkness". Looks kinda interesting.... :ninja: Shane.
  20. QUOTE (Eugen Graf @ Jun 14 2008, 01:08 AM) If you have a parent class where not ALL of the functionality should be overridden by child classes, the functions which should NOT be overridden are static dispatch. You could, for example, have a group of child classes for manipulating data within a parent class but have a set of VIs for displaying the data which are independent of the child classes. I don't think I'm explaining this very well..... :headbang: A Static dispatch VI DOES have less overhead, but the difference in negligable unless you're calling it tens of thousands of times per second. Shane.
  21. QUOTE (Aristos Queue @ Jun 13 2008, 06:54 PM) I don't think the math VIs themselves are the issue. Personally, I have had the same idea about using Objects for this kind of operation. You could quite easily mix up Gauss fit objects with other types and simply calculate an array of different individual functions. I was working with multi-gauss peakfits with different base-lines and simultaneous calibration. Think of it as having "model" objects. I think being able to put together a compound function like that would be great and would entail a level between the non-linear curve ft and the math VIs. I never got around to it, but I think it's a quite viable route to go down. Shane.
  22. QUOTE (James N @ Jun 11 2008, 03:26 PM) I've used Ghost4Unix for exactly this task. It can be booted from a CD, backs up the entire drive (Zipped so that empty space gets compressed). It can be used for ANY OS since it doesn't even need to boot into the OS or interpret the file system. My old company has just been able to restore an old NT4 machine to life with a new HD after the old HD crashed. A single file was corrupted and after re-constructing the backup on a new empty partition, they were able to access and fix the problem. There's also Ghost4Linux which the author of Ghost4Unix doesn't seem to like but schieved much faster backup speeds for me. Oh, important note : Both systems backup over FTP, saving the file on a local (or remote if you have patience) server. Shane. PS Silly me, another good point : it's free.
  23. QUOTE (neB @ Jun 10 2008, 03:42 PM) Ben, I feel your pain. I also recently had my "AHA" moment with OOP in LabVIEW (Interchangeable spectrometer drivers). I'm plagued by thoughts of where I can use it since....... :ninja: I think it's a great addition to the LV repertiore. Shane. PS DOesn't LVOOP kind of make IVI redundant?
  24. QUOTE (tcplomp @ May 17 2008, 09:03 PM) Yeah, add me to a list of poeple interested in getting SVN over HTTPS running on a linux machine...... Shane.
  25. QUOTE (crelf @ Jun 9 2008, 03:01 PM) All branches can cause data copies. The only difference is that a LVOOP copy (By reference to its class) includes references to methods. Otherwise no different from any other branches really. Shane.
  • Create New...

Important Information

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