10 Commits

Author SHA1 Message Date
Martino Ferrari
6f9de86b71 added gain to fhps output 2026-02-11 14:15:13 +01:00
Martino Ferrari
fa5db368cd added ScaleGAM 2026-02-11 14:14:56 +01:00
Martino Ferrari
47d7f8c446 added scale gam 2026-02-11 14:11:16 +01:00
Martino Ferrari
cb00d24179 fixed CCPS in op 2026-02-11 12:00:21 +01:00
Martino Ferrari
5ad2d75aa4 added missing links between aux states and do 2026-02-11 11:38:31 +01:00
ferrog
1e0b797e9e Wrong AO board index, fixed PS communication 2026-02-11 09:30:13 +00:00
Martino Ferrari
b23b75115b fixed and logic 2026-02-11 09:53:30 +01:00
Martino Ferrari
7a145d3912 Updated staet logic 2026-02-10 16:17:40 +01:00
Martino Ferrari
f07bcafc07 Better Error management 2026-02-10 16:08:42 +01:00
ferrog
d18c98311a Fixing DAN timing, inverting MHVPS_FLT dig input 2026-02-10 14:53:58 +00:00
21 changed files with 942 additions and 94 deletions

View File

@@ -292,12 +292,12 @@ bool JAConditionalSignalUpdateGAM::Execute() {
if (state) { if (state) {
needsReset = true; needsReset = true;
MARTe::uint32 i; MARTe::uint32 i;
for (i = 0u; i < numberOfOutputSignals; ++i) { for (i = 0u; i < numberOfOutputSignals; i++) {
*outputSignals[i] = outputs[i].value; *outputSignals[i] = outputs[i].value;
} }
} else { } else {
MARTe::uint32 i; MARTe::uint32 i;
for (i = 0u; i < numberOfOutputSignals; ++i) { for (i = 0u; i < numberOfOutputSignals; i++) {
*outputSignals[i] = outputs[i].defaultValue; *outputSignals[i] = outputs[i].defaultValue;
} }
} }

View File

@@ -310,7 +310,7 @@ bool JAMessageGAM::Execute() {
eventDetected = Compare(0, floatIndex, intIndex); eventDetected = Compare(0, floatIndex, intIndex);
for (inputPortIndex = 1; (inputPortIndex < numberOfInputSignals); for (inputPortIndex = 1; (inputPortIndex < numberOfInputSignals);
inputPortIndex++) { inputPortIndex++) {
eventDetected = Compare(inputPortIndex, floatIndex, intIndex); eventDetected &= Compare(inputPortIndex, floatIndex, intIndex);
} }
} else if (operation == Xor) { } else if (operation == Xor) {
uint32 eventDetectedUInt32 = Compare(inputPortIndex, floatIndex, intIndex); uint32 eventDetectedUInt32 = Compare(inputPortIndex, floatIndex, intIndex);

View File

@@ -28,7 +28,7 @@ SPB = JAMessageGAM.x JAPreProgrammedGAM.x JAModeControlGAM.x \
JAWFRecordGAM.x JATriangleWaveGAM.x JARampupGAM.x \ JAWFRecordGAM.x JATriangleWaveGAM.x JARampupGAM.x \
JARTStateMachineGAM.x JASDNRTStateMachineGAM.x JATerminalInterfaceGAM.x \ JARTStateMachineGAM.x JASDNRTStateMachineGAM.x JATerminalInterfaceGAM.x \
JABitSumGAM.x JAConditionalSignalUpdateGAM.x JASourceChoiceGAM.x JABitReverseGAM.x \ JABitSumGAM.x JAConditionalSignalUpdateGAM.x JASourceChoiceGAM.x JABitReverseGAM.x \
JAESDNTimeCompareGAM.x JAESDNTimeCompareGAM.x ScaleGAM.x
MAKEDEFAULTDIR=$(MARTe2_DIR)/MakeDefaults MAKEDEFAULTDIR=$(MARTe2_DIR)/MakeDefaults

View File

@@ -0,0 +1,27 @@
#############################################################
#
# Copyright 2015 F4E | European Joint Undertaking for ITER
# and the Development of Fusion Energy ('Fusion for Energy')
#
# Licensed under the EUPL, Version 1.1 or - as soon they
# will be approved by the European Commission - subsequent
# versions of the EUPL (the "Licence");
# You may not use this work except in compliance with the
# Licence.
# You may obtain a copy of the Licence at:
#
# http://ec.europa.eu/idabc/eupl
#
# Unless required by applicable law or agreed to in
# writing, software distributed under the Licence is
# distributed on an "AS IS" basis,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
# express or implied.
# See the Licence for the specific language governing
# permissions and limitations under the Licence.
#
# $Id: Makefile.gcc 3 2012-01-15 16:26:07Z aneto $
#
#############################################################
include Makefile.inc

View File

@@ -0,0 +1,53 @@
#############################################################
#
# Copyright 2015 F4E | European Joint Undertaking for ITER
# and the Development of Fusion Energy ('Fusion for Energy')
#
# Licensed under the EUPL, Version 1.1 or - as soon they
# will be approved by the European Commission - subsequent
# versions of the EUPL (the "Licence");
# You may not use this work except in compliance with the
# Licence.
# You may obtain a copy of the Licence at:
#
# http://ec.europa.eu/idabc/eupl
#
# Unless required by applicable law or agreed to in
# writing, software distributed under the Licence is
# distributed on an "AS IS" basis,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
# express or implied.
# See the Licence for the specific language governing
# permissions and limitations under the Licence.
#
# $Id: Makefile.inc 3 2012-01-15 16:26:07Z aneto $
#
#############################################################
OBJSX=ScaleGAM.x
PACKAGE=GAMs
ROOT_DIR=../../../../obj
MAKEDEFAULTDIR=$(MARTe2_DIR)/MakeDefaults
include $(MAKEDEFAULTDIR)/MakeStdLibDefs.$(TARGET)
INCLUDES += -I.
INCLUDES += -I$(MARTe2_DIR)/Source/Core/BareMetal/L0Types
INCLUDES += -I$(MARTe2_DIR)/Source/Core/BareMetal/L1Portability
INCLUDES += -I$(MARTe2_DIR)/Source/Core/BareMetal/L2Objects
INCLUDES += -I$(MARTe2_DIR)/Source/Core/BareMetal/L3Streams
INCLUDES += -I$(MARTe2_DIR)/Source/Core/BareMetal/L4Messages
INCLUDES += -I$(MARTe2_DIR)/Source/Core/BareMetal/L4Configuration
INCLUDES += -I$(MARTe2_DIR)/Source/Core/BareMetal/L5GAMs
INCLUDES += -I$(MARTe2_DIR)/Source/Core/Scheduler/L1Portability
INCLUDES += -I$(MARTe2_DIR)/Source/Core/Scheduler/L3Services
INCLUDES += -I$(MARTe2_DIR)/Source/Core/Scheduler/L4Messages
all: $(OBJS) $(SUBPROJ) \
$(BUILD_DIR)/ScaleGAM$(LIBEXT) \
$(BUILD_DIR)/ScaleGAM$(DLLEXT)
echo $(OBJS)
include $(MAKEDEFAULTDIR)/MakeStdLibRules.$(TARGET)

View File

@@ -0,0 +1,127 @@
/*---------------------------------------------------------------------------*/
/* Standard header includes */
/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
/* Project header includes */
/*---------------------------------------------------------------------------*/
#include "AdvancedErrorManagement.h"
#include "CompilerTypes.h"
#include "DataSourceI.h"
#include "ScaleGAM.h"
#include "TypeDescriptor.h"
/*---------------------------------------------------------------------------*/
/* Static definitions */
/*---------------------------------------------------------------------------*/
namespace MARTe {} // namespace MARTe
/*---------------------------------------------------------------------------*/
/* Method definitions */
/*---------------------------------------------------------------------------*/
namespace MARTe {
const MARTe::uint32 NUM_OUTPUTS = 1u;
const MARTe::uint32 NUM_PARAMS = 0u;
ScaleGAM::ScaleGAM() : GAM(), MessageI() {
factors = NULL_PTR(float32 *);
inputs = NULL_PTR(float32 *);
outputs = NULL_PTR(float32 *);
}
ScaleGAM::~ScaleGAM() {
if (factors != NULL_PTR(float32 *)) {
delete[] factors;
}
}
bool ScaleGAM::Setup() {
bool ok = numberOfInputSignals == numberOfOutputSignals;
for (uint32 i = 0; i < numberOfInputSignals && ok; i++) {
if (GetSignalType(InputSignals, i) != Float32Bit) {
REPORT_ERROR(ErrorManagement::InitialisationError,
"Input %d should be float32", i);
ok = false;
}
if (GetSignalType(OutputSignals, i) != Float32Bit) {
REPORT_ERROR(ErrorManagement::InitialisationError,
"Output %d should be float32", i);
ok = false;
}
}
inputs = (float32 *)inputSignalsMemory;
outputs = (float32 *)outputSignalsMemory;
return ok;
}
bool ScaleGAM::Initialise(StructuredDataI &data) {
bool ret = GAM::Initialise(data);
uint32 nin = 0;
if (ret && data.MoveRelative("InputSignals")) {
nin = data.GetNumberOfChildren();
if (nin == 0) {
REPORT_ERROR(ErrorManagement::InitialisationError,
"Number of inputs should > 0");
ret = false;
} else {
factors = new float32[nin];
}
for (uint32 i = 0; i < nin && ret; i++) {
ret = data.MoveToChild(i);
if (!ret) {
REPORT_ERROR(ErrorManagement::InitialisationError,
"Impossible to move to children %d", i);
data.MoveToAncestor(1u);
break;
}
ret = data.Read("Factor", factors[i]);
if (!ret) {
REPORT_ERROR(ErrorManagement::InitialisationError,
"Impossible to move to read `Factor` for signal n %d ", i);
data.MoveToAncestor(1u);
break;
}
}
ret = data.MoveToAncestor(1u) & ret;
} else {
REPORT_ERROR(ErrorManagement::InitialisationError,
"No input signals found");
ret &= false;
}
if (ret && data.MoveRelative("OutputSignals")) {
uint32 nout = data.GetNumberOfChildren();
if (nout != nin) {
REPORT_ERROR(
ErrorManagement::InitialisationError,
"Number of Outputs should be exactly equal to number of outputs",
NUM_OUTPUTS);
ret = false;
}
ret = data.MoveToAncestor(1u);
} else {
REPORT_ERROR(ErrorManagement::InitialisationError,
"No output signals, exactly %d outputs are needed",
NUM_OUTPUTS);
ret = false;
}
REPORT_ERROR(ret ? ErrorManagement::Information
: ErrorManagement::InitialisationError,
ret ? "%s Initialised" : "%s Failed to initialise", GetName());
return ret;
}
bool ScaleGAM::Execute() {
for (uint32 i = 0; i < numberOfInputSignals; i++) {
outputs[i] = inputs[i] / factors[i];
}
return true;
}
CLASS_REGISTER(ScaleGAM, "1.0")
} /* namespace MARTe */

View File

@@ -0,0 +1,71 @@
#ifndef SCALE_GAM_H
#define SCALE_GAM_H
/*---------------------------------------------------------------------------*/
/* Standard header includes */
/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
/* Project header includes */
/*---------------------------------------------------------------------------*/
#include "Architecture/x86_gcc/CompilerTypes.h"
#include "GAM.h"
#include "MessageI.h"
/*---------------------------------------------------------------------------*/
/* Class declaration */
/*---------------------------------------------------------------------------*/
namespace MARTe {
class ScaleGAM : public GAM, public MessageI {
public:
CLASS_REGISTER_DECLARATION()
/**
* @brief Constructor. NOOP.
*/
ScaleGAM();
/**
* @brief Destructor. NOOP.
*/
virtual ~ScaleGAM();
/**
* @brief Initialises the output signal memory with default values provided
* through configuration.
* @return true if the pre-conditions are met.
* @pre
* The pairs of signals have the same byte size.
*/
virtual bool Setup();
/**
* @see DataSourceI::Initialise
* @details Initialise the parameters of the ComparatorGAM
* @return true if the pre-conditions are met.
* @pre
* The number of input signals is even and each pair of signals have the same
* type.
**/
virtual bool Initialise(StructuredDataI &data);
/**
* @brief Execute method. NOOP.
* @return true.
*/
virtual bool Execute();
private:
float32 * inputs;
float32 * outputs;
float32 * factors;
};
} // namespace MARTe
/*---------------------------------------------------------------------------*/
/* Inline method definitions */
/*---------------------------------------------------------------------------*/
#endif

View File

@@ -36,6 +36,7 @@
Functions = { Functions = {
FastTimerGAM, FastTimerGAM,
NI6528_0_ReaderGAM, NI6528_0_ReaderGAM,
AsyncIOGAM,
HVPSsOffGAM, HVPSsOffGAM,
NI6528_0_WriterGAM, NI6528_0_WriterGAM,
SyncThreadProducerGAM SyncThreadProducerGAM
@@ -53,7 +54,7 @@
+DANThread = { +DANThread = {
Class = RealTimeThread Class = RealTimeThread
CPUs = @cpus_dan CPUs = @cpus_dan
Functions = { CurrentTimeDIO, DANDIOPublisherGAM } Functions = { WaitForDioSignals, DANDIOPublisherGAM }
} }
+ReferenceGenerationThread = { +ReferenceGenerationThread = {
Class = RealTimeThread Class = RealTimeThread
@@ -61,6 +62,8 @@
Functions = { Functions = {
WGTimerGAM, WGTimerGAM,
CCPSWaveformGAM, CCPSWaveformGAM,
FHPSStateGAM,
FHPSGainGAM,
WGProducerGAM WGProducerGAM
} }
} }
@@ -101,6 +104,7 @@
Functions = { Functions = {
FastTimerGAM, FastTimerGAM,
NI6528_0_ReaderGAM, NI6528_0_ReaderGAM,
AsyncIOGAM,
HVPSsOffGAM, HVPSsOffGAM,
NI6528_0_WriterGAM, NI6528_0_WriterGAM,
SyncThreadProducerGAM SyncThreadProducerGAM
@@ -118,7 +122,7 @@
} }
+DANThread = { +DANThread = {
Class = RealTimeThread Class = RealTimeThread
Functions = { CurrentTimeDIO, DANDIOPublisherGAM } Functions = { WaitForDioSignals, DANDIOPublisherGAM }
CPUs = @cpus_dan CPUs = @cpus_dan
} }
+ReferenceGenerationThread = { +ReferenceGenerationThread = {
@@ -129,6 +133,8 @@
CCPSWaveformGAM, CCPSWaveformGAM,
FHPSSetpointGAM, FHPSSetpointGAM,
FHPSRampupGAM, FHPSRampupGAM,
FHPSStateGAM,
FHPSGainGAM,
WGProducerGAM WGProducerGAM
} }
} }
@@ -170,6 +176,7 @@
Functions = { Functions = {
FastTimerGAM, FastTimerGAM,
NI6528_0_ReaderGAM, NI6528_0_ReaderGAM,
AsyncIOGAM,
HVPSsOffGAM, HVPSsOffGAM,
NI6528_0_WriterGAM, NI6528_0_WriterGAM,
SyncThreadProducerGAM SyncThreadProducerGAM
@@ -187,7 +194,7 @@
} }
+DANThread = { +DANThread = {
Class = RealTimeThread Class = RealTimeThread
Functions = { CurrentTimeDIO, DANDIOPublisherGAM } Functions = { WaitForDioSignals, DANDIOPublisherGAM }
CPUs = @cpus_dan CPUs = @cpus_dan
} }
+ReferenceGenerationThread = { +ReferenceGenerationThread = {
@@ -198,6 +205,8 @@
CCPSWaveformGAM, CCPSWaveformGAM,
FHPSSetpointGAM, FHPSSetpointGAM,
FHPSRampupGAM, FHPSRampupGAM,
FHPSStateGAM,
FHPSGainGAM,
WGProducerGAM WGProducerGAM
} }
} }
@@ -221,7 +230,7 @@
GoWaitHVON_PREP_GAM, GoWaitHVON_PREP_GAM,
GoWaitHVON_SDN_GAM, GoWaitHVON_SDN_GAM,
GoWaitHVON_SDN_PREP_GAM, GoWaitHVON_SDN_PREP_GAM,
GoErrorGAM, GoErrorHVGAM,
ChoiceGAM, ChoiceGAM,
EPICSThSyncGAM, EPICSThSyncGAM,
EPICSOutputGAM EPICSOutputGAM
@@ -242,6 +251,7 @@
Functions = { Functions = {
FastTimerGAM, FastTimerGAM,
NI6528_0_ReaderGAM, NI6528_0_ReaderGAM,
AsyncIOGAM,
HVPSsOffGAM, HVPSsOffGAM,
NI6528_0_WriterGAM, NI6528_0_WriterGAM,
SyncThreadProducerGAM SyncThreadProducerGAM
@@ -259,7 +269,7 @@
} }
+DANThread = { +DANThread = {
Class = RealTimeThread Class = RealTimeThread
Functions = { CurrentTimeDIO, DANDIOPublisherGAM } Functions = { WaitForDioSignals, DANDIOPublisherGAM }
CPUs = @cpus_dan CPUs = @cpus_dan
} }
+ReferenceGenerationThread = { +ReferenceGenerationThread = {
@@ -270,6 +280,8 @@
CCPSWaveformGAM, CCPSWaveformGAM,
FHPSSetpointGAM, FHPSSetpointGAM,
FHPSRampupGAM, FHPSRampupGAM,
FHPSStateGAM,
FHPSGainGAM,
WGProducerGAM WGProducerGAM
} }
} }
@@ -289,7 +301,7 @@
PXIErrorGAM, PXIErrorGAM,
FromWaitHVONToWaitStandby, FromWaitHVONToWaitStandby,
FromWaitHVONToWaitPermit, FromWaitHVONToWaitPermit,
GoErrorGAM, GoErrorHVGAM,
ChoiceGAM, ChoiceGAM,
EPICSThSyncGAM, EPICSThSyncGAM,
EPICSOutputGAM EPICSOutputGAM
@@ -306,6 +318,7 @@
Functions = { Functions = {
FastTimerGAM, FastTimerGAM,
NI6528_0_ReaderGAM, NI6528_0_ReaderGAM,
AsyncIOGAM,
FastEpicsInputGAM, FastEpicsInputGAM,
FastStopRequestGAM, FastStopRequestGAM,
ModeLimitGAM, ModeLimitGAM,
@@ -326,7 +339,7 @@
} }
+DANThread = { +DANThread = {
Class = RealTimeThread Class = RealTimeThread
Functions = { CurrentTimeDIO, DANDIOPublisherGAM } Functions = { WaitForDioSignals, DANDIOPublisherGAM }
CPUs = @cpus_dan CPUs = @cpus_dan
} }
+ReferenceGenerationThread = { +ReferenceGenerationThread = {
@@ -337,6 +350,8 @@
CCPSWaveformGAM, CCPSWaveformGAM,
FHPSSetpointGAM, FHPSSetpointGAM,
FHPSRampupGAM, FHPSRampupGAM,
FHPSStateGAM,
FHPSGainGAM,
WGProducerGAM WGProducerGAM
} }
} }
@@ -355,7 +370,7 @@
PXIErrorGAM, PXIErrorGAM,
FromWaitHVONToWaitStandby, FromWaitHVONToWaitStandby,
FromWaitHVONToWaitPermit, FromWaitHVONToWaitPermit,
GoErrorGAM, GoErrorHVGAM,
ChoiceGAM, ChoiceGAM,
EPICSThSyncGAM, EPICSThSyncGAM,
EPICSOutputGAM EPICSOutputGAM
@@ -376,6 +391,7 @@
Functions = { Functions = {
FastTimerGAM, FastTimerGAM,
NI6528_0_ReaderGAM, NI6528_0_ReaderGAM,
AsyncIOGAM,
FastEpicsInputGAM, FastEpicsInputGAM,
FastStopRequestGAM, FastStopRequestGAM,
ModeLimitGAM, ModeLimitGAM,
@@ -396,7 +412,7 @@
} }
+DANThread = { +DANThread = {
Class = RealTimeThread Class = RealTimeThread
Functions = { CurrentTimeDIO, DANDIOPublisherGAM } Functions = { WaitForDioSignals, DANDIOPublisherGAM }
CPUs = @cpus_dan CPUs = @cpus_dan
} }
+ReferenceGenerationThread = { +ReferenceGenerationThread = {
@@ -406,6 +422,8 @@
WGTimerGAM, WGTimerGAM,
CCPSWaveformGAM, CCPSWaveformGAM,
FHPSRampupGAM, FHPSRampupGAM,
FHPSStateGAM,
FHPSGainGAM,
WGProducerGAM WGProducerGAM
} }
} }
@@ -425,7 +443,7 @@
PXIErrorGAM, PXIErrorGAM,
FromWaitHVONToWaitStandby, FromWaitHVONToWaitStandby,
FromWaitHVONToWaitPermit, FromWaitHVONToWaitPermit,
GoErrorGAM, GoErrorHVGAM,
ChoiceGAM, ChoiceGAM,
EPICSThSyncGAM, EPICSThSyncGAM,
EPICSOutputGAM EPICSOutputGAM
@@ -442,6 +460,7 @@
Functions = { Functions = {
FastTimerGAM, FastTimerGAM,
NI6528_0_ReaderGAM, NI6528_0_ReaderGAM,
AsyncIOGAM,
FastEpicsInputGAM, FastEpicsInputGAM,
FastStopRequestGAM, FastStopRequestGAM,
ModeLimitGAM, ModeLimitGAM,
@@ -458,7 +477,7 @@
} }
+DANThread = { +DANThread = {
Class = RealTimeThread Class = RealTimeThread
Functions = { CurrentTimeDIO, DANDIOPublisherGAM } Functions = { WaitForDioSignals, DANDIOPublisherGAM }
CPUs = @cpus_dan CPUs = @cpus_dan
} }
+ReferenceGenerationThread = { +ReferenceGenerationThread = {
@@ -468,6 +487,8 @@
WGTimerGAM, WGTimerGAM,
CCPSWaveformGAM, CCPSWaveformGAM,
FHPSRampupGAM, FHPSRampupGAM,
FHPSStateGAM,
FHPSGainGAM,
WGProducerGAM WGProducerGAM
} }
} }
@@ -487,7 +508,7 @@
PXIErrorGAM, PXIErrorGAM,
FromWaitHVONToWaitStandby, FromWaitHVONToWaitStandby,
FromWaitHVONToWaitPermit, FromWaitHVONToWaitPermit,
GoErrorGAM, GoErrorHVGAM,
ChoiceGAM, ChoiceGAM,
EPICSThSyncGAM, EPICSThSyncGAM,
EPICSOutputGAM EPICSOutputGAM
@@ -508,6 +529,7 @@
Functions = { Functions = {
FastTimerGAM, FastTimerGAM,
NI6528_0_ReaderGAM, NI6528_0_ReaderGAM,
AsyncIOGAM,
FastEpicsInputGAM, FastEpicsInputGAM,
FastStopRequestGAM, FastStopRequestGAM,
ModeLimitGAM, ModeLimitGAM,
@@ -523,7 +545,7 @@
} }
+DANThread = { +DANThread = {
Class = RealTimeThread Class = RealTimeThread
Functions = { CurrentTimeDIO, DANDIOPublisherGAM } Functions = { WaitForDioSignals, DANDIOPublisherGAM }
CPUs = @cpus_dan CPUs = @cpus_dan
} }
+ReferenceGenerationThread = { +ReferenceGenerationThread = {
@@ -533,6 +555,8 @@
WGTimerGAM, WGTimerGAM,
CCPSWaveformGAM, CCPSWaveformGAM,
FHPSRampupGAM, FHPSRampupGAM,
FHPSStateGAM,
FHPSGainGAM,
WGProducerGAM WGProducerGAM
} }
} }
@@ -572,6 +596,7 @@
Functions = { Functions = {
FastTimerGAM, FastTimerGAM,
NI6528_0_ReaderGAM, NI6528_0_ReaderGAM,
AsyncIOGAM,
HVPSsOffGAM, HVPSsOffGAM,
NI6528_0_WriterGAM, NI6528_0_WriterGAM,
SyncThreadProducerGAM SyncThreadProducerGAM
@@ -589,7 +614,7 @@
} }
+DANThread = { +DANThread = {
Class = RealTimeThread Class = RealTimeThread
Functions = { CurrentTimeDIO, DANDIOPublisherGAM } Functions = { WaitForDioSignals, DANDIOPublisherGAM }
CPUs = @cpus_dan CPUs = @cpus_dan
} }
+ReferenceGenerationThread = { +ReferenceGenerationThread = {
@@ -598,6 +623,8 @@
Functions = { Functions = {
WGTimerGAM, WGTimerGAM,
CCPSWaveformGAM, CCPSWaveformGAM,
FHPSStateGAM,
FHPSGainGAM,
WGProducerGAM WGProducerGAM
} }
} }

