Jump to content

SteveChandler

Members
  • Posts

    161
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by SteveChandler

  1. I have been using the LapDogAPI Messaging library along with the Slave Loop pattern posted by Daklu. Recently I have been looking into the Actor Framework and do not yet completely understand it.

    Conceptually what is the difference? I know there are significant differences in how they are implemented and that the Actor Framwork dynamically launches a reentrant VI. But could the slave loop pattern be considered kind of like an actor framework?

    The thing I really appreciate about the LDM is it's simplicity. What are the main benefits of the Actor Framework? At the highest level aren't they both just loops with input and output queues with an object as the datatype?

  2. Do you ever find yourself doing a whole bunch of extra programming just to avoid an "ugly solution" that was robust and really had nothing wrong with it, but it just bothered you so much you put in the extra work for something "cleaner"?

    Am I even making any sense?

    A whole bunch of extra programming IS an ugly solution :rolleyes:

    Less is more.

    But I know what you are asking and am guilty. I can't really give any specific examples right now.

  3. dont agree, what if you have already passed CLAD before, however it is expired. Do you need to do it again before taking the CLD? Considering you are still active in the field and using LabVIEW everyday. I think it is just Money craving

    It only costs $99 for a CLAD exam through Pearson VUE and I don't know if NI gets any of that. It costs $299 for a CLD or CLA exam which lasts four hours. Then there is the time for two engineers to review and grade it. And don't forget the administration. I don't think there is a lot of money to be made in certifications. Maybe there is some profit from the courses to prepare for these exams but I am guessing it is not a whole lot compared to NIs core products.

  4. A developer should be reasonably fast and so should an architect. But coding speed should not be an overly strong indicator of effectiveness. It can take a reasonably skilled programmer 20 minutes to create a moderately complex front panel. That is a big chunk of the four hours and it does not indicate any insight or skill - the "answer" is right on the exam and you only have to copy it.

    I took the old format exam and thought the complexity was very reasonable but I that NI should add an hour to complete it. With the new format four hours is probably perfect. Having to create everything from scratch (even though the answers were given) put too much emphasis on speed. Looking at the four examples the front panels are somewhat similar in complexity. Now NI can create exams with a wider range of front panel complexity without being unfair.

  5. It seems that NI has changed the format for the CLD exam. They give you a USB stick with some VIs and controls to get you started. Nice time saver! Saw here. Does anybody know if the CLA exam format has changed? I saw something in the prep guide about classifying requirements which is something I did not have to do on my failed attempt.

  6. Ton, are you asking for the LabVIEW Task Manager to provide a "pipe" for User Defined Trace events? This is already a feature of the LabVIEW Desktop Execution Trace Toolkit that is now included with LabVIEW 2011 Professional:

    post-4274-0-88814500-1316113447.png

    Wait. Are you saying the DETT software that I just bought for LV2010 is now included with LV2011?

  7. Just a quick response... I'm short on time.

    I wasn't aware different units were considered separate types. To be honest I've always thought the units were more trouble than they were worth. I'll have to think about that for a while before deciding whether or not to add a variant message.

    I have not used units much but I see why they are different types. You get a broken wire if you try to multiply volts and temperature but you can multiply volts and amps. Pretty cool stuff for preventing bugs.

    [Edit: Hah. I told you I have not used units much. I just tried and indeed you can multiply volts and temperature. You end up with a new unit entirely s^-3 m^2 kg A^-1 K. It turns out that 5 degrees Celsius times 6 volts is 1668.9 of whatever those things are. Yea more trouble than they are worth :D )

  8. I could post an example later, this is from memory. Better learning experience recreating it yourself. I have added other features like finding the segment closest to a given point, and double checking that the selection process does not add other objects. It is easy to get the terminals selected on shorter segments which are hidden.

    I think I can figure out most of it. An example would be helpful especially with the check for add other objects. I will try creating it myself before looking at the example though. I just started playing around with scripting and really want to learn about it. I have had lots of fun writing code that writes code but only with, eh.., scripting languages. It really is too bad that LabVIEW scripting requires the development environment but it is understandable and I gather that this will not change.

    My other point is that you are usually a much, much happier scripter if you let LV deal with the wiring (BD cleanup, Clean Wire method, autowire). Futzing with wiring in scripting is a spaghetti factory, this simple task is already a screen wide on a BD.

    Yes I am starting to see that. But it is good that there is flexibility in case you want to do something crazy like weird wires. That still blows me away especially with highlight execution.

  9. A DBL with an attached unit is a different type than a DBL (no unit). The wire will break if you wire them together (or if the units are incompatible). So to use units with messages you need separate message types for each base unit. Or use a variant.

    You could just not use units, sending raw DBL messages and relying on the receiver to know what the unit is, but united numbers are useful for preventing bugs.

    Yes when you start to take into account units there really are a lot of datatypes. But as I said if I need one that is not in my polymorphic VI I just create a new one. I can see how this can end up with many entries over time. But with autoselection I don't think it is a problem. Anybody know the limit to the number of polymorphic entries? I think the select node in scripting is an I32 so there probably is no practical limit.

    Probably, is there a LapDog discussion group?

    -- James

    There is one on NI but it is pretty low volume. I was thinking maybe the Object Oriented board here on Lava or something else. [Edit: I created a new thread. I hope this is OK]

  10. Thanks everyone. I can not figure out is how to move a wire segment.

    I looked at the Joints[] property. It returns an array of clusters containing info on all the segments but it is read only. Is there a way to identify a segment in order to move it, like when you single click on a wire and use the arrow keys?

  11. Here, I'm directly connecting to LabVIEW's ability to handle multiple control types in a single event frame, via variants. If I want to add a control, I just drop it on the front panel and give it the right name and it's done.
    That is an interesting idea - registering all controls. I use a lot of latching boolean controls so I would have to put all the terminals in one event case to make sure they all got reset. It is interesting and I will keep that in mind. It seems like it could get confusing though. If I have an event for the individual control then there is a frame with the terminal and any code specific to the event. But I can see that for some applications this is useful. I would have never realized you could register all events like that.
    To do this UI without variants, I would have to stop and create new message types for the pressure and temperature unit DBLs (it's going to be a big polymorphic VI, Steve, once you get to all the different possible units!), then configure an event frame for each control.
    I would not create a polymorphic instance for temperature and for pressure. I only have the generic types that were not included in the native types library. Since both of those are DBL and I already have that I do not need a new entry. I might have a set pressure and set temperature vi in some module library that use the DBL message and set the name with a constant. But no additional polymorphic instances are necessary. The list is kind of big. I think I have about a dozen or so. But I have it set to automatically adapt so there is no need to worry about a big selection list. If I see a cohersion dot then I know I might need another instance.

    Edit: Maybe we should move this off of the announcements board :)

  12. Forgive me but I am just starting to learn about scripting today. I can open a VI, get a reference to the block diagram and to a VI or terminal and move it to a new location. Woo hoo!

    My question is that when I move a node the wire will bend in the middle. Can I specify where to bend the wire? A picture is worth a thousand words. (One of the best features of LabVIEW)

    post-17905-0-96995600-1315242120.png

  13. I have created a bunch of datatypes as I needed them and put them into my own library. I gave up on adding them all to the palette and now my create and get messages are all in polymorphic VIs. Variant is one of them. But I don't like that one because I have to convert the message to the variant subclass then to the datatype. I would rather just add a new entry to my polymorphic VI whenever I need something not already there.

  14. Sitting here on the pile of coal in my backyard I have to ask...

    Where do we get the energy required to produce the hydrogen used by the fuel cell if not fossil fuel ?

    Hydrogen fuel cells are great for situation where hydrogen is a by-product of some other process.

    Ben

    If I knew I wouldn't tell you until after I took over the world. :)

    But I would probably use a nuclear reactor to do it. Fortunately for you and the world I would probably just blow myself up trying without achieving any sort of nuclear reaction or catastrophe that the local fire department could not easily deal with. So I will just fork over the $3.75 per gallon and deal with it.

  15. I'm not as interested in the cost of a new battery as I am in the disposal (expense & GREEN impact :P) of the old one.

    The price I quoted was high anyway. They are closer to $2K. Too cheap means more environmental impact.

    That's why I said that Toyota pays a bounty for them. They buy back even the dead ones. There is a sticker on every battery that says you can take it to any Toyota dealer for a $150.00 reward (source). You will not find many in the scrapyard. I don't know where the battery is but I will look for the sticker and try to verify this myself. In Oregon you hardly see any beverage bottles in the trash because of only a $.05 bounty. Also the warranty is 100K miles but the Prius is used by a lot of taxi companies and municipalities. Many of them have over 300,000 miles on the original battery. Of all the Prius' sold since 2000, 97% on the road. (source)

    Yes the battery is nasty stuff but it is just a NiCad. If you stuck all the cell phone batteries in a pile and all the Prius batteries in a pile I don't know which would be higher. Not that any of this means they don't have an impact. Maybe it is a step in the right direction but maybe not. The best way would be hydrogen fuel cells but they are not there yet. But at least things other than fossil fuel are being experimented with.

    • Like 1
×
×
  • Create New...

Important Information

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