18 #define DPRINT(level,fmt,args...) do{if(verbose>=level)printf(fmt, ## args);}while(0)
21 #define N_OBSERVABLES 32
37 comedi_insn preobserve_insn;
38 lsampl_t preobserve_data;
40 comedi_insn observe_insn;
42 //comedi_range *range;
48 extern caldac caldacs[N_CALDACS];
51 extern observable observables[N_OBSERVABLES];
52 extern int n_observables;
58 extern int eeprom_subdev;
59 extern int caldac_subdev;
61 extern char *devicename;
62 extern char *drivername;
72 extern int device_status;
79 void preobserve(int obs);
80 void observable_dependence(int obs);
81 void measure_observable(int obs);
82 void reset_caldacs(void);
90 void set_target(int obs,double target);
91 void update_caldac(int i);
92 void setup_caldacs(void);
93 void postgain_cal(int obs1, int obs2, int dac);
94 void cal1(int obs, int dac);
98 void channel_dependence(int adc,int range);
99 void caldac_dependence(int caldac);
100 void dump_curve(int adc,int caldac);
101 void chan_cal(int adc,int caldac,int range,double target);
102 int read_eeprom(int addr);
104 double read_chan(int adc,int range);
105 int read_chan2(char *s,int adc,int range);
106 void set_ao(comedi_t *dev,int subdev,int chan,int range,double value);
107 void check_gain(int ad_chan,int range);
108 double check_gain_chan(int ad_chan,int range,int cdac);
110 void (*do_cal)(void);
111 void cal_ni_results(void);
113 /* helper functions */
115 int get_bipolar_lowgain(comedi_t *dev,int subdev);
116 int get_bipolar_highgain(comedi_t *dev,int subdev);
117 int get_unipolar_lowgain(comedi_t *dev,int subdev);
119 /* printing scientific numbers */
121 int sci_sprint(char *s,double x,double y);
122 int sci_sprint_alt(char *s,double x,double y);
138 double s1,sx,sy,sxy,sxx;
152 int linear_fit_monotonic(linear_fit_t *l);
153 double linear_fit_func_y(linear_fit_t *l,double x);
154 double linear_fit_func_x(linear_fit_t *l,double y);
155 double check_gain_chan_x(linear_fit_t *l,unsigned int ad_chanspec,int cdac);
157 /* slowly varying measurements */
177 int new_sv_measure(new_sv_t *sv);
178 int new_sv_init(new_sv_t *sv,comedi_t *dev,int subdev,int chan,int range,int aref);