-
Posts
207 -
Joined
-
Last visited
-
Days Won
7
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by bmoyer
-
ROI change event on image display control
bmoyer replied to Antoine Chalons's topic in Machine Vision and Imaging
QUOTE (Antoine Châlons @ Feb 6 2009, 07:46 AM) I just realized that my application has the same "bug". It's pretty obvious that it didn't work - because I automatically popup a dialog when the ROI change event occurs - but to a new user this could be confusing. Bruce -
QUOTE (Vende @ Feb 5 2009, 09:50 AM) If you are using NI-VISION then you can use the IMAQ Cast Image.vi. You probably don't want to modify the existing Image Ref, in that case you need to wire in a new Image Ref to the Image Dst input of this VI. Bruce
-
QUOTE (Vende @ Feb 5 2009, 07:58 AM) Or you need to down-convert your Image Refs to the proper format before storing to AVI (it can only handle U8 grayscale or 32-bit RGB images). Bruce
-
You may want to do a test to see if it is acquiring the same image more than 1 time. I thought this is the way that it worked - if a new image is not available since the last time, to just return the same image. But I could be wrong or this functionality could have changed at some point. It's probably worth comparing the Acquired Buffer Number output of the IMAQ Grab Acquire.vi to the previous iteration (using a shift register in a while loop) to make sure this isn't the case (at least in your test code). Bruce
-
QUOTE (Antoine Châlons @ Jan 27 2009, 11:53 AM) I've investigated this further and I think the label gets misaligned when changing the justification of the axis label text. I was able to perform these steps to recreate the issue: 1. Select the y-axis label text. 2. Click the fonts toolbar button, select "Justify"-->"Right". 3. Type additional characters to make the label a longer length. 4. Change it back to left justify and then delete characters some characters and it becomes misaligned. I guess you could just reverse the process to get back but this is difficult if you don't know the exact steps taken. Bruce
-
QUOTE (Antoine Châlons @ Jan 27 2009, 12:31 PM) Ditto! I see the same issue in 8.5.1 (it only moves 1 pixel up or down), but it still solved the problem I was having. The first time I clicked the arrow it snapped the label back to the center which was exactly was I was trying to do! Thanks, Bruce
-
I have a graph that is formatted almost the way I would like it although the Y-axis label is not centered. I wasn't able to move the label and I haven't been able to find a place to reset the position. How do I put the label back in the center of the axis (VI with graph only attached)? Thanks, Bruce LV 8.5.1
-
The LabVIEW installer does not install the Motion and Vision subpalettes because they are driver installations. If you have the Device Drivers CD, install the NI Vision Acquisition Software (VAS) 8.6 drivers and since LabVIEW 8.6 is already installed it'll add the subpalettes into your LabVIEW 8.6 install. If you don't have the Device Drivers DVD/CD you can download VAS from the NI website. QUOTE (javalite @ Jan 9 2009, 11:56 PM)
-
The loop only executes 1 time because you have the loop set to stop when the current time is <= 110. On the first iteration it is 0 which is less than 110 so it stops.
-
QUOTE (jcarmody @ Nov 24 2008, 10:59 AM) Here's an example of a scrolling LED sign on NI's website. You can set it to whatever text you would like to scroll. http://decibel.ni.com/content/docs/DOC-1180
-
Programmatically Detecting if .NET is installed
bmoyer replied to bmoyer's topic in Calling External Code
Thanks, I created a VI that uses the registry to get the folder that .NET is installed in, and then using info from a MS knowledgebase article (http://support.microsoft.com/kb/318785) to determine the versions installed (I currently don't care which version at this point but it may be useful later on). Bruce QUOTE (PWilliams @ Nov 18 2008, 09:58 AM) -
Hello everyone, I have a project where I use a .NET call to automatically determine version information of the software (for display purposes in the About box). The problem I've come across is that sometimes, people have not installed .NET on their computers (I think it's considered an optional Windows update) and the program calls the .NET functions the program gets forever stuck in the call and freezes up the program. Is there a way to determine if .NET is installed programmatically? I should probably just list this as a requirement for the program to run properly but I would still like to prevent the program from freezing up. So far, my use of .NET hasn't been critical to my program so I could even remove the .NET calls but I really don't want to go down this road if I don't have to. Thanks, Bruce
-
Search and Remove "Suspend when Called"
bmoyer replied to bmoyer's topic in Development Environment (IDE)
QUOTE (Dan DeFriese @ Nov 14 2008, 02:52 PM) Thanks! That did it! I have no idea why a utility like this isn't floating around. I thought I would've come across something like this by now. I attached a VI illustrating what was in your diagram (for others). I ran it on a project with 1651 VIs and it ran in under a second. Thanks! Bruce -
Is there an easy way to find VI's that have the option "Suspend when Called" set? I often set this in certain VIs while debugging but then forget to disable it and it interrupts the test later on when I don't want it too. I know there's a Breakpoint Manager in newer LabVIEW versions and also the ability to search for breakpoints, but I haven't found anyway besides looking at each VI individually when it comes to Suspend when Called (I know that the VI hierarchy also shows an exclamation point on the icons of VIs with this enabled, but this is very difficult to search when dealing with 100s of VIs). Thanks, Bruce
-
In my experience a hardware "guy" will first blame the software before admitting fault, in this case, the software "guy" (me) incorrectly blamed the hardware "guy". My utility loads a binary calibration file and then sends the data to the device. I incorrectly assumed that the Read from Text File function would leave my data unaltered (similar to the Read Characters from File function (now obsolete in newer LV versions) which has this EOL conversion defaulting to off), but it defaults to convert EOL=on (you have to right-click the VI to see this parameter, it's not an input like the other function). Even better, I guess I could/should use the Read From Binary File function which doesn't have an option at all for this conversion. Thanks to all who replied for their valuable insight! Bruce
-
QUOTE (jdunham @ Oct 7 2008, 01:44 PM) The "Serial Settings:End Mode for Writes" parameter looks promising. I will try setting this to "None" tomorrow and let you know how things go. Thanks, Bruce
-
QUOTE (ASTDan @ Oct 7 2008, 09:43 AM) Wouldn't this reverse the problem? If this is the case, wouldn't that change 0x0a (\n) into 0x0d (\r)? When I looked into the termination for the VISA Configure Serial Port (Serial Instr).vi, it's setting the "Message Based Settings:Termination Character" property and the help on this property says "This property specifies a character that, when read, causes a read operation to terminate." In my case I am writing data. Any other ideas? Bruce
-
Hi everyone, I have a utility that I developed using LabVIEW to communicate with a device using VISA over RS232 and there is a mode of the device for sending calibration data which takes data in a binary format. What I have found is that some of the data is being converted before it arrives at the device (using a serial port monitor) - mainly the 0x0d (\r) values are being converted to 0x0a (\n). I found a VISA property under the "Serial Settings" submenu called "End Mode for Writes" but the default for this property is "None" so this property shouldn't have an effect on my data (but I will give it a try). Has anyone seen this type of behavior and worked out a fix? Many thanks, Bruce
-
QUOTE (Neville D @ Sep 8 2008, 02:10 PM) Why wouldn't this info have been posted on the NI forum? I guess what you're saying can be "boiled down" to "use at your own risk". Someone should accurately describe any known issues so that people are properly warned before wasting their time implementing/debugging this if there is in fact a problem. Bruce
-
Take a look at the NI Forum: http://forums.ni.com/ni/board/message?boar...ssage.id=335445 It seems to be doing exactly what you are doing. It encodes and decodes a JPG serial string. Bruce
-
Is this a true JPG file that can be loaded in a standard viewer program? If so the Read JPEG File.vi is the place to start (in the Programming...Graphics & Sound...Graphics Formats palette). Could you describe your application in a bit more detail?
-
The OpenG utilities will do this (www.openg.org). There's a VI call File Info__ogtk.vi that allows modification of all kinds of file parameters. A description is at: http://wiki.openg.org/File_Info
-
Try using a sequence structure with 2 frames. Initialize in the first frame, and then put a Wait (ms) function in the 2nd frame to have the code wait for a certain amount of time after initializing. ActiveX and dll calls are sometimes very difficult to work with because they'll freeze up your entire program if the ActiveX or dll themselves are buggy (because they run in the User Interface thread). Bruce
-
I've held off installing Firefox 3 on my computers (except for the first PC I tried) because of issues that it has with Hotmail that Firefox 2 did not have. Bruce
-
grab at high frame rates and save
bmoyer replied to dispossessed's topic in Machine Vision and Imaging
QUOTE (dispossessed @ Jun 5 2008, 10:00 AM) Although not the worst example I've seen, it certainly is not the best. Try looking at the LL Sequence.vi found in LabVIEW under the Help-->Find Examples... menu. Click the Browse tab, and select the Directory Structure option. Then find the IMAQ folder and under this is the IMAQ Low Level.llb where you'll find the LL Sequence.vi. Add to this VI the PNG saving portion of your example. As for not knowing how long you need to acquire, it is fairly difficult to allocate memory "on the fly" without losing frames and very complicated. The best thing to do it to is to allocate a lot of frames and then terminate the sequence by using the IMAQ Stop.vi (you'll have to have a parallel loop monitoring the abort button). In this parallel loop you can also monitor the progress by calling the IMAQ Status.vi to get the current frame. In a nutshell, what you are trying to do is fairly complicated and may take a lot of time to develop. Bruce This question is also in the NI Forums at: http://forums.ni.com/ni/board/message?boar...d=77174#M328986