View File

@@ -5,7 +5,7 @@
Class = "EPICSCA::EPICSCAInput" Class = "EPICSCA::EPICSCAInput"
Signals = { Signals = {
TRIGGER_DAN = { TRIGGER_DAN = {
PVName = @rfid .. ":DAN_ENABLED" PVName = (@rfid .. ":DAN_ENABLED")
Type = uint8 Type = uint8
} }
CSV_LOAD = { CSV_LOAD = {
@@ -49,6 +49,14 @@
PVName = (@rfid .. "-GAF-MCPS:PSU2120-TRG-CURR-SET-MI") PVName = (@rfid .. "-GAF-MCPS:PSU2120-TRG-CURR-SET-MI")
Type = float32 Type = float32
} }
MCPS_RU_COMPLETED = {
PVName = (@rfid .. "-GAF-MCPS:PSU2120-YTS-RUP")
Type = uint8
}
MCPS_RD_COMPLETED = {
PVName = (@rfid .. "-GAF-MCPS:PSU2120-YTS-RDOWN")
Type = uint8
}
BPS_MANUAL = { BPS_MANUAL = {
PVName = (@rfid .. "-PB1F:PSU1000-EREF-MSP") PVName = (@rfid .. "-PB1F:PSU1000-EREF-MSP")
Type = float32 Type = float32
@@ -203,11 +211,15 @@
PVName = (@rfid .. "-GAF:STAT-SHORT-PULSE") PVName = (@rfid .. "-GAF:STAT-SHORT-PULSE")
Type = uint32 Type = uint32
} }
CCPS_IN_OPERATION = {
PVName = (@rfid .. "-GAF-CCPS:PSU2320-TR")
Type = uint8
}
} }
} }
+EPICSCAOutput = { +EPICSCAOutput = {
Class = EPICSCAOutput Class = EPICSCAOutput
CPUMask = @cpus_epics// change from 0x200 CPUMask = @cpus_epics // change from 0x200
StackSize = 10000000 StackSize = 10000000
NumberOfBuffers = 50 NumberOfBuffers = 50
Signals = { Signals = {

View File

@@ -473,6 +473,7 @@
DI0 = { DI0 = {
Type = uint8 Type = uint8
PortId = 0 PortId = 0
InversionMask = 0x40
} }
//# P1.0 I.08 ECPC Modulation //# P1.0 I.08 ECPC Modulation
//# P1.1 I.09 Fast Protection Trip //# P1.1 I.09 Fast Protection Trip
@@ -539,6 +540,26 @@
} }
} }
} }
//# PXI NI6528 Digital input datasource
//# TODO: configure it
+NI6528_1_DIO = {
Class = NI6528
DeviceName = "/dev/pxi6528"
BoardId = 0 // TODO: check if not 1
Signals = {
//# P5.6 O.22 PXI_FLT
DO5 = {
Type = uint8
PortId = 5
InversionMask = 0xFF
}
}
}
//# Direct HW accesses. Follwing device/port assignment must be consistent with actual wiring. //# Direct HW accesses. Follwing device/port assignment must be consistent with actual wiring.
//# NI6259.0 //# NI6259.0
//# APS_SWON BoardId=0, PortId=3.0 //# APS_SWON BoardId=0, PortId=3.0

