RE: Wanted: #define

2004-06-17 Thread Scott Hannahs
At 9:05 -0500 6/17/04, [EMAIL PROTECTED] wrote:
Regarding the cluster of constant values from which you can select one
using an implicit unbundle:
Is it easier to drop one constant [from the palette or file system] and
then select which subpiece to use than it is to just select which constant
you want [from the palette or file system] in the first place? I'm not
opposing your general comments that a simpler way to define and then drop
constant values would be useful, I just don't think that the proposed
solution goes very far toward simplifying the situation.

Well I might think of a combination of these as a good compromise.

One VI with a cluster of all the constants for a program.  This could then be opened 
for editing instead of finding each constant file.  Then a vi that unbundles by name 
and returns that constants value.  This would be what is dropped on the diagram.  This 
give the simple action of dropping a constant VI and the convenience of being able to 
open and look at all constants at once.

This of course could all be isolated in a sub-folder for clarity when manipulating the 
files.

-Scott




Re: Virtual memory

2004-06-16 Thread Scott Hannahs
At 9:46 +0200 6/16/04, Uwe Frenz wrote:
Ann,
you asked on Tue, 15 Jun 2004 15:27:05 -0400:

I get this message sometimes when I run my program:  System is low on
virtual memory 
If it is just a rare state it may well be worth just to increase the systems virtual 
memory. This can be done by inserting some extra RAM (always a good idea, but with 
some costs) or by changing some settings. These however depend on the machine 
architecture (a PC, WS, Mac or whatever) and on the OS (Win, linux, OS X etc.).  
Changing the virtual memory settings does not take no extra costs and uses just a 
little time.

Amount of Virtual memory is independent of RAM unless one is drastically misusing 
the term virtual memory.  Virtual memory is limited by DISK space and the basic 
addressing limitations of the CPU.  Most CPUs can address at least 2 GB for a single 
process, so having a few GB of disk space available should make that available to 
LabVIEW.

Adding RAM will make the use of the DISK for memory less frequent and give MUCH better 
performance but it should run without failing.

The only other limitation is running out of internal registers to manage RAM but that 
is very rare and should not be happening unless you are doing some other very very odd 
stuff.  As a couple steps,

1. Check that LabVIEW is really trying to use a lot of RAM.  Activity Monitor works 
well for OS X and I assume that winders has a similar tool.

2. Find out where in LV you are chewing up massive amounts of memory and if this is 
necessary.  The LV profiler works wonders!  If you are chewing up a GB of ram in a 
particular VI it will be very obvious!

Windows nowadays has a default setting 'let windows handle this'. Allthough this is 
foolproof in most situations, it has some drawbacks. One of the major culprits is 
that AFAIK Windows will just use free space on drive C:. If this free space is 
limited, Win has to limit the virtual memory.
So it is not the worst idea to do a system backup, clean the harddisk and defrag it 
afterwards. And if one later adds a fixed area as swap file on this or another HD, 
this swap file size is than fixed and cannot be limited  by temporary files an 
garbage.

You can optimize to handle massive memory requirements like this, but it is best to 
decide if you really need all that resources in the first place!

-Scott




RE: Info-LabVIEW Digest - 06/16/04

2004-06-16 Thread Scott Hannahs
At 8:04 -0400 6/16/04, Hysell Shannon wrote:
If anyone saves their previous posts- can someone forward me the various posts 
regarding the RTOS using a PC?? I deleted them and now I have a thought!

You can search for any previous posting at Brian Renken's EXCELLENT search engine.

http://www.searchview.net

the subject of the recent discussion was New solution for OS X

The info has been incorporated into my LV on OS X web page:
http://sthmac.magnet.fsu.edu/labview/LVonMacOSX.html


-Scott




Re: Wanted: #define

2004-06-15 Thread Scott Hannahs
At 16:23 -0400 06/15/2004, George Gatling (Contractor) wrote:
From my days as a C programmer (shudder) I have to say I do miss the #define.  I 
realize LabVIEW cannot really have an exactly analogous feature because the scope of 
.vi is too different from the scope of .c, but there must be some way to get the same 
functionality.  I figure a global might be the ticket here, but I thought I would 
ping you guys and see if anyone had something more clever or if there were any 
gotchas to using a global.  I would type my #define values into the global, make 
current values default, and then read from the global.  This particular global would 
never get written to programmatically.

You need to disconnect the global from the running hierarchy to make current values 
default.  You might consider intelligent LV 2 style globals where the first time they 
are called, they load from a config file.  When a global is written to, the 
corresponding element of the config file is updated.

You can use the built in config file management or the tool kit recently offered for 
sale.  :-)

The LV style global can check for first run and load the initial values.  It can keep 
an array of keys and return variants for that key.  Then for each global make a VI 
that passes the correct character string key and casts the variant into the correct 
representation to return to the user.  Then each of these VIs can be used just like a 
read global.

A bit more complicated, but very robust and makes it easier to update single values 
rather than making all values default after stopping and starting the VI.  Then 
forcing the changed VI (defaults changed) to be saved.

That being said, I have also made a global to hold constants that I hope never vary.  
It will work.

-Scott




New solution for OS X

2004-06-11 Thread Scott Hannahs
Just to publicize a little known solution that lets one use the best development 
environment with NI hardware.

One can use a cheap PC as the host for all the hardware running the PharLap RT/OS as 
the target machine.  This gets around the extreme cost of a PXI crate and embedded 
hardware.
 
http://zone.ni.com/devzone/conceptd.nsf/webmain/2B20D544723C8F2D86256E8C0071C201

With LabVIEW 7.1 the host PC can be an Apple MacIntosh running OS X!  The realtime 
target can be any cheap PC, though NI lists some systems as recommended it seems that 
the RT/OS will boot and run on most hardware.

Mac OS X and LV 7.1 now support cross compiling for the RT/OS.  This can be simply 
linked to the host thru ethernet.  For a good solution one should probably throw a 
second cheap ethernet interface in the host to keep network problems isolated from 
data transfer and control.

This will allow development in a clean, reliable and efficient environment with 
compatibility to all of NIs hardware.  The only real drawback is supporting the 
hardware of a cheap wintel box and the time labor associated with that.  However the 
Pharlap OS has a reputation of being fairly clean and robust to avoid the normal 
problems associated with more common desktop OSs.

I hope to get this info added soon to the OSX - Labview info page 
http://sthmac.magnet.fsu.edu/labview/LVonMacOSX.html

-Scott




Re: webcam

2004-06-10 Thread Scott Hannahs
At 11:31 +0200 5/27/04, Rolf Kalbermatter wrote:
Scott Hannahs [EMAIL PROTECTED] wrote:

Actually, I just wrote one using one of the examples Christophe Salzmann's
quicktime interface.  Works like a dream!!!  Cross platform and handles all
camera's that have a quicktime driver.  Contact Christophe for a copy.

The sad part is that under all platforms other than the right one,
video digitizer hardware with Quicktime drivers can be counted on one
single hand. There is a Quicktime to VfW video digitizer driver for
Windows to access VfW hardware in Quicktime but elegant would be something
else.

Just to discuss availability for the wrong platform.  Chris' web pages gives this 
info:

* Under windows you need a proxy vdig to enable QuickTime to see VfW and WDM video 
capture devices.

