Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by JPrevost

  1. I haven't done 3-axis accelerometer daq and graphing but I have done 2-axis. It was a custom circuit using an inexpensive AD ic which went into an A/D circuit which went into the computer through rs232. Save that vi in v7.0 for me so I can see what you have so far. Do you want to display all 3-axis in a 3D chart or just line chart each axis as a 2D line chart? With my plotter/data logger I simply displayed the data in an XY plot and used some history to plot the a trail of points. If you ever saw the "G-meter" in a Nissan Skyline GTR it looked just like it. Only it was displayed on a much l
  2. Jason, thank you for the reply. I should have been more specific but yes, I think it would be nice if LV could use DirectX if it isn't currently doing so. What is the 3D graphing doing when "Use3DHardwareAcceleration" is set to True? Why is it the only indicator with this property? I have an application that displays data rather fast and from an older post it was discovered that the graphics were all being rendered in software mode . Is this only for the 2D controls and indicators? Having some kind of option for the programmer to design software for a specific platform would be nice.
  3. I would be really happy if LV start supporting hardware video acceleration. Sometimes we write programs ment for a specific OS, like Windows for example, and we're working with older computers that have weak processors but decent under-utilized graphics cards. It would be awesome to have this support for those of us with large applications that don't want to go with purchasing active-x controls (which aren't much better). The majority of computers now-a-days have video acceleration so when the program is run local (often is in my case) then let it use the muscle it's got. Right now I feel lik
  4. . I didn't know you could wire a string to the resource name terminal of the serial open subvi. :worship: That's the set up MY system, not the system the compiled program is running on! I have no trouble with the alias names... it's the end users that get confused.
  5. Update: Hasn't crashed since. Thanks for the suggestions!
  6. Okay, I understand how to do that but I'm still left with trying to display to the user the friendly names as a control for the config serial. Sure I can get the names but how to list them and open the serial port is where I'm stuck.
  7. Tell me what you've got, what you want to do and maybe I can be of some help. I've worked with custom hardware and OEM ECM hardware. CAN would be a pain if you're not getting direct support from the ECM manufacturer and so I would recommend custom NI hardware. The best thing you can do when working with IC engines is to know what you want to do before buying anything. Certain testing requires very fast daq, some things like tuning can be done with relatively slow daq.
  8. Okay. I'll try it out. BTW, version 7.1 > 7.0 ... still can't open
  9. <-- version 7.0, not 8 but yes, I follow what you're saying. Last week was the first time I did what you just said with the cluster constant labeling. I'm thinking about using that for the configure part of of my program only I don't like the idea of having a configure.vi that requires passing a huge cluster to write but then when reading, having to read the WHOLE cluster (over 40 elements) just to read 1. This is why I'm still using local variables and sequence structuring to initially read the cfg file in, update the controls, then read them all over the program using local variables. Do
  10. You mean, after I parse the data down into bits I should build them into a new array, pass that into the case structure and pull out only what I need that way? That could work except that every time I add something that is imbetween (indexed all over the place) I would need to rewire everything . If it's faster I'll do it. I'm just trying to make the program maintanable at this point and will be adding to it in the future as updates to the hardware get released. What do you think about the subpanel. Is it bad practice to use sub panels if you only plan on loading 1 vi?
  11. Labeling an indexed array item... notice how it has no name is defaulted to "numeric" for every item. Only if I wire it to an indicator does it get a name .
  12. <-- dealing with 200+ items that are used by the user to help control the system (engine fuel/spark controller). Passing data comes from reading in a bunch of bytes from the serial buffer and then parsing out the bytes to subvi's that do the conversion work. Some bytes are broken down into bits and this is where the wires start to get crazy. I have over 170 bits that will eventually be passed on to the user in some form or another. Currently I'm working with about 100 and the wires are getting a bit out of hand. Some of the flags aren't used for anything special and so they are broken out
  13. I thought FG were used to talk between vi's where as locals are used to talk within a single vi but multiple loops. I have no need to call the locals globally. Right now I'm using a local as a place holder. While data is being played back a slider is indicating the seek location of the file. When a user clicks on the slide I have it setup so it writes the new value to a local which is then called by a queue in the loop that does the file seeking. If that isn't clear I'll post images of the code. As for naming a indexed array item I'm talking about giving that single element a name without wir
  14. I'd like it if there were local's that didn't have a front panel item to hide. I use them infrequently but in large applications they seem to be the best way to sync parallel loops. I also think there should be a way to label an indexed array item. There is no way to do this right now in 7.0, maybe in 7.1?
  15. Thanks. I guess I'm running into something else as my problem, not the OpenG VI's. Apparently the paths get all screwed up when dealing with vi's vs compiled exe's. I was changing the extension from .vi to .cfg for the config file but it wasn't working with .exe, oh well, this is going to waste my time figuring it out . As for the subpanels, this is where I would bundle the many (20+) boolean data and send it to the vi that's embedded in a subpanel. From your reply, it sounds like bundling anything into clusters does do a hit on the performance... so I'll avoid it. Now the question goes back
  16. Maybe I'm missing something easy but how does one go about displaying only found and avail serial ports to the user in a nice "user friendly" name like COM1 instead of ASRL1::INSTR. Thanks in advance. I did user the; [ALIASES] Alias0 = "'LPT1','ASRL10::INSTR'" Alias1 = "'COM1','ASRL1::INSTR'" Alias2 = "'COM2','ASRL2::INSTR'" Alias3 = "'COM3','ASRL3::INSTR'" Alias4 = "'COM4','ASRL4::INSTR'" Alias5 = "'COM5','ASRL5::INSTR'" Alias6 = "'COM6','ASRL6::INSTR'" Alias7 = "'COM7','ASRL7::INSTR'" Alias8 = "'COM8','ASRL8::INSTR'" NumAliases = 9 to get those friendly names but now they're AL
  17. So here I am still streamlining my program to be smaller and easier to modify. First question should be easy; do clusters effect the performance of a program? Example; Passing multiple wires into a case structure vs. putting them in a cluster and while in the case, unbundle by name to an indicator? Second question, subpanels. When is it a good idea to use them. My program has an area that displays boolean data as FP LEDs and they only get written too. Would it benifit me in any way to make a seperate VI for them, use a cluster, and call the VI into a subpanel? I wish I knew more about how cer
  18. 4096/256=16 bytes which might be a limitation in supporting a wide array of hardware and OS. Although it's odd because scrolling isn't anything new. http://www.displaymate.com/infodmm.html That isn't an answer but it might be something to do with the OS support. I wonder if this is the same limitation in LV8.
  19. I'm wrong on one account. This probably won't be my best program but it is my first. Key word being my. The only other "program" I've written in LabView was some crap that did nothing more than subroutine, woops, subvi "work". My first intro to LabView was v6 back in 03 where I was in charge of setting up an enging dc electric engine dyno in the ME department of Ohio State University... I was a student on the FSAE team. Some student before me wrote a program that datalogged but it was poorely written. I didn't have any documentation and just started playing around with it after class every da
  20. I'm looking at using queue's soon. I like how the loops wait until there is something in a queue. This is by far the best part about them. I'm using a queue to take data from either the serial port or a file, if the data is checksumed as OK it goes into the queue, if not, empty case . Thanks for that suggestion about using queues to pass work around. Right now I've only got it passing data between 2 loops, the "producer consumer" architecture only the producer isn't an event structure.... yet!
  21. Thanks for the reply and the direction. I'm working on always improving this code. It is my first large application and it will be my best! As for the code size. I shouldn't have said 1mb. That's just the exe after building. As you know I've been battling the graphical side of LabView. That's my biggest hang-up because when I time the VI's they're all running with great efficiency. I've converted a lot of my "make the wiring diaghram smaller vi's" to subvi execution, this doesn't seem to register any measurable gains but I'm sure it's there if I look hard enough. I've got a bunch of local var
  22. What should I do to speed things up? I'm only using com ports 1-4. I don't plan on using anything but the serial port. It's funny you mention this file. I was here last week to create the alias naming after a beta tester said they didn't like the name of the com ports being all "fancy shmancy." My file contains; [VISA-CONFIG]MinAsyncCount = 512SharedMemSize = 131072MaxNumResources = 256NumSystemSems = 512NumProcessSems = 256AlwaysRefresh = 0UnloadPassports = 0[GPIB-CONFIG]DisableIbListen = 0SRQPollTime = 500EnetConnectTmoSec = 6Board0 = 1Board1 = 1Board2 = 1Board3 = 1Board4 = 1Board5 = 1Bo
  23. I currently have 12 and am adding more. Is this "safe" and within good programming priniciple or am I bloating already? Having such a large program (over a meg now) is starting to really tax my concentration. Everywhere I look there is something else I need to do or test out. I'm not even adding features! Things like proper file handling (currently have 2 read, 1 create/replace/append, 1 read/write, 1 create) are really taking their toll. Because for each file there are different cases. Eg; If the user doesn't select a bin file I have to disable the learning function and disable/grey some of
  24. Every once in a while I get an error in my program when in develop mode. The program has a VISA resource name control on a tab and the error happens when I've been working elsewhere and then click on the tab containing the VISA control. The whole computer hangs up a little the first time I try and go to the configure tab. I have a feeling that LabView is looking at the avail resource names to display for the user and this is why it hangs up. Is there a way to have LabView poll the resources on application startup and not when the control becomes visible? The error; nimax.exe - Application Er
  • Create New...

Important Information

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