View File

@@ -121,5 +121,15 @@
PCF_FAULT = { PCF_FAULT = {
Type = uint8 Type = uint8
} }
MCPS_RU_COMPLETED = {
Type = uint8
}
MCPS_RD_COMPLETED = {
Type = uint8
}
CCPS_IN_OPERATION = {
Type = uint8
}
} }
} }

View File

@@ -1,5 +1,6 @@
#package jada_gyro.RTApp #package jada_gyro.RTApp
+Data = { +Data = {
+DDB1 = { +DDB1 = {
Signals = { Signals = {
@@ -38,6 +39,31 @@
} }
//# From any state to Error state. //# From any state to Error state.
+GoErrorGAM = { +GoErrorGAM = {
Class = JAMessageGAM
Operation = "OR"
InputSignals = {
PXI_FAULT = {
DataSoruce = DDB1
Type = uint8
Comparator = "EQUALS"
Value = 1
}
// PLC_ITL = {
// DataSource = DDB1
// Type = uint8
// Comparator = "EQUALS"
// Value = 1
// }
}
+Event = {
Class = Message
Destination = StateMachine
Function = GoError
}
}
//# From any state to Error state.
+GoErrorHVGAM = {
Class = JAMessageGAM Class = JAMessageGAM
Operation = "OR" Operation = "OR"
InputSignals = { InputSignals = {
@@ -71,6 +97,12 @@
Comparator = "EQUALS" Comparator = "EQUALS"
Value = 1 Value = 1
} }
PXI_FAULT = {
DataSource = DDB1
Type = uint8
Comparator = "EQUALS"
Value = 1
}
MIS_ITL = { MIS_ITL = {
DataSource = EPICSCAInput DataSource = EPICSCAInput
Type = uint32 Type = uint32
@@ -101,53 +133,23 @@
Comparator = "EQUALS" Comparator = "EQUALS"
Value = 1 Value = 1
} }
GYA_APS_FLT = { PXI_FAULT = {
DataSource = DDB1 DataSource = DDB1
Type = uint8 Type = uint8
Comparator = "EQUALS" Comparator = "EQUALS"
Value = 0 Value = 1
}
GYA_BPS_FLT = {
DataSource = DDB1
Type = uint8
Comparator = "EQUALS"
Value = 0
}
MHVPS_OV = {
DataSource = DDB1
Type = uint8
Comparator = "EQUALS"
Value = 0
}
MHVPS_OC = {
DataSource = DDB1
Type = uint8
Comparator = "EQUALS"
Value = 0
}
MHVPS_FLT = {
DataSource = DDB1
Type = uint8
Comparator = "EQUALS"
Value = 0
}
MIS_ITL = {
DataSource = EPICSCAInput
Type = uint32
Comparator = "EQUALS"
Value = 0
}
PLC_ITL = {
DataSource = DDB1
Type = uint8
Comparator = "EQUALS"
Value = 0
} }
// PLC_ITL = {
// DataSource = DDB1
// Type = uint8
// Comparator = "EQUALS"
// Value = 0
// }
} }
+Event = { +Event = {
Class = Message Class = Message
Destination = StateMachine Destination = StateMachine
Function = GoError Function = GoWaitStandby
} }
} }
//# Go to wait standby //# Go to wait standby
@@ -250,6 +252,12 @@
Comparator = "EQUALS" Comparator = "EQUALS"
Value = 1 Value = 1
} }
MIS_ITL = {
DataSource = EPICSCAInput
Type = uint32
Comparator = "EQUALS"
Value = 0
}
} }
+Event = { +Event = {
Class = Message Class = Message
@@ -320,6 +328,19 @@
Comparator = "EQUALS" Comparator = "EQUALS"
Value = 1 Value = 1
} }
MIS_ITL = {
DataSource = EPICSCAInput
Type = uint32
Comparator = "EQUALS"
Value = 0
}
PLC_ITL = {
DataSource = DDB1
Type = uint8
Comparator = "EQUALS"
Value = 0
}
} }
+Event = { +Event = {
Class = Message Class = Message
@@ -378,6 +399,19 @@
Comparator = "EQUALS" Comparator = "EQUALS"
Value = 1 Value = 1
} }
MIS_ITL = {
DataSource = EPICSCAInput
Type = uint32
Comparator = "EQUALS"
Value = 0
}
PLC_ITL = {
DataSource = DDB1
Type = uint8
Comparator = "EQUALS"
Value = 0
}
} }
+Event = { +Event = {
Class = Message Class = Message
@@ -407,6 +441,19 @@
Comparator = "EQUALS" Comparator = "EQUALS"
Value = 1 Value = 1
} }
MIS_ITL = {
DataSource = EPICSCAInput
Type = uint32
Comparator = "EQUALS"
Value = 0
}
PLC_ITL = {
DataSource = DDB1
Type = uint8
Comparator = "EQUALS"
Value = 0
}
} }
+Event = { +Event = {
Class = Message Class = Message

View File

@@ -500,6 +500,15 @@
FHPS_PrePro = { FHPS_PrePro = {
DataSource = DDB1 DataSource = DDB1
} }
MCPS_RU_COMPLETED = {
DataSource = EPICSCAInput
}
MCPS_RD_COMPLETED = {
DataSource = EPICSCAInput
}
CCPS_IN_OPERATION = {
DataSource = EPICSCAInput
}
} }
OutputSignals = { OutputSignals = {
BPS_OUT = { BPS_OUT = {
@@ -517,5 +526,14 @@
FHPS_PrePro = { FHPS_PrePro = {
DataSource = Th1Bridge DataSource = Th1Bridge
} }
MCPS_RU_COMPLETED = {
DataSource = Th1Bridge
}
MCPS_RD_COMPLETED = {
DataSource = Th1Bridge
}
CCPS_IN_OPERATION = {
DataSource = Th1Bridge
}
} }
} }

