Jump to content

Falevoz Y.

Members
  • Posts

    45
  • Joined

  • Last visited

Posts posted by Falevoz Y.

  1. Hi,

     

    I have to deal with IRIG B protocol on a compat RIO. It's a 9074 and the IRIG signal is wired on a 9402. I searched on the NI website and found 2 libraries that seems to decode IRIG :

    I played with the first one and succeed to get day of the year and hour, but not the year. 

     

    As the second is recommended by NI to be used with 9467 and it is said to be compatible with IRIG protol ("The NI FPGA Timekeeper is LabVIEW FPGA IP designed to integrate the CompactRIO onboard field-programmable gate array (FPGA) clock with external timing sources such as SNTP, IRIG-B, and GPS."), I thought it would be a better solution.

     

    My problem is that there is no example of the use of timekeeper with IRIG protocol and I don't know how to use it in this way. Does anyone has already use timekeeper with IRIG B protocol and can give me an example?

     

    Thanks in advance

     

    BR
    Yann

  2. Oh, except that TestStand doesn't support LVOOP dynamic dispatch :( I guess you'd need to wrap it in another class...

    Dealt with that on my first experiments... I was a bit desapointed, but I think it's logical because subclasses are not in memory. I found a tips to do that manualy... The object connectors of subclasses methods are parents classe type. So, I can call them by reference in the parent methods. It's a bit heavy, but it work...

    The OOP aproach is less interesting with the loss of dinamic dispatch, but it keeps the interest of encapsulation...

  3. This is a problem with the Selection List[] property - the elements in that list are grouped by selection (so if you made 3 consecutive selections while pressing shift, you'd have three "groups") and within each group the elements are ordered by their Z-order, for some reason (tabbing order would probably make more sense).

    In any case, the plugin is open source, so you can modify it to sort by label if you want. If you want it to also keep its current behavior, the RCF supports a configuration dialog, so you could have this as a boolean option.

    ok. Thanks for your explanation.

    Apart from this example, don't you think the possibility of swap and permutation on more than 2 inputs elements would be interesting?

    Yann

  4. I'd like to add code to pick up on two wires that connect the same node and then swap ther terminals, also workign with growable nodes such as build array or bundle into cluster with two inputs might be useful.

    It would be great if it allow to do circular permutation or symmetric swap on more than 2 inputs elements. I used a few times the RCF plugin that build an array of references, and references were always in the revert order than the one I wanted. It would be great if your tool allow to reorder automatically.

    Yann

  5. None of the patterns documented in the document change a lick with the introduction of DVRs. Some of the other patterns from the Gang Of Four book might be more directly implementable, but they (generally) remain undesirable as any use of references in a dataflow program is subject to severe negatives, especially since most of the needs that the patterns serve can be done without references. I would hesitate -- strongly -- to call any pattern that uses DVRs "cannonical" unless/until it can be demonstrated that no dataflow solution exists.

    All right.

    I was mainly thinking of singleton that is, in C++, implemented by a static pointer. I figured that we could do the same in LabVIEW with a ref stored in a private fonctional global. But I understand your arguments.

    Yann

  6. Hi

    Count the number of attributes and methods you need in the class, then ask yourself does it make sense to create a class out of it.

    I wouldn't create classes if...

    ...you end up with a "tiny" class like this:

    post-941-125352247392_thumb.png

    ...you end up with a "property" class like this:

    post-941-125352247986_thumb.png

    Cheers,

    Mikael

    I agree that your lamp class is too simple to justify an OOP implementation. But, with not much more complexity, it can be justified by flexibility that it bring... Even more if the requirements are not so stable...

    Yann

  7. CITATION(shoneill @ Dec 17 2008, 05:31 PM)

    "The class diagram done, most things were simple". Ah, but therein lies the trickery of LVOOP. Getting the classes "done". Especially for Plebs like me who have trouble thinking in OOP.

    I use to say that the class diagram has to be as close as possible to the real world. It make the development more intuitive and the code more comprehensible. I this case, I had a class "houseplan" that is composed of "stairs", and "stairs" are composed of "room". A particular room is the "staircase" (inheritance). On walls of the "room", you can find "openings" that can be "door" or "window (inheritance and polymorphism). After that I wonder what I need to know for each element. The houseplan attribute is its scale. For "room" and "openings", attributs are position and dimention. Then I wonder what I want to do with these elements. I want to save, load, draw, move... them. Here are the methods of each class...

    Yann

  8. CITATION(Yair @ Dec 17 2008, 08:07 PM)

    I also liked the traced video image. I assume that this was done with a standard IMAQ VI.

    In the split screen sequences, I said that you can see what the retina see. This is not done with labwiew. You can connect to a java applet for retina configuration. These pictures come from this applet and are the input for the internal DSP. In normal use, the retina doesn't transmit any picture. Its DSP do the image processing and transmit data as coordinates of mobiles in the room, if they are human or pet, if a human is falling...

    Yann

  9. CITATION(shoneill @ Dec 17 2008, 11:48 AM)

    Interesting.

    How many man-hours did that software take to produce? Looks relatively complicated....

    Nice example of what can be done with picture controls though.

    Shane.

    I'd say nearly 3-4 month. I was alone. I used LVOOP to do it. The class diagram done, most things were simple. The complicated point was all the rules to implement to stop a room move when you arrive on another room or a door move when you arrive at the end of the wall...

    Yann.

  10. Hello,

    is a video that show the user interface I did for a European research project called MINAmI. The goal of the project part on which I worked was to do an home automation system demonstrator.

    One of the program I did was the one which should be used by the installer. It has to give functionalities to draw the house plan, place sensors, calibrate sensors and do some supervision.

    This video was made for FuturVIEW 2008 (the second French days on graphical programming for measurement and instrumentation with LabVIEW software).

    • The first sequence shows how you can draw a plan.
    • The second, how you can place sensors on the plan.
    • The third shows the calibration step for a sensor based on how work the rabbits retina. There is a split screen part in this sequence where you can see what the installer do for calibration, the retina, and what the retina show.
    • The fourth is a supervision sequence. You can see that when the door is opened or shut, the plan is updated. Same for the infra-red sensor that become red on the plan when someone is detected.
    • The fifth shows that communications are bidirectional. They are based on a SOC developed by Hager security that is very low power consumption (10y on battery).

    Yann

  11. Hi,

    I defined a cluster for my GUI that contain a waveform graph. I buit a class for managing this cluster. The refnum of the cluster is the data member of my class and the methods update the indicators. It work well for most of them, exept for the waveform graph that don't update. If someone could help me to understand why... In the zip file, you can find the class and a test VI called "Test Classe Afficheur Tiroir.vi"

    Thanks

    Yann

  12. CITATION(Aristos Queue @ Jan 6 2008, 08:10 PM)

    Please look in the LAVA forums for the topic about the Map class.

    I had a look to the project in that topic. This is more or less the way I use in my project but in my case it's not the most natural way.

    I heard about tricks that allow to use object reference but didn't find anything on the web... If you have links, you will have my eternal gratitude :worship:

    By!

  13. CITATION(Aristos Queue @ Jan 6 2008, 08:10 PM)

    There is no programming language in existence that allows this. None. What you're asking for would be, in C++, this:

    class X {

    ____X blah;

    }

    Not legal. What is legal is:

    class X {

    ____X *blah; // Very important asterisk!

    }

    i.e., a pointer to the type. Defining the data within the data would be a type of infinitely large size. The second one is possible in LabVIEW. Please look in the LAVA forums for the topic about the Map class.

    Yeah, that's the way I was thinking about. I wanted to be short but I agree, the asterisk is very important. I didn't find the way to do that. Thanks for the topic. I'll have a look soon.

  14. CITATION(Gary Rubin @ Dec 28 2007, 06:38 PM)

    http://lavag.org/old_files/monthly_12_2007/post-4344-1198863394.gif' target="_blank">post-4344-1198863394.gif?width=400

    The library calls are to kernel32.dll. The function names are the labels of the library calls.

    Labview will remain in high priority as long as it is open. I have not tried this with built executables, but presume it should work the same.

    Microsoft's MSDN webpage will give you the values for normal and above-normal priority.

    Thank you very much!

    Yann

  15. CITATION(Gary Rubin @ Dec 28 2007, 02:01 PM)

    The VI priority refers to the priority of the thread within Labview in which that VI is executed. The Windows priority refers to the priority within the Windows tasks with which Labview is executed.

    One word of caution - if your CPU usage is pegged at 100% and you've set Labview to high priority, your ability to move/minimize windows can be limited.

    Ok, understand.

    It could be great for my curent project. Would you give an example VI?

    Thanks

    Yann

×
×
  • Create New...

Important Information

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