#ifndef CAEN_V729_H
 
#define CAEN_V729_H
 
 
 
#define V729_OFFSET 0x880000
 
 
 
typedef struct  {
 
  uint32_t mask;
 
  int  cbl;
 
  int nall;
 
  char filename[0xFF];
 
  int verbose ;
 
  int neve    ;
 
  uint32_t addr;
 
  uint32_t bias1 ;
 
  uint32_t bias2;
 
  int append;
 
  int panel;
 
  FILE *fp;
 
  double fraction;
 
} CAEN_V729_PARAM;
 
 
 
void V729_map( uint32_t addr);
 
void V729_info(FILE *kam);
 
void V729_reg( uint32_t val);
 
void V729_reset(int nall,int nbefore,int obae,int obaf);
 
void V729_set_bias(int range, int bias1, int bias2);
 
void V729_aquisition_mode(uint32_t mode);
 
void V729_soft_stop( void);
 
void V729_clear_buffer(void) ;
 
void V729_get_buffer(uint32_t *data1, uint32_t *data2);
 
void V729_init(uint32_t addr, int nall, int cbl, uint32_t bias1, uint32_t bias2);
 
int V729_status( void );
 
int V729_event(int mask, int nall, uint32_t *data,uint32_t *data1,uint32_t *data2);
 
int V729_decode(uint32_t mask, int nall, uint32_t *data,  uint16_t *dadc, int debug);
 
void V729_Usage(void);
 
int V729_GetParams(int argc,char **argv);
 
int V729_LoadPanel (int Parent_Panel_Handle, char Filename[], int Panel_Resource_ID);
 
int  V729_SetFilePointer (FILE *fp);
 
int  V729_main (int argc,char **argv);
 
int CVICALLBACK V729_daq(void *functionData);
 
#endif