* WinVDIG (v. 0.99) free ( http://www.vdig.com/WinVDIG/index.html)
* Vdig (v 1.1b1) (http://www.abstractplane.com.au/products_vdig.jsp)
the first one supports a lot of hardware 
http://www.vdig.com/WinVDIG/compatability.html.  I think you will find that a you 
are going to need lots of fingers on the single hand!  After the 1st hundred or so 
models (the page above doesn't mention the pixle link ones).  Why do you need the 2nd 
hundred?

I am not sure about vfw but this should give the compatibility that is good enough.  
The sad part is that lack of support is considered good enough.

-Scott




PCI-GPIB cards - arrgh...

2004-06-08 Thread Scott Hannahs
If you aren't into gory technical details, skip this message.


NI has 4 GPIB cards:

Looking at the NI web pages there are 4 distinct, PCI-GPIB interfaces.

#1 PCI-GPIB for windows 95/NT/200/XP/Me/98/Solaris
http://sine.ni.com/apps/we/nioc.vp?cid=5310lang=US

#2 PCI-GPIB+
http://sine.ni.com/apps/we/nioc.vp?cid=1875lang=US

#3 PCI-GPIB/LP (Low Profile)
http://sine.ni.com/apps/we/nioc.vp?cid=10970lang=US

#4 PCI-GPIB for Mac OS 9
http://sine.ni.com/apps/we/nioc.vp?cid=1941lang=US

However, #1 actually does have drivers for Mac OS 9 as well if you read the product 
description.  But if you just search for OS 9 then they send you to the more expensive 
one.  There seems to be no reason that card #4 still exists as an older card.

BUT, my OS X PCI-GPIB driver only works with #4.  It should work with #1, think the 
problem is only because it tests for one specific card.  If anyone who has one of 
these small and can tell me the PCI product ID #, I would like to modify my driver so 
someone could test this.  The driver matches against the PCI name of NATI,pci-gpib

Does the smaller newer card with the 5004 TNT chip have the same PCI name?  If I had 
one of the cards, I believe that the Mac OS X system profile utility would tell me 
the name, vendor ID, Device ID etc.  I have no idea how to get those hardware 
properties under windows but if anyone can figure it out, I would be grateful.

Thanks,
-Scott




Re: LV7.1 for Linux

2004-06-07 Thread Scott Hannahs
At 9:57 +0100 6/7/04, Craig Graham wrote:
Why on earth is the timed while loop not in the Linux version?

Because it is a windows only function and is only in the winders and pharlap RT 
versions of LV.

-Scott




RE: Recursive Code Challenge

2004-06-04 Thread Scott Hannahs
At 12:24 -0400 6/4/04, Junginger, Johann wrote:
This is going to be a naïve question after this thread has been going on for
so long, but can anyone send me (or point me to) a LV7 (or earlier) example
of recursion? It sounds very interesting but I am having trouble wrapping my
head around this concept.

http://sthmac.magnet.fsu.edu/labview/vi_library.html

Near the bottom of the page is a recursive calculation of the factorial function.  
Versions in LV 6 and 6.1.  The factorial is a classic example of recursion since it is 
a trivial definition recursively.

N! = N * (N-1)! ; N1
N! = 1 ; N=1

-Scott





Re: maths problem

2004-06-04 Thread Scott Hannahs
At 8:07 -0700 6/4/04, PJ M wrote:
If I understand properly you know %co2 and you want to
know x right ?
Therefore you just have to solve the equation. It's a
pure math problem, no a LV one.
Let's rename your equation
%CO2=(((3.10933*(X*X))+(.5602*X)))/(0.30204-X) like so
y=(ax*x+bx)/(c-x)
= y(c-x)=(ax*x+bx) = ax*x+(b+y)x-yc=0
Then assuming than D=(b+y)*(b+y)+4yac is positif you
have the following:
x=[-b+(or-)Sqr(D)]/2a

Note!   Sqr(D) is really Sqrt(D) the square ROOT of D not the square.  But this right, 
you DO want to use the exact quadratic solution.

Also I think D= (b+y)^2-4yac

http://www.sosmath.com/algebra/factor/fac08/fac08.html


Also for for future reference, equations greater than 4th order that do not have exact 
solutions like this, you can use the root finding routines built into LV.

-Scott




Re: Asyncrhonous Serial VISA

2004-06-04 Thread Scott Hannahs
Title: Re: Asyncrhonous Serial VISA


The VISA library AFAIK does not allow simultaneous input and
output on a single port. The difference between asynchronous and
synchronous behavior is getting a bit blurred.

Asynchronous calls to the VISA library mean that the execution
for that execution engine is not blocked. Thus other nodes
(non-visa, or VISA on a different port) can execute. However
since there are several different execution engines and now with nice
multi-threaded O/S capabilities, it is unclear whether only a single
internal thread is blocked by a synchronous node or not. Since
several threads can be allocated to a single execution engine it
becomes hard to detect the blocking of a single thead. One of
the experts may correct my terminology here of threads and execution
engines, but this is my understanding.

But a write will block until that VISA port becomes available.
hopefully this restriction wil be lifted with VISA 4. The other
thing you can do, is not to start the read until actual characters are
in the buffer. This means that you will not block the port until
it is ready to read. This can be extended to only read the
number of characters that are actually in the buffer and not use the
read timeout waiting for characters. Maybe an NI VISA guru can
tell you how to detect the difference between async and sync visa.
The question is why every use sync visa these days? It used to
be because async was buggy but that has been cleared up a long time
ago.

-Scott



At 11:44 -0700 6/4/04, Jason Dunham wrote:
Is anyone
having success at running asynchronous VISA calls for serial port
reads and writes?

I made a
simple test VI to read one byte from COM1, and write a continuous
stream of bytes out of the same port in a parallel while
loop.

The write
loop stalls until the read command times out. I even tried
moving the read to a subvi and changing it's execution system, but
to no avail.

If I read
and write from different ports it the read and write are independent,
even if the VISA nodes are set to run synchronously.

I'm just
not getting the whole asynchronous concept, I guess. I have yet
to create a VI which behaves different with sync or async VISA
calls.

I'm using
LV 7.1, VISA 3.1 and Windows XP.



RE: Recursive Code Challenge

2004-06-04 Thread Scott Hannahs
At 12:31 -0700 6/4/04, ALTENBACH,CHRISTIAN wrote:
Quoting Scott Hannahs [EMAIL PROTECTED]
 It makes an interesting story but is not the best
way to approach the problem.

'glad you brought up your recursive demo. I compared it with my entry in the
recent LabVIEW Zone Coding challenge for factorials.

( http://www.ni.com/devzone/lvzone/codechallenge6_results.htm )

For 12! it is 3000x slower (5 ms vs. 2 microseconds) while mine does more
because it formats the output to a string.

Yes, recursion is better in some cases and not others.  Actually for large numbers, 
the approximation X^X*exp(-x) works fastest!   But it can be a very easy thing to 
program and maintain.  A better example is to solve a maze where you follow the turns 
exhaustively.  Almost anything that can be done recursively can be done with arrays.

BUT, you save time and reliability in clearer, cleaner code.  This form of recursion 
is deadly slow because VI server is MUCH MUCH MUCH slower than a direct sub-vi.  It 
may be the best way to approach a problem but not the fastest in execution.

-Scott




Re: Thermocouple to Pt100

2004-06-03 Thread Scott Hannahs
At 10:32 -0400 6/3/04, John Brohan wrote:
Hello

I have a device which has a PT-100 temperature sensor. The probe of this is
too thick for what I need. I want to measure the temperature of liquid in a
test tube while I'm adding some reagent. It seems that the PT-100 is a
device with some size to it, and is just too bulky to fit in the test tube
along with a stir bar. I'd prefer to use a thermocouple.

Does anyone know of a way to transform the signals from a thermocouple to
mimic the a PT100.
Not really.  A thermocouple generates its own voltage on a microvolt scale.  A PT-100 
is a resistor that changes its value which is about 100‡ at 0C.

BUT you can get some small PT-100 sensors.  Sensing devices has a pt-12A which we buy 
a lot of.  These are about  1.6 mm in diameter and 12 mm long.  I think they also have 
an 8 mm long one.

http://www.thomasregister.com/olc/SmartCat.aspx?az=72980675type=details_orderbacklink=yestemplate=http://www.sensingdevices.com/template.htmcounters=noptno=PT100/12A

-Scott




Re: Write Hexadecimal values as ASCII characters

2004-06-03 Thread Scott Hannahs
At 10:01 -0400 6/3/04, [EMAIL PROTECTED] wrote:
Folks,
How does one write a hexadecimal string as ASCII characters on to a file?

format into string with a %X format (the create format string pop up will help you). 
other possiblities are %x, %0X, and %0x depending if you want leading radix indicators 
and your string in upper or lower case.

Then write string to a file.

Scott




Re: LV Wishlist

2004-05-27 Thread Scott Hannahs
At 22:15 -0500 5/26/04, Greg McKaskle wrote:
Actually, the NI wishlist still exists, and while you can post them as
many places as you like, keep in mind that NI's site is more likely to
get into the feature list.

URL is
http://sine.ni.com/apps/we/niup.ni?ap=pscloginlang=usdu=http://digital.
ni.com/applications/psc.nsf/default?OpenForm%26temp1=%26node=

A more compact URL is http://digital.ni.com/applications/psc.nsf/default

I will put a link on my pages as well.. http://sthmac.magnet.fsu.edu/labview
-Scott




Re: webcam

2004-05-26 Thread Scott Hannahs
At 4:12 -0700 5/26/04, Hamid Shojai wrote:
Hello,

I want to work with webcam in labview. form which point should I start?

Actually, I just wrote one using one of the examples Christophe Salzmann's quicktime 
interface.  Works like a dream!!!  Cross platform and handles all camera's that have a 
quicktime driver.  Contact Christophe for a copy.

-Scott




Re: DAQmx, etc.

2004-05-25 Thread Scott Hannahs
At 7:25 -0500 5/25/04, Geoffrey Schmit wrote:
For example, I'm
not sure what you mean by a LV style wait.  I'm not aware of a
construct that would allow a thread to wait on a synchronization
primitive and yet continue to execute.  That is, a thread is either
running or waiting.  If my definition of an asynchronous call matches
your definition of a LV style wait, great.  If not, please let me know
what you have in mind.

Yep.  Just like the Wait (ms) node within LV.  If that could be called (sort of a 
cooperative multi-tasking) from a CIN then you could make non-blocking CIN or Shared 
libraries.

Most VIs, including the DAQmx
Read VI, operate in this fashion.

Good to know, I am not familiar with the new mx stuff and thought it may be 
different.

These two types of calls present fundamentally different API models.  In
general, synchronous calls cannot simply be converted to asynchronous
calls without changing the semantics of the API and adding additional
concepts (e.g., call backs, query calls).

Ok.  I was thinking along the lines of Asynchronous/Synchronous VISA read and write 
calls that can be switched from synchronous to asynchronous with a pop-up menu 
selection.  I realize that the underlying calls might be different but they present 
the same wrapper.

However, if the thread waits on a
synchronization primitive, other threads will not be competing with this
thread until this synchronization primitive is signaled and the thread
is awakened.
This is why I may make my labview calls do a wait for occurrence and pass the 
occurrence to the library in a reentrant call.  The library can signal the occurrence 
eventually and thus there is a no penalty wait for I/O to complete.

However, a
call that acquires a more specific lock (e.g., DAQmx VIs that acquire a
lock for a specific task) will only prevent other threads that try to
acquire that specific lock from executing.

So DAQmx has threading and locks at a much finer (task) level rather than the whole 
DAQ system.

While I'm certainly not an NI-488.2 expert, I believe there are both
synchronous and asynchronous functions in NI-488.2.
Not in the 488.2 spec but in the C library and/or the driver and at the VISA call 
level.  The problem is that there is NO NI-488.2 for OS X (at the moment).  So I am 
developing sth-488.2 based on the incomplete 488.2 DDK toolkit that NI provides.  The 
trick is how to move that asynchronous call in the library (when I get it implemented) 
into the synchronous nature of a LabVIEW call into a library.


  Regardless, other
threads in your application should be able to execute while a NI-488.2
call is waiting subject to the restrictions I've mentioned.
If there were such a thing as an NI-488.2 call!  I need to implement that asynchronous 
call not merely use it.


  If you're
concerned that your PCI-GPIB library is too inefficient when waiting and
it is polling, maybe you can change its implementation such that the
thread waits on a synchronization object rather than polls (or at least
occasionally yields to give other threads more of a chance to use the
processor).
How do I yield from a C program back to the labview program?  It may allow the other 
threads to run automatically but it blocks the UI thread I think and that is really a 
significant block


  If you're concerned that other threads in your application
cannot execute because the thread that is waiting has acquired a common
lock, perhaps the lock can be eliminated or a finer-grained lock can be
used instead.
But I can't change the basic locking mechanism of the Labview execution system...  Or 
if I can, I think I would get a big warning message Rusty Nails Ahead!.  I think 
Jason also expressed my problem quite well and outlined the difference between what we 
can access as a LabVIEW programmer vs. what I get if I dust of my old C programming 
hat.

  Presumably you are more of a DAQ-centric person than a LabVIEW-centric
  person at NI.
I'm more of an operating-system-centric person at NI :)

NI is developing a new OS?!  LabVIEW everywhere indeed!  :-)

Cheers,
Scott





RE: Slow Printing

2004-05-20 Thread Scott Hannahs
At 10:03 -0400 5/20/04, Dan Press wrote:
Printing takes time, and it wants to run in the UI thread.
Now go upgrade to LabVIEW 7.1 and XP Pro.  1999 called; they want their
software back.  :)

Then upgrade to a true multi-threaded system.  You know the one, that one based on a 
multi-threaded, symmetric multi-processing kernel.  Upgrading from 1999 to 2000 is not 
a win.  :-)

Seriously, consider a alternative platforms when upgrading.  The effort of switching 
is not as large as software companies want you to believe.

-Scott




Re: DAQmx, etc.

2004-05-19 Thread Scott Hannahs
At 7:58 -0500 5/19/04, [EMAIL PROTECTED] wrote:
If the task acquires a finite number of samples and you set this input to 
 -1, the VI waits for the task to acquire all requested samples, then reads
 those samples.

Is this a blocking wait like the non-DAQmx call into a CIN (or LLB) or is it a LV 
style wait where other LV nodes even in the same thread can execute?  That would be 
nice!  Is there a way to do this threading in our own created dlls (frameworks)?.  I 
would like to make my PCI-GPIB library non-blocking but that is not trivial because of 
this limitation.  Is there a way to set up a call back into LV for a non-blocking wait 
from a CIN or framework?

Then again, DAQmx could be ported to all the other platforms since it was written in 
such a nice modular way that it only needs a trivial stub driver for other 
platforms.  :-)

