Jump to content


  • Posts

  • Joined

  • Last visited

About hfettig

  • Birthday 03/21/1972

Profile Information

  • Gender
  • Location
    Gatineau, QC, Canada

Contact Methods

LabVIEW Information

  • Version
    LabVIEW 2017
  • Since

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

hfettig's Achievements


Newbie (1/14)



  1. I have an automated build server (Jenkins) that uses the LabVIEW IDE to build my code every time I commit it into SVN. This works well most of the time but every so often it gets stuck on start-up of LabVIEW because the recovery dialog pops up and waits for user input. Is there a way this can be suppressed? I was wondering if starting the automated build version with a separate INI file would solve this problem. Any ideas? Heiko
  2. Actually this was taken during the NI Week 2009 'Challenge the Champions' game :-) I am still itching for a rematch. But I think next year we'll be on opposite teams ;-)
  3. Actually it is still a problem in LV 2009 SP1. It works fine in the IDE but does not work in the RTE. I did find a workaround. To get the Pane coordinates you can subtract the Screen coordinates from the top left corner of the Panel Bounds and add the pane Origin. Heiko
  4. Did you ever find a way around this problem? I can convert the horizontal coordinate without any problems but the vertical seems to depend on whether the toolbar is on, etc as well as on the windows theme. I am trying to convert the screen coordinates that I get from Acquire Input Data.vi, i.e. reading the mouse position, into Panel and then Pane and then XY Graph coordinates. Heiko
  5. I have an application that requires me to record mouse events (xy location vs time) and synchronize that with DAQ data that is acquired in parallel. I get the mouse events with the system tick counter as a time base and the DAQ data with the system timestamp as a time base. To synchronize the two I am calling the GetTickCount and the GetDateTime functions in a sequence frame and use those values as the reference points for my relative time base. Does that make sense? Is there an easier way? We are seeing a 500ms delay between DAQ and mouse data and have no idea where it comes from.
  6. Well, I made it work. Brute force style. I noticed that it worked every time that I ran through it in execution highlighting. So I added a 500ms delay after each VISA command and now it works fine. I am glad that this is not a time critical application though :-)
  7. I have a strange problem with an Agilent 8504B instrument. Here is what I do: Open VISA resource Clear VISA buffers Write two commands in one message (Data Format, and Send Plot Data) Read until all plot data has been received Clear VISA buffers Close VISA resource This works perfectly the first time I execute this. Sometimes it even works multiple times. Mostly though it hangs the second time I execute it. Specifically it hangs in the VISA Write command. On the instrument I can see that it is stuck in listening mode. I can wait forever and nothing happens The VISA write does not time out. When I try to close my program LV hangs. If instead I power cycle the instrument, the VISA write function exits with an error. Once I power cycle the everything works again for one time. I replaced the VISA API with the GPIB API and got the same results. Any ideas what could be happening here?
  8. The way I have designed my application now my seem a little convoluted but it serves multiple purposes: I have a main controller QMH (Queued Message Handler) on the RT, which keeps all the information needed by the control system. I have a TCP/IP Server loop which just sits there waiting for connections. When it gets a connection it spawns Worker task (another QMH) that takes the TCP data, formats it into the QMH Message type and puts it into the controller queue along with the name of its own queue. The controller QMH interprets the message, and puts the response onto the TCP Worker queue, which sends it via TCP/IP back to the client. This allows for concurrent connections from multiple web services. In addition the TCP/IP interface can also be used to interact with the controller from the host PC. All through one simple interface.
  9. I find myself re-doing the same steps very often when I create new projects, libraries, and classes. E.g. when I create a new library the first thing I do is add a private and a public folder and set the access scope. It would save me a lot of time if I could change the template used in the 'New Library' action to conform to what I want. Yes, I do know that I can create my own templates and store them in the templates directory, but then I have to go through the 'New...' dialog. I don't mind that for more elaborate templates that I might use from time to time but for things that I use a lot it is more convenient to right-click in the proper location in the project and select 'New -> Library'. Any ideas?
  10. I am designing a control system that will run on a cRIO (or sbRIO). The Main Instance will run the control system and communicate with the Host PC, however, there will also be an iPod Touch based user interface that will communicate with the cRIO using a Web Service that is deployed on the cRIO. Since the Web Service will have to modify some of the data used in the Main Instance I was wondering what the best way of exchanging data between these two application instances would be. If this were two VIs in the same Application Instance I would use queues and notifiers but is that possible across instances? I guess I could use network shared variables deployed on the cRIO but I was wondering if there was another method.
  11. Hi folks, I have used LabVOOP before, mainly to implement instrument drivers with base and child classes. Now I am looking into creating my first LabVOOP architecture and I have a few questions about some implementation details regarding the by Value functionality of LabVOOP. Say I have an object called Farm that contains an object called ListOfPigs, which handles an array of Pig objects. Now the Pig class has a method called RecordPiglets(BornAlive, StillBorn, Mummified). In C# I would call that function like this: Farm.Pig[tag].RecordPiglets(7,0,0) I have no problem getting to the Farm.Pig[tag] point in LabVOOP, i.e. extracting the Pig object in question. But if I now run the RecordPiglets method on that object I will have to update the Pig object in the ListOfPigs object, and then update that object in the Farm object. I could do that by creating an UpdateObject for every GetObject method in every class. However, that seems a bit unwieldy. Is there an easier way? Thanks for your help, Heiko
  12. Sorry, I thought you were talking about the auto scaling. If the auto-scaling is turned off the scale markers should not change and therefore the left edge of the plot should not move. Never new about the 'Auto Adjust Scales' property. And you are correct there is no property for that in LV2009 either.
  13. You can do that programmatically. You can set the format string for the scale markers: Y Scale > Format String You can find the autoscale property here: Y Scale > Scale Fit
  14. Unfortunately -1,-1 only selects that empty cell in the column header row right above the row header column.
  • Create New...

Important Information

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