#include "exlib.conf"
#include "daclib.conf"
#include "exlib.h"
#include "daclib.h"
#include "mca.h"
Data Structures | |
union | SPCHDR |
Defines | |
#define | CPNAME "MCA" |
#define | CPTITL "Multi Channel Analyser Program" |
#define | CPDATE "(15Jan03/Hu)" |
#define | CIDPRG "MCA " |
#define | CVERSION "07sep00" |
#define | MFILNA 70 |
#define | useDATAROUT |
#define | CLKRATE sysClkRateGet() |
#define | BASEPRIO 40 |
#define | MAXLEN 0x10000 |
#define | INISTACK 5000 |
#define | INICHCK VX_FP_TASK |
#define | INIOPT VX_FP_TASK |
#define | MSTRTASK "tMcaMstr" |
#define | MSTRPRIO (BASEPRIO+1) |
#define | MSTRSTACK 7000 |
#define | MSTROPT VX_FP_TASK |
#define | MSTROPT VX_FP_TASK |
#define | RLTTASK "tMcaRlt" |
#define | RLTPRIO (BASEPRIO+0) |
#define | RLTSTACK 5000 |
#define | RLTOPT 0 |
#define | DATATASK "tMcaData" |
#define | DATAPRIO (BASEPRIO+2) |
#define | DATASTACK 5000 |
#define | DATAOPT VX_FP_TASK |
#define | DATATIME 9 |
#define | DATAPAUSE 1 |
#define | CTRLTASK "tMcaCtrl" |
#define | CTRLPRIO (BASEPRIO+2) |
#define | CTRLSTACK 5000 |
#define | CTRLOPT 0 |
#define | CTRLPAUSE 1 |
#define | CTRLECF ".ecf" |
#define | SAVBGDATA |
#define | CBGTASK "tMcaBg" |
#define | CBGPRIO 100 |
#define | CBGFILE "~/ex_home/ex_prog/peakv.o" |
#define | CBGSYM "_peak" |
#define | CBGSTACK 11000 |
#define | CBGOPT VX_FP_TASK |
#define | CBGARG1 ",,\"peak_mca.vxw\",,'S'" |
#define | BGARGS |
#define | CBGCHECK FALSE |
#define | CBGUNLD TRUE |
#define | CIDPAR "STRZ-VXW" |
#define | CPARNA "bootHost:/ex_home/ex_param/mcapar.vxw" |
#define | CDFNAM "data:/spectrum.mca" |
#define | CHLPNA "bootHost:/ex_home/ex_help/Oldies/mca.txt" |
#define | CISERV "servix" |
#define | CIUSER "vme-info" |
#define | CIFILE "mca/mca.info" |
#define | ffPARFILE parfile |
#define | ffPARMTR parfile.parmtr |
#define | ffROUTPAR parfile.routpar |
#define | ffDACLIBPAR parfile.daclibpar |
#define | ffEXLIBPAR parfile.exlibpar |
#define | HEADER0 parfile.header0 |
#define | ccCOMMON common |
#define | ccPARMTR common.parmtr |
#define | ccDACLIBCOM common.daclibcom |
#define | ccEXLIBCOM common.exlibcom |
#define | IDPAR ffPARMTR.idpar |
#define | PIDPRG ffPARMTR.idprg |
#define | PVERSION ffPARMTR.version |
#define | DFLTPAR ffPARMTR.dflts |
#define | PEXPMNT ffPARMTR.pexpmnt |
#define | SP0NAM ffPARMTR.sp0nam |
#define | ZZZZZZ ffPARMTR.zzzzzz |
#define | DATID ccPARMTR.datid |
#define | LFTID ccPARMTR.lftid |
#define | DRMENU ffROUTPAR.drmenu |
#define | DRTYPE ffROUTPAR.drtype |
#define | DRBASE ffROUTPAR.drbase |
#define | DROFFS ffROUTPAR.droffs |
#define | STOPRT ffROUTPAR.stoprt |
#define | RDSTAT ffROUTPAR.rdstat |
#define | RDSTCL ffROUTPAR.rdstcl |
#define | RDDATA ffROUTPAR.rddata |
#define | RDDACL ffROUTPAR.rddacl |
#define | RDIDNT ffROUTPAR.rdidnt |
#define | CRMENU ffROUTPAR.crmenu |
#define | CRMENU2 ffROUTPAR.crmenu2 |
#define | CRTYPE ffROUTPAR.crtype |
#define | CRBASE ffROUTPAR.crbase |
#define | CROFFS ffROUTPAR.croffs |
#define | CRCTRL ffROUTPAR.crctrl |
#define | CRSTAT ffROUTPAR.crstat |
#define | CRADDR ffROUTPAR.craddr |
#define | CRDATA ffROUTPAR.crdata |
#define | CRINTR ffROUTPAR.crintr |
#define | CRIDNT ffROUTPAR.cridnt |
#define | CRPRIO ffROUTPAR.crprio |
#define | CHDLEN "1" |
#define | CEXPMNT "??????" |
#define | CSPTYPE "MCA1" |
#define | CROWS " 1" |
#define | CBYTES "4" |
#define | CLTXT " 80" |
#define | CDFTXT "MCA Spectrum --- Strahlenzentrum Universitaet Giessen" |
#define | INITSPCHDR |
#define | SPSTAT XSPHDR->hdata.spcdat.status |
#define | RLTCNT XSPHDR->hdata.spcdat.rltcnt |
#define | LFTCNT XSPHDR->hdata.spcdat.lftcnt |
#define | DATCNT XSPHDR->hdata.spcdat.datcnt |
#define | OUTCNT XSPHDR->hdata.spcdat.outcnt |
#define | REJCNT XSPHDR->hdata.spcdat.rejcnt |
#define | FULCNT XSPHDR->hdata.spcdat.fulcnt |
#define | ERRCNT XSPHDR->hdata.spcdat.errcnt |
#define | SPOFFS XSPHDR->hdata.spcdat.spoffs |
#define | CMPRSS XSPHDR->hdata.spcdat.cmprss |
#define | HDATID XSPHDR->hdata.spcdat.hdatid |
#define | RUNTIM XSPHDR->hdata.spcdat.runtim |
#define | MAXSPECS 1 |
#define | MAXHTYPS 1 |
#define | USHMAX 4 |
#define | HDSCR_MCA "208i1 1i2 8i4 2i2 1i4" |
#define | INITHTYPES |
#define | INITSPEPNTR |
#define | SHOWHDR |
#define | INPUTPARS1 |
#define | INPUTPARS2 |
#define | INPUTPARS5 |
#define | INPUTXPARS1 |
#define | INPUTXPARS2 |
#define | INPUTXPARS5 |
#define | INITPARS |
#define | DATAVARS |
#define | DATAMACRO |
Enumerations | |
enum | headertypes { MTX_HEADER, MCA_HEADER, MCT_HEADER, MS2_HEADER, MSC_HEADER, PCM_HEADER, MCA_VAX_HEADER, MCA_VXW_HEADER, ALL_VAX_HEADER, ALL_VXW_HEADER, MCA_VAX_HEADER, MCA_VXW_HEADER, ALL_VAX_HEADER, ALL_VXW_HEADER, DRM_HEADER, ECF_1_HEADER, ECF_1_HEADER, ECF_1_HEADER, ECF_1_HEADER, ECF_1_HEADER, ECF_1_HEADER, ECF_1_HEADER, ECF_1_HEADER, ECF_VAX_HEADER, ECF_0_HEADER, ECF_1_HEADER, ECF_1_HEADER, ESI_VAX_HEADER, ESW_VAX_HEADER, ESW_VXW_HEADER, ESS_VAX_HEADER, ESS_VXW_HEADER, ESS_HEADER, ECF_HEADER, ESW_HEADER, MASS_HEADER, ESW_VAX_HEADER, ESW_VXW_HEADER, ESS_VAX_HEADER, ESS_VXW_HEADER } |
modification history -------------------- 15aug08 kHu DOXYGEN comments added 25jun03 kHu CIFILE geaendert 29apr03 kHu *.conf, *.h Files neu geordnet 16apr03 kHu Fit gemacht fuer -Wall GCC-Option 15apr03 kHu Help mit INFO auf Server 04apr03 kHu define CPDATE EMKSTR(SIGNAT) 15jan03 kHu dac10.c: stets File-Name abfragen 14jan03 kHu dac10/25.c: neu: Edit header of spectrum 16aug02 kHu BGARGS um (int)&HEADER0 erweitert 30apr02 kHu Init task -> Master task 28feb02 kHu Parameters for background program 18feb02 kHu Argumente beim Start: PNAME,PTITLE,PARNAM,HLPNAM 28aug01 kHu BGARGS/Z ...,(int)xCntrl,... 08jan01 kHu ERRCNTo, ERRCNTd, ERRCNTf 04oct00 kHu eigener Parameter-File bei BG-Programm (BGPNAM) 13sep00 kHu tReadp() -> tMenu 07sep00 kHu DRMENU, DRTYPE, CRMENU, CRTYPE, CRPRIO neu 29mar00 kHu MSTRSTACK = 6000 20mar00 kHu IHDLEN, IBYTES 23feb00 kHu Header Typen Beschreibung geaendert 19nov99 kHu Zero spectrum if test run 11nov99 kHu Newprog Standard 22jan99 kHu HDFREE und User Block 20jan99 kHu im Header alle long nach int, hdatid von short nach int 22dec98 kHu Trennen in daclib und exlib 12nov98 kHu Umstellung auf tReadp() 16sep98 kHu new: DAP template version 15sep98 kHu Dir und File fuer Spektrum zusammengefasst 08sep98 kHu mca: auf neuen Stand gebracht 25mar96 kHu Ultrix, VxWorks Portierung (C) 04mar86 kHu PDP11 Version (F77, Macro-11)
#define BASEPRIO 40 |
#define BGARGS |
#define CBGARG1 ",,\"peak_mca.vxw\",,'S'" |
#define CBGCHECK FALSE |
#define CBGFILE "~/ex_home/ex_prog/peakv.o" |
#define CBGOPT VX_FP_TASK |
#define CBGPRIO 100 |
#define CBGSTACK 11000 |
#define CBGSYM "_peak" |
#define CBGTASK "tMcaBg" |
#define CBGUNLD TRUE |
#define CBYTES "4" |
#define ccCOMMON common |
#define ccDACLIBCOM common.daclibcom |
#define ccEXLIBCOM common.exlibcom |
#define ccPARMTR common.parmtr |
#define CDFNAM "data:/spectrum.mca" |
#define CDFTXT "MCA Spectrum --- Strahlenzentrum Universitaet Giessen" |
#define CEXPMNT "??????" |
#define CHDLEN "1" |
#define CHLPNA "bootHost:/ex_home/ex_help/Oldies/mca.txt" |
#define CIDPAR "STRZ-VXW" |
#define CIDPRG "MCA " |
#define CIFILE "mca/mca.info" |
#define CISERV "servix" |
#define CIUSER "vme-info" |
#define CLKRATE sysClkRateGet() |
#define CLTXT " 80" |
#define CMPRSS XSPHDR->hdata.spcdat.cmprss |
#define CPARNA "bootHost:/ex_home/ex_param/mcapar.vxw" |
#define CPDATE "(15Jan03/Hu)" |
#define CPNAME "MCA" |
#define CPTITL "Multi Channel Analyser Program" |
#define CRADDR ffROUTPAR.craddr |
#define CRBASE ffROUTPAR.crbase |
#define CRCTRL ffROUTPAR.crctrl |
#define CRDATA ffROUTPAR.crdata |
#define CRIDNT ffROUTPAR.cridnt |
#define CRINTR ffROUTPAR.crintr |
#define CRMENU ffROUTPAR.crmenu |
#define CRMENU2 ffROUTPAR.crmenu2 |
#define CROFFS ffROUTPAR.croffs |
#define CROWS " 1" |
#define CRPRIO ffROUTPAR.crprio |
#define CRSTAT ffROUTPAR.crstat |
#define CRTYPE ffROUTPAR.crtype |
#define CSPTYPE "MCA1" |
#define CTRLECF ".ecf" |
#define CTRLOPT 0 |
#define CTRLPAUSE 1 |
#define CTRLPRIO (BASEPRIO+2) |
#define CTRLSTACK 5000 |
#define CTRLTASK "tMcaCtrl" |
#define CVERSION "07sep00" |
#define DATAMACRO |
Value:
/* Test data ID */ \ if((nstat & 0x003f) == DATID) { /* Data ID OK*/ \ /* Compute data */ \ ndata = (ndata >> CMPRSS) - SPOFFS; \ if((ndata >= 0) && (ndata < SPELEN)) { \ DATCNT++; /* Count data */ \ /* Increment channel in spectrum */ \ (*(SPEDATA+ndata))++; \ } else { \ OUTCNT++; /* Count data out of range */ \ } \ } else if((nstat & 0x003f) == LFTID) { /* Lifetime */ \ LFTCNT++; /* Count lifetime */ \ } else { \ REJCNT++; /* Count rejected data */ \ }
#define DATAOPT VX_FP_TASK |
#define DATAPAUSE 1 |
#define DATAPRIO (BASEPRIO+2) |
#define DATASTACK 5000 |
#define DATATASK "tMcaData" |
#define DATATIME 9 |
#define DATAVARS |
#define DATCNT XSPHDR->hdata.spcdat.datcnt |
#define DATID ccPARMTR.datid |
#define DFLTPAR ffPARMTR.dflts |
#define DRBASE ffROUTPAR.drbase |
#define DRMENU ffROUTPAR.drmenu |
#define DROFFS ffROUTPAR.droffs |
#define DRTYPE ffROUTPAR.drtype |
#define ERRCNT XSPHDR->hdata.spcdat.errcnt |
#define ffDACLIBPAR parfile.daclibpar |
#define ffEXLIBPAR parfile.exlibpar |
#define ffPARFILE parfile |
#define ffPARMTR parfile.parmtr |
#define ffROUTPAR parfile.routpar |
#define FULCNT XSPHDR->hdata.spcdat.fulcnt |
#define HDATID XSPHDR->hdata.spcdat.hdatid |
#define HDSCR_MCA "208i1 1i2 8i4 2i2 1i4" |
#define HEADER0 parfile.header0 |
#define IDPAR ffPARMTR.idpar |
#define INICHCK VX_FP_TASK |
#define INIOPT VX_FP_TASK |
#define INISTACK 5000 |
#define INITHTYPES |
Value:
/* MCA-type, spectrum 0 */ \ {{TRUE}, /* Type valid for spectrum 0 */ \ CIDHDRvxw, /* Required header ID in IDHDR */ \ "MCA", /* Required program ID in IDPRG */ \ HDSCR_MCA, /* Header descriptor string */ \ MCA_HEADER}
#define INITPARS |
#define INITSPCHDR |
Value:
{0, \ 0,0,0,0,0,0,0,0, \ 0,0, \ 0}
#define INITSPEPNTR |
#define INPUTPARS1 |
Value:
{ \ \ short shortpar; \ \ TEXT[lTEXT-1] = '\0'; /* Title of spectrum */ \ IHDLEN = 1; /* Blocks of header */ \ IBYTES = 4; /* Bytes per channel */ \ IROWS = atol(CROWS); /* Number of lines */ \ shortpar = HDATID >> 1; /* ID of data */ \ \ tMenu(NULL, 1, \ "%$-"lTEXTs"s\n\n" \ " Length of spectrum = %@6lu\n" \ " Data ident. = 0x%@2.2hx\n" \ " Offset = %@6ld\n" \ " Compress = %@1hu\n" \ " Timer = %$10lu s\n", \ TEXT, \ &ICOLS, 0, MAXLEN, \ &shortpar, 0, 0x003f, \ &SPOFFS, -MAXLEN, MAXLEN, \ &CMPRSS, 0, 9, \ &RUNTIM \ ); \ \ /* ID of data */ \ DATID = HDATID = shortpar << 1; /* Data ID */ \ LFTID = DATID | 0x21; /* Lifetime ID */ \ }
#define INPUTPARS2 |
Value:
{ \ \ short shortpar; \ \ TEXT[lTEXT-1] = '\0'; /* Title of spectrum */ \ IHDLEN = 1; /* Blocks of header */ \ IBYTES = 4; /* Bytes per channel */ \ shortpar = HDATID >> 1; /* ID of data */ \ \ tMenu(NULL, 1, \ "%$-"lTEXTs"s\n\n" \ " Data ident. = 0x%@2.2hx\n" \ " Timer = %$10lu s\n", \ TEXT, \ &shortpar, 0, 0x003f, \ &RUNTIM); \ \ /* ID of data */ \ DATID = HDATID = shortpar << 1; /* Data ID */ \ LFTID = DATID | 0x21; /* Lifetime ID */ \ }
#define INPUTPARS5 |
#define INPUTXPARS1 |
#define INPUTXPARS2 |
#define INPUTXPARS5 |
#define LFTCNT XSPHDR->hdata.spcdat.lftcnt |
#define LFTID ccPARMTR.lftid |
#define MAXHTYPS 1 |
#define MAXLEN 0x10000 |
#define MAXSPECS 1 |
#define MFILNA 70 |
#define MSTROPT VX_FP_TASK |
#define MSTROPT VX_FP_TASK |
#define MSTRPRIO (BASEPRIO+1) |
#define MSTRSTACK 7000 |
#define MSTRTASK "tMcaMstr" |
#define OUTCNT XSPHDR->hdata.spcdat.outcnt |
#define PEXPMNT ffPARMTR.pexpmnt |
#define PIDPRG ffPARMTR.idprg |
#define PVERSION ffPARMTR.version |
#define RDDACL ffROUTPAR.rddacl |
#define RDDATA ffROUTPAR.rddata |
#define RDIDNT ffROUTPAR.rdidnt |
#define RDSTAT ffROUTPAR.rdstat |
#define RDSTCL ffROUTPAR.rdstcl |
#define REJCNT XSPHDR->hdata.spcdat.rejcnt |
#define RLTCNT XSPHDR->hdata.spcdat.rltcnt |
#define RLTOPT 0 |
#define RLTPRIO (BASEPRIO+0) |
#define RLTSTACK 5000 |
#define RLTTASK "tMcaRlt" |
#define RUNTIM XSPHDR->hdata.spcdat.runtim |
#define SAVBGDATA |
#define SHOWHDR |
Value:
printf("Length: %6lu\n", SPELEN); \ printf("Offset: %6li\n", SPOFFS); \ printf("Cmprss: %6hu\n", CMPRSS); \ printf("Timer : %6lus\n", RUNTIM); \ putchar('\n'); \ printf("%10lu Realtime\n", RLTCNT); \ printf("%10lu Lifetime\n", LFTCNT); \ printf("%10lu Processed data\n", DATCNT); \ printf("%10lu Data out of range\n", OUTCNT); \ printf("%10lu Rejected data\n", REJCNT); \ printf("%10lu Fifo overflows\n", FULCNT); \ printf("%10lu Data errors\n", ERRCNT); \
#define SP0NAM ffPARMTR.sp0nam |
#define SPOFFS XSPHDR->hdata.spcdat.spoffs |
#define SPSTAT XSPHDR->hdata.spcdat.status |
#define STOPRT ffROUTPAR.stoprt |
#define useDATAROUT |
#define USHMAX 4 |
#define ZZZZZZ ffPARMTR.zzzzzz |
enum headertypes |