-Scott




Re: LV2 style globals, events. Was Re: DAQmx, etc.

2004-05-19 Thread Scott Hannahs
At 6:04 -0600 5/19/04, David A. Moore wrote:
At 10:24 -0700 5/18/04, tim wen wrote:
another question:  i've been using LV2 style globals to pass data between parallel 
loops
and am wondering if a queue is a better way to go?

Scott Hannahs [EMAIL PROTECTED] wrote:
Probably.  If you are just passing data in one direction it can work well.  With a 
LV2 style global you can build in internal processing and value manipulation to the 
global (ie intelligent global).

If you're passing LARGE data, probably not, because LV2 style globals
are more efficient than queues i.e. you can avoid making extra copies
of the data.

Interesting.  Does anyone know why a queue would make extra copies of data.  I haven't 
tried pushing MBytes thru queues but there doesn't seem to be any inherent reason that 
a queue would make extra copies of the data.  It should make a copy upon entering the 
data into the queue and the caller would release it.  Upon dequeue the queue should 
release the memory and the receiving VI would copy it.  (Note: these may not be actual 
copies but passing of pointers).

This should be equivalent to a LV2 style global with a USR?  The exact same memory 
allocation/deallocation should take place.

I guess the real test is to make a couple of benchmarks and profile it.

-Scott




Re: DAQmx, etc.

2004-05-18 Thread Scott Hannahs
At 10:24 -0700 5/18/04, tim wen wrote:
In LV6 the 'AI read.vi' hogs the CPU waiting for the number of samples requested to 
be available.
someone (sorry for not remembering the name) came up with a 'non-blocking AI read.vi' 
which i have
been using happily.
i noticed the new DAQmx 'contgraph.vi' is hogging the CPU also.  is there a cure for 
it ( i think it makes
DLL calls)?

One version is at http://sthmac.magnet.fsu.edu/labview in the VI library.  I think 
there are a number of these around.  I have not updated it for DAQmx since it is not 
available for my development platform. :-(

I don't know if it would be a simple modification to make it work with DAQmx.  It is a 
fairly simple concept and not too complicated code.


another question:  i've been using LV2 style globals to pass data between parallel 
loops
and am wondering if a queue is a better way to go?
Probably.  If you are just passing data in one direction it can work well.  With a LV2 
style global you can build in internal processing and value manipulation to the global 
(ie intelligent global).

-Scott




Re: Dealing with large file

2004-05-17 Thread Scott Hannahs
At 13:45 -0400 5/17/04, [EMAIL PROTECTED] wrote:
I want to tell excel from LabView to open or import large data file.  The
data doesn't fit on a single excel worksheet (65500 rows).

I really suggest dumping Excel.  As the notable Gary Johnson defined it,  Excel is a 
word processor that calculates.  It has trouble with large data sets and you should 
do the reduction to something manageable in a different fashion and then use Excel for 
formatting the output.  When you run into these problems you need to re-think your 
basic strategy not try to fit the square peg of large data into the round hole of 
excel.

-Scott




Re: Visual source safe - followup question

2004-05-06 Thread Scott Hannahs
At 7:19 +0100 5/6/04, Craig Graham wrote:
Hmm. This message was posted some days ago and has only just appeared. List
problems?

No.  Problems with sender.  I am replying privately with details

-Scott




Re: Labview 7.1 released 5/4/2004

2004-05-06 Thread Scott Hannahs
At 9:44 -0700 5/6/04, andrew johnson wrote:
Is there yet a list of labview bug fixes that 7.1 incorporates?

AFAIK, it is NI policy NOT to distribute a list of bug fixes.  I have been variously 
informed this either for competitive reasons or it avoids confusing the users.

Standard disclaimer, if you don't like these reasons or want another reason, contact 
NI and your sales engineer.

-Scott




Labview 7.1 released 5/4/2004

2004-05-04 Thread Scott Hannahs
List of features at:

http://www.ni.com/labview/upgrade.htm




IMPORTANT ADMINISTRATIVE NOTE - LIST CHANGES

2004-04-20 Thread Scott Hannahs
As we informed you awhile ago, the Info-LabVIEW is moving.  We hope that this will be 
accomplished with very little disruption.  The new list is up and functioning and all 
the addresses have been transferred.

1. Announce the new email addresses and activate the lists at FSU.  That should
be what this announcement is telling you!  If all is well you should receive 2
copies of this message, one sent to the old address and one sent to the new one.

The new list addresses will be
  [EMAIL PROTECTED]
Please UPDATE your address books.  Note, replying to old messages will
stop functioning at some point.

Also note that you will need to update any filters that you use for mail to 
reflect these
new addresses.

2. Set the current machine here to forward list mail to the new addresses (probably
active for 30-60 days or so).

after 30 or 60 days,
3. Turn off forwarding here and put an autoreply on those addresses pointing
users to the new site (again, for some finite period of time).

Some time in the future.
4. Shut down the original info-labview list server machine (a 6100/60,
ie 1st generation PowerPC, in case you were wondering).

--
To send messages send email to:
[EMAIL PROTECTED]

To subscribe to info-labview, send an email to:
[EMAIL PROTECTED]

To subscribe to the digest version of info-labview, send an email to:
   [EMAIL PROTECTED]

To unsubscribe to info-labview, send an email to
   [EMAIL PROTECTED]

To contact me (the list manager) send email to
   [EMAIL PROTECTED]
(NOTE: the slightly different domain for this address!!)

Tom Coradeschi
  Tom Coradeschi, Info-LabVIEW List Maintainer
   [EMAIL PROTECTED]
 http://www.info-labview.org/
and

Scott Hannahs

- Dr. Scott Hannahs, Head of User Research Instrumentation -
- http://sthmac.magnet.fsu.edu -
- National High Magnetic Field Laboratory, Florida State University-
- 1800 E. Paul Dirac Dr., Tallahassee FL 32310, (850)644-0216/FAX 644-0534 -




Re: source code for 2d cross-correlation fx?

2004-04-15 Thread Scott Hannahs
At 11:11 AM -0400 4/15/04, Don J Roth wrote:
I know this is a long shot but does anyone have the c or c++ code to compute the 2d 
(image) cross-correlation fx? (I know that IMAQ VISION has the cross-correlation 
routine but I am looking to potentially modify the 2d correlation routine to compute 
something called non-symmetry coefficient and would need to start with the source 
code).

I know this is a long shot, but
http://developer.apple.com/Documentation/Performance/Conceptual/vImage/index.html

has built in optimized vector libraries that do convolution (which is just a 
correlation) on 2 D images.  Having messed with these libraries they are REALLY FAST.  
These have been tuned for the hardware and use the vector acceleration when they can.

But the problem is that you have to be on the correct platform.  Other than that, I 
think that gnu has some signal processing libraries that you might use.

-Scott




List Move Postponed.....

2004-04-14 Thread Scott Hannahs
Due to other duties (ie day jobs), the list move has been postponed until next Monday 
(4/19/2004).  This has the added benefit that any problems can merely be chalked up to 
the Monday Effect!

-Scott




IMPORTANT ADMINISTRATIVE NOTE - LIST CHANGES

2004-04-13 Thread Scott Hannahs
As we informed you awhile ago, the Info-LabVIEW is moving.  We hope that this will be 
accomplished with very little disruption.  The new list is up and functioning and we 
only need to move the addresses.

On Wednesday (April 14) we plan to do the following.  There may be some outages and 
subscribing and unsubscribing may be a problem.  Do NOT subscribe now to the new 
machine since that list will be erased for the transfer.  I will send a second 
reminder on Wednesday.

1. Shut down subscriptions on Tom's machine at k-whiner. pica.army.mil to freeze the 
subscriber list.

2.  Transfer that list to the machine at the National High Magnetic
 Field Lab at Florida State University and install it there.

3. Announce the new email addresses and activate the lists at FSU.  

The new list addresses will be
  [EMAIL PROTECTED]
Please UPDATE your address books.  Note, replying to old messages will
stop functioning at some point.

Also note that you will need to update any filters that you use for mail to 
reflect these
new addresses.

4. Set the old machine at k-whiner. pica.army.mil to forward list mail to the new 
addresses (probably
active for 30-60 days or so).

5. Bonus question (what does k-whiner reference?)
--
To send messages send email to:
[EMAIL PROTECTED]

To subscribe to info-labview, send an email to:
[EMAIL PROTECTED]

To subscribe to the digest version of info-labview, send an email to:
   [EMAIL PROTECTED]

To unsubscribe to info-labview, send an email to
   [EMAIL PROTECTED]

To contact me (the list manager) send email to
   [EMAIL PROTECTED]
(NOTE: the slightly different domain for this address!!)

Scott Hannahs

- Dr. Scott Hannahs, Head of User Research Instrumentation -
- http://sthmac.magnet.fsu.edu -
- National High Magnetic Field Laboratory, Florida State University-
- 1800 E. Paul Dirac Dr., Tallahassee FL 32310, (850)644-0216/FAX 644-0534 -

and

Tom Coradeschi
  Tom Coradeschi, Info-LabVIEW List Maintainer
   [EMAIL PROTECTED]
 http://www.info-labview.org/




Re: Setting control default value

2004-04-09 Thread Scott Hannahs
Depending on how much trouble you want to go to...

You can make it a dynamically loaded VI in the built exe.
Then when you need to set its default value.  Since it isn't running, then set the 
value, make it a default then save the VI back into the llb.  Then when you need the 
value, just call the VI dynamically and it will return that value.

This why bundles of files (or what used be be resource forks) work so well in 
encapsulating all this in what looks like a single file to the user!

-Scott


At 12:49 AM +0200 4/10/04, Christophe Salzmann wrote:
Well that is exactely what I'm trying to avoid, an additional file!
So unless someone has a better idea I'll encode my single default value as a
VI name inside my llb.




Re: Request for suggestions on structuring!

2004-04-08 Thread Scott Hannahs
At 1:38 PM +0100 4/2/04, [EMAIL PROTECTED] wrote:
Dear Group,

Please can you educate me, my brain's exploding here. I've been given a huge, 
old-style procedural flow diagram to code up in LabView 7, to create an automated 
test environment. (Thanks so far to Chris Harden for your help, but I'm still stuck 
on details.)

See http://www.spherica.demon.co.uk/LabView/basic%20flowchart.gif

Ok, here is a start at handling this as an event driven system.  This can be either a 
simple event structure or look at the producer/consumer template for doing the same 
thing using a queue to pass commands from the user interface to the work loop.

pop up a dialog box to get the file name and test data.  This is just a sub-vi with 
the vi properties set to dialog.  It just loops until an accept button is pressed and 
then passes the filename and test data to the main prog.

initialize

Then big event structure in a while loop with events for (A/B radio button), (C/D/E 
radio button), (F/G radio button) and a stop button.
Start with A/B visible and enabled and the other 2 invisible.

When A/B has value changed, use the new value to select a case to hide (or grey out 
and disable) the C/D/E radio button and unhide the F/G radio button and do calibration 
procedure 2 (or vice versa for the other case) also hide the A/B radio button.

For the F/G radio button event use a case to select a call to process F or G in a 
loop, for each iteration ask to re-do? in a dialog box or make other test and decide 
to exit the loop.  Store the file and return to the main event loop.

For the stop button change event case send the new value of the stop button to the 
main while loop to terminate.

-Scott
-- 
- Dr. Scott Hannahs, Head of User Research Instrumentation -
- http://sthmac.magnet.fsu.edu -
- National High Magnetic Field Laboratory, Florida State University-
- 1800 E. Paul Dirac Dr., Tallahassee FL 32310, (850)644-0216/FAX 644-0534 -

Programming today is a race between software engineers striving to build bigger and 
better idiot-proof programs, and the universe trying to build bigger and better 
idiots. So far, the universe is winning.
-- Robert Cringley (Triumph of the Nerds).




Re: Upgrade from Full to Base version

2004-04-08 Thread Scott Hannahs
At 11:38 AM -0400 4/6/04, Stéphane Caron wrote:
I'm using LabVIEW 6.1 Full version and I want to upgrade to LabVIEW 7 base version (I 
have some reasons to do that :-) ). I don't use any feature specific to the full 
version vs base version.
Is it possible to make that kind of upgrade, will the base version be able to open VI 
made with a full version ?

