Skip to content
Snippets Groups Projects
Commit 0aed4a59 authored by Jean-François Denis's avatar Jean-François Denis
Browse files

update reset function

parent 661031bb
No related branches found
No related tags found
No related merge requests found
...@@ -101,23 +101,23 @@ file "scanBase.db" ...@@ -101,23 +101,23 @@ file "scanBase.db"
# Before scan step by step links # Before scan step by step links
"SCAN:BUFF-DET1-RES-WF PP", "LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP",
"LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP", "$(DEVICE):BUFF-POS-RES PP",
"1",
"0", "0",
"1",
"", "",
# After scan step by step links # After scan step by step links
"$(DEVICE):PROC-AUTO-HOME PP", "$(DEVICE):PROC-AUTO-HOME PP",
"", "$(DEVICE):CALC-PROJXY.PROC PP",
"1",
"1", "1",
"",
"", "",
# Abort scan step by step links # Abort scan step by step links
"SCAN:BUFF-DET1-RES-WF PP", "",
"",
"", "",
"1",
"", "",
"$(DEVICE):$(SCAN_EF)-ABORT" "$(DEVICE):$(SCAN_EF)-ABORT"
} }
...@@ -209,9 +209,9 @@ file "scanBase.db" ...@@ -209,9 +209,9 @@ file "scanBase.db"
"$(DEVICE):DAQTRG-TRG", "$(DEVICE):DAQTRG-TRG",
# INTERFACE: Detectors # INTERFACE: Detectors
"$(DEVICE):DET1-COMP", "$(DEVICE):BUFF-DET1",
"$(DEVICE):DET2-COMP", "$(DEVICE):BUFF-DET23",
"$(DEVICE):DET3-COMP", "",
# INTERFACE: BEFORE, AFTER and ABORT scan links # INTERFACE: BEFORE, AFTER and ABORT scan links
...@@ -458,7 +458,7 @@ pattern {DEVICE, SCAN_EF} ...@@ -458,7 +458,7 @@ pattern {DEVICE, SCAN_EF}
file EMU_CALCUL.template file EMU_CALCUL.template
{ {
pattern {DEVICE,DAQPREFIX,DET2WF,DET3WF,DET2,DET3,NELM,SCAN_EF} pattern {DEVICE,DAQPREFIX,DET2WF,DET3WF,DET2,DET3,NELM,SCAN_EF}
{"$(DEVICE)","$(DAQNDSPREFIX)","PBI-EM-HV1:VoltR_Y","PBI-EM-HV2:VoltR_Y","DET2","DET3","$(DAQBUFSIZE)","PS"} {"$(DEVICE)","$(DAQNDSPREFIX)","PBI-EM-HV1:VoltR_Y","PBI-EM-HV2:VoltR_Y","DET2","DET3","$(BUFFERSIZE)","PS"}
} }
########################################################################## ##########################################################################
...@@ -466,15 +466,15 @@ pattern {DEVICE,DAQPREFIX,DET2WF,DET3WF,DET2,DET3,NELM,SCAN_EF} ...@@ -466,15 +466,15 @@ pattern {DEVICE,DAQPREFIX,DET2WF,DET3WF,DET2,DET3,NELM,SCAN_EF}
########################################################################## ##########################################################################
file EMU_BUFF_CHAN.template file EMU_BUFF_CHAN.template
{ {
pattern {DEVICE,SIGNAL,DET,SIGNAL2,NELM,NELM_COMP,SCAN_EF,SCAN_SLIT,MTRREC} pattern {DEVICE,SIGNAL_IN,DET,SIGNAL2,NELM,NELM_COMP,SCAN_EF,SCAN_SLIT,MTRREC}
{"$(DEVICE)","DET1-COMP","DET1","CURRENT","900","80","$(SCAN_EF)","$(SCAN_SLIT)","$(MTRREC)"} {"$(DEVICE)","LNS-ISRC-010:PBI-EM-FC:CurrR:AVG","DET1","CURRENT","$(BUFFERSIZE)","1000","$(SCAN_EF)","$(SCAN_SLIT)","$(MTRREC)"}
{"$(DEVICE)","CALC-ANGLE","DET23","ANGLE","900","80","$(SCAN_EF)","$(SCAN_SLIT)","$(MTRREC)"} {"$(DEVICE)","SCAN:CALC-ANGLE","DET23","ANGLE","$(BUFFERSIZE)","1000","$(SCAN_EF)","$(SCAN_SLIT)","$(MTRREC)"}
} }
file EMU_BUFF_POS.template file EMU_BUFF_POS.template
{ {
pattern {DEVICE,NELM_COMP,DET,SCAN_SLIT,MTRREC} pattern {DEVICE,NELM_COMP,DET,SCAN_SLIT,MTRREC}
{"$(DEVICE)","80","DET1","$(SCAN_SLIT)","$(MTRREC)"} {"$(DEVICE)","1000","DET1","$(SCAN_SLIT)","$(MTRREC)"}
} }
########################################################################## ##########################################################################
......
## COMPRESS SCALARE VALUE ## COMPRESS SCALARE VALUE
record(compress, "$(DEVICE):BUFF-$(SIGNAL)") { record(compress, "$(DEVICE):BUFF-$(DET)") {
field(NSAM, "$(NELM_COMP)") field(NSAM, "$(NELM_COMP)")
field(ALG,"Circular Buffer") field(ALG,"Circular Buffer")
field(INP,"$(DEVICE):$(SIGNAL) CPP") field(INP,"$(SIGNAL_IN) CP")
} }
## Reset record(bo,"$(DEVICE):BUFF-$(DET)-RES"){
record(bo,$(DEVICE):BUFF-$(DET)-RES-WF){ field(OUT,"$(DEVICE):BUFF-$(DET).RES")
} }
## WAVEFORM FINAL ## WAVEFORM FINAL
record(waveform, "$(DEVICE):BUFF-$(SIGNAL2)") { record(waveform, "$(DEVICE):BUFF-$(SIGNAL2)") {
field(FTVL, "FLOAT") field(FTVL, "FLOAT")
...@@ -25,7 +26,7 @@ record(aSub, "$(DEVICE):BUFF-$(DET)-FUNC") { ...@@ -25,7 +26,7 @@ record(aSub, "$(DEVICE):BUFF-$(DET)-FUNC") {
## Waveform data ## Waveform data
field(FTA, "FLOAT") field(FTA, "FLOAT")
field(NOA,$(NELM_COMP)) field(NOA,$(NELM_COMP))
field(INPA, "$(DEVICE):BUFF-$(SIGNAL)") field(INPA, "$(DEVICE):BUFF-$(DET)")
## Waveform data reentrance ## Waveform data reentrance
field(FTB, "FLOAT") field(FTB, "FLOAT")
...@@ -46,11 +47,6 @@ record(aSub, "$(DEVICE):BUFF-$(DET)-FUNC") { ...@@ -46,11 +47,6 @@ record(aSub, "$(DEVICE):BUFF-$(DET)-FUNC") {
field(FTE, "LONG") field(FTE, "LONG")
field(NOE, "1") field(NOE, "1")
field(INPE, "$(DEVICE):$(SCAN_SLIT).NPTS") field(INPE, "$(DEVICE):$(SCAN_SLIT).NPTS")
## Reset
field(FTF, "LONG")
field(NOF, "1")
field(INPF, "$(DEVICE):BUFF-$(DET)-RES-WF CPP")
######### OUTPUTS ######### ######### OUTPUTS #########
## Waveform (to save) ## Waveform (to save)
...@@ -58,16 +54,6 @@ record(aSub, "$(DEVICE):BUFF-$(DET)-FUNC") { ...@@ -58,16 +54,6 @@ record(aSub, "$(DEVICE):BUFF-$(DET)-FUNC") {
field(NOVA, "$(NELM)") field(NOVA, "$(NELM)")
field(OUTA, "$(DEVICE):BUFF-$(SIGNAL2) PP") field(OUTA, "$(DEVICE):BUFF-$(SIGNAL2) PP")
## RESET Compress
field(FTVB, "LONG")
field(NOVB, "1")
field(OUTB, "$(DEVICE):BUFF-$(SIGNAL).RES PP")
## RESET buttom
field(FTVC, "LONG")
field(NOVC, "1")
field(OUTC, "$(DEVICE):BUFF-$(DET)-RES-WF PP")
######### FUNCTION ####### ######### FUNCTION #######
field(SNAM, "CREATE_TAB") field(SNAM, "CREATE_TAB")
} }
...@@ -82,7 +68,7 @@ record(aSub, "$(DEVICE):BUFF-$(DET)-FUNC") { ...@@ -82,7 +68,7 @@ record(aSub, "$(DEVICE):BUFF-$(DET)-FUNC") {
## Reset ## Reset
# field(FTA, "LONG") # field(FTA, "LONG")
# field(NOA, "1") # field(NOA, "1")
# field(INPA, "$(DEVICE):BUFF-$(DET)-RES-WF CPP") # field(INPA, "$(DEVICE):BUFF-$(DET)-RES-WF CP")
######### OUTPUTS ######### ######### OUTPUTS #########
## Waveform (to save) ## Waveform (to save)
...@@ -93,7 +79,7 @@ record(aSub, "$(DEVICE):BUFF-$(DET)-FUNC") { ...@@ -93,7 +79,7 @@ record(aSub, "$(DEVICE):BUFF-$(DET)-FUNC") {
## RESET Compress ## RESET Compress
# field(FTVB, "LONG") # field(FTVB, "LONG")
# field(NOVB, "1") # field(NOVB, "1")
# field(OUTB, "$(DEVICE):BUFF-$(SIGNAL).RES PP") # field(OUTB, "$(DEVICE):BUFF-$(DET).RES PP")
## RESET buttom ## RESET buttom
# field(FTVC, "LONG") # field(FTVC, "LONG")
......
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
record(compress, "$(DEVICE):BUFF-MTR-POS") { record(compress, "$(DEVICE):BUFF-MTR-POS") {
field(NSAM, "$(NELM_COMP)") field(NSAM, "$(NELM_COMP)")
field(ALG,"Circular Buffer") field(ALG,"Circular Buffer")
field(INP,"$(MTRREC).VAL CPP") field(INP,"$(MTRREC).VAL CP")
} }
## Reset COMPRESS ## Reset COMPRESS
record(bo,$(DEVICE):BUFF-POS-RES){ record(bo,$(DEVICE):BUFF-POS-RES){
field(DOL,"$(DEVICE):BUFF-$(DET)-RES-WF CPP")
field(OUT,"$(DEVICE):BUFF-MTR-POS.RES") field(OUT,"$(DEVICE):BUFF-MTR-POS.RES")
} }
...@@ -164,7 +164,7 @@ record(aSub, "$(DEVICE):CALC-BLDWFAngle") { ...@@ -164,7 +164,7 @@ record(aSub, "$(DEVICE):CALC-BLDWFAngle") {
## Counter detector (cpt det) ## Counter detector (cpt det)
field(FTE, "LONG") field(FTE, "LONG")
field(NOE, "1") field(NOE, "1")
field(INPE, "$(DEVICE):$(SCAN_EF)-NORD_POS CPP") field(INPE, "$(DEVICE):$(SCAN_EF)-NORD_POS CP")
######### OUTPUTS ######### ######### OUTPUTS #########
## ANGLE Waveform converted in MRAD (to save) ## ANGLE Waveform converted in MRAD (to save)
...@@ -225,35 +225,16 @@ record(aSub, "$(DEVICE):CALC-PROJXY") { ...@@ -225,35 +225,16 @@ record(aSub, "$(DEVICE):CALC-PROJXY") {
field(INPE, "$(DEVICE):$(SCAN_SLIT).NPTS") field(INPE, "$(DEVICE):$(SCAN_SLIT).NPTS")
######### OUTPUTS ######### ######### OUTPUTS #########
## PROJECTION X Waveform output
field(FTVA, "FLOAT")
field(NOVA, "$(NELM)")
field(OUTA, "$(DEVICE):CALC-PROJ-Xwf PP")
## PROJECTION X output ## PROJECTION X output
field(FTVB, "FLOAT") field(FTVA, "FLOAT")
field(NOVB, "1") field(NOVA, "1")
field(OUTB, "$(DEVICE):CALC-PROJ-X PP") field(OUTA, "$(DEVICE):CALC-PROJ-X PP")
## PROJECTION X Waveform output (abcisse)
field(FTVC, "FLOAT")
field(NOVC, "$(NELM)")
field(OUTC, "$(DEVICE):CALC-PROJ-Xabsc PP")
## PROJECTION Y Waveform output
field(FTVD, "FLOAT")
field(NOVD, "$(NELM)")
field(OUTD, "$(DEVICE):CALC-PROJ-Ywf PP")
## PROJECTION Y output ## PROJECTION Y output
field(FTVE, "FLOAT") field(FTVB, "FLOAT")
field(NOVE, "1") field(NOVB, "1")
field(OUTE, "$(DEVICE):CALC-PROJ-Y PP") field(OUTB, "$(DEVICE):CALC-PROJ-Y PP")
## PROJECTION Y Waveform output
field(FTVD, "FLOAT")
field(NOVD, "$(NELM)")
field(OUTD, "$(DEVICE):CALC-Yabsc PP")
######### FUNCTION ####### ######### FUNCTION #######
field(SNAM, "CREATE_PROJXY") field(SNAM, "CREATE_PROJXY")
...@@ -267,7 +248,7 @@ record(ao, "$(DEVICE):CALC-PROJ-X") { ...@@ -267,7 +248,7 @@ record(ao, "$(DEVICE):CALC-PROJ-X") {
## WAVEFORM PROJECTION X ## WAVEFORM PROJECTION X
record(waveform, "$(DEVICE):CALC-PROJ-Xwf") { record(waveform, "$(DEVICE):CALC-PROJ-Xwf") {
field(FTVL, "FLOAT") field(FTVL, "FLOAT")
field(NELM, "$(NELM)") field(NELM, "$(NELM)")
} }
## WAVEFORM PROJECTION X ABCISSE ## WAVEFORM PROJECTION X ABCISSE
...@@ -287,7 +268,8 @@ record(waveform, "$(DEVICE):CALC-PROJ-Ywf") { ...@@ -287,7 +268,8 @@ record(waveform, "$(DEVICE):CALC-PROJ-Ywf") {
} }
## WAVEFORM PROJECTION Y ABCISSE ## WAVEFORM PROJECTION Y ABCISSE
record(waveform, "$(DEVICE):CALC-Yabsc") { record(waveform, "$(DEVICE):CALC-PROJ-Yabsc") {
field(FTVL, "FLOAT") field(FTVL, "FLOAT")
field(NELM, "$(NELM)") field(NELM, "$(NELM)")
} }
...@@ -33,6 +33,7 @@ record(ao, "$(PREFIX):$(DEVICE):LCURSOR_ms") ...@@ -33,6 +33,7 @@ record(ao, "$(PREFIX):$(DEVICE):LCURSOR_ms")
field(DRVH, "20") field(DRVH, "20")
field(DRVL, "0") field(DRVL, "0")
field(PREC, "2") field(PREC, "2")
field(PREC, "2")
field(FLNK,"$(PREFIX):$(DEVICE):LCURSOR_FAN") field(FLNK,"$(PREFIX):$(DEVICE):LCURSOR_FAN")
} }
......
...@@ -53,9 +53,9 @@ record(dfanout,"$(DEVICE):PROC-VoltMin-SP"){ ...@@ -53,9 +53,9 @@ record(dfanout,"$(DEVICE):PROC-VoltMin-SP"){
############################################# #############################################
record(calcout, "$(DEVICE):PROC-StepAngle") { record(calcout, "$(DEVICE):PROC-StepAngle") {
field(INPA,"$(DEVICE):PROC-AngleMax-SP CPP") field(INPA,"$(DEVICE):PROC-AngleMax-SP CP")
field(INPB,"$(DEVICE):PROC-AngleMin-SP CPP") field(INPB,"$(DEVICE):PROC-AngleMin-SP CP")
field(INPC,"$(DEVICE):$(SCAN_EF).NPTS CPP") field(INPC,"$(DEVICE):$(SCAN_EF).NPTS CP")
field(CALC,"(A-B)/C") field(CALC,"(A-B)/C")
field(EGU, "mrad") field(EGU, "mrad")
field(PREC, "3") field(PREC, "3")
...@@ -67,15 +67,23 @@ record(calcout, "$(DEVICE):PROC-StepAngle") { ...@@ -67,15 +67,23 @@ record(calcout, "$(DEVICE):PROC-StepAngle") {
record(seq,"$(DEVICE):PROC-PS-BF"){ record(seq,"$(DEVICE):PROC-PS-BF"){
field(LNK1,"LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP") field(LNK1,"LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP")
field(DO1,"1") field(DO1,"1")
field(LNK2,"$(DEVICE):BUFF-DET1-RES PP")
field(DO2,"1")
field(LNK3,"$(DEVICE):BUFF-DET23-RES PP")
field(DO3,"1")
} }
record(seq,"$(DEVICE):PROC-PS-AF"){ record(seq,"$(DEVICE):PROC-PS-AF"){
field(LNK1,"$(DEVICE):BUFF-DET1-FUNC.PROC PP") field(LNK1,"LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP")
field(DO1,"1") field(DO1,"0")
field(LNK2,"$(DEVICE):BUFF-DET23-FUNC.PROC PP") field(LNK2,"$(DEVICE):BUFF-DET1-FUNC.PROC PP")
field(DO2,"2") field(DO2,"1")
field(LNK3,"LNS-ISRC-010:PBI-EM:VER-BRAKE_SET PP") field(LNK3,"$(DEVICE):BUFF-DET23-FUNC.PROC PP")
field(DO3,"0") field(DO3,"1")
}
record(seq,"$(DEVICE):PROC-SLIT-AF"){
} }
############################################# #############################################
############ RETOUR HOME AUTO ############### ############ RETOUR HOME AUTO ###############
......
This diff is collapsed.
...@@ -74,29 +74,14 @@ static int CREATE_TAB(aSubRecord *precord) { ...@@ -74,29 +74,14 @@ static int CREATE_TAB(aSubRecord *precord) {
long mtr_cpt = *(long *)precord->c; //Motor compter long mtr_cpt = *(long *)precord->c; //Motor compter
long nbAngle = *(long *)precord->d; // Nb Angle long nbAngle = *(long *)precord->d; // Nb Angle
long nbPosition = *(long *)precord->e; // Nb position long nbPosition = *(long *)precord->e; // Nb position
long reset = *(long *)precord->f; // Reset
int nelmComp = precord->noa; int nelmComp = precord->noa;
int nelm = precord->nob; int nelm = precord->nob;
float *ptr_WF_OUT=(float*)(precord->vala); float *ptr_WF_OUT=(float*)(precord->vala);
long resetComp=*(long*)(precord->valb);
long resetButt=*(long*)(precord->valc);
int i; int i;
int cpt_for=0.0; int cpt_for=0.0;
/***** RESET DATA ******/
if(reset==1)
{
resetComp=1;
resetButt=0;
for (i = 0 ; i < nelm; ++i)
{
*ptr_WF_OUT=0.0;
ptr_WF_OUT++;
}
return 0;
}
/***** REFILL old DATA ******/ /***** REFILL old DATA ******/
if(mtr_cpt>0) if(mtr_cpt>0)
{ {
...@@ -113,21 +98,19 @@ static int CREATE_TAB(aSubRecord *precord) { ...@@ -113,21 +98,19 @@ static int CREATE_TAB(aSubRecord *precord) {
/***** FILL new DATA ******/ /***** FILL new DATA ******/
if(mtr_cpt>=0) if(mtr_cpt>=0)
{ {
cpt_for=(nbPosition-mtr_cpt-1); cpt_for=nbPosition-mtr_cpt-1;
ptr_WF_OUT=(float*)(precord->vala); ptr_WF_OUT=(float*)(precord->vala);
ptr_WF_OUT=ptr_WF_OUT+cpt_for; ptr_WF_OUT=ptr_WF_OUT+cpt_for;
ptr_WF = (float *)precord->a; ptr_WF = (float *)precord->a;
/*DATA from the COMPRESS waveform */ /*DATA from the COMPRESS waveform */
for (i = 0 ; i < nbAngle; ++i) for (i = 0 ; i <= nbAngle; ++i)
{ {
if(i==0){*ptr_WF++;}
*ptr_WF_OUT=*ptr_WF; *ptr_WF_OUT=*ptr_WF;
ptr_WF_OUT=ptr_WF_OUT+nbPosition; ptr_WF_OUT=ptr_WF_OUT+nbPosition;
ptr_WF++; ptr_WF++;
} }
resetComp=1;
} }
return 0; return 0;
} }
...@@ -139,7 +122,6 @@ epicsRegisterFunction(CREATE_TAB); ...@@ -139,7 +122,6 @@ epicsRegisterFunction(CREATE_TAB);
* This function allows to create the complete waveform for X et Y projection * This function allows to create the complete waveform for X et Y projection
*/ */
static int CREATE_PROJXY(aSubRecord *precord) { static int CREATE_PROJXY(aSubRecord *precord) {
/*inputs*/ /*inputs*/
float *ptr_angle; float *ptr_angle;
ptr_angle = (float *)precord->a; // waveform ANGLE ptr_angle = (float *)precord->a; // waveform ANGLE
...@@ -151,13 +133,8 @@ static int CREATE_PROJXY(aSubRecord *precord) { ...@@ -151,13 +133,8 @@ static int CREATE_PROJXY(aSubRecord *precord) {
long nbPosition = *(long *)precord->e; // Nb position long nbPosition = *(long *)precord->e; // Nb position
/*outputs*/ /*outputs*/
float *ptr_projX=(float*)(precord->vala); float projX=*(float*)(precord->vala);
float projX=*(float*)(precord->valb); float projY=*(float*)(precord->valb);
float *projXAbsc=(float*)(precord->valc);
float *ptr_projY=(float*)(precord->vald);
float projY=*(float*)(precord->vale);
float *projYAbsc=(float*)(precord->valf);
int nelmComp = precord->noa; int nelmComp = precord->noa;
int nelm = precord->nob; int nelm = precord->nob;
...@@ -166,6 +143,7 @@ static int CREATE_PROJXY(aSubRecord *precord) { ...@@ -166,6 +143,7 @@ static int CREATE_PROJXY(aSubRecord *precord) {
int u; int u;
int cpt_for=0.0; int cpt_for=0.0;
float sumTemp=0.0; float sumTemp=0.0;
float sumAngleTemp=0.0;
float projectionX=0.0; float projectionX=0.0;
float projectionY=0.0; float projectionY=0.0;
float sumCurrentTot=0.0; float sumCurrentTot=0.0;
...@@ -182,55 +160,44 @@ static int CREATE_PROJXY(aSubRecord *precord) { ...@@ -182,55 +160,44 @@ static int CREATE_PROJXY(aSubRecord *precord) {
sumTemp=*ptr_current+sumTemp; sumTemp=*ptr_current+sumTemp;
ptr_current=ptr_current+nbPosition; ptr_current=ptr_current+nbPosition;
} }
*ptr_projX=sumTemp;
sumCurrentTot=sumCurrentTot+sumTemp; sumCurrentTot=sumCurrentTot+sumTemp;
printf("Current total = %f",sumCurrentTot);
ptr_projX++;
} }
/***** X Projection ******/ /***** X Projection ******/
sumTemp=0.0; ptr_pos=ptr_pos+nbPosition-1;
for (i = 0 ; i < nbPosition; i++) for (i = 0 ; i < nbPosition; i++)
{ {
ptr_current = (float *)precord->b; ptr_current = (float *)precord->b;
sumTemp=0.0;
if(i!=0){ptr_current=ptr_current+i;} if(i!=0){ptr_current=ptr_current+i;}
printf("\nMTR=%f",*ptr_pos);
for (u = 0 ; u < nbAngle; u++) for (u = 0 ; u < nbAngle; u++)
{ {
sumTemp=((*ptr_current)* (*ptr_pos))+sumTemp; sumTemp=((*ptr_current)* (*ptr_pos))+sumTemp;
printf("\nsumTemp=%f",sumTemp);
ptr_current=ptr_current+nbPosition; ptr_current=ptr_current+nbPosition;
} }
projectionX=projectionX+sumTemp; projectionX=projectionX+sumTemp;
*projXAbsc=*ptr_pos; ptr_pos--;
ptr_pos++;
projXAbsc++;
} }
projectionX=projectionX/sumCurrentTot; projectionX=projectionX/sumCurrentTot;
projX=projectionX; projX=projectionX;
printf("\nprojectionX=%f",projectionX);
/***** Y Projection ******/ /***** Y Projection ******/
sumTemp=0.0;
ptr_current = (float *)precord->b; ptr_current = (float *)precord->b;
for (i = 0 ; i < nbAngle; i++) for (i = 0 ; i < nbAngle; i++)
{ {
printf("\nANGLE=%f",*ptr_angle); sumTemp=0.0;
sumAngleTemp=0.0;
for (u = 0 ; u < nbPosition; u++) for (u = 0 ; u < nbPosition; u++)
{ {
sumTemp=((*ptr_current)* (*ptr_angle))+sumTemp; sumTemp=((*ptr_current)* (*ptr_angle))+sumTemp;
printf("\nsumTemp=%f",sumTemp);
ptr_current++; ptr_current++;
} }
projectionY=projectionY+sumTemp; projectionY=projectionY+sumTemp;
*projYAbsc=*ptr_angle; ptr_angle=ptr_angle+nbPosition;
ptr_angle++;
projYAbsc++;
} }
projectionY=projectionY/sumCurrentTot; projectionY=projectionY/sumCurrentTot;
projY=projectionY; projY=projectionY;
printf("\nprojectionX=%f",projectionX);
return 0; return 0;
} }
/* Note the function must be registered at the end. */ /* Note the function must be registered at the end. */
......
...@@ -55,9 +55,9 @@ ss ss1 ...@@ -55,9 +55,9 @@ ss ss1
{ {
when(efTestAndClear(PS2_Cons_flag)) when(efTestAndClear(PS2_Cons_flag))
{ {
if((PS2_Cons<limitCurr) && (PS2_Cons>-limitCurr)){FCCurr_Cons= 5+(rand() * 0.000000001);;} if((PS2_Cons<limitCurr) && (PS2_Cons>-limitCurr) && (simulation==1)){FCCurr_Cons= 5+(rand() * 0.000000001);;}
else{ else{
%%FCCurr_Cons= PS2_Cons; %%FCCurr_Cons= 0.0;
} }
pvPut(FCCurr_Cons); pvPut(FCCurr_Cons);
}state ramp }state ramp
......
# Required modules ### # Required modules ###
require ifcdaq,0.2.0 require ifcdaq,0.2.0
require singlemotion,1.4.6 require singlemotion,1.4.6
require mrfsample,1.1.1 require mrfioc2,2.7.13
require pev,0.1.1 require pev,0.1.1
require ecat2db,0.3.1 require ecat2db,0.3.1
require FastAcquisition,1.1.0 require FastAcquisition,1.1.0
...@@ -65,6 +65,7 @@ epicsEnvSet("EVR_PUL0_WIDTH", "$(EVR_EV14_OUT0_WIDTH=1000)") ...@@ -65,6 +65,7 @@ epicsEnvSet("EVR_PUL0_WIDTH", "$(EVR_EV14_OUT0_WIDTH=1000)")
#DAQ macros #DAQ macros
epicsEnvSet("DAQPREFIX", "LNS-ISRC-010" ) epicsEnvSet("DAQPREFIX", "LNS-ISRC-010" )
epicsEnvSet("DAQBUFSIZE", "1024" ) epicsEnvSet("DAQBUFSIZE", "1024" )
epicsEnvSet("BUFFERSIZE", "1000" )
#Scanning macros #Scanning macros
epicsEnvSet("SCANPREFIX", "SCAN" ) epicsEnvSet("SCANPREFIX", "SCAN" )
...@@ -98,12 +99,7 @@ dbLoadRecords("evg-vme-230.db", "DEVICE=$(EVG), SYS=$(SYS)") ...@@ -98,12 +99,7 @@ dbLoadRecords("evg-vme-230.db", "DEVICE=$(EVG), SYS=$(SYS)")
dbLoadRecords("evr-pmc-230.db", "DEVICE=$(EVR), SYS=$(SYS)") dbLoadRecords("evr-pmc-230.db", "DEVICE=$(EVR), SYS=$(SYS)")
dbLoadRecords("evr-softEvent.template", "DEVICE=$(EVR), SYS=$(SYS), EVT=$(EVR_PUL0_EVENT), CODE=$(EVR_PUL0_EVENT)") dbLoadRecords("evr-softEvent.template", "DEVICE=$(EVR), SYS=$(SYS), EVT=$(EVR_PUL0_EVENT), CODE=$(EVR_PUL0_EVENT)")
dbLoadRecords("evr-pulserMap.template", "DEVICE=$(EVR), SYS=$(SYS), EVT=$(EVR_PUL0_EVENT), PID=0, F=Trig, ID=0") dbLoadRecords("evr-pulserMap.template", "DEVICE=$(EVR), SYS=$(SYS), EVT=$(EVR_PUL0_EVENT), PID=0, F=Trig, ID=0")
dbLoadRecords("evr-pulserMap.template", "DEVICE=$(EVR), SYS=$(SYS), EVT=$(EVR_PUL0_EVENT), PID=1, F=Trig, ID=1")
## Load ifcdaq instance
#dbLoadRecords(IFCDAQAIChannelGroup.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI")
#dbLoadRecords(IFCDAQAIChannel.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI,CH_ID=CH0, NELM=$(DAQBUFSIZE)")
#dbLoadRecords(IFCDAQAIChannel.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI,CH_ID=CH1, NELM=$(DAQBUFSIZE)")
#dbLoadRecords(IFCDAQAIChannel.template, "PREFIX=$(DAQPREFIX),CH_GRP_ID=AI,CH_ID=CH2, NELM=$(DAQBUFSIZE)")
# #
# Load Single motions records # Load Single motions records
...@@ -127,7 +123,7 @@ dbLoadRecords("motorStatus.template", "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_N ...@@ -127,7 +123,7 @@ dbLoadRecords("motorStatus.template", "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_N
dbLoadRecords("motorHoming.template", "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_NAME1),ASYN_PORT=$(PMACPORT),AXIS_NO=$(AXIS_NO1),PREC=$(PREC),EGU=$(EGU)") dbLoadRecords("motorHoming.template", "PREFIX=$(PMACPREFIX),MOTOR_NAME=$(MOTOR_NAME1),ASYN_PORT=$(PMACPORT),AXIS_NO=$(AXIS_NO1),PREC=$(PREC),EGU=$(EGU)")
dbLoadRecords("EMU.db", "DEVICE=$(SCANPREFIX), SCAN_SLIT=$(SCAN_SLIT), SCAN_EF=$(SCAN_EF),MTRREC=$(PMACPREFIX):$(MOTOR_NAME1), MAX_POINTS_EF=$(SCAN_POINTS_EF), MAX_POINTS_SLIT=$(SCAN_POINTS_SLIT), DAQNDSPREFIX=$(DAQPREFIX), DAQBUFSIZE=$(DAQBUFSIZE), DET1WF=PBI-EM-FC:CurrR_Y, DET2WF=PBI-EM-HV1:VoltR_Y, DET3WF=PBI-EM-HV2:VoltR_Y, TR_TL=$(SYS)-$(EVR):Pul0-Ena-Sel, TR_TLTSEL=$(SYS)-$(EVR):Event-$(EVR_PUL0_EVENT)-SP.TIME, PSU_SP=LNS-ISRC-010:PBI-EM:HVhor-SP, PSU_RBV=LNS-ISRC-010:PBI-EM:HVhor-SP, PSU2_SP=LNS-ISRC-010:PBI-EM:HVver-SP, PSU2_RBV=LNS-ISRC-010:PBI-EM:HVver-SP") dbLoadRecords("EMU.db", "DEVICE=$(SCANPREFIX), SCAN_SLIT=$(SCAN_SLIT), SCAN_EF=$(SCAN_EF),MTRREC=$(PMACPREFIX):$(MOTOR_NAME1), MAX_POINTS_EF=$(SCAN_POINTS_EF), MAX_POINTS_SLIT=$(SCAN_POINTS_SLIT), DAQNDSPREFIX=$(DAQPREFIX), DAQBUFSIZE=$(DAQBUFSIZE), DET1WF=PBI-EM-FC:CurrR_Y, DET2WF=PBI-EM-HV1:VoltR_Y, DET3WF=PBI-EM-HV2:VoltR_Y, TR_TL=$(SYS)-$(EVR):Pul0-Ena-Sel, TR_TLTSEL=$(SYS)-$(EVR):Event-$(EVR_PUL0_EVENT)-SP.TIME, PSU_SP=LNS-ISRC-010:PBI-EM:HVhor-SP, PSU_RBV=LNS-ISRC-010:PBI-EM:HVhor-SP, PSU2_SP=LNS-ISRC-010:PBI-EM:HVver-SP, PSU2_RBV=LNS-ISRC-010:PBI-EM:HVver-SP,BUFFERSIZE=$(BUFFERSIZE)")
# #
# Init ETHERCAT module # Init ETHERCAT module
...@@ -190,6 +186,15 @@ dbpf $(SYS)-$(EVR):Pul0-Width-SP 20000 ...@@ -190,6 +186,15 @@ dbpf $(SYS)-$(EVR):Pul0-Width-SP 20000
dbpf $(SYS)-$(EVR):Pul0-Delay-SP 0 dbpf $(SYS)-$(EVR):Pul0-Delay-SP 0
dbpf $(SYS)-$(EVR):FrontOut0-Ena-SP "Enabled" dbpf $(SYS)-$(EVR):FrontOut0-Ena-SP "Enabled"
### Setup EVR
##set the pulser 1 to trigger on output 1 for BETSI
########## TIMING RECEIVER: setup OUT0 ##############
dbpf $(SYS)-$(EVR):FrontOut1-Src-SP 1
dbpf $(SYS)-$(EVR):Pul1-Evt-Trig1-SP $(EVR_PUL0_EVENT)
dbpf $(SYS)-$(EVR):Pul1-Width-SP 20000
dbpf $(SYS)-$(EVR):Pul1-Delay-SP 0
dbpf $(SYS)-$(EVR):FrontOut1-Ena-SP "Enabled"
#dbpf $(SYS)-$(EVR):Time-I.TSE -2 #dbpf $(SYS)-$(EVR):Time-I.TSE -2
### Setup IFCDAQ PVs ### ### Setup IFCDAQ PVs ###
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment