// Commands and State codes to handle the ADC prototype #define VOID 0 #define INIT 1 #define ERASE 2 #define WRITE 3 #define READ 4 #define TIMED 5 #define NPMT 6 #define MAXSCAN 7 #define PMTLIST 8 #define DACSET 9 #define DELAY 10 #define CANSET 11 #define CANGET 12 #define REQUEST 14 #define CONVERT 15 #define TRIGGER 16 #define STARTADC 17 #define STOPADC 18 #define SERIALNUM 19 #define SAVE_FA 20 #define REPROGRAM 21 #define WRITE_RAM 22 #define RESTART 49 #define RESET 50 #define ACK 51 #define GO_FB 101 #define GO_ISP 102 #define ERASE_SUCCESS 103 #define ERASE_FAILURE 104 #define WRITE_SUCCESS 105 #define WRITE_FAILURE 106 #define IDALLOC 107 // ADC communication protocol functions declarations // In System Programability Functions int adc_init (unsigned int rb, int chn, int Base, char action, unsigned int version[8]); long adc_erase (unsigned int rb, int chn, int Base ); long adc_blankcheck (unsigned int rb, int chn, int Base, unsigned int *adr); long adc_save_fa (unsigned int rb, int chn, int Base ); long adc_reprogram_fa (unsigned int rb, int chn, int Base ); long adc_writeram (unsigned int rb, int chn, int Base, unsigned int position, unsigned char data); long adc_writemem (unsigned int rb, int chn, int Base, int adr, unsigned char data); long adc_readmem (unsigned int rb, int chn, int Base, unsigned int adr,unsigned char *data); long adc_get_serialnumber (unsigned int rb,int chn, int Base, unsigned char serialn[8]); int adc_idalloc (unsigned int rb, int chn, unsigned char serie[7], int ident); // Readout Interface Control Functions long adc_rate (unsigned int rb, int chn, int Base, unsigned short timer); long adc_npmt (unsigned int rb, int chn, int Base, char npmt); long adc_maxscans (unsigned int rb, int chn, int Base, unsigned short maxscans); long adc_pmtlist (unsigned int rb, int chn, int Base, char pos, char card); long adc_dacset (unsigned int rb, int chn, int Base, unsigned char dac); long adc_delay (unsigned int rb, int chn, int Base, unsigned short delay); long adc_3in1set (unsigned int rb, int chn, int Base, unsigned short dat); long adc_3in1get (unsigned int rb, int chn, int Base, unsigned short *dat); long adc_convert (unsigned int rb, int chn, int Base, unsigned short *result); long adc_trigger (unsigned int rb, int chn, int Base, char npmt, unsigned short result[48]); void adc_start (unsigned int rb, int chn, int Base ); void adc_auto (unsigned int rb, int chn, int Base, char npmt, unsigned short result[48]); void adc_stop (unsigned int rb, int chn, int Base ); long adc_get_rate (unsigned int rb, int chn, int Base, unsigned short *timer); long adc_get_npmt (unsigned int rb, int chn, int Base, char *npmt); long adc_get_maxscans (unsigned int rb, int chn, int Base, unsigned short *maxscans); long adc_get_pmtlist (unsigned int rb, int chn, int Base, char pos, char *card); long adc_get_delay (unsigned int rb, int chn, int Base, unsigned short *delay); void adc_reset (unsigned int rb, int chn, int Base); // CAN communication functions void can_tx(unsigned int rb, int chn, int id, int dlc, int rtr, unsigned int data[8]); int can_rx(unsigned int rb, int *chn, int *id, int *dlc, int *rtr, unsigned int data[8]); // Restart function long adc_restart(unsigned int rb, int chn, int Base); // Dump mode functions long adc_dm_convert(unsigned int rb, int chn, int Base);