260
char *s = "$Id: comedi_calibrate.c,v 1.89 2003/08/08 17:38:59 fmhess Exp $";
260
char *s = "$Id: comedi_calibrate.c,v 1.92 2004/03/29 01:34:15 fmhess Exp $";
262
262
printf("%.*s\n",(int)strlen(s)-2,s+1);
263
263
printf("Driver name: %s\n", options.driver_name);
397
397
lsampl_t ref_data[ 2 ];
399
399
// setup reference source
400
memset( &reference_source_config, 0, sizeof(reference_source_config) );
401
reference_source_config.insn = INSN_CONFIG;
402
reference_source_config.n = 2;
403
reference_source_config.subdev = setup->ad_subdev;
404
reference_source_config.data = ref_data;
405
reference_source_config.data[ 0 ] = INSN_CONFIG_ALT_SOURCE;
406
reference_source_config.data[ 1 ] = setup->observables[obs].reference_source;
400
if(setup->observables[obs].reference_source >= 0)
402
memset( &reference_source_config, 0, sizeof(reference_source_config) );
403
reference_source_config.insn = INSN_CONFIG;
404
reference_source_config.n = 2;
405
reference_source_config.subdev = setup->ad_subdev;
406
reference_source_config.data = ref_data;
407
reference_source_config.data[ 0 ] = INSN_CONFIG_ALT_SOURCE;
408
reference_source_config.data[ 1 ] = setup->observables[obs].reference_source;
408
retval = comedi_do_insn( setup->dev, &reference_source_config );
409
/* ignore errors for now since older ni driver doesn't
410
* support reference config insn */
412
perror("preobserve() ignoring reference config error" );
410
retval = comedi_do_insn( setup->dev, &reference_source_config );
411
/* ignore errors for now since older ni driver doesn't
412
* support reference config insn */
414
perror("preobserve() ignoring reference config error" );
415
418
if( setup->observables[obs].preobserve_insn.n != 0){
916
919
// XXX check subdevice type is really calibration
917
// XXX check we dont exceed max number of allowable caldacs
919
921
n_chan = comedi_get_n_channels( setup->dev, caldac_subdev );
923
assert(setup->n_caldacs + n_chan < N_CALDACS);
921
925
for(i = 0; i < n_chan; i++){
922
926
setup->caldacs[ setup->n_caldacs + i ].subdev = caldac_subdev;
923
927
setup->caldacs[ setup->n_caldacs + i ].chan = i;
924
setup->caldacs[ setup->n_caldacs + i ].maxdata = comedi_get_maxdata( setup->dev, caldac_subdev, i);
928
setup->caldacs[ setup->n_caldacs + i ].maxdata = comedi_get_maxdata(setup->dev, caldac_subdev, i);
929
assert(setup->caldacs[ setup->n_caldacs + i ].maxdata > 0);
925
930
setup->caldacs[ setup->n_caldacs + i ].current=0;
1177
1182
for(i=0;i<n_ranges;i++){
1178
1183
range = comedi_get_range(dev,subdev,0,i);
1179
1184
if( is_bipolar( dev, subdev, 0, i ) == 0 ) continue;
1185
if(range->unit == UNIT_none ) continue;
1180
1186
if(range->max>max){
1182
1188
max=range->max;
1197
1203
for(i=0;i<n_ranges;i++){
1198
1204
range = comedi_get_range(dev,subdev,0,i);
1199
1205
if( is_bipolar( dev, subdev, 0, i ) == 0 ) continue;
1206
if(range->unit == UNIT_none ) continue;
1200
1207
if(range->max<min){
1202
1209
min=range->max;
1217
1224
for(i=0;i<n_ranges;i++){
1218
1225
range = comedi_get_range(dev,subdev,0,i);
1219
1226
if( is_unipolar( dev, subdev, 0, i ) == 0 ) continue;
1227
if(range->unit == UNIT_none ) continue;
1220
1228
if(range->max>max){
1222
1230
max=range->max;
1237
1245
for(i=0;i<n_ranges;i++){
1238
1246
range = comedi_get_range(dev,subdev,0,i);
1239
1247
if( is_unipolar( dev, subdev, 0, i ) == 0 ) continue;
1248
if(range->unit == UNIT_none ) continue;
1240
1249
if(range->max < max){
1242
1251
max=range->max;