I believe that is true.  However you will not be able to edit the features that are 
part of the full version and not in the base version.  Make sure that you are not 
loosing access to something you need!  You will be missing a lot of the analysis tools 
and the event driven user interface programming!

http://volt.ni.com/niwc/common.jsp?page=labview_devchartnode=1381




RE: API Serial Functions

2004-04-08 Thread Scott Hannahs
At 1:17 PM -0400 4/6/04, Michael Aivaliotis wrote:
Ok, I guess a definition is required for the term VISA because I think we are on 
different wavelengths. When I speak of VISA, I
mean any call (from LabVIEW) of the VISA Read and VISA Write functions.
That is my definition as well.  But to make them functional you need the libraries 
somewhere.

Regardless, you are still obligated by NI licencing and
distribution requirements. I don't want to start another licencing thread...

No, no,  not that!!! Anything but a licensing discussion! :-)

  I fairly sure that for the correct platform you can embed the
 VISA libraries in an executable,

This is the first time I hear of this. Embed? Meaning no external DLL's or support 
files? Even if this is true, you still have to
have a valid VISA distribution licence.

The DLLs (frameworks) can be placed in the resource directory of the built app.  It 
will look monolithic as a single file.  They are technically a support file, but the 
definition gets fuzzy if such a bundle of files looks like a single file to the 
user.  That might be the only requirement, that the final product just be a single 
icon that can be dragged onto a machine.

Of course another way to approach that is have the application look for the VISA 
libraries on launch and install them automatically.  This will leave traces on the 
target machine, but to the user there is only one application icon and they just click 
on it.

There apparently are other none NI solutions that incorporate external DLL's, ActiveX
controls, .NET assemblies etc. (how about the Mac?). Are any of these Opensource? ;-)

The Mac it is trivial.  just open up a file to /dev/tty.USA28X1915P1.1 and you are 
connected to one of the keyspan serial port connectors.  Linux would be the same 
trivial exercise with a different text string.  You can set the port parameters with a 
system call to stty after you open it.

However, VISA is still easier.

-Scott




Re: Recommendation for USB to Serial Port converters

2004-04-08 Thread Scott Hannahs
At 11:33 AM +1200 4/8/04, Tim Streeter wrote:
I have been using cheap USB to serial converters, made by 'Planet', and
they have an annoying feature/bug of the same device getting alocated a
new port number if pluged into a differend USB port. This is not much of
a problem if only 1 usb to serial converter is used, but I am using 4
connected to a hub.
I know the reason for this 'feature', it is because the devices are
cheap and only identified, by the driver, through its place in the USB
tree.

My question is:
Does anybody know of a USB to serial converter, that doesn't suffer from
the above feature, that they can recommend.

The keyspan twin adaptors do the same thing.  However I merely plugged them into all 
the ports and then for each port configured it to have the same port name using the 
driver software.  (ie modem and printer).  I then set up the VISA.ini file to use 
visa serial ports 1 and 2 for modem and printer.  This works fine, except for one 
bug in the Keyspan driver where you can't repeat this process for more than 8 ports or 
the configuration software locks up.

I think it may be inherent that a USB device is identified by the physical location in 
the network.

-Scott




Re: Setting control default value

2004-04-08 Thread Scott Hannahs
At 11:12 PM +0200 4/8/04, Christophe Salzmann wrote:
Does anyone know how to set programmatically (via the VI server) the default
value of a control, this when the VI is running?

That is one of those things that can't really be done since it actually is an editing 
operation.  This means that the VI needs to be in edit mode which is not possible if 
it is being run.




RE: Alternative info-LabVIEW list (NOT!)

2004-03-30 Thread Scott Hannahs
At 2:04 PM -0500 3/22/04, Bookwalter, Dan wrote:
 I would like to see Info-LabVIEW on a news (NNTP) server.

I sure hope this doesn't happen... I have tried and tried to get our IT guys
to open up NNTP for me. They simply won't do it... I am sure there are many
others in the same situation

To everyone

For the immediate future, I plan on no major changes to how the list is run.  Many 
people have asked that it stay HTML free but no one has pleaded that they have to have 
HTML.  It will stay text only until things change.

Attachments will be still banned as much as possible.  Many incorrect attachments can 
slip thru the filters, but there will be a size limitation.  Only members will be 
allowed to post with a double opt-in subscription as usual to defeat robots (at least 
so far).

It will not become a news group.  There is a news group already.  Join it if you like. 
 It has advantages and disadvantages, but I do not intend to duplicate its 
functionality or compete in any way.  Mirroring the list to an news server is may be 
possible, but it would probably be a one way street and people using the news group 
will certainly not be able to post.  This reduces the community and I am not strongly 
in favor of it at the moment.  I will look into it, but trying to make a news group 
and keep it restricted to members only may be a bit of a job.

An archive of ALL messages to info-labview since 2/14/1992 has been established at 
http://www.searchview.net searching by subject will get most of a thread.  Enforcing 
threading is very hard given the tendency for people to use the same subject while 
wandering far afield.  For those who need threading I highly recommend a good email 
client.

A good email client can thread and expand your digests so you can got to the messages 
you want.  A good email client can filter the LabVIEW mail messages into a separate 
inbox.  A good email client can thread messages based on  headers and subject lines.  
This seems to be most of the functionality that I have seen requested.  A good email 
client can give one almost the same functionality that a newsgroup does.

At 10:00 AM +0800 3/24/04, wayne galbraith wrote:
If the list adopts the attitude of  'if it's not broke then don't try to fix it' 
we'll all be ok.

That will be the starting point along with the KISS principle!  I have been subscribed 
since that first valentines day message and the current format has been successful and 
survived the test of time well.  Any changes will be carefully considered before 
implementing them.  Of course I still feel it is your list and will take suggestions 
that don't turn into a full time job for me!

-Scott




Re: API Serial Functions

2004-03-30 Thread Scott Hannahs
Yes, and I have updated them and they are available 
http://sthmac.magnet.fsu.edu/labview.  The gotcha is that they use traditional 
serial port calls and since LV 7.0 those calls are now routed thru VISA.  There is 
also a native VISA version that is much more robust and simpler.  It is a great 
package and made the transition from traditional serial to VISA almost trivial!

But since the traditional serial port calls have gone away this is not a work around.  
The best is that there is a serial only visa package that makes things manageable.

-Scott


At 1:52 PM -0600 3/26/04, Bill Gilbert wrote:
How about the NLSerial functions that were written at Philips Research by Albert 
Geven  co? Are they still in the list archives? I still have a copy. Not sure how 
they would feel about someone distributing them for
profit, but you could ask. Here is Albert's address from the doc file(old):

Albert Geven,  email: [EMAIL PROTECTED]

I used these in some applications back when I was really disgusted with VISA and it's 
documentation for serial stuff. They are still working in old systems we have which 
have been upgraded as far as LV6.0.2.

Thanks again Albert, if you are listening!

I'm happy using VISA now, but it is sort of like the Swiss army knife you got for 
Xmas with 35 blades that requires you to switch to suspenders to hold your pants up. 
And all you really wanted was a bottle opener.

--BG

Bill Gilbert, EM Tech
UMN School of Physics and Astronomy
Tel 612 624 4870
Fax 612 624 4578   


C. Allen Weekley wrote:

Hello,

Has anyone written VI's to perform serial I/O using functions in
kernel32.dll?

Allen Weekley




