Jump to content

Neil Pate

Members
  • Content Count

    894
  • Joined

  • Last visited

  • Days Won

    66

Everything posted by Neil Pate

  1. Simple example attached (LV2013). The callback VI remains reserved after the main VI has run. Any ideas what I am doing wrong here? Note: I have just tried to run the "Passing Data to a .NET Event Callback" shipping example and the same behaviour exists (i.e. works fine in LV2012, but the callback remains reserved in LV2013). Test5 Callback.vi Test5 Callback.vi
  2. Hi All, I am dusting off some old code I use to get a Windows Notify Icon running. This code was originally developed in LV2009 I think, but recently used in a project in LV2012 with no issues. For convenience I have wrapped up the .net NotifyIcon API in several LabVIEW classes. My test code works fine, but I have some strangeness with the event callback VIs (these are invoked whenever you interact with the notify icon). Specifically, when I run the code my callback seems to change context from my project to something called <W>, and is in a reserved type state as shown in the se
  3. Yair, your link for Featherweight seems to be broken (missing the colon after http), try this.
  4. I love trying to understand lordexod's posts, they are like doing a cryptic crossword
  5. Hi all, I am a bit embarrassed to say in my situation there is no bug in LabVIEW, this is clearly a case of PEBKAC. Sorry NI! The root of my problem was I created a sub-class from one of my main objects, and (for reasons I can not think of now other than it was very hot the other day) in the private data of the sub-class I added a data member object that already existed in the parent (same class, same name etc). Then when I was probing around I did not notice that I was looking in the wrong place in the cluster (basically I saw what I wanted to see...). I think I may still have
  6. Jack, I don't know how long it took you to type that out at the next CLA summit. Thank you. I will try those things, some I have done (or already do as best practice working procedure). The codebase is quite large, 140 classes, approx 4500 VIs excluding vi.lib, so this could all end messily
  7. Yeah, did try an Always Copy, but it did not help. I will try putting them in other places like you suggest.
  8. All my dislikes are purely aesthetic, I think they look quite cartoony and waste way too much space. I pretty much use System controls exlusively for GUI front panels.
  9. Hi all, I have had some really weird behaviour in my app over the last few days. The problem seems to be related to several others mentioned on LAVA where the contents of a class are not being correctly updated via a bundle. My current problem goes something like this: I have a sub-VI where I update some members of a class, and then the class is used downstream in the calling VI. If I probe the class wire directly before the exit indicator in the sub-VI, the contents are correct, but if I probe it downstream (immediately after returning from the sub-VI) one of the member elements is n
  10. Me! I pretty much use strict for everything except GUI typedefs/controls that I want to customise a little bit. I suppose I use strict over normal typedef just out of habit. What silver controls? I don't see any silver controls on the pallette. I think you are mistaken, silver controls do not exist. System, Modern and Classic are all I can see on mine
  11. Well, hopefully my cRIOs are stable now. I have nine of them running a long term test, with uptimes of about 60 days so far, so hopefully my issues are resolved. Next time I will definitely go the time sync route.
  12. That I think is the root of my problem, I was *not* using 1588 (which I presume you set up in the RT system ini file?), rather manually getting time updates over UDP and manually adjusting the system clock (i.e. in code). Doing this too quickly (i.e. more than a couple of times a minute) seemed to cause my RT code to crash horribly (some bits were still running, but not most of it). This happened on a bunch of new cRIO-9024s
  13. Thanks Lewis, I definitely should have spent more time getting things actually working 100% rather than documenting and making things tidy (which, unfortunately for this scenario is, is just a habit of mine).
  14. I recently had some nasty issues with doing something very similar. I have reasonably solid evidence that setting the system clock too often could case the cRIO to crash. I was trying to sync the cRIO clock from a master PC. Something I wanted to try (but never got around to doing it) was to use a time sync protocol rather than "manually" doing it in the RT code.
  15. Thanks James, congrats on yours too.
  16. Got the result of my CLED exam today, passed
  17. I have several legacy applications that all use the web server to display snapshots of their FPs. The existing application was written in LV8.5 and I am in the process of porting it to LV2013. I have noticed that every time I build my application the niwebserver.conf file in the build directory gets overwritten by the one from the <LabVIEW> directory. Does anybody know of a simple way to stop this from happening? I have tweaked my niwebserver.conf file for the specific application, so I would rather not replace the one in <LabVIEW> with this new one. I am thinking about doi
  18. Ok thanks Michael, just glad to know I am not going crazy
  19. Hi Admins, I have recently started to see adverts in this forum, is this expected? I am a premium member so I figured these would stay hidden (and I am reasonably sure they used to).
  20. Bingo! It just took me a bit of time to realise it :-) For a long time I resisted putting everything in a single loop as having the Event Structure in a separate loop kinda fools you into thinking you can respond quickly to events, but you cannot really as you say because the lower loop is tied up doing something else.
  21. Pretty much all of my existing code used this two loop structure per module as well, but I have recently seen the light (drunk the kool-aid?) and swapped over to a single loop with the Event Structure just as one "step" of the module (now I like to call them Actors ;-) .. Takes a bit of thinking about as any long running processes (i.e. stuff happening in another diagram) can really scupper things, so now you need to do things like spawn off workers etc.
  22. Every time I resized the screen or dragged my browser (chrome) window from one physical screen to another the hangout restarted for me from the beginning of the recording, but it was quite easy to just click the progress bar to catch up to the live broadcast.
  23. This is what I used to do (using SVN) as I was scared that moving files using the LV project would break my VCS. Actually it turned out to be a far bigger pain constantly re-finding VIs in the LV Project. Now I perform all file operations using the Project window and I just rely on the VCS tool (I use Hg now) to figure out what has gone wrong. Sure you may lose some of the file "history", but at least most of the time the LV Project does not get confused.
  24. How big are the images you are writing to disk? I would have thought that the bottleneck in most systems would be the speed of physically writing to disk, not the passing around of the data in the software. Modern CPUs/RAM can shovel ridiculous quantities of data around if the software is architectured properly.
  25. Dequeue with -1 timeout should use virtually zero of your CPU resources. You can rely on this mechanism on RT the same as your do on the PC. RT-FIFOs do have the option where read and writes are polling (using CPU) or blocking (CPU sleeping), but as you state you are using queues and not RT-FIFOs then this does not apply to your application. Is it possible that perhaps something else is going on that periodically causes a big CPU spike? If it is a quick event you may not notice it in your CPU profiling code, but some other bit of code may be affected. The other culprit could be ti
×
×
  • Create New...

Important Information

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