View File

@@ -6,6 +6,9 @@
Class = RealTimeThreadSynchronisation Class = RealTimeThreadSynchronisation
Timeout = 100 Timeout = 100
Signals = { Signals = {
DiTime = {
Type = uint32
}
PXI6259_Status = { PXI6259_Status = {
Type = uint32 Type = uint32
} }
@@ -146,6 +149,9 @@
+SyncThreadProducerGAM = { +SyncThreadProducerGAM = {
Class = IOGAM Class = IOGAM
InputSignals = { InputSignals = {
Time = {
DataSource = DDB3
}
PXI6259_Status = { PXI6259_Status = {
Alias = Status Alias = Status
DataSource = NI6259_DIO_P0 DataSource = NI6259_DIO_P0
@@ -251,6 +257,9 @@
} }
} }
OutputSignals = { OutputSignals = {
DiTime = {
DataSource = SynchThread
}
PXI6259_Status = { PXI6259_Status = {
DataSource = SynchThread DataSource = SynchThread
} }
@@ -352,4 +361,35 @@
} }
} }
} }
+AsyncIOGAM = {
Class = IOGAM
InputSignals = {
FHPS_RU = {
DataSource = WGAsyncBridge
}
CCPS_IN_OPERATION = {
DataSource = Th1Bridge
}
MCPS_RU_COMPLETED = {
DataSource = Th1Bridge
}
MCPS_RD_COMPLETED = {
DataSource = Th1Bridge
}
}
OutputSignals = {
FHPS_RU = {
DataSource = DDB3
}
CCPS_IN_OPERATION = {
DataSource = DDB3
}
SCM_RU = {
DataSource = DDB3
}
SCM_RD = {
DataSource = DDB3
}
}
}
} }

