LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

IVI-C Removing IviFgenArbSeq capability from driver

Hi,

 

I hope someone can help - I am sure I am missing something obvious but so far I haven't been able to fix the following issue.

I am writing an IVI-C driver in CVI for an IviFgen and the generator does not support the IviFgenArbSeq capability so I want to remove this from the driver.

I have deleted the "IviFgenArbSeq," line from the below


 /*=CHANGE:===============================================================*
        Set the group capabilities attribute, Remove the extension groups
        this driver does not support, and add additional code to dynamically
        determine how the presence of specific instrument options may affect
        this attribute.
     *============================================================END=CHANGE=*/
       
 checkErr( Ivi_SetAttributeViString (vi, "", TG5011_ATTR_GROUP_CAPABILITIES, 0,
                                     "IviFgenBase,"
                                     "IviFgenStdFunc,"
                                     "IviFgenArbWfm,"
                                     "IviFgenArbFrequency,"
                                     "IviFgenArbSeq,"
                                     "IviFgenTrigger,"
                                     "IviFgenInternalTrigger,"
                                     "IviFgenSoftwareTrigger,"
                                     "IviFgenBurst,"
                                     "IviFgenModulateAM,"
                                     "IviFgenModulateFM"));

 

and deleted the following

 

  /*=CHANGE:=============================================================*
        Define TG5011_VAL_MAX_SEQUENCES below to the
        maximum number of arbitrary sequences your function generator
        supports.  If your function generator does  not support arbitrary
        sequences, delete these macros.
     *==========================================================END=CHANGE=*/


#define TG5011_VAL_MAX_SEQUENCES         (10L)
#define TG5011_VAL_FIRST_SEQUENCE_HANDLE (20000L)
#define TG5011_VAL_LAST_SEQUENCE_HANDLE  (TG5011_VAL_FIRST_SEQUENCE_HANDLE + TG5011_VAL_MAX_SEQUENCES - 1L)

#define TG5011_SEQ_HANDLE_FROM_INDEX(y)     (TG5011_VAL_FIRST_SEQUENCE_HANDLE + y)
#define TG5011_SEQ_INDEX_FROM_HANDLE(y)     (TG5011_VAL_FIRST_SEQUENCE_HANDLE)


Naturally this leads to several compilation errors which I think I have cleaned up by deleting all the functions relating to arb sequencing and I also deleted the attributes in the attribute editor related to sequencing so that the driver now compiles OK.

 

My question is that when I test the driver with the "Test Specific IVI Driver" (under the Tools menu) I get Compliance errors for arb sequencing. The errors tell me that arb sequencing attributes and functions have not been implemented.  But when I run a Compliance check for other vendors fgen drivers (that also do not support sequencing) then I simply get a nice message saying that sequencing has not been implemented - Not an error.

 

So there must be a way of building into the dll the fact that I have chosen not to implement the capability rather than the functions/attributes are all missing.

 

Thanks,

 

Phil

 

 

 

0 Kudos
Message 1 of 3
(3,150 Views)

Have you had a chance to check the fgen class specification?

0 Kudos
Message 2 of 3
(3,141 Views)

Hi,

 

Thanks for the reply - I finally unravelled the problem and found a remnant of arb sequencing code in my source which I have now removed and I now pass the Compliance test and it simply reports that IviFgenArbSeq is not implemented rather than it being an error.

0 Kudos
Message 3 of 3
(3,128 Views)