[M] PCI-GPIB driver NEW VERSION for Mac OS X 10.3

2004-03-30 Thread Scott Hannahs
I apologize for the cross posting, but I have gotten messages from all these groups!

There is a new version of the PCI-GPIB  driver for Mac OS X.  Due to people asking, I 
have recompiled the driver for Mac OS X and corrected some problems so it now runs 
under Panther.  This has minimal testing so feed back is appreciated!  I am trying to 
get it out there since there seems to be some demand.

The new driver can be obtained at:
http://sthmac.magnet.fsu.edu/labview/LVonMacOSX.html#PCI-GPIB

The new kernel extension will work with Igor and OS X 10.3.3 as well.  Follow the read 
me file about renaming for that.  An XOP for Igor is included.

The labview libraries are much improved to handle some newly implemented calls (Wait 
for SRQ etc.).  I also, have added a few more emulation routines that make live a lot 
easier.

-Scott




RE: OpenG Coding Challenge - Remove Backspace

2004-03-30 Thread Scott Hannahs
I think I have those covered.  I don't know enough to shorten my time
anymore.  I look forward to seeing the other VIs.  I have no ideas how to
make it any cleaner.

It will be some work, but something like the evaluation done by NI on the different 
submissions.  My vote is evaluation for not only minimum time but memory foot print 
etc.  For the 1st NI challenge I was just out of the top 10, but I was about 0.1% of 
the size of any of the top 10.  I always thought that should count for something.

next is average speed on multiple platforms. :-)
(mine is still in the 20 mS range, but given that the peecee has a factor of 2 better 
compiler, and this is on an old 800 Mhz machine, it might come close to the posted 
times).  It may be very interesting to create the executable and then profile it with 
some of the high end (not NI) performance tools.

-Scott




Re: Let's have election!It is fun:)

2004-03-22 Thread Scott Hannahs
At 2:51 PM -0500 3/17/04, [EMAIL PROTECTED] wrote:
Let's have election! Primary?? It is fun:)


I'm from Florida, so I'll count the votes!  Kathy Harris taught me how to do it!

-Scott




Re: MAC driver for PCI-MIO

2004-03-21 Thread Scott Hannahs
At 9:08 AM +0100 3/17/04, [EMAIL PROTECTED] wrote:
Is there anybody who has written a driver for MAC OSX10.2 for the
following cards
PCI-MIO-16XE-50 and DIO 96

See the part about RLP (register level programming) on
http://sthmac.magnet.fsu.edu/labview/LVonMacOSX.html

The DDK has examples to run most cards.  Any code you develop I would be willing to 
make a library of and help distribute to others since I will be getting into the same 
things soon!

Also this is the first public announcement of this web page showing my take on the 
status of LV on OS X.  Any comments or additions welcome.

-Scott




Re: Decimal String to Number with DBL Default

2004-03-21 Thread Scott Hannahs
At 11:36 AM -0500 3/18/04, Paul F. Sullivan wrote:
LabVIEWers,

If I use Decimal String to Number with an I32 zero as the default, convert To 
Double Precision Float, and then Divide by 1000, everything works fine for 
positive and negative numbers.

To save the conversion, I tried using a DBL zero as the default. For unsigned number 
strings, this works fine as well, but if the string starts with a + or a -, the 
string doesn't convert and I get the default value (LV5 to LV7). Does anyone know why 
this happens? Is it a bug?

Use Scan from string instead.  You don't need a format specifier if there is a default 
value wired in.  But the Decimal String to Number obviously doesn't like +/- and only 
works on strings of decimal digits and not signs.  If you want tighter parsing you can 
specify a %d format string on scan from string or run it thru the string matching 
algorithm with [+-]*[0-9]+ to check for a correct format.  This is an optional + or 
minus followed by 1 or more digits.

-Scott




Re: Let's have election!It is fun:)

2004-03-21 Thread Scott Hannahs
At 7:39 PM -0500 3/17/04, Scott Hannahs wrote:
At 2:51 PM -0500 3/17/04, [EMAIL PROTECTED] wrote:
Let's have election! Primary?? It is fun:)


I'm from Florida, so I'll count the votes!  Kathy Harris taught me how to do it!

Just to keep everyone informed, I counted the votes last night and it was a simple 5 
to 4 decision!

-Scott  (yes this starting to get to be obscure US political humor, I'll shut up now!)




Re: Let's have election!It is fun:)

2004-03-21 Thread Scott Hannahs
No this is not politician speak.  And all joking aside, I also am sure that we want 
one list.  Adding features just because it is possible is not always a win situation.  
Personally, I like the text only format.  Otherwise I get email in someone's favorite 
font that shows up in an unreadble color and very very tiny for my rendering engine.  
(or a big bold color and HUGE characters)  Font specifications are not cross 
application much less cross platform.

Attachments are allowable right now with a single check box option in the software.  
BUT that is a big problem!  One is the obvious virus danger, but the other is that 
some of us read this list at home over phone lines and in-line graphics and 
attachments just clog things up.  My attachments folder is already full of things that 
belong there and LOTS of things that should go away!  I agree with Michael that we 
should first get a stable server and then think about changes.  But I don't want to 
leave some of the less technically enabled people behind.

I really encourage people to put attachments up on a web site and reference them.  I 
think this could be done with an open upload area.  But that just invites problems as 
well.  The only way to prevent mangled attachments from getting thru the list and onto 
us is by restricting size of a message.  Also the double opt-in registration, members 
only posting and message size limitation all work to keep this list spam and virus 
free!

(Michael, give me a call and we can talk about it)

-Scott


At 3:37 PM + 3/18/04, = Michael Aivaliotis = wrote:
Seriously, the final choice I guess will be Tom's as he indicated. Whatever the 
decision, I will go
along of course. And I think we all agree that one list is the final goal. As far as 
adding
features such as attachments and HTML, this is a major change from the previous 
operation. The
capability is already there in the new location i'm proposing. It is just a checkbox 
I click on.
The question is should we do that? Many people like the existing format because it 
requires very
little bandwidth. So, i think if a change to the behaviour is required, we can take a 
poll and let
the members decide. Like I said, the capability is there and we can switch this on in 
the future if
necessary. For now, the primary goal is to get to a stable server.

-- 
- Dr. Scott Hannahs, Head of User Research Instrumentation -
- http://sthmac.magnet.fsu.edu -
- National High Magnetic Field Laboratory, Florida State University-
- 1800 E. Paul Dirac Dr., Tallahassee FL 32310, (850)644-0216/FAX 644-0534 -




RE: API Serial Functions

2004-03-10 Thread Scott Hannahs
At 7:31 PM -0800 3/8/04, C. Allen Weekley wrote:
Yes.  My company manufactures a variety of instruments that communicate
solely with serial.  We have been using NI-VISA and are happy with it,
but NI-VISA requires an installation that is often larger than the
application we supply to our customers, and there are licensing
restrictions for distribution. I was hoping to develop our own serial
functions in a much smaller package than NI-VISA.  This is why I am
interested in using the Windows API.  NI-VISA with its support for so
many kinds of instruments seems like overkill for our application.  When
the customer installs the NI-VISA driver they end up installing features
to support GPIB etc. that are not needed for our application.

Yes this is a problem.  But you are also throwing out support for any other platform!

I suggest you bring up these problems with VISA to your NI contacts.  Feedback is 
important!  The licensing fee for VISA is supposed to be small (we had a discussion 
about that here awhile ago).  But the libraries can add a lot of size to an 
application!  But then again, so does the LV runtime engine!

-Scott




Re: API Serial Functions

2004-03-08 Thread Scott Hannahs
At 4:27 PM -0800 3/8/04, C. Allen Weekley wrote:
Has anyone written VI's to perform serial I/O using functions in
kernel32.dll?

Allen,
Why re-invent the wheel?  Actually the people who did this are the people who wrote 
the VISA library. Any reason not to use their work?

-Scott




Re: Application restarting

2004-03-02 Thread Scott Hannahs
At 4:25 PM + 3/2/04, Craig Graham wrote:
From: [EMAIL PROTECTED]
  I have a Labview application which is meant for test and measurement
 application to test some the units in production,
  Randomly this application is restarting the system ( running on Win98SE OS

Ditch that for a start. Go for an NT derivative- NT4, Win2K or XP. Or a
modern Mac. Or Linux. In fact, anything other than the Win95/98*/ME stream.

Craig is right!  That is normal expected behavior for a DOS derivative O/S!

-Scott




Re: Hiding Main VI's Window in built application

2004-03-01 Thread Scott Hannahs
Because in A, once you close the front panel there is no reference to the VI, unless 
it has opened its own reference.

At 1:38 PM +0200 3/1/04, Yonatan Tidhar wrote:
 From my experience (6.1)
At the top level VI:
A) if I use property node FP.Open and wired False Value to it and the reference input 
is empty
at run time when the property node is called the vi FP is close and the vi executing 
terminated.
B) If I open reference in the top level vi to it self and wire it to the property 
node the FP panel is close and the vi keep running.
C) In the executable app the top level vi FP is show always - I think the show FP 
when load is ignored.

my question are:
1) way did closing the front panel of the vi is stop the vi execution (case A)?.




Re: Hiding Main VI's Window in built application

2004-02-23 Thread Scott Hannahs
At 11:41 +0200 02/23/2004, E. Blasberg wrote:
A colleague wants to build an application where a Password dialog appears and only if 
the correct password is entered would the main VI appear.

1) Launch Password which then uses VI server to launch Main VI
2) Embed the password VI in the Main VI, but move the Main VI off-screen
3) Find a way to have the Main VI not show until the password is entered.

I think #1 is a clear winner.  First you throw up the password dialog, but in 
parallel, open a reference to Main.VI.  This will cause the Main.vi to load while the 
user is entering the password.  This makes things run much smoother from the user 
perspective it Main.vi is any reasonable size.  Then just run main and not wait for it 
to finish and exit the password VI to get it out of the way.

Then just make sure that main will open a refrence to itself so it stays running.  
This is just a modification of the splash screen technique discussed here at great 
length, only the splash screen has a password.  There are probably some examples in 
someones archives!

-Scott




Re: Reading file names from a directory

2004-02-19 Thread Scott Hannahs
At 16:18 -0800 02/18/2004, Lewandowski, James R. wrote:
I'm trying to read all file names from a directory into an array and then choose the
ones to process.  The List Directory vi implies that it will do this but
I'm not having much luck. 

The vi will produce a list of my available drives if I do not give it a path name.

Any hints on making it work?

Give it a path?

Seriously, the VI has to know which directory to list!  You may need to build a path 
from the current directory, the volume info, default directory or something, but you 
need to give it a directory to list!

There is buried in the vi.lib/platform/filemanager and 
vi.lib/utility/recursiveDirList.llb some useful routines for searching directory 
structures.  Unfortunately I don't believe that the recursiveDIrList utilites are 
actually recursive.  There is also a directory listing VI examination utility at
http://sthmac.magnet.fsu.edu/labview/vi_library.html (that is not truly recursive 
either, but I will redo it someday).

-Scott
-- 
- Dr. Scott Hannahs, Head of User Research Instrumentation -
- http://sthmac.magnet.fsu.edu -
- National High Magnetic Field Laboratory, Florida State University-
- 1800 E. Paul Dirac Dr., Tallahassee FL 32310, (850)644-0216/FAX 644-0534 -

Programming today is a race between software engineers striving to build bigger and 
better idiot-proof programs, and the universe trying to build bigger and better 
idiots. So far, the universe is winning.
-- Robert Cringley (Triumph of the Nerds).




Re: Problem withWaveform Chart

2004-02-19 Thread Scott Hannahs
At 17:56 -0500 02/18/2004, Scott Hannahs wrote:
An example can be downloaded at:
http://sthmac.magnet.fsu.edu/downloads/labview/bugs70/ChartSpeedTest.vi

And if anyone tried the example, it is now fixed and truly a LV 7.0 file!  Sorry about 
that.  If someone wants to try it under LV 6.1, let me know and I will convert!

-Scott




Re: Serial Port

2004-02-18 Thread Scott Hannahs
At 18:18 -0500 02/13/2004, Subramanian, Shankar, K wrote:
How different is it to configure and acquire data using serial port rather
than NIDAQ card. Could anyone help me out in this?

A lot different.  Now the problem is communication with a device rather than 
configuring a board.  Whole different style and problems.  The first of all being that 
any two serial devices will not communicate on the first try!  :-)

Check some of the simple serial port VIs.  You can try the serial library I use 
http://sthmac.magnet.fsu.edu/labview/vi_library.html which gives a good place to 
start.

-Scott




Re: Picture.

2004-02-18 Thread Scott Hannahs
At 20:49 -0300 02/16/2004, Daniel Alejandro Moyano wrote:
I would need to know if it is possible to remove the window case in the
picture.ctl. I mean, I would like to show a picture less window case.

Color the boarder transparent.
-Scott




Re: Converting integers to binary

2004-02-18 Thread Scott Hannahs
At 15:47 + 02/18/2004, David Macleod wrote:
Hi there,

I'm a new LabVIEW user and I'm using it in my final year University project (an 
ultrasonic scanner). Basically I am storing an array of data in LabVIEW and I want to 
convert it to a suitable state for the imaging software. The software requires a text 
file which contains the data in 8 bit binary numbers, comma seperated. The array I 
currently have stores integers. Is there any way that you know of to convert integers 
to binary in LabVIEW? Or if there's some function that writes binary to text files? 
I'd appreciate any suggestions anyone has on this.

array to spreadsheet file, function and give it a %b format string with a , 
(comma) delimiter. Convert your array to U8 first so it is only 8 bit values.

-Scott
-- 
 Dr. Scott Hannahs, Head of User Research Instrumentation
 http://sthmac.magnet.fsu.edu
 National High Magnetic Field Laboratory, Florida State University
 1800 E. Paul Dirac Dr., Tallahassee FL 32310, (850)644-0216/FAX 644-0534

Mac users enjoy a love-hate relationship with Microsoft--in which love is defined as 
'resigned tolerance' and hate as 'lava-hot rancor fueled by the fire of a thousand 
burning suns.'
-- Macworld




Re: BUGs

2004-02-18 Thread Scott Hannahs
At 23:15 -0600 02/16/2004, Greg McKaskle wrote:
Of course this is one of those
topics that is difficult to discuss in writing, so please don't use your
whiney voice when reading it.  I'm simply trying to give insight into
our process.

This process is not unique.  One can substitute any large software software project.  
I think the process NI uses is the same as almost anyone selling/maintaining software. 
 I don't particularly like the model/existing practice.  Maybe I should clarify that 
the sound track is NOT a whiney voice, but the distant sound of tilting at windmills!


LV is a very complicated piece of software.  Like most complicated
systems, changes can be characterized by cost, risk, and benefit.  These
are the what the LV team members use to decide what bugs get fixed and
when.  Of course bug fixes are also weighed against the development of
additional features.
But what metric is used on the space of cost/risk/benefit?  Of course, ultimate 
responsibility of the corporation to its owners means that cost/risk/benefit are all 
judged in terms of fiscal income.  The argument that this is bad or good is 
irrelevant, but this is the standard against which those terms are judged.  The point 
of the interview I posted was that bug-fixing is low benefit, high cost using that 
metric.  For me, the high cost is mistakes controlling equipment which for one of the 
long standing bugs (which is high cost, low return) is that valves get modified on 
actual equipment at times the operator did not intend to actuate things.  This 
involved a rather kludgy chunk of code to get around, and then it is high cost (to me) 
to maintain, since explaining this obscure code takes time/effort/cost.This end 
user cost needs to be translated to cost to NI.

When triage is performed, these bugs frequently find their way at the
end of the list.  That isn't to say they won't ever be fixed, but these
are usually batched together and dealt with when a specific feature is
reworked.
Well, actually for some bugs, they will be permanently on the low end of the scale and 
never fixed unless that whiney voice implies that there is a cost!   The Squeaky Wheel 
concept is certainly something that is considered during triage.  Again, maybe the 
squeaky wheel factor shouldn't be considered but it is.


As an example, units in LV is a unique experiment unlike what I've seen
in other programming languages or engineering tools.
This is where bugs are actually a design defect and not fixable without a major 
rewrite/overhaul.  Units are somewhat unique in the way LV handles them.  Again, NI 
will sell more copies of LV by adding express nodes than by fixing the units problems 
until the users start to complain a lot.  In some respects the model rewards that 
whiney voice.  I don't like it either.

Units and charts are still on the list of things that could stand to be
improved, and my advice to you is to make sure that bug reports give the
engineer good information so they can make good estimates on the cost,
risk, and benefit.  In particular, they can judge the risk of changes to
a particular area, and estimate the time to make the changes, but it is
sometimes hard for them to estimate how much time and how many LV users
are bothered by a bug.
Maybe a more complete description on how to report a bug and what to do, to debug the 
bug.  So that the information is as complete as possible.  The standard report merely 
asks a few simple questions about hardware/software configuration.  Maybe some 
suggestions for testing when and where the problem does or does not occur.  In most 
cases this is an artI think I have gotten good after 20 years of beta testing various 
hardware/software solutions but we could all use guidance above the simple level that 
is posted on NI's web site.  I admit, that sometimes I get sloppy and do a bad bug 
report as well.

  Of course if you are honest, you may have just
relegated your bug to the back of the line
And occasionally we get to whine about it!

There was a nice article in Tech Review journal about Why is Software So Bad.  This 
was a nice rundown of the drivers for software development and some of the attempts to 
fix it.  In a more perfect world with educated consumers and producers all would be 
fine, until then I will keep tilting at those dang windmills.  They might be giants!

-Scott




Bugs, reprise (or one more obscure quote!)

2004-02-18 Thread Scott Hannahs
The selfish spirit of commerce ... knows no country, and feels no passion or 
principle but that of gain.

-Thomas Jefferson (1743-1826) 






Re: Serial comms

2004-02-13 Thread Scott Hannahs
At 12:30 + 02/13/2004, Craig Graham wrote:
The next is in the other port settings. The manual specifies 1 start bit, 8
data bits, 1 stop bit, no parity. The VISA serial stuff in Labview 7, which
I've only just started playing with, has properties for stop bits, data bits
and parity which I've set, but I can find no option for start bits. Is this
a problem? On the offchance, I've tried all three numbers for stop bits
with no success.
One start bit is the only option.  I have never seen a device that uses a different 
number of start bits.  But serial is so screwed up I am sure there is someone out 
there that decided to use pi start bits!


The bytestream can contain null characters, so I've found the Discard NUL
property and switched it off. Since it's three wire communication- ground,
rxd and txd, I've set handshaking to none. I've also disabled the
termination character.

Again on the offchance, I've tried sending an additional null byte at the
end but it didn't help.

Does anyone have any suggestions?

It seems that your device is not responding because it probably hasn't gotten a 
complete message from the host.  Check the documentation to see if there is a 
message terminator in the command string?  Try a carriage return or lf as a 
terminator.  Try EOT as a terminator.  Make sure that the string has the correct check 
sum (sometimes protocols have the checksum include the string lenght tag, sometimes 
not).  I would guess the problem is in carefully crafting the string since you have 
tried all the hardware options.

Many systems have a way of snooping on serial port communications.  I can give you a 
good way for Mac OS X..  But I am going out on a limb and guess that isn't your 
host system!  :-)  Others can suggest software for various winders versions.

-Scott




What is the purpose of upgrading?

2004-02-13 Thread Scott Hannahs

This contains very discouraging interview with Bill Gates.  With a decidedly biased 
opinion piece, but certainly an educated discussion.
http://billpalmer.net/com000144.html

The full interview is http://www.jas.com/shame/shame/focus.html

Obligatory LV content  Do bugs get fixed between versions.  Yesterday evening I 
looked over the bug list for LV from V 6 to 7.X.  There are many long standing bugs, 
that just are not getting fixed!   This is in 4 major upgrades of LV (some I know 
existed in LV 5.1!).

A clear example is the thermometer units bug.  Now it could be worked around by 
creating a VI, but it is still clear that it is a bug and fixing bugs in existing 
software has two drawbacks for a corporations.  No glory and no income.

References:
Item 13, http://sthmac.magnet.fsu.edu/labview/buglist602.html
Item 3, http://sthmac.magnet.fsu.edu/labview/buglist610.html
Item 2, http://sthmac.magnet.fsu.edu/labview/buglist70.html

There are several others as well.  (waveform chart drawing, etc).  FYI: these have all 
been reported to NI thru normal channels as well as beta test versions.

-Scott (beating the dead horse of software reliability)