View File

@@ -162,11 +162,26 @@
CCPS_IN_OPERATION = { CCPS_IN_OPERATION = {
DataSource = DDB3 DataSource = DDB3
} }
//! implicit: Placeholder for spare output
NONE_DO23 = {
DataSource = DDB3
Type = uint8
NumberOfElements = 2
NumberOfDimensions = 1
Default = { 0, 0 }
}
NONE_DO5_1_Before = {
DataSource = DDB3
Type = uint8
NumberOfElements = 6
NumberOfDimensions = 1
Default = { 0, 0, 0, 0, 0, 0 }
}
PXI_FLT = { PXI_FLT = {
DataSource = DDB3 DataSource = DDB3
} }
//! implicit: Placeholder for spare output //! implicit: Placeholder for spare output
NONE_DO23 = { NONE_DO5_1_After = {
DataSource = DDB3 DataSource = DDB3
Type = uint8 Type = uint8
Default = 0 Default = 0
@@ -182,6 +197,11 @@
DO5 = { DO5 = {
DataSource = NI6528_0_DIO DataSource = NI6528_0_DIO
} }
DO5_B1 = {
Alias = DO5
DataSource = NI6528_1_DIO
Trigger = 1
}
} }
} }
// //# INPUTs: StateMahine Value, NI6528P3Value and NI6528P4Value // //# INPUTs: StateMahine Value, NI6528P3Value and NI6528P4Value

