diff --git a/src/epics/seq/main.c b/src/epics/seq/main.c index 053ee24cf42c7d6547baf0f24a860b7aa33431a6..18a39c5af2ec3cfc4826d577aa39dc772871631c 100644 --- a/src/epics/seq/main.c +++ b/src/epics/seq/main.c @@ -44,6 +44,7 @@ of this distribution. #include "envDefs.h" #include "math.h" #include "rcgversion.h" +#include "sdf_file_loaded.h" #define epicsExportSharedSymbols #include "asLib.h" @@ -1883,7 +1884,7 @@ int writeEpicsDb(int numchans, ///< Number of channels to write // trigger a BURT_RESTORE { - epicsEnvSet("SDF_FILE_LOADED", "1"); + set_sdf_file_loaded(1); } break; case SDF_READ_ONLY: diff --git a/src/epics/seq/sdf_file_loaded.c b/src/epics/seq/sdf_file_loaded.c new file mode 100644 index 0000000000000000000000000000000000000000..e8fec78f8d7187e86170f76aedaf7809631711db --- /dev/null +++ b/src/epics/seq/sdf_file_loaded.c @@ -0,0 +1,12 @@ + +static int sdf_file_loaded=0; + +int get_sdf_file_loaded() +{ + return sdf_file_loaded; +} + +extern void set_sdf_file_loaded(int sfl) +{ + sdf_file_loaded = sfl; +} \ No newline at end of file diff --git a/src/epics/seq/sdf_file_loaded.h b/src/epics/seq/sdf_file_loaded.h new file mode 100644 index 0000000000000000000000000000000000000000..722e4d64ad28aa01dd001481d92fa8f88cd13f49 --- /dev/null +++ b/src/epics/seq/sdf_file_loaded.h @@ -0,0 +1,11 @@ +#ifndef DAQD_TRUNK_SDF_FILE_LOADED_H +#define DAQD_TRUNK_SDF_FILE_LOADED_H + +// set or clear and sdf file loaded flag +// this flag is used to trigger BURT_RESTORE +// when the safe.snap or other sdf file is completely loaded + +extern int get_sdf_file_loaded(); +extern void set_sdf_file_loaded(int); + +#endif // DAQD_TRUNK_SDF_FILE_LOADED_H diff --git a/src/epics/util/fmseq.pl b/src/epics/util/fmseq.pl index 51475c55b1806a61a8b0f6fe98300af4f0b8b644..eea92757e924e8980062a803f6b80d364c2519d7 100755 --- a/src/epics/util/fmseq.pl +++ b/src/epics/util/fmseq.pl @@ -288,7 +288,7 @@ while (<IN>) { # allow burt restore to be triggered by a change in epics # environment variable SDF_FILE_LOAD if ($v_name =~ /BURT_RESTORE/) { - $vupdate .= "%% sdf_file_loaded = atoi(getenv(\"SDF_FILE_LOADED\"));\n"; + $vupdate .= "%% sdf_file_loaded = get_sdf_file_loaded();\n"; $vupdate .= "%% if(sdf_file_loaded != sdf_file_loaded_old) {\n"; $vupdate .= "%% printf(\"BURT_RESTORE triggered to %d\\n\", sdf_file_loaded);\n"; $vupdate .= "%% sdf_file_loaded_old = sdf_file_loaded;\n"; diff --git a/src/epics/util/skeleton.st b/src/epics/util/skeleton.st index b2f51adddbc034d03c2569407b074c6c22960e65..7b9b9a6d8fab1bdc66dd1f946bc09f2332abaab1 100644 --- a/src/epics/util/skeleton.st +++ b/src/epics/util/skeleton.st @@ -36,6 +36,7 @@ program %SEQUENCER_NAME% %% #include "fmReadCoeff.h" %% #include "feComms.h" %% #include "findSharedMemory.h" +%% #include "sdf_file_loaded.h" %% #define FE_ERROR_CFC 0x400 /* Cat string and make upper case */ /* MA */