ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

VXIpnp fp ring conversion to LabVIEW problem

When converting a VXIpnp driver fp for use in LabVIEW, some of the ring parameters get combined into a single value.

For example, on the fp, there's a parameter called measMethod that has two values, Integration and Resolution, with the values of 0 and 1 respectively (actually use enums). After converting the driver in LabVIEW, the ring lists the first ring item as "Integration, Resolution" with a value of 0. No other items are listed.

This does not happen for all rings, only a portion of them. What causing this and is there a way to fix/work around it?

I'm using LabVIEW 6.0. The values are appropriate in the driver's .h file and are listed correctly in the fp's label/pair section.

Thanks,

Scott
0 Kudos
Message 1 of 5
(3,148 Views)
Could you post a message either telling which specific driver you are using or actually attaching the driver itself? I will try the same thing and see if I can reproduce this behavior for you. Thanks.
J.R. Allen
0 Kudos
Message 2 of 5
(3,148 Views)
I'm afraid the driver's in development, so I can't post it yet. I used an example function and placed a screen shot of the fp at http://www.primenet.com/~skott/FP-View.bmp, and the VI at http://www.primenet.com/~skott/VI-View.bmp. Below is the code from the .h file.
------------------

#define age444xa_SEM_MEASURE_TYPE_TOTAL 0
#define age444xa_SEM_MEASURE_TYPE_PSD 1

ViStatus _VI_FUNC age444xa_SA_SEMSetMeasurementType
(ViSession instrumentHandle,
ViInt32 SA_SEMMeasurementType);
0 Kudos
Message 3 of 5
(3,148 Views)
To answer my own problem, apparently LabVIEW has a problem with some commenting styles in the driver.h file. I found this code in the driver .h file:

/* Trace Type */
#define age444xa_TRACE_1 0
#define age444xa_TRACE_2 1
#define age444xa_TRACE_3 2
// Use this enum when testing for traces 1 through 3 only:
#define age444xa_TRACE_LASTENUM 3
#define age444xa_TRACE_LINE1 3
#define age444xa_TRACE_LINE2 4
#define age444xa_TRACE_RAW 5
// Use this enum when testing for the last math trace line:
#define age444xa_TRACE_LINE_LASTENUM 6

I then changed it to the following and the problem went away:

/* Trace Type */
#define age444xa_TRACE_1
0
#define age444xa_TRACE_2 1
#define age444xa_TRACE_3 2
#define age444xa_TRACE_LASTENUM 3 // Use this enum when testing for traces 1 through 3 only
#define age444xa_TRACE_LINE1 3
#define age444xa_TRACE_LINE2 4
#define age444xa_TRACE_RAW 5
#define age444xa_TRACE_LINE_LASTENUM 6

Also, I found that the following comments in the .h file cause the conversion to fail:

/*
// something
*/

Inserting lines though allows it to pass:

/*

// something

*/
0 Kudos
Message 4 of 5
(3,148 Views)
I would like to try to get to the bottom of this. I don't think the
comment style should have had any impact on this behavior. (And I couldn't
reproduce it in a simple test I put together.)
Can you contact me off list so I can get more information?

Brian Powell
brian@ni.com

"scottr" wrote in message
news:506500000005000000B59D0000-1027480788000@exchange.ni.com...
> To answer my own problem, apparently LabVIEW has a problem with some
> commenting styles in the driver.h file. I found this code in the
> driver .h file:
>
> /* Trace Type */
> #define age444xa_TRACE_1 0
> #define age444xa_TRACE_2 1
> #define age444xa_TRACE_3 2
> // Use this enum when testing for traces 1 through 3 o
nly:
> #define age444xa_TRACE_LASTENUM 3
> #define age444xa_TRACE_LINE1 3
> #define age444xa_TRACE_LINE2 4
> #define age444xa_TRACE_RAW 5
> // Use this enum when testing for the last math trace line:
> #define age444xa_TRACE_LINE_LASTENUM 6
>
> I then changed it to the following and the problem went away:
>
> /* Trace Type */
> #define age444xa_TRACE_1 0
> #define age444xa_TRACE_2 1
> #define age444xa_TRACE_3 2
> #define age444xa_TRACE_LASTENUM 3 // Use this enum when
> testing for traces 1 through 3 only
> #define age444xa_TRACE_LINE1 3
> #define age444xa_TRACE_LINE2 4
> #define age444xa_TRACE_RAW 5
> #define age444xa_TRACE_LINE_LASTENUM 6
>
> Also, I found that the following comments in the .h file cause the
> conversion to fail:
>
> /*
> // something
> */
>
> Inserting lines though allows it to pass
:
>
> /*
>
> // something
>
> */
>
0 Kudos
Message 5 of 5
(3,148 Views)