View File

@@ -130,7 +130,7 @@
} }
+FastAnalogDAN = { +FastAnalogDAN = {
Class = "DAN::DANSource" Class = "DAN::DANSource"
NumberOfBuffers = 10000 NumberOfBuffers = 100
CPUMask = @cpus_fdan CPUMask = @cpus_fdan
StackSize = 10000000 StackSize = 10000000
DanBufferMultiplier = 10000 //10s at 1kHz loop (1M with 1k samples) DanBufferMultiplier = 10000 //10s at 1kHz loop (1M with 1k samples)

View File

@@ -6,14 +6,161 @@
Class = GAMDataSource Class = GAMDataSource
AllowNoProducers = 1 AllowNoProducers = 1
Signals = { Signals = {
CurrTime = { DiTime = {
Type = uint64 Type = uint32
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
PXI6528_Status = {
Type = uint32
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
GYA_APS_READY = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
GYA_APS_FLT = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
GYA_BPS_READY = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
GYA_BPS_FLT = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
MHVPS_OV = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
MHVPS_OC = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
MHVPS_FLT = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
MHVPS_READY = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
ECPC_MOD = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
FAST_TRIP = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
CRIO_RV1 = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
CRIO_RV2 = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
CRIO_RV3 = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
PLC_ITL = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
PLC_STANDBY = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
PLC_READY = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
PLC_ON = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
PLC_PERMIT = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
PLC_OP_SELECTED = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
PLC_CC_OP_SELECTED = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
PLC_SYNCMODE = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
TRIGGER = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
BEAM_ON_STAT = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
HVARMED = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
HVINJECTION = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
RFON = {
Type = uint8
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
BEAM_ON_TIME = {
Type = uint32
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
}
RFON_TIME = {
Type = uint32
NumberOfElements = @dan_ratio
NumberOfDimensions = 1
} }
} }
} }
+DANDIODataSource = { +DANDIODataSource = {
Class = "DAN::DANSource" Class = "DAN::DANSource"
NumberOfBuffers = 1000 NumberOfBuffers = 100
CPUMask = @cpus_dio CPUMask = @cpus_dio
StackSize = 10000000 StackSize = 10000000
DanBufferMultiplier = 200 //10s at 20Hz DanBufferMultiplier = 200 //10s at 20Hz
@@ -23,10 +170,9 @@
NumberOfPostTriggers = 0 NumberOfPostTriggers = 0
Signals = { Signals = {
DI_Time = { DI_Time = {
Type = uint64 Type = uint32
TimeSignal = 1 TimeSignal = 1
AbsoluteTime = 1 AbsoluteTime = 0
TimeSignalMultiplier = 1e-9
} }
PXI6528_Status = { PXI6528_Status = {
SamplingFrequency = @fast_clock SamplingFrequency = @fast_clock
@@ -207,26 +353,17 @@
} }
+Functions = { +Functions = {
+CurrentTimeDIO = { +WaitForDioSignals = {
Class = "IOExt::SystemClockGAM"
OutputSignals = {
CurrTime = {
DataSource = DDB5
Type = uint64
}
}
}
+DANDIOPublisherGAM = {
Class = IOGAM Class = IOGAM
InputSignals = { InputSignals = {
Time = { DiTime = {
DataSource = DDB5 DataSource = SynchThread
Alias = CurrTime Samples = @dan_ratio
Frequency = 1
} }
PXI6528_Status = { PXI6528_Status = {
DataSource = SynchThread DataSource = SynchThread
Samples = @dan_ratio Samples = @dan_ratio
Frequency = 1
} }
GYA_APS_READY = { GYA_APS_READY = {
DataSource = SynchThread DataSource = SynchThread
@@ -341,6 +478,195 @@
Samples = @dan_ratio Samples = @dan_ratio
} }
} }
OutputSignals = {
DiTime = {
DataSource = DDB5
}
PXI6528_Status = {
DataSource = DDB5
}
GYA_APS_READY = {
DataSource = DDB5
}
GYA_APS_FLT = {
DataSource = DDB5
}
GYA_BPS_READY = {
DataSource = DDB5
}
GYA_BPS_FLT = {
DataSource = DDB5
}
MHVPS_OV = {
DataSource = DDB5
}
MHVPS_OC = {
DataSource = DDB5
}
MHVPS_FLT = {
DataSource = DDB5
}
MHVPS_READY = {
DataSource = DDB5
}
ECPC_MOD = {
DataSource = DDB5
}
FAST_TRIP = {
DataSource = DDB5
}
CRIO_RV1 = {
DataSource = DDB5
}
CRIO_RV2 = {
DataSource = DDB5
}
CRIO_RV3 = {
DataSource = DDB5
}
PLC_ITL = {
DataSource = DDB5
}
PLC_STANDBY = {
DataSource = DDB5
}
PLC_READY = {
DataSource = DDB5
}
PLC_ON = {
DataSource = DDB5
}
PLC_PERMIT = {
DataSource = DDB5
}
PLC_OP_SELECTED = {
DataSource = DDB5
}
PLC_CC_OP_SELECTED = {
DataSource = DDB5
}
PLC_SYNCMODE = {
DataSource = DDB5
}
TRIGGER = {
DataSource = DDB5
}
BEAM_ON_STAT = {
DataSource = DDB5
}
HVARMED = {
DataSource = DDB5
}
HVINJECTION = {
DataSource = DDB5
}
RFON = {
DataSource = DDB5
}
BEAM_ON_TIME = {
DataSource = DDB5
}
RFON_TIME = {
DataSource = DDB5
}
}
}
+DANDIOPublisherGAM = {
Class = IOGAM
InputSignals = {
DiTime = {
DataSource = DDB5
Ranges = {{0, 0}}
}
PXI6528_Status = {
DataSource = DDB5
}
GYA_APS_READY = {
DataSource = DDB5
}
GYA_APS_FLT = {
DataSource = DDB5
}
GYA_BPS_READY = {
DataSource = DDB5
}
GYA_BPS_FLT = {
DataSource = DDB5
}
MHVPS_OV = {
DataSource = DDB5
}
MHVPS_OC = {
DataSource = DDB5
}
MHVPS_FLT = {
DataSource = DDB5
}
MHVPS_READY = {
DataSource = DDB5
}
ECPC_MOD = {
DataSource = DDB5
}
FAST_TRIP = {
DataSource = DDB5
}
CRIO_RV1 = {
DataSource = DDB5
}
CRIO_RV2 = {
DataSource = DDB5
}
CRIO_RV3 = {
DataSource = DDB5
}
PLC_ITL = {
DataSource = DDB5
}
PLC_STANDBY = {
DataSource = DDB5
}
PLC_READY = {
DataSource = DDB5
}
PLC_ON = {
DataSource = DDB5
}
PLC_PERMIT = {
DataSource = DDB5
}
PLC_OP_SELECTED = {
DataSource = DDB5
}
PLC_CC_OP_SELECTED = {
DataSource = DDB5
}
PLC_SYNCMODE = {
DataSource = DDB5
}
TRIGGER = {
DataSource = DDB5
}
BEAM_ON_STAT = {
DataSource = DDB5
}
HVARMED = {
DataSource = DDB5
}
HVINJECTION = {
DataSource = DDB5
}
RFON = {
DataSource = DDB5
}
BEAM_ON_TIME = {
DataSource = DDB5
}
RFON_TIME = {
DataSource = DDB5
}
}
OutputSignals = { OutputSignals = {
DI_Time = { DI_Time = {
DataSource = DANDIODataSource DataSource = DANDIODataSource

View File

@@ -59,6 +59,40 @@
} }
} }
} }
+FHPSStateGAM = {
Class = JAConditionalSignalUpdateGAM
Operation = "AND"
InputSignals = {
FHPS_AUTO_STAT = {
DataSource = DDB6
Type = uint32
Comparator = "EQUALS"
Value = 2
}
}
OutputSignals = {
FHPS_RU = {
DataSource = WGAsyncBridge
Type = uint8
DefaultValue = 0
Value = 1
}
}
}
+FHPSGainGAM = {
Class = ScaleGAM
InputSignals = {
FHPS_REF = {
DataSource = DDB6
Factor = 15
}
}
OutputSignals = {
FHPS_SCALED = {
DataSource = DDB6
}
}
}
} }
+Data = { +Data = {
+DDB6 = { +DDB6 = {
@@ -66,6 +100,9 @@
FHPS_REF = { FHPS_REF = {
Type = float32 Type = float32
} }
FHPS_SCALED = {
Type = float32
}
FHPS_TAGV = { FHPS_TAGV = {
Type = float32 Type = float32
} }

View File

@@ -15,12 +15,15 @@
FHPS_AUTO_STAT = { FHPS_AUTO_STAT = {
Type = uint32 Type = uint32
} }
FHPS_RU = {
Type = uint8
}
} }
} }
+NI6259_AO = { +NI6259_AO = {
Class = NI6259DAC Class = NI6259DAC
DeviceName = "/dev/pxi6259" // Mandatory DeviceName = "/dev/pxi6259" // Mandatory
BoardId = 0 // Mandatory BoardId = 1 // Mandatory
SamplingFrequency = @wg_clock SamplingFrequency = @wg_clock
Signals = { Signals = {
CCPS_REF = { CCPS_REF = {
@@ -47,7 +50,7 @@
Alias = CCPS_REF Alias = CCPS_REF
DataSource = DDB6 DataSource = DDB6
} }
FHPS_REF = { FHPS_SCALED = {
DataSource = DDB6 DataSource = DDB6
} }
FHPS_REF_OUT = { FHPS_REF_OUT = {

View File

@@ -62,11 +62,14 @@
} }
+DDB3 = { +DDB3 = {
Signals = { Signals = {
Counter = {
Type = uint32
}
Time = { Time = {
Type = uint32 Type = uint32
} }
Counter = { AbsoluteTime = {
Type = uint32 Type = uint64
} }
} }
} }
@@ -107,13 +110,16 @@
+FastTimerGAM = { +FastTimerGAM = {
Class = IOGAM Class = IOGAM
InputSignals = { InputSignals = {
Time = {
DataSource = FastTimer
}
Counter = { Counter = {
DataSource = FastTimer DataSource = FastTimer
Frequency = @fast_clock Frequency = @fast_clock
} }
Time = {
DataSource = FastTimer
}
AbsoluteTime = {
DataSource = FastTimer
}
PCF_FAULT = { PCF_FAULT = {
DataSource = Th1Bridge DataSource = Th1Bridge
} }
@@ -122,10 +128,13 @@
} }
} }
OutputSignals = { OutputSignals = {
Counter = {
DataSource = DDB3
}
Time = { Time = {
DataSource = DDB3 DataSource = DDB3
} }
Counter = { AbsoluteTime = {
DataSource = DDB3 DataSource = DDB3
} }
PCF_FLT = { PCF_FLT = {

View File

@@ -95,9 +95,9 @@ if [[ ${ok} != "0" ]]; then
cat patches/EC-GN-P01-PCF0CORE_userPreDriverConf.patch ${project_name}/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/userPreDriverConf.cmd > userPreDriverConf_patched.cmd cat patches/EC-GN-P01-PCF0CORE_userPreDriverConf.patch ${project_name}/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/userPreDriverConf.cmd > userPreDriverConf_patched.cmd
mv -f userPreDriverConf_patched.cmd ${project_name}/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/userPreDriverConf.cmd mv -f userPreDriverConf_patched.cmd ${project_name}/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/userPreDriverConf.cmd
# sed -i 's+# Add all the support libraries needed by this IOC+# Add all the support libraries needed by this IOC\n-include $(EPICS_ROOT)/mk/asyn.mk\n-include $(EPICS_ROOT)/mk/picmg.mk\n-include $(EPICS_ROOT)/mk/stream.mk\n-include $(EPICS_ROOT)/mk/nisync-epics.mk\n-include $(EPICS_ROOT)/mk/nisync-generalTime.mk\n-include $(EPICS_ROOT)/mk/nixseries-epics.mk\n-include $(EPICS_ROOT)/mk/pxi6259-epics.mk\n-include $(EPICS_ROOT)/mk/pxi6528-epics.mk+g' EC-GN-JA-PCF/src/main/epics/EC-GN-P01App/src/Makefile sed -i 's+# Add all the support libraries needed by this IOC+# Add all the support libraries needed by this IOC\n-include $(EPICS_ROOT)/mk/asyn.mk\n-include $(EPICS_ROOT)/mk/picmg.mk\n-include $(EPICS_ROOT)/mk/stream.mk+g' EC-GN-JA-PCF/src/main/epics/EC-GN-P01App/src/Makefile
# sed -i 's+epicsEnvSet("\(.*\)")+epicsEnvSet("\1:${TOP}/iocBoot/iocEC-GN-P01-PCF0CORE")+g' EC-GN-JA-PCF/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/envSystem sed -i 's+epicsEnvSet("\(.*\)")+epicsEnvSet("\1:${TOP}/iocBoot/iocEC-GN-P01-PCF0CORE")+g' EC-GN-JA-PCF/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/envSystem
fi fi
cid=$((cid+1)) cid=$((cid+1))