diff --git a/FAST ComTec/DMCS6.dll b/FAST ComTec/DMCS6.dll deleted file mode 100644 index 260f1dd..0000000 Binary files a/FAST ComTec/DMCS6.dll and /dev/null differ diff --git a/FAST ComTec/Files from FAST ComTec/mcs6adll/c/DMCS6.dll b/FAST ComTec/Files from FAST ComTec/mcs6adll/c/DMCS6.dll deleted file mode 100644 index 260f1dd..0000000 Binary files a/FAST ComTec/Files from FAST ComTec/mcs6adll/c/DMCS6.dll and /dev/null differ diff --git a/FAST ComTec/Files from FAST ComTec/mcs6adll/c/STRUCT.H b/FAST ComTec/Files from FAST ComTec/mcs6adll/c/STRUCT.H index 41db462..046c9c4 100644 --- a/FAST ComTec/Files from FAST ComTec/mcs6adll/c/STRUCT.H +++ b/FAST ComTec/Files from FAST ComTec/mcs6adll/c/STRUCT.H @@ -51,36 +51,36 @@ typedef struct { #define ST_STARTS 6 typedef struct{ - unsigned int started; // aquisition status - unsigned int maxval; // maxval + unsigned long started; // aquisition status + unsigned long maxval; // maxval double cnt[8]; // status: runtime in msec, ofls, // total sum, roi sum, roi rate, sweeps, starts } ACQSTATUS; typedef struct { - int savedata; // bit 0: auto save after stop + long savedata; // bit 0: auto save after stop // bit 1: write listfile // bit 2: listfile only, no evaluation - int autoinc; // 1 if auto increment filename - int fmt; // format type (seperate spectra): + long autoinc; // 1 if auto increment filename + long fmt; // format type (seperate spectra): // 0 == ASCII, 1 == binary, // 2 == CSV - int mpafmt; // format used in mpa datafiles - int sephead; // seperate Header - int smpts; - int caluse; + long mpafmt; // format used in mpa datafiles + long sephead; // seperate Header + long smpts; + long caluse; char filename[256]; char specfile[256]; char command[256]; } DATSETTING; typedef struct { - int use; // 1 if Replay Mode ON - int modified; // Bit 0: 1 if different settings are used + long use; // 1 if Replay Mode ON + long modified; // Bit 0: 1 if different settings are used // (Bit 1: Write ASCII, reserved) - int limit; // 0: all, + long limit; // 0: all, // 1: limited sweep range - int speed; // replay speed in units of 100 kB / sec + long speed; // replay speed in units of 100 kB / sec double startsfrom; // first start# double startsto; // last start# double startspreset; // last start - first start @@ -88,20 +88,20 @@ typedef struct { } REPLAYSETTING; typedef struct{ - int range; // spectrum length - int cftfak; // LOWORD: 256 * cft factor (t_after_peak / t_to_peak) + long range; // spectrum length + long cftfak; // LOWORD: 256 * cft factor (t_after_peak / t_to_peak) // HIWORD: max pulse width for CFT - int roimin; // lower ROI limit - int roimax; // upper limit: roimin <= channel < roimax - int nregions; // number of regions - int caluse; // bit0: 1 if calibration used, higher bits: formula - int calpoints; // number of calibration points - int param; // (reserved:) for MAP and POS: LOWORD=x, HIWORD=y - int offset; // (reserved:) zoomed MAPS: LOWORD: xoffset, HIWORD, yoffset - int xdim; // (reserved:) x resolution of maps - unsigned int bitshift; // LOWORD: Binwidth = 2 ^ (bitshift) + long roimin; // lower ROI limit + long roimax; // upper limit: roimin <= channel < roimax + long nregions; // number of regions + long caluse; // bit0: 1 if calibration used, higher bits: formula + long calpoints; // number of calibration points + long param; // (reserved:) for MAP and POS: LOWORD=x, HIWORD=y + long offset; // (reserved:) zoomed MAPS: LOWORD: xoffset, HIWORD, yoffset + long xdim; // (reserved:) x resolution of maps + unsigned long bitshift; // LOWORD: Binwidth = 2 ^ (bitshift) // HIWORD: Threshold for Coinc - int active; // Spectrum definition words for CHN1..6: + long active; // Spectrum definition words for CHN1..6: // active & 0xF ==0 not used // ==1 single // bit 8: Enable Tag bits @@ -129,20 +129,20 @@ typedef struct{ } ACQSETTING; typedef struct{ - int range; // spectrum length - int cftfak; // LOWORD: 256 * cft factor (t_after_peak / t_to_peak) + long range; // spectrum length + long cftfak; // LOWORD: 256 * cft factor (t_after_peak / t_to_peak) // HIWORD: max pulse width for CFT - int roimin; // lower ROI limit - int roimax; // upper limit: roimin <= channel < roimax - int nregions; // number of regions - int caluse; // bit0: 1 if calibration used, higher bits: formula - int calpoints; // number of calibration points - int param; // (reserved:) for MAP and POS: LOWORD=x, HIWORD=y - int offset; // (reserved:) zoomed MAPS: LOWORD: xoffset, HIWORD, yoffset - int xdim; // (reserved:) x resolution of maps - unsigned int bitshift; // LOWORD: Binwidth = 2 ^ (bitshift) + long roimin; // lower ROI limit + long roimax; // upper limit: roimin <= channel < roimax + long nregions; // number of regions + long caluse; // bit0: 1 if calibration used, higher bits: formula + long calpoints; // number of calibration points + long param; // (reserved:) for MAP and POS: LOWORD=x, HIWORD=y + long offset; // (reserved:) zoomed MAPS: LOWORD: xoffset, HIWORD, yoffset + long xdim; // (reserved:) x resolution of maps + unsigned long bitshift; // LOWORD: Binwidth = 2 ^ (bitshift) // HIWORD: Threshold for Coinc - int active; // Spectrum definition words for CHN1..6: + long active; // Spectrum definition words for CHN1..6: // active & 0xF ==0 not used // ==1 enabled // bit 8: Enable Tag bits @@ -165,13 +165,13 @@ typedef struct{ double dummy2; // double dummy3; // // MPANT or Server private saved settings: - int type; // 0=single, 1=MAP, 2=ISO... - int ydim; // y resolution of maps - int reserved[16]; + long type; // 0=single, 1=MAP, 2=ISO... + long ydim; // y resolution of maps + long reserved[16]; } EXTACQSETTING; typedef struct { - int sweepmode; // sweepmode & 0xF: 0 = normal, + long sweepmode; // sweepmode & 0xF: 0 = normal, // 1=differential (relative to first stop in sweep) // 4=sequential // 5=seq.+diff (Ch1), bit0 = differential mode @@ -194,7 +194,7 @@ typedef struct { // bit 16..bit 20 ~(input channel enable) // bit 24: require data lost bit in data // bit 25: don't allow 6 byte datalength - int prena; // bit 0: realtime preset enabled + long prena; // bit 0: realtime preset enabled // bit 1: // bit 2: sweep preset enabled // bit 3: ROI preset enabled @@ -204,9 +204,9 @@ typedef struct { // bit 7: ROI4 preset enabled // bit 8: ROI5 preset enabled // bit 9: ROI6 preset enabled - int cycles; // for sequential mode - int sequences; // - int syncout; // LOWORD: sync out; bit 0..5 NIM syncout, bit 8..13 TTL syncout + long cycles; // for sequential mode + long sequences; // + long syncout; // LOWORD: sync out; bit 0..5 NIM syncout, bit 8..13 TTL syncout // bit7: NIM syncout_invert, bit15: TTL syncout_invert // 0="0", 1=10 MHz, 2=78.125 MHz, 3=100 MHz, 4=156.25 MHz, // 5=200 MHz, 6=312.5 MHz, 7=Ch0, 8=Ch1, 9=Ch2, 10=Ch3, @@ -214,7 +214,7 @@ typedef struct { // 16=SYS_ON, 17=WINDOW, 18=HOLD_OFF, 19=EOS_DEADTIME // 20=TIME[0],...,51=TIME[31], 52...63=SWEEP[0]..SWEEP[11] // - int digio; // LOWORD: Use of Dig I/O, GO Line: + long digio; // LOWORD: Use of Dig I/O, GO Line: // bit 0: status dig 0..3 // bit 1: Output digval and increment digval after stop // bit 2: Invert polarity @@ -225,25 +225,25 @@ typedef struct { // bit 10: GO Low at Stop // bit 11: Clear at triggered start // bit 12: Only triggered start - int digval; // digval=0..255 value for samplechanger - int dac0; // DAC0 value (START) + long digval; // digval=0..255 value for samplechanger + long dac0; // DAC0 value (START) // bit 16: Start with rising edge - int dac1; // DAC1 value (STOP 1) - int dac2; // DAC2 value (STOP 2) - int dac3; // DAC3 value (STOP 3) - int dac4; // DAC4 value (STOP 4) - int dac5; // DAC5 value (STOP 5) + long dac1; // DAC1 value (STOP 1) + long dac2; // DAC2 value (STOP 2) + long dac3; // DAC3 value (STOP 3) + long dac4; // DAC4 value (STOP 4) + long dac5; // DAC5 value (STOP 5) // bit (14,15) of each word: 0=falling, 1=rising, 2=both, 3=both+CFT // bit 17 of each: pulse width mode under threshold int fdac; // Feature DAC 0..16383 --> 0..2.5V int tagbits; // number of tagbits int extclk; // use external clock - int maxchan; // number of input channels (=6) - int serno; // serial number - int ddruse; // bit0: DDR_USE, bit1: DDR_2GB + long maxchan; // number of input channels (=6) + long serno; // serial number + long ddruse; // bit0: DDR_USE, bit1: DDR_2GB // bits[2:3]: usb_usage // bits[4:5]: wdlen - int active; // module in system + long active; // module in system double holdafter; // Hold off double swpreset; // sweep preset value double fstchan; // acquisition delay @@ -278,15 +278,15 @@ typedef struct { int sys0[56]; // System definition words for ADCs (1..24): // see active definition in ADCSETTING - int sys1[40]; // ADC in System (=1) - int adcs[5]; // Number of ADCs per module (0) - int tofs[5]; // Number of TOF inputs per module - int res[6]; // reserved + int sys1[56]; // ADC in System (=1) + int adcs[8]; // Number of ADCs per module (0) + int tofs[8]; // Number of TOF inputs per module + int res[8]; // reserved } COINCDEF; typedef struct{ - unsigned int HUGE *s0; // pointer to spectrum - unsigned int *region; // pointer to regions + unsigned long HUGE *s0; // pointer to spectrum + unsigned long *region; // pointer to regions unsigned char *comment0; // pointer to strings double *cnt; // pointer to counters HANDLE hs0; diff --git a/FAST ComTec/Files from FAST ComTec/mcs6adll/c/tstmcs6a.c b/FAST ComTec/Files from FAST ComTec/mcs6adll/c/tstmcs6a.c deleted file mode 100644 index b1e249a..0000000 --- a/FAST ComTec/Files from FAST ComTec/mcs6adll/c/tstmcs6a.c +++ /dev/null @@ -1,240 +0,0 @@ -// -------------------------------------------------------------------------- -// TSTMCS6A.C : DMCS6.DLL Software driver C example -// -------------------------------------------------------------------------- - -#include -#include -#include -#include - -#undef DLL -#include "dmcs6.h" - - -HANDLE hDLL = 0; - -IMPAGETSETTING lpSet=NULL; -IMPANEWSTATUS lpNewStat=NULL; -IMPAGETSTATUS lpStat=NULL; -IMPARUNCMD lpRun=NULL; -IMPAGETCNT lpCnt=NULL; -IMPAGETROI lpRoi=NULL; -IMPAGETDAT lpDat=NULL; -IMPAGETSTR lpStr=NULL; -IMPASERVEXEC lpServ=NULL; -IMPAGETDATSET lpGetDatSet=NULL; -IMPAGETMCSSET lpGetMCSSet=NULL; -IMPADIGINOUT lpDigInOut=NULL; -IMPADACOUT lpDacOut=NULL; -IMPASTART lpStart=NULL; -IMPAHALT lpHalt=NULL; -IMPACONTINUE lpContinue=NULL; -IMPAERASE lpErase=NULL; - - -ACQSETTING Setting={0}; -ACQDATA Data={0}; -ACQDEF Def={0}; -ACQSTATUS Status={0}; -DATSETTING DatSetting={0}; -BOARDSETTING MCSSetting={0}; - -short nDev=0; - -void help() -{ - printf("Commands:\n"); - printf("Q Quit\n"); - printf("? Help\n"); - printf("S Show Status\n"); - printf("H Halt\n"); - printf("T Show Setting\n"); - printf("CHN=x Switch to CHN #x \n"); - printf("(... more see command language in MPANT help)\n"); - printf("\n"); -} - -void PrintMpaStatus(ACQSTATUS *Stat) -{ - if(Stat->started == 1) printf("ON\n"); - else if(Stat->started == 3) printf("READ OUT\n"); - else printf("OFF\n"); - printf("runtime= %.2lf\n", Stat->cnt[ST_RUNTIME]); - printf("sweeps= %lf\n", Stat->cnt[ST_SWEEPS]); - printf("starts= %lf\n\n", Stat->cnt[ST_STARTS]); -} - -void PrintStatus(ACQSTATUS *Stat) -{ - printf("totalsum= %lf\n", Stat->cnt[ST_TOTALSUM]); - printf("roisum= %lf\n", Stat->cnt[ST_ROISUM]); - printf("rate= %.2lf\n", Stat->cnt[ST_ROIRATE]); - printf("ofls= %.2lf\n\n", Stat->cnt[ST_OFLS]); -} - -void PrintDatSetting(DATSETTING *Set) -{ - printf("savedata= %d\n", Set->savedata); - printf("autoinc= %d\n", Set->autoinc); - printf("fmt= %d\n", Set->fmt); - printf("mpafmt= %d\n", Set->mpafmt); - printf("sephead= %d\n", Set->sephead); - printf("filename= %s\n\n", Set->filename); -} - -void PrintMCSSetting(BOARDSETTING *Set) -{ - printf("sweepmode= 0x%x\n", Set->sweepmode); - printf("prena= 0x%x\n", Set->prena); - printf("cycles= %d\n", Set->cycles); - printf("sequences= %d\n", Set->sequences); - printf("syncout= 0x%x\n", Set->syncout); - printf("digio= 0x%x\n", Set->digio); - printf("digval= %d\n", Set->digval); - printf("dac0= 0x%x\n", Set->dac0); - printf("dac1= 0x%x\n", Set->dac1); - printf("dac2= 0x%x\n", Set->dac2); - printf("dac3= 0x%x\n", Set->dac3); - printf("dac4= 0x%x\n", Set->dac4); - printf("dac5= 0x%x\n", Set->dac5); - printf("fdac= 0x%x\n", Set->fdac); - printf("tagbits= %d\n", Set->tagbits); - printf("extclk= %d\n", Set->extclk); - printf("maxchan= %d\n", Set->maxchan); - printf("serno= %d\n", Set->serno); - printf("ddruse= 0x%x\n", Set->ddruse); - printf("active= %d\n", Set->active); - printf("holdafter= %lg\n", Set->holdafter); - printf("swpreset= %lg\n", Set->swpreset); - printf("fstchan= %lg\n", Set->fstchan); - printf("timepreset= %lg\n\n", Set->timepreset); -} - -void PrintSetting(ACQSETTING *Set) -{ - printf("range= %ld\n", Set->range); - printf("cftfak= 0x%x\n", Set->cftfak); - printf("roimin= %ld\n", Set->roimin); - printf("roimax= %ld\n", Set->roimax); - printf("nregions= %d\n", Set->nregions); - printf("caluse= %d\n", Set->caluse); - printf("calpoints= %d\n", Set->calpoints); - printf("param= 0x%lx\n", Set->param); - printf("offset= 0x%lx\n", Set->offset); - printf("xdim= %d\n", Set->xdim); - printf("bitshift= %d\n", Set->bitshift); - printf("active= 0x%x\n", Set->active); - printf("roipreset= %lg\n\n", Set->eventpreset); -} - -int run(char *command) -{ - int err; - if (!_stricmp(command, "?")) help(); - else if (!_stricmp(command,"Q")) return 1; - else if (!_stricmp(command,"S")) { - err = (*lpStat)(&Status, nDev); - if (nDev) PrintStatus(&Status); - else PrintMpaStatus(&Status); - } - else if (!_stricmp(command,"T")) { - // spectra settings - err = (*lpSet)(&Setting, nDev); - printf("CHN %d:\n", nDev); - PrintSetting(&Setting); - - if (nDev==0) { // MPA settings - err = (*lpGetMCSSet)(&MCSSetting, 0); - PrintMCSSetting(&MCSSetting); - // DATSettings - err = (*lpGetDatSet)(&DatSetting); - PrintDatSetting(&DatSetting); - } - } - else if (!_stricmp(command,"H")) { - (*lpHalt)(0); - } - else if(!_strnicmp(command, "CHN=", 4)) { - sscanf(command+4, "%d", &nDev); - (*lpRun)(0, command); - } - else if (!_stricmp(command,"MPA")) { - nDev=0; - (*lpRun)(0, command); - } - else { - (*lpRun)(0, command); - printf("%s\n", command); - } - return 0; -} - -int readstr(char *buff, int buflen) -{ - int i=0,ic; - - while ((ic=getchar()) != 10) { - if (ic == EOF) { - buff[i]='\0'; - return 1; - } - if (ic == 13) ic=0; - buff[i]=(char)ic; - i++; - if (i==buflen-1) break; - } - buff[i]='\0'; - return 0; -} - -//int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmd, int nShow) -void main(int argc, char *argv[]) -{ - int Errset = 0, Erracq = 0, Errread = 0; - char command[80]; - - hDLL = LoadLibrary((LPCWSTR)"DMCS6.DLL"); - if(hDLL){ - lpSet=(IMPAGETSETTING)GetProcAddress(hDLL,"GetSettingData"); - lpNewStat=(IMPANEWSTATUS)GetProcAddress(hDLL,"GetStatus"); - lpStat=(IMPAGETSTATUS)GetProcAddress(hDLL,"GetStatusData"); - lpRun=(IMPARUNCMD)GetProcAddress(hDLL,"RunCmd"); - lpCnt=(IMPAGETCNT)GetProcAddress(hDLL,"LVGetCnt"); - lpRoi=(IMPAGETROI)GetProcAddress(hDLL,"LVGetRoi"); - lpDat=(IMPAGETDAT)GetProcAddress(hDLL,"LVGetDat"); - lpStr=(IMPAGETSTR)GetProcAddress(hDLL,"LVGetStr"); - lpServ=(IMPASERVEXEC)GetProcAddress(hDLL,"ServExec"); - lpGetDatSet=(IMPAGETDATSET)GetProcAddress(hDLL,"GetDatSetting"); - lpGetMCSSet=(IMPAGETMCSSET)GetProcAddress(hDLL,"GetMCSSetting"); - // lpDigInOut=(IMPADIGINOUT)GetProcAddress(hDLL,"DigInOut"); - // lpDacOut=(IMPADACOUT)GetProcAddress(hDLL,"DacOut"); - lpStart=(IMPASTART)GetProcAddress(hDLL,"Start"); - lpHalt=(IMPAHALT)GetProcAddress(hDLL,"Halt"); - lpContinue=(IMPACONTINUE)GetProcAddress(hDLL,"Continue"); - lpErase=(IMPAERASE)GetProcAddress(hDLL,"Erase"); - } - else return; - - // Initialize parameters -// Errset = (*lpServ)(0); - Errset = (*lpNewStat)(0); - Errset = (*lpStat)(&Status, 0); - PrintMpaStatus(&Status); - - /* - (*lpSet)(&Setting, 0); - PrintSetting(&Setting); - */ - - help(); - - while(TRUE) - { - readstr(command, 80); - if (run(command)) break; - } - - FreeLibrary(hDLL); - - return; -}