-- 
 Dr. Scott Hannahs, Head of User Research Instrumentation
 http://sthmac.magnet.fsu.edu
 National High Magnetic Field Laboratory, Florida State University
 1800 E. Paul Dirac Dr., Tallahassee FL 32310, (850)644-0216/FAX 644-0534

  Do not meddle in the affairs of sysadmins,
   for they are easy to annoy and have the root password.




why I hate express vis.....

2004-02-13 Thread Scott Hannahs
This is obviously my grumpy morning.  And I have even had my prescribed dosage of 
coffee...

I have been working with some software from a major instrumentation manufacturer.  It 
is one of those VIs that tries to do everything with multiple tabbed front panels and 
lots of user interface controls and property nodes.

Opening diagram extends over about 7 screens horizontally and 6 screens vertically 
(1600X1200 pixel screens).  Ok, bad enough, now open the hierarchy window and I see a 
main VI and about 200 express nodes, that I can't open without converting to sub-VIs.  
There were 4 actual real non-system subVIs in the whole thing with main VI using about 
12 Mb of disk space.

Unfortunately the programmer had hardwired the path separation character so it failed 
on all platforms except the development one.  The character was in 26 different places 
and each place was wired into somewhere between 1 and a dozen string building 
functions.

-Scott




RE: Dual monitors for labview use

2004-02-13 Thread Scott Hannahs
At 10:34 -0600 02/13/2004, Scott Serlin wrote:
What is the difference in performance I could see between running two
separate pci cards, one pci card and one agp card, or one dual-monitor
card?

Depends on what else you use the PCI bus for.  It is slower performance for raw bit 
pushing than the AGP so if you have a smaller monitor use that one on the PCI bus.  If 
you are also trying to acquire 60 MS/s of data, then I wouldn't recommend the PCI bus. 
 It is a limited resource like everything else.




RE: 60MS/sec- is this possible?

2004-02-12 Thread Scott Hannahs
At 11:24 -0500 02/11/2004, Ross, Michael wrote:
I have been interested in this thread - it is pretty normal for people
(managers/clients) who don't actually use LV or DAQ to ask for something
that doesn't make complete sense.

Do I risk irritating them by trying to make it make sense from the start
(and potentially convincing them that I don't understand their
application)?

My approach is to start out that I don't know the specifics of the application.  I 
need to know a lot more details and reasons before coming up with an integrated 
solution.  This is a good case, and there may be good reasons for actual data streams 
of 60 MS/s.  But you need to know what the end user really wants in terms of data, and 
what information is to be extracted.  People almost always over specify what they 
want.  Then it comes down to determining exactly what they need.

This is usually in a cost/functionality kind of scenario.  One of the ways we do RFPs 
has been particularly  useful is to do all requests for proposals as a two part 
system.  The first RFP has our requirements as we see them, but we ask the vendors to 
suggest options or changes in the requirements that would impact things.  Then we 
incorporate any suggestions we like in a final RFP which is then out for bid.

-Scott




Dangers of pipes....

2004-02-12 Thread Scott Hannahs
Well I am not talking about skateboard competition here, but interprocess 
communication.  I have found that the LV library manager will hang forever (not hang 
ten) when asked to list dates of files in a directory that contains a named pipe.  
This probably causes problems with other types of file VIs upon which the library 
manager is built.

Just a warning to those who are thinking of piping data around.  (yes it has been 
reported to NI).
-Scott




Re: tIMER

2004-02-05 Thread Scott Hannahs
At 15:43 + 02/05/2004, Nuno Lambuça wrote:
I know that the serial data in a parallel port is a loss of 7 databits, but
it was the cost :(

Yikes.  You really wanted to try to send serial data using one signal on a parallel 
port?  I doubt that could be reliable at almost any baud rate!  For a few (ie  15) 
USD, you can get a uart chip and power supply that will convert 8 bit parallel to a 
serial format.

-Scott




Re: [W6.1] RMS averaging with FFT Spectrum (Mag-Phase).vi

2004-02-04 Thread Scott Hannahs
At 16:19 +0530 02/04/2004, Dr Sanjay Gupta wrote:
Gerd,

Why not just add up the complex fft's of the various segments prior to
computing the magnitude and phase. Works every time.

Works differently.  That is a vector addition.  For a varying phase it will reduce 
your signal.  For overlapping FFTs phase slip will reduce the signal to zero after 
enough time.  RMS averaging will average the magnitude.  Very different.

-Scott
-- 
 Dr. Scott Hannahs, Head of User Research Instrumentation
 http://sthmac.magnet.fsu.edu
 National High Magnetic Field Laboratory, Florida State University
 1800 E. Paul Dirac Dr., Tallahassee FL 32310, (850)644-0216/FAX 644-0534

  Do not meddle in the affairs of sysadmins,
   for they are easy to annoy and have the root password.




RE: [W6.1] RMS averaging with FFT Spectrum (Mag-Phase).vi

2004-02-04 Thread Scott Hannahs
The benefits are that you can see the signal change during the 120 second acquisition 
time.  You could see a 200 hz signal oscillate back and forth for example.  This is 
the approach taken by the JTFA (joint time frequency analysis) toolkit.  They use 
gabor spectrograms that take gaussian windows of the data.  There is a tradeoff 
between response time (ie time to put that frequency on the screen) and accuaracy (ie 
long data sets).  The overlapping FFT with exponential averaging is a tradeoff but it 
all depends on the requirements of the job.

If you want real time display then you can't wait for that long 120 second acquisition 
time.  Also if you want information about frequency changes within that 120 seconds.

-Scott


At 13:56 -0500 02/04/2004, Bruce Ammons wrote:
I don't see any benefit to averaging parts of the signal.  If you
average within a single revolution, you will lose your phase
information.  There is no benefit of averaging sections of repeated
signals either.  Just do a large FFT for each revolution and average
them.

FYI, you could average the signals themselves or the complex FFTs for
repeated signals.  I don't recommend averaging magnitude and phase in
this case.

Bruce

--
Bruce Ammons
Ammons Engineering
www.ammonsengineering.com
(810) 687-4288 Phone
(810) 687-6202 Fax



-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Gerd Rech
Sent: Wednesday, February 04, 2004 10:26 AM
To: Bruce Ammons
Cc: Info LabVIEW
Subject: AW: [W6.1] RMS averaging with FFT Spectrum (Mag-Phase).vi


I have a phase reference pulse once per rev which starts the
acquisition. So I should get consistent phase readings for repeated
measurements. However, I was wondering if it would make sense to average
parts of the signal(using overlapping segments) for speeding up the
averaging process. The idea is to make as much use as possible out of
the data that I get into the PC.

Gerd


-Ursprungliche Nachricht-
Von: Bruce Ammons [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 4. Februar 2004 15:27
An: 'Gerd Rech'; [EMAIL PROTECTED]
Betreff: RE: [W6.1] RMS averaging with FFT Spectrum (Mag-Phase).vi


The only way to get meaningful phase is to start your acquisition at the
same phase for every segment.  An example of this would be an encoder
pulse.  If each acquisition starts at a once per rev pulse from the
encoder, they will all have the same phase components.  Another
possibility is doing order tracking, where there is a fixed number of
samples per revolution.  If you shift your window by the number of
samples per revolution, you will get the same phase again.

Any time you have a steady stream of data with no reference point, the
phase data is essentially useless.  If it is a repeating signal you
should be able to identify a reference point.  I suppose if you don't
have a hardware signal, you could use convolution to identify repeating
cycles of data.  If phase is important, you should have a reference
signal.

Bruce

--
Bruce Ammons
Ammons Engineering
www.ammonsengineering.com
(810) 687-4288 Phone
(810) 687-6202 Fax



-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Gerd Rech
Sent: Wednesday, February 04, 2004 3:36 AM
To: [EMAIL PROTECTED]
Subject: Re: [W6.1] RMS averaging with FFT Spectrum (Mag-Phase).vi


Hi folks,

I know the overlapping average technology from signal analysers. In
those cases I used them up to now, phase was not relevant. Now I have an
idea about a different use where phase would be important. Scott's
comment that phase would be meaningless if overlapping averaging is used
is making me thinking.

What about this:
1. Cut the long waveform stream into a number of (overlapping) pieces.
2. Use the FFT vi for each piece, which will produce amplitudes and
phases for each frequency bin. 3. Average apmlitude and phase for each
frequency bin separately.

Would this create meaningful phase?
I would guess yes, as all pieces were acquired in a consistant stream of
data originally.

Seems that my mathematical understanding does not reach far enough to
understand this completely.

Cheers

Gerd




Re: [W6.1] RMS averaging with FFT Spectrum (Mag-Phase).vi

2004-02-03 Thread Scott Hannahs
You are close to what a waveform analyzer does.  It is not mathematically very clean, 
but it is useful for watching frequency evolution over time.  But you need a time 
averaging buffer.
For each of the 6 segments, do an FFT and get the Mag and phase.   Have a buffer that 
is the same length as your phase and magnitude and as each segment is acquired (B is 
buffer and N is new signal)

B' = x*B + (1-x)*N

This gives a time average.  Where the time constant x goes from 0 to 1.  If X is zero, 
then you are only looking at the new signal.  If x is 1 then you are only looking at 
the past.  Usually it is expressed as a Number to average as an exponential average.  
But this way you can update the average in real time.

BTW, this is hardly a windows question!  The math involved in FFT is mostly platform 
independent!  :-)

-Scott


At 15:50 +0100 02/03/2004, Roman Golubovski wrote:
I need help/guidance on how to use FFT Spectrum (Mag-Phase).vi to perform
RMS averaging on sampled strip(s). DAQ produces strip of up to 120.000
samples (max 120sec at max 1kS/s). After that I am asked to do the following:

1) segment the strip into overlaping segments (equally sized)
2) perform RMS averaging on them

I am not familiar with this particular technological background and the
customer also cannot explain how it is being done - he just wants me to
perform what his signal analyzer does! I am not even sure the segmentation
is compatible with the RMS averaging process.

Anyway, lets assume the strip length is 200 samples, the egment size is 40
samples and the overlap is 10 samples. Than obviously I can segment the
strip into 6 segments starting at strip positions 0, 29,59,89,119,159.

What do I do now? I gues I have to turn the segments into waveforms with
dt=1/fs and t0=0? I guess I should put the FFT Spectrum (Mag-Phase).vi in
a loop with 6 iterations feeding a segment-waveform into the time signal
connector each iteration? I expect the output is NOT auto-indexed?

How to apply it properly actually?




Re: Labview 7 gotchas

