Sensor Mapping Express VI's performanc​e degrades over time
I was attempting to do a 3d visualization of some sensor data. I made a model and managed to use it with the 3d Picture Tool Sensor Mapping Express VI. Initially, it appeared to work flawlessly and I began to augment the scene with further objects to enhance the user experience. Unfortunately, I believe I am doing something wrong at this stage. When I add the sensor map object to the other objects, something like a memory leak occurs. I begin to encounter performance degradation almost immediately.
I am not sure how I should add to best add in the Sensor Map Object reference to the scene as an object. Normally, I establish these child relationships first, before doing anything to the objects, beyond creating, moving, and anchoring them. Since the Sensor Map output reference is only available AFTER the express vi run. My compromise solution, presently, is to have a case statement of controlled by the"First Call" constant. So far, performace seems to be much better.
Does anyone have a better solution? Am I even handling these objects the way the community does it?
EDIT: Included the vi and the stl files.
Message Edited by Sean-user on 10-28-2009 04:12 PM
Message Edited by Sean-user on 10-28-2009 04:12 PM
Message Edited by Sean-user on 10-28-2009 04:16 PM
Solved!
Go to Solution.
Attachments:
test for forum.vi 105 KB
chamber.zip 97 KB
I agree with Hunter, your current solution is simple and effective, and I can't really visualize a much better way to accomplish the same task.
Just as a side-note, the easiest and simplest way to force execution order is to use the error terminals on the functions and VIs in your block diagram. Here'a VI snippet with an example of that based on the VI you posted. (If you paste the image into your block diagram, you can make edits to the code)
Since you expressed some interest in documentation related to 3D picture controls, I did some searching and found a few articles you might be interested in. There's nothing terribly complex, but these should be a good starting point. The first link is a URL to the search thread, so you can get an idea of where/what I'm searching.You'll get more hits if you search from ni.com rather than ni.com/support.
http://search.ni.com/nisearch/app/main/p/q/3d%20picture/
Creating a 3D Scene with the 3D Picture Control
Configuring a 3D Scene Window
Using the 3D Picture Control 'Create Height Field VI' to convert a 2D image into a 3D textured heigh...
Using Lighting and Fog Effects in 3d Picture Control
3D Picture Control - Create a Moving Texture Using a Series of Images
Changing Set Rotation and Background of 3D Picture Control
Caleb Harris
National Instruments | Mechanical Engineer | http://www.ni.com/support
Similar Messages
-
How can I view the color ramp in LV 8.6 sensor-mapping express vi during run-time?
Hi All,
I've been using the sensor mapping express VI that is new in LV 8.6. When I place the express vi in my block diagram of my main vi I get the normal 'express' style configuration dialog. As a part of the configuration there is a really nice 'color-ramp' control where I can configure ranges; max; min; out -of-range colors and so on.
What I would like to do is have the color-ramp control appear as a control on my main vi's front panel. After I convert the express VI to a regular VI I can't seem to find the connection to this control. Although I have found the sub-vi that the expressvi uses in an .llb here:
C:\Program Files\National Instruments\LabVIEW 8.6\vi.lib\express\express 3d picture\SensorConfig.llb
Can anyone point me in the right direction to do this? I get so deep into all the sub-vi's I end up getting lost-haha!
Thanks - PaulThe characteristics of the color ramp (max, min, colors) are all part of a "colorrampstuff" cluster that is inside the Sensor Mapping express VI. In order to change those values for the express VI, you will need to create a custom express VI that provides you with inputs to this cluster. This is done similarly to creating a subVI. Then you can use a variety of methods to write to the elements in this cluster and change them while the program is running.
It may be easier to place numeric controls on the front panel that write directly to the elements in the cluster than to use a color ramp as a control.
Will
Certified LabVIEW Architect, Certified Professional Instructor
Choose Movement Consulting
choose-mc.com -
Show/Hide sensor in sensor mapping express VI
Hi all,
I'm using and modifing Sensor mapping express VI to develop my application.
I tried to hide/show sensors but without success.
Is there a property node or invoke node to show/hide 3d scene objects?Hi Fourier,
I don't think there is the possibility to hide/show sensor in Express Sensor Mapping.
While you configure your express VI you need to select sensor in order to map to a model, and reconfigure the Express VI again non in Run-time in order to add/remove sensor.
I'll try to look for a solution, and if I'll find it, I'll forward it to you. But I didn't find any helpful informationsyet .
Best Regards.
Claudio
NI ITALY
AE Dept. -
LabVIEW crashed while loading Sensor Mapping Express VI
Dear all,
I've just installed LV8.6 evaluation with all the toolkits available in the DVD. I have two problems now, one major and one minor:
1. Whenever I tried to use the Sensor Mapping Express VI, LabVIEW crashed with the pop-up window saying that "LabVIEW 8.6 Development System has stopped working". When I expanded Window's error pop-up, the message as can be found below. The same error occurs whenever I tried to load the sensor mapping demo I downloaded from the Developer Zone. I'm using Dell Inspiron 640m, by the way. When I tried with another Dell laptop (Dell Vostro), everything was alright.What I've done so far is to uninstall all NI's softwares inside this laptop, defrag, clean the registry and then reinstall LV 8.6 again but to no avail.
Error message:
Problem signature:
Problem Event Name: APPCRASH
Application Name: LabVIEW.exe
Application Version: 8.6.0.4001
Application Timestamp: 4862fd60
Fault Module Name: ig4dev32.dll
Fault Module Version: 7.14.10.1147
Fault Module Timestamp: 457ef11c
Exception Code: c0000005
Exception Offset: 000063b2
OS Version: 6.0.6001.2.1.0.768.2
Locale ID: 17417
Additional Information 1: da97
Additional Information 2: 7a880e72b9f1636f81b04947e06e5c6a
Additional Information 3: 09b4
Additional Information 4: 56e138085db0c350e7bf46ba31a7691f
My computer specs are:
OS: Windows Vista Home Basic
RAM: 1.5 Gb
Harddisk: 10Gb free (after LV is installed)
Processor speed: 1.6 GHz Dual Core
Anti Virus: Kaspersky Internet Security
2. This is minor but still an annoyance. Whenever I tried to load my newly installed LabVIEW 8.6, it takes about 10-15 minutes before I got the Getting Started window. This includes the 5 minutes waiting period before I got the window stating how many days left for evaluation. This wasn't the case when I used LabVIEW 8.5.1 (even when every toolkits and modules are installed). Why so long?
I've asked the local NI engineers but they are also clueless.Hi Lan,
Thanks for your post and I hope your well today.
1) You specs seem okay.
Minimum
Recommended
Processor
Pentium III/Celeron 866 MHz or equivalent
Pentium 4/M or equivalent
RAM
256 MB
1 GB
Screen Resolution
1024 x 768 pixels
1024 x 768 pixels
Operating System
Windows Vista/XP/2000
Windows Vista/XP
Disk Space
1.6 GB
1.6 GB (Note -- Includes default drivers from NI Device Drivers CD)
There has been some record of issues with the Sensor Mapping Express VI.
Does it crash when you place it down on the block diagram? Or when you click to move it? Or when you run it? Does this happen when you load a model into it?
However, as it seems to be an instance of your Dell Inspiron 640m, Im not sure what we can suggest - except to ask how the specs compare between the two machines?
Some advice for Dells,
#) So that LabVIEW can function properly with the video hardware, it is
occasionally necessary to reduce the video acceleration. You can do
this on Windows 2000 by right clicking on your desktop » Properties » Settings » Advanced » Troubleshooting.
Start with the second setting from the right, "Disable bitmap and
cursor acceleration.", and work your way left if the problem persists.
#) Number of other issues with versions of Dell video drivers.. upgrade?
2) If this is a new installation that is slow then you may be having issues with specs, however there are a few things to try:
a) Defrag Drive
b) VLM licensing? If so, there is a timeout of a view minutes... is your version licensed currently?
c) Clean your registry
d) Check LabVIEW ini file to make sure the tasks are all necessary and the paths are local.
e) Repair LabVIEW finally
Hope this helps make some progress,
Kind Regards
James Hillman
Applications Engineer 2008 to 2009 National Instruments UK & Ireland
Loughborough University UK - 2006 to 2011
Remember Kudos those who help! -
I have sometimes had movies degrade over time. I have one specifically that I am looking at now that is a gray scale microscopy movie was made in 2006 with Cinepak and looked fine when first made. Now the first frame and several other frames (but not all) are dramatically posterized to a uniform gray. Sometimes I have seen a different degradation where you get blocks of pixels that turn uniform gray was if you reduced the resolution of the image. Is this a Cinepak issue or a Quicktime issue? Is there any way of recovering the data or preventing it from happening?
Grandpa,
Sadly, writable media DOES degrade over time - sometimes after a year or so. Cheap media (and sometime not-so cheap media), improper storage conditions (hot, sunlight, high humidity) and high burn errors during burning (result of high burn speeds over 4x) can all contribute to degradation.
Roxio's new Toast Titanium 8 now includes the ability to recover data from some damaged discs - it's probably worth trying.
Problems with the long term storage of digial images remain digital imaging's 'diry little secret' - see http://www.frontiernet.net/~fshippey/archiving.htm for an article I wrote on the subject.
F Shippey -
160N Version 1 - Wireless Range Degrading Over Time
Hello,
I have owned a version 1.0 160N now for about 5 months and all was well with everything. The range was better than any router I owned in the past until about three weeks ago when connectivity to my furthest outlying wireless adapters began to get worse. It has been slowly degrading to the point that I cannot get a reliable connection unless the computer is within 30 foot clear line of sight. Symptom is that PING to the router is not reliable and Web pages will not load even though the connection is made and maintained. I was wondering if any others have experienced this degradation in range over time. It is to the point now where I may ditch it and go get a 54G if I can find one. Will a hard reset and configuration reload possibly solve the issue. I also see that a firmware upgrade is available that is supposed to "improve wireless range" is available for the 1.0 version. Has anyone done this upgrade with ill effects or a noticiable increase in range? It is a total pain to have reconfigure all the MAC filtering and Port Forwarding but at this rate I will soon have a shiney, sleek, black doorstop. Thanks for any insight you can provide.Yes you can Upgrade the router's firmware as it would improve your wireless range...
Download Firmware 2.89MB...
Follow these steps to upgrade the firmware on the device: -
Open an Internet Explorer browser page.In the address bar type - 192.168.1.1
Leave the username blank & in password use admin in lower case...
Click on the 'Administration' tab- Then click on the 'Firmware Upgrade' sub tab- Here click on 'Browse' and browse the .bin firmware file and click on "Upgrade"...
Wait for few seconds until it shows that "Upgrade is successful" After the firmware upgrade, click on "Reboot" and you will be returned back to the same page OR it will say "Page cannot be displayed".
Press and hold the reset button for 30 seconds...Release the reset button...Unplug the power cable from your router, wait for 30 seconds and re-connect the power cable...Now re-configure your router... -
Please help me figure out why this thread's performance degrades over time
Hello.
The code below is from a Runnable that I've tested inside a Thread operating on a TreePath array of size 1500; the array 'clonedArrayB' is this TreePath array. The code is designed to create a more stepped version of setSelectionPaths(TreePath[]) from class JTree.
The performance decrease of the thread is very rapid; this is discernible simply from viewing the println speed. When it gets to about 1400 TreePaths added to the JTree selection, it's running at roughly 1/10 the speed it started running at.
I know there's no problem with maintaining a set of selected paths of that size inside a JTree. I also know that the thread stops when it should. So it must be some operation I'm performing inside the brief piece of code shown below that is causing the performance degradation.
Does anyone have any idea what could be causing the slowdown?
Many thanks for your help. Apologies if you would have liked an SSCCE, but I very much doubt it's necessary for this. Either you can see the problem or you can't. And sadly I can't x:'o(
int indexA = 0;
public void run() {
// Prevent use of / Pause scanner
try {
scannerLock.acquire();
} catch (InterruptedException exc) {
Gecko.logException("Scanner lock could not be acquired by expansion thread", exc);
while (!autoExpansionComplete) {
while (indexA < clonedArrayA.length) {
int markerA = indexA + 10;
for (int a = indexA; a < markerA && a < clonedArrayA.length; a++) {
pluginTreeA.addSelectionPath(clonedArrayA[a]);
indexA = markerA;
System.out.println(indexA + "," + clonedArrayA.length);
if (autoExpansionComplete) {
break;
stop();
};Well, since I've had no responses, I tried to think of other ways to speed the code up.
I'd already made nearly every tweak I know. The only additional thing I could think of was to use addSelectionPaths(TreePath[]) on a subarray of the cloned array, instead of addSelectionPath(TreePath) on the cloned array's elements, since obviously it would be fewer method calls. It has sped things up an awful lot (my new code is shown below - I've left in some things I chopped out above, so you can see exactly what I see). The problem is though, obviously an increase in initial velocity doesn't solve the problem of deceleration occurring, if you get me.
// Clone the selection arrays to non-volatile arrays for better access
// speeds
final TreePath[] clonedArrayA = selectionPathsArrayA.clone();
final TreePath[] clonedArrayB = selectionPathsArrayB.clone();
// Create a new runnable to perform the selection task
Runnable selectionExpander = new Runnable() {
/** Position within cloned array A */
int indexA = 0;
/** Position within cloned array B */
int indexB = 0;
/** Length of subarray grabbed from cloned array A */
int lengthA;
/** Length of subarray grabbed from cloned array B */
int lengthB;
/** Subarray destination */
private TreePath[] subarray = new TreePath[100];
public void stop() {
autoExpansionComplete = true;
automatedSelection = false;
scannerLock.release();
* Grabs 10 blocks of each selection paths array at a time, adding
* these to the tree's current selection and then moving to the next
* cycle
public void run() {
// Prevent use of / Pause scanner
try {
scannerLock.acquire();
} catch (InterruptedException exc) {
Gecko.logException("Scanner lock could not be acquired by expansion thread", exc);
while (!autoExpansionComplete) {
while (indexA < clonedArrayA.length || indexB < clonedArrayB.length) {
// Set subarray lengths
lengthA = subarray.length;
lengthB = subarray.length;
// If subarray length is greater than the number of
// remaining indices in the source array, set length to
// the number of remaining indices
lengthA = indexA + lengthA > clonedArrayA.length ? clonedArrayA.length - indexA : lengthA;
lengthB = indexB + lengthB > clonedArrayB.length ? clonedArrayB.length - indexB : lengthB;
// Create subarrays and add TreePath elements to trees'
// selections
System.arraycopy(clonedArrayA, indexA, subarray, 0, lengthA);
pluginTreeA.addSelectionPaths(subarray);
System.arraycopy(clonedArrayB, indexB, subarray, 0, lengthB);
pluginTreeB.addSelectionPaths(subarray);
// Remember the latest index reached in source arrays
indexA += lengthA;
indexB += lengthB;
System.out.println(indexA + "," + clonedArrayA.length);
System.out.println(indexB + "," + clonedArrayB.length);
if (autoExpansionComplete) {
break;
stop();
// Create and start new thread to manage the selection task runner
selector = new Thread(selectionExpander);
selector.start();I really can't think what could be causing the slowdown. I've done everythng I can think of to increase the velocity, such as cloning the source arrays since they're volatile and access could be slightly slower as a result.
Nothing I try gets rid of the slowdown effect though :(
- Dave -
REALTEK AUDIO DEGRADING OVER TIME WITH FLME - PC WINDOWS 7
I am having a real issue with the onboard Reatek audio card and The Flash Live Media Encoder. I am providing the signal to the onboard Realtk audio card via the mic in source on my computer. The video is coming from my DV cam. At first, the audio sounds fine but after a period of time, the audio begins to degrade until it becomes totally useless - muffled and weak. If I use the onboard DV mic, it's OK. Problem seems to be with the onboard Realtek card. Some times it appears to be related to making some changes in the FLME settings. If I reboot the computer, it fixes it for a while and then the problem starts again. Running a PC with Windows 7. Anyone else, experiencing this? I have had the same problem on two different machines.
There is no way to do it from windows direct to the TC.
It only presents AFP to the WAN side. And most ISP block SMB from internet access due to risks. There is AFAIK, no suitable AFP protocol utility for windows at the moment. If you google and find one, be aware it probably will not work to your satisfaction anyway.
You must use a Mac to access AFP but even then it is not a secure protocol and I would recommend against it anyway.
So basically if you had have asked before purchasing, I would have said, TC is unsuitable product. It is a backup drive for a Mac. It is not a NAS.. it is not designed for remote access by any computer other than a Mac. It does not support any other file protocol to the WAN interface.. and no secure protocol even there.
A NAS with Time Machine extensions from QNAP, Synology, Netgear all are designed for web access and are far more suitable. Researching a purchase beforehand is always worthwhile.
Anyway, your choices are.. return the TC and buy something more suited to the job.
Or if return is now impossible sell the TC on ebay.. etc and do the same thing.. buy a more suitable NAS.
Or buy a cheap mac mini (even second hand) and use that for communications with home.
Or, replace your current router with something that includes vpn. This is actually a good and commercially sound decision. VPN is generally used by business to connect to remote locations, because it is secure and will allow the greatest flexibility of connection. How hard or easy depends on the current setup. I would recommend a combined modem router with vpn server if you have adsl. Or for cable you can find plenty of routers with combined vpn. You can also use those for adsl if your ISP allows pppoe with bridged modem. The TC will have to be bridged as well. For other broadband it might be harder to find the right kind of box.
Once you setup a vpn you can access it from work using the appropiate vpn client in your work computer. -
Internet performance degrades over time with AirPort Extreme
Hello, we have an AirPort Extreme (802.11n) which is about two years old, and I've noticed lately that if I don't reset it for say, a month or so, internet speeds become extremely slow, and there is no way to regain normal speeds without resetting it... I was just wondering if this is normal for an AirPort Extreme, and also, could this be due to the age of the unit (i.e. do AirPort Extremes slowly lose performance over time, and is buying a new one the only answer)? Any help would be much appreciated. Thanks!
U have to find a good channel.
on 2.4ghz this is 6 unless other routers in the area are using it. if so use another channel.
Other things that can interfere: Microwave oven, frige - any thing that emits em fields
5ghz is better.
vicinity of your laptop makes a big difference - i get up to 57Mbps on speedtest net in vicinity of time capsule @ 5ghz.
Best performance is on ethernet cable.
Hope this helps -
Custom sensor configuration for sensor mapping
Hi all,
I'm developing an application that performs sensor mapping of a STL model. I analyzed Sensor Mapping Express VI, it is very useful for development of my application.
But, my application requires to change sensore position or model or other settings at run time. Hence, I need to create a custom sensor configuration editor to define sensor positions, stl file path, and so on. (See attachment)
I don't understand how can I change sensors position at run time.
Thanks all.
Attachments:
sensorMapping.png 14 KBSorry, the reply above may have been a bit vague. I am trying to say that express vis are native labview code packed with an easy to use configuration front panel. You can access the underlying code by digging a bit deeper in to it.
1. Right click on the express vi and select Open Front Panel
2. Click OK to the warning message
3. Repeat Step1 on the resulting block.
4. Use Ctrl+M to view the vi in edit mode.
Then you would have access to all the inputs, in this case its a cluster with all the information. So with some more programming, you can add the extra customisation you would like.
Beginner? Try LabVIEW Basics
Sharing bits of code? Try Snippets or LAVA Code Capture Tool
Have you tried Quick Drop?, Visit QD Community. -
Changing Single Point to Axis on Sensor Mapping
I needed to include the sensor mapping Express VI into my program and have gotten it to work well. However, for my purposes, a single point wont work. I am measuring force using strain gages. Each input signal comes from a combined 4 different strain gages placed strategically along the x-axis and another 4 strain gages connected along the y-axis. Therefore, it isn't a single point needed but rather a line. Is there a way to do this in the program?
Hello,
Thank you for contacting National Instruments.
If you are worried about the time of your acquisition being off, then you should associate each voltage measurement with a timestamp. This will allow you to know the exact time at which the sample was taken and you will never be off. You can use the Get Date/Time in Seconds.vi in our while loop with your AI code so that you can read a sample and read the time. You can than log the voltage value and the timestamp to your file.
Regards,
Bill B
Applications Engineer
National Instruments -
To retrieve the mapping expression of a particular column of an Interface
How to retrieve the mapping expression corresponding to a particular column(say BATCH_ID) in the target table of the interface in IKM...?
Using getColList() method all the mappings in the interface are retrieved.
Is there a way to get the mapping for a single column using an API in IKM...?
Thanks,
SoumyaHi Soumya,
You can define a User Defined Flag on your target and use it to get your column.
For example, select the UD1 checkbox for BATCH_ID.
If your KM task, pass an additional parameter (pSelector) to getColList : "UD1"
http://docs.oracle.com/cd/E14571_01/integrate.1111/e12645/odiref_reference.htm#CIADFCFJ
Hope it helps.
Regards,
JeromeFr
[Edit] DecaXD was faster ;) -
How to write the map expression for a const string
hi all,
i am trying to map from source table A to target table B. Table B has a column that A doesn't have and the column type is string.
what should i do if i want to keep this column a const string like "abc"? How to write the map expression?
Setting a default value like "abc" of this column in database is not available .
please try to help, thanks a lot.
junHi jun,
You mean, u want to give some hard coded value to a specific column in mapping?
If so , give 'abc' in the target column and execute it on Target.
Thanks,
Guru -
Can't find Scaling and Mapping Express VI
I have just upgraded from 6 to 7.1 and am going through the "Getting Started" booklet. On page 1-9, it says to get the Scaling and Mapping Express VI from Arithmetic and COmparison. I don't see it there. I used Search and couldn't find it either. Am I lookiing in the wrong place? Thanks, Peg
I downloaded the example "scalemap.vi" and it cannot run because of the lack of subscaling.vi and configure scaling and mapping. It wants to look in scaleandmapblock.llb but that does not seem to exist. I've tried poking around on the Installation CD but I don't really know where to look. I guess I'll try reinstalling 7.1.
Peg -
Scaling and Mapping Express VI
Just learning my way around Labview 7 Express and working through the
first example. On page 1-9 of the Getting Started with Labview manual
there is a reference to a Scaling and Mapping Express VI, which is
available from Arith/Compare on the Functions palette.
My problem is that my Arith/Compare palette doesn't have this as an
option and I can't seem to find it available under All Functions
either. My choices in Arith/Compare are Formula, Time Domain,
Numeric, boolean and Comparison.
So I'm wondering if I'm the wrong place, or if I can search a library
of Express VIs which it might be hiding in?Found it on both the standard numeric palette and on my express palette (has an icon depicting two yellow cubes):
Functions -> Numeric -> Scaling and mapping
Functions->Express->Arithmetic and comparison->Scaling and mapping (the path may vary depending on the palette setup...).
However if you can't find it try searching for it. Click the search button on top of the functions palette and search for the VI.
Could be that it only comes with some of the development systems, we've got the full developer suite, if you only have the basic e.g. it might not be included (?).
MTO
Maybe you are looking for
-
Syncing with iTunes after iCloud Restore Defaults to Past Sync
After I had restored my iPhones using a recent iCloud backup, some of my content such as certain videos and music needed to be installed through syncing with iTunes. All of my apps were arranged and installed as they were before the resoration. I had
-
F110 Generate Check Number without creating a spool.
Dear Gurus, In F110 Automatic Payment Run, I want to generate check numbers but without creating a spool. I want to do so because the interface would give the cheque details straight away to the banks. Also a spool should not be created in system for
-
HT201317 why are some of my photos in albums on my phone but not in photo stream
Why are photos taken with iphone in "album" but not on photostream? All setting are on.
-
hi ! I'm having problems with a JTable I can't find out how to resize its width I just create it the classic way and insert it in a JPanel DataModel dataModel = new MyCustomTableModel(); JTable table = new JTable(dataModel); JScrollPane tablePane = n
-
[CS3 Mac] Strange menu problem - 'InDesign' menu moved ..
Hello, i have a problem with my menus in InDesign. While starting everything looks good, but when InDesign is started the 'InDesign' menu item moved. Look here: http://www.dataplan.de/image/menu_problem.png for a screenshot while and after starting.