Jump to content

hfettig

Members
  • Posts

    109
  • Joined

  • Last visited

Posts posted by hfettig

  1. QUOTE (Ton @ Aug 12 2008, 04:30 PM)

    Here's what I would do:

    Create a user.lib\_toolkit folder

    All toolkits install here

    Create a user.lib\_toolkit\palettes\controls folder every control menu file will be placed here

    Create a user.lib\_toolkit\palettes\functions folder every function menu file will be placed here

    Create two mnu files under user.lib\palettes, controls and functions.

    The controls sync to the palettes\controls folder, the functions to the palettes\functions folder.

    Hi Ton,

    This is pretty much what I did, except that I have the mnu file for controls and functions in the same folder, i.e user.lib\_toolkit\palettes

    However, I don't want my entries to be under User Controls and User Libraries but under a separate category like the OpenG category in the control and function palettes.

    I managed to create the category under the functions palette by creating one mnu file that syncs with user.lib\_toolkit\palettes and putting that into menus\categories. This is automatically populated into the function palette categories.

    Unfortunately the same is not true for the mnu file that I put into menus\controls. My mnu files are in the same folders as the openg.mnu files, however, on the functions one works.

    I'll play with it some more and report back.

    Cheers,

    Heiko

  2. QUOTE

    I hate making icons! I only use text on my icons.

    I am with you on that Mike. That's why I love Mark's icon editor. However, for the 5% of times that I want to do something graphical it would be quite nice to have the original editor functionality included.

    QUOTE

    I would like to be able to type some text and it gets translated to tiny fonts and auto-fit into multiple lines. Can someone add this?

    Most of this the Mark's current version of the editor already does. You can specify one header line and up to four lines of text. I assume what you are referring to is to have one textbox (instead of four individual lines) with the editor fitting the text into the four lines automatically.

    I am with Philippe on the suggestion that we should include all the functionality of the basic editor. I assume that the original icon editor is protected so that we could not simply add to it?

    Without integration of the original features I do not see a large number of users adopting a different editor simply because they are too used to it.

    As for the layout, I do like ThSa's layout. It keeps the standard view but adds the tab control on the right. Those tabs would work well with Mark's suggestion of plugins. One tab for Text icon, one for header with graphic, one for the original editor, etc. One thing that would need to be added though is some kind of setup/options dialog that lets the user select the default tab that is shown (or store the last one used).

    post-1022-1218588318.png?width=400

    I do like ThSa's features although I prefer Marks version of the text icon. Especially the fact that it automatically updates while typing and centers and resizes the text.

    I also prefer Mark's way of automatically storing the last color-schemes used. I just wish I could erase some of them :-)

    I also like ThSa's 4th tab that allows you to set the description of the VI. One reason why I sometimes don't add a description to my VIs is that I have to go into VI properties and then select description. Just too many mouse clicks. Since I have to edit the icon anyway, I think the icon editor is the perfect place to edit the Description. I would also add the Window Title here.

    I am less interested in the other Execution and Appearance checkboxes. Those are more interesting for VIs that the user actually sees which is a small percentage of all the VIs. For those I don't mind opening VI properties.

    Anyway, that's my 5 cents (Canadian) worth ;-)

    Cheers,

    Heiko

  3. Howdy,

    This is package building related. I have no problem creating my own packages with VIPM 2.0 but I want them to show up in their own category on the functions and control palettes.

    I have no problem doing this for the functions palette:

    I have VIPM installing the palette files in a "dynamic_palette" folder under my hierarchy in user.lib/_xxx/dynamic_palette

    Then I created an mnu file that syncs to that directory and placed it into menus/categories

    Voila, I have my own category on the functions palette

    Now I thought it would be just as easy to do that for the controls palette, but when I copy the mnu file into menus/controls nothing happens.

    When I edit the palette from the IDE it generates root.mnu files in MyDocuments/LabView Data/8.5/palette/controls, which I don't want (since I ultimately want to package the mnu files and distribute them as external dependencies to my packages)

    I compared the openg.mnu files in categories and controls and they are identical. Is there a voodoo step I am missing? :wacko:

    Any help would be appreciated.

    Cheers,

    Heiko

  4. QUOTE (Aristos Queue @ Aug 1 2008, 03:48 PM)

    You already can. Pop up on the XControl in the project tree and unlock it. When done editing, pop up and apply changes.This was possible since at least 8.2 and I think it was in 8.0 when XControls originally released. (I wouldn't know... I really didn't use 8.0... 8.2 was a bit more important to me... you can guess why...).

    Yes, it theoretically works. However, 50% of the time LabVIEW (8.5/8.5.1) crashes when I try to do that. Apparently that is a known issue but since it is intermittent they have not found a cause yet. So I have made it a habit to always close all VIs that have XControl property nodes or controls in them.

    Haven't tried it in 8.6 yet.

  5. I'll be there Sunday through Saturday.

    I'm staying at the Radisson.

    Sunday Night: Concerts in the Park/Ginger Man

    Monday Night: Alliance Day Party

    Tuesday Night: LAVA BBQ

    Wednesday Night: NI Party

    Thursday Night: San Antonio

    Friday Night: no idea yet

    Cheers,

    Heiko

  6. QUOTE (neB @ Jul 25 2008, 09:12 AM)

    Auto-grow (auto-explode) option is true by default.

    Ah yes, Auto-Groan. Especially annoying when you have nested structures that all grow. And all just because you changed a cluster constant from horizontal to vertical :throwpc:

    I remembered a couple more:

    I like the new .lvlib libraries. I just find it funny that they allow you to use VIs of the same name in your program but when you compile it into an executable you get a warning that you have VIs with the same name and those are automatically copied into folders outside your executable. Would it be so difficult to prepend the library name during the build process?

    I have never tried this with inherited classes in which the override VIs have to have the same name. Does the same thing happen during a build?

    In the project tree, for each virtual folder, class, library, etc. you have a function to Arrange the containing files (by Name, etc.). Why does it not remember that setting? Every time an item is added or created in a folder I have to re-arrange. :headbang:

  7. I thought I'd start a topic about pet peeves with regards to the LabVIEW development environment.

    Maybe it is just me being ignorant and somebody knows a way around these things.

    Maybe you have some pet peeves too that you would like to share.

    My number one pet peeve is the fact that when I create a new custom control, be that via File -> New -> Control and Advanced -> Customize, the default setting for this control is Control. However, 95% of the time I am creating typedefs, which means I have to change the setting to Typedef. It would be great if it would come up as Typedef by default. I would even settle for an LabView.ini setting where you can select the default.

    Number two has to do with the Properties dialog for front panel controls. On the Appearance tab, why are the text boxes for Label and Caption grayed out when I uncheck visible? The text of either is in no way related to the visibility. So if I want to change the label, say after I have copied a bunch of controls, and the label is invisible, I first have to make it visible, change the label, and then make it invisible again. Now if that is not annoying enough, if the control happens to sit close to the inside edge of a tab control, making the label visible might resize the tab control, which is not undone by making the label invisible again.

    The third one is has to do with the fact that you cannot select a bunch of similar controls and change properties for all of them at once. I know that might be difficult to implement but it would be highly useful. Many times I have a number of digital numeric controls on the frontpanel and want to make the Format & Precision the same. Currently I have to select one after another and change them separately. I did try to build a properties copy tool once but never could quite get to work.

    Well that's all for now. If you have some suggestions or would like to share your own pet peeves, feel free to reply.

    Cheers,

    Heiko

  8. Did you know that you can auto-index an output tunnel of a while loop to create an array the same way you can auto-index and output tunnel of a for loop?

    This is the default behaviour for for loops but not for while loops.

    In the while loop you can turn this behaviour on by right-clicking on you output tunnel and selecting 'enable auto-indexing'.

  9. QUOTE(Yen @ Jan 31 2008, 02:56 PM)

    Queue elements are passed by references (at least for the Dequeue primitive, which creates a 1-to-1 relationship), making them very efficient. I remember Stephen saying that notifiers use the same basic code underneath, so I would guess that the first WFN node uses by-ref and that any other creates a copy.

    Thanks, Yen

    I suspected as much. I ran a little comparison, which showed that there was 0ms delay between enqueuing and dequeuing a 10,000,000 array of double. I suspect that it

    would take slightly longer if the array were passed by reference ;-)

    Cheers,

    Heiko

  10. Hi,

    Does anybody know how the notification/element in a notifier/queue is passed between the Send Notification/Enqueue Element and the Wait For Notification/Dequeue Element functions?

    It probably makes little difference whether it is passed By Reference or By Value for the standard data types, but if for some reason the payload would be a large array or a large waveform it could have a large impact on performance.

    Cheers,

    Heiko

  11. Hi John,

    I don't quite understand why you are trying to fit an 8th order polinomial to a step function.

    As I understand it you are looking for the slope of the "bottom" of the step, the "riser" of the step, and the "top" of the step.

    Personally I would split the raw data points into three or five groups, depending on which works better. I would calculate the "height" of the step as maximum minus minimum of the the raw data. Naxt I would split the data into three groups: minimum to min + 10% of height, min + 10% to max - 10%, and max - 10% to max. Next I would do a simple linear fit on the three sets of data to get the three slopes.

    If the curvature at the top of the bottom and top of the step introduces to much of an error into the slopes, consider splitting the data into five groups: min to min + 5%, min + 5% to min + 20%, min + 20% to max - 20%, max - 20% to max - 5%, and max -5% to max. In this case, discard the data in sets 2 and 4 and do a linear fit on sets 1, 3, and 5.

    Splitting into five sets probably gives you a more accurate result. You can then also parametrise the 5% and 20% split points, and vary the values to see which gives you the smallest deviations on you slopes.

    Hope that helps.

    Cheers,

    Heiko

  12. Hi folks,

    I have a problem with SRQs on GPIB. On my BERT (Bit Error Rate Tester) I execute some alignment functions that take a while 5-30s and I instruct the BERT to send an SRQ when it is done. According to the instrument front panel it is raising the SRQ but I never receive it on the controller or more specifically the Wait For SRQ function in LabVIEW waits until timeout.

    The most likely cause for this is that there is another 'stale' SRQ raised somewhere on the bus since there is only one SRQ line. Does anybody have any suggestions on how to get rid of 'stale' SRQs? That way I could make sure the bus is clear before I start my alignment.

    Cheers,

    Heiko

  13. QUOTE(Zhrani @ Dec 14 2007, 08:45 AM)

    Hello,

    does anybody know if it is possible to

    plot more than one signal in one graph (with different y-axis scale)

    Zhrani

    Yes you can.

    If you right-click on the Graph and check Visible Items -> Scale Legend you should see the list of axes present. You can drag on the bottom to add an extra axis (like making an array bigger). Enter a name and you have a second y-axis. Now if you right-click on the graph and select Properties you can assign the plots to the different axes on the Plots page.

    Using property nodes you can change the location of the axis.

    You should also be able to create additional x-axes but I haven't quite figured that one out yet. Anyone?

  14. If I read the help correctly every time you change the icon for a LVOOP class (.lvclass) or a library (.lvlib) you should be prompted whether you want to apply the changes to all icons in the class/library. That does not happen in LV 8.5. I am pretty sure it worked in 8.2.

    However, if I open a reference to a library I can use an invoke node to call 'ApplyIconToVIs', which works fine.

  15. Hi Folks,I am trying to programmatically change the Description property of LabView libraries (lvlib) and LabView classes (lvclass) at edit time (to include my copyright).I had no problem changing the property for VIs and controls using property nodes but how do I open a reference to an lvlib or lvclass?I guess I could open the xml as text and change the property there but there must be a more elegant solution.Cheers, HeikoWell, I decided to give it another go and found a solution.

    • Open an Application reference
    • Wire the app ref to an invoke node
    • Select LVClass.Open or Library.Open and wire the path to the invoke node
    • Wire the lvclass/library ref to a property node and select Description

    Cheers, Heiko

  16. You are invited to attend the first

    Ottawa Wireworkers LabVIEW User Group Meeting

    Where: University of Ottawa

    School of Information Technology and Engineering (SITE)

    Room 4-004

    800 King Edward Avenue

    When: Wednesday, December 5, 2007

    19:00 – 20:30 (7pm – 8:30pm)

    Are you are using LabVIEW to develop test and measurement or process control applications? If so, LabVIEW User Group Meetings are a great opportunity to learn new programming techniques and improve your LabVIEW skills. Use this opportunity to network with other programmers in Ottawa to find out how they solve their applications using LabVIEW. We look forward to seeing you at the meeting!

    Agenda

    19:00 – 19:15 Welcome and Introductions

    19:15 – 19:30 Using Open Source Code in your Development

    Heiko Fettig, Rivard Fettig Professional Services

    How the open source community can help speed up your development.

    19:30 – 19:45 TDMS: What is it good for?

    Steve Mate, Co-efficient

    Find out all you ever wanted to now about LabVIEW's TDMS file format for data logging.

    19:45 – 20:00 Arrays without Loops – The Power of Polymorphic VIs

    Ray Robichaud, Drawbridge Technologies

    Tired of looping through arrays? Find out how polymorphic Vis can help you handle arrays more efficiently.

    20:00 – 20:30 Open Discussion Session

    For directions to the University of Ottawa as well as parking locations see http://www.uottawa.ca/map/.

    The Ottawa Wireworkers LabVIEW User Group meets four times a year to discuss LabVIEW issues and general Test and Measurement applications. It is also a great way to improve programming skills by meeting other people and talking to them about how they approach their problems.

    If you would like to attend, please RSVP to OttawaWireworkers@gmail.com.

  17. You are invited to attend the first

    Ottawa Wireworkers LabVIEW User Group Meeting

    Where: University of Ottawa

    School of Information Technology and Engineering (SITE)

    Room 4-004

    800 King Edward Avenue

    When: Wednesday, December 5, 2007

    19:00 – 20:30 (7pm – 8:30pm)

    Are you are using LabVIEW to develop test and measurement or process control applications? If so, LabVIEW User Group Meetings are a great opportunity to learn new programming techniques and improve your LabVIEW skills. Use this opportunity to network with other programmers in Ottawa to find out how they solve their applications using LabVIEW. We look forward to seeing you at the meeting!

    Agenda

    19:00 – 19:15 Welcome and Introductions

    19:15 – 19:30 Using Open Source Code in your Development

    Heiko Fettig, Rivard Fettig Professional Services

    How the open source community can help speed up your development.

    19:30 – 19:45 TDMS: What is it good for?

    Steve Mate, Co-efficient

    Find out all you ever wanted to now about LabVIEW's TDMS file format for data logging.

    19:45 – 20:00 Arrays without Loops – The Power of Polymorphic VIs

    Ray Robichaud, Drawbridge Technologies

    Tired of looping through arrays? Find out how polymorphic Vis can help you handle arrays more efficiently.

    20:00 – 20:30 Open Discussion Session

    For directions to the University of Ottawa as well as parking locations see http://www.uottawa.ca/map/.

    The Ottawa Wireworkers LabVIEW User Group meets four times a year to discuss LabVIEW issues and general Test and Measurement applications. It is also a great way to improve programming skills by meeting other people and talking to them about how they approach their problems.

    If you would like to attend, please RSVP to OttawaWireworkers@gmail.com.

  18. Is it just my bad memory or was there an input for 'Default Value' on the 'Data Range' property page before LV 8.5.

    In LV 8.5 that page is now called 'Data Entry' and there is no more 'Default Value'. Can I find that somewhere else now or can the default value only be accessed using the right click menu through 'Data Operations' -> 'Reinitialize to Default Value' and 'Make current Value Default'?

    Any idea why that was taken out or was that an oversight?

    Cheers,

    Heiko

  19. I do not think there is and it wouldn't really do you any good since you cannot programmatically at controls to that page.

    What you can do, however, is add the page with all its controls during edit, hide the page at startup, and then programmatically make it visible.

×
×
  • Create New...

Important Information

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