2004-02-03 Thread Scott Hannahs
At 12:52 -0600 02/03/2004, Vic Blosser wrote:
Missed steps, non-functioning portion of the application.  Things will work in the 
development environment but not after it's compiled.  I tried saving as 6.1 but there 
are too many errors. 

 I'm seeing is code within loops not completely functioning before later parts of the 
 code, outside the loop start.  My question, what are some of the major changes 
 between 6.1 and 7.0 that can cause problems?  Is racing more prevalent in 7.0?  If 
 you have any suggestions I would appreciate hear them.

Certainly version 7 may have a very different execution order when it recompiles than 
something did under 6.1.  But the code still should function in correct fashion.  Code 
outside a loop can function before a loop finishes unless there is a direct data 
connection from the data inside the loop to the code on the outside.  Version 7.0 may 
have more threading than 6.1 and this may be revealing problems in old code?

It sounds like you have http://www.laputan.org/mud/mud.html.  I have a couple of 
those projects as well.  One that has been brought forward from Version 1 of labview 
and I hope to get to another major rewrite this year.

Saving for previous versions should work fine.  What kind of errors are you getting 
there?

-Scott




RE: Labview 7 gotchas

2004-02-03 Thread Scott Hannahs
At 13:53 -0600 02/03/2004, Vic Blosser wrote:
It in the error log indicating that certain vi's from the user libraries, instrument 
drivers and of course some of the labview vi's can not be saved in 6.1.  It is a 
fairly substantial list.

Right, but all those should still exist as 6.1 files and used substituted 7.0 files 
when you upgraded.  But I am curious as to what features get translated to version 7.0 
from 6.1 that can't be translated back.
-Scott




Re: synchronize

2004-02-02 Thread Scott Hannahs
At 22:41 -0800 02/01/2004, Joe wrote:
 I'm trying to read data packets from a sensor that
 is connected through a serial port and is
 configured to transfer data every 100ms. what is
 the best way to synchronize the reading intervals?

Set up a read to timeout after 200 ms if you know your termination characters, or the 
message length.  If you don't then it gets a bit trickier.

It depends on how long your string is and how much dead time you are trying to detect. 
 Then set you time out to a little less than the dead time between transmissions.  
Then put the whole thing in a loop doing the reads.  Pass the data thru a queue to a 
processing loop so it won't stall your read loop and mess up the timing.  It will take 
a bit of playing around to get the timing right and reliable.

If you can handle non synchronous reading of the data, then just keep grabbing however 
many characters you can and keep pushing them into a buffer then parse the buffer.  I 
dislike serial port intensely becasuse of this lack of handshaking and timing 
problems!  And don't even get started on the myriad of connectors and wiring 
possiblilities.  Recommended Standard Indeed!  Pfui!

-Scott




Re: Subpanels in 7.0

2004-01-30 Thread Scott Hannahs
At 08:47 -0700 01/30/2004, Jim West wrote:
It is a mystery to me why the VI cannot be open or running.  This
eliminates several useful scenarios.

It also eliminates the confusion of having two different frontpanels active at the 
same time.  The open one or the sub-panel one!

They can be running.  The examples show several running VIs.  
examples/general/controls/subpanel.llb

Item 2, is possible.  If I am thinking of what you are describing, then I have done 
that.

Item 3,just means removing it from the subpanel before opening its front panel.  Or 
vice-versa.  Keep the reference to it open so it stays in memory.

-Scott




Re: Subpanels in 7.0

2004-01-30 Thread Scott Hannahs
At 09:12 -0800 01/30/2004, PJ M wrote:
Another strange thing (to me) is why don't I *automatically* get a subpanel refnum 
when I create a subpanel (instead of that insert VI method) ?
Also, because of that, whatch out for these tranparent supanel with no scrollbar (it 
is so easy to get more that one on the FP without any indication on the BD).

Because the subpanel accepts a vi ref number and not generates it.  The ref number is 
for whatever vi you want to put into it.  The subpanel is a sink for references not a 
source.

-Scott




Re: I Really Like Event Structures, But...

2004-01-29 Thread Scott Hannahs
At 22:41 -0500 01/28/2004, Cat wrote:
I have a front panel with 1024 square-light boolean indicators (8 clusters of 4 
clusters of 32 booleans, if that makes any sense).  The purpose of this screen is to 
visually alert the user if a sensor is overloaded.  Each light represents one sensor. 
 The number of clusters/sensors visible at any one time is dependent on the test 
configuration.

I would like for the caption of a light to appear if the mouse hovers over it, and 
disappear when the mouse is elsewhere.  Other than coding 2048 Mouse Enter/Leave 
states into an event structure, what options do I have??

Setting the tool tip string property, automatically in an initialization loop?  (or 
setting all 1024) by hand?




Re: Communicating with a VI in a subpanel

2004-01-29 Thread Scott Hannahs
At 13:48 -0600 01/27/2004, Seifert, George wrote:
Sorry if this has been discussed before but my search has come up empty. Is there any 
way to communicate with a VI that's been opened in a subpanel? For instance can the 
subVI respond to a control in the main VI? I don't see how to pass the reference to 
the subVI.

Since the main VI has the reference to the sub VI, just use the value property and 
pass it the value.

You can even use it to trigger events in the sub vi by usign the value (signal) 
property.

Or you can pass a queue to the sub-vi and then have the main vi enqueue elements.

-Scott




RE: Greg's Car

2004-01-26 Thread Scott Hannahs
At 11:27 -0500 01/26/2004, Coradeschi, Tom [AMSRD-AAR-AIS-E] wrote:
You probably went to the County Line. And yes, there is stuff other than
pork on the menu: Beef (it's what's for dinner tonight).
 

There was a crowd of us in that car!  And we went to the Salt Lick.  There was beef 
BBQ as well and there was always beer!  Malted barley makes for a great meal!

-Scott




Re: Off-topic : County Line BBQ

2004-01-26 Thread Scott Hannahs
At 11:47 -0500 01/26/2004, Jim Henry wrote:
All answers are here:
http://www.countyline.com/

Actually http://www.saltlickbbq.com/

Good thing it is Monday and we aren't supposed to be coherent or on topic.




Re: FW: Replacing one instance of a VI versus many

2004-01-23 Thread Scott Hannahs
At 16:39 -0600 01/22/2004, Scott Serlin wrote:
My VI has a subVI that is called out in many places within the top level
VI.  How do I get the parent VI to pick up the subVI that has been
changed through the entire parent VI in one shot?

If you merely modify the sub-vi and resave it then it will call the new sub-vi 
everywhere.  If you want to change the sub-vi to one of a different name then do the 
following.


Open toplevel.vi
Open sub.vi
save as sub.vi as newsub.vi (do NOT check the box save without updating callers)
close newsub.vi and toplevel.vi
rename changedsub.vi to newsub.vi in the same directory as newsub.vi
reopen toplevel.vi

Bingo, it will pickup the changed subVI everywhere it used to call sub.vi.

-Scott
-- 
 Dr. Scott Hannahs, Head of User Research Instrumentation
 http://sthmac.magnet.fsu.edu
 National High Magnetic Field Laboratory, Florida State University
 1800 E. Paul Dirac Dr., Tallahassee FL 32310, (850)644-0216/FAX 644-0534

The requirements said: Windows 2000 or better.
So I got a Macintosh.




RE: Implaceness (was: Array Wish list)

2004-01-22 Thread Scott Hannahs
 From the options list http://sthmac.magnet.fsu.edu/labview/LV_Options70.html there 
is
an option called showInplaceMenuItem.  Set this to true in your .ini file.  Then 
Launch the Labview application.

Then try Tools-Advanced-Show Buffer Allocations

This will give you a pop up window and you can check which allocations to highlight 
with little black dots!  This will help you find all those memory eating problems!

Have fun!

-Scott


At 09:32 +1100 01/22/2004, Christopher G. Relf wrote:
 From NI Developer Zone: If an output is the same size and data type as an
input, and the input is not required elsewhere, the output can reuse the
input buffer.
  Using the Show Buffer Allocations tool (I forget where I
 got it on NI's
 website) there is no buffer-allocation-dot on the Transpose
 2D Array function.  This seems to imply that it is an in
  place operation.




Re: Autostarting LabVIEW VI in Linux

2004-01-16 Thread Scott Hannahs
At 13:18 -0800 01/15/2004, Jason Dunham wrote:
I'm using Linux (RH8) and trying to get a LabVIEW VI to run when the
system boots up.
I added a line to /etc/rc.local, but it doesn't seem to have an effect
The line was
/usr/local/lv70/labview /home/jason/myvi.vi

The computer already boots into a normal X-window session
Any ideas or tips?  Is there a list of command-line switches for
LabVIEW/Linux?

I am not up on Linux but under OS X (free bsd un*x) the command would be
open /usr/local/lv70/labview /home/jason/myvi.vi

the open command tells the OS to open the application associated with the VI.  You 
need to launch the application and then tell it to open the document.

But I just checked and it can also be done by executing LabVIEW with a VI file as the 
argument.  (again at least on OS X) but I think it works as well on Windows/linux.  So 
for my installation it would be:

/Applications/National\ Instruments/LabVIEW\ 7.0/LabVIEW.app/Contents/MacOS/LabVIEW 
~/Desktop/PCdynamicevents.vi

(all on one line with a space in front of the vi file name).  Be sure that the VI is 
set to auto-run at launch.

-Scott






RE: State machine diagram editor

2004-01-16 Thread Scott Hannahs
At 14:25 -0600 01/16/2004, Scott Serlin wrote:
I  do not have any controls to access in my vi state machine.  As an
example, I control a piece of equipment that labview turns on, gets some
measurements, logs those measurements to a database, and then shuts
down.  I do not access any front panel controls to run my via.  All of
that is done through a test executive.  My state machine is set up by
placing a string in each case statement that refers to the next state.
The initial string is set outside of the while loop that makes up the
state machine. Can I still utilize the strict type def enum solution in
a similar manner or better?

I think so.  If it is an enum then the case statement will automatically allow 
intermediate states to be created with the correct case when the enum is modified.

As an enum you can use the increment primitive to go to the next state in a sequence.

As an enum defining the next state to go to is not susceptible to typos.

-Scott




RE: Wouldn't it be nice if you could put a tab control in a cluster

2004-01-07 Thread Scott Hannahs
At 09:57 -0500 01/07/2004, Chuck Lippmeier wrote:
 Self explanatory

Chuck Lippmeier

Self-Explanatory thread:
http://messages.info-labview.org/2003/04/28/20.html

-Scott