diff --git a/src/epics/util/feCodeGen.pl b/src/epics/util/feCodeGen.pl index 66b69a6e15536e58a440b228c71072aa9882fe53..279e40a0b9447248a36f410a5dc220647b732aec 100755 --- a/src/epics/util/feCodeGen.pl +++ b/src/epics/util/feCodeGen.pl @@ -68,6 +68,16 @@ die "Usage: $PROGRAM_NAME <MDL file> <Output file name> [<DCUID number>] [<site> #Setup current working directory and pointer to RCG source directory. $currWorkDir = &Cwd::cwd(); $rcg_src_dir = $ENV{"RCG_SRC_DIR"}; +$lrpciefile = $rcg_src_dir . "/src/include/USE_LR_PCIE"; +$pciegenfile = $rcg_src_dir . "/src/include/USE_DOLPHIN_GEN2"; + +if (-e "$lrpciefile") { + print "PCIE LR exists\n"; + $rfm_via_pcie = 1; +} else { + print "PCIE LR DOES NOT exist\n"; + $rfm_via_pcie = 0; +} if (! length $rcg_src_dir) { $rcg_src_dir = "$currWorkDir/../../.."; } @sources = (); @@ -122,7 +132,6 @@ $rfmTimeSlave = -1; $diagTest = -1; $flipSignals = 0; $virtualiop = 0; -$rfm_via_pcie = 1; $edcu = 0; $casdf = 0; $globalsdf = 0; @@ -1329,6 +1338,11 @@ for($ii=0;$ii<32;$ii++) { print EPICS "OUTVARIABLE FEC\_$dcuId\_GDS_MON_$ii epicsOutput.gdsMon\[$ii\] int ao 0\n"; } +print OUTH "\tint startgpstime;\n"; +print EPICS "OUTVARIABLE FEC\_$dcuId\_START_GPS epicsOutput.startgpstime int ao 0\n"; +print EPICS "DUMMY FEC\_$dcuId\_UPTIME_DAY int ai 0\n"; +print EPICS "DUMMY FEC\_$dcuId\_UPTIME_HOUR int ai 0\n"; +print EPICS "DUMMY FEC\_$dcuId\_UPTIME_MINUTE int ai 0\n"; # The following code is in solely for automated testing. @@ -1785,11 +1799,12 @@ print "\tPart number is $remoteGpsPart\n"; if($virtualiop == 1) { print OUT "#include \"$rcg_src_dir/src/fe/controllerVirtual.c\"\n"; -} elsif($virtualiop > 1) { -#This is a Dolphin switch -print OUT "#include \"$rcg_src_dir/src/fe/controllerSwitch.c\"\n"; } else { -print OUT "#include \"$rcg_src_dir/src/fe/controller.c\"\n"; + if($adcMaster == 1) { + print OUT "#include \"$rcg_src_dir/src/fe/controllerIop.c\"\n"; + } else { + print OUT "#include \"$rcg_src_dir/src/fe/controllerApp.c\"\n"; + } } @@ -2576,18 +2591,16 @@ if ($rfmTimeSlave > -1) { if ($flipSignals) { print OUTM "EXTRA_CFLAGS += -DFLIP_SIGNALS=1\n"; } -if ($pciNet == 1) { - print OUTM "#Enable use of PCIe RFM Network Gen 1\n"; - print OUTM "DISDIR = /opt/srcdis\n"; - print OUTM "EXTRA_CFLAGS += -DOS_IS_LINUX=1 -D_KERNEL=1 -I\$(DISDIR)/src/IRM/drv/src -I\$(DISDIR)/src/IRM/drv/src/LINUX -I\$(DISDIR)/src/include -I\$(DISDIR)/src/include/dis -DDOLPHIN_TEST=1 -DDIS_BROADCAST=0x80000000\n"; -} elsif($pciNet == 2) { - print OUTM "#Enable use of PCIe RFM Network Gen 2\n"; - print OUTM "DISDIR = /opt/srcdis\n"; - print OUTM "EXTRA_CFLAGS += -DOS_IS_LINUX=1 -D_KERNEL=1 -I\$(DISDIR)/src/IRM_GX/drv/src -I\$(DISDIR)/src/IRM_GX/drv/src/LINUX -I\$(DISDIR)/src/include -I\$(DISDIR)/src/include/dis -I\$(DISDIR)/src/COMMON/osif/kernel/include -I\$(DISDIR)/src/COMMON/osif/kernel/include/LINUX -DDOLPHIN_TEST=1 -DDIS_BROADCAST=0x80000000\n"; -} else { - print OUTM "#Uncomment to use PCIe RFM Network\n"; - print OUTM "#DISDIR = /home/controls/DIS\n"; - print OUTM "#EXTRA_CFLAGS += -DOS_IS_LINUX=1 -D_KERNEL=1 -I\$(DISDIR)/src/IRM/drv/src -I\$(DISDIR)/src/IRM/drv/src/LINUX -I\$(DISDIR)/src/include -I\$(DISDIR)/src/include/dis -DDOLPHIN_TEST=1 -DDIS_BROADCAST=0x80000000\n"; +if ($pciNet > 0) { + if (-e "$pciegenfile") { + print OUTM "#Enable use of PCIe RFM Network Gen 2\n"; + print OUTM "DISDIR = /opt/srcdis\n"; + print OUTM "EXTRA_CFLAGS += -DOS_IS_LINUX=1 -D_KERNEL=1 -I\$(DISDIR)/src/IRM_GX/drv/src -I\$(DISDIR)/src/IRM_GX/drv/src/LINUX -I\$(DISDIR)/src/include -I\$(DISDIR)/src/include/dis -I\$(DISDIR)/src/COMMON/osif/kernel/include -I\$(DISDIR)/src/COMMON/osif/kernel/include/LINUX -DDOLPHIN_TEST=1 -DDIS_BROADCAST=0x80000000\n"; + } else { + print OUTM "#Enable use of PCIe RFM Network Gen 1\n"; + print OUTM "DISDIR = /opt/srcdis\n"; + print OUTM "EXTRA_CFLAGS += -DOS_IS_LINUX=1 -D_KERNEL=1 -I\$(DISDIR)/src/IRM/drv/src -I\$(DISDIR)/src/IRM/drv/src/LINUX -I\$(DISDIR)/src/include -I\$(DISDIR)/src/include/dis -DDOLPHIN_TEST=1 -DDIS_BROADCAST=0x80000000\n"; + } } if($virtualiop > 1) { print OUTM "EXTRA_CFLAGS += -DDOLPHIN_SWITCH=1\n"; diff --git a/src/epics/util/fmseq.pl b/src/epics/util/fmseq.pl index 5d69e70af081b0160a888eec51deda04835259fa..c49a3a958138bea9202340bfaa40b538a759abca 100755 --- a/src/epics/util/fmseq.pl +++ b/src/epics/util/fmseq.pl @@ -1076,6 +1076,7 @@ print "grecord(stringout,\"%IFO%:FEC-${dcuId}_MSG\")\n"; print "grecord(stringout,\"%IFO%:FEC-${dcuId}_MSG2\")\n"; print "grecord(stringout,\"%IFO%:FEC-${dcuId}_MSGDAQ\")\n"; print "grecord(stringout,\"%IFO%:FEC-${dcuId}_TIME_STRING\")\n"; +print "grecord(stringout,\"%IFO%:FEC-${dcuId}_BUILD_DATE\")\n"; for(my $fmi = 0; $fmi < 1000; $fmi ++) { diff --git a/src/epics/util/skeleton.st b/src/epics/util/skeleton.st index 5e4fe7b891339586f83077b103934265ee8e7202..255d445b684c8386a21c6bd6c6bac55a4cec9e93 100644 --- a/src/epics/util/skeleton.st +++ b/src/epics/util/skeleton.st @@ -84,6 +84,11 @@ program %SEQUENCER_NAME% %% static %EPICS_TYPE% *pEpics = &pEpicsSpace; #endif +%% char *build_date = __DATE__ " " __TIME__; + +string build_time; +assign build_time to "{ifo}:FEC-{sysnum}_BUILD_DATE"; + string msg; assign msg to "{ifo}:FEC-{sysnum}_MSG"; @@ -131,6 +136,15 @@ assign dataSize to "{ifo}:DAQ-FEC_{sysnum}_TOTAL"; int dcuId; assign dcuId to "{ifo}:DAQ-FEC_{sysnum}_DCU_ID"; +int uptime_day; +assign uptime_day to "{ifo}:FEC-{sysnum}_UPTIME_DAY"; + +int uptime_hour; +assign uptime_hour to "{ifo}:FEC-{sysnum}_UPTIME_HOUR"; + +int uptime_minute; +assign uptime_minute to "{ifo}:FEC-{sysnum}_UPTIME_MINUTE"; + #endif @@ -315,6 +329,8 @@ state init %% strcpy(localtimestring, ctime(<)); %% localtimestring[strlen(localtimestring) - 1] = 0; /* Delete newline character */ pvPut(localtimestring); +%% strcpy(build_time, build_date); + pvPut(build_time); #if defined(RFM_EPICS) sysnum = atoi(macValueGet("sysnum")); @@ -512,6 +528,7 @@ state monScreen{ %% int ij; %% int rtruns = 0; %% int myTimeout; +%% int uptime; %% rtruns = 1; %% stateWord = pEpics->epicsOutput.stateWord @@ -544,6 +561,15 @@ state monScreen{ %% if(prev_seqTrig == 0) epicsSyncTime += 1; epicsWait = myTimeout; pvPut(epicsWait); +%% uptime = pEpics->epicsOutput.timeDiag - pEpics->epicsOutput.startgpstime; + uptime_day = uptime / 86400; + uptime -= uptime_day * 86400; + uptime_hour = uptime / 3600; + uptime -= uptime_hour * 3600; + uptime_minute = uptime /60; + pvPut(uptime_day); + pvPut(uptime_hour); + pvPut(uptime_minute); %% pthread_mutex_lock (&seq_lock);