Compare commits
98 Commits
PBS52-81
...
PBS52-83-u
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6f9de86b71 | ||
|
|
fa5db368cd | ||
|
|
47d7f8c446 | ||
|
|
cb00d24179 | ||
|
|
5ad2d75aa4 | ||
|
|
1e0b797e9e | ||
|
|
b23b75115b | ||
|
|
7a145d3912 | ||
|
|
f07bcafc07 | ||
|
|
d18c98311a | ||
|
|
7a1a8da39c | ||
|
|
d2c858ce40 | ||
|
|
4c6f0a5bb4 | ||
|
|
34b7b68f67 | ||
|
|
cdafede708 | ||
|
|
1db89f9c01 | ||
|
|
2991286fd7 | ||
|
|
f47135f20c | ||
|
|
c6c0244b27 | ||
|
|
83a6387db8 | ||
|
|
6b1bad9cbe | ||
|
|
d334b9e473 | ||
|
|
cf6cdc72ea | ||
|
|
043dfacd77 | ||
|
|
fc61534370 | ||
|
|
054e18179d | ||
|
|
907dfadf75 | ||
|
|
cdd700bf4e | ||
|
|
872baa1dc2 | ||
|
|
9f110481ad | ||
|
|
12ceba0bf6 | ||
|
|
e1549afa07 | ||
|
|
89fac665f3 | ||
|
|
0177b52b7f | ||
|
|
25e7daf7e4 | ||
|
|
dcf2c8a967 | ||
|
|
297bd279e4 | ||
|
|
c8aebf5a9e | ||
|
|
68ef85b06d | ||
|
|
4c160177fb | ||
|
|
18dccbf140 | ||
|
|
07b4d20790 | ||
|
|
8d952d9aee | ||
|
|
3a0933a2c4 | ||
|
|
aed46398a3 | ||
|
|
798b052e1a | ||
|
|
8b171ed9e9 | ||
|
|
b45eefc031 | ||
|
|
364a25192a | ||
|
|
fc56cf7a56 | ||
|
|
5372d87202 | ||
|
|
cdd238e204 | ||
|
|
1fa5fead70 | ||
|
|
9d719f4876 | ||
|
|
7ab711aea7 | ||
|
|
0beee7545b | ||
|
|
8470ca8ca0 | ||
|
|
d54457fca5 | ||
|
|
f34f823b6d | ||
|
|
e326e1296e | ||
|
|
0866544474 | ||
|
|
3646b1fc49 | ||
|
|
c14d19c420 | ||
|
|
82cb489cfa | ||
|
|
6ebd943f9b | ||
|
|
b22c195f60 | ||
|
|
d18a573a5a | ||
|
|
084b18d095 | ||
|
|
46f5010426 | ||
|
|
11e6159e0a | ||
|
|
92e292f4ac | ||
|
|
41fb7bc3b2 | ||
|
|
452ee198d1 | ||
|
|
1b5751bd40 | ||
|
|
e32dbf40e4 | ||
|
|
ee55e148ac | ||
|
|
b4c86c6690 | ||
|
|
623b7bfebe | ||
|
|
5962a60bb6 | ||
|
|
64e94601b1 | ||
|
|
9a21634052 | ||
|
|
68c62d7623 | ||
|
|
1fcc12525f | ||
|
|
d8fbf7c1f4 | ||
|
|
6866d48ebc | ||
|
|
4c688fe744 | ||
|
|
7e63addd75 | ||
|
|
39cb95ac04 | ||
|
|
522b89debe | ||
|
|
1a9324bbe4 | ||
|
|
ba5ae74c22 | ||
|
|
f19df69de7 | ||
|
|
99dc5113f2 | ||
|
|
08eec953ba | ||
|
|
56f50e3be1 | ||
|
|
0fdac299a8 | ||
|
|
febdac9a24 | ||
|
|
2fa63d1fd5 |
121
.marte_schema.cue
Normal file
121
.marte_schema.cue
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
package schema
|
||||||
|
|
||||||
|
#Classes: {
|
||||||
|
ExtractBitGAM: {...}
|
||||||
|
CompactBitGAM: {...}
|
||||||
|
HttpService: {
|
||||||
|
Port!: uint & >1024 & <49151
|
||||||
|
WebRoot?: string
|
||||||
|
Timeout?: uint
|
||||||
|
ListenMaxConnection?: uint
|
||||||
|
AcceptTimeout?: uint
|
||||||
|
MaxNumberOfThreads?: uint
|
||||||
|
MinNumberOfThreads?: uint
|
||||||
|
}
|
||||||
|
|
||||||
|
HttpObjectBrowser: {
|
||||||
|
Root!: string
|
||||||
|
...
|
||||||
|
}
|
||||||
|
HttpDataMonitor: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
HttpObjectBrowser: {
|
||||||
|
Root!: string
|
||||||
|
}
|
||||||
|
HttpDirectoryResource: {
|
||||||
|
BaseDir: string
|
||||||
|
}
|
||||||
|
HttpMessageInterface: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
NI6528: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
ConfigurationDatabase: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JAWFRecordGAM: {
|
||||||
|
Directory!: string
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JAPreProgrammedGAM: {
|
||||||
|
Directory!: string
|
||||||
|
PreProgrammedPeriodMs!: uint32
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JAConditionalSignalUpdateGAM: {
|
||||||
|
Operation!: "AND" | "OR" | "XOR" | "NOR"
|
||||||
|
InputSignals: {
|
||||||
|
[_]: {
|
||||||
|
Comparator!: "EQUALS" | "GREATER" | "LESSER"
|
||||||
|
Value!: number
|
||||||
|
Type!: string
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals: {
|
||||||
|
[_]: {
|
||||||
|
DefaultValue!: uint32
|
||||||
|
Value!: uint32
|
||||||
|
Type!: string
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JASourceChoiceGAM: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JAMessageGAM: {
|
||||||
|
Operation!: "AND" | "OR"
|
||||||
|
InputSignals: {
|
||||||
|
[_]: {
|
||||||
|
Value!: number
|
||||||
|
Comparator!: "EQUALS" | "GREATER" | "LESS" | "EQUALS_OR_GREATER" | "EQUALS_OR_LESS" | "NOT"
|
||||||
|
Type!: string
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Event!: {
|
||||||
|
Class: "Message"
|
||||||
|
Destination!: string
|
||||||
|
Function!: string
|
||||||
|
}
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JAModeControlGAM: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JARTStateMachineGAM: {
|
||||||
|
ConditionTrigger: 0 | 1
|
||||||
|
mhvps_hvon: uint
|
||||||
|
aps_hvon: uint
|
||||||
|
aps_swon: uint
|
||||||
|
bps_hvon: uint
|
||||||
|
bps_swon: uint
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JASDNRTStateMachineGAM: {
|
||||||
|
ConditionTrigger: 0 | 1
|
||||||
|
mhvps_hvon: uint
|
||||||
|
aps_hvon: uint
|
||||||
|
aps_swon: uint
|
||||||
|
bps_hvon: uint
|
||||||
|
bps_swon: uint
|
||||||
|
...
|
||||||
|
}
|
||||||
|
DANSource: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JATriangleWaveGAM: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JARampupGAM: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
NI6683H: {
|
||||||
|
BoardId: uint
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -87,9 +87,6 @@ of the distribution package..
|
|||||||
<include type="file" source="obj/Build/x86-linux/DataSources/JAEPICSCA/" target="${project.artifactId}/lib">
|
<include type="file" source="obj/Build/x86-linux/DataSources/JAEPICSCA/" target="${project.artifactId}/lib">
|
||||||
<include>*.so</include>
|
<include>*.so</include>
|
||||||
</include>
|
</include>
|
||||||
<include type="file" source="obj/Build/x86-linux/DataSources/NI6528/" target="${project.artifactId}/lib">
|
|
||||||
<include>*.so</include>
|
|
||||||
</include>
|
|
||||||
<include type="file" source="obj/Build/x86-linux/DataSources/RandomDataSource/" target="${project.artifactId}/lib">
|
<include type="file" source="obj/Build/x86-linux/DataSources/RandomDataSource/" target="${project.artifactId}/lib">
|
||||||
<include>*.so</include>
|
<include>*.so</include>
|
||||||
</include>
|
</include>
|
||||||
@@ -124,7 +121,7 @@ of the distribution package..
|
|||||||
<include type="file" source="obj/Build/x86-linux/GAMs/JASDNRTStateMachineGAM/" target="${project.artifactId}/lib">
|
<include type="file" source="obj/Build/x86-linux/GAMs/JASDNRTStateMachineGAM/" target="${project.artifactId}/lib">
|
||||||
<include>*.so</include>
|
<include>*.so</include>
|
||||||
</include>
|
</include>
|
||||||
<include type="file" source="obj/Build/x86-linux/GAMs/JASourceChoiseGAM/" target="${project.artifactId}/lib">
|
<include type="file" source="obj/Build/x86-linux/GAMs/JASourceChoiceGAM/" target="${project.artifactId}/lib">
|
||||||
<include>*.so</include>
|
<include>*.so</include>
|
||||||
</include>
|
</include>
|
||||||
<include type="file" source="obj/Build/x86-linux/GAMs/JATerminalInterfaceGAM/" target="${project.artifactId}/lib">
|
<include type="file" source="obj/Build/x86-linux/GAMs/JATerminalInterfaceGAM/" target="${project.artifactId}/lib">
|
||||||
@@ -143,6 +140,18 @@ of the distribution package..
|
|||||||
target="/etc/opt/codac/${project.artifactId}">
|
target="/etc/opt/codac/${project.artifactId}">
|
||||||
<include>*</include>
|
<include>*</include>
|
||||||
</include>
|
</include>
|
||||||
|
<include type="file"
|
||||||
|
source="main/resources/mdt/"
|
||||||
|
targetroot="SYSTEM_ROOT"
|
||||||
|
target="/etc/opt/codac/${project.artifactId}">
|
||||||
|
<include>*</include>
|
||||||
|
</include>
|
||||||
|
<include type="file"
|
||||||
|
source="main/resources/dan/"
|
||||||
|
targetroot="SYSTEM_ROOT"
|
||||||
|
target="/etc/opt/codac/${project.artifactId}">
|
||||||
|
<include>*</include>
|
||||||
|
</include>
|
||||||
<!-- Scripts -->
|
<!-- Scripts -->
|
||||||
<include type="script"
|
<include type="script"
|
||||||
scriptType="helper"
|
scriptType="helper"
|
||||||
@@ -177,7 +186,7 @@ of the distribution package..
|
|||||||
<servicetype>simple</servicetype>
|
<servicetype>simple</servicetype>
|
||||||
<user>root</user>
|
<user>root</user>
|
||||||
<group>root</group>
|
<group>root</group>
|
||||||
<execstart>%{codac_bin}/ec-gn-ja-pcf-gy.sh JAGyrotronA_FY19_P1.cfg</execstart>
|
<execstart>%{codac_bin}/ec-gn-ja-pcf-gy.sh jada_gyro_rtapp</execstart>
|
||||||
</include>
|
</include>
|
||||||
<!-- Soft dependencies and service ordering -->
|
<!-- Soft dependencies and service ordering -->
|
||||||
<include type="file" source="-"
|
<include type="file" source="-"
|
||||||
@@ -188,26 +197,6 @@ of the distribution package..
|
|||||||
Wants=%{codac_service_prefix}-EC-GN-P01-PCF0CORE-ioc.service
|
Wants=%{codac_service_prefix}-EC-GN-P01-PCF0CORE-ioc.service
|
||||||
After=%{codac_service_prefix}-EC-GN-P01-PCF0CORE-ioc.service]]>
|
After=%{codac_service_prefix}-EC-GN-P01-PCF0CORE-ioc.service]]>
|
||||||
<![CDATA[[Service]
|
<![CDATA[[Service]
|
||||||
KillSignal=SIGINT]]>
|
|
||||||
</include>
|
|
||||||
<include type="service"
|
|
||||||
name="ec-gn-ja-pcf-gyb"
|
|
||||||
target="ec-gn-ja-services" autostart="true">
|
|
||||||
<description>EC-GN-JA-PCF GYB daemon</description>
|
|
||||||
<servicetype>simple</servicetype>
|
|
||||||
<user>root</user>
|
|
||||||
<group>root</group>
|
|
||||||
<execstart>%{codac_bin}/ec-gn-ja-pcf-gy.sh JAGyrotronB_FY19_P1</execstart>
|
|
||||||
</include>
|
|
||||||
<!-- Soft dependencies and service ordering -->
|
|
||||||
<include type="file" source="-"
|
|
||||||
targetroot="SYSTEM_ROOT"
|
|
||||||
target="%{_unitdir}/%{codac_service_prefix}-ec-gn-ja-pcf-gyb.service.d/override.conf"
|
|
||||||
rpmeval="true">
|
|
||||||
<![CDATA[[Unit]
|
|
||||||
Wants=%{codac_service_prefix}-EC-GN-P01-PCF0CORE-ioc.service
|
|
||||||
After=%{codac_service_prefix}-EC-GN-P01-PCF0CORE-ioc.service]]>
|
|
||||||
<![CDATA[[Service]
|
|
||||||
KillSignal=SIGINT]]>
|
KillSignal=SIGINT]]>
|
||||||
</include>
|
</include>
|
||||||
<requires version="current">%{codac_rpm_prefix}-${project.artifactId}-lib</requires>
|
<requires version="current">%{codac_rpm_prefix}-${project.artifactId}-lib</requires>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
# $Id: Makefile.inc 3 2012-01-15 16:26:07Z aneto $
|
# $Id: Makefile.inc 3 2012-01-15 16:26:07Z aneto $
|
||||||
#
|
#
|
||||||
#############################################################
|
#############################################################
|
||||||
SPB = RandomDataSource.x NI6528.x JAEPICSCA.x
|
SPB = RandomDataSource.x JAEPICSCA.x
|
||||||
|
|
||||||
MAKEDEFAULTDIR=$(MARTe2_DIR)/MakeDefaults
|
MAKEDEFAULTDIR=$(MARTe2_DIR)/MakeDefaults
|
||||||
|
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
#############################################################
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
|
|
||||||
LIBRARIES += -L$(CODAC_ROOT)/lib/ -lpxi6528
|
|
||||||
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
#############################################################
|
|
||||||
#
|
|
||||||
# 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=NI6528.x
|
|
||||||
|
|
||||||
PACKAGE=DataSources
|
|
||||||
|
|
||||||
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
|
|
||||||
INCLUDES += -I$(CODAC_ROOT)/include/
|
|
||||||
|
|
||||||
all: $(OBJS) $(SUBPROJ) \
|
|
||||||
$(BUILD_DIR)/NI6528$(LIBEXT) \
|
|
||||||
$(BUILD_DIR)/NI6528$(DLLEXT)
|
|
||||||
echo $(OBJS)
|
|
||||||
|
|
||||||
include $(MAKEDEFAULTDIR)/MakeStdLibRules.$(TARGET)
|
|
||||||
|
|
||||||
@@ -1,141 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file NI6528.cpp
|
|
||||||
* @brief Source file for class NI6528
|
|
||||||
* @date 01/03/2017
|
|
||||||
* @author Andre Neto
|
|
||||||
*
|
|
||||||
* @copyright 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
|
|
||||||
*
|
|
||||||
* @warning 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 permissions and limitations under the Licence.
|
|
||||||
|
|
||||||
* @details This source file contains the definition of all the methods for
|
|
||||||
* the class NI6528 (public, protected, and private). Be aware that some
|
|
||||||
* methods, such as those inline could be defined on the header file, instead.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/* Standard header includes */
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
#include <errno.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/* Project header includes */
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
#include "AdvancedErrorManagement.h"
|
|
||||||
#include "CompilerTypes.h"
|
|
||||||
#include "NI6528.h"
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/* Static definitions */
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/* Method definitions */
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
NI6528::NI6528() :
|
|
||||||
MARTe::DataSourceI() {
|
|
||||||
using namespace MARTe;
|
|
||||||
previousValue = 0u;
|
|
||||||
value = 0u;
|
|
||||||
port = 0u;
|
|
||||||
boardFileDescriptor = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
NI6528::~NI6528() {
|
|
||||||
using namespace MARTe;
|
|
||||||
(void) pxi6528_close_device(boardFileDescriptor);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NI6528::SetConfiguredDatabase(MARTe::StructuredDataI & data) {
|
|
||||||
using namespace MARTe;
|
|
||||||
bool ok = (DataSourceI::SetConfiguredDatabase(data));
|
|
||||||
if (!ok) {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "DataSourceI::SetConfiguredDatabas() failed");
|
|
||||||
}
|
|
||||||
if (ok) {
|
|
||||||
ok = (GetNumberOfSignals() == 1u);
|
|
||||||
if (!ok) {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "GetNumberOfSignals() != 1u");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ok) {
|
|
||||||
ok = (GetSignalType(0u) == UnsignedInteger8Bit);
|
|
||||||
if (!ok) {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "GetSignalType(0u) != UnsignedInteger8Bit");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NI6528::Initialise(MARTe::StructuredDataI & data) {
|
|
||||||
using namespace MARTe;
|
|
||||||
bool ok = DataSourceI::Initialise(data);
|
|
||||||
if (ok) {
|
|
||||||
ok = data.Read("Port", port);
|
|
||||||
if (!ok) {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "The Port shall be specified");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ok) {
|
|
||||||
ok = data.Read("DeviceName", deviceName);
|
|
||||||
if (!ok) {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "The DeviceName shall be specified");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int32 ret = pxi6528_open_device(&boardFileDescriptor, deviceName.Buffer(), O_NONBLOCK);
|
|
||||||
ok = (ret == 0);
|
|
||||||
if (!ok) {
|
|
||||||
StreamString err = strerror(-ret);
|
|
||||||
REPORT_ERROR(ErrorManagement::FatalError, "Could not open device (%s) : %s", deviceName.Buffer(), err.Buffer());
|
|
||||||
}
|
|
||||||
return ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NI6528::Synchronise() {
|
|
||||||
using namespace MARTe;
|
|
||||||
if(previousValue != value){
|
|
||||||
int32 ret = (pxi6528_write_port(boardFileDescriptor, port, value) > 0);
|
|
||||||
previousValue = value;
|
|
||||||
bool ok = (ret > -1);
|
|
||||||
if (!ok) {
|
|
||||||
StreamString err = strerror(-ret);
|
|
||||||
REPORT_ERROR(ErrorManagement::FatalError, "Could not write to device (%s) : %s", deviceName.Buffer(), err.Buffer());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NI6528::AllocateMemory() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NI6528::GetSignalMemoryBuffer(const MARTe::uint32 signalIdx, const MARTe::uint32 bufferIdx, void *&signalAddress) {
|
|
||||||
signalAddress = &value;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const MARTe::char8 *NI6528::GetBrokerName(MARTe::StructuredDataI &data, const MARTe::SignalDirection direction) {
|
|
||||||
using namespace MARTe;
|
|
||||||
return "MemoryMapSynchronisedOutputBroker";
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NI6528::PrepareNextState(const MARTe::char8 * const currentStateName, const MARTe::char8 * const nextStateName) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
CLASS_REGISTER(NI6528, "1.0")
|
|
||||||
|
|
||||||
@@ -1,143 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file NI6528.h
|
|
||||||
* @brief Header file for class NI6528
|
|
||||||
* @date 07/06/2018
|
|
||||||
* @author Andre Neto
|
|
||||||
*
|
|
||||||
* @copyright 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
|
|
||||||
*
|
|
||||||
* @warning 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 permissions and limitations under the Licence.
|
|
||||||
|
|
||||||
* @details This header file contains the declaration of the class NI6528
|
|
||||||
* with all of its public, protected and private members. It may also include
|
|
||||||
* definitions for inline methods which need to be visible to the compiler.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef RANDOM_DATASOURCE_H_
|
|
||||||
#define RANDOM_DATASOURCE_H_
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/* Standard header includes */
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
#include <pxi6528.h>
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/* Project header includes */
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
#include "DataSourceI.h"
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/* Class declaration */
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/**
|
|
||||||
* @brief NI6528 simplified data source implementation.
|
|
||||||
*
|
|
||||||
* The configuration syntax is (names and signal quantities are only given as an example):
|
|
||||||
* +NI6528 = {
|
|
||||||
* Class = NI6528
|
|
||||||
* DeviceName = "/dev/pxi6528.0" //Mandatory
|
|
||||||
* Port = 0 //The port where to write
|
|
||||||
* Signals = {
|
|
||||||
* currentValue = {Type = uint8}
|
|
||||||
* bitmask = {Type = uint8}
|
|
||||||
* Value = {Type = uint8}
|
|
||||||
* }
|
|
||||||
* }
|
|
||||||
*/
|
|
||||||
class NI6528: public MARTe::DataSourceI {
|
|
||||||
public:
|
|
||||||
CLASS_REGISTER_DECLARATION()
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Constructor. NOOP.
|
|
||||||
*/
|
|
||||||
NI6528 ();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Destructor. NOOP.
|
|
||||||
*/
|
|
||||||
virtual ~NI6528();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief The configuration data detailed in the class description
|
|
||||||
* @return true if all the compulsory parameters are set.
|
|
||||||
*/
|
|
||||||
virtual bool Initialise(MARTe::StructuredDataI & data);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Verifies that at most one signal has been set with the correct type (i.e. any integer).
|
|
||||||
* @return true if the above conditions are met.
|
|
||||||
*/
|
|
||||||
virtual bool SetConfiguredDatabase(MARTe::StructuredDataI & data);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief @see DataSourceI::Synchronise
|
|
||||||
*/
|
|
||||||
virtual bool Synchronise();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief @see DataSourceI::AllocateMemory
|
|
||||||
*/
|
|
||||||
virtual bool AllocateMemory();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief @see DataSourceI::GetSignalMemoryBuffer
|
|
||||||
*/
|
|
||||||
virtual bool GetSignalMemoryBuffer(const MARTe::uint32 signalIdx, const MARTe::uint32 bufferIdx, void *&signalAddress);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return "MemoryMapSynchronisedInputBroker"
|
|
||||||
*/
|
|
||||||
virtual const MARTe::char8 *GetBrokerName(MARTe::StructuredDataI &data, const MARTe::SignalDirection direction);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief NOOP
|
|
||||||
*/
|
|
||||||
virtual bool PrepareNextState(const MARTe::char8 * const currentStateName, const MARTe::char8 * const nextStateName);
|
|
||||||
|
|
||||||
private:
|
|
||||||
/**
|
|
||||||
* The previous value to write.
|
|
||||||
*/
|
|
||||||
MARTe::uint8 previousValue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The bitmask to write value. (new value) = (current value) || (bitmask) && (write value)
|
|
||||||
*/
|
|
||||||
MARTe::uint8 bitmask;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The value to write.
|
|
||||||
*/
|
|
||||||
MARTe::uint8 value;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The port number
|
|
||||||
*/
|
|
||||||
MARTe::uint32 port;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The board file descriptor
|
|
||||||
*/
|
|
||||||
pxi6528_device_t boardFileDescriptor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The device name
|
|
||||||
*/
|
|
||||||
MARTe::StreamString deviceName;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/* Inline method definitions */
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#endif /* RANDOM_DATASOURCE_H_ */
|
|
||||||
|
|
||||||
@@ -17,7 +17,8 @@
|
|||||||
* or implied. See the Licence permissions and limitations under the Licence.
|
* or implied. See the Licence permissions and limitations under the Licence.
|
||||||
|
|
||||||
* @details This source file contains the definition of all the methods for
|
* @details This source file contains the definition of all the methods for
|
||||||
* the class JAConditionalSignalUpdateGAM (public, protected, and private). Be aware that some
|
* the class JAConditionalSignalUpdateGAM (public, protected, and private). Be
|
||||||
|
aware that some
|
||||||
* methods, such as those inline could be defined on the header file, instead.
|
* methods, such as those inline could be defined on the header file, instead.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -28,8 +29,11 @@
|
|||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/* Project header includes */
|
/* Project header includes */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
#include "JAConditionalSignalUpdateGAM.h"
|
|
||||||
#include "AdvancedErrorManagement.h"
|
#include "AdvancedErrorManagement.h"
|
||||||
|
#include "Architecture/x86_gcc/CompilerTypes.h"
|
||||||
|
#include "ErrorType.h"
|
||||||
|
#include "JAConditionalSignalUpdateGAM.h"
|
||||||
|
#include "TypeDescriptor.h"
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/* Static definitions */
|
/* Static definitions */
|
||||||
@@ -39,271 +43,276 @@
|
|||||||
/* Method definitions */
|
/* Method definitions */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
bool parse_comparator(const MARTe::StreamString &str,
|
||||||
|
JAConditionalSignalUpdateGAM::ComparisonMode &op) {
|
||||||
|
if (str == "EQUALS") {
|
||||||
|
op = JAConditionalSignalUpdateGAM::Equals;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (str == "NOT") {
|
||||||
|
op = JAConditionalSignalUpdateGAM::Not;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (str == "GREATER") {
|
||||||
|
op = JAConditionalSignalUpdateGAM::Greater;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (str == "EQUALS_OR_GREATER") {
|
||||||
|
op = JAConditionalSignalUpdateGAM::EqualsOrGreater;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (str == "LESS") {
|
||||||
|
op = JAConditionalSignalUpdateGAM::Less;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (str == "EQUALS_OR_LESS") {
|
||||||
|
op = JAConditionalSignalUpdateGAM::EqualsOrLess;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
JAConditionalSignalUpdateGAM::JAConditionalSignalUpdateGAM() {
|
JAConditionalSignalUpdateGAM::JAConditionalSignalUpdateGAM() {
|
||||||
inputSignals = NULL_PTR(void **);
|
inputSignals = NULL_PTR(void **);
|
||||||
inputSignalTypes = NULL_PTR(MARTe::TypeDescriptor *);
|
inputSignalTypes = NULL_PTR(MARTe::TypeDescriptor *);
|
||||||
values = NULL_PTR(MARTe::uint32 *);
|
comparators = NULL_PTR(comparator_t *);
|
||||||
valuesCount = 0u;
|
outputSignals = NULL_PTR(MARTe::uint32 **);
|
||||||
outputSignals = NULL_PTR(MARTe::uint32 **);
|
outputs = NULL_PTR(output_t *);
|
||||||
defaultValues = NULL_PTR(MARTe::uint32 **);
|
needsReset = false;
|
||||||
needsReset = false;
|
operation = And;
|
||||||
expectedValues = NULL_PTR(MARTe::uint32 *);
|
|
||||||
expectedValuesCount = 0u;
|
|
||||||
operation = And;
|
|
||||||
comparators = NULL_PTR(ComparisonMode *);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JAConditionalSignalUpdateGAM::~JAConditionalSignalUpdateGAM() {
|
JAConditionalSignalUpdateGAM::~JAConditionalSignalUpdateGAM() {
|
||||||
if (outputSignals != NULL_PTR(MARTe::uint32 **)) {
|
if (outputSignals != NULL_PTR(MARTe::uint32 **)) {
|
||||||
delete[] outputSignals;
|
delete[] outputSignals;
|
||||||
}
|
}
|
||||||
if (inputSignals != NULL_PTR(void **)) {
|
if (inputSignals != NULL_PTR(void **)) {
|
||||||
delete[] inputSignals;
|
delete[] inputSignals;
|
||||||
}
|
}
|
||||||
if (inputSignalTypes != NULL_PTR(MARTe::TypeDescriptor *)) {
|
if (inputSignalTypes != NULL_PTR(MARTe::TypeDescriptor *)) {
|
||||||
delete[] inputSignalTypes;
|
delete[] inputSignalTypes;
|
||||||
}
|
}
|
||||||
if (values != NULL_PTR(MARTe::uint32 *)) {
|
if (outputs != NULL_PTR(output_t *)) {
|
||||||
delete[] values;
|
delete[] outputs;
|
||||||
}
|
}
|
||||||
if (comparators != NULL_PTR(ComparisonMode *)) {
|
if (comparators != NULL_PTR(comparator_t *)) {
|
||||||
delete[] comparators;
|
delete[] comparators;
|
||||||
}
|
}
|
||||||
if (defaultValues != NULL_PTR(MARTe::uint32 **)) {
|
|
||||||
delete[] defaultValues;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JAConditionalSignalUpdateGAM::Initialise(MARTe::StructuredDataI & data) {
|
bool JAConditionalSignalUpdateGAM::Initialise(MARTe::StructuredDataI &data) {
|
||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
bool ok = GAM::Initialise(data);
|
bool ok = GAM::Initialise(data);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
// Read expected values.
|
MARTe::StreamString operationStr;
|
||||||
AnyType valuesArray = data.GetType("ExpectedValues");
|
if (data.Read("Operation", operationStr)) {
|
||||||
|
if (operationStr == "AND") {
|
||||||
if (valuesArray.GetDataPointer() != NULL) {
|
operation = And;
|
||||||
expectedValuesCount = valuesArray.GetNumberOfElements(0u);
|
} else if (operationStr == "OR") {
|
||||||
|
operation = Or;
|
||||||
expectedValues = new uint32[expectedValuesCount];
|
} else if (operationStr == "NOR") {
|
||||||
|
operation = Nor;
|
||||||
Vector<uint32> valuesVector(expectedValues, expectedValuesCount);
|
} else if (operationStr == "XOR") {
|
||||||
ok = (data.Read("ExpectedValues", valuesVector));
|
operation = Xor;
|
||||||
}
|
} else {
|
||||||
|
ok = false;
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Operation %s is not defined", operationStr.Buffer());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (ok) {
|
||||||
|
ok = data.MoveRelative("InputSignals");
|
||||||
|
uint32 level = 0;
|
||||||
if (ok) {
|
if (ok) {
|
||||||
// Read comparators.
|
level++;
|
||||||
AnyType comparatorsArray = data.GetType("Comparators");
|
uint32 n_inputs = data.GetNumberOfChildren();
|
||||||
if (comparatorsArray.GetDataPointer() != NULL) {
|
inputSignalTypes = new TypeDescriptor[n_inputs];
|
||||||
uint32 count;
|
comparators = new comparator_t[n_inputs];
|
||||||
if (ok) {
|
StreamString strbuff;
|
||||||
count = comparatorsArray.GetNumberOfElements(0u);
|
TypeDescriptor td;
|
||||||
ok = count == expectedValuesCount;
|
for (uint32 i = 0; ok && i < n_inputs; i++) {
|
||||||
}
|
ok = data.MoveToChild(i);
|
||||||
if (ok) {
|
|
||||||
comparators = new ComparisonMode[count];
|
|
||||||
StreamString* comp = new StreamString[count];
|
|
||||||
Vector<StreamString> compVector(comp, count);
|
|
||||||
|
|
||||||
ok = (data.Read("Comparators", compVector));
|
|
||||||
|
|
||||||
if (ok) {
|
|
||||||
for (uint32 i = 0; i < count; ++i) {
|
|
||||||
if (comp[i] == "EQUALS") {
|
|
||||||
comparators[i] = Equals;
|
|
||||||
} else if (comp[i] == "NOT") {
|
|
||||||
comparators[i] = Not;
|
|
||||||
} else if (comp[i] == "GREATER") {
|
|
||||||
comparators[i] = Greater;
|
|
||||||
} else if (comp[i] == "EQUALS_OR_GREATER") {
|
|
||||||
comparators[i] = EqualsOrGreater;
|
|
||||||
} else if (comp[i] == "LESS") {
|
|
||||||
comparators[i] = Less;
|
|
||||||
} else if (comp[i] == "EQUALS_OR_LESS") {
|
|
||||||
comparators[i] = EqualsOrLess;
|
|
||||||
} else {
|
|
||||||
ok = false;
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Comparator %s is not defined.", comp[i].Buffer());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
delete[] comp;
|
|
||||||
} else {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Expected values and operators shall have the same "
|
|
||||||
"number of elements.");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Create default comparators (equals) when they aren't provided in the configuration.
|
|
||||||
comparators = new ComparisonMode[expectedValuesCount];
|
|
||||||
for (uint32 i = 0; i < expectedValuesCount; ++i) {
|
|
||||||
comparators[i] = Equals;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ok) {
|
|
||||||
MARTe::StreamString operationStr;
|
|
||||||
if (data.Read("Operation", operationStr)) {
|
|
||||||
if (operationStr == "AND") {
|
|
||||||
operation = And;
|
|
||||||
}
|
|
||||||
else if (operationStr == "OR") {
|
|
||||||
operation = Or;
|
|
||||||
}
|
|
||||||
else if (operationStr == "NOR") {
|
|
||||||
operation = Nor;
|
|
||||||
}
|
|
||||||
else if (operationStr == "XOR") {
|
|
||||||
operation = Xor;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ok = false;
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Operation %s is not defined", operationStr.Buffer());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ok) {
|
|
||||||
// Read output signal values to be set.
|
|
||||||
AnyType valuesArray = data.GetType("Values");
|
|
||||||
ok = (valuesArray.GetDataPointer() != NULL);
|
|
||||||
|
|
||||||
if (ok) {
|
|
||||||
valuesCount = valuesArray.GetNumberOfElements(0u);
|
|
||||||
ok = valuesCount > 0u;
|
|
||||||
}
|
|
||||||
if (ok) {
|
|
||||||
values = new uint32[valuesCount];
|
|
||||||
|
|
||||||
Vector<uint32> valuesVector(values, valuesCount);
|
|
||||||
ok = (data.Read("Values", valuesVector));
|
|
||||||
}
|
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Values shall be defined.");
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Impossible to move to InputSignals[%lu]", i);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
level++;
|
||||||
|
strbuff = "";
|
||||||
|
ok = data.Read("Type", strbuff);
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Missing mandatory field Type from InputSignals[%lu]",
|
||||||
|
i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
td = TypeDescriptor::GetTypeDescriptorFromTypeName(strbuff.Buffer());
|
||||||
|
ok = (td == UnsignedInteger8Bit) || (td == UnsignedInteger16Bit) ||
|
||||||
|
(td == UnsignedInteger32Bit);
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Wrong value for field Type from InputSignals[%d]", i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
inputSignalTypes[i] = td;
|
||||||
|
strbuff = "";
|
||||||
|
ok = data.Read("Comparator", strbuff);
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(
|
||||||
|
ErrorManagement::ParametersError,
|
||||||
|
"Missing mandatory field Comparator from InputSignals[%d]", i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ok = parse_comparator(strbuff, comparators[i].comparator);
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Non Valid Comparator `%s` from InputSignals[%d]",
|
||||||
|
strbuff.Buffer(), i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ok = data.Read("Value", comparators[i].value);
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(
|
||||||
|
ErrorManagement::ParametersError,
|
||||||
|
"Missing field Value (expecting int) from InputSignals[%lu]", i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (data.MoveToAncestor(1)) {
|
||||||
|
level--;
|
||||||
|
} else {
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data.MoveToAncestor(level);
|
||||||
|
} else {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Impossible to move to InputSignals");
|
||||||
}
|
}
|
||||||
return ok;
|
}
|
||||||
|
if (ok) {
|
||||||
|
ok = data.MoveRelative("OutputSignals");
|
||||||
|
uint32 level = 0;
|
||||||
|
if (ok) {
|
||||||
|
level++;
|
||||||
|
uint32 n_outputs = data.GetNumberOfChildren();
|
||||||
|
outputs = new output_t[n_outputs];
|
||||||
|
for (uint32 i = 0; ok && i < n_outputs; i++) {
|
||||||
|
ok = data.MoveToChild(i);
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Impossible to move to InputSignals[%lu]", i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
level++;
|
||||||
|
ok = data.Read("DefaultValue", outputs[i].defaultValue);
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Impossible to read field DefaultValue for output %lu",
|
||||||
|
i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ok = data.Read("Value", outputs[i].value);
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Impossible to read field Value for output %lu", i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ok = data.MoveToAncestor(1);
|
||||||
|
if (ok) {
|
||||||
|
level--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data.MoveToAncestor(level);
|
||||||
|
} else {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Impossible to move to OutputSignals");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JAConditionalSignalUpdateGAM::Setup() {
|
bool JAConditionalSignalUpdateGAM::Setup() {
|
||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
bool ok = numberOfInputSignals == (expectedValuesCount + numberOfOutputSignals);
|
bool ok = numberOfInputSignals > 0;
|
||||||
|
if (ok) {
|
||||||
|
inputSignals = new void *[numberOfInputSignals];
|
||||||
|
uint32 i;
|
||||||
|
for (uint32 i = 0u; i < numberOfInputSignals; i++) {
|
||||||
|
inputSignals[i] = GetInputSignalMemory(i);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Number of input signals shall be greater then 0 ");
|
||||||
|
}
|
||||||
|
if (ok) {
|
||||||
|
ok = numberOfOutputSignals > 0u;
|
||||||
if (ok) {
|
if (ok) {
|
||||||
inputSignals = new void*[expectedValuesCount];
|
outputSignals = new uint32 *[numberOfOutputSignals];
|
||||||
defaultValues = new uint32*[numberOfOutputSignals];
|
for (uint32 i = 0u; i < numberOfOutputSignals; i++) {
|
||||||
uint32 i;
|
outputSignals[i] = reinterpret_cast<uint32 *>(GetOutputSignalMemory(i));
|
||||||
for (i = 0u; i < expectedValuesCount; i++) {
|
}
|
||||||
inputSignals[i] = GetInputSignalMemory(i);
|
|
||||||
}
|
|
||||||
for (; i < numberOfInputSignals; i++) {
|
|
||||||
defaultValues[i - expectedValuesCount] = reinterpret_cast<uint32 *>(GetInputSignalMemory(i));
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Number of input signals shall be equal to number "
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
"of expected values plus number of output signals.");
|
"At least one output signal shall be defined");
|
||||||
}
|
|
||||||
if (ok) {
|
|
||||||
inputSignalTypes = new TypeDescriptor[expectedValuesCount];
|
|
||||||
uint32 i;
|
|
||||||
for (i = 0u; (i < expectedValuesCount) && (ok); i++) {
|
|
||||||
inputSignalTypes[i] = GetSignalType(InputSignals, i);
|
|
||||||
ok = ((inputSignalTypes[i] == UnsignedInteger32Bit) || (inputSignalTypes[i] == UnsignedInteger16Bit));
|
|
||||||
if (!ok) {
|
|
||||||
StreamString signalName;
|
|
||||||
(void) GetSignalName(InputSignals, i, signalName);
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Signal %s shall be defined as uint32 or uint16", signalName.Buffer());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ok) {
|
|
||||||
ok = numberOfOutputSignals == valuesCount;
|
|
||||||
if (ok) {
|
|
||||||
ok = numberOfOutputSignals > 0u;
|
|
||||||
if (ok) {
|
|
||||||
outputSignals = new uint32*[numberOfOutputSignals];
|
|
||||||
uint32 i;
|
|
||||||
for (i = 0u; i < numberOfOutputSignals; i++) {
|
|
||||||
outputSignals[i] = reinterpret_cast<uint32 *>(GetOutputSignalMemory(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "At least one output signal shall be defined");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Number of output signals shall be the same as "
|
|
||||||
"number of provided values.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JAConditionalSignalUpdateGAM::PrepareNextState(const MARTe::char8 * const currentStateName, const MARTe::char8 * const nextStateName) {
|
bool JAConditionalSignalUpdateGAM::PrepareNextState(
|
||||||
needsReset = false;
|
const MARTe::char8 *const currentStateName,
|
||||||
return true;
|
const MARTe::char8 *const nextStateName) {
|
||||||
|
needsReset = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool accumulate(JAConditionalSignalUpdateGAM::OperationMode mode, bool next,
|
||||||
|
bool current) {
|
||||||
|
switch (mode) {
|
||||||
|
case JAConditionalSignalUpdateGAM::Or:
|
||||||
|
return next || current;
|
||||||
|
case JAConditionalSignalUpdateGAM::And:
|
||||||
|
return next && current;
|
||||||
|
case JAConditionalSignalUpdateGAM::Nor:
|
||||||
|
return !(next || current);
|
||||||
|
case JAConditionalSignalUpdateGAM::Xor:
|
||||||
|
return (!next != !current);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JAConditionalSignalUpdateGAM::Execute() {
|
bool JAConditionalSignalUpdateGAM::Execute() {
|
||||||
if (!needsReset) {
|
if (!needsReset) {
|
||||||
bool eventDetected = expectedValuesCount == 0;
|
bool state = Compare(0);
|
||||||
if (!eventDetected) {
|
for (MARTe::uint32 i = 1; i < numberOfInputSignals; i++) {
|
||||||
if (operation == Or) {
|
state = accumulate(operation, Compare(i), state);
|
||||||
MARTe::uint32 j;
|
|
||||||
for (j = 0; (j < expectedValuesCount) && (!eventDetected); j++) {
|
|
||||||
eventDetected = Compare(j);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (operation == Nor) {
|
|
||||||
MARTe::uint32 j;
|
|
||||||
for (j = 0; (j < expectedValuesCount) && (!eventDetected); j++) {
|
|
||||||
eventDetected = Compare(j);
|
|
||||||
}
|
|
||||||
eventDetected = !eventDetected;
|
|
||||||
}
|
|
||||||
else if (operation == And) {
|
|
||||||
MARTe::uint32 j;
|
|
||||||
eventDetected = Compare(0);
|
|
||||||
for (j = 1; (j < expectedValuesCount); j++) {
|
|
||||||
eventDetected &= Compare(j);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (operation == Xor) {
|
|
||||||
MARTe::uint32 j;
|
|
||||||
MARTe::uint32 eventDetectedUint32;
|
|
||||||
if (inputSignalTypes[0] == MARTe::UnsignedInteger32Bit) {
|
|
||||||
eventDetectedUint32 = *static_cast<MARTe::uint32 *>(inputSignals[0]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
eventDetectedUint32 = *static_cast<MARTe::uint16 *>(inputSignals[0]);
|
|
||||||
}
|
|
||||||
for (j = 1; (j < expectedValuesCount); j++) {
|
|
||||||
eventDetectedUint32 ^= Compare(j);
|
|
||||||
}
|
|
||||||
eventDetected = (eventDetectedUint32 == 1u);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (eventDetected) {
|
|
||||||
needsReset = true;
|
|
||||||
MARTe::uint32 i;
|
|
||||||
for (i = 0u; i < numberOfOutputSignals; ++i) {
|
|
||||||
*outputSignals[i] = values[i];
|
|
||||||
MARTe::StreamString signalName;
|
|
||||||
(void) GetSignalName(MARTe::OutputSignals, i, signalName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
MARTe::uint32 i;
|
|
||||||
for (i = 0u; i < numberOfOutputSignals; ++i) {
|
|
||||||
*outputSignals[i] = *defaultValues[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return true;
|
if (state) {
|
||||||
|
needsReset = true;
|
||||||
|
MARTe::uint32 i;
|
||||||
|
for (i = 0u; i < numberOfOutputSignals; i++) {
|
||||||
|
*outputSignals[i] = outputs[i].value;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
MARTe::uint32 i;
|
||||||
|
for (i = 0u; i < numberOfOutputSignals; i++) {
|
||||||
|
*outputSignals[i] = outputs[i].defaultValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JAConditionalSignalUpdateGAM::Compare(MARTe::uint32 index) {
|
bool JAConditionalSignalUpdateGAM::Compare(MARTe::uint32 index) {
|
||||||
if (inputSignalTypes[index] == MARTe::UnsignedInteger32Bit) {
|
if (inputSignalTypes[index] == MARTe::UnsignedInteger32Bit) {
|
||||||
return Compare<MARTe::uint32>(index);
|
return Compare<MARTe::uint32>(index);
|
||||||
}
|
}
|
||||||
return Compare<MARTe::uint16>(index);
|
if (inputSignalTypes[index] == MARTe::UnsignedInteger8Bit) {
|
||||||
|
return Compare<MARTe::uint8>(index);
|
||||||
|
}
|
||||||
|
return Compare<MARTe::uint16>(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
CLASS_REGISTER(JAConditionalSignalUpdateGAM, "1.0")
|
CLASS_REGISTER(JAConditionalSignalUpdateGAM, "1.0")
|
||||||
|
|||||||
@@ -11,12 +11,13 @@
|
|||||||
* You may not use this work except in compliance with 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
|
* You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
|
||||||
*
|
*
|
||||||
* @warning Unless required by applicable law or agreed to in writing,
|
* @warning Unless required by applicable law or agreed to in writing,
|
||||||
* software distributed under the Licence is distributed on an "AS IS"
|
* software distributed under the Licence is distributed on an "AS IS"
|
||||||
* basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
* basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||||
* or implied. See the Licence permissions and limitations under the Licence.
|
* or implied. See the Licence permissions and limitations under the Licence.
|
||||||
|
|
||||||
* @details This header file contains the declaration of the class JAConditionalSignalUpdateGAM
|
* @details This header file contains the declaration of the class
|
||||||
|
JAConditionalSignalUpdateGAM
|
||||||
* with all of its public, protected and private members. It may also include
|
* with all of its public, protected and private members. It may also include
|
||||||
* definitions for inline methods which need to be visible to the compiler.
|
* definitions for inline methods which need to be visible to the compiler.
|
||||||
*/
|
*/
|
||||||
@@ -31,6 +32,7 @@
|
|||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/* Project header includes */
|
/* Project header includes */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
#include "Architecture/x86_gcc/CompilerTypes.h"
|
||||||
#include "GAM.h"
|
#include "GAM.h"
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
@@ -38,20 +40,24 @@
|
|||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief GAM that writes predefined values to output signals when a condition is met.
|
* @brief GAM that writes predefined values to output signals when a condition
|
||||||
* If there are no conditional signals provided, the condition is presumed to be met.
|
* is met. If there are no conditional signals provided, the condition is
|
||||||
|
* presumed to be met.
|
||||||
*
|
*
|
||||||
* +ASYNCShotlengthControlGAM = {
|
* +ASYNCShotlengthControlGAM = {
|
||||||
* Class = JAConditionalSignalUpdateGAM
|
* Class = JAConditionalSignalUpdateGAM
|
||||||
* Operation = OR // Logical operation performed between conditional signals
|
* Operation = OR // Logical operation performed between conditional
|
||||||
|
* signals
|
||||||
* // Supported values: AND, OR, XOR, NOR
|
* // Supported values: AND, OR, XOR, NOR
|
||||||
* // Default: AND
|
* // Default: AND
|
||||||
* ExpectedValues = {1 1} // Values to which conditional signals will be compared.
|
* ExpectedValues = {1 1} // Values to which conditional signals will
|
||||||
* Comparators = {EQUALS EQUALS} // Operator between conditional signal an expected value
|
* be compared. Comparators = {EQUALS EQUALS} // Operator between conditional
|
||||||
* // Supported values: EQUALS, NOT, GREATER, EQUALS_OR_GREATER, LESS, EQUALS_OR_LESS
|
* signal an expected value
|
||||||
|
* // Supported values: EQUALS, NOT,
|
||||||
|
* GREATER, EQUALS_OR_GREATER, LESS, EQUALS_OR_LESS
|
||||||
* // Default: EQUALS
|
* // Default: EQUALS
|
||||||
* Values = {0 3} // Values that will be written to output signals when condition is met.
|
* Values = {0 3} // Values that will be written to output signals when
|
||||||
* InputSignals = {
|
* condition is met. InputSignals = {
|
||||||
* // Conditional Signals
|
* // Conditional Signals
|
||||||
* SHOTLEN_FLAG = {
|
* SHOTLEN_FLAG = {
|
||||||
* DataSource = DDB1
|
* DataSource = DDB1
|
||||||
@@ -61,15 +67,13 @@
|
|||||||
* DataSource = DDB1
|
* DataSource = DDB1
|
||||||
* Type = uint32
|
* Type = uint32
|
||||||
* }
|
* }
|
||||||
* // Default values (set to output signals before the condition is met)
|
* // Default values (set to output signals before the condition is
|
||||||
* APS_SWON = { // APS_SWON will keep the value from previous state.
|
* met) APS_SWON = { // APS_SWON will keep the value from previous state.
|
||||||
* DataSource = DDB1
|
* DataSource = DDB1
|
||||||
* Type = uint32
|
* Type = uint32
|
||||||
* }
|
* }
|
||||||
* BPS_SWON_DEFAULT = { // BPS_SWON will be set to 7 before condition is met.
|
* BPS_SWON_DEFAULT = { // BPS_SWON will be set to 7 before
|
||||||
* DataSource = DDB1
|
* condition is met. DataSource = DDB1 Type = uint32 Default = 7
|
||||||
* Type = uint32
|
|
||||||
* Default = 7
|
|
||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
* OutputSignals = {
|
* OutputSignals = {
|
||||||
@@ -84,97 +88,89 @@
|
|||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
class JAConditionalSignalUpdateGAM : public MARTe::GAM, public MARTe::StatefulI {
|
class JAConditionalSignalUpdateGAM : public MARTe::GAM,
|
||||||
|
public MARTe::StatefulI {
|
||||||
public:
|
public:
|
||||||
CLASS_REGISTER_DECLARATION()
|
CLASS_REGISTER_DECLARATION()
|
||||||
|
|
||||||
JAConditionalSignalUpdateGAM();
|
JAConditionalSignalUpdateGAM();
|
||||||
|
|
||||||
virtual ~JAConditionalSignalUpdateGAM();
|
virtual ~JAConditionalSignalUpdateGAM();
|
||||||
|
|
||||||
virtual bool Initialise(MARTe::StructuredDataI & data);
|
virtual bool Initialise(MARTe::StructuredDataI &data);
|
||||||
|
|
||||||
virtual bool Setup();
|
virtual bool Setup();
|
||||||
|
|
||||||
virtual bool Execute();
|
virtual bool Execute();
|
||||||
|
|
||||||
virtual bool PrepareNextState(const MARTe::char8 * const currentStateName,
|
virtual bool PrepareNextState(const MARTe::char8 *const currentStateName,
|
||||||
const MARTe::char8 * const nextStateName);
|
const MARTe::char8 *const nextStateName);
|
||||||
|
|
||||||
|
enum ComparisonMode {
|
||||||
|
Equals,
|
||||||
|
Not,
|
||||||
|
Greater,
|
||||||
|
EqualsOrGreater,
|
||||||
|
Less,
|
||||||
|
EqualsOrLess
|
||||||
|
};
|
||||||
|
enum OperationMode { And, Or, Xor, Nor };
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* @brief Does the input signal at provided index have the expected value.
|
* @brief Does the input signal at provided index have the expected value.
|
||||||
* @param[in] index of the signal.
|
* @param[in] index of the signal.
|
||||||
* @return true if the signal has expected value.
|
* @return true if the signal has expected value.
|
||||||
*/
|
*/
|
||||||
bool Compare(MARTe::uint32 index);
|
bool Compare(MARTe::uint32 index);
|
||||||
|
|
||||||
template <class T>
|
template <class T> bool Compare(MARTe::uint32 index);
|
||||||
bool Compare(MARTe::uint32 index);
|
|
||||||
|
|
||||||
enum OperationMode {
|
// Input signals
|
||||||
And, Or, Xor, Nor
|
void **inputSignals;
|
||||||
};
|
|
||||||
|
|
||||||
enum ComparisonMode {
|
MARTe::TypeDescriptor *inputSignalTypes;
|
||||||
Equals, Not, Greater, EqualsOrGreater, Less, EqualsOrLess
|
struct comparator_t {
|
||||||
};
|
ComparisonMode comparator;
|
||||||
|
MARTe::uint32 value;
|
||||||
|
};
|
||||||
|
comparator_t *comparators;
|
||||||
|
// Condition operation.
|
||||||
|
OperationMode operation;
|
||||||
|
|
||||||
// Input signals
|
// Output signals
|
||||||
void **inputSignals;
|
MARTe::uint32 **outputSignals;
|
||||||
|
struct output_t {
|
||||||
|
MARTe::uint32 value;
|
||||||
|
MARTe::uint32 defaultValue;
|
||||||
|
};
|
||||||
|
output_t *outputs;
|
||||||
|
|
||||||
MARTe::TypeDescriptor *inputSignalTypes;
|
// Were output signals already set and we are waiting for a state change
|
||||||
|
// before they are set again.
|
||||||
// Condition operation.
|
bool needsReset;
|
||||||
OperationMode operation;
|
|
||||||
|
|
||||||
// Array of expected values of input signals.
|
|
||||||
MARTe::uint32* expectedValues;
|
|
||||||
|
|
||||||
// Expected values count (must be equal to numberOfInputSignals)
|
|
||||||
MARTe::uint32 expectedValuesCount;
|
|
||||||
|
|
||||||
// Array of comparators
|
|
||||||
ComparisonMode* comparators;
|
|
||||||
|
|
||||||
// Values to be written on output signals when input signal has the expected value.
|
|
||||||
MARTe::uint32 *values;
|
|
||||||
|
|
||||||
// Number of values (must be equal to numberOfOutputSignals)
|
|
||||||
MARTe::uint32 valuesCount;
|
|
||||||
|
|
||||||
// Output signals
|
|
||||||
MARTe::uint32 **outputSignals;
|
|
||||||
|
|
||||||
// Default values of output signals
|
|
||||||
MARTe::uint32 **defaultValues;
|
|
||||||
|
|
||||||
// Were output signals already set and we are waiting for a state change before they are set again.
|
|
||||||
bool needsReset;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/* Inline method definitions */
|
/* Inline method definitions */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
bool JAConditionalSignalUpdateGAM::Compare(MARTe::uint32 index) {
|
bool JAConditionalSignalUpdateGAM::Compare(MARTe::uint32 index) {
|
||||||
switch (comparators[index]) {
|
switch (comparators[index].comparator) {
|
||||||
case Equals:
|
case Equals:
|
||||||
return *static_cast<T *>(inputSignals[index]) == static_cast<T>(expectedValues[index]);
|
return *(T*)(inputSignals[index]) == comparators[index].value;
|
||||||
case Not:
|
case Not:
|
||||||
return *static_cast<T *>(inputSignals[index]) != static_cast<T>(expectedValues[index]);
|
return *(T *)(inputSignals[index]) != comparators[index].value;
|
||||||
case Greater:
|
case Greater:
|
||||||
return *static_cast<T *>(inputSignals[index]) > static_cast<T>(expectedValues[index]);
|
return *(T *)(inputSignals[index]) > comparators[index].value;
|
||||||
case EqualsOrGreater:
|
case EqualsOrGreater:
|
||||||
return *static_cast<T *>(inputSignals[index]) >= static_cast<T>(expectedValues[index]);
|
return *(T *)(inputSignals[index]) >= comparators[index].value;
|
||||||
case Less:
|
case Less:
|
||||||
return *static_cast<T *>(inputSignals[index]) < static_cast<T>(expectedValues[index]);
|
return *(T *)(inputSignals[index]) < comparators[index].value;
|
||||||
default: // case EqualsOrLess:
|
default: // case EqualsOrLess:
|
||||||
return *static_cast<T *>(inputSignals[index]) <= static_cast<T>(expectedValues[index]);
|
return *(T *)(inputSignals[index]) <= comparators[index].value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* GAMS_JACONDITIONALSIGNALUPDATEGAM_H_ */
|
#endif /* GAMS_JACONDITIONALSIGNALUPDATEGAM_H_ */
|
||||||
|
|||||||
@@ -29,8 +29,12 @@
|
|||||||
/* Project header includes */
|
/* Project header includes */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
#include "AdvancedErrorManagement.h"
|
#include "AdvancedErrorManagement.h"
|
||||||
|
#include "Architecture/x86_gcc/CompilerTypes.h"
|
||||||
|
#include "ErrorType.h"
|
||||||
#include "JAMessageGAM.h"
|
#include "JAMessageGAM.h"
|
||||||
#include "MessageI.h"
|
#include "MessageI.h"
|
||||||
|
#include "StreamString.h"
|
||||||
|
#include "TypeDescriptor.h"
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/* Static definitions */
|
/* Static definitions */
|
||||||
@@ -40,308 +44,338 @@
|
|||||||
/* Method definitions */
|
/* Method definitions */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
template<class T, class U>
|
template <class T, class U>
|
||||||
bool Compare(JAMessageGAM::ComparisonMode comparator, void *inputSignal, U expectedValue) {
|
bool Compare(JAMessageGAM::ComparisonMode comparator, void *inputSignal,
|
||||||
switch (comparator) {
|
U expectedValue) {
|
||||||
case JAMessageGAM::Equals:
|
switch (comparator) {
|
||||||
return *static_cast<T *>(inputSignal) == expectedValue;
|
case JAMessageGAM::Equals:
|
||||||
case JAMessageGAM::Not:
|
return *static_cast<T *>(inputSignal) == expectedValue;
|
||||||
return *static_cast<T *>(inputSignal) != expectedValue;
|
case JAMessageGAM::Not:
|
||||||
case JAMessageGAM::Greater:
|
return *static_cast<T *>(inputSignal) != expectedValue;
|
||||||
return *static_cast<T *>(inputSignal) > expectedValue;
|
case JAMessageGAM::Greater:
|
||||||
case JAMessageGAM::EqualsOrGreater:
|
return *static_cast<T *>(inputSignal) > expectedValue;
|
||||||
return *static_cast<T *>(inputSignal) >= expectedValue;
|
case JAMessageGAM::EqualsOrGreater:
|
||||||
case JAMessageGAM::Less:
|
return *static_cast<T *>(inputSignal) >= expectedValue;
|
||||||
return *static_cast<T *>(inputSignal) < expectedValue;
|
case JAMessageGAM::Less:
|
||||||
default: // case EqualsOrLess:
|
return *static_cast<T *>(inputSignal) < expectedValue;
|
||||||
return *static_cast<T *>(inputSignal) <= expectedValue;
|
default: // case EqualsOrLess:
|
||||||
}
|
return *static_cast<T *>(inputSignal) <= expectedValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool parse_comparator(const MARTe::StreamString &str,
|
||||||
|
JAMessageGAM::ComparisonMode &op) {
|
||||||
|
if (str == "EQUALS") {
|
||||||
|
op = JAMessageGAM::Equals;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (str == "NOT") {
|
||||||
|
op = JAMessageGAM::Not;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (str == "GREATER") {
|
||||||
|
op = JAMessageGAM::Greater;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (str == "EQUALS_OR_GREATER") {
|
||||||
|
op = JAMessageGAM::EqualsOrGreater;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (str == "LESS") {
|
||||||
|
op = JAMessageGAM::Less;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (str == "EQUALS_OR_LESS") {
|
||||||
|
op = JAMessageGAM::EqualsOrLess;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_int(const MARTe::TypeDescriptor &td) {
|
||||||
|
return (td == MARTe::UnsignedInteger32Bit) ||
|
||||||
|
(td == MARTe::SignedInteger32Bit) ||
|
||||||
|
(td == MARTe::UnsignedInteger16Bit) ||
|
||||||
|
(td == MARTe::SignedInteger16Bit) ||
|
||||||
|
(td == MARTe::UnsignedInteger8Bit) || (td == MARTe::SignedInteger8Bit);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_float(const MARTe::TypeDescriptor &td) {
|
||||||
|
return (td == MARTe::Float32Bit) || (td == MARTe::Float64Bit);
|
||||||
}
|
}
|
||||||
|
|
||||||
JAMessageGAM::JAMessageGAM() {
|
JAMessageGAM::JAMessageGAM() {
|
||||||
inputSignals = NULL_PTR(void **);
|
inputSignals = NULL_PTR(void **);
|
||||||
inputSignalTypes = NULL_PTR(MARTe::TypeDescriptor *);
|
inputSignalTypes = NULL_PTR(MARTe::TypeDescriptor *);
|
||||||
operation = And;
|
comparators = NULL_PTR(comparator_t *);
|
||||||
needsReset = false;
|
operation = And;
|
||||||
expectedValuesInt = NULL_PTR(MARTe::uint64 *);
|
needsReset = false;
|
||||||
expectedValuesFloat = NULL_PTR(MARTe::float64 *);
|
|
||||||
intValuesCount = 0u;
|
|
||||||
floatValuesCount = 0u;
|
|
||||||
comparators = NULL_PTR(ComparisonMode *);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JAMessageGAM::~JAMessageGAM() {
|
JAMessageGAM::~JAMessageGAM() {
|
||||||
if (inputSignals != NULL_PTR(void **)) {
|
if (inputSignals != NULL_PTR(void **)) {
|
||||||
delete[] inputSignals;
|
delete[] inputSignals;
|
||||||
}
|
}
|
||||||
if (inputSignalTypes != NULL_PTR(MARTe::TypeDescriptor *)) {
|
if (inputSignalTypes != NULL_PTR(MARTe::TypeDescriptor *)) {
|
||||||
delete[] inputSignalTypes;
|
delete[] inputSignalTypes;
|
||||||
}
|
}
|
||||||
if (expectedValuesInt != NULL_PTR(MARTe::uint64 *)) {
|
if (comparators != NULL_PTR(comparator_t *)) {
|
||||||
delete[] expectedValuesInt;
|
delete[] comparators;
|
||||||
}
|
}
|
||||||
if (expectedValuesFloat != NULL_PTR(MARTe::float64 *)) {
|
|
||||||
delete[] expectedValuesFloat;
|
|
||||||
}
|
|
||||||
if (comparators != NULL_PTR(ComparisonMode *)) {
|
|
||||||
delete[] comparators;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JAMessageGAM::Initialise(MARTe::StructuredDataI & data) {
|
bool JAMessageGAM::Initialise(MARTe::StructuredDataI &data) {
|
||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
bool ok = GAM::Initialise(data);
|
bool ok = GAM::Initialise(data);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
// Read expected integer values.
|
MARTe::StreamString operationStr;
|
||||||
AnyType valuesArray = data.GetType("ExpectedIntValues");
|
if (data.Read("Operation", operationStr)) {
|
||||||
bool intValuesProvided = (valuesArray.GetDataPointer() != NULL);
|
if (operationStr == "AND") {
|
||||||
|
operation = And;
|
||||||
if (intValuesProvided) {
|
} else if (operationStr == "OR") {
|
||||||
intValuesCount = valuesArray.GetNumberOfElements(0u);
|
operation = Or;
|
||||||
}
|
} else if (operationStr == "NOR") {
|
||||||
if (intValuesProvided) {
|
operation = Nor;
|
||||||
expectedValuesInt = new uint64[intValuesCount];
|
} else if (operationStr == "XOR") {
|
||||||
|
operation = Xor;
|
||||||
Vector<uint64> valuesVector(expectedValuesInt, intValuesCount);
|
} else {
|
||||||
ok = (data.Read("ExpectedIntValues", valuesVector));
|
ok = false;
|
||||||
if (!ok) {
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Failed to read ExpectedIntValues.");
|
"Operation %s is not defined", operationStr.Buffer());
|
||||||
return ok;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
// Read expected float values.
|
|
||||||
valuesArray = data.GetType("ExpectedFloatValues");
|
|
||||||
bool floatValuesProvided = (valuesArray.GetDataPointer() != NULL);
|
|
||||||
|
|
||||||
if (floatValuesProvided) {
|
|
||||||
floatValuesCount = valuesArray.GetNumberOfElements(0u);
|
|
||||||
}
|
|
||||||
if (floatValuesProvided) {
|
|
||||||
expectedValuesFloat = new float64[floatValuesCount];
|
|
||||||
|
|
||||||
Vector<float64> valuesVector(expectedValuesFloat, floatValuesCount);
|
|
||||||
ok = (data.Read("ExpectedFloatValues", valuesVector));
|
|
||||||
if (!ok) {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Failed to read ExpectedFloatValues.");
|
|
||||||
return ok;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ok = (floatValuesCount + intValuesCount) > 0u;
|
|
||||||
if (!ok) {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "ExpectedFloatValues and or ExpectedIntValues shall be defined.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (ok) {
|
||||||
|
ok = (Size() == 1);
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"A Message object shall be added to this container");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ok) {
|
||||||
|
eventMsg = Get(0);
|
||||||
|
ok = (eventMsg.IsValid());
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"A valid Message shall be added to this container");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ok) {
|
||||||
|
ok = data.MoveRelative("InputSignals");
|
||||||
|
uint32 level = 0;
|
||||||
if (ok) {
|
if (ok) {
|
||||||
// Read comparators.
|
level++;
|
||||||
AnyType comparatorsArray = data.GetType("Comparators");
|
uint32 n_inputs = data.GetNumberOfChildren();
|
||||||
if (comparatorsArray.GetDataPointer() != NULL) {
|
comparators = new comparator_t[n_inputs];
|
||||||
uint32 count = comparatorsArray.GetNumberOfElements(0u);
|
StreamString strbuffer;
|
||||||
ok = count == (intValuesCount + floatValuesCount);
|
TypeDescriptor td;
|
||||||
if (ok) {
|
for (uint32 i = 0; ok && i < n_inputs; i++) {
|
||||||
comparators = new ComparisonMode[count];
|
ok = data.MoveToChild(i);
|
||||||
StreamString* comp = new StreamString[count];
|
if (!ok) {
|
||||||
Vector<StreamString> compVector(comp, count);
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Impossible to move to InputSignals[%lu]", i);
|
||||||
ok = (data.Read("Comparators", compVector));
|
break;
|
||||||
|
}
|
||||||
if (ok) {
|
level++;
|
||||||
for (uint32 i = 0; i < count; ++i) {
|
strbuffer = "";
|
||||||
if (comp[i] == "EQUALS") {
|
ok = data.Read("Type", strbuffer);
|
||||||
comparators[i] = Equals;
|
if (!ok) {
|
||||||
} else if (comp[i] == "NOT") {
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
comparators[i] = Not;
|
"Missing mandatory field Type from InputSignals[%lu]",
|
||||||
} else if (comp[i] == "GREATER") {
|
i);
|
||||||
comparators[i] = Greater;
|
break;
|
||||||
} else if (comp[i] == "EQUALS_OR_GREATER") {
|
}
|
||||||
comparators[i] = EqualsOrGreater;
|
td = TypeDescriptor::GetTypeDescriptorFromTypeName(strbuffer.Buffer());
|
||||||
} else if (comp[i] == "LESS") {
|
ok = (td != InvalidType) && (is_float(td) || is_int(td));
|
||||||
comparators[i] = Less;
|
if (!ok) {
|
||||||
} else if (comp[i] == "EQUALS_OR_LESS") {
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
comparators[i] = EqualsOrLess;
|
"Wrong value for field Type from InputSignals[%lu]", i);
|
||||||
} else {
|
break;
|
||||||
ok = false;
|
}
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Comparator %s is not defined.", comp[i].Buffer());
|
strbuffer = "";
|
||||||
}
|
ok = data.Read("Comparator", strbuffer);
|
||||||
}
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(
|
||||||
} else {
|
ErrorManagement::ParametersError,
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Expected values and operators shall have the same "
|
"Missing mandatory field Comparator from InputSignals[%lu]", i);
|
||||||
"number of elements.");
|
break;
|
||||||
}
|
}
|
||||||
|
ok = parse_comparator(strbuffer, comparators[i].comparator);
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Non Valid Comparator `%s` from InputSignals[%lu]",
|
||||||
|
strbuffer.Buffer(), i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (is_int(td)) {
|
||||||
|
ok = data.Read("Value", comparators[i].value.i64);
|
||||||
|
if (!ok) {
|
||||||
|
REPORT_ERROR(
|
||||||
|
ErrorManagement::ParametersError,
|
||||||
|
"Missing field Value (expecting int) from InputSignals[%lu]",
|
||||||
|
i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
uint32 count = intValuesCount + floatValuesCount;
|
ok = data.Read("Value", comparators[i].value.f64);
|
||||||
if (ok) {
|
if (!ok) {
|
||||||
// Create default comparators (equals) when they aren't provided in the configuration.
|
REPORT_ERROR(
|
||||||
comparators = new ComparisonMode[count];
|
ErrorManagement::ParametersError,
|
||||||
for (uint32 i = 0; i < count; ++i) {
|
"Missing field Value (expecting float) from InputSignals[%lu]",
|
||||||
comparators[i] = Equals;
|
i);
|
||||||
}
|
break;
|
||||||
} else {
|
}
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Expected values and operators shall have the same "
|
|
||||||
"number of elements.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
if (data.MoveToAncestor(1)) {
|
||||||
if (ok) {
|
level--;
|
||||||
MARTe::StreamString operationStr;
|
|
||||||
if (data.Read("Operation", operationStr)) {
|
|
||||||
if (operationStr == "AND") {
|
|
||||||
operation = And;
|
|
||||||
}
|
|
||||||
else if (operationStr == "OR") {
|
|
||||||
operation = Or;
|
|
||||||
}
|
|
||||||
else if (operationStr == "NOR") {
|
|
||||||
operation = Nor;
|
|
||||||
}
|
|
||||||
else if (operationStr == "XOR") {
|
|
||||||
operation = Xor;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ok = false;
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Operation %s is not defined", operationStr.Buffer());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
data.MoveToAncestor(level);
|
||||||
|
} else {
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Impossible to move to InputSignals");
|
||||||
}
|
}
|
||||||
if (ok) {
|
}
|
||||||
ok = (Size() == 1);
|
return ok;
|
||||||
if (!ok) {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "A Message object shall be added to this container");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ok) {
|
|
||||||
eventMsg = Get(0);
|
|
||||||
ok = (eventMsg.IsValid());
|
|
||||||
if (!ok) {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "A valid Message shall be added to this container");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ok;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JAMessageGAM::Setup() {
|
bool JAMessageGAM::Setup() {
|
||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
bool ok = numberOfInputSignals == (intValuesCount + floatValuesCount);
|
bool ok = numberOfInputSignals > 0u;
|
||||||
if (ok) {
|
if (ok) {
|
||||||
ok = numberOfInputSignals > 0u;
|
inputSignals = new void *[numberOfInputSignals];
|
||||||
if (ok) {
|
uint32 i;
|
||||||
inputSignals = new void*[numberOfInputSignals];
|
for (i = 0u; i < numberOfInputSignals; i++) {
|
||||||
uint32 i;
|
inputSignals[i] = GetInputSignalMemory(i);
|
||||||
for (i = 0u; i < numberOfInputSignals; i++) {
|
|
||||||
inputSignals[i] = GetInputSignalMemory(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "At least one input signal shall be defined");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Number of input signals shall be the same as "
|
|
||||||
"number of expected values.");
|
|
||||||
}
|
}
|
||||||
if (ok) {
|
} else {
|
||||||
inputSignalTypes = new TypeDescriptor[numberOfInputSignals];
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
uint32 i;
|
"At least one input signal shall be defined");
|
||||||
for (i = 0u; (i < numberOfInputSignals) && (ok); i++) {
|
}
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, i);
|
if (ok) {
|
||||||
inputSignalTypes[i] = inputType;
|
inputSignalTypes = new TypeDescriptor[numberOfInputSignals];
|
||||||
ok = (inputType == UnsignedInteger32Bit) || (inputType == SignedInteger32Bit) ||
|
uint32 i;
|
||||||
(inputType == UnsignedInteger16Bit) || (inputType == SignedInteger16Bit) ||
|
for (i = 0u; (i < numberOfInputSignals) && (ok); i++) {
|
||||||
(inputType == UnsignedInteger8Bit) || (inputType == SignedInteger8Bit) ||
|
TypeDescriptor inputType = GetSignalType(InputSignals, i);
|
||||||
(inputType == Float64Bit) || (inputType == Float32Bit);
|
inputSignalTypes[i] = inputType;
|
||||||
if (!ok) {
|
ok = (inputType == UnsignedInteger32Bit) ||
|
||||||
StreamString signalName;
|
(inputType == SignedInteger32Bit) ||
|
||||||
(void) GetSignalName(InputSignals, i, signalName);
|
(inputType == UnsignedInteger16Bit) ||
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Signal %s shall be defined as 32/16/8 bit signed/unsigned integer "
|
(inputType == SignedInteger16Bit) ||
|
||||||
"or as 64/32 float.", signalName.Buffer());
|
(inputType == UnsignedInteger8Bit) ||
|
||||||
}
|
(inputType == SignedInteger8Bit) || (inputType == Float64Bit) ||
|
||||||
}
|
(inputType == Float32Bit);
|
||||||
|
if (!ok) {
|
||||||
|
StreamString signalName;
|
||||||
|
(void)GetSignalName(InputSignals, i, signalName);
|
||||||
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Signal %s shall be defined as 32/16/8 bit "
|
||||||
|
"signed/unsigned integer "
|
||||||
|
"or as 64/32 float.",
|
||||||
|
signalName.Buffer());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JAMessageGAM::PrepareNextState(const MARTe::char8 * const currentStateName, const MARTe::char8 * const nextStateName) {
|
bool JAMessageGAM::PrepareNextState(const MARTe::char8 *const currentStateName,
|
||||||
needsReset = false;
|
const MARTe::char8 *const nextStateName) {
|
||||||
return true;
|
needsReset = false;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JAMessageGAM::Execute() {
|
bool JAMessageGAM::Execute() {
|
||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
bool eventDetected = false;
|
bool eventDetected = false;
|
||||||
uint32 inputPortIndex = 0;
|
uint32 inputPortIndex = 0;
|
||||||
uint32 intIndex = 0;
|
uint32 intIndex = 0;
|
||||||
uint32 floatIndex = 0;
|
uint32 floatIndex = 0;
|
||||||
if (operation == Or) {
|
if (operation == Or) {
|
||||||
for (inputPortIndex = 0; (inputPortIndex < numberOfInputSignals) && (!eventDetected); inputPortIndex++) {
|
for (inputPortIndex = 0;
|
||||||
eventDetected = Compare(inputPortIndex, floatIndex, intIndex);
|
(inputPortIndex < numberOfInputSignals) && (!eventDetected);
|
||||||
}
|
inputPortIndex++) {
|
||||||
|
eventDetected = Compare(inputPortIndex, floatIndex, intIndex);
|
||||||
}
|
}
|
||||||
else if (operation == Nor) {
|
} else if (operation == Nor) {
|
||||||
for (inputPortIndex = 0; (inputPortIndex < numberOfInputSignals) && (!eventDetected); inputPortIndex++) {
|
for (inputPortIndex = 0;
|
||||||
eventDetected = Compare(inputPortIndex, floatIndex, intIndex);
|
(inputPortIndex < numberOfInputSignals) && (!eventDetected);
|
||||||
}
|
inputPortIndex++) {
|
||||||
eventDetected = !eventDetected;
|
eventDetected = Compare(inputPortIndex, floatIndex, intIndex);
|
||||||
}
|
}
|
||||||
else if (operation == And) {
|
eventDetected = !eventDetected;
|
||||||
eventDetected = Compare(0, floatIndex, intIndex);
|
} else if (operation == And) {
|
||||||
for (inputPortIndex = 1; (inputPortIndex < numberOfInputSignals); inputPortIndex++) {
|
eventDetected = Compare(0, floatIndex, intIndex);
|
||||||
eventDetected &= Compare(inputPortIndex, floatIndex, intIndex);
|
for (inputPortIndex = 1; (inputPortIndex < numberOfInputSignals);
|
||||||
}
|
inputPortIndex++) {
|
||||||
|
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);
|
||||||
for (inputPortIndex = 1; (inputPortIndex < numberOfInputSignals); inputPortIndex++) {
|
for (inputPortIndex = 1; (inputPortIndex < numberOfInputSignals);
|
||||||
eventDetectedUInt32 ^= Compare(inputPortIndex, floatIndex, intIndex);
|
inputPortIndex++) {
|
||||||
}
|
eventDetectedUInt32 ^= Compare(inputPortIndex, floatIndex, intIndex);
|
||||||
eventDetected = (eventDetectedUInt32 == 1u);
|
|
||||||
}
|
}
|
||||||
if (eventDetected) {
|
eventDetected = (eventDetectedUInt32 == 1u);
|
||||||
if (!needsReset) {
|
}
|
||||||
ok = (MessageI::SendMessage(eventMsg, this) == ErrorManagement::NoError);
|
if (eventDetected) {
|
||||||
needsReset = true;
|
if (!needsReset) {
|
||||||
}
|
ok = (MessageI::SendMessage(eventMsg, this) == ErrorManagement::NoError);
|
||||||
|
needsReset = true;
|
||||||
}
|
}
|
||||||
return ok;
|
}
|
||||||
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JAMessageGAM::Compare(MARTe::uint32 inputPortIndex, MARTe::uint32 &floatValueIndex, MARTe::uint32 &intValueIndex) {
|
bool JAMessageGAM::Compare(MARTe::uint32 inputPortIndex,
|
||||||
using namespace MARTe;
|
MARTe::uint32 &floatValueIndex,
|
||||||
bool ret = false;
|
MARTe::uint32 &intValueIndex) {
|
||||||
if (inputSignalTypes[inputPortIndex] == UnsignedInteger32Bit) {
|
using namespace MARTe;
|
||||||
ret = ::Compare<uint32>(comparators[inputPortIndex], inputSignals[inputPortIndex], expectedValuesInt[intValueIndex]);
|
bool ret = false;
|
||||||
++intValueIndex;
|
if (inputSignalTypes[inputPortIndex] == UnsignedInteger32Bit) {
|
||||||
}
|
ret = ::Compare<uint32>(comparators[inputPortIndex].comparator,
|
||||||
else if (inputSignalTypes[inputPortIndex] == SignedInteger32Bit) {
|
inputSignals[inputPortIndex],
|
||||||
ret = ::Compare<int32>(comparators[inputPortIndex], inputSignals[inputPortIndex], expectedValuesInt[intValueIndex]);
|
comparators[inputPortIndex].value.i64);
|
||||||
++intValueIndex;
|
++intValueIndex;
|
||||||
}
|
} else if (inputSignalTypes[inputPortIndex] == SignedInteger32Bit) {
|
||||||
else if (inputSignalTypes[inputPortIndex] == UnsignedInteger16Bit) {
|
ret = ::Compare<int32>(comparators[inputPortIndex].comparator,
|
||||||
ret = ::Compare<uint16>(comparators[inputPortIndex], inputSignals[inputPortIndex], expectedValuesInt[intValueIndex]);
|
inputSignals[inputPortIndex],
|
||||||
++intValueIndex;
|
comparators[inputPortIndex].value.i64);
|
||||||
}
|
++intValueIndex;
|
||||||
else if (inputSignalTypes[inputPortIndex] == SignedInteger16Bit) {
|
} else if (inputSignalTypes[inputPortIndex] == UnsignedInteger16Bit) {
|
||||||
ret = ::Compare<int16>(comparators[inputPortIndex], inputSignals[inputPortIndex], expectedValuesInt[intValueIndex]);
|
ret = ::Compare<uint16>(comparators[inputPortIndex].comparator,
|
||||||
++intValueIndex;
|
inputSignals[inputPortIndex],
|
||||||
}
|
comparators[inputPortIndex].value.i64);
|
||||||
else if (inputSignalTypes[inputPortIndex] == UnsignedInteger8Bit) {
|
++intValueIndex;
|
||||||
ret = ::Compare<uint8>(comparators[inputPortIndex], inputSignals[inputPortIndex], expectedValuesInt[intValueIndex]);
|
} else if (inputSignalTypes[inputPortIndex] == SignedInteger16Bit) {
|
||||||
++intValueIndex;
|
ret = ::Compare<int16>(comparators[inputPortIndex].comparator,
|
||||||
}
|
inputSignals[inputPortIndex],
|
||||||
else if (inputSignalTypes[inputPortIndex] == SignedInteger8Bit) {
|
comparators[inputPortIndex].value.i64);
|
||||||
ret = ::Compare<int8>(comparators[inputPortIndex], inputSignals[inputPortIndex], expectedValuesInt[intValueIndex]);
|
++intValueIndex;
|
||||||
++intValueIndex;
|
} else if (inputSignalTypes[inputPortIndex] == UnsignedInteger8Bit) {
|
||||||
}
|
ret = ::Compare<uint8>(comparators[inputPortIndex].comparator,
|
||||||
else if (inputSignalTypes[inputPortIndex] == Float64Bit) {
|
inputSignals[inputPortIndex],
|
||||||
ret = ::Compare<float64>(comparators[inputPortIndex], inputSignals[inputPortIndex], expectedValuesFloat[floatValueIndex]);
|
comparators[inputPortIndex].value.i64);
|
||||||
++floatValueIndex;
|
++intValueIndex;
|
||||||
}
|
} else if (inputSignalTypes[inputPortIndex] == SignedInteger8Bit) {
|
||||||
else {
|
ret = ::Compare<int8>(comparators[inputPortIndex].comparator,
|
||||||
ret = ::Compare<float32>(comparators[inputPortIndex], inputSignals[inputPortIndex], expectedValuesFloat[floatValueIndex]);
|
inputSignals[inputPortIndex],
|
||||||
++floatValueIndex;
|
comparators[inputPortIndex].value.i64);
|
||||||
}
|
++intValueIndex;
|
||||||
return ret;
|
} else if (inputSignalTypes[inputPortIndex] == Float64Bit) {
|
||||||
|
ret = ::Compare<float64>(comparators[inputPortIndex].comparator,
|
||||||
|
inputSignals[inputPortIndex],
|
||||||
|
comparators[inputPortIndex].value.f64);
|
||||||
|
++floatValueIndex;
|
||||||
|
} else {
|
||||||
|
ret = ::Compare<float32>(comparators[inputPortIndex].comparator,
|
||||||
|
inputSignals[inputPortIndex],
|
||||||
|
comparators[inputPortIndex].value.f64);
|
||||||
|
++floatValueIndex;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
CLASS_REGISTER(JAMessageGAM, "1.0")
|
CLASS_REGISTER(JAMessageGAM, "1.0")
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
/* Project header includes */
|
/* Project header includes */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "Architecture/x86_gcc/CompilerTypes.h"
|
||||||
#include "GAM.h"
|
#include "GAM.h"
|
||||||
#include "Message.h"
|
#include "Message.h"
|
||||||
|
|
||||||
@@ -48,22 +49,23 @@
|
|||||||
* +MessageGAM = {
|
* +MessageGAM = {
|
||||||
* Class = JAMessageGAM
|
* Class = JAMessageGAM
|
||||||
* Operation = AND // Accepted values are: AND, OR, XOR, NOR. Default value is AND.
|
* Operation = AND // Accepted values are: AND, OR, XOR, NOR. Default value is AND.
|
||||||
* ExpectedIntValues = {1 10} // Expected values for input signals of integral type.
|
|
||||||
* ExpectedFloatValues = {3.5} // Expected values for float signals of floting point type.
|
|
||||||
* Comparators = {EQUALS GREATER NOT} // Accepted values are: EQUALS, NOT, GREATER, EQUALS_OR_GREATER, LESS, EQUALS_OR_LESS
|
|
||||||
* // Comparators element is optional. Default comparator is EQUALS.
|
|
||||||
* InputSignals = {
|
* InputSignals = {
|
||||||
* Sig1 = {
|
* Sig1 = {
|
||||||
* DataSource = EPICSCAInput
|
* DataSource = EPICSCAInput
|
||||||
* Type = uint32
|
* Type = uint32
|
||||||
|
* Comparator = "EQUALS" | "GREATER" | "NOT" | "EQUALS_OR_GREATER" | "LESS" | "EQUALS_OR_LESS"
|
||||||
|
* ExpectedValue = 1
|
||||||
* }
|
* }
|
||||||
* Sig2 = {
|
* Sig2 = {
|
||||||
* DataSource = EPICSCAInput
|
* DataSource = EPICSCAInput
|
||||||
* Type = float32
|
* Type = float32
|
||||||
|
* Comparator = "EQUALS" | "GREATER" | "NOT" | "EQUALS_OR_GREATER" | "LESS" | "EQUALS_OR_LESS"
|
||||||
|
* ExpectedValue = 3.5
|
||||||
* }
|
* }
|
||||||
* Sig3 = {
|
* Sig3 = {
|
||||||
* DataSource = EPICSCAInput
|
* DataSource = EPICSCAInput
|
||||||
* Type = uint32
|
* Type = uint32
|
||||||
|
* Comparator = "EQUALS" | "GREATER" | "NOT" | "EQUALS_OR_GREATER" | "LESS" | "EQUALS_OR_LESS"
|
||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
* +Event = { // Message to be sent when condition is true.
|
* +Event = { // Message to be sent when condition is true.
|
||||||
@@ -113,6 +115,17 @@ private:
|
|||||||
// Input signals
|
// Input signals
|
||||||
void **inputSignals;
|
void **inputSignals;
|
||||||
|
|
||||||
|
struct comparator_t {
|
||||||
|
ComparisonMode comparator;
|
||||||
|
union {
|
||||||
|
MARTe::int64 i64;
|
||||||
|
MARTe::float64 f64;
|
||||||
|
} value;
|
||||||
|
};
|
||||||
|
comparator_t * comparators;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MARTe::TypeDescriptor *inputSignalTypes;
|
MARTe::TypeDescriptor *inputSignalTypes;
|
||||||
|
|
||||||
// Condition operation.
|
// Condition operation.
|
||||||
@@ -123,21 +136,6 @@ private:
|
|||||||
|
|
||||||
// Was the message already sent and we are waiting for a state change before next message can be sent.
|
// Was the message already sent and we are waiting for a state change before next message can be sent.
|
||||||
bool needsReset;
|
bool needsReset;
|
||||||
|
|
||||||
// Array of expected integer values of input signals.
|
|
||||||
MARTe::uint64* expectedValuesInt;
|
|
||||||
|
|
||||||
// Array of expected float values for input signals.
|
|
||||||
MARTe::float64* expectedValuesFloat;
|
|
||||||
|
|
||||||
// Expected integer values count (must be equal to numberOfInputSignals - floatValuesCount)
|
|
||||||
MARTe::uint32 intValuesCount;
|
|
||||||
|
|
||||||
// Expected integer values count (must be equal to numberOfInputSignals - floatValuesCount)
|
|
||||||
MARTe::uint32 floatValuesCount;
|
|
||||||
|
|
||||||
// Array of comparators
|
|
||||||
ComparisonMode* comparators;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ JAPreProgrammedGAM::JAPreProgrammedGAM() :
|
|||||||
timeSignal = NULL_PTR(MARTe::int32 *);
|
timeSignal = NULL_PTR(MARTe::int32 *);
|
||||||
loadTriggerSignal = NULL_PTR(MARTe::uint32 *);
|
loadTriggerSignal = NULL_PTR(MARTe::uint32 *);
|
||||||
fhpsrefSignal = NULL_PTR(MARTe::float32 *);
|
fhpsrefSignal = NULL_PTR(MARTe::float32 *);
|
||||||
rfonStateSignal = NULL_PTR(MARTe::uint32 *);
|
rfonStateSignal = NULL_PTR(MARTe::uint8 *);
|
||||||
|
|
||||||
valueSignals = NULL_PTR(MARTe::float32 **);
|
valueSignals = NULL_PTR(MARTe::float32 **);
|
||||||
preProgrammedValues = NULL_PTR(MARTe::float32 **);
|
preProgrammedValues = NULL_PTR(MARTe::float32 **);
|
||||||
@@ -178,13 +178,13 @@ bool JAPreProgrammedGAM::Setup() {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, rfonIndex);
|
TypeDescriptor inputType = GetSignalType(InputSignals, rfonIndex);
|
||||||
ok = (inputType == UnsignedInteger32Bit);
|
ok = (inputType == UnsignedInteger8Bit);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
StreamString signalName;
|
StreamString signalName;
|
||||||
(void) GetSignalName(InputSignals, rfonIndex, signalName);
|
(void) GetSignalName(InputSignals, rfonIndex, signalName);
|
||||||
REPORT_ERROR(MARTe::ErrorManagement::ParametersError, "Signal %s shall be defined as float32", signalName.Buffer());
|
REPORT_ERROR(MARTe::ErrorManagement::ParametersError, "Signal %s shall be defined as uint8", signalName.Buffer());
|
||||||
} else {
|
} else {
|
||||||
rfonStateSignal = reinterpret_cast<uint32 *>(GetInputSignalMemory(rfonIndex));
|
rfonStateSignal = reinterpret_cast<uint8 *>(GetInputSignalMemory(rfonIndex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ private:
|
|||||||
MARTe::uint32 *loadTriggerSignal; //index:0
|
MARTe::uint32 *loadTriggerSignal; //index:0
|
||||||
MARTe::uint32 filenameSignalIndex;//index:1
|
MARTe::uint32 filenameSignalIndex;//index:1
|
||||||
MARTe::float32 *fhpsrefSignal; //index:2
|
MARTe::float32 *fhpsrefSignal; //index:2
|
||||||
MARTe::uint32 *rfonStateSignal; //index:3
|
MARTe::uint8 *rfonStateSignal; //index:3
|
||||||
|
|
||||||
//Output Signals
|
//Output Signals
|
||||||
MARTe::int32 *timeSignal; //index:0
|
MARTe::int32 *timeSignal; //index:0
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
#include "JARTStateMachineGAM.h"
|
#include "JARTStateMachineGAM.h"
|
||||||
|
|
||||||
#include "AdvancedErrorManagement.h"
|
#include "AdvancedErrorManagement.h"
|
||||||
|
#include "TypeDescriptor.h"
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/* Static definitions */
|
/* Static definitions */
|
||||||
@@ -57,7 +58,7 @@ JARTStateMachineGAM::JARTStateMachineGAM() {
|
|||||||
mhvps_hvon = 0;
|
mhvps_hvon = 0;
|
||||||
|
|
||||||
// Parameters which get from Input signals.
|
// Parameters which get from Input signals.
|
||||||
triggerSignal = NULL_PTR(MARTe::uint32 *);
|
triggerSignal = NULL_PTR(MARTe::uint8 *);
|
||||||
currentTime = NULL_PTR(MARTe::uint32 *);
|
currentTime = NULL_PTR(MARTe::uint32 *);
|
||||||
turn_off_delay = 2000; //us
|
turn_off_delay = 2000; //us
|
||||||
|
|
||||||
@@ -68,18 +69,18 @@ JARTStateMachineGAM::JARTStateMachineGAM() {
|
|||||||
triggerDelay_bps_swon = NULL_PTR(MARTe::uint32 *);
|
triggerDelay_bps_swon = NULL_PTR(MARTe::uint32 *);
|
||||||
triggerDelay_shotlen = NULL_PTR(MARTe::uint32 *);
|
triggerDelay_shotlen = NULL_PTR(MARTe::uint32 *);
|
||||||
|
|
||||||
stopRequest = NULL_PTR(MARTe::uint32 *);
|
stopRequest = NULL_PTR(MARTe::uint8 *);
|
||||||
modePulseLengthLimit = NULL_PTR(MARTe::uint32 *);
|
modePulseLengthLimit = NULL_PTR(MARTe::uint32 *);
|
||||||
short_pulse_mode = NULL_PTR(MARTe::uint32 *);
|
short_pulse_mode = NULL_PTR(MARTe::uint32 *);
|
||||||
|
|
||||||
modulation = NULL_PTR(MARTe::uint32 *);
|
modulation = NULL_PTR(MARTe::uint8 *);
|
||||||
|
|
||||||
// write out target.
|
// write out target.
|
||||||
outputSignal = NULL_PTR(MARTe::uint32 *);
|
outputSignal = NULL_PTR(MARTe::uint32 *);
|
||||||
outputBeamON = NULL_PTR(MARTe::uint32 *);
|
outputBeamON = NULL_PTR(MARTe::uint8 *);
|
||||||
outputHVArmed = NULL_PTR(MARTe::uint32 *);
|
outputHVArmed = NULL_PTR(MARTe::uint8*);
|
||||||
outputHVInjection = NULL_PTR(MARTe::uint32 *);
|
outputHVInjection = NULL_PTR(MARTe::uint8 *);
|
||||||
outputRFON = NULL_PTR(MARTe::uint32 *);
|
outputRFON = NULL_PTR(MARTe::uint8 *);
|
||||||
outputBeamONTime = NULL_PTR(MARTe::uint32 *);
|
outputBeamONTime = NULL_PTR(MARTe::uint32 *);
|
||||||
outputRFONTime = NULL_PTR(MARTe::uint32 *);
|
outputRFONTime = NULL_PTR(MARTe::uint32 *);
|
||||||
shotCounter = NULL_PTR(MARTe::uint32 *);
|
shotCounter = NULL_PTR(MARTe::uint32 *);
|
||||||
@@ -153,9 +154,9 @@ bool JARTStateMachineGAM::Setup() {
|
|||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
bool ok = (numberOfInputSignals == 13u);
|
bool ok = (numberOfInputSignals == 13u);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
ok = (numberOfOutputSignals == 16u);
|
ok = (numberOfOutputSignals == 14u);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
REPORT_ERROR(MARTe::ErrorManagement::ParametersError, "Seven output signals shall be defined %d",numberOfOutputSignals);
|
REPORT_ERROR(MARTe::ErrorManagement::ParametersError, "14 output signals shall be defined %d",numberOfOutputSignals);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -165,7 +166,7 @@ bool JARTStateMachineGAM::Setup() {
|
|||||||
uint32 c;
|
uint32 c;
|
||||||
for (c = 0u; c < numberOfInputSignals; c++) {
|
for (c = 0u; c < numberOfInputSignals; c++) {
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, c);
|
TypeDescriptor inputType = GetSignalType(InputSignals, c);
|
||||||
ok = (inputType == UnsignedInteger32Bit);
|
ok = (inputType == UnsignedInteger32Bit || inputType == UnsignedInteger8Bit);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
StreamString signalName;
|
StreamString signalName;
|
||||||
(void) GetSignalName(InputSignals, c, signalName);
|
(void) GetSignalName(InputSignals, c, signalName);
|
||||||
@@ -181,45 +182,43 @@ bool JARTStateMachineGAM::Setup() {
|
|||||||
ok = (outputType == UnsignedInteger32Bit || outputType == UnsignedInteger8Bit);
|
ok = (outputType == UnsignedInteger32Bit || outputType == UnsignedInteger8Bit);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
StreamString signalName;
|
StreamString signalName;
|
||||||
(void) GetSignalName(InputSignals, c, signalName);
|
(void) GetSignalName(OutputSignals, c, signalName);
|
||||||
REPORT_ERROR(MARTe::ErrorManagement::ParametersError, "Signal %s shall be defined as uint32", signalName.Buffer());
|
REPORT_ERROR(MARTe::ErrorManagement::ParametersError, "Signal %s shall be defined as uint32", signalName.Buffer());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ok) {
|
if (ok) {
|
||||||
currentTime = reinterpret_cast<uint32 *>(GetInputSignalMemory(0));
|
currentTime = reinterpret_cast<uint32 *>(GetInputSignalMemory(0));
|
||||||
triggerSignal = reinterpret_cast<uint32 *>(GetInputSignalMemory(1));
|
triggerSignal = reinterpret_cast<uint8 *>(GetInputSignalMemory(1));
|
||||||
triggerDelay_mhvps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(2));
|
triggerDelay_mhvps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(2));
|
||||||
triggerDelay_aps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(3));
|
triggerDelay_aps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(3));
|
||||||
triggerDelay_aps_swon = reinterpret_cast<uint32 *>(GetInputSignalMemory(4));
|
triggerDelay_aps_swon = reinterpret_cast<uint32 *>(GetInputSignalMemory(4));
|
||||||
triggerDelay_bps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(5));
|
triggerDelay_bps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(5));
|
||||||
triggerDelay_bps_swon = reinterpret_cast<uint32 *>(GetInputSignalMemory(6));
|
triggerDelay_bps_swon = reinterpret_cast<uint32 *>(GetInputSignalMemory(6));
|
||||||
triggerDelay_shotlen = reinterpret_cast<uint32 *>(GetInputSignalMemory(7));
|
triggerDelay_shotlen = reinterpret_cast<uint32 *>(GetInputSignalMemory(7));
|
||||||
stopRequest = reinterpret_cast<uint32 *>(GetInputSignalMemory(8));
|
stopRequest = reinterpret_cast<uint8 *>(GetInputSignalMemory(8));
|
||||||
modePulseLengthLimit = reinterpret_cast<uint32 *>(GetInputSignalMemory(9));
|
modePulseLengthLimit = reinterpret_cast<uint32 *>(GetInputSignalMemory(9));
|
||||||
short_pulse_mode = reinterpret_cast<uint32 *>(GetInputSignalMemory(10));
|
short_pulse_mode = reinterpret_cast<uint32 *>(GetInputSignalMemory(10));
|
||||||
modulation = reinterpret_cast<uint32 *>(GetInputSignalMemory(11));
|
modulation = reinterpret_cast<uint8 *>(GetInputSignalMemory(11));
|
||||||
pauseSet = reinterpret_cast<uint32 *>(GetInputSignalMemory(12));
|
pauseSet = reinterpret_cast<uint8 *>(GetInputSignalMemory(12));
|
||||||
|
|
||||||
|
|
||||||
outputSignal = reinterpret_cast<uint32 *>(GetOutputSignalMemory(0));
|
outputSignal = reinterpret_cast<uint32 *>(GetOutputSignalMemory(0));
|
||||||
outputBeamON = reinterpret_cast<uint32 *>(GetOutputSignalMemory(1));
|
outputBeamON = reinterpret_cast<uint8 *>(GetOutputSignalMemory(1));
|
||||||
outputHVArmed = reinterpret_cast<uint32 *>(GetOutputSignalMemory(2));
|
outputHVArmed = reinterpret_cast<uint8 *>(GetOutputSignalMemory(2));
|
||||||
outputHVInjection = reinterpret_cast<uint32 *>(GetOutputSignalMemory(3));
|
outputHVInjection = reinterpret_cast<uint8 *>(GetOutputSignalMemory(3));
|
||||||
outputRFON = reinterpret_cast<uint32 *>(GetOutputSignalMemory(4));
|
outputRFON = reinterpret_cast<uint8 *>(GetOutputSignalMemory(4));
|
||||||
outputBeamONTime = reinterpret_cast<uint32 *>(GetOutputSignalMemory(5));
|
outputBeamONTime = reinterpret_cast<uint32 *>(GetOutputSignalMemory(5));
|
||||||
outputRFONTime = reinterpret_cast<uint32 *>(GetOutputSignalMemory(6));
|
outputRFONTime = reinterpret_cast<uint32 *>(GetOutputSignalMemory(6));
|
||||||
shotCounter = reinterpret_cast<uint32 *>(GetOutputSignalMemory(7));
|
shotCounter = reinterpret_cast<uint32 *>(GetOutputSignalMemory(7));
|
||||||
|
|
||||||
outputAPSHVON = reinterpret_cast<uint32 *>(GetOutputSignalMemory(8));
|
outputAPSHVON = reinterpret_cast<uint8 *>(GetOutputSignalMemory(8));
|
||||||
outputAPSSWON = reinterpret_cast<uint32 *>(GetOutputSignalMemory(9));
|
outputAPSSWON = reinterpret_cast<uint8 *>(GetOutputSignalMemory(9));
|
||||||
outputBPSHVON = reinterpret_cast<uint32 *>(GetOutputSignalMemory(10));
|
outputBPSHVON = reinterpret_cast<uint8 *>(GetOutputSignalMemory(10));
|
||||||
outputBPSSWON = reinterpret_cast<uint32 *>(GetOutputSignalMemory(11));
|
outputBPSSWON = reinterpret_cast<uint8 *>(GetOutputSignalMemory(11));
|
||||||
outputMHVPSON = reinterpret_cast<uint32 *>(GetOutputSignalMemory(12));
|
outputMHVPSON = reinterpret_cast<uint8 *>(GetOutputSignalMemory(12));
|
||||||
|
|
||||||
outputSignalNI6259 = reinterpret_cast<uint32 *>(GetOutputSignalMemory(13));
|
outputSignalNI6259 = reinterpret_cast<uint32 *>(GetOutputSignalMemory(13));
|
||||||
outputSignalNI6528P3 = reinterpret_cast<uint8 *>(GetOutputSignalMemory(14));
|
|
||||||
outputSignalNI6528P4 = reinterpret_cast<uint8 *>(GetOutputSignalMemory(15));
|
|
||||||
|
|
||||||
*shotCounter = 0;
|
*shotCounter = 0;
|
||||||
}
|
}
|
||||||
@@ -389,20 +388,9 @@ bool JARTStateMachineGAM::Execute() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(*short_pulse_mode == 1){
|
if(*short_pulse_mode == 1){
|
||||||
p3Value = 1*aps_hvon_state + 8*bps_hvon_state +16*bps_swon_state + 64*(*outputBeamON);
|
p3Value = aps_hvon_state + 8*bps_hvon_state +16*bps_swon_state + 64*(*outputBeamON);
|
||||||
*outputSignalNI6259 = 1*aps_swon_state;
|
*outputSignalNI6259 = aps_swon_state;
|
||||||
*outputSignalNI6528P3 = ~p3Value;
|
|
||||||
//REPORT_ERROR(ErrorManagement::Debug, "short pulse mode with p3: %d.", p3Value);
|
|
||||||
} else {
|
|
||||||
p3Value = 1*aps_hvon_state +2*aps_swon_state + 8*bps_hvon_state +16*bps_swon_state + 64*(*outputBeamON);
|
|
||||||
*outputSignalNI6528P3 = ~p3Value;
|
|
||||||
//REPORT_ERROR(ErrorManagement::Debug, "long pulse mode with p3: %d.", p3Value);
|
|
||||||
}
|
}
|
||||||
p4Value = 8*mhvps_hvon_state;
|
|
||||||
if (modulation) p4Value += 32;
|
|
||||||
if (pauseSet) p4Value += 1;
|
|
||||||
//*outputSignalNI6528P4 = ~(*ni6528p4Value | p4Value);
|
|
||||||
*outputSignalNI6528P4 = ~p4Value;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
/* Project header includes */
|
/* Project header includes */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "Architecture/x86_gcc/CompilerTypes.h"
|
||||||
#include "GAM.h"
|
#include "GAM.h"
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
@@ -174,7 +175,7 @@ private:
|
|||||||
MARTe::uint32 bps_swon;
|
MARTe::uint32 bps_swon;
|
||||||
|
|
||||||
//The trigger signal (PLC_ON)
|
//The trigger signal (PLC_ON)
|
||||||
MARTe::uint32 *triggerSignal;
|
MARTe::uint8 *triggerSignal;
|
||||||
|
|
||||||
//Time signal
|
//Time signal
|
||||||
MARTe::uint32 *currentTime;
|
MARTe::uint32 *currentTime;
|
||||||
@@ -188,24 +189,24 @@ private:
|
|||||||
MARTe::uint32 *triggerDelay_shotlen;
|
MARTe::uint32 *triggerDelay_shotlen;
|
||||||
|
|
||||||
// Input signal for sequence stop request.
|
// Input signal for sequence stop request.
|
||||||
MARTe::uint32 *stopRequest;
|
MARTe::uint8 *stopRequest;
|
||||||
// Input signal for pulse length limit by mode.
|
// Input signal for pulse length limit by mode.
|
||||||
MARTe::uint32 *modePulseLengthLimit;
|
MARTe::uint32 *modePulseLengthLimit;
|
||||||
// Input signal for short pulse mode.
|
// Input signal for short pulse mode.
|
||||||
MARTe::uint32 *short_pulse_mode;
|
MARTe::uint32 *short_pulse_mode;
|
||||||
// Input signal for modulation pv.
|
// Input signal for modulation pv.
|
||||||
MARTe::uint32 *modulation;
|
MARTe::uint8 *modulation;
|
||||||
// Input signal for pause signal set pv.
|
// Input signal for pause signal set pv.
|
||||||
MARTe::uint32 *pauseSet;
|
MARTe::uint8 *pauseSet;
|
||||||
|
|
||||||
// Output signal to which the output value will be written.
|
// Output signal to which the output value will be written.
|
||||||
// One state write One signal.
|
// One state write One signal.
|
||||||
MARTe::uint32 *outputSignal;
|
MARTe::uint32 *outputSignal;
|
||||||
// state notify output
|
// state notify output
|
||||||
MARTe::uint32 *outputBeamON;
|
MARTe::uint8 *outputBeamON;
|
||||||
MARTe::uint32 *outputHVArmed;
|
MARTe::uint8 *outputHVArmed;
|
||||||
MARTe::uint32 *outputHVInjection;
|
MARTe::uint8 *outputHVInjection;
|
||||||
MARTe::uint32 *outputRFON;
|
MARTe::uint8 *outputRFON;
|
||||||
// elapsed time notify output;
|
// elapsed time notify output;
|
||||||
MARTe::uint32 *outputBeamONTime;
|
MARTe::uint32 *outputBeamONTime;
|
||||||
MARTe::uint32 *outputRFONTime;
|
MARTe::uint32 *outputRFONTime;
|
||||||
@@ -213,16 +214,14 @@ private:
|
|||||||
MARTe::uint32 *shotCounter;
|
MARTe::uint32 *shotCounter;
|
||||||
|
|
||||||
// Added for HVPS state (20201117)
|
// Added for HVPS state (20201117)
|
||||||
MARTe::uint32 *outputAPSHVON;
|
MARTe::uint8 *outputAPSHVON;
|
||||||
MARTe::uint32 *outputAPSSWON;
|
MARTe::uint8 *outputAPSSWON;
|
||||||
MARTe::uint32 *outputBPSHVON;
|
MARTe::uint8 *outputBPSHVON;
|
||||||
MARTe::uint32 *outputBPSSWON;
|
MARTe::uint8 *outputBPSSWON;
|
||||||
MARTe::uint32 *outputMHVPSON;
|
MARTe::uint8 *outputMHVPSON;
|
||||||
|
|
||||||
// Output signals for NI devices
|
// Output signals for NI devices
|
||||||
MARTe::uint32 *outputSignalNI6259;
|
MARTe::uint32 *outputSignalNI6259;
|
||||||
MARTe::uint8 *outputSignalNI6528P3;
|
|
||||||
MARTe::uint8 *outputSignalNI6528P4;
|
|
||||||
|
|
||||||
//////////////////////////////
|
//////////////////////////////
|
||||||
//Internal Parameters
|
//Internal Parameters
|
||||||
@@ -246,7 +245,6 @@ private:
|
|||||||
|
|
||||||
// terminal values
|
// terminal values
|
||||||
MARTe::uint8 p3Value;
|
MARTe::uint8 p3Value;
|
||||||
MARTe::uint8 p4Value;
|
|
||||||
MARTe::uint8 aps_hvon_state;
|
MARTe::uint8 aps_hvon_state;
|
||||||
MARTe::uint8 aps_swon_state;
|
MARTe::uint8 aps_swon_state;
|
||||||
MARTe::uint8 mhvps_hvon_state;
|
MARTe::uint8 mhvps_hvon_state;
|
||||||
|
|||||||
@@ -41,255 +41,253 @@
|
|||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
JARampupGAM::JARampupGAM() : GAM() {
|
JARampupGAM::JARampupGAM() : GAM() {
|
||||||
current_setpoint = NULL_PTR(MARTe::float32 *);
|
target_value = NULL_PTR(MARTe::float32 *);
|
||||||
target_value = NULL_PTR(MARTe::float32 *);
|
rampup_time = NULL_PTR(MARTe::float32 *);
|
||||||
rampup_time = NULL_PTR(MARTe::float32 *);
|
start = NULL_PTR(MARTe::uint32 *);
|
||||||
start = NULL_PTR(MARTe::uint32 *);
|
standby = NULL_PTR(MARTe::uint8 *);
|
||||||
standby = NULL_PTR(MARTe::uint32 *);
|
isAuto = NULL_PTR(MARTe::uint32 *);
|
||||||
isAuto = NULL_PTR(MARTe::uint32 *);
|
FHPS_PrePro = NULL_PTR(MARTe::float32 *);
|
||||||
FHPS_PrePro = NULL_PTR(MARTe::float32 *);
|
|
||||||
|
|
||||||
output = NULL_PTR(MARTe::float32 *);
|
output = NULL_PTR(MARTe::float32 *);
|
||||||
state = NULL_PTR(MARTe::uint32 *);
|
state = NULL_PTR(MARTe::uint32 *);
|
||||||
|
|
||||||
rampup_rate = 0.0f;
|
rampup_rate = 0.0f;
|
||||||
inRampup = false;
|
inRampup = false;
|
||||||
resetFlag = true;
|
resetFlag = true;
|
||||||
inWaitHVON = false;
|
inWaitHVON = false;
|
||||||
inWaitStandby = false;
|
inWaitStandby = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
JARampupGAM::~JARampupGAM() {
|
JARampupGAM::~JARampupGAM() {}
|
||||||
}
|
|
||||||
|
|
||||||
bool JARampupGAM::Initialise(MARTe::StructuredDataI & data) {
|
bool JARampupGAM::Initialise(MARTe::StructuredDataI &data) {
|
||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
return GAM::Initialise(data);
|
return GAM::Initialise(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JARampupGAM::Setup() {
|
bool JARampupGAM::Setup() {
|
||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
bool ok = (numberOfInputSignals == 7u);
|
bool ok = (numberOfInputSignals == 6u);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
ok = (numberOfOutputSignals == 2u);
|
ok = (numberOfOutputSignals == 2u);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Two output signals shall be defined.");
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
}
|
"Two output signals shall be defined.");
|
||||||
}
|
}
|
||||||
else {
|
} else {
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Six input signals shall be defined.");
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
}
|
"Six input signals shall be defined.");
|
||||||
uint32 currentspvIndex;
|
}
|
||||||
uint32 targetvIndex;
|
uint32 currentspvIndex;
|
||||||
uint32 timeIndex;
|
uint32 targetvIndex;
|
||||||
uint32 startIndex;
|
uint32 timeIndex;
|
||||||
uint32 standbyIndex;
|
uint32 startIndex;
|
||||||
uint32 isAutoIndex;
|
uint32 standbyIndex;
|
||||||
uint32 fhpsPreProIndex;
|
uint32 isAutoIndex;
|
||||||
|
uint32 fhpsPreProIndex;
|
||||||
|
|
||||||
if (ok) {
|
if (ok) {
|
||||||
StreamString signalName = "Currspv";
|
StreamString signalName = "Targetv";
|
||||||
ok = GetSignalIndex(InputSignals, currentspvIndex, signalName.Buffer());
|
ok = GetSignalIndex(InputSignals, targetvIndex, signalName.Buffer());
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Currspv input signal shall be defined.");
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
}
|
"Targetv input signal shall be defined.");
|
||||||
else {
|
} else {
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, currentspvIndex);
|
TypeDescriptor inputType = GetSignalType(InputSignals, targetvIndex);
|
||||||
ok = (inputType == Float32Bit);
|
ok = (inputType == Float32Bit);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Signal Currspv shall be defined as float32.");
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
}
|
"Signal Targetv shall be defined as float32.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ok) {
|
}
|
||||||
StreamString signalName = "Targetv";
|
if (ok) {
|
||||||
ok = GetSignalIndex(InputSignals, targetvIndex, signalName.Buffer());
|
StreamString signalName = "Time";
|
||||||
if (!ok) {
|
ok = GetSignalIndex(InputSignals, timeIndex, signalName.Buffer());
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Targetv input signal shall be defined.");
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
else {
|
"Time input signal shall be defined.");
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, targetvIndex);
|
} else {
|
||||||
ok = (inputType == Float32Bit);
|
TypeDescriptor inputType = GetSignalType(InputSignals, timeIndex);
|
||||||
if (!ok) {
|
ok = (inputType == Float32Bit);
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Signal Targetv shall be defined as float32.");
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
}
|
"Signal Time shall be defined as float32.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (ok) {
|
}
|
||||||
StreamString signalName = "Time";
|
if (ok) {
|
||||||
ok = GetSignalIndex(InputSignals, timeIndex, signalName.Buffer());
|
StreamString signalName = "Start";
|
||||||
if (!ok) {
|
ok = GetSignalIndex(InputSignals, startIndex, signalName.Buffer());
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Time input signal shall be defined.");
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
else {
|
"Start input signal shall be defined.");
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, timeIndex);
|
} else {
|
||||||
ok = (inputType == Float32Bit);
|
TypeDescriptor inputType = GetSignalType(InputSignals, startIndex);
|
||||||
if (!ok) {
|
ok = (inputType == UnsignedInteger32Bit);
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Signal Time shall be defined as float32.");
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
}
|
"Start shall be defined as uint32.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (ok) {
|
}
|
||||||
StreamString signalName = "Start";
|
if (ok) {
|
||||||
ok = GetSignalIndex(InputSignals, startIndex, signalName.Buffer());
|
StreamString signalName = "PLC_STANDBY";
|
||||||
if (!ok) {
|
ok = GetSignalIndex(InputSignals, standbyIndex, signalName.Buffer());
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Start input signal shall be defined.");
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
else {
|
"PLC_STANDBY input signal shall be defined.");
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, startIndex);
|
} else {
|
||||||
ok = (inputType == UnsignedInteger32Bit);
|
TypeDescriptor inputType = GetSignalType(InputSignals, standbyIndex);
|
||||||
if (!ok) {
|
ok = (inputType == UnsignedInteger8Bit);
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Start shall be defined as uint32.");
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
}
|
"PLC_STANDBY shall be defined as uint8.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (ok) {
|
}
|
||||||
StreamString signalName = "PLC_STANDBY";
|
if (ok) {
|
||||||
ok = GetSignalIndex(InputSignals, standbyIndex, signalName.Buffer());
|
StreamString signalName = "MANUAL_AUTO";
|
||||||
if (!ok) {
|
ok = GetSignalIndex(InputSignals, isAutoIndex, signalName.Buffer());
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "PLC_STANDBY input signal shall be defined.");
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
else {
|
"MANUAL_AUTO input signal shall be defined.");
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, standbyIndex);
|
} else {
|
||||||
ok = (inputType == UnsignedInteger32Bit);
|
TypeDescriptor inputType = GetSignalType(InputSignals, isAutoIndex);
|
||||||
if (!ok) {
|
ok = (inputType == UnsignedInteger32Bit);
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "PLC_STANDBY shall be defined as uint32.");
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
}
|
"MANUAL_AUTO shall be defined as uint32.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (ok) {
|
}
|
||||||
StreamString signalName = "MANUAL_AUTO";
|
if (ok) {
|
||||||
ok = GetSignalIndex(InputSignals, isAutoIndex, signalName.Buffer());
|
StreamString signalName = "FHPS_PrePro";
|
||||||
if (!ok) {
|
ok = GetSignalIndex(InputSignals, fhpsPreProIndex, signalName.Buffer());
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "MANUAL_AUTO input signal shall be defined.");
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
else {
|
"FHPS_PrePro input signal shall be defined.");
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, isAutoIndex);
|
} else {
|
||||||
ok = (inputType == UnsignedInteger32Bit);
|
TypeDescriptor inputType = GetSignalType(InputSignals, fhpsPreProIndex);
|
||||||
if (!ok) {
|
ok = (inputType == Float32Bit);
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "MANUAL_AUTO shall be defined as uint32.");
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
}
|
"Signal FHPS_PrePro shall be defined as float32.");
|
||||||
}
|
}
|
||||||
if (ok) {
|
|
||||||
StreamString signalName = "FHPS_PrePro";
|
|
||||||
ok = GetSignalIndex(InputSignals, fhpsPreProIndex, signalName.Buffer());
|
|
||||||
if (!ok) {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "FHPS_PrePro input signal shall be defined.");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, fhpsPreProIndex);
|
|
||||||
ok = (inputType == Float32Bit);
|
|
||||||
if (!ok) {
|
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Signal FHPS_PrePro shall be defined as float32.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ok) {
|
if (ok) {
|
||||||
TypeDescriptor inputType = GetSignalType(OutputSignals, 0);
|
TypeDescriptor inputType = GetSignalType(OutputSignals, 0);
|
||||||
ok = (inputType == Float32Bit);
|
ok = (inputType == Float32Bit);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Signal Output shall be defined as float32.");
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
}
|
"Signal Output shall be defined as float32.");
|
||||||
}
|
}
|
||||||
if (ok) {
|
}
|
||||||
TypeDescriptor inputType = GetSignalType(OutputSignals, 1);
|
if (ok) {
|
||||||
ok = (inputType == UnsignedInteger32Bit);
|
TypeDescriptor inputType = GetSignalType(OutputSignals, 1);
|
||||||
if (!ok) {
|
ok = (inputType == UnsignedInteger32Bit);
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "Signal state shall be defined as float32.");
|
if (!ok) {
|
||||||
}
|
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||||
|
"Signal state shall be defined as float32.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ok) {
|
if (ok) {
|
||||||
current_setpoint = reinterpret_cast<float32 *>(GetInputSignalMemory(currentspvIndex));
|
target_value =
|
||||||
target_value = reinterpret_cast<float32 *>(GetInputSignalMemory(targetvIndex));
|
reinterpret_cast<float32 *>(GetInputSignalMemory(targetvIndex));
|
||||||
rampup_time = reinterpret_cast<float32 *>(GetInputSignalMemory(timeIndex));
|
rampup_time = reinterpret_cast<float32 *>(GetInputSignalMemory(timeIndex));
|
||||||
start = reinterpret_cast<uint32 *>(GetInputSignalMemory(startIndex));
|
start = reinterpret_cast<uint32 *>(GetInputSignalMemory(startIndex));
|
||||||
standby = reinterpret_cast<uint32 *>(GetInputSignalMemory(standbyIndex));
|
standby = reinterpret_cast<uint8 *>(GetInputSignalMemory(standbyIndex));
|
||||||
isAuto = reinterpret_cast<uint32 *>(GetInputSignalMemory(isAutoIndex));
|
isAuto = reinterpret_cast<uint32 *>(GetInputSignalMemory(isAutoIndex));
|
||||||
FHPS_PrePro = reinterpret_cast<float32 *>(GetInputSignalMemory(fhpsPreProIndex));
|
FHPS_PrePro =
|
||||||
|
reinterpret_cast<float32 *>(GetInputSignalMemory(fhpsPreProIndex));
|
||||||
output = reinterpret_cast<float32 *>(GetOutputSignalMemory(0));
|
|
||||||
state = reinterpret_cast<uint32 *>(GetOutputSignalMemory(1));
|
output = reinterpret_cast<float32 *>(GetOutputSignalMemory(0));
|
||||||
}
|
state = reinterpret_cast<uint32 *>(GetOutputSignalMemory(1));
|
||||||
return ok;
|
}
|
||||||
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JARampupGAM::PrepareNextState(const MARTe::char8 * const currentStateName, const MARTe::char8 * const nextStateName){
|
bool JARampupGAM::PrepareNextState(const MARTe::char8 *const currentStateName,
|
||||||
if(strcmp(nextStateName, "WaitHVON_PREP")==0 || strcmp(nextStateName, "WaitHVON_SDN_PREP")==0 ||
|
const MARTe::char8 *const nextStateName) {
|
||||||
strcmp(nextStateName, "WaitHVON")==0 || strcmp(nextStateName, "WaitHVON_SDN")==0){
|
if (strcmp(nextStateName, "WaitHVON_PREP") == 0 ||
|
||||||
inWaitHVON = true;
|
strcmp(nextStateName, "WaitHVON_SDN_PREP") == 0 ||
|
||||||
inWaitStandby = false;
|
strcmp(nextStateName, "WaitHVON") == 0 ||
|
||||||
} else{
|
strcmp(nextStateName, "WaitHVON_SDN") == 0) {
|
||||||
inWaitHVON = false;
|
inWaitHVON = true;
|
||||||
if(strcmp(nextStateName,"WaitStandby")==0 ){
|
inWaitStandby = false;
|
||||||
inWaitStandby = true;
|
} else {
|
||||||
} else {
|
inWaitHVON = false;
|
||||||
inWaitStandby = false;
|
if (strcmp(nextStateName, "WaitStandby") == 0) {
|
||||||
}
|
inWaitStandby = true;
|
||||||
|
} else {
|
||||||
|
inWaitStandby = false;
|
||||||
}
|
}
|
||||||
return true;
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JARampupGAM::Execute() {
|
bool JARampupGAM::Execute() {
|
||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
if(!inWaitHVON){
|
float32 current_setpoint = *output;
|
||||||
if (*target_value <= 0.0f || *standby == 0u) {
|
if (!inWaitHVON) {
|
||||||
*output = 0.0f;
|
if (*target_value <= 0.0f || *standby == 0u) {
|
||||||
rampup_rate = 0.0f;
|
*output = 0.0f;
|
||||||
if(*target_value <= 0.0f){
|
rampup_rate = 0.0f;
|
||||||
*state = 3u;
|
if (*target_value <= 0.0f) {
|
||||||
} else {
|
*state = 3u;
|
||||||
*state = 0u;
|
} else {
|
||||||
}
|
*state = 0u;
|
||||||
return true;
|
}
|
||||||
}
|
return true;
|
||||||
|
|
||||||
if(*start == 1u && *isAuto==0u){ //isAuto = 1.Manual, 0.auto-rampup.
|
|
||||||
inRampup = true;
|
|
||||||
resetFlag = true;
|
|
||||||
*output = 0.0f; //Enable if it should start always zero.
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calcrate new rampup rate.
|
|
||||||
if(*rampup_time != 0 && resetFlag == true){
|
|
||||||
rampup_rate = (*target_value - *current_setpoint) / *rampup_time/1000.0f; // Volt/msec
|
|
||||||
resetFlag = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update Parameter
|
|
||||||
if(*standby == 1u ){
|
|
||||||
if(*isAuto == 1u){
|
|
||||||
if (inWaitStandby){
|
|
||||||
*output = *target_value;
|
|
||||||
} else{
|
|
||||||
*output = *FHPS_PrePro;
|
|
||||||
}
|
|
||||||
//*output = *target_value;
|
|
||||||
*state = 0u;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else if (inRampup){
|
|
||||||
if (*output + rampup_rate < *target_value && *rampup_time != 0){
|
|
||||||
*output = *output + rampup_rate;
|
|
||||||
*state = 1u;
|
|
||||||
} else {
|
|
||||||
*output = *target_value;
|
|
||||||
*state = 2u;
|
|
||||||
inRampup = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
if(*isAuto == 0){
|
|
||||||
*output = *FHPS_PrePro;
|
|
||||||
} else{
|
|
||||||
*output = *target_value;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (*start == 1u && *isAuto == 0u) { // isAuto = 1.Manual, 0.auto-rampup.
|
||||||
|
inRampup = true;
|
||||||
|
resetFlag = true;
|
||||||
|
*output = 0.0f; // Enable if it should start always zero.
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calcrate new rampup rate.
|
||||||
|
if (*rampup_time != 0 && resetFlag == true) {
|
||||||
|
rampup_rate = (*target_value - current_setpoint) / *rampup_time /
|
||||||
|
1000.0f; // Volt/msec
|
||||||
|
resetFlag = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update Parameter
|
||||||
|
if (*standby == 1u) {
|
||||||
|
if (*isAuto == 1u) {
|
||||||
|
if (inWaitStandby) {
|
||||||
|
*output = *target_value;
|
||||||
|
} else {
|
||||||
|
*output = *FHPS_PrePro;
|
||||||
|
}
|
||||||
|
//*output = *target_value;
|
||||||
|
*state = 0u;
|
||||||
|
return true;
|
||||||
|
} else if (inRampup) {
|
||||||
|
if (*output + rampup_rate < *target_value && *rampup_time != 0) {
|
||||||
|
*output = *output + rampup_rate;
|
||||||
|
*state = 1u;
|
||||||
|
} else {
|
||||||
|
*output = *target_value;
|
||||||
|
*state = 2u;
|
||||||
|
inRampup = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
if (*isAuto == 0) {
|
||||||
|
*output = *FHPS_PrePro;
|
||||||
|
} else {
|
||||||
|
*output = *target_value;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CLASS_REGISTER(JARampupGAM, "1.0")
|
CLASS_REGISTER(JARampupGAM, "1.0")
|
||||||
|
|||||||
@@ -97,8 +97,6 @@ public:
|
|||||||
const MARTe::char8 * const nextStateName);
|
const MARTe::char8 * const nextStateName);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Input signal containing current current_setpoint
|
|
||||||
MARTe::float32 *current_setpoint;
|
|
||||||
|
|
||||||
// Input signal containing the frequency of the waveform.
|
// Input signal containing the frequency of the waveform.
|
||||||
MARTe::float32 *target_value;
|
MARTe::float32 *target_value;
|
||||||
@@ -110,7 +108,7 @@ private:
|
|||||||
MARTe::uint32 *start;
|
MARTe::uint32 *start;
|
||||||
|
|
||||||
// Input signal PLC_STANDBY
|
// Input signal PLC_STANDBY
|
||||||
MARTe::uint32 *standby;
|
MARTe::uint8 *standby;
|
||||||
|
|
||||||
// MANUAL AUTO button
|
// MANUAL AUTO button
|
||||||
MARTe::uint32 *isAuto;
|
MARTe::uint32 *isAuto;
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
#include "JASDNRTStateMachineGAM.h"
|
#include "JASDNRTStateMachineGAM.h"
|
||||||
|
|
||||||
#include "AdvancedErrorManagement.h"
|
#include "AdvancedErrorManagement.h"
|
||||||
|
#include "TypeDescriptor.h"
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/* Static definitions */
|
/* Static definitions */
|
||||||
@@ -54,7 +55,7 @@ JASDNRTStateMachineGAM::JASDNRTStateMachineGAM() {
|
|||||||
mhvps_hvon = 0;
|
mhvps_hvon = 0;
|
||||||
|
|
||||||
// Parameters which get from Input signals.
|
// Parameters which get from Input signals.
|
||||||
triggerSignal = NULL_PTR(MARTe::uint32 *);
|
triggerSignal = NULL_PTR(MARTe::uint8 *);
|
||||||
currentTime = NULL_PTR(MARTe::uint32 *);
|
currentTime = NULL_PTR(MARTe::uint32 *);
|
||||||
triggerDelay_mhvps_hvon = NULL_PTR(MARTe::uint32 *);
|
triggerDelay_mhvps_hvon = NULL_PTR(MARTe::uint32 *);
|
||||||
triggerDelay_aps_hvon = NULL_PTR(MARTe::uint32 *);
|
triggerDelay_aps_hvon = NULL_PTR(MARTe::uint32 *);
|
||||||
@@ -62,16 +63,16 @@ JASDNRTStateMachineGAM::JASDNRTStateMachineGAM() {
|
|||||||
triggerDelay_bps_hvon = NULL_PTR(MARTe::uint32 *);
|
triggerDelay_bps_hvon = NULL_PTR(MARTe::uint32 *);
|
||||||
triggerDelay_bps_swon = NULL_PTR(MARTe::uint32 *);
|
triggerDelay_bps_swon = NULL_PTR(MARTe::uint32 *);
|
||||||
triggerDelay_shotlen = NULL_PTR(MARTe::uint32 *);
|
triggerDelay_shotlen = NULL_PTR(MARTe::uint32 *);
|
||||||
stopRequest = NULL_PTR(MARTe::uint32 *);
|
stopRequest = NULL_PTR(MARTe::uint8 *);
|
||||||
modePulseLengthLimit = NULL_PTR(MARTe::uint32 *);
|
modePulseLengthLimit = NULL_PTR(MARTe::uint32 *);
|
||||||
sdnCommand = NULL_PTR(MARTe::uint16 *);
|
sdnCommand = NULL_PTR(MARTe::uint16 *);
|
||||||
|
|
||||||
// write out target.
|
// write out target.
|
||||||
outputSignal = NULL_PTR(MARTe::uint32 *);
|
outputSignal = NULL_PTR(MARTe::uint32 *);
|
||||||
outputBeamON = NULL_PTR(MARTe::uint32 *);
|
outputBeamON = NULL_PTR(MARTe::uint8 *);
|
||||||
outputHVArmed = NULL_PTR(MARTe::uint32 *);
|
outputHVArmed = NULL_PTR(MARTe::uint8 *);
|
||||||
outputHVInjection = NULL_PTR(MARTe::uint32 *);
|
outputHVInjection = NULL_PTR(MARTe::uint8 *);
|
||||||
outputRFON = NULL_PTR(MARTe::uint32 *);
|
outputRFON = NULL_PTR(MARTe::uint8 *);
|
||||||
outputBeamONTime = NULL_PTR(MARTe::uint32 *);
|
outputBeamONTime = NULL_PTR(MARTe::uint32 *);
|
||||||
outputRFONTime = NULL_PTR(MARTe::uint32 *);
|
outputRFONTime = NULL_PTR(MARTe::uint32 *);
|
||||||
shotCounter = NULL_PTR(MARTe::uint32 *);
|
shotCounter = NULL_PTR(MARTe::uint32 *);
|
||||||
@@ -149,7 +150,7 @@ bool JASDNRTStateMachineGAM::Setup() {
|
|||||||
uint32 c;
|
uint32 c;
|
||||||
for (c = 0u; c < numberOfInputSignals; c++) {
|
for (c = 0u; c < numberOfInputSignals; c++) {
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, c);
|
TypeDescriptor inputType = GetSignalType(InputSignals, c);
|
||||||
ok = (inputType == UnsignedInteger32Bit || inputType == UnsignedInteger16Bit);
|
ok = (inputType == UnsignedInteger32Bit || inputType == UnsignedInteger16Bit || inputType == UnsignedInteger8Bit);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
StreamString signalName;
|
StreamString signalName;
|
||||||
(void) GetSignalName(InputSignals, c, signalName);
|
(void) GetSignalName(InputSignals, c, signalName);
|
||||||
@@ -162,7 +163,7 @@ bool JASDNRTStateMachineGAM::Setup() {
|
|||||||
uint32 c;
|
uint32 c;
|
||||||
for (c = 0u; c < numberOfOutputSignals; c++) {
|
for (c = 0u; c < numberOfOutputSignals; c++) {
|
||||||
TypeDescriptor outputType = GetSignalType(OutputSignals, c);
|
TypeDescriptor outputType = GetSignalType(OutputSignals, c);
|
||||||
ok = (outputType == UnsignedInteger32Bit);
|
ok = (outputType == UnsignedInteger32Bit || outputType == UnsignedInteger8Bit);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
StreamString signalName;
|
StreamString signalName;
|
||||||
(void) GetSignalName(InputSignals, c, signalName);
|
(void) GetSignalName(InputSignals, c, signalName);
|
||||||
@@ -172,22 +173,22 @@ bool JASDNRTStateMachineGAM::Setup() {
|
|||||||
}
|
}
|
||||||
if (ok) {
|
if (ok) {
|
||||||
currentTime = reinterpret_cast<uint32 *>(GetInputSignalMemory(0));
|
currentTime = reinterpret_cast<uint32 *>(GetInputSignalMemory(0));
|
||||||
triggerSignal = reinterpret_cast<uint32 *>(GetInputSignalMemory(1));
|
triggerSignal = reinterpret_cast<uint8 *>(GetInputSignalMemory(1));
|
||||||
triggerDelay_mhvps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(2));
|
triggerDelay_mhvps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(2));
|
||||||
triggerDelay_aps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(3));
|
triggerDelay_aps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(3));
|
||||||
triggerDelay_aps_swon = reinterpret_cast<uint32 *>(GetInputSignalMemory(4));
|
triggerDelay_aps_swon = reinterpret_cast<uint32 *>(GetInputSignalMemory(4));
|
||||||
triggerDelay_bps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(5));
|
triggerDelay_bps_hvon = reinterpret_cast<uint32 *>(GetInputSignalMemory(5));
|
||||||
triggerDelay_bps_swon = reinterpret_cast<uint32 *>(GetInputSignalMemory(6));
|
triggerDelay_bps_swon = reinterpret_cast<uint32 *>(GetInputSignalMemory(6));
|
||||||
triggerDelay_shotlen = reinterpret_cast<uint32 *>(GetInputSignalMemory(7));
|
triggerDelay_shotlen = reinterpret_cast<uint32 *>(GetInputSignalMemory(7));
|
||||||
stopRequest = reinterpret_cast<uint32 *>(GetInputSignalMemory(8));
|
stopRequest = reinterpret_cast<uint8 *>(GetInputSignalMemory(8));
|
||||||
modePulseLengthLimit = reinterpret_cast<uint32 *>(GetInputSignalMemory(9));
|
modePulseLengthLimit = reinterpret_cast<uint32 *>(GetInputSignalMemory(9));
|
||||||
sdnCommand = reinterpret_cast<uint16 *>(GetInputSignalMemory(10));
|
sdnCommand = reinterpret_cast<uint16 *>(GetInputSignalMemory(10));
|
||||||
|
|
||||||
outputSignal = reinterpret_cast<uint32 *>(GetOutputSignalMemory(0));
|
outputSignal = reinterpret_cast<uint32 *>(GetOutputSignalMemory(0));
|
||||||
outputBeamON = reinterpret_cast<uint32 *>(GetOutputSignalMemory(1));
|
outputBeamON = reinterpret_cast<uint8 *>(GetOutputSignalMemory(1));
|
||||||
outputHVArmed = reinterpret_cast<uint32 *>(GetOutputSignalMemory(2));
|
outputHVArmed = reinterpret_cast<uint8 *>(GetOutputSignalMemory(2));
|
||||||
outputHVInjection = reinterpret_cast<uint32 *>(GetOutputSignalMemory(3));
|
outputHVInjection = reinterpret_cast<uint8 *>(GetOutputSignalMemory(3));
|
||||||
outputRFON = reinterpret_cast<uint32 *>(GetOutputSignalMemory(4));
|
outputRFON = reinterpret_cast<uint8 *>(GetOutputSignalMemory(4));
|
||||||
outputBeamONTime = reinterpret_cast<uint32 *>(GetOutputSignalMemory(5));
|
outputBeamONTime = reinterpret_cast<uint32 *>(GetOutputSignalMemory(5));
|
||||||
outputRFONTime = reinterpret_cast<uint32 *>(GetOutputSignalMemory(6));
|
outputRFONTime = reinterpret_cast<uint32 *>(GetOutputSignalMemory(6));
|
||||||
shotCounter = reinterpret_cast<uint32 *>(GetOutputSignalMemory(7));
|
shotCounter = reinterpret_cast<uint32 *>(GetOutputSignalMemory(7));
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
* basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
* basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||||
* or implied. See the Licence permissions and limitations under the Licence.
|
* or implied. See the Licence permissions and limitations under the Licence.
|
||||||
|
|
||||||
* @details This header file contains the declaration of the class JARTStateMachineGAM
|
* @details This header file contains the declaration of the class
|
||||||
|
JARTStateMachineGAM
|
||||||
* with all of its public, protected and private members. It may also include
|
* with all of its public, protected and private members. It may also include
|
||||||
* definitions for inline methods which need to be visible to the compiler.
|
* definitions for inline methods which need to be visible to the compiler.
|
||||||
*/
|
*/
|
||||||
@@ -41,13 +42,9 @@
|
|||||||
/**
|
/**
|
||||||
* @brief GAM provides real-time state machine that communicate with SDN packet.
|
* @brief GAM provides real-time state machine that communicate with SDN packet.
|
||||||
*
|
*
|
||||||
* The configuration syntax is (names and signal quantity are only given as an example):
|
* The configuration syntax is (names and signal quantity are only given as an
|
||||||
* <pre>
|
* example): <pre> +GAMSDNRealTimeStateMachine = { Class =
|
||||||
* +GAMSDNRealTimeStateMachine = {
|
* JASDNRTStateMachineGAM ConditionTrigger = 1 mhvps_hvon = 4 aps_hvon = 1
|
||||||
* Class = JASDNRTStateMachineGAM
|
|
||||||
* ConditionTrigger = 1
|
|
||||||
* mhvps_hvon = 4
|
|
||||||
* aps_hvon = 1
|
|
||||||
* aps_swon = 16
|
* aps_swon = 16
|
||||||
* bps_hvon = 2
|
* bps_hvon = 2
|
||||||
* bps_swon = 8
|
* bps_swon = 8
|
||||||
@@ -135,114 +132,111 @@
|
|||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class JASDNRTStateMachineGAM : public MARTe::GAM, public MARTe::StatefulI {
|
class JASDNRTStateMachineGAM : public MARTe::GAM, public MARTe::StatefulI {
|
||||||
public:
|
public:
|
||||||
CLASS_REGISTER_DECLARATION()
|
CLASS_REGISTER_DECLARATION()
|
||||||
|
|
||||||
JASDNRTStateMachineGAM();
|
JASDNRTStateMachineGAM();
|
||||||
|
|
||||||
virtual ~JASDNRTStateMachineGAM();
|
virtual ~JASDNRTStateMachineGAM();
|
||||||
|
|
||||||
virtual bool Initialise(MARTe::StructuredDataI & data);
|
virtual bool Initialise(MARTe::StructuredDataI &data);
|
||||||
|
|
||||||
virtual bool Setup();
|
virtual bool Setup();
|
||||||
|
|
||||||
virtual bool Execute();
|
virtual bool Execute();
|
||||||
|
|
||||||
virtual bool PrepareNextState(const MARTe::char8 * const currentStateName,
|
virtual bool PrepareNextState(const MARTe::char8 *const currentStateName,
|
||||||
const MARTe::char8 * const nextStateName);
|
const MARTe::char8 *const nextStateName);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//The list of possible states
|
// The list of possible states
|
||||||
enum JARealTimeState {
|
enum JARealTimeState {
|
||||||
WaitTrigger = 0,
|
WaitTrigger = 0,
|
||||||
SwitchingHVPS_HVON = 1,
|
SwitchingHVPS_HVON = 1,
|
||||||
WaitSDNTrigger = 2,
|
WaitSDNTrigger = 2,
|
||||||
SwitchingHVPS_SWON = 3,
|
SwitchingHVPS_SWON = 3,
|
||||||
RFON = 4,
|
RFON = 4,
|
||||||
HVTerminate = 5
|
HVTerminate = 5
|
||||||
};
|
};
|
||||||
|
|
||||||
//The current rtState
|
// The current rtState
|
||||||
JARealTimeState currentState;
|
JARealTimeState currentState;
|
||||||
|
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
// Static parameter given by cfg File
|
// Static parameter given by cfg File
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
//A given condition
|
// A given condition
|
||||||
MARTe::uint32 conditionTrigger;
|
MARTe::uint32 conditionTrigger;
|
||||||
//What to output in a given state and condition
|
// What to output in a given state and condition
|
||||||
MARTe::uint32 mhvps_hvon;
|
MARTe::uint32 mhvps_hvon;
|
||||||
MARTe::uint32 aps_hvon;
|
MARTe::uint32 aps_hvon;
|
||||||
MARTe::uint32 aps_swon;
|
MARTe::uint32 aps_swon;
|
||||||
MARTe::uint32 bps_hvon;
|
MARTe::uint32 bps_hvon;
|
||||||
MARTe::uint32 bps_swon;
|
MARTe::uint32 bps_swon;
|
||||||
|
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
// Input signals
|
// Input signals
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
//The trigger signal (PLC_ON)
|
// The trigger signal (PLC_ON)
|
||||||
MARTe::uint32 *triggerSignal;
|
MARTe::uint8 *triggerSignal;
|
||||||
//Time signal (Time from TimerGAM)
|
// Time signal (Time from TimerGAM)
|
||||||
MARTe::uint32 *currentTime;
|
MARTe::uint32 *currentTime;
|
||||||
// Input signals for trigger delay parameters
|
// Input signals for trigger delay parameters
|
||||||
MARTe::uint32 *triggerDelay_mhvps_hvon;
|
MARTe::uint32 *triggerDelay_mhvps_hvon;
|
||||||
MARTe::uint32 *triggerDelay_aps_hvon;
|
MARTe::uint32 *triggerDelay_aps_hvon;
|
||||||
MARTe::uint32 *triggerDelay_aps_swon;
|
MARTe::uint32 *triggerDelay_aps_swon;
|
||||||
MARTe::uint32 *triggerDelay_bps_hvon;
|
MARTe::uint32 *triggerDelay_bps_hvon;
|
||||||
MARTe::uint32 *triggerDelay_bps_swon;
|
MARTe::uint32 *triggerDelay_bps_swon;
|
||||||
MARTe::uint32 *triggerDelay_shotlen;
|
MARTe::uint32 *triggerDelay_shotlen;
|
||||||
// Input signal for sequence stop request.
|
// Input signal for sequence stop request.
|
||||||
MARTe::uint32 *stopRequest;
|
MARTe::uint8 *stopRequest;
|
||||||
// Input signal for pulse length limit by mode.
|
// Input signal for pulse length limit by mode.
|
||||||
MARTe::uint32 *modePulseLengthLimit;
|
MARTe::uint32 *modePulseLengthLimit;
|
||||||
// Input signal for SDN commands.
|
// Input signal for SDN commands.
|
||||||
MARTe::uint16 *sdnCommand;
|
MARTe::uint16 *sdnCommand;
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////
|
||||||
// Output signal to which the output value will be written.
|
// Output signal to which the output value will be written.
|
||||||
/////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////
|
||||||
// One state write One signal.
|
// One state write One signal.
|
||||||
MARTe::uint32 *outputSignal;
|
MARTe::uint32 *outputSignal;
|
||||||
// state notify output
|
// state notify output
|
||||||
MARTe::uint32 *outputBeamON;
|
MARTe::uint8 *outputBeamON;
|
||||||
MARTe::uint32 *outputHVArmed;
|
MARTe::uint8 *outputHVArmed;
|
||||||
MARTe::uint32 *outputHVInjection;
|
MARTe::uint8 *outputHVInjection;
|
||||||
MARTe::uint32 *outputRFON;
|
MARTe::uint8 *outputRFON;
|
||||||
// elapsed time notify output;
|
// elapsed time notify output;
|
||||||
MARTe::uint32 *outputBeamONTime;
|
MARTe::uint32 *outputBeamONTime;
|
||||||
MARTe::uint32 *outputRFONTime;
|
MARTe::uint32 *outputRFONTime;
|
||||||
// shot counter (coutup every RFON time.)
|
// shot counter (coutup every RFON time.)
|
||||||
MARTe::uint32 *shotCounter;
|
MARTe::uint32 *shotCounter;
|
||||||
|
|
||||||
//////////////////////////////
|
|
||||||
//Internal Parameters
|
|
||||||
//////////////////////////////
|
|
||||||
//PLC_ON time holder
|
|
||||||
MARTe::uint32 plcOnTime;
|
|
||||||
//APS_SWON time holder
|
|
||||||
MARTe::uint32 apsSwonTime;
|
|
||||||
MARTe::uint32 apsSwoffTime;
|
|
||||||
|
|
||||||
//PS turn off delay
|
//////////////////////////////
|
||||||
MARTe::uint32 turn_off_delay;
|
// Internal Parameters
|
||||||
|
//////////////////////////////
|
||||||
|
// PLC_ON time holder
|
||||||
|
MARTe::uint32 plcOnTime;
|
||||||
|
// APS_SWON time holder
|
||||||
|
MARTe::uint32 apsSwonTime;
|
||||||
|
MARTe::uint32 apsSwoffTime;
|
||||||
|
|
||||||
//SDN trigger command arrival time.
|
// PS turn off delay
|
||||||
MARTe::uint32 sdnTriggerTime;
|
MARTe::uint32 turn_off_delay;
|
||||||
//HVPS state holder
|
|
||||||
bool mhvps_hvon_is_on;
|
|
||||||
bool aps_hvon_is_on;
|
|
||||||
bool aps_swon_is_on;
|
|
||||||
bool bps_hvon_is_on;
|
|
||||||
bool bps_swon_is_on;
|
|
||||||
|
|
||||||
|
// SDN trigger command arrival time.
|
||||||
|
MARTe::uint32 sdnTriggerTime;
|
||||||
|
// HVPS state holder
|
||||||
|
bool mhvps_hvon_is_on;
|
||||||
|
bool aps_hvon_is_on;
|
||||||
|
bool aps_swon_is_on;
|
||||||
|
bool bps_hvon_is_on;
|
||||||
|
bool bps_swon_is_on;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/* Inline method definitions */
|
/* Inline method definitions */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* @file JASourceChoiseGAM.cpp
|
* @file JASourceChoiceGAM.cpp
|
||||||
* @brief Source file for class JASourceChoiseGAM
|
* @brief Source file for class JASourceChoiceGAM
|
||||||
* @date Nov 26, 2018
|
* @date Nov 26, 2018
|
||||||
* @author aneto
|
* @author aneto
|
||||||
*
|
*
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
* or implied. See the Licence permissions and limitations under the Licence.
|
* or implied. See the Licence permissions and limitations under the Licence.
|
||||||
|
|
||||||
* @details This source file contains the definition of all the methods for
|
* @details This source file contains the definition of all the methods for
|
||||||
* the class JASourceChoiseGAM (public, protected, and private). Be aware that some
|
* the class JASourceChoiceGAM (public, protected, and private). Be aware that some
|
||||||
* methods, such as those inline could be defined on the header file, instead.
|
* methods, such as those inline could be defined on the header file, instead.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
/* Project header includes */
|
/* Project header includes */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "JASourceChoiseGAM.h"
|
#include "JASourceChoiceGAM.h"
|
||||||
|
|
||||||
#include "AdvancedErrorManagement.h"
|
#include "AdvancedErrorManagement.h"
|
||||||
|
|
||||||
@@ -41,15 +41,15 @@
|
|||||||
/* Method definitions */
|
/* Method definitions */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
JASourceChoiseGAM::JASourceChoiseGAM() {
|
JASourceChoiceGAM::JASourceChoiceGAM() {
|
||||||
// initialize member variables.
|
// initialize member variables.
|
||||||
numberOfPVs = 0;
|
numberOfPVs = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
JASourceChoiseGAM::~JASourceChoiseGAM() {
|
JASourceChoiceGAM::~JASourceChoiceGAM() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JASourceChoiseGAM::Initialise(MARTe::StructuredDataI & data) {
|
bool JASourceChoiceGAM::Initialise(MARTe::StructuredDataI & data) {
|
||||||
//GAM parameters are initialized.
|
//GAM parameters are initialized.
|
||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
bool ok = GAM::Initialise(data);
|
bool ok = GAM::Initialise(data);
|
||||||
@@ -62,12 +62,12 @@ bool JASourceChoiseGAM::Initialise(MARTe::StructuredDataI & data) {
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JASourceChoiseGAM::PrepareNextState(const MARTe::char8 * const currentStateName, const MARTe::char8 * const nextStateName) {
|
bool JASourceChoiceGAM::PrepareNextState(const MARTe::char8 * const currentStateName, const MARTe::char8 * const nextStateName) {
|
||||||
//This method changes internal parameter based on next realtime state.
|
//This method changes internal parameter based on next realtime state.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JASourceChoiseGAM::Setup() {
|
bool JASourceChoiceGAM::Setup() {
|
||||||
// Setup memory for input/output signals on the GAM.
|
// Setup memory for input/output signals on the GAM.
|
||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
bool ok = (numberOfInputSignals == numberOfPVs*3u);
|
bool ok = (numberOfInputSignals == numberOfPVs*3u);
|
||||||
@@ -147,7 +147,7 @@ bool JASourceChoiseGAM::Setup() {
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JASourceChoiseGAM::Execute() {
|
bool JASourceChoiceGAM::Execute() {
|
||||||
// This method is called every realtime state thread cycle.
|
// This method is called every realtime state thread cycle.
|
||||||
using namespace MARTe;
|
using namespace MARTe;
|
||||||
|
|
||||||
@@ -185,4 +185,4 @@ bool JASourceChoiseGAM::Execute() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
CLASS_REGISTER(JASourceChoiseGAM, "1.0")
|
CLASS_REGISTER(JASourceChoiceGAM, "1.0")
|
||||||
@@ -38,13 +38,13 @@
|
|||||||
/* Class declaration */
|
/* Class declaration */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class JASourceChoiseGAM : public MARTe::GAM, public MARTe::StatefulI {
|
class JASourceChoiceGAM : public MARTe::GAM, public MARTe::StatefulI {
|
||||||
public:
|
public:
|
||||||
CLASS_REGISTER_DECLARATION()
|
CLASS_REGISTER_DECLARATION()
|
||||||
|
|
||||||
JASourceChoiseGAM();
|
JASourceChoiceGAM();
|
||||||
|
|
||||||
virtual ~JASourceChoiseGAM();
|
virtual ~JASourceChoiceGAM();
|
||||||
|
|
||||||
virtual bool Initialise(MARTe::StructuredDataI & data);
|
virtual bool Initialise(MARTe::StructuredDataI & data);
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
# $Id: Makefile.inc 3 2012-01-15 16:26:07Z aneto $
|
# $Id: Makefile.inc 3 2012-01-15 16:26:07Z aneto $
|
||||||
#
|
#
|
||||||
#############################################################
|
#############################################################
|
||||||
OBJSX=JASourceChoiseGAM.x
|
OBJSX=JASourceChoiceGAM.x
|
||||||
|
|
||||||
PACKAGE=GAMs
|
PACKAGE=GAMs
|
||||||
|
|
||||||
@@ -48,8 +48,8 @@ INCLUDES += -I$(MARTe2_DIR)/Source/Core/FileSystem/L3Streams
|
|||||||
|
|
||||||
|
|
||||||
all: $(OBJS) $(SUBPROJ) \
|
all: $(OBJS) $(SUBPROJ) \
|
||||||
$(BUILD_DIR)/JASourceChoiseGAM$(LIBEXT) \
|
$(BUILD_DIR)/JASourceChoiceGAM$(LIBEXT) \
|
||||||
$(BUILD_DIR)/JASourceChoiseGAM$(DLLEXT)
|
$(BUILD_DIR)/JASourceChoiceGAM$(DLLEXT)
|
||||||
echo $(OBJS)
|
echo $(OBJS)
|
||||||
|
|
||||||
include $(MAKEDEFAULTDIR)/MakeStdLibRules.$(TARGET)
|
include $(MAKEDEFAULTDIR)/MakeStdLibRules.$(TARGET)
|
||||||
@@ -51,7 +51,7 @@ JATriangleWaveGAM::JATriangleWaveGAM() {
|
|||||||
frequency = NULL_PTR(MARTe::float32 *);
|
frequency = NULL_PTR(MARTe::float32 *);
|
||||||
amplitude = NULL_PTR(MARTe::float32 *);
|
amplitude = NULL_PTR(MARTe::float32 *);
|
||||||
offset = NULL_PTR(MARTe::float32 *);
|
offset = NULL_PTR(MARTe::float32 *);
|
||||||
plcStandby = NULL_PTR(MARTe::uint32 *);
|
plcStandby = NULL_PTR(MARTe::uint8 *);
|
||||||
waveOutput = NULL_PTR(MARTe::float32 *);
|
waveOutput = NULL_PTR(MARTe::float32 *);
|
||||||
time = 0.0f;
|
time = 0.0f;
|
||||||
}
|
}
|
||||||
@@ -130,9 +130,9 @@ bool JATriangleWaveGAM::Setup() {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
TypeDescriptor inputType = GetSignalType(InputSignals, plcStandbyIndex);
|
TypeDescriptor inputType = GetSignalType(InputSignals, plcStandbyIndex);
|
||||||
ok = (inputType == UnsignedInteger32Bit);
|
ok = (inputType == UnsignedInteger8Bit);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
REPORT_ERROR(ErrorManagement::ParametersError, "PLCSTANDBY shall be defined as uint32.");
|
REPORT_ERROR(ErrorManagement::ParametersError, "PLCSTANDBY shall be defined as uint8.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -147,7 +147,7 @@ bool JATriangleWaveGAM::Setup() {
|
|||||||
frequency = reinterpret_cast<float32 *>(GetInputSignalMemory(freqIndex));
|
frequency = reinterpret_cast<float32 *>(GetInputSignalMemory(freqIndex));
|
||||||
amplitude = reinterpret_cast<float32 *>(GetInputSignalMemory(ampIndex));
|
amplitude = reinterpret_cast<float32 *>(GetInputSignalMemory(ampIndex));
|
||||||
offset = reinterpret_cast<float32 *>(GetInputSignalMemory(offsetIndex));
|
offset = reinterpret_cast<float32 *>(GetInputSignalMemory(offsetIndex));
|
||||||
plcStandby = reinterpret_cast<uint32 *>(GetInputSignalMemory(plcStandbyIndex));
|
plcStandby = reinterpret_cast<uint8 *>(GetInputSignalMemory(plcStandbyIndex));
|
||||||
waveOutput = reinterpret_cast<float32 *>(GetOutputSignalMemory(0));
|
waveOutput = reinterpret_cast<float32 *>(GetOutputSignalMemory(0));
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ private:
|
|||||||
//MARTe::uint32 *plcReady;
|
//MARTe::uint32 *plcReady;
|
||||||
|
|
||||||
// Input signal condition CCPS_STANDBY
|
// Input signal condition CCPS_STANDBY
|
||||||
MARTe::uint32 *plcStandby;
|
MARTe::uint8 *plcStandby;
|
||||||
|
|
||||||
MARTe::float32 *waveOutput;
|
MARTe::float32 *waveOutput;
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,8 @@
|
|||||||
SPB = JAMessageGAM.x JAPreProgrammedGAM.x JAModeControlGAM.x \
|
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 JASourceChoiseGAM.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
|
||||||
|
|
||||||
|
|||||||
@@ -23,11 +23,11 @@
|
|||||||
# $Id: Makefile.inc 3 2012-01-15 16:26:07Z aneto $
|
# $Id: Makefile.inc 3 2012-01-15 16:26:07Z aneto $
|
||||||
#
|
#
|
||||||
#############################################################
|
#############################################################
|
||||||
OBJSX=JAMessageGAM.x
|
OBJSX=ScaleGAM.x
|
||||||
|
|
||||||
PACKAGE=GAMs
|
PACKAGE=GAMs
|
||||||
|
|
||||||
ROOT_DIR=../../
|
ROOT_DIR=../../../../obj
|
||||||
MAKEDEFAULTDIR=$(MARTe2_DIR)/MakeDefaults
|
MAKEDEFAULTDIR=$(MARTe2_DIR)/MakeDefaults
|
||||||
include $(MAKEDEFAULTDIR)/MakeStdLibDefs.$(TARGET)
|
include $(MAKEDEFAULTDIR)/MakeStdLibDefs.$(TARGET)
|
||||||
|
|
||||||
@@ -45,8 +45,8 @@ INCLUDES += -I$(MARTe2_DIR)/Source/Core/Scheduler/L4Messages
|
|||||||
|
|
||||||
|
|
||||||
all: $(OBJS) $(SUBPROJ) \
|
all: $(OBJS) $(SUBPROJ) \
|
||||||
$(BUILD_DIR)/JAMessageGAM$(LIBEXT) \
|
$(BUILD_DIR)/ScaleGAM$(LIBEXT) \
|
||||||
$(BUILD_DIR)/JAMessageGAM$(DLLEXT)
|
$(BUILD_DIR)/ScaleGAM$(DLLEXT)
|
||||||
echo $(OBJS)
|
echo $(OBJS)
|
||||||
|
|
||||||
include $(MAKEDEFAULTDIR)/MakeStdLibRules.$(TARGET)
|
include $(MAKEDEFAULTDIR)/MakeStdLibRules.$(TARGET)
|
||||||
127
EC-GN-JA-PCF-IN/src/main/c++/GAMs/ScaleGAM/ScaleGAM.cpp
Normal file
127
EC-GN-JA-PCF-IN/src/main/c++/GAMs/ScaleGAM/ScaleGAM.cpp
Normal 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 */
|
||||||
71
EC-GN-JA-PCF-IN/src/main/c++/GAMs/ScaleGAM/ScaleGAM.h
Normal file
71
EC-GN-JA-PCF-IN/src/main/c++/GAMs/ScaleGAM/ScaleGAM.h
Normal 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
|
||||||
151
EC-GN-JA-PCF-IN/src/main/resources/dan/DAN_ACQ.xml
Normal file
151
EC-GN-JA-PCF-IN/src/main/resources/dan/DAN_ACQ.xml
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
DAN Configuration
|
||||||
|
Root: danApi
|
||||||
|
CODAC-VERSION: 5.1b5
|
||||||
|
WARNING: This is an automatically generated file. PLEASE DO NOT MODIFY.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<danApi>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<ICprogram name="JADA_RF01App">
|
||||||
|
<source name="FastAnalogDAN_float32">
|
||||||
|
<itemDanType>danFloat</itemDanType>
|
||||||
|
<maxTransferRate>100000</maxTransferRate>
|
||||||
|
<advancedSource>
|
||||||
|
<dataModel>DM_BLOCK2D_VAR</dataModel>
|
||||||
|
<streamType>DATA_D0</streamType>
|
||||||
|
<checkPolicy>NO_CHECK</checkPolicy>
|
||||||
|
<queueSize>1000</queueSize>
|
||||||
|
<profMonitoring>1</profMonitoring>
|
||||||
|
<timeFormat>UTC</timeFormat>
|
||||||
|
<debug>
|
||||||
|
<srvChunkHeaderSize>20</srvChunkHeaderSize>
|
||||||
|
<srvChunkSize>10000</srvChunkSize>
|
||||||
|
<srvBufferSize>2</srvBufferSize>
|
||||||
|
</debug>
|
||||||
|
</advancedSource>
|
||||||
|
<deviceInfo>
|
||||||
|
<deviceName>DAQ</deviceName>
|
||||||
|
<deviceVersion>v1.0</deviceVersion>
|
||||||
|
<operationalMode>0</operationalMode>
|
||||||
|
<manufactureCode>0</manufactureCode>
|
||||||
|
</deviceInfo>
|
||||||
|
<channelsInfo sequence="SEQUENCIAL">
|
||||||
|
<channel number="0" variable="EC-GN-P01:GY_APS_V_MEAS" label="EC-GN-P01:GY_APS_V_MEAS" status="ENABLE"></channel>
|
||||||
|
<channel number="1" variable="EC-GN-P01:GY_APS_I_MEAS" label="EC-GN-P01:GY_APS_I_MEAS" status="ENABLE"></channel>
|
||||||
|
<channel number="2" variable="EC-GN-P01:GY_BPS_V_MEAS" label="EC-GN-P01:GY_BPS_V_MEAS" status="ENABLE"></channel>
|
||||||
|
<channel number="3" variable="EC-GN-P01:GY_BPS_I_MEAS" label="EC-GN-P01:GY_BPS_I_MEAS" status="ENABLE"></channel>
|
||||||
|
<channel number="4" variable="EC-GN-P01:GY_MHV_V_MEAS" label="EC-GN-P01:GY_MHV_V_MEAS" status="ENABLE"></channel>
|
||||||
|
<channel number="5" variable="EC-GN-P01:GY_MHV_I_MEAS" label="EC-GN-P01:GY_MHV_I_MEAS" status="ENABLE"></channel>
|
||||||
|
<channel number="6" variable="EC-GN-P01:GY_ARC1_V_MEAS" label="EC-GN-P01:GY_ARC1_V_MEAS" status="ENABLE"></channel>
|
||||||
|
<channel number="7" variable="EC-GN-P01:GY_ARC2_V_MEAS" label="EC-GN-P01:GY_ARC2_V_MEAS" status="ENABLE"></channel>
|
||||||
|
<channel number="8" variable="EC-GN-P01:GY_ARC3_V_MEAS" label="EC-GN-P01:GY_ARC3_V_MEAS" status="ENABLE"></channel>
|
||||||
|
<channel number="9" variable="EC-GN-P01:GY_RF_V_MEAS" label="EC-GN-P01:GY_RF_V_MEAS" status="ENABLE"></channel>
|
||||||
|
</channelsInfo>
|
||||||
|
</source>
|
||||||
|
|
||||||
|
|
||||||
|
<source name="DANDIODataSource_uint8">
|
||||||
|
<itemDanType>danUInt8</itemDanType>
|
||||||
|
<maxTransferRate>100000</maxTransferRate>
|
||||||
|
<advancedSource>
|
||||||
|
<dataModel>DM_BLOCK2D_VAR</dataModel>
|
||||||
|
<streamType>DATA_D0</streamType>
|
||||||
|
<checkPolicy>NO_CHECK</checkPolicy>
|
||||||
|
<queueSize>1000</queueSize>
|
||||||
|
<profMonitoring>1</profMonitoring>
|
||||||
|
<timeFormat>UTC</timeFormat>
|
||||||
|
<debug>
|
||||||
|
<srvChunkHeaderSize>20</srvChunkHeaderSize>
|
||||||
|
<srvChunkSize>10000</srvChunkSize>
|
||||||
|
<srvBufferSize>2</srvBufferSize>
|
||||||
|
</debug>
|
||||||
|
</advancedSource>
|
||||||
|
<deviceInfo>
|
||||||
|
<deviceName>DAQ</deviceName>
|
||||||
|
<deviceVersion>v1.0</deviceVersion>
|
||||||
|
<operationalMode>0</operationalMode>
|
||||||
|
<manufactureCode>0</manufactureCode>
|
||||||
|
</deviceInfo>
|
||||||
|
<channelsInfo sequence="SEQUENCIAL">
|
||||||
|
<channel number="0" variable="EC-GN-P01:GYA_APS_READY" label="EC-GN-P01:GYA_APS_READY" status="ENABLE"></channel>
|
||||||
|
<channel number="1" variable="EC-GN-P01:GYA_APS_FLT" label="EC-GN-P01:GYA_APS_FLT" status="ENABLE"></channel>
|
||||||
|
<channel number="2" variable="EC-GN-P01:GYA_BPS_READY" label="EC-GN-P01:GYA_BPS_READY" status="ENABLE"></channel>
|
||||||
|
<channel number="3" variable="EC-GN-P01:GYA_BPS_FLT" label="EC-GN-P01:GYA_BPS_FLT" status="ENABLE"></channel>
|
||||||
|
<channel number="4" variable="EC-GN-P01:MHVPS_OV" label="EC-GN-P01:MHVPS_OV" status="ENABLE"></channel>
|
||||||
|
<channel number="5" variable="EC-GN-P01:MHVPS_OC" label="EC-GN-P01:MHVPS_OC" status="ENABLE"></channel>
|
||||||
|
<channel number="6" variable="EC-GN-P01:MHVPS_FLT" label="EC-GN-P01:MHVPS_FLT" status="ENABLE"></channel>
|
||||||
|
<channel number="7" variable="EC-GN-P01:MHVPS_READY" label="EC-GN-P01:MHVPS_READY" status="ENABLE"></channel>
|
||||||
|
<channel number="8" variable="EC-GN-P01:ECPC_MOD" label="EC-GN-P01:ECPC_MOD" status="ENABLE"></channel>
|
||||||
|
<channel number="9" variable="EC-GN-P01:FAST_TRIP" label="EC-GN-P01:FAST_TRIP" status="ENABLE"></channel>
|
||||||
|
<channel number="10" variable="EC-GN-P01:CRIO_RV1" label="EC-GN-P01:CRIO_RV1" status="ENABLE"></channel>
|
||||||
|
<channel number="11" variable="EC-GN-P01:CRIO_RV2" label="EC-GN-P01:CRIO_RV2" status="ENABLE"></channel>
|
||||||
|
<channel number="12" variable="EC-GN-P01:CRIO_RV3" label="EC-GN-P01:CRIO_RV3" status="ENABLE"></channel>
|
||||||
|
<channel number="13" variable="EC-GN-P01:PLC_ITL" label="EC-GN-P01:PLC_ITL" status="ENABLE"></channel>
|
||||||
|
<channel number="14" variable="EC-GN-P01:PLC_STANDBY" label="EC-GN-P01:PLC_STANDBY" status="ENABLE"></channel>
|
||||||
|
<channel number="15" variable="EC-GN-P01:PLC_READY" label="EC-GN-P01:PLC_READY" status="ENABLE"></channel>
|
||||||
|
<channel number="16" variable="EC-GN-P01:PLC_ON" label="EC-GN-P01:PLC_ON" status="ENABLE"></channel>
|
||||||
|
<channel number="17" variable="EC-GN-P01:PLC_PERMIT" label="EC-GN-P01:PLC_PERMIT" status="ENABLE"></channel>
|
||||||
|
<channel number="18" variable="EC-GN-P01:PLC_OP_SELECTED" label="EC-GN-P01:PLC_OP_SELECTED" status="ENABLE"></channel>
|
||||||
|
<channel number="19" variable="EC-GN-P01:PLC_CC_OP_SELECTED" label="EC-GN-P01:PLC_CC_OP_SELECTED" status="ENABLE"></channel>
|
||||||
|
<channel number="20" variable="EC-GN-P01:PLC_SYNCMODE" label="EC-GN-P01:PLC_SYNCMODE" status="ENABLE"></channel>
|
||||||
|
<channel number="21" variable="EC-GN-P01:TRIGGER" label="EC-GN-P01:TRIGGER" status="ENABLE"></channel>
|
||||||
|
<channel number="22" variable="EC-GN-P01:BEAM_ON_STAT" label="EC-GN-P01:BEAM_ON_STAT" status="ENABLE"></channel>
|
||||||
|
<channel number="23" variable="EC-GN-P01:HVARMED" label="EC-GN-P01:HVARMED" status="ENABLE"></channel>
|
||||||
|
<channel number="24" variable="EC-GN-P01:HVINJECTION" label="EC-GN-P01:HVINJECTION" status="ENABLE"></channel>
|
||||||
|
<channel number="25" variable="EC-GN-P01:RFON" label="EC-GN-P01:RFON" status="ENABLE"></channel>
|
||||||
|
</channelsInfo>
|
||||||
|
</source>
|
||||||
|
|
||||||
|
<source name="DANDIODataSource_uint32">
|
||||||
|
<itemDanType>danUInt32</itemDanType>
|
||||||
|
<maxTransferRate>100000</maxTransferRate>
|
||||||
|
<advancedSource>
|
||||||
|
<dataModel>DM_BLOCK2D_VAR</dataModel>
|
||||||
|
<streamType>DATA_D0</streamType>
|
||||||
|
<checkPolicy>NO_CHECK</checkPolicy>
|
||||||
|
<queueSize>1000</queueSize>
|
||||||
|
<profMonitoring>1</profMonitoring>
|
||||||
|
<timeFormat>UTC</timeFormat>
|
||||||
|
<debug>
|
||||||
|
<srvChunkHeaderSize>20</srvChunkHeaderSize>
|
||||||
|
<srvChunkSize>10000</srvChunkSize>
|
||||||
|
<srvBufferSize>2</srvBufferSize>
|
||||||
|
</debug>
|
||||||
|
</advancedSource>
|
||||||
|
<deviceInfo>
|
||||||
|
<deviceName>DAQ</deviceName>
|
||||||
|
<deviceVersion>v1.0</deviceVersion>
|
||||||
|
<operationalMode>0</operationalMode>
|
||||||
|
<manufactureCode>0</manufactureCode>
|
||||||
|
</deviceInfo>
|
||||||
|
<channelsInfo sequence="SEQUENCIAL">
|
||||||
|
<channel number="0" variable="EC-GN-P01:PXI6528_Status" label="EC-GN-P01:PXI6528_Status" status="ENABLE"></channel>
|
||||||
|
<channel number="1" variable="EC-GN-P01:BEAM_ON_TIME" label="EC-GN-P01:BEAM_ON_TIME" status="ENABLE"></channel>
|
||||||
|
<channel number="2" variable="EC-GN-P01:RFON_TIME" label="EC-GN-P01:RFON_TIME" status="ENABLE"></channel>
|
||||||
|
|
||||||
|
</channelsInfo>
|
||||||
|
</source>
|
||||||
|
|
||||||
|
|
||||||
|
<danStreamer name="DANSTREAMER0">
|
||||||
|
<link>ALL</link>
|
||||||
|
<internal>
|
||||||
|
<danInterface>${DAN_INTERFACE_NAME}</danInterface>
|
||||||
|
<!-- GGC
|
||||||
|
<danInterface>eno1</danInterface>
|
||||||
|
-->
|
||||||
|
<servers>
|
||||||
|
<policy>IF_FAIL_NEXT</policy>
|
||||||
|
<server >${DAN_ARCHIVE_MASTER}</server>
|
||||||
|
<server >${DAN_ARCHIVE_SLAVE}</server>
|
||||||
|
<!-- GGC
|
||||||
|
<server>10.142.0.24</server>
|
||||||
|
<server>10.142.0.24</server>
|
||||||
|
-->
|
||||||
|
</servers>
|
||||||
|
</internal>
|
||||||
|
</danStreamer>
|
||||||
|
</ICprogram>
|
||||||
|
</danApi>
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
package schema
|
||||||
|
|
||||||
|
#Classes: {
|
||||||
|
ExtractBitGAM: {...}
|
||||||
|
CompactBitGAM: {...}
|
||||||
|
HttpService: {
|
||||||
|
Port!: uint & >1024 & <49151
|
||||||
|
WebRoot?: string
|
||||||
|
Timeout?: uint
|
||||||
|
ListenMaxConnection?: uint
|
||||||
|
AcceptTimeout?: uint
|
||||||
|
MaxNumberOfThreads?: uint
|
||||||
|
MinNumberOfThreads?: uint
|
||||||
|
}
|
||||||
|
|
||||||
|
HttpObjectBrowser: {
|
||||||
|
Root!: string
|
||||||
|
...
|
||||||
|
}
|
||||||
|
HttpDataMonitor: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
HttpObjectBrowser: {
|
||||||
|
Root!: string
|
||||||
|
}
|
||||||
|
HttpDirectoryResource: {
|
||||||
|
BaseDir: string
|
||||||
|
}
|
||||||
|
HttpMessageInterface: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
NI6528: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
ConfigurationDatabase: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JAWFRecordGAM: {
|
||||||
|
Directory!: string
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JAPreProgrammedGAM: {
|
||||||
|
Directory!: string
|
||||||
|
PreProgrammedPeriodMs!: uint32
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JAConditionalSignalUpdateGAM: {
|
||||||
|
Operation!: "AND" | "OR" | "XOR" | "NOR"
|
||||||
|
InputSignals: {
|
||||||
|
[_]: {
|
||||||
|
Comparator!: "EQUALS" | "GREATER" | "LESSER"
|
||||||
|
Value!: number
|
||||||
|
Type!: string
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals: {
|
||||||
|
[_]: {
|
||||||
|
DefaultValue!: uint32
|
||||||
|
Value!: uint32
|
||||||
|
Type!: string
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JASourceChoiceGAM: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JAMessageGAM: {
|
||||||
|
Operation!: "AND" | "OR"
|
||||||
|
InputSignals: {
|
||||||
|
[_]: {
|
||||||
|
Value!: number
|
||||||
|
Comparator!: "EQUALS" | "GREATER" | "LESS" | "EQUALS_OR_GREATER" | "EQUALS_OR_LESS" | "NOT"
|
||||||
|
Type!: string
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Event!: {
|
||||||
|
Class: "Message"
|
||||||
|
Destination!: string
|
||||||
|
Function!: string
|
||||||
|
}
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JAModeControlGAM: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JARTStateMachineGAM: {
|
||||||
|
ConditionTrigger: 0 | 1
|
||||||
|
mhvps_hvon: uint
|
||||||
|
aps_hvon: uint
|
||||||
|
aps_swon: uint
|
||||||
|
bps_hvon: uint
|
||||||
|
bps_swon: uint
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JASDNRTStateMachineGAM: {
|
||||||
|
ConditionTrigger: 0 | 1
|
||||||
|
mhvps_hvon: uint
|
||||||
|
aps_hvon: uint
|
||||||
|
aps_swon: uint
|
||||||
|
bps_hvon: uint
|
||||||
|
bps_swon: uint
|
||||||
|
...
|
||||||
|
}
|
||||||
|
DANSource: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JATriangleWaveGAM: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
JARampupGAM: {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
NI6683H: {
|
||||||
|
BoardId: uint
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,103 +0,0 @@
|
|||||||
#test configuration file2,,,,,,
|
|
||||||
#Time,MHVPS,BPS,APS,MC,GC,FHPS
|
|
||||||
0,60,45,0,10,10,10
|
|
||||||
10,55,40,-2,9,9,9
|
|
||||||
20,50,35,-4,8,8,8
|
|
||||||
30,45,30,-6,7,7,7
|
|
||||||
40,40,25,-8,6,6,6
|
|
||||||
50,35,20,-10,5,5,5
|
|
||||||
60,30,15,-12,4,4,4
|
|
||||||
70,25,10,-14,3,3,3
|
|
||||||
80,20,5,-16,2,2,2
|
|
||||||
90,15,0,-18,1,1,1
|
|
||||||
100,10,-5,-20,0,0,0
|
|
||||||
110,5,0,-22,1,1,1
|
|
||||||
120,0,5,-20,2,2,2
|
|
||||||
130,-5,10,-18,3,3,3
|
|
||||||
140,0,15,-16,4,4,4
|
|
||||||
150,5,20,-14,5,5,5
|
|
||||||
160,10,25,-12,6,6,6
|
|
||||||
170,15,30,-10,7,7,7
|
|
||||||
180,20,35,-8,8,8,8
|
|
||||||
190,25,40,-6,9,9,9
|
|
||||||
200,30,45,-4,10,10,10
|
|
||||||
210,35,40,-2,9,9,9
|
|
||||||
220,40,35,0,8,8,8
|
|
||||||
230,45,30,-2,7,7,7
|
|
||||||
240,50,25,-4,6,6,6
|
|
||||||
250,55,20,-6,5,5,5
|
|
||||||
260,60,15,-8,4,4,4
|
|
||||||
270,55,10,-10,3,3,3
|
|
||||||
280,50,5,-12,2,2,2
|
|
||||||
290,45,0,-14,1,1,1
|
|
||||||
300,40,-5,-16,0,0,0
|
|
||||||
310,35,0,-18,1,1,1
|
|
||||||
320,30,5,-20,2,2,2
|
|
||||||
330,25,10,-25,3,3,3
|
|
||||||
340,20,15,-20,4,4,4
|
|
||||||
350,15,20,-18,5,5,5
|
|
||||||
360,10,25,-16,6,6,6
|
|
||||||
370,5,30,-14,7,7,7
|
|
||||||
380,0,35,-12,8,8,8
|
|
||||||
390,-5,40,-10,9,9,9
|
|
||||||
400,0,45,-8,10,10,10
|
|
||||||
410,5,40,-6,9,9,9
|
|
||||||
420,10,35,-4,8,8,8
|
|
||||||
430,15,30,-2,7,7,7
|
|
||||||
440,20,25,0,6,6,6
|
|
||||||
450,25,20,-2,5,5,5
|
|
||||||
460,30,15,-4,4,4,4
|
|
||||||
470,35,10,-6,3,3,3
|
|
||||||
480,40,5,-8,2,2,2
|
|
||||||
490,45,0,-10,1,1,1
|
|
||||||
500,50,-5,-12,0,0,0
|
|
||||||
510,55,0,-14,1,1,1
|
|
||||||
520,60,5,-16,2,2,2
|
|
||||||
530,55,10,-18,3,3,3
|
|
||||||
540,50,15,-20,4,4,4
|
|
||||||
550,45,20,-30,5,5,5
|
|
||||||
560,40,25,-20,6,6,6
|
|
||||||
570,35,30,-18,7,7,7
|
|
||||||
580,30,35,-16,8,8,8
|
|
||||||
590,25,40,-14,9,9,9
|
|
||||||
600,20,45,-12,10,10,10
|
|
||||||
610,15,40,-10,9,9,9
|
|
||||||
620,10,35,-8,8,8,8
|
|
||||||
630,5,30,-6,7,7,7
|
|
||||||
640,0,25,-4,6,6,6
|
|
||||||
650,-5,20,-2,5,5,5
|
|
||||||
660,0,15,0,4,4,4
|
|
||||||
670,5,10,-2,3,3,3
|
|
||||||
680,10,5,-4,2,2,2
|
|
||||||
690,15,0,-6,1,1,1
|
|
||||||
700,20,-5,-8,0,0,0
|
|
||||||
710,25,0,-10,1,1,1
|
|
||||||
720,30,5,-12,2,2,2
|
|
||||||
730,35,10,-14,3,3,3
|
|
||||||
740,40,15,-16,4,4,4
|
|
||||||
750,45,20,-18,5,5,5
|
|
||||||
760,50,25,-20,6,6,6
|
|
||||||
770,55,30,-22,7,7,7
|
|
||||||
780,60,35,-20,8,8,8
|
|
||||||
790,55,40,-18,9,9,9
|
|
||||||
800,50,45,-16,10,10,10
|
|
||||||
810,45,40,-14,9,9,9
|
|
||||||
820,40,35,-12,8,8,8
|
|
||||||
830,35,30,-10,7,7,7
|
|
||||||
840,30,25,-8,6,6,6
|
|
||||||
850,25,20,-6,5,5,5
|
|
||||||
860,20,15,-4,4,4,4
|
|
||||||
870,15,10,-2,3,3,3
|
|
||||||
880,10,5,0,2,2,2
|
|
||||||
890,5,0,-2,1,1,1
|
|
||||||
900,0,-5,-4,0,0,0
|
|
||||||
910,-5,0,-6,1,1,1
|
|
||||||
920,0,5,-8,2,2,2
|
|
||||||
930,5,10,-10,3,3,3
|
|
||||||
940,10,15,-12,4,4,4
|
|
||||||
950,15,20,-14,5,5,5
|
|
||||||
960,20,25,-16,6,6,6
|
|
||||||
970,25,30,-18,7,7,7
|
|
||||||
980,30,35,-20,8,8,8
|
|
||||||
990,35,40,-22,9,9,9
|
|
||||||
1000,40,45,-20,10,10,10
|
|
||||||
|
@@ -1,103 +0,0 @@
|
|||||||
#test configuration file2,,,,,,
|
|
||||||
#Time,MHVPS,BPS,APS,MC,GC,FHPS
|
|
||||||
0,60,45,10,10,10,10
|
|
||||||
10,55,40,9,9,9,9
|
|
||||||
20,50,35,8,8,8,8
|
|
||||||
30,45,30,7,7,7,7
|
|
||||||
40,40,25,6,6,6,6
|
|
||||||
50,35,20,5,5,5,5
|
|
||||||
60,30,15,4,4,4,4
|
|
||||||
70,25,10,3,3,3,3
|
|
||||||
80,20,5,2,2,2,2
|
|
||||||
90,15,0,1,1,1,1
|
|
||||||
100,10,-5,0,0,0,0
|
|
||||||
110,5,0,1,1,1,1
|
|
||||||
120,0,5,2,2,2,2
|
|
||||||
130,-5,10,3,3,3,3
|
|
||||||
140,0,15,4,4,4,4
|
|
||||||
150,5,20,5,5,5,5
|
|
||||||
160,10,25,6,6,6,6
|
|
||||||
170,15,30,7,7,7,7
|
|
||||||
180,20,35,8,8,8,8
|
|
||||||
190,25,40,9,9,9,9
|
|
||||||
200,30,45,10,10,10,10
|
|
||||||
210,35,40,11,9,9,9
|
|
||||||
220,40,35,12,8,8,8
|
|
||||||
230,45,30,11,7,7,7
|
|
||||||
240,50,25,10,6,6,6
|
|
||||||
250,55,20,9,5,5,5
|
|
||||||
260,60,15,8,4,4,4
|
|
||||||
270,55,10,7,3,3,3
|
|
||||||
280,50,5,6,2,2,2
|
|
||||||
290,45,0,5,1,1,1
|
|
||||||
300,40,-5,4,0,0,0
|
|
||||||
310,35,0,3,1,1,1
|
|
||||||
320,30,5,2,2,2,2
|
|
||||||
330,25,10,1,3,3,3
|
|
||||||
340,20,15,0,4,4,4
|
|
||||||
350,15,20,1,5,5,5
|
|
||||||
360,10,25,2,6,6,6
|
|
||||||
370,5,30,3,7,7,7
|
|
||||||
380,0,35,4,8,8,8
|
|
||||||
390,-5,40,5,9,9,9
|
|
||||||
400,0,45,6,10,10,10
|
|
||||||
410,5,40,7,9,9,9
|
|
||||||
420,10,35,8,8,8,8
|
|
||||||
430,15,30,9,7,7,7
|
|
||||||
440,20,25,10,6,6,6
|
|
||||||
450,25,20,11,5,5,5
|
|
||||||
460,30,15,12,4,4,4
|
|
||||||
470,35,10,11,3,3,3
|
|
||||||
480,40,5,10,2,2,2
|
|
||||||
490,45,0,9,1,1,1
|
|
||||||
500,50,-5,8,0,0,0
|
|
||||||
510,55,0,7,1,1,1
|
|
||||||
520,60,5,6,2,2,2
|
|
||||||
530,55,10,5,3,3,3
|
|
||||||
540,50,15,4,4,4,4
|
|
||||||
550,45,20,3,5,5,5
|
|
||||||
560,40,25,2,6,6,6
|
|
||||||
570,35,30,1,7,7,7
|
|
||||||
580,30,35,0,8,8,8
|
|
||||||
590,25,40,1,9,9,9
|
|
||||||
600,20,45,2,10,10,10
|
|
||||||
610,15,40,3,9,9,9
|
|
||||||
620,10,35,4,8,8,8
|
|
||||||
630,5,30,5,7,7,7
|
|
||||||
640,0,25,6,6,6,6
|
|
||||||
650,-5,20,7,5,5,5
|
|
||||||
660,0,15,8,4,4,4
|
|
||||||
670,5,10,9,3,3,3
|
|
||||||
680,10,5,10,2,2,2
|
|
||||||
690,15,0,11,1,1,1
|
|
||||||
700,20,-5,12,0,0,0
|
|
||||||
710,25,0,11,1,1,1
|
|
||||||
720,30,5,10,2,2,2
|
|
||||||
730,35,10,9,3,3,3
|
|
||||||
740,40,15,8,4,4,4
|
|
||||||
750,45,20,7,5,5,5
|
|
||||||
760,50,25,6,6,6,6
|
|
||||||
770,55,30,5,7,7,7
|
|
||||||
780,60,35,4,8,8,8
|
|
||||||
790,55,40,3,9,9,9
|
|
||||||
800,50,45,2,10,10,10
|
|
||||||
810,45,40,1,9,9,9
|
|
||||||
820,40,35,0,8,8,8
|
|
||||||
830,35,30,1,7,7,7
|
|
||||||
840,30,25,2,6,6,6
|
|
||||||
850,25,20,3,5,5,5
|
|
||||||
860,20,15,4,4,4,4
|
|
||||||
870,15,10,5,3,3,3
|
|
||||||
880,10,5,6,2,2,2
|
|
||||||
890,5,0,7,1,1,1
|
|
||||||
900,0,-5,8,0,0,0
|
|
||||||
910,-5,0,9,1,1,1
|
|
||||||
920,0,5,10,2,2,2
|
|
||||||
930,5,10,11,3,3,3
|
|
||||||
940,10,15,12,4,4,4
|
|
||||||
950,15,20,11,5,5,5
|
|
||||||
960,20,25,10,6,6,6
|
|
||||||
970,25,30,9,7,7,7
|
|
||||||
980,30,35,8,8,8,8
|
|
||||||
990,35,40,7,9,9,9
|
|
||||||
1000,40,45,6,10,10,10
|
|
||||||
|
@@ -1,103 +0,0 @@
|
|||||||
#test configuration file2,,,,,,
|
|
||||||
#Time,MHVPS,BPS,APS,MC,GC,FHPS
|
|
||||||
0,60,45,10,10,10,10
|
|
||||||
10,55,40,7,9,9,9
|
|
||||||
20,50,35,4,8,8,8
|
|
||||||
30,45,30,1,7,7,7
|
|
||||||
40,40,25,-2,6,6,6
|
|
||||||
50,35,20,-5,5,5,5
|
|
||||||
60,30,15,-8,4,4,4
|
|
||||||
70,25,10,-11,3,3,3
|
|
||||||
80,20,5,-14,2,2,2
|
|
||||||
90,15,0,-17,1,1,1
|
|
||||||
100,10,-5,-20,0,0,0
|
|
||||||
110,5,0,-23,1,1,1
|
|
||||||
120,0,5,-20,2,2,2
|
|
||||||
130,-5,10,-17,3,3,3
|
|
||||||
140,0,15,-14,4,4,4
|
|
||||||
150,5,20,-11,5,5,5
|
|
||||||
160,10,25,-8,6,6,6
|
|
||||||
170,15,30,-5,7,7,7
|
|
||||||
180,20,35,-2,8,8,8
|
|
||||||
190,25,40,1,9,9,9
|
|
||||||
200,30,45,4,10,10,10
|
|
||||||
210,35,40,7,9,9,9
|
|
||||||
220,40,35,10,8,8,8
|
|
||||||
230,45,30,13,7,7,7
|
|
||||||
240,50,25,10,6,6,6
|
|
||||||
250,55,20,7,5,5,5
|
|
||||||
260,60,15,4,4,4,4
|
|
||||||
270,55,10,1,3,3,3
|
|
||||||
280,50,5,-2,2,2,2
|
|
||||||
290,45,0,-5,1,1,1
|
|
||||||
300,40,-5,-8,0,0,0
|
|
||||||
310,35,0,-11,1,1,1
|
|
||||||
320,30,5,-14,2,2,2
|
|
||||||
330,25,10,-17,3,3,3
|
|
||||||
340,20,15,-20,4,4,4
|
|
||||||
350,15,20,-23,5,5,5
|
|
||||||
360,10,25,-20,6,6,6
|
|
||||||
370,5,30,-17,7,7,7
|
|
||||||
380,0,35,-14,8,8,8
|
|
||||||
390,-5,40,-11,9,9,9
|
|
||||||
400,0,45,-8,10,10,10
|
|
||||||
410,5,40,-5,9,9,9
|
|
||||||
420,10,35,-2,8,8,8
|
|
||||||
430,15,30,1,7,7,7
|
|
||||||
440,20,25,4,6,6,6
|
|
||||||
450,25,20,7,5,5,5
|
|
||||||
460,30,15,10,4,4,4
|
|
||||||
470,35,10,13,3,3,3
|
|
||||||
480,40,5,10,2,2,2
|
|
||||||
490,45,0,7,1,1,1
|
|
||||||
500,50,-5,4,0,0,0
|
|
||||||
510,55,0,1,1,1,1
|
|
||||||
520,60,5,-2,2,2,2
|
|
||||||
530,55,10,-5,3,3,3
|
|
||||||
540,50,15,-8,4,4,4
|
|
||||||
550,45,20,-11,5,5,5
|
|
||||||
560,40,25,-14,6,6,6
|
|
||||||
570,35,30,-17,7,7,7
|
|
||||||
580,30,35,-20,8,8,8
|
|
||||||
590,25,40,-23,9,9,9
|
|
||||||
600,20,45,-20,10,10,10
|
|
||||||
610,15,40,-17,9,9,9
|
|
||||||
620,10,35,-14,8,8,8
|
|
||||||
630,5,30,-11,7,7,7
|
|
||||||
640,0,25,-8,6,6,6
|
|
||||||
650,-5,20,-5,5,5,5
|
|
||||||
660,0,15,-2,4,4,4
|
|
||||||
670,5,10,1,3,3,3
|
|
||||||
680,10,5,4,2,2,2
|
|
||||||
690,15,0,7,1,1,1
|
|
||||||
700,20,-5,10,0,0,0
|
|
||||||
710,25,0,13,1,1,1
|
|
||||||
720,30,5,10,2,2,2
|
|
||||||
730,35,10,7,3,3,3
|
|
||||||
740,40,15,4,4,4,4
|
|
||||||
750,45,20,1,5,5,5
|
|
||||||
760,50,25,-2,6,6,6
|
|
||||||
770,55,30,-5,7,7,7
|
|
||||||
780,60,35,-8,8,8,8
|
|
||||||
790,55,40,-11,9,9,9
|
|
||||||
800,50,45,-14,10,10,10
|
|
||||||
810,45,40,-17,9,9,9
|
|
||||||
820,40,35,-20,8,8,8
|
|
||||||
830,35,30,-23,7,7,7
|
|
||||||
840,30,25,-20,6,6,6
|
|
||||||
850,25,20,-17,5,5,5
|
|
||||||
860,20,15,-14,4,4,4
|
|
||||||
870,15,10,-11,3,3,3
|
|
||||||
880,10,5,-8,2,2,2
|
|
||||||
890,5,0,-5,1,1,1
|
|
||||||
900,0,-5,-2,0,0,0
|
|
||||||
910,-5,0,1,1,1,1
|
|
||||||
920,0,5,4,2,2,2
|
|
||||||
930,5,10,7,3,3,3
|
|
||||||
940,10,15,10,4,4,4
|
|
||||||
950,15,20,13,5,5,5
|
|
||||||
960,20,25,10,6,6,6
|
|
||||||
970,25,30,7,7,7,7
|
|
||||||
980,30,35,4,8,8,8
|
|
||||||
990,35,40,1,9,9,9
|
|
||||||
1000,40,45,-2,10,10,10
|
|
||||||
|
@@ -1,353 +0,0 @@
|
|||||||
+DDB1 = {
|
|
||||||
Class = GAMDataSource
|
|
||||||
AllowNoProducers = 1
|
|
||||||
ResetUnusedVariablesAtStateChange = 0
|
|
||||||
}
|
|
||||||
// Timer for thread 1 (Normal RT state execution cycle.)
|
|
||||||
+Timer1kHz = {
|
|
||||||
Class = LinuxTimer
|
|
||||||
SleepNature = "Busy"
|
|
||||||
SleepPercentage = 40
|
|
||||||
ExecutionMode = RealTimeThread
|
|
||||||
CPUMask = 0x100
|
|
||||||
Signals = {
|
|
||||||
Counter = {
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
Time = {
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+EPICSCAInput_Th1 = {
|
|
||||||
Class = "EPICSCA::EPICSCAInput"
|
|
||||||
CPUMask = "0x100" //change from 200
|
|
||||||
StackSize = "10000000"
|
|
||||||
Signals = {
|
|
||||||
CCPS_OUTPUT_FREQ = {
|
|
||||||
PVName = "EC-GN-P01-GAF-CCPS:STAT-FREQ"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
CCPS_OUTPUT_AMP = {
|
|
||||||
PVName = "EC-GN-P01-GAF-CCPS:STAT-AMP"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
CCPS_OUTPUT_OFFS = {
|
|
||||||
PVName = "EC-GN-P01-GAF-CCPS:STAT-OFFS"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
CSV_LOAD = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-CSV-LOAD"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
CSV_NAME = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-CSV-NAME"
|
|
||||||
Type = char8
|
|
||||||
NumberOfElements = 40
|
|
||||||
}
|
|
||||||
FHPS_AUTO_TAGV = {
|
|
||||||
PVName = "EC-GN-P01-GAF-FHPS:PSU2610-AUTO-TAGV"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
FHPS_AUTO_TIME = {
|
|
||||||
PVName = "EC-GN-P01-GAF-FHPS:PSU2610-AUTO-RU-TIME"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
FHPS_AUTO_START = {
|
|
||||||
PVName = "EC-GN-P01-GAF-FHPS:PSU2610-AUTO-START"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
FHPS_MANM = {
|
|
||||||
PVName = "EC-GN-P01-GAF-FHPS:STAT-MANM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
GCPS_TRG_CURR_MANUAL = {
|
|
||||||
PVName = "EC-GN-P01-GAF-GCPS:PSU2130-TRG-CURR-SET-MI"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
MCPS_TRG_CURR_MANUAL = {
|
|
||||||
PVName = "EC-GN-P01-GAF-MCPS:PSU2120-TRG-CURR-SET-MI"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
BPS_MM = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:STAT-MANM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BPS_MANUAL = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:PSU1000-EREF-MSP"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
APS_MM = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:STAT-MANM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
APS_MANUAL = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:PSU3000-EREF-MSP"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
MHVPS_MANUAL = {
|
|
||||||
PVName = "EC-GN-P01-PMF:PSU0000-EREF-MSP"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
MHVPS_MM = {
|
|
||||||
PVName = "EC-GN-P01-PMF:STAT-MANM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MCPS_MM = {
|
|
||||||
PVName = "EC-GN-P01-GAF-MCPS:STAT-MANM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MCPS_TRG_CURR_MANUAL = {
|
|
||||||
PVName = "EC-GN-P01-GAF-MCPS:PSU2120-TRG-CURR-SET-MI"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GCPS_TRG_CURR_MANUAL = {
|
|
||||||
PVName = "EC-GN-P01-GAF-GCPS:PSU2130-TRG-CURR-SET-MI"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GCPS_MM = {
|
|
||||||
PVName = "EC-GN-P01-GAF-GCPS:STAT-MANM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PLC_STANDBY = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-YTS-ST1R"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PLC_READY = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-YTS-ST2R"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PLC_SELECT = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-CON-OPGY1"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PLC_SYNCMODE = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-YSTA-MPSS"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PLC_PERMIT = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-CON-GY1PRM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
//PXI Board status PVs
|
|
||||||
PXI6259_0 = {
|
|
||||||
PVName = "EC-GN-HWCF:6259-0-STATUS"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PXI6259_1 = {
|
|
||||||
PVName = "EC-GN-HWCF:6259-1-STATUS"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PXI6528_0 = {
|
|
||||||
PVName = "EC-GN-HWCF:6528-0-STATUS"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PXI6528_1 = {
|
|
||||||
PVName = "EC-GN-HWCF:6528-1-STATUS"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PXI6368_0 = {
|
|
||||||
PVName = "EC-GN-HWCF:6368-0-STATUS"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PXI6368_1 = {
|
|
||||||
PVName = "EC-GN-HWCF:6368-1-STATUS"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MCPS_ACT_RB = {
|
|
||||||
PVName = "EC-GN-P01-GAF-MCPS:PSU2120-ACT-RB"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
GCPS_ACT_RB = {
|
|
||||||
PVName = "EC-GN-P01-GAF-GCPS:PSU2130-ACT-RB"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
FHPS_RU = {
|
|
||||||
PVName = "EC-GN-P01-GAF-FHPS:PSU2610-YTS-RUP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
FHPS_MEAS_ACV = {
|
|
||||||
PVName = "EC-GN-P01-GAF-FHPS:PSU2610-MEAS-ACV"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
PREP_MODE = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-PREP-MODE"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
RESET_FLT = {
|
|
||||||
PVName = "EC-GN-P01-GPF:STAT-RST-FLT"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+EPICSCAOutput_Th1 = {
|
|
||||||
Class = "EPICSCA::EPICSCAOutput"
|
|
||||||
CPUMask = "0x100" //change from 0x200
|
|
||||||
StackSize = "10000000"
|
|
||||||
NumberOfBuffers = 2
|
|
||||||
Signals = {
|
|
||||||
PCF_STATE = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-SM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MCPS_ACT_SP = {
|
|
||||||
PVName = "EC-GN-P01-GAF-MCPS:PSU2120-ACT-SP-MO"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
GCPS_ACT_SP = {
|
|
||||||
PVName = "EC-GN-P01-GAF-GCPS:PSU2130-ACT-SP-MO"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BPS_REF = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:PSU1000-EREF"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
APS_REF = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:STAT-EREF-CONV.A"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
MCPS_TRG_CURR_SET = {
|
|
||||||
PVName = "EC-GN-P01-GAF-MCPS:PSU2120-TRG-CURR-SET-MO"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
MCPS_TRG_CURR_SET = {
|
|
||||||
PVName = "EC-GN-P01-GAF-MCPS:PSU2120-TRG-CURR-SET-MO"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
FHPS_REF = {
|
|
||||||
PVName = "EC-GN-P01-GAF-FHPS:PSU2610-EREF"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
CSV_LOADED = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-CSV-LOADED"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
CSV_ERR = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-CSV-ERR"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
ELAPSED_TIME = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-ELAPSED"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
HVARMED = {
|
|
||||||
PVName = "EC-GN-P01-GPF:PCF4210-YTS-GA1"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
HVINJECTION = {
|
|
||||||
PVName = "EC-GN-P01-GPF:PCF4210-YTS-GA2"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
RFON = {
|
|
||||||
PVName = "EC-GN-P01-GPF:PCF4210-YTS-GA3"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MHVPS_REF = {
|
|
||||||
PVName = "EC-GN-P01-PMF:STAT-EREF-CALC.A"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
PREP_TIME_WF = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-PREP-TIME-WF"
|
|
||||||
Type = int32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
MHVPS_PREP_WF = {
|
|
||||||
PVName = "EC-GN-P01-PMF:STAT-PREP-WF"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
BPS_PREP_WF = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:STAT-PREP-WF"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
APS_PREP_WF = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:STAT-PREP-WF"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
MCPS_PREP_WF = {
|
|
||||||
PVName = "EC-GN-P01-GAF-MCPS:STAT-PREP-WF"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GCPS_PREP_WF = {
|
|
||||||
PVName = "EC-GN-P01-GAF-GCPS:STAT-PREP-WF"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
FHPS_PREP_WF = {
|
|
||||||
PVName = "EC-GN-P01-GAF-FHPS:STAT-PREP-WF"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
CCPS_REF = {
|
|
||||||
PVName = "EC-GN-P01-GAF-CCPS:PSU2320-EREF"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
MHVPS_STOP = {
|
|
||||||
PVName = "EC-GN-P01-PMF:PSU0000-COFF"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
APS_STOP = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:PSU3000-CTRP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BPS_STOP = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:PSU1000-CTRP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BEAM_ON_TIME = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-BEAMON-TIME"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PCF_FLT = {
|
|
||||||
PVName = "EC-GN-P01-GPF:PCF4210-CTRP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PXI_FLT = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-RV2"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BEAM_ON_STAT = {
|
|
||||||
PVName = "EC-GN-P01-GAFP:FMC4310-YSTA-GAOP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
SHOT_ID = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-SHOT-ID"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
FHPS_AUTO_STAT = {
|
|
||||||
PVName = "EC-GN-P01-GAF-FHPS:PSU2610-AUTO-STAT"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
APS_HVON = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:PSU3000-CON-HV"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
APS_SWON = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:PSU3000-CON-SW"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BPS_HVON = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:PSU1000-CON-HV"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BPS_SWON = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:PSU1000-CON-SW"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MHVPS_HVON = {
|
|
||||||
PVName = "EC-GN-P01-PMF:STAT-HVON-CALC.A"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,419 +0,0 @@
|
|||||||
+DDB2 = {
|
|
||||||
Class = GAMDataSource
|
|
||||||
AllowNoProducers = 1
|
|
||||||
ResetUnusedVariablesAtStateChange = 0
|
|
||||||
}
|
|
||||||
+TimerSDN = {
|
|
||||||
Class = LinuxTimer
|
|
||||||
SleepNature = "Busy"
|
|
||||||
SleepPercentage = 40
|
|
||||||
ExecutionMode = RealTimeThread
|
|
||||||
CPUMask = 0x200
|
|
||||||
Signals = {
|
|
||||||
Counter = {
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
Time = {
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// for ESDN packet subscription/publication.
|
|
||||||
+SDNSubCommands = {
|
|
||||||
Class = SDN::SDNSubscriber
|
|
||||||
Topic = ECPC2SCUJA
|
|
||||||
Interface = SDN_IFACE
|
|
||||||
CPUs = 0x200 //change from 100
|
|
||||||
Locked = 1
|
|
||||||
Timeout = 2
|
|
||||||
Signals = {
|
|
||||||
Header = {
|
|
||||||
Type = uint8
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 48
|
|
||||||
}
|
|
||||||
ESDNHeaderVersionId = {
|
|
||||||
Type = uint8
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
ESDNHeaderSize = {
|
|
||||||
Type = uint8
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
ESDNStatus = {
|
|
||||||
Type = uint8
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
ESDNDoNotUse = {
|
|
||||||
Type = uint8
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
ESDNTime = {
|
|
||||||
Type = uint32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
Command = {
|
|
||||||
Type = uint16
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 64
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+SDNReply = {
|
|
||||||
Class = SDN::SDNPublisher
|
|
||||||
Topic = SCUJA2ECPC
|
|
||||||
Interface = SDN_IFACE
|
|
||||||
CPUs = 0x200 //changed from 0x100
|
|
||||||
Locked = 1
|
|
||||||
Signals = {
|
|
||||||
Header = {
|
|
||||||
Type = uint8
|
|
||||||
NumberOfElements = 48
|
|
||||||
}
|
|
||||||
ESDNHeaderVersionId = {
|
|
||||||
Type = uint8
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
ESDNHeaderSize = {
|
|
||||||
Type = uint8
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
ESDNStatus = {
|
|
||||||
Type = uint8
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
ESDNDoNotUse = {
|
|
||||||
Type = uint8
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
ESDNTime = {
|
|
||||||
Type = uint32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
ReplyStatus = {
|
|
||||||
Type = uint16
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
ReplyWaveformAck = {
|
|
||||||
Type = uint16
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
//Status (26Bytes?) is not assigned
|
|
||||||
//GyrotronA measurements
|
|
||||||
//56Bytes are used as Gyrotron1 Measurements (verified on 2020/10/22)
|
|
||||||
GYA_MHVPS_MESVOLT = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_MHVPS_MESCURR = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_BPS_MESVOLT = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_BPS_MESCURR = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_APS_MESVOLT = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_APS_MESCURR = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESVOLT = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESCURR = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESVOLT = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESCURR = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_MCPS_CURR_MON = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_GCPS_CURR_MON = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_FHPS_MEAS_ACI = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYA_CCPS_MEAS_DCI = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
//GyrotronB measurements
|
|
||||||
GYB_MHVPS_MESVOLT = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_MHVPS_MESCURR = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_BPS_MESVOLT = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_BPS_MESCURR = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_APS_MESVOLT = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_APS_MESCURR = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESVOLT = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESCURR = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESVOLT = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESCURR = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_MCPS_CURR_MON = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_GCPS_CURR_MON = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_FHPS_MEAS_ACI = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
GYB_CCPS_MEAS_DCI = {
|
|
||||||
Type = float32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+EPICSCAInput_Th2 = {
|
|
||||||
Class = "EPICSCA::EPICSCAInput"
|
|
||||||
CPUMask = "0x100" //change from 200
|
|
||||||
StackSize = "10000000"
|
|
||||||
Signals = {
|
|
||||||
// Analog Input PVs.
|
|
||||||
GYA_BPS_MESVOLT = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:PSU1000-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYB_BPS_MESVOLT = {
|
|
||||||
PVName = "EC-GN-P01-PB2F:PSU2000-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYA_BPS_MESCURR = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:PSU1000-IT"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYB_BPS_MESCURR = {
|
|
||||||
PVName = "EC-GN-P01-PB2F:PSU2000-IT"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYA_APS_MESVOLT = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:PSU3000-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYB_APS_MESVOLT = {
|
|
||||||
PVName = "EC-GN-P01-PA2F:PSU4000-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYA_APS_MESCURR = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:PSU3000-IT"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYB_APS_MESCURR = {
|
|
||||||
PVName = "EC-GN-P01-PA2F:PSU4000-IT"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESVOLT = {
|
|
||||||
PVName = "EC-GN-P01-GAF:MOE2810-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESVOLT = {
|
|
||||||
PVName = "EC-GN-P01-GBF:MOE2810-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESCURR = {
|
|
||||||
PVName = "EC-GN-P01-GAF:MOE2820-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESCURR = {
|
|
||||||
PVName = "EC-GN-P01-GBF:MOE2820-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESVOLT = {
|
|
||||||
PVName = "EC-GN-P01-GAF:MOE2830-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESVOLT = {
|
|
||||||
PVName = "EC-GN-P01-GBF:MOE2830-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESCURR = {
|
|
||||||
PVName = "EC-GN-P01-GAF:MRF2910-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESCURR = {
|
|
||||||
PVName = "EC-GN-P01-GBF:MRF2910-ET"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYA_MHVPS_MESVOLT = {
|
|
||||||
PVName = "EC-GN-P01-PMF:PSU0000-ET-GA"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYB_MHVPS_MESVOLT = {
|
|
||||||
PVName = "EC-GN-P01-PMF:PSU0000-ET-GB"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYA_MHVPS_MESCURR = {
|
|
||||||
PVName = "EC-GN-P01-PMF:PSU0000-IT-GA"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYB_MHVPS_MESCURR = {
|
|
||||||
PVName = "EC-GN-P01-PMF:PSU0000-IT-GB"
|
|
||||||
Type = float32
|
|
||||||
NumberOfElements = 8000
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
}
|
|
||||||
GYA_MCPS_CURR_MON = {
|
|
||||||
PVName = "EC-GN-P01-GAF-MCPS:PSU2120-CURR-MON"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_GCPS_CURR_MON = {
|
|
||||||
PVName = "EC-GN-P01-GAF-GCPS:PSU2130-CURR-MON"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_MCPS_CURR_MON = {
|
|
||||||
PVName = "EC-GN-P01-GBF-MCPS:PSU2120-CURR-MON"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_GCPS_CURR_MON = {
|
|
||||||
PVName = "EC-GN-P01-GBF-GCPS:PSU2130-CURR-MON"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_FHPS_MEAS_ACI = {
|
|
||||||
PVName = "EC-GN-P01-GAF-FHPS:PSU2610-MEAS-ACI"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_FHPS_MEAS_ACI = {
|
|
||||||
PVName = "EC-GN-P01-GBF-FHPS:PSU2610-MEAS-ACI"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_CCPS_MEAS_DCI = {
|
|
||||||
PVName = "EC-GN-P01-GAF-CCPS:PSU2320-MEAS-DCI"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_CCPS_MEAS_DCI = {
|
|
||||||
PVName = "EC-GN-P01-GBF-CCPS:PSU2320-MEAS-DCI"
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,296 +0,0 @@
|
|||||||
+DDB3 = {
|
|
||||||
Class = GAMDataSource
|
|
||||||
AllowNoProducers = 1
|
|
||||||
ResetUnusedVariablesAtStateChange = 0
|
|
||||||
}
|
|
||||||
// Timer for thread 3 (RTStateMachineGAM execution cycle.)
|
|
||||||
+Timer = {
|
|
||||||
Class = LinuxTimer
|
|
||||||
SleepNature = "Busy"
|
|
||||||
SleepPercentage = 40
|
|
||||||
ExecutionMode = RealTimeThread
|
|
||||||
CPUMask = 0x400
|
|
||||||
Signals = {
|
|
||||||
Counter = {
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
Time = {
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Direct HW accesses. Follwing device/port assignment must be consistent with actual wiring.
|
|
||||||
// NI6259.0
|
|
||||||
// APS_SWON BoardId=0, PortId=3.0
|
|
||||||
+NI6259 = {
|
|
||||||
Class = NI6259::NI6259DIO
|
|
||||||
DeviceName = "/dev/pxi6259"
|
|
||||||
BoardId = 1
|
|
||||||
Signals = {
|
|
||||||
NI6259Value = {
|
|
||||||
Type = uint32
|
|
||||||
Mask = 0xFF
|
|
||||||
PortId = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//NI6528 digital output has logic low == 0 == close relay. ((See Driver Manual.)
|
|
||||||
//When the program send ON signal, this program writes 0 on the data source.
|
|
||||||
+NI6528P3 = {
|
|
||||||
Class = NI6528
|
|
||||||
DeviceName = "/dev/pxi6528.1"
|
|
||||||
Port = 3
|
|
||||||
NI6528P3Value = {
|
|
||||||
NI6528P3Value = {
|
|
||||||
Type = uint8
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//P3.0 APS_HVON
|
|
||||||
//P3.1 APS_SWON
|
|
||||||
//P3.2 APS_Shutdown
|
|
||||||
//P3.3 BPS_HVON
|
|
||||||
//P3.4 BPS_SWON
|
|
||||||
//P3.5 BPS_Shutdown
|
|
||||||
//P3.6 GY1_Beam_ON_status
|
|
||||||
//P3.7 RV5 _cRIO
|
|
||||||
|
|
||||||
+NI6528P4 = {
|
|
||||||
Class = NI6528
|
|
||||||
DeviceName = "/dev/pxi6528.1"
|
|
||||||
Port = 4
|
|
||||||
NI6528P4Value = {
|
|
||||||
NI6528P4Value = {
|
|
||||||
Type = uint8
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//P4.0 RV6 _cRIO
|
|
||||||
//P4.1 RV7 _cRIO
|
|
||||||
//P4.2 RV8 _cRIO
|
|
||||||
//P4.3 MHVPS_HVON
|
|
||||||
//P4.4 MHVPS_Shutdown
|
|
||||||
//P4.5 MHVPS_MOD
|
|
||||||
//P4.6 PCF_FLT
|
|
||||||
//P4.7 HVArmed
|
|
||||||
|
|
||||||
+NI6528P5 = {
|
|
||||||
Class = NI6528
|
|
||||||
DeviceName = "/dev/pxi6528.1"
|
|
||||||
Port = 5
|
|
||||||
NI6528P5Value = {
|
|
||||||
NI6528P5Value = {
|
|
||||||
Type = uint8
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//P5.0 HVInjection
|
|
||||||
//P5.1 RFON
|
|
||||||
//P5.2 FHPS_Rampup_complete
|
|
||||||
//P5.3 SCM_RU_Complete
|
|
||||||
//P5.4 SCM_RD_Complete
|
|
||||||
//P5.5 CCPS_IN_OPERATION
|
|
||||||
//P5.6 None
|
|
||||||
//P5.7 None
|
|
||||||
+EPICSCAInput_Th3 = {
|
|
||||||
Class = "EPICSCA::EPICSCAInput"
|
|
||||||
CPUMask = "0x100" //change from 200
|
|
||||||
StackSize = "10000000"
|
|
||||||
Signals = {
|
|
||||||
MHVPS_DT = {
|
|
||||||
PVName = "EC-GN-P01-PMF:STAT-DT-HVON"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
APS_HVON_DT = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:STAT-DT-HVON"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
APS_SWON_DT = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:STAT-DT-SWON"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BPS_HVON_DT = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:STAT-DT-HVON"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BPS_SWON_DT = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:STAT-DT-SWON"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
SHOTLEN = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-DT-SHOTLEN"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PLC_ON = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-YTS-ST3R"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
GYA_APS_FLT = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:PSU3000-YFLT"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
GYB_APS_FLT = {
|
|
||||||
PVName = "EC-GN-P01-PA2F:PSU4000-YFLT"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
GYA_BPS_FLT = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:PSU1000-YFLT"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
GYB_BPS_FLT = {
|
|
||||||
PVName = "EC-GN-P01-PB2F:PSU2000-YFLT"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MHVPS_OV = {
|
|
||||||
PVName = "EC-GN-P01-GAFP:FMC4310-YFLT-OC"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MHVPS_OC = {
|
|
||||||
PVName = "EC-GN-P01-GAFP:FMC4310-YFLT-OV"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MHVPS_FLT = {
|
|
||||||
PVName = "EC-GN-P01-PMF:PSU0000-YFLT"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MIS_ITL = {
|
|
||||||
PVName = "EC-GN-P01-GAFP:FMC4310-YTRP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MISB_ITL = {
|
|
||||||
PVName = "EC-GN-P01-GBFP:FMC4310-YTRP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PLC_ITL = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-YTRP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PLC_MODE1 = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-YTS-MD1"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PLC_MODE2 = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-YTS-MD2"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PLC_MODE3 = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-YTS-MD3"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PLC_MODE4 = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-YTS-MD4"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MD1_SHOTLEN_LIM = {
|
|
||||||
PVName = "EC-GN-P01-GPF:STAT-MD1-LIM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MD2_SHOTLEN_LIM = {
|
|
||||||
PVName = "EC-GN-P01-GPF:STAT-MD2-LIM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MD3_SHOTLEN_LIM = {
|
|
||||||
PVName = "EC-GN-P01-GPF:STAT-MD3-LIM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MD4_SHOTLEN_LIM = {
|
|
||||||
PVName = "EC-GN-P01-GPF:STAT-MD4-LIM"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
RFON = {
|
|
||||||
PVName = "EC-GN-P01-GPF:PCF4210-YTS-GA3"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
APS_HVON = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:PSU3000-CON-HV"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
APS_SWON = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:PSU3000-CON-SW"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
APS_STOP = {
|
|
||||||
PVName = "EC-GN-P01-PA1F:PSU3000-CTRP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BPS_HVON = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:PSU1000-CON-HV"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BPS_SWON = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:PSU1000-CON-SW"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BPS_STOP = {
|
|
||||||
PVName = "EC-GN-P01-PB1F:PSU1000-CTRP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
BEAM_ON_STAT = {
|
|
||||||
PVName = "EC-GN-P01-GAFP:FMC4310-YSTA-GAOP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
DO_REV5 = {
|
|
||||||
PVName = "EC-GN-P01-GAFP:FMC4310-RV5"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
DO_REV6 = {
|
|
||||||
PVName = "EC-GN-P01-GAFP:FMC4310-RV6"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
DO_REV7 = {
|
|
||||||
PVName = "EC-GN-P01-GAFP:FMC4310-RV7"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
DO_REV8 = {
|
|
||||||
PVName = "EC-GN-P01-GAFP:FMC4310-RV8"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MHVPS_HVON = {
|
|
||||||
PVName = "EC-GN-P01-PMF:PSU0000-CON-SW"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
MHVPS_MODSW = {
|
|
||||||
PVName = "EC-GN-P01-PMF:PSU0000-CON-MOD"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PCF_FLT = {
|
|
||||||
PVName = "EC-GN-P01-GPF:PCF4210-CTRP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
PXI_FLT = {
|
|
||||||
PVName = "EC-GN-P01-GPS:PLC4110-RV2"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
HVARMED = {
|
|
||||||
PVName = "EC-GN-P01-GPF:PCF4210-YTS-GA1"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
HVINJECTION = {
|
|
||||||
PVName = "EC-GN-P01-GPF:PCF4210-YTS-GA2"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
SHORT_PULSE_MODE = {
|
|
||||||
PVName = "EC-GN-P01-GAF:STAT-SHORT-PULSE"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
FHPS_RU = {
|
|
||||||
PVName = "EC-GN-P01-GAF-FHPS:PSU2610-YTS-RUP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
SCM_RU = {
|
|
||||||
PVName = "EC-GN-P01-GAF-MCPS:PSU2120-YTS-RUP"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
SCM_RD = {
|
|
||||||
PVName = "EC-GN-P01-GAF-MCPS:PSU2120-YTS-RDOWN"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
CCPS_IN_OPERATION = {
|
|
||||||
PVName = "EC-GN-P01-GAF-CCPS:PSU2320-TR"
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
+DDB4 = {
|
|
||||||
Class = GAMDataSource
|
|
||||||
AllowNoProducers = 1
|
|
||||||
ResetUnusedVariablesAtStateChange = 0
|
|
||||||
}
|
|
||||||
+Timer10Hz = {
|
|
||||||
Class = LinuxTimer
|
|
||||||
SleepNature = "Busy"
|
|
||||||
SleepPercentage = 40
|
|
||||||
ExecutionMode = RealTimeThread
|
|
||||||
CPUMask = 0x800
|
|
||||||
Signals = {
|
|
||||||
Counter = {
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
Time = {
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,518 +0,0 @@
|
|||||||
// Timer for SDN thread.
|
|
||||||
+TimeSDNGAM = {
|
|
||||||
Class = IOGAM
|
|
||||||
InputSignals = {
|
|
||||||
Time = {
|
|
||||||
DataSource = TimerSDN
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
Counter = {
|
|
||||||
DataSource = TimerSDN
|
|
||||||
Type = uint32
|
|
||||||
Frequency = 1000 //operation:1k(=1ms cyc), debug:10
|
|
||||||
}
|
|
||||||
GYA_BPS_MESVOLT = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYB_BPS_MESVOLT = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYA_BPS_MESCURR = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYB_BPS_MESCURR = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYA_APS_MESVOLT = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYB_APS_MESVOLT = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYA_APS_MESCURR = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYB_APS_MESCURR = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESVOLT = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESVOLT = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESCURR = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESCURR = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESVOLT = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESVOLT = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESCURR = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESCURR = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYA_MHVPS_MESVOLT = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYB_MHVPS_MESVOLT = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYA_MHVPS_MESCURR = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYB_MHVPS_MESCURR = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
}
|
|
||||||
GYA_MCPS_CURR_MON = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
}
|
|
||||||
GYB_MCPS_CURR_MON = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
}
|
|
||||||
GYA_GCPS_CURR_MON = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
}
|
|
||||||
GYB_GCPS_CURR_MON = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
}
|
|
||||||
GYA_FHPS_MEAS_ACI = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
}
|
|
||||||
GYB_FHPS_MEAS_ACI = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
}
|
|
||||||
GYA_CCPS_MEAS_DCI = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
}
|
|
||||||
GYB_CCPS_MEAS_DCI = {
|
|
||||||
DataSource = EPICSCAInput_Th2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
OutputSignals = {
|
|
||||||
TimeSDN = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
CounterSDN = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
GYA_BPS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_BPS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_BPS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_BPS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_APS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_APS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_APS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_APS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_MHVPS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_MHVPS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_MHVPS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_MHVPS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_MCPS_CURR_MON = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_MCPS_CURR_MON = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_GCPS_CURR_MON = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_GCPS_CURR_MON = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_FHPS_MEAS_ACI = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_FHPS_MEAS_ACI = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_CCPS_MEAS_DCI = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_CCPS_MEAS_DCI = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//GAM for SDN communication.(ProcessWF:thread1, Subscribe/Publish:thread2)
|
|
||||||
+SDNCommandGAM = {
|
|
||||||
Class = IOGAM
|
|
||||||
InputSignals = {
|
|
||||||
Command = {
|
|
||||||
DataSource = SDNSubCommands
|
|
||||||
Type = uint16
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 64
|
|
||||||
Ranges = {{0 0}}
|
|
||||||
// TODO uncomment this for release/testing
|
|
||||||
//Frequency = 1
|
|
||||||
}
|
|
||||||
ESDNTime = {
|
|
||||||
DataSource = SDNSubCommands
|
|
||||||
Type = uint32
|
|
||||||
NumberOfDimensions = 1
|
|
||||||
NumberOfElements = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
OutputSignals = {
|
|
||||||
Command = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = uint16
|
|
||||||
}
|
|
||||||
ESDNTime = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+SDNReplyGAM = {
|
|
||||||
Class = IOGAM
|
|
||||||
InputSignals = {
|
|
||||||
ESDNTime = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
WaveformPacketID = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = uint16
|
|
||||||
}
|
|
||||||
GYA_BPS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_BPS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_BPS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_BPS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_APS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_APS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_APS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_APS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_MHVPS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_MHVPS_MESVOLT = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_MHVPS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_MHVPS_MESCURR = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_MCPS_CURR_MON = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_MCPS_CURR_MON = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_GCPS_CURR_MON = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_GCPS_CURR_MON = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_FHPS_MEAS_ACI = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_FHPS_MEAS_ACI = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_CCPS_MEAS_DCI = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYB_CCPS_MEAS_DCI = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
|
|
||||||
Command = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = uint16
|
|
||||||
}
|
|
||||||
GYA_MCPS_CURR_MON = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_GCPS_CURR_MON = {
|
|
||||||
DataSource = DDB2
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
OutputSignals = {
|
|
||||||
ESDNTime = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
Type = uint32
|
|
||||||
Trigger = 1
|
|
||||||
}
|
|
||||||
ReplyWaveformAck = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
Type = uint16
|
|
||||||
}
|
|
||||||
GYA_BPS_MESVOLT = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_BPS_MESVOLT = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_BPS_MESCURR = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_BPS_MESCURR = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_APS_MESVOLT = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_APS_MESVOLT = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_APS_MESCURR = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_APS_MESCURR = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESVOLT = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESVOLT = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_ARC1_MESCURR = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_ARC1_MESCURR = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESVOLT = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESVOLT = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_ARC2_MESCURR = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_ARC2_MESCURR = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_MHVPS_MESVOLT = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_MHVPS_MESVOLT = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_MHVPS_MESCURR = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_MHVPS_MESCURR = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_MCPS_CURR_MON = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_MCPS_CURR_MON = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_GCPS_CURR_MON = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_GCPS_CURR_MON = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_FHPS_MEAS_ACI = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_FHPS_MEAS_ACI = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYA_CCPS_MEAS_DCI = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
GYB_CCPS_MEAS_DCI = {
|
|
||||||
DataSource = SDNReply
|
|
||||||
}
|
|
||||||
|
|
||||||
Command = {
|
|
||||||
DataSource = TriggerAsyncBridge
|
|
||||||
Type = uint16
|
|
||||||
}
|
|
||||||
GYA_MCPS_CURR_MON = {
|
|
||||||
DataSource = RealTimeThreadAsyncBridge
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
GYA_GCPS_CURR_MON = {
|
|
||||||
DataSource = RealTimeThreadAsyncBridge
|
|
||||||
Type = float32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,80 +0,0 @@
|
|||||||
+Timer10HzGAM = {
|
|
||||||
Class = IOGAM
|
|
||||||
InputSignals = {
|
|
||||||
Counter = {
|
|
||||||
DataSource = Timer10Hz
|
|
||||||
Type = uint32
|
|
||||||
Frequency = 1 //Hz
|
|
||||||
}
|
|
||||||
Time = {
|
|
||||||
DataSource = Timer10Hz
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
OutputSignals = {
|
|
||||||
Counter10Hz = {
|
|
||||||
DataSource = DDB4
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
Time1Hz = {
|
|
||||||
DataSource = DDB4
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GAMExecTime = {//debug
|
|
||||||
Class = IOGAM
|
|
||||||
InputSignals = {
|
|
||||||
GAMEPICSCA_ExecTime = {
|
|
||||||
DataSource = Timings
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
StopRequestGAM_ExecTime = {
|
|
||||||
DataSource = Timings
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
ModeLimitGAM_ExecTime = {
|
|
||||||
DataSource = Timings
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
NI6528P3GAM_ExecTime = {
|
|
||||||
DataSource = Timings
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
terminalInterfaceGAM_ExecTime = {
|
|
||||||
DataSource = Timings
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
GAMRealTimeStateMachine_ExecTime = {
|
|
||||||
DataSource = Timings
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
OutputSignals = {
|
|
||||||
GAMEPICSCA_ExecTime = {
|
|
||||||
DataSource = Display
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
StopRequestGAM_ExecTime = {
|
|
||||||
DataSource = Display
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
ModeLimitGAM_ExecTime = {
|
|
||||||
DataSource = Display
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
NI6528P3GAM_ExecTime = {
|
|
||||||
DataSource = Display
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
terminalInterfaceGAM_ExecTime = {
|
|
||||||
DataSource = Display
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
GAMRealTimeStateMachine_ExecTime = {
|
|
||||||
DataSource = Display
|
|
||||||
Type = uint32
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,786 +0,0 @@
|
|||||||
// StateMachine node
|
|
||||||
+StateMachine = {
|
|
||||||
Class = StateMachine
|
|
||||||
+INITIAL = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+Start = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITSTANDBY"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitStandby
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+DISABLED = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+GoWaitStandby = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITSTANDBY"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitStandby
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoError = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "ERROR"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = Error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+WAITSTANDBY = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+GoWaitReady = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITREADY"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitReady
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoDisabled = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "DISABLED"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = Disabled
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoError = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "ERROR"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = Error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+WAITREADY = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+GoWaitStandby = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITSTANDBY"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitStandby
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoWaitPermit = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITPERMIT"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitPermit
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoError = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "ERROR"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = Error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+WAITPERMIT = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+GoWaitReady = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITREADY"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitReady
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoWaitHVON = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITHVON"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitHVON
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoWaitHVON_SDN = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITHVON_SDN"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitHVON_SDN
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoWaitHVON_PREP = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITHVON_PREP"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitHVON_PREP
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoWaitHVON_SDN_PREP = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITHVON_SDN_PREP"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitHVON_SDN_PREP
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoError = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "ERROR"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = Error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// HVPS sequence control states.
|
|
||||||
+WAITHVON = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+GoWaitStandby = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITSTANDBY"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitStandby
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoWaitPermit = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITPERMIT"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitPermit
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoError = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "ERROR"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = Error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+WAITHVON_SDN = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+GoWaitStandby = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITSTANDBY"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitStandby
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoWaitPermit = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITPERMIT"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitPermit
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoError = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "ERROR"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = Error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+WAITHVON_PREP = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+GoWaitStandby = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITSTANDBY"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitStandby
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoWaitPermit = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITPERMIT"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitPermit
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoError = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "ERROR"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = Error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+WAITHVON_SDN_PREP = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+GoWaitStandby = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITSTANDBY"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitStandby
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoWaitPermit = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITPERMIT"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitPermit
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+GoError = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "ERROR"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = Error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Error State (Enter by HVPS errors)
|
|
||||||
+ERROR = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+GoWaitStandby = {
|
|
||||||
Class = StateMachineEvent
|
|
||||||
NextState = "WAITSTANDBY"
|
|
||||||
NextStateError = "ERROR"
|
|
||||||
+StopCurrentStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StopCurrentStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
+PrepareNextStateMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Mode = ExpectsReply
|
|
||||||
Function = PrepareNextState
|
|
||||||
+Parameters = {
|
|
||||||
Class = ConfigurationDatabase
|
|
||||||
param1 = WaitStandby
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+StartNextStateExecutionMsg = {
|
|
||||||
Class = Message
|
|
||||||
Destination = JAGyrotronRTApp
|
|
||||||
Function = StartNextStateExecution
|
|
||||||
Mode = ExpectsReply
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
+Disabled = {
|
|
||||||
Class = RealTimeState
|
|
||||||
+Threads = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+Thread1 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer1kHzGAM
|
|
||||||
InDisabledGAM
|
|
||||||
CCPSWaveformGAM
|
|
||||||
ChoiseGAM MCPSGAM GCPSGAM
|
|
||||||
PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
|
|
||||||
EPICSOutputGAM
|
|
||||||
GoErrorGAM GoWaitStandbyGAM
|
|
||||||
}
|
|
||||||
CPUs = TH1_CPU
|
|
||||||
}
|
|
||||||
+Thread2 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
TimeSDNGAM SDNCommandGAM SDNReplyGAM
|
|
||||||
}
|
|
||||||
CPUs = TH2_CPU
|
|
||||||
}
|
|
||||||
+Thread3 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer100kHzGAM
|
|
||||||
NI6528P3GAM NI6528P4GAM NI6528P5GAM
|
|
||||||
NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM
|
|
||||||
NI6528P3WriteGAM NI6528P4WriteGAM NI6528P5WriteGAM
|
|
||||||
ShareOutGAM
|
|
||||||
}
|
|
||||||
CPUs = TH3_CPU
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
+Error = {
|
|
||||||
Class = RealTimeState
|
|
||||||
+Threads = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+Thread1 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer1kHzGAM
|
|
||||||
InErrorGAM
|
|
||||||
CCPSWaveformGAM FHPSRampupGAM
|
|
||||||
ChoiseGAM
|
|
||||||
PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
|
|
||||||
EPICSOutputGAM
|
|
||||||
ExitedHVArmedInjectionRFONGAM ResetPSsGAM ErrorGAM
|
|
||||||
EPICSOutputGAM
|
|
||||||
FromErrorToWaitStandbyGAM
|
|
||||||
}
|
|
||||||
CPUs = TH1_CPU
|
|
||||||
}
|
|
||||||
+Thread2 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
TimeSDNGAM SDNCommandGAM SDNReplyGAM
|
|
||||||
}
|
|
||||||
CPUs = TH2_CPU
|
|
||||||
}
|
|
||||||
+Thread3 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer100kHzGAM
|
|
||||||
NI6528P3GAM NI6528P4GAM NI6528P5GAM
|
|
||||||
NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM
|
|
||||||
NI6528P3WriteGAM NI6528P4WriteGAM NI6528P5WriteGAM
|
|
||||||
ShareOutGAM
|
|
||||||
}
|
|
||||||
CPUs = TH3_CPU
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
+WaitHVON = {
|
|
||||||
Class = RealTimeState
|
|
||||||
+Threads = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+Thread1 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer1kHzGAM
|
|
||||||
InWaitHVONGAM
|
|
||||||
CCPSWaveformGAM FHPSRampupGAM
|
|
||||||
ChoiseGAM
|
|
||||||
PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
|
|
||||||
EPICSOutputGAM
|
|
||||||
FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM
|
|
||||||
}
|
|
||||||
CPUs = TH1_CPU
|
|
||||||
}
|
|
||||||
+Thread2 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
TimeSDNGAM SDNCommandGAM SDNReplyGAM
|
|
||||||
}
|
|
||||||
CPUs = TH2_CPU
|
|
||||||
}
|
|
||||||
+Thread3 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer100kHzGAM
|
|
||||||
StopRequestGAM ModeLimitGAM
|
|
||||||
GAMRealTimeStateMachine
|
|
||||||
NI6528P5GAM
|
|
||||||
NI6528P5PV2PortGAM
|
|
||||||
NI6528P5WriteGAM
|
|
||||||
ShareOutGAM
|
|
||||||
}
|
|
||||||
CPUs = TH3_CPU
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
+WaitHVON_PREP = {
|
|
||||||
Class = RealTimeState
|
|
||||||
+Threads = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+Thread1 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer1kHzGAM
|
|
||||||
InWaitHVON_PREPGAM
|
|
||||||
CCPSWaveformGAM PreProgrammedGAM FHPSRampupGAM
|
|
||||||
ChoiseGAM
|
|
||||||
PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
|
|
||||||
EPICSOutputGAM
|
|
||||||
FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM
|
|
||||||
}
|
|
||||||
CPUs = TH1_CPU
|
|
||||||
}
|
|
||||||
+Thread2 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
TimeSDNGAM SDNCommandGAM SDNReplyGAM
|
|
||||||
}
|
|
||||||
CPUs = TH2_CPU
|
|
||||||
}
|
|
||||||
+Thread3 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer100kHzGAM
|
|
||||||
StopRequestGAM ModeLimitGAM
|
|
||||||
GAMRealTimeStateMachine
|
|
||||||
NI6528P5GAM
|
|
||||||
NI6528P5PV2PortGAM
|
|
||||||
NI6528P5WriteGAM
|
|
||||||
ShareOutGAM
|
|
||||||
}
|
|
||||||
CPUs = TH3_CPU
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
+WaitHVON_SDN = {
|
|
||||||
Class = RealTimeState
|
|
||||||
+Threads = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+Thread1 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer1kHzGAM
|
|
||||||
InWaitHVON_SDNGAM
|
|
||||||
CCPSWaveformGAM FHPSRampupGAM
|
|
||||||
ChoiseGAM
|
|
||||||
PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
|
|
||||||
EPICSOutputGAM
|
|
||||||
FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM
|
|
||||||
}
|
|
||||||
CPUs = TH1_CPU
|
|
||||||
}
|
|
||||||
+Thread2 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
TimeSDNGAM SDNCommandGAM SDNReplyGAM
|
|
||||||
}
|
|
||||||
CPUs = TH2_CPU
|
|
||||||
}
|
|
||||||
+Thread3 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer100kHzGAM
|
|
||||||
StopRequestGAM ModeLimitGAM
|
|
||||||
GAMSDNRealTimeStateMachine
|
|
||||||
NI6528P3GAM NI6528P4GAM NI6528P5GAM
|
|
||||||
TerminalInterfaceGAM
|
|
||||||
NI6528P5PV2PortGAM
|
|
||||||
NI6528P5WriteGAM
|
|
||||||
ShareOutGAM
|
|
||||||
}
|
|
||||||
CPUs = TH3_CPU
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
+WaitHVON_SDN_PREP = {
|
|
||||||
Class = RealTimeState
|
|
||||||
+Threads = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+Thread1 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer1kHzGAM
|
|
||||||
InWaitHVON_SDN_PREPGAM
|
|
||||||
CCPSWaveformGAM PreProgrammedGAM FHPSRampupGAM
|
|
||||||
ChoiseGAM
|
|
||||||
PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
|
|
||||||
EPICSOutputGAM
|
|
||||||
FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM
|
|
||||||
}
|
|
||||||
CPUs = TH1_CPU
|
|
||||||
}
|
|
||||||
+Thread2 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
TimeSDNGAM SDNCommandGAM SDNReplyGAM
|
|
||||||
}
|
|
||||||
CPUs = TH2_CPU
|
|
||||||
}
|
|
||||||
+Thread3 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer100kHzGAM
|
|
||||||
StopRequestGAM ModeLimitGAM
|
|
||||||
GAMSDNRealTimeStateMachine
|
|
||||||
NI6528P3GAM NI6528P4GAM NI6528P5GAM
|
|
||||||
TerminalInterfaceGAM
|
|
||||||
NI6528P5PV2PortGAM
|
|
||||||
NI6528P5WriteGAM
|
|
||||||
ShareOutGAM
|
|
||||||
}
|
|
||||||
CPUs = TH3_CPU
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
+WaitPermit = {
|
|
||||||
Class = RealTimeState
|
|
||||||
+Threads = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+Thread1 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer1kHzGAM
|
|
||||||
InWaitPermitGAM
|
|
||||||
CCPSWaveformGAM WFRecordGAM PreProgrammedGAM FHPSRampupGAM
|
|
||||||
ChoiseGAM
|
|
||||||
PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
|
|
||||||
EPICSOutputGAM
|
|
||||||
GoWaitHVONGAM GoWaitHVON_PREP_GAM GoWaitHVON_SDN_GAM GoWaitHVON_SDN_PREP_GAM GoWaitReadyFromWaitPermitGAM GoErrorGAM
|
|
||||||
}
|
|
||||||
CPUs = TH1_CPU
|
|
||||||
}
|
|
||||||
+Thread2 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
TimeSDNGAM SDNCommandGAM SDNReplyGAM
|
|
||||||
}
|
|
||||||
CPUs = TH2_CPU
|
|
||||||
}
|
|
||||||
+Thread3 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer100kHzGAM
|
|
||||||
NI6528P3GAM NI6528P4GAM NI6528P5GAM
|
|
||||||
NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM
|
|
||||||
NI6528P3WriteGAM NI6528P4WriteGAM NI6528P5WriteGAM
|
|
||||||
ShareOutGAM
|
|
||||||
}
|
|
||||||
|
|
||||||
CPUs = TH3_CPU
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
+WaitReady = {
|
|
||||||
Class = RealTimeState
|
|
||||||
+Threads = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+Thread1 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer1kHzGAM
|
|
||||||
InWaitReadyGAM
|
|
||||||
CCPSWaveformGAM WFRecordGAM PreProgrammedGAM FHPSRampupGAM
|
|
||||||
ChoiseGAM
|
|
||||||
PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
|
|
||||||
EPICSOutputGAM
|
|
||||||
GoWaitPermitGAM GoWaitStandbyFromReadyGAM GoErrorGAM
|
|
||||||
}
|
|
||||||
CPUs = TH1_CPU
|
|
||||||
}
|
|
||||||
+Thread2 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
TimeSDNGAM SDNCommandGAM SDNReplyGAM
|
|
||||||
}
|
|
||||||
CPUs = TH2_CPU
|
|
||||||
}
|
|
||||||
+Thread3 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer100kHzGAM
|
|
||||||
NI6528P3GAM NI6528P4GAM NI6528P5GAM
|
|
||||||
NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM
|
|
||||||
NI6528P3WriteGAM NI6528P4WriteGAM NI6528P5WriteGAM
|
|
||||||
ShareOutGAM
|
|
||||||
}
|
|
||||||
CPUs = TH3_CPU
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
+WaitStandby = {
|
|
||||||
Class = RealTimeState
|
|
||||||
+Threads = {
|
|
||||||
Class = ReferenceContainer
|
|
||||||
+Thread1 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer1kHzGAM
|
|
||||||
InWaitStandbyGAM
|
|
||||||
CCPSWaveformGAM FHPSRampupGAM
|
|
||||||
ChoiseGAM MCPSGAM GCPSGAM
|
|
||||||
PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
|
|
||||||
EPICSOutputGAM
|
|
||||||
GoDisabledGAM GoWaitReadyGAM GoErrorGAM
|
|
||||||
}
|
|
||||||
CPUs = TH1_CPU
|
|
||||||
}
|
|
||||||
+Thread2 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
TimeSDNGAM SDNCommandGAM SDNReplyGAM
|
|
||||||
}
|
|
||||||
CPUs = TH2_CPU
|
|
||||||
}
|
|
||||||
+Thread3 = {
|
|
||||||
Class = RealTimeThread
|
|
||||||
Functions = {
|
|
||||||
Timer100kHzGAM
|
|
||||||
NI6528P3GAM NI6528P4GAM NI6528P5GAM
|
|
||||||
NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM
|
|
||||||
NI6528P3WriteGAM NI6528P4WriteGAM NI6528P5WriteGAM
|
|
||||||
ShareOutGAM
|
|
||||||
}
|
|
||||||
CPUs = TH3_CPU
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -23,7 +23,9 @@
|
|||||||
#############################################################
|
#############################################################
|
||||||
|
|
||||||
#Named of the unit files to be compiled
|
#Named of the unit files to be compiled
|
||||||
OBJSX=JAGyrotronA_FY19_P1.x
|
OBJSX=JARF01App.x
|
||||||
|
MDT=mdt
|
||||||
|
SOURCES=src/*.marte src/state_machine/*.marte src/data/*.marte src/thread1/*.marte src/thread2/*.marte src/thread3/*.marte src/thread4/*.marte src/thread5/*.marte src/thread6/*.marte
|
||||||
|
|
||||||
#Location of the Build directory where the configuration file will be written to
|
#Location of the Build directory where the configuration file will be written to
|
||||||
BUILD_DIR?=.
|
BUILD_DIR?=.
|
||||||
@@ -36,7 +38,7 @@ MAKEDEFAULTDIR=$(MARTe2_DIR)/MakeDefaults
|
|||||||
include $(MAKEDEFAULTDIR)/MakeStdLibDefs.$(TARGET)
|
include $(MAKEDEFAULTDIR)/MakeStdLibDefs.$(TARGET)
|
||||||
|
|
||||||
all: $(OBJS)
|
all: $(OBJS)
|
||||||
echo $(OBJS)
|
$(MDT) build $(SOURCES) -o $(BUILD_DIR)/$(OBJSX)
|
||||||
|
|
||||||
include $(MAKEDEFAULTDIR)/MakeStdLibRules.$(TARGET)
|
include $(MAKEDEFAULTDIR)/MakeStdLibRules.$(TARGET)
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@@ -0,0 +1,99 @@
|
|||||||
|
#package jada_gyro
|
||||||
|
|
||||||
|
|
||||||
|
+WebRoot = {
|
||||||
|
Class = HttpObjectBrowser
|
||||||
|
Root = "."
|
||||||
|
+ObjectBrowse = {
|
||||||
|
Class = HttpObjectBrowser
|
||||||
|
Root = "/"
|
||||||
|
}
|
||||||
|
+ResourcesHtml = {
|
||||||
|
Class = HttpDirectoryResource
|
||||||
|
BaseDir = "/opt/marte2-core/Resources/HTTP"
|
||||||
|
}
|
||||||
|
+Monitor = {
|
||||||
|
Class = HttpDataMonitor
|
||||||
|
Plot0 = {
|
||||||
|
APS_HVON = {
|
||||||
|
Component = RTApp.Data.DDB3
|
||||||
|
Signal = "Signals.APS_HVON"
|
||||||
|
}
|
||||||
|
APS_SWON = {
|
||||||
|
Component = RTApp.Data.DDB3
|
||||||
|
Signal = "Signals.APS_SWON"
|
||||||
|
}
|
||||||
|
BPS_HVON = {
|
||||||
|
Component = RTApp.Data.DDB3
|
||||||
|
Signal = "Signals.BPS_HVON"
|
||||||
|
}
|
||||||
|
BPS_SWON = {
|
||||||
|
Component = RTApp.Data.DDB3
|
||||||
|
Signal = "Signals.BPS_SWON"
|
||||||
|
}
|
||||||
|
HVPS_HVON = {
|
||||||
|
Component = RTApp.Data.DDB3
|
||||||
|
Signal = "Signals.MHVPS_HVON"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+WebServer = {
|
||||||
|
Class = HttpService
|
||||||
|
Port = 8084
|
||||||
|
WebRoot = WebRoot
|
||||||
|
Timeout = 0
|
||||||
|
ListenMaxConnections = 255
|
||||||
|
AcceptTimeout = 1000
|
||||||
|
MaxNumberOfThreads = 8
|
||||||
|
MinNumberOfThreads = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
//# Main Operational State Machine
|
||||||
|
+StateMachine = {
|
||||||
|
Class = StateMachine
|
||||||
|
}
|
||||||
|
|
||||||
|
//# MARTe RealTime Application
|
||||||
|
+RTApp = {
|
||||||
|
Class = RealTimeApplication
|
||||||
|
+Data = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
DefaultDataSource = DDB1
|
||||||
|
//# GAM Datasource for Thread 1
|
||||||
|
+DDB1 = {
|
||||||
|
Class = GAMDataSource
|
||||||
|
AllowNoProducers = 1
|
||||||
|
ResetUnusedVariablesAtStateChange = 0
|
||||||
|
}
|
||||||
|
//# GAMDatasource for thread 2
|
||||||
|
+DDB2 = {
|
||||||
|
Class = GAMDataSource
|
||||||
|
AllowNoProducers = 1
|
||||||
|
ResetUnusedVariablesAtStateChange = 0
|
||||||
|
}
|
||||||
|
//# GAMDatasource for thread 3
|
||||||
|
+DDB3 = {
|
||||||
|
Class = GAMDataSource
|
||||||
|
AllowNoProducers = 1
|
||||||
|
ResetUnusedVariablesAtStateChange = 0
|
||||||
|
}
|
||||||
|
+DDB6 = {
|
||||||
|
Class = GAMDataSource
|
||||||
|
}
|
||||||
|
+Timings = {
|
||||||
|
Class = TimingDataSource
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Functions = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
}
|
||||||
|
+States = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
}
|
||||||
|
+Scheduler = {
|
||||||
|
Class = GAMScheduler
|
||||||
|
TimingDataSource = Timings
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,632 @@
|
|||||||
|
#package jada_gyro.RTApp.States
|
||||||
|
|
||||||
|
|
||||||
|
+Disabled = {
|
||||||
|
Class = RealTimeState
|
||||||
|
+Threads = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+EPICSThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_epics
|
||||||
|
Functions = {
|
||||||
|
SyncThreadConsumerGAM,
|
||||||
|
DecimateGAM,
|
||||||
|
StateGAM,
|
||||||
|
MCPSGAM,
|
||||||
|
PXIErrorGAM,
|
||||||
|
GoErrorGAM,
|
||||||
|
GoWaitStandbyGAM,
|
||||||
|
ChoiceGAM,
|
||||||
|
EPICSThSyncGAM,
|
||||||
|
EPICSOutputGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SDNThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_sdn
|
||||||
|
Functions = {
|
||||||
|
TimeSDNGAM,
|
||||||
|
SDNCommandGAM,
|
||||||
|
SDNReplyGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+RealTimeThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_rt
|
||||||
|
Functions = {
|
||||||
|
FastTimerGAM,
|
||||||
|
NI6528_0_ReaderGAM,
|
||||||
|
AsyncIOGAM,
|
||||||
|
HVPSsOffGAM,
|
||||||
|
NI6528_0_WriterGAM,
|
||||||
|
SyncThreadProducerGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ADCThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_adc
|
||||||
|
Functions = {
|
||||||
|
ReadADC,
|
||||||
|
PushADCtoDAN,
|
||||||
|
PushADCtoEpics
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+DANThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_dan
|
||||||
|
Functions = { WaitForDioSignals, DANDIOPublisherGAM }
|
||||||
|
}
|
||||||
|
+ReferenceGenerationThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_wg
|
||||||
|
Functions = {
|
||||||
|
WGTimerGAM,
|
||||||
|
CCPSWaveformGAM,
|
||||||
|
FHPSStateGAM,
|
||||||
|
FHPSGainGAM,
|
||||||
|
WGProducerGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+WaitStandby = {
|
||||||
|
Class = RealTimeState
|
||||||
|
+Threads = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+EPICSThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
SyncThreadConsumerGAM,
|
||||||
|
DecimateGAM,
|
||||||
|
StateGAM,
|
||||||
|
MCPSGAM,
|
||||||
|
PXIErrorGAM,
|
||||||
|
GoDisabledGAM,
|
||||||
|
GoWaitReadyGAM,
|
||||||
|
GoErrorGAM,
|
||||||
|
ChoiceGAM,
|
||||||
|
EPICSThSyncGAM,
|
||||||
|
EPICSOutputGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_epics
|
||||||
|
}
|
||||||
|
+SDNThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
TimeSDNGAM,
|
||||||
|
SDNCommandGAM,
|
||||||
|
SDNReplyGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_sdn
|
||||||
|
}
|
||||||
|
+RealTimeThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
FastTimerGAM,
|
||||||
|
NI6528_0_ReaderGAM,
|
||||||
|
AsyncIOGAM,
|
||||||
|
HVPSsOffGAM,
|
||||||
|
NI6528_0_WriterGAM,
|
||||||
|
SyncThreadProducerGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_rt
|
||||||
|
}
|
||||||
|
+ADCThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
ReadADC,
|
||||||
|
PushADCtoDAN,
|
||||||
|
PushADCtoEpics
|
||||||
|
}
|
||||||
|
CPUs = @cpus_adc
|
||||||
|
}
|
||||||
|
+DANThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { WaitForDioSignals, DANDIOPublisherGAM }
|
||||||
|
CPUs = @cpus_dan
|
||||||
|
}
|
||||||
|
+ReferenceGenerationThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_wg
|
||||||
|
Functions = {
|
||||||
|
WGTimerGAM,
|
||||||
|
CCPSWaveformGAM,
|
||||||
|
FHPSSetpointGAM,
|
||||||
|
FHPSRampupGAM,
|
||||||
|
FHPSStateGAM,
|
||||||
|
FHPSGainGAM,
|
||||||
|
WGProducerGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+WaitReady = {
|
||||||
|
Class = RealTimeState
|
||||||
|
+Threads = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+EPICSThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
SyncThreadConsumerGAM,
|
||||||
|
DecimateGAM,
|
||||||
|
StateGAM,
|
||||||
|
WFRecordGAM,
|
||||||
|
PreProgrammedGAM,
|
||||||
|
PXIErrorGAM,
|
||||||
|
GoWaitPermitGAM,
|
||||||
|
GoWaitStandbyFromReadyGAM,
|
||||||
|
GoErrorGAM,
|
||||||
|
ChoiceGAM,
|
||||||
|
EPICSThSyncGAM,
|
||||||
|
EPICSOutputGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_epics
|
||||||
|
}
|
||||||
|
+SDNThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
TimeSDNGAM,
|
||||||
|
SDNCommandGAM,
|
||||||
|
SDNReplyGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_sdn
|
||||||
|
}
|
||||||
|
+RealTimeThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
FastTimerGAM,
|
||||||
|
NI6528_0_ReaderGAM,
|
||||||
|
AsyncIOGAM,
|
||||||
|
HVPSsOffGAM,
|
||||||
|
NI6528_0_WriterGAM,
|
||||||
|
SyncThreadProducerGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_rt
|
||||||
|
}
|
||||||
|
+ADCThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
ReadADC,
|
||||||
|
PushADCtoDAN,
|
||||||
|
PushADCtoEpics
|
||||||
|
}
|
||||||
|
CPUs = @cpus_adc
|
||||||
|
}
|
||||||
|
+DANThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { WaitForDioSignals, DANDIOPublisherGAM }
|
||||||
|
CPUs = @cpus_dan
|
||||||
|
}
|
||||||
|
+ReferenceGenerationThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_wg
|
||||||
|
Functions = {
|
||||||
|
WGTimerGAM,
|
||||||
|
CCPSWaveformGAM,
|
||||||
|
FHPSSetpointGAM,
|
||||||
|
FHPSRampupGAM,
|
||||||
|
FHPSStateGAM,
|
||||||
|
FHPSGainGAM,
|
||||||
|
WGProducerGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+WaitPermit = {
|
||||||
|
Class = RealTimeState
|
||||||
|
+Threads = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+EPICSThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
SyncThreadConsumerGAM,
|
||||||
|
DecimateGAM,
|
||||||
|
StateGAM,
|
||||||
|
WFRecordGAM,
|
||||||
|
PreProgrammedGAM,
|
||||||
|
PXIErrorGAM,
|
||||||
|
GoWaitReadyFromWaitPermitGAM,
|
||||||
|
GoWaitHVONGAM,
|
||||||
|
GoWaitHVON_PREP_GAM,
|
||||||
|
GoWaitHVON_SDN_GAM,
|
||||||
|
GoWaitHVON_SDN_PREP_GAM,
|
||||||
|
GoErrorHVGAM,
|
||||||
|
ChoiceGAM,
|
||||||
|
EPICSThSyncGAM,
|
||||||
|
EPICSOutputGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_epics
|
||||||
|
}
|
||||||
|
+SDNThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
TimeSDNGAM,
|
||||||
|
SDNCommandGAM,
|
||||||
|
SDNReplyGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_sdn
|
||||||
|
}
|
||||||
|
+RealTimeThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
FastTimerGAM,
|
||||||
|
NI6528_0_ReaderGAM,
|
||||||
|
AsyncIOGAM,
|
||||||
|
HVPSsOffGAM,
|
||||||
|
NI6528_0_WriterGAM,
|
||||||
|
SyncThreadProducerGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_rt
|
||||||
|
}
|
||||||
|
+ADCThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
ReadADC,
|
||||||
|
PushADCtoDAN,
|
||||||
|
PushADCtoEpics
|
||||||
|
}
|
||||||
|
CPUs = @cpus_adc
|
||||||
|
}
|
||||||
|
+DANThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { WaitForDioSignals, DANDIOPublisherGAM }
|
||||||
|
CPUs = @cpus_dan
|
||||||
|
}
|
||||||
|
+ReferenceGenerationThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_wg
|
||||||
|
Functions = {
|
||||||
|
WGTimerGAM,
|
||||||
|
CCPSWaveformGAM,
|
||||||
|
FHPSSetpointGAM,
|
||||||
|
FHPSRampupGAM,
|
||||||
|
FHPSStateGAM,
|
||||||
|
FHPSGainGAM,
|
||||||
|
WGProducerGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Real-Time state for HVPS sequence timing control.
|
||||||
|
+WaitHVON = {
|
||||||
|
Class = RealTimeState
|
||||||
|
+Threads = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+EPICSThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
SyncThreadConsumerGAM,
|
||||||
|
DecimateGAM,
|
||||||
|
StateGAM,
|
||||||
|
PXIErrorGAM,
|
||||||
|
FromWaitHVONToWaitStandby,
|
||||||
|
FromWaitHVONToWaitPermit,
|
||||||
|
GoErrorHVGAM,
|
||||||
|
ChoiceGAM,
|
||||||
|
EPICSThSyncGAM,
|
||||||
|
EPICSOutputGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_epics
|
||||||
|
}
|
||||||
|
+SDNThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { TimeSDNGAM, SDNCommandGAM, SDNReplyGAM }
|
||||||
|
CPUs = @cpus_sdn
|
||||||
|
}
|
||||||
|
+RealTimeThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
FastTimerGAM,
|
||||||
|
NI6528_0_ReaderGAM,
|
||||||
|
AsyncIOGAM,
|
||||||
|
FastEpicsInputGAM,
|
||||||
|
FastStopRequestGAM,
|
||||||
|
ModeLimitGAM,
|
||||||
|
GAMRealTimeStateMachine,
|
||||||
|
NI6528_0_WriterGAM,
|
||||||
|
SyncThreadProducerGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_rt
|
||||||
|
}
|
||||||
|
+ADCThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
ReadADC,
|
||||||
|
PushADCtoDAN,
|
||||||
|
PushADCtoEpics
|
||||||
|
}
|
||||||
|
CPUs = @cpus_adc
|
||||||
|
}
|
||||||
|
+DANThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { WaitForDioSignals, DANDIOPublisherGAM }
|
||||||
|
CPUs = @cpus_dan
|
||||||
|
}
|
||||||
|
+ReferenceGenerationThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_wg
|
||||||
|
Functions = {
|
||||||
|
WGTimerGAM,
|
||||||
|
CCPSWaveformGAM,
|
||||||
|
FHPSSetpointGAM,
|
||||||
|
FHPSRampupGAM,
|
||||||
|
FHPSStateGAM,
|
||||||
|
FHPSGainGAM,
|
||||||
|
WGProducerGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+WaitHVON_SDN = {
|
||||||
|
Class = RealTimeState
|
||||||
|
+Threads = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+EPICSThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
SyncThreadConsumerGAM,
|
||||||
|
DecimateGAM,
|
||||||
|
StateGAM,
|
||||||
|
PXIErrorGAM,
|
||||||
|
FromWaitHVONToWaitStandby,
|
||||||
|
FromWaitHVONToWaitPermit,
|
||||||
|
GoErrorHVGAM,
|
||||||
|
ChoiceGAM,
|
||||||
|
EPICSThSyncGAM,
|
||||||
|
EPICSOutputGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_epics
|
||||||
|
}
|
||||||
|
+SDNThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
TimeSDNGAM,
|
||||||
|
SDNCommandGAM,
|
||||||
|
SDNReplyGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_sdn
|
||||||
|
}
|
||||||
|
+RealTimeThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
FastTimerGAM,
|
||||||
|
NI6528_0_ReaderGAM,
|
||||||
|
AsyncIOGAM,
|
||||||
|
FastEpicsInputGAM,
|
||||||
|
FastStopRequestGAM,
|
||||||
|
ModeLimitGAM,
|
||||||
|
GAMSDNRealTimeStateMachine,
|
||||||
|
NI6528_0_WriterGAM,
|
||||||
|
SyncThreadProducerGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_rt
|
||||||
|
}
|
||||||
|
+ADCThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
ReadADC,
|
||||||
|
PushADCtoDAN,
|
||||||
|
PushADCtoEpics
|
||||||
|
}
|
||||||
|
CPUs = @cpus_adc
|
||||||
|
}
|
||||||
|
+DANThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { WaitForDioSignals, DANDIOPublisherGAM }
|
||||||
|
CPUs = @cpus_dan
|
||||||
|
}
|
||||||
|
+ReferenceGenerationThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_wg
|
||||||
|
Functions = {
|
||||||
|
WGTimerGAM,
|
||||||
|
CCPSWaveformGAM,
|
||||||
|
FHPSRampupGAM,
|
||||||
|
FHPSStateGAM,
|
||||||
|
FHPSGainGAM,
|
||||||
|
WGProducerGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+WaitHVON_PREP = {
|
||||||
|
Class = RealTimeState
|
||||||
|
+Threads = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+EPICSThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
SyncThreadConsumerGAM,
|
||||||
|
DecimateGAM,
|
||||||
|
StateGAM,
|
||||||
|
PreProgrammedGAM,
|
||||||
|
PXIErrorGAM,
|
||||||
|
FromWaitHVONToWaitStandby,
|
||||||
|
FromWaitHVONToWaitPermit,
|
||||||
|
GoErrorHVGAM,
|
||||||
|
ChoiceGAM,
|
||||||
|
EPICSThSyncGAM,
|
||||||
|
EPICSOutputGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_epics
|
||||||
|
}
|
||||||
|
+SDNThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { TimeSDNGAM, SDNCommandGAM, SDNReplyGAM }
|
||||||
|
CPUs = @cpus_sdn
|
||||||
|
}
|
||||||
|
+RealTimeThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
FastTimerGAM,
|
||||||
|
NI6528_0_ReaderGAM,
|
||||||
|
AsyncIOGAM,
|
||||||
|
FastEpicsInputGAM,
|
||||||
|
FastStopRequestGAM,
|
||||||
|
ModeLimitGAM,
|
||||||
|
GAMRealTimeStateMachine,
|
||||||
|
NI6528_0_WriterGAM,
|
||||||
|
SyncThreadProducerGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_rt
|
||||||
|
}
|
||||||
|
+ADCThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { ReadADC, PushADCtoDAN, PushADCtoEpics }
|
||||||
|
CPUs = @cpus_adc
|
||||||
|
}
|
||||||
|
+DANThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { WaitForDioSignals, DANDIOPublisherGAM }
|
||||||
|
CPUs = @cpus_dan
|
||||||
|
}
|
||||||
|
+ReferenceGenerationThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_wg
|
||||||
|
Functions = {
|
||||||
|
WGTimerGAM,
|
||||||
|
CCPSWaveformGAM,
|
||||||
|
FHPSRampupGAM,
|
||||||
|
FHPSStateGAM,
|
||||||
|
FHPSGainGAM,
|
||||||
|
WGProducerGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+WaitHVON_SDN_PREP = {
|
||||||
|
Class = RealTimeState
|
||||||
|
+Threads = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+EPICSThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
SyncThreadConsumerGAM,
|
||||||
|
DecimateGAM,
|
||||||
|
StateGAM,
|
||||||
|
PreProgrammedGAM,
|
||||||
|
PXIErrorGAM,
|
||||||
|
FromWaitHVONToWaitStandby,
|
||||||
|
FromWaitHVONToWaitPermit,
|
||||||
|
GoErrorHVGAM,
|
||||||
|
ChoiceGAM,
|
||||||
|
EPICSThSyncGAM,
|
||||||
|
EPICSOutputGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_epics
|
||||||
|
}
|
||||||
|
+SDNThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
TimeSDNGAM,
|
||||||
|
SDNCommandGAM,
|
||||||
|
SDNReplyGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_sdn
|
||||||
|
}
|
||||||
|
+RealTimeThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
FastTimerGAM,
|
||||||
|
NI6528_0_ReaderGAM,
|
||||||
|
AsyncIOGAM,
|
||||||
|
FastEpicsInputGAM,
|
||||||
|
FastStopRequestGAM,
|
||||||
|
ModeLimitGAM,
|
||||||
|
GAMSDNRealTimeStateMachine,
|
||||||
|
SyncThreadProducerGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_rt
|
||||||
|
}
|
||||||
|
+ADCThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { ReadADC, PushADCtoDAN, PushADCtoEpics }
|
||||||
|
CPUs = @cpus_adc
|
||||||
|
}
|
||||||
|
+DANThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { WaitForDioSignals, DANDIOPublisherGAM }
|
||||||
|
CPUs = @cpus_dan
|
||||||
|
}
|
||||||
|
+ReferenceGenerationThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_wg
|
||||||
|
Functions = {
|
||||||
|
WGTimerGAM,
|
||||||
|
CCPSWaveformGAM,
|
||||||
|
FHPSRampupGAM,
|
||||||
|
FHPSStateGAM,
|
||||||
|
FHPSGainGAM,
|
||||||
|
WGProducerGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Error = {
|
||||||
|
Class = RealTimeState
|
||||||
|
+Threads = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+EPICSThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
SyncThreadConsumerGAM,
|
||||||
|
DecimateGAM,
|
||||||
|
StateGAM,
|
||||||
|
PXIErrorGAM,
|
||||||
|
ResetErrorGAM,
|
||||||
|
ChoiceGAM,
|
||||||
|
EPICSThSyncGAM,
|
||||||
|
EPICSOutputGAM
|
||||||
|
}
|
||||||
|
// REMOVED: GoErrorGAM (redundant), FHPSSetPointGAM and FHPSRumpUpGAM
|
||||||
|
// TODO: Discus about the removal
|
||||||
|
CPUs = @cpus_epics
|
||||||
|
}
|
||||||
|
+SDNThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
TimeSDNGAM,
|
||||||
|
SDNCommandGAM,
|
||||||
|
SDNReplyGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_sdn
|
||||||
|
}
|
||||||
|
+RealTimeThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
FastTimerGAM,
|
||||||
|
NI6528_0_ReaderGAM,
|
||||||
|
AsyncIOGAM,
|
||||||
|
HVPSsOffGAM,
|
||||||
|
NI6528_0_WriterGAM,
|
||||||
|
SyncThreadProducerGAM
|
||||||
|
}
|
||||||
|
CPUs = @cpus_rt
|
||||||
|
}
|
||||||
|
+ADCThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = {
|
||||||
|
ReadADC,
|
||||||
|
PushADCtoDAN,
|
||||||
|
PushADCtoEpics
|
||||||
|
}
|
||||||
|
CPUs = @cpus_adc
|
||||||
|
}
|
||||||
|
+DANThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
Functions = { WaitForDioSignals, DANDIOPublisherGAM }
|
||||||
|
CPUs = @cpus_dan
|
||||||
|
}
|
||||||
|
+ReferenceGenerationThread = {
|
||||||
|
Class = RealTimeThread
|
||||||
|
CPUs = @cpus_wg
|
||||||
|
Functions = {
|
||||||
|
WGTimerGAM,
|
||||||
|
CCPSWaveformGAM,
|
||||||
|
FHPSStateGAM,
|
||||||
|
FHPSGainGAM,
|
||||||
|
WGProducerGAM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,512 @@
|
|||||||
|
#package jada_gyro.RTApp.Data
|
||||||
|
|
||||||
|
|
||||||
|
+EPICSCAInput = {
|
||||||
|
Class = "EPICSCA::EPICSCAInput"
|
||||||
|
Signals = {
|
||||||
|
TRIGGER_DAN = {
|
||||||
|
PVName = (@rfid .. ":DAN_ENABLED")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CSV_LOAD = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-CSV-LOAD")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
CSV_NAME = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-CSV-NAME")
|
||||||
|
Type = char8
|
||||||
|
NumberOfElements = 40
|
||||||
|
}
|
||||||
|
MIS_ITL = {
|
||||||
|
Type = uint32
|
||||||
|
PVName = (@rfid .. "-GAFP:FMC4310-YTRP")
|
||||||
|
}
|
||||||
|
RESET_FLT = {
|
||||||
|
PVName = (@rfid .. "-GPF:STAT-RST-FLT")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PLC_SELECT = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-CON-OPGY1")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
CCPS_OUTPUT_FREQ = {
|
||||||
|
PVName = (@rfid .. "-GAF-CCPS:STAT-FREQ")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
CCPS_OUTPUT_AMP = {
|
||||||
|
PVName = (@rfid .. "-GAF-CCPS:STAT-AMP")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
CCPS_OUTPUT_OFFS = {
|
||||||
|
PVName = (@rfid .. "-GAF-CCPS:STAT-OFFS")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GCPS_TRG_CURR_MANUAL = {
|
||||||
|
PVName = (@rfid .. "-GAF-GCPS:PSU2130-TRG-CURR-SET-MI")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MCPS_TRG_CURR_MANUAL = {
|
||||||
|
PVName = (@rfid .. "-GAF-MCPS:PSU2120-TRG-CURR-SET-MI")
|
||||||
|
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 = {
|
||||||
|
PVName = (@rfid .. "-PB1F:PSU1000-EREF-MSP")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
BPS_MM = {
|
||||||
|
PVName = (@rfid .. "-PB1F:STAT-MANM")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_MANUAL = {
|
||||||
|
PVName = (@rfid .. "-PA1F:PSU3000-EREF-MSP")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
APS_MM = {
|
||||||
|
PVName = (@rfid .. "-PA1F:STAT-MANM")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
MHVPS_MANUAL = {
|
||||||
|
PVName = (@rfid .. "-PMF:PSU0000-EREF-MSP")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MHVPS_MM = {
|
||||||
|
PVName = (@rfid .. "-PMF:STAT-MANM")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
MCPS_MM = {
|
||||||
|
PVName = (@rfid .. "-GAF-MCPS:STAT-MANM")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
GCPS_MM = {
|
||||||
|
PVName = (@rfid .. "-GAF-GCPS:STAT-MANM")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
FHPS_AUTO_TAGV = {
|
||||||
|
PVName = (@rfid .. "-GAF-FHPS:PSU2610-AUTO-TAGV")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
FHPS_AUTO_TIME = {
|
||||||
|
PVName = (@rfid .. "-GAF-FHPS:PSU2610-AUTO-RU-TIME")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
FHPS_AUTO_START = {
|
||||||
|
PVName = (@rfid .. "-GAF-FHPS:PSU2610-AUTO-START")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
FHPS_MANM = {
|
||||||
|
PVName = (@rfid .. "-GAF-FHPS:STAT-MANM")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
//# Guncoil state readback
|
||||||
|
GCPS_ACT_RB = {
|
||||||
|
PVName = (@rfid .. "-GAF-GCPS:PSU2130-ACT-RB")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
//# Guncoil current monitor
|
||||||
|
GCPS_CURR_MON = {
|
||||||
|
PVName = (@rfid .. "-GAF-GCPS:PSU2130-CURR-MON")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
//# Main coil state readback
|
||||||
|
MCPS_ACT_RB = {
|
||||||
|
PVName = (@rfid .. "-GAF-MCPS:PSU2120-ACT-RB")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
//# Main coil current monitor
|
||||||
|
MCPS_CURR_MON = {
|
||||||
|
PVName = (@rfid .. "-GAF-MCPS:PSU2120-CURR-MON")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
//# Pre-program flag
|
||||||
|
PREP_MODE = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-PREP-MODE")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
// Timing settings
|
||||||
|
MHVPS_DT = {
|
||||||
|
PVName = (@rfid .. "-PMF:STAT-DT-HVON")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_HVON_DT = {
|
||||||
|
PVName = (@rfid .. "-PA1F:STAT-DT-HVON")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_SWON_DT = {
|
||||||
|
PVName = (@rfid .. "-PA1F:STAT-DT-SWON")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_HVON_DT = {
|
||||||
|
PVName = (@rfid .. "-PB1F:STAT-DT-HVON")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_SWON_DT = {
|
||||||
|
PVName = (@rfid .. "-PB1F:STAT-DT-SWON")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHOTLEN = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-DT-SHOTLEN")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PLC_MODE1 = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-YTS-MD1")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PLC_MODE2 = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-YTS-MD2")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PLC_MODE3 = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-YTS-MD3")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PLC_MODE4 = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-YTS-MD4")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
MD1_SHOTLEN_LIM = {
|
||||||
|
PVName = (@rfid .. "-GPF:STAT-MD1-LIM")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
MD2_SHOTLEN_LIM = {
|
||||||
|
PVName = (@rfid .. "-GPF:STAT-MD2-LIM")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
MD3_SHOTLEN_LIM = {
|
||||||
|
PVName = (@rfid .. "-GPF:STAT-MD3-LIM")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
MD4_SHOTLEN_LIM = {
|
||||||
|
PVName = (@rfid .. "-GPF:STAT-MD4-LIM")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
GY_MCPS_CURR_MON = {
|
||||||
|
PVName = (@rfid .. "-GAF-MCPS:PSU2120-CURR-MON")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_GCPS_CURR_MON = {
|
||||||
|
PVName = (@rfid .. "-GAF-GCPS:PSU2130-CURR-MON")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_FHPS_MEAS_ACI = {
|
||||||
|
PVName = (@rfid .. "-GAF-FHPS:PSU2610-MEAS-ACI")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_FHPS_MEAS_ACV = {
|
||||||
|
PVName = (@rfid .. "-GAF-FHPS:PSU2610-MEAS-ACV")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_CCPS_MEAS_DCI = {
|
||||||
|
PVName = (@rfid .. "-GAF-CCPS:PSU2320-MEAS-DCI")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
SHORT_PULSE_MODE = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-SHORT-PULSE")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
CCPS_IN_OPERATION = {
|
||||||
|
PVName = (@rfid .. "-GAF-CCPS:PSU2320-TR")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+EPICSCAOutput = {
|
||||||
|
Class = EPICSCAOutput
|
||||||
|
CPUMask = @cpus_epics // change from 0x200
|
||||||
|
StackSize = 10000000
|
||||||
|
NumberOfBuffers = 50
|
||||||
|
Signals = {
|
||||||
|
PCF_STATE = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-SM")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
// Analog Output PVs in Variables-signal tab.
|
||||||
|
FHPS_REF = {
|
||||||
|
PVName = (@rfid .. "-GAF-FHPS:PSU2610-EREF")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
BPS_REF = {
|
||||||
|
PVName = (@rfid .. "-PB1F:PSU1000-EREF")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
APS_REF = {
|
||||||
|
PVName = (@rfid .. "-PA1F:STAT-EREF-CONV.A")
|
||||||
|
// TODO: PSU3000-YSTA
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MHVPS_REF = {
|
||||||
|
PVName = (@rfid .. "-PMF:STAT-EREF-CALC.A")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
// Digital Output PVs in Variables-signal tab.
|
||||||
|
APS_STOP = {
|
||||||
|
PVName = (@rfid .. "-PA1F:PSU3000-CTRP")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_STOP = {
|
||||||
|
PVName = (@rfid .. "-PB1F:PSU1000-CTRP")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
PVName = (@rfid .. "-GAFP:FMC4310-YSTA-GAOP")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_STOP = {
|
||||||
|
PVName = (@rfid .. "-PMF:PSU0000-COFF")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PCF_FLT = {
|
||||||
|
PVName = (@rfid .. "-GPF:PCF4210-CTRP")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PXI_FLT = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-RV2")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
PVName = (@rfid .. "-GPF:PCF4210-YTS-GA1")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
PVName = (@rfid .. "-GPF:PCF4210-YTS-GA2")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
PVName = (@rfid .. "-GPF:PCF4210-YTS-GA3")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
// Output PVs in Variables-operation tab.
|
||||||
|
MHVPS_PREP_WF = {
|
||||||
|
PVName = (@rfid .. "-PMF:STAT-PREP-WF")
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
BPS_PREP_WF = {
|
||||||
|
PVName = (@rfid .. "-PB1F:STAT-PREP-WF")
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
APS_PREP_WF = {
|
||||||
|
PVName = (@rfid .. "-PA1F:STAT-PREP-WF")
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
FHPS_PREP_WF = {
|
||||||
|
PVName = (@rfid .. "-GAF-FHPS:STAT-PREP-WF")
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
MCPS_PREP_WF = {
|
||||||
|
PVName = (@rfid .. "-GAF-MCPS:STAT-PREP-WF")
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
GCPS_PREP_WF = {
|
||||||
|
PVName = (@rfid .. "-GAF-GCPS:STAT-PREP-WF")
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
PREP_TIME_WF = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-PREP-TIME-WF")
|
||||||
|
Type = int32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-BEAMON-TIME")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
ELAPSED_TIME = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-ELAPSED")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHOT_ID = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-SHOT-ID")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
CSV_LOADED = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-CSV-LOADED")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
CSV_ERR = {
|
||||||
|
PVName = (@rfid .. "-GAF:STAT-CSV-ERR")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
// Output PVs in Variables-jastec tab.
|
||||||
|
MCPS_TRG_CURR_SET = {
|
||||||
|
PVName = (@rfid .. "-GAF-MCPS:PSU2120-TRG-CURR-SET-MO")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MCPS_ACT_SP = {
|
||||||
|
PVName = (@rfid .. "-GAF-MCPS:PSU2120-ACT-SP-MO")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
GCPS_TRG_CURR_SET = {
|
||||||
|
PVName = (@rfid .. "-GAF-GCPS:PSU2130-TRG-CURR-SET-MO")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GCPS_ACT_SP = {
|
||||||
|
PVName = (@rfid .. "-GAF-GCPS:PSU2130-ACT-SP-MO")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
// Output PVs in Variables-kikusui tab.
|
||||||
|
CCPS_REF = {
|
||||||
|
PVName = (@rfid .. "-GAF-CCPS:PSU2320-EREF")
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
FHPS_AUTO_STAT = {
|
||||||
|
PVName = (@rfid .. "-GAF-FHPS:PSU2610-AUTO-STAT")
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
// Add 20201117
|
||||||
|
APS_HVON = {
|
||||||
|
PVName = (@rfid .. "-PA1F:PSU3000-CON-HV")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
APS_SWON = {
|
||||||
|
PVName = (@rfid .. "-PA1F:PSU3000-CON-SW")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
BPS_HVON = {
|
||||||
|
PVName = (@rfid .. "-PB1F:PSU1000-CON-HV")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
BPS_SWON = {
|
||||||
|
PVName = (@rfid .. "-PB1F:PSU1000-CON-SW")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_HVON = {
|
||||||
|
PVName = (@rfid .. "-PMF:STAT-HVON-CALC.A")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
EXT_TRIGGER = {
|
||||||
|
PVName = (@rfid .. "-GAF:DIO4900-YON")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
ECPC_MHVPS_MOD = {
|
||||||
|
PVName = (@rfid .. "-GPF:PSU0000-YSTA-MOD")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-CON-GY1PRM")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-CON-OPGY1")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CCPS_IN_OP = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-YON-CCPS1")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-YSTA-MPSS")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-YTRP")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-YTS-ST1R")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-YTS-ST2R")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
PVName = (@rfid .. "-GPS:PLC4110-YTS-ST3R")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
APS_FLT = {
|
||||||
|
PVName = (@rfid .. "-PA1F:PSU3000-YFLT")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
APS_READY = {
|
||||||
|
PVName = (@rfid .. "-PA1F:PSU3000-YSTA")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
BPS_FLT = {
|
||||||
|
PVName = (@rfid .. "-PB1F:PSU1000-YFLT")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
BPS_READY = {
|
||||||
|
PVName = (@rfid .. "-PB1F:PSU1000-YSTA")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHPS_FLT = {
|
||||||
|
PVName = (@rfid .. "-PMF:PSU0000-YFLT")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHPS_READY = {
|
||||||
|
PVName = (@rfid .. "-PMF:PSU0000-TYSTA")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHPS_OC = {
|
||||||
|
PVName = (@rfid .. "-GAFP:FMC4310-YFLT-OC")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHPS_OV = {
|
||||||
|
PVName = (@rfid .. "-GAFP:FMC4310-YFLT-OV")
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
Type = uint8
|
||||||
|
PVName = (@rfid .. "-GAFP:FMC4310-RV1")
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
Type = uint8
|
||||||
|
PVName = (@rfid .. "-GAFP:FMC4310-RV2")
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
Type = uint8
|
||||||
|
PVName = (@rfid .. "-GAFP:FMC4310-RV3")
|
||||||
|
}
|
||||||
|
FAST_ITL = {
|
||||||
|
Type = uint8
|
||||||
|
PVName = (@rfid .. "-GAFP:FMC4310-YTRP")
|
||||||
|
}
|
||||||
|
//! unused: Not shared with th1 (TODO)
|
||||||
|
FAST_PAUSE = {
|
||||||
|
Type = uint8
|
||||||
|
PVName = (@rfid .. "-GAFP:FMC4310-YTRP2")
|
||||||
|
}
|
||||||
|
PXI_6259_STATE = {
|
||||||
|
Type = uint32
|
||||||
|
PVName = (@rfid .. "-HWCF:6259-0-STATUS")
|
||||||
|
}
|
||||||
|
//! unused: No 6683 DS (TODO)
|
||||||
|
PXI_6683_STATE = {
|
||||||
|
Type = uint8
|
||||||
|
PVName = (@rfid .. "-HWCF:6683-0-STATUS")
|
||||||
|
}
|
||||||
|
//! unused: No 6683 DS (TODO)
|
||||||
|
PXI_6683_SYNC = {
|
||||||
|
Type = uint8
|
||||||
|
PVName = (@rfid .. "-HWCF:6683-0-SYNC")
|
||||||
|
}
|
||||||
|
//! unused: No 6683 DS (TODO)
|
||||||
|
PXI_6683_SYNCLOST = {
|
||||||
|
Type = uint8
|
||||||
|
PVName = (@rfid .. "-HWCF:6683-0-SYNCLOST")
|
||||||
|
}
|
||||||
|
PXI_6528_STATE = {
|
||||||
|
Type = uint32
|
||||||
|
PVName = (@rfid .. "-HWCF:6528-0-STATUS")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,580 @@
|
|||||||
|
#package jada_gyro.RTApp.Data
|
||||||
|
|
||||||
|
|
||||||
|
+DDB1 = {
|
||||||
|
Signals = {
|
||||||
|
PXI6528_Status = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PXI6259_Status = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PXI6683_Status = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PXI6683_PtpdStatus = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_APS_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
ECPC_MOD = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
FAST_TRIP = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
TRIGGER = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
APS_HVON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
APS_SWON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
BPS_HVON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
BPS_SWON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_HVON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
ELAPSED_TIME = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHOT_ID = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
PXI6259_Status_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PXI6528_Status_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PXI6683_Status_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PXI6683_PtpdStatus_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_APS_READY_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_APS_FLT_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_BPS_READY_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_OV_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_OC_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_FLT_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_READY_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
ECPC_MOD_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
FAST_TRIP_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_ITL_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_STANDBY_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_READY_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_ON_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_PERMIT_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
TRIGGER_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
HVARMED_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
HVINJECTION_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
RFON_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
ELAPSED_TIME_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHOT_ID_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
CRIO_RV1_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CRIO_RV2_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CRIO_RV3_SAMPLES = {
|
||||||
|
NumberOfElements = @fast_slow_ratio
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+DDB3 = {
|
||||||
|
Signals = {
|
||||||
|
SHOT_ID = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
//# DI.0
|
||||||
|
GYA_APS_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.1
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.2
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.3
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.4
|
||||||
|
MHVPS_OV = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.5
|
||||||
|
MHVPS_OC = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.6
|
||||||
|
MHVPS_FLT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.7
|
||||||
|
MHVPS_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.8
|
||||||
|
ECPC_MOD = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.9
|
||||||
|
FAST_TRIP = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI 11
|
||||||
|
CRIO_RV1 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI 12
|
||||||
|
CRIO_RV2 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI 13
|
||||||
|
CRIO_RV3 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.14
|
||||||
|
PLC_ITL = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.15
|
||||||
|
PLC_STANDBY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.16
|
||||||
|
PLC_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.17
|
||||||
|
PLC_ON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.18
|
||||||
|
PLC_PERMIT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.19
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.20
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.21
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.22
|
||||||
|
TRIGGER = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DI.23
|
||||||
|
NONE_DI23 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.0
|
||||||
|
APS_HVON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.1
|
||||||
|
APS_SWON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.2
|
||||||
|
APS_STOP = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.3
|
||||||
|
BPS_HVON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.4
|
||||||
|
BPS_SWON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.5
|
||||||
|
BPS_STOP = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.6
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.7 PCF -> CRIO
|
||||||
|
DO_REV5 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.8 PCF -> CRIO (PROTECTION PAUSE SIGNAL)
|
||||||
|
DO_REV6 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.9 PCF -> CRIO
|
||||||
|
DO_REV7 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.10 PCF -> CRIO
|
||||||
|
DO_REV8 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.11
|
||||||
|
MHVPS_HVON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.12
|
||||||
|
MHVPS_STOP = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.13
|
||||||
|
MHVPS_MODSW = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.14
|
||||||
|
PCF_FLT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.15
|
||||||
|
HVARMED = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.16
|
||||||
|
HVINJECTION = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.17
|
||||||
|
RFON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.18
|
||||||
|
FHPS_RU = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.19
|
||||||
|
SCM_RU = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.20
|
||||||
|
SCM_RD = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.21
|
||||||
|
CCPS_IN_OPERATION = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# DO.22
|
||||||
|
PXI_FLT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# Internal Fast Stop signal
|
||||||
|
FAST_STOP = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
//# Computed Shot length flag
|
||||||
|
MODE_SHOTLEN_FLAG = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
//# TODO: Document signal
|
||||||
|
RTSMValue = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# PXI NI6528 Digital input datasource
|
||||||
|
//# TODO: configure it
|
||||||
|
+NI6528_0_DIO = {
|
||||||
|
Class = NI6528
|
||||||
|
DeviceName = "/dev/pxi6528"
|
||||||
|
BoardId = 1 // TODO: check if not 1
|
||||||
|
Signals = {
|
||||||
|
//# P0.0 I.00 APS A Ready
|
||||||
|
//# P0.1 I.01 APS A Fault
|
||||||
|
//# P0.2 I.02 BPS A Ready
|
||||||
|
//# P0.3 I.03 BPS A Fault
|
||||||
|
//# P0.4 I.04 MHVPS Over volage
|
||||||
|
//# P0.5 I.05 MHVPS Over current
|
||||||
|
//# P0.6 I.06 MHVPS Trip
|
||||||
|
//# P0.7 I.07 MHVPS Ready
|
||||||
|
DI0 = {
|
||||||
|
Type = uint8
|
||||||
|
PortId = 0
|
||||||
|
InversionMask = 0x40
|
||||||
|
}
|
||||||
|
//# P1.0 I.08 ECPC Modulation
|
||||||
|
//# P1.1 I.09 Fast Protection Trip
|
||||||
|
//# P1.2 I.10
|
||||||
|
//# P1.3 I.11 CRIO RV1
|
||||||
|
//# P1.4 I.12 CRIO RV2
|
||||||
|
//# P1.5 I.13 CRIO RV3
|
||||||
|
//# P1.6 I.14 LV1 Alarm
|
||||||
|
//# P1.7 I.15 PLC STANDBY
|
||||||
|
DI1 = {
|
||||||
|
Type = uint8
|
||||||
|
PortId = 1
|
||||||
|
}
|
||||||
|
//# P2.0 I.16 PLC READY
|
||||||
|
//# P2.1 I.17 PLC ON
|
||||||
|
//# P2.2 I.18 PLC Gyrotron A Operation permitted
|
||||||
|
//# P2.3 I.19 Gyrotron A Operation Selected
|
||||||
|
//# P2.4 I.20 Gyrotron A Collector Coil Operation
|
||||||
|
//# P2.5 I.21 Sync Mode Selected
|
||||||
|
//# P2.6 I.22 Trigger
|
||||||
|
//# P2.7 I.23
|
||||||
|
DI2 = {
|
||||||
|
Type = uint8
|
||||||
|
PortId = 2
|
||||||
|
}
|
||||||
|
//# P3.0 O.00 APS_HVON
|
||||||
|
//# P3.1 O.01 APS_SWON
|
||||||
|
//# P3.2 O.02 APS_Shutdown
|
||||||
|
//# P3.3 O.03 BPS_HVON
|
||||||
|
//# P3.4 O.04 BPS_SWON
|
||||||
|
//# P3.5 O.05 BPS_Shutdown
|
||||||
|
//# P3.6 O.06 GY1_Beam_ON_status
|
||||||
|
//# P3.7 O.07 RV5 _cRIO
|
||||||
|
DO3 = {
|
||||||
|
Type = uint8
|
||||||
|
PortId = 3
|
||||||
|
InversionMask = 0xFF
|
||||||
|
}
|
||||||
|
//# P4.0 O.08 RV6 _cRIO
|
||||||
|
//# P4.1 O.09 RV7 _cRIO
|
||||||
|
//# P4.2 O.10 RV8 _cRIO
|
||||||
|
//# P4.3 O.11 MHVPS_HVON
|
||||||
|
//# P4.4 O.12 MHVPS_Shutdown
|
||||||
|
//# P4.5 O.13 MHVPS_MOD
|
||||||
|
//# P4.6 O.14 PCF_FLT
|
||||||
|
//# P4.7 O.15 HVArmed
|
||||||
|
DO4 = {
|
||||||
|
Type = uint8
|
||||||
|
PortId = 4
|
||||||
|
InversionMask = 0xFF
|
||||||
|
}
|
||||||
|
//# P5.0 O.16 HVInjection
|
||||||
|
//# P5.1 O.17 RFON
|
||||||
|
//# P5.2 O.18 FHPS_Rampup_complete
|
||||||
|
//# P5.3 O.19 SCM_RU_Complete
|
||||||
|
//# P5.4 O.20 SCM_RD_Complete
|
||||||
|
//# P5.5 O.21 CCPS_IN_OPERATION
|
||||||
|
//# P5.6 O.22 PXI_FLT
|
||||||
|
//# P5.7 O.23
|
||||||
|
DO5 = {
|
||||||
|
Type = uint8
|
||||||
|
PortId = 5
|
||||||
|
InversionMask = 0xFF
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//# 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.
|
||||||
|
//# NI6259.0
|
||||||
|
//# APS_SWON BoardId=0, PortId=3.0
|
||||||
|
+NI6259_DIO_P0 = {
|
||||||
|
Class = "NI6259::NI6259DIO"
|
||||||
|
DeviceName = "/dev/pxi6259"
|
||||||
|
BoardId = 1
|
||||||
|
Signals = {
|
||||||
|
Status = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
NI6259Value = {
|
||||||
|
Type = uint32
|
||||||
|
Mask = 0xFF
|
||||||
|
PortId = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
#package jada_gyro.StateMachine
|
||||||
|
|
||||||
|
+INITIAL = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+Start = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = "WAITSTANDBY"
|
||||||
|
NextStateError = "ERROR"
|
||||||
|
+StartHttpServer = {
|
||||||
|
Class = Message
|
||||||
|
Destination = WebServer
|
||||||
|
Function = "Start"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_standby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+OpenDANWriterDIO = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Data.DANDIODataSource
|
||||||
|
Function = "OpenStream"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+OpenDANWriterAI = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Data.FastAnalogDAN
|
||||||
|
Function = "OpenStream"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
#package jada_gyro.StateMachine
|
||||||
|
|
||||||
|
+WAITSTANDBY = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+GoWaitReady = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITREADY
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitReady
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_ready
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoDisabled = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = DISABLED
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = Disabled
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_disabled
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoError = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = ERROR
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = Error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
#package jada_gyro.StateMachine
|
||||||
|
|
||||||
|
+WAITREADY = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+GoWaitStandby = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITSTANDBY
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_standby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitPermit = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITPERMIT
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitPermit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_permit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoError = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = ERROR
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = Error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,287 @@
|
|||||||
|
#package jada_gyro.StateMachine
|
||||||
|
|
||||||
|
+WAITPERMIT = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+GoWaitReady = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITREADY
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitReady
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_ready
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitHVON = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITHVON
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitHVON
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_hvon
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitHVON_SDN = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITHVON_SDN
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitHVON_SDN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_hvon_sdn
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitHVON_PREP = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITHVON_PREP
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitHVON_PREP
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_hvon_prep
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitHVON_SDN_PREP = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITHVON_SDN_PREP
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitHVON_SDN_PREP
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_hvon_sdn_prep
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoError = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = ERROR
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = Error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
#package jada_gyro.StateMachine
|
||||||
|
|
||||||
|
+WAITHVON = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+GoWaitStandby = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITSTANDBY
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_standby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitPermit = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITPERMIT
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitPermit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_permit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoError = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = ERROR
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = Error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
#package jada_gyro.StateMachine
|
||||||
|
|
||||||
|
+WAITHVON_PREP = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+GoWaitStandby = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITSTANDBY
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_standby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitPermit = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITPERMIT
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitPermit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_permit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoError = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = ERROR
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = Error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
#package jada_gyro.StateMachine
|
||||||
|
|
||||||
|
+WAITHVON_SDN = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+GoWaitStandby = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITSTANDBY
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_standby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitPermit = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITPERMIT
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitPermit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_permit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoError = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = ERROR
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = Error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
#package jada_gyro.StateMachine
|
||||||
|
|
||||||
|
+WAITHVON_SDN_PREP = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+GoWaitStandby = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITSTANDBY
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_standby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitPermit = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITPERMIT
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitPermit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_permit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoError = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = ERROR
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = Error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
#package jada_gyro.StateMachine
|
||||||
|
|
||||||
|
//# Error State (Enter by HVPS errors)
|
||||||
|
+ERROR = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+GoWaitStandby = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITSTANDBY
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_standby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
#package jada_gyro.StateMachine
|
||||||
|
|
||||||
|
+DISABLED = {
|
||||||
|
Class = ReferenceContainer
|
||||||
|
+GoWaitStandby = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = WAITSTANDBY
|
||||||
|
NextStateError = ERROR
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = WaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_standby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoError = {
|
||||||
|
Class = StateMachineEvent
|
||||||
|
NextState = "ERROR"
|
||||||
|
NextStateError = "ERROR"
|
||||||
|
+StopCurrentStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StopCurrentStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+PrepareNextStateMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
Function = "PrepareNextState"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
param1 = Error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+StartNextStateExecutionMsg = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp
|
||||||
|
Function = "StartNextStateExecution"
|
||||||
|
Mode = "ExpectsReply"
|
||||||
|
}
|
||||||
|
+SetState = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_STATE
|
||||||
|
SignalValue = @state_error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SetFault = {
|
||||||
|
Class = Message
|
||||||
|
Destination = RTApp.Functions.StateGAM
|
||||||
|
Function = "SetOutput"
|
||||||
|
+Parameters = {
|
||||||
|
Class = ConfigurationDatabase
|
||||||
|
SignalName = PCF_FAULT
|
||||||
|
SignalValue = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,135 @@
|
|||||||
|
#package jada_gyro.RTApp.Data
|
||||||
|
|
||||||
|
|
||||||
|
+DDB1 = {
|
||||||
|
Signals = {
|
||||||
|
FAST_STOP = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PREP_TIME_WF = {
|
||||||
|
Type = int32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
MHVPS_PREP_WF = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
BPS_PREP_WF = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
APS_PREP_WF = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
MCPS_PREP_WF = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
GCPS_PREP_WF = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
FHPS_PREP_WF = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = 8000
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
}
|
||||||
|
GYA_PREPRO_TIME = {
|
||||||
|
Type = int32
|
||||||
|
}
|
||||||
|
FHPS_PrePro = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
CSV_LOADED = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
CSV_ERR = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
GCPS_TRG_CURR_SET = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MCPS_TRG_CURR_SET = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
BPS_OUT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
APS_OUT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MHVPS_OUT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MCPS_OUT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GCPS_OUT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
BPS_REF = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
APS_REF = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MHVPS_REF = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
//# FHPS Rump Up completed
|
||||||
|
FHPS_RU = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PXI_FAULT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PCF_FAULT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+Th1Bridge = {
|
||||||
|
Class = RealTimeThreadAsyncBridge
|
||||||
|
NumberOfBuffers = 20
|
||||||
|
Signals = {
|
||||||
|
APS_OUT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
BPS_OUT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MHVPS_OUT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
FHPS_PrePro = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
PXI_FAULT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PCF_FAULT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MCPS_RU_COMPLETED = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
MCPS_RD_COMPLETED = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CCPS_IN_OPERATION = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,454 @@
|
|||||||
|
#package jada_gyro.RTApp.Functions
|
||||||
|
|
||||||
|
|
||||||
|
//# Copy data from DDB1 to EPICSCAOutput DataSource.
|
||||||
|
+EPICSOutputGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
PCF_STATE = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
//! implicit: unkown signal
|
||||||
|
MCPS_ACT_SP = { // TODO what the fuck it is?
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint32
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
//! implicit: unkown signal
|
||||||
|
GCPS_ACT_SP = { // TODO what the fuck it is?
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint32
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
BPS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
APS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MCPS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GCPS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
FHPS_REF = {
|
||||||
|
DataSource = WGAsyncBridge
|
||||||
|
}
|
||||||
|
CSV_LOADED = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
CSV_ERR = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
ELAPSED_TIME = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PREP_TIME_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
BPS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
APS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MCPS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GCPS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
FHPS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
CCPS_REF = {
|
||||||
|
DataSource = WGAsyncBridge
|
||||||
|
}
|
||||||
|
MHVPS_STOP = {
|
||||||
|
Alias = FAST_STOP
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_STOP = {
|
||||||
|
Alias = FAST_STOP
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_STOP = {
|
||||||
|
Alias = FAST_STOP
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
// MARTe Internal PCF_FLT
|
||||||
|
PCF_FAULT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PCF_FAULT_Sync = {
|
||||||
|
Alias = PCF_FAULT
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PXI_FAULT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PXI_FAULT_Sync = {
|
||||||
|
Alias = PXI_FAULT
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
SHOT_ID = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
FHPS_AUTO_STAT = {
|
||||||
|
DataSource = WGAsyncBridge
|
||||||
|
}
|
||||||
|
APS_HVON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
APS_SWON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
BPS_HVON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
BPS_SWON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_HVON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
TRIGGER = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
ECPC_MOD = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_APS_READY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_READY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
FAST_TRIP = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
// DO_REV6 = {
|
||||||
|
// DataSource = DDB1
|
||||||
|
// }
|
||||||
|
PXI6259_Status = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PXI6683_Status = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PXI6683_PtpdStatus = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
// PXI_6683_SYNCLOST = {
|
||||||
|
// DataSource = DDB1
|
||||||
|
// }
|
||||||
|
PXI6528_Status = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
PCF_STATE = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
MCPS_ACT_SP = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
GCPS_ACT_SP = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_REF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
APS_REF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MCPS_TRG_CURR_SET = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GCPS_TRG_CURR_SET = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
FHPS_REF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
CSV_LOADED = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
CSV_ERR = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
ELAPSED_TIME = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
MHVPS_REF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
PREP_TIME_WF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
MHVPS_PREP_WF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
BPS_PREP_WF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
APS_PREP_WF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
MCPS_PREP_WF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
GCPS_PREP_WF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
FHPS_PREP_WF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
CCPS_REF = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
MHVPS_STOP = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_STOP = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_STOP = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PCF_FLT = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
PCF_FAULT_Sync = {
|
||||||
|
Alias = PCF_FAULT
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
PXI_FLT = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
PXI_FAULT_Sync = {
|
||||||
|
Alias = PXI_FAULT
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
SHOT_ID = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
FHPS_AUTO_STAT = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
APS_HVON = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
APS_SWON = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
BPS_HVON = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
BPS_SWON = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
MHVPS_HVON = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
EXT_TRIGGER = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
ECPC_MHVPS_MOD = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
CCPS_IN_OP = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
APS_FLT = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
APS_READY = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
BPS_FLT = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
BPS_READY = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
MHPS_FLT = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
MHPS_READY = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
MHPS_OC = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
MHPS_OV = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
FAST_ITL = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
// FAST_PAUSE = {
|
||||||
|
// DataSource = EPICSCAOutput
|
||||||
|
// }
|
||||||
|
PXI_6259_STATE = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
PXI_6683_STATE = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
PXI_6683_SYNC = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
// PXI_6683_SYNCLOST = {
|
||||||
|
// DataSource = EPICSCAOutput
|
||||||
|
// }
|
||||||
|
PXI_6528_STATE = {
|
||||||
|
DataSource = EPICSCAOutput
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
#package jada_gyro.RTApp.Functions
|
||||||
|
|
||||||
|
// GAM for prepro
|
||||||
|
+WFRecordGAM = {
|
||||||
|
Class = JAWFRecordGAM
|
||||||
|
Directory = "../Configurations" // TODO: Enter directory path for prepro files.
|
||||||
|
InputSignals = {
|
||||||
|
CSV_LOAD = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
Filename = {
|
||||||
|
Alias = CSV_NAME
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
PREP_TIME_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
BPS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
APS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MCPS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GCPS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
FHPS_PREP_WF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+PreProgrammedGAM = {
|
||||||
|
Class = JAPreProgrammedGAM
|
||||||
|
Directory = "../Configurations" // TODO: Enter the directory path for prepro files.
|
||||||
|
PreProgrammedPeriodMs = 1 // Parameter update periods in ms.
|
||||||
|
InputSignals = {
|
||||||
|
CSV_LOAD = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
Filename = {
|
||||||
|
Alias = CSV_NAME
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
FHPS_REF = {
|
||||||
|
Alias = FHPS_AUTO_TAGV
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
GYA_PREPRO_TIME = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = int32
|
||||||
|
}
|
||||||
|
MHVPS_REF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
BPS_REF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
APS_REF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MCPS_TRG_CURR_SET = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GCPS_TRG_CURR_SET = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
FHPS_PrePro = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
CSV_LOADED = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
CSV_ERR = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
#package jada_gyro.RTApp.Functions
|
||||||
|
|
||||||
|
|
||||||
|
+PXIErrorGAM = {
|
||||||
|
Class = JAConditionalSignalUpdateGAM
|
||||||
|
Operation = "OR"
|
||||||
|
InputSignals = {
|
||||||
|
PXI6368_Status_3 = {
|
||||||
|
Alias = PXI6368_Status
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Type = uint32
|
||||||
|
Value = 3
|
||||||
|
}
|
||||||
|
PXI6368_Status_4 = {
|
||||||
|
Alias = PXI6368_Status
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Type = uint32
|
||||||
|
Value = 4
|
||||||
|
}
|
||||||
|
PXI6528_Status = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Comparator = "GREATER"
|
||||||
|
Type = uint32
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
PXI6259_Status = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Comparator = "GREATER"
|
||||||
|
Type = uint32
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
PXI_FAULT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
DefaultValue = 0
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
#package jada_gyro.RTApp.Functions
|
||||||
|
|
||||||
|
//# MCPS, GCPS PV to DDB1
|
||||||
|
+MCPSGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
MCPS_TRG_CURR_MANUAL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GCPS_TRG_CURR_MANUAL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
MCPS_TRG_CURR_SET = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GCPS_TRG_CURR_SET = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# Switching AO port source between internal variable and EPICS PV.
|
||||||
|
+ChoiceGAM = {
|
||||||
|
Class = JASourceChoiceGAM
|
||||||
|
numberOfPVs = 5
|
||||||
|
InputSignals = {
|
||||||
|
BPS_REF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
BPS_MANUAL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
BPS_MM = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_REF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
APS_MANUAL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
APS_MM = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
MHVPS_REF = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MHVPS_MANUAL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MHVPS_MM = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
MCPS_TRG_CURR_SET = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MCPS_TRG_CURR_MANUAL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MCPS_MM = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
GCPS_TRG_CURR_SET = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GCPS_TRG_CURR_MANUAL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GCPS_MM = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
BPS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
APS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MHVPS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
MCPS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GCPS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,530 @@
|
|||||||
|
#package jada_gyro.RTApp
|
||||||
|
|
||||||
|
|
||||||
|
+Data = {
|
||||||
|
+DDB1 = {
|
||||||
|
Signals = {
|
||||||
|
//# Fast controller state variable
|
||||||
|
//# - 0: Init
|
||||||
|
//# - 1: Error
|
||||||
|
//# - 3: Wait Standby
|
||||||
|
//# - 4: Wait Ready
|
||||||
|
//# - 5: Wait Permit
|
||||||
|
//# - 6: Wait HVON
|
||||||
|
//# - 7: Wait HVON PREP
|
||||||
|
//# - 8: Wait HVON SDN
|
||||||
|
//# - 9: Wait HVON SDN PREP
|
||||||
|
PCF_STATE = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Functions = {
|
||||||
|
//# GAM That publish state of the system
|
||||||
|
//# The values will be updated by messages coming from
|
||||||
|
//# the statemachine
|
||||||
|
+StateGAM = {
|
||||||
|
Class = ConstantGAM
|
||||||
|
OutputSignals = {
|
||||||
|
PCF_STATE = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Default = @state_none
|
||||||
|
}
|
||||||
|
PCF_FAULT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Default = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# From any state to Error state.
|
||||||
|
+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
|
||||||
|
Operation = "OR"
|
||||||
|
InputSignals = {
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
PXI_FAULT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MIS_ITL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoError
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# Reset Error GAM
|
||||||
|
+ResetErrorGAM = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
RESET_FLT = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
PXI_FAULT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
// PLC_ITL = {
|
||||||
|
// DataSource = DDB1
|
||||||
|
// Type = uint8
|
||||||
|
// Comparator = "EQUALS"
|
||||||
|
// Value = 0
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# Go to wait standby
|
||||||
|
+GoWaitStandbyGAM = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
PLC_SELECT = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Type = uint32
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoDisabledGAM = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
PLC_SELECT = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoDisabled
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# GAM in WaitReady state. Check MCPS,GCPS,FHPS state for state transition.
|
||||||
|
+GoWaitReadyGAM = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
MCPS_ACT_RB = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 3
|
||||||
|
}
|
||||||
|
MCPS_CURR_MON = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
Comparator = "GREATER"
|
||||||
|
Value = 0.0
|
||||||
|
}
|
||||||
|
GCPS_ACT_RB = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 3
|
||||||
|
}
|
||||||
|
GCPS_CURR_MON = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
Comparator = "GREATER"
|
||||||
|
Value = 0.0
|
||||||
|
}
|
||||||
|
FHPS_RU = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Type = uint8
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
GY_FHPS_MEAS_ACV = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
Comparator = "GREATER"
|
||||||
|
Value = 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitReady
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# GAM in WaitReady state. Check PLC_READY and CCPS_IN_OPERATION status.
|
||||||
|
+GoWaitPermitGAM = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MIS_ITL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitPermit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitStandbyFromReadyGAM = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Value = 0
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# GAM in WaitPermit state. Check Permit and States of Operation Modes.
|
||||||
|
+GoWaitReadyFromWaitPermitGAM = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "OR"
|
||||||
|
InputSignals = {
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Value = 0
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Value = 0
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitReady
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitHVONGAM = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
PREP_MODE = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MIS_ITL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitHVON
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitHVON_PREP_GAM = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
PREP_MODE = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitHVON_PREP
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitHVON_SDN_GAM = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
PREP_MODE = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MIS_ITL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitHVON_SDN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GoWaitHVON_SDN_PREP_GAM = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
PREP_MODE = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MIS_ITL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitHVON_SDN_PREP
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# GAM in WaitHVON_xx states. If PLC_READY is zero, goto WaitStandby.
|
||||||
|
+FromWaitHVONToWaitStandby = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitStandby
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# GAM in WaitHVON_xx states. If PLC_PERMIT is zero, goto WaitPermit.
|
||||||
|
+FromWaitHVONToWaitPermit = {
|
||||||
|
Class = JAMessageGAM
|
||||||
|
Operation = "AND"
|
||||||
|
InputSignals = {
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
APS_HVON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
BPS_HVON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
MHVPS_HVON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
BPS_SWON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
APS_SWON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Event = {
|
||||||
|
Class = Message
|
||||||
|
Destination = StateMachine
|
||||||
|
Function = GoWaitPermit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,539 @@
|
|||||||
|
#package jada_gyro.RTApp.Functions
|
||||||
|
|
||||||
|
|
||||||
|
//# Synchronise Thread 1 to Thread 3 using SynchTread data source
|
||||||
|
//# Thread 1 will be executed every @fast_slow_ratio cycles of Thread 3
|
||||||
|
+SyncThreadConsumerGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
PXI6259_Status = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
Frequency = 1
|
||||||
|
}
|
||||||
|
PXI6528_Status = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
PXI6683_Status = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
PXI6683_PtpdStatus = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
GYA_APS_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
MHVPS_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
ECPC_MOD = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
FAST_TRIP = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
TRIGGER = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
RFON_TIME = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
SHOT_ID = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @fast_slow_ratio
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
PXI6259_Status_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PXI6528_Status_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PXI6683_Status_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PXI6683_PtpdStatus_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_APS_READY_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_APS_FLT_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_BPS_READY_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_OV_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_OC_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_FLT_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_READY_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
ECPC_MOD_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
FAST_TRIP_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_ITL_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_STANDBY_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_READY_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_ON_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_PERMIT_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
TRIGGER_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
HVARMED_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
HVINJECTION_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
RFON_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
ELAPSED_TIME_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
SHOT_ID_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
CRIO_RV1_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
CRIO_RV2_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
CRIO_RV3_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+DecimateGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
PXI6259_Status_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
PXI6528_Status_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
PXI6683_Status_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
PXI6683_PtpdStatus_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
GYA_APS_READY_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
GYA_APS_FLT_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
GYA_BPS_READY_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
MHVPS_OV_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
MHVPS_OC_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
MHVPS_FLT_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
MHVPS_READY_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
ECPC_MOD_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
FAST_TRIP_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
PLC_ITL_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
PLC_STANDBY_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
PLC_READY_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
PLC_ON_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
PLC_PERMIT_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
TRIGGER_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
HVARMED_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
HVINJECTION_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
RFON_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
ELAPSED_TIME_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
SHOT_ID_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
CRIO_RV1_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
CRIO_RV2_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
CRIO_RV3_SAMPLES = {
|
||||||
|
DataSource = DDB1
|
||||||
|
Ranges = { { @dec_index, @dec_index } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
PXI6259_Status = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PXI6528_Status = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PXI6683_Status = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PXI6683_PtpdStatus = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_APS_READY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_READY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
ECPC_MOD = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
FAST_TRIP = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
TRIGGER = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
ELAPSED_TIME = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
SHOT_ID = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+EPICSThSyncGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
BPS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
APS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MHVPS_OUT = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
FHPS_PrePro = {
|
||||||
|
DataSource = DDB1
|
||||||
|
}
|
||||||
|
MCPS_RU_COMPLETED = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
MCPS_RD_COMPLETED = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
CCPS_IN_OPERATION = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
BPS_OUT = {
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
APS_OUT = {
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
MHVPS_OUT = {
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
FHPS_PrePro = {
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
MCPS_RU_COMPLETED = {
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
MCPS_RD_COMPLETED = {
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
CCPS_IN_OPERATION = {
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,260 @@
|
|||||||
|
#package jada_gyro.RTApp
|
||||||
|
|
||||||
|
|
||||||
|
+Data = {
|
||||||
|
//# SDN subscriber
|
||||||
|
+SDNCommands = {
|
||||||
|
Class = "SDN::SDNSubscriber"
|
||||||
|
Topic = "ECPC2SCUJA"
|
||||||
|
Interface = "enp35s0f1"
|
||||||
|
CPUs = 0x200
|
||||||
|
Locked = 1
|
||||||
|
Timeout = 2
|
||||||
|
Signals = {
|
||||||
|
//! unused: SDN header has no use in this appliation
|
||||||
|
Header = {
|
||||||
|
Type = uint8
|
||||||
|
NumberOfElements = 48
|
||||||
|
}
|
||||||
|
//! unused: not used for nothing
|
||||||
|
Dummy = {
|
||||||
|
Type = uint8
|
||||||
|
NumberOfElements = 4
|
||||||
|
}
|
||||||
|
ESDNTime = {
|
||||||
|
Type = uint32
|
||||||
|
NumberOfElements = 1
|
||||||
|
}
|
||||||
|
Command = {
|
||||||
|
Type = uint16
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
NumberOfElements = 64
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Th2Bridge = {
|
||||||
|
Class = RealTimeThreadAsyncBridge
|
||||||
|
NumberOfBuffers = 20
|
||||||
|
Signals = {
|
||||||
|
Command = {
|
||||||
|
Type = uint16
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
HVInjection = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+DDB2 = {
|
||||||
|
Signals = {
|
||||||
|
WaveformPacketID = {
|
||||||
|
Type = uint16
|
||||||
|
}
|
||||||
|
ESDNTime = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SDNReply = {
|
||||||
|
Class = "SDN::SDNPublisher"
|
||||||
|
Topic = "SCUJA2ECPC"
|
||||||
|
Interface = "enp35s0f1"
|
||||||
|
CPUs = 0x200 // changed from 0x100
|
||||||
|
Address = "192.195.1.1"
|
||||||
|
Port = 2000
|
||||||
|
Locked = 1
|
||||||
|
Signals = {
|
||||||
|
//! unused: SDN header not used
|
||||||
|
Header = {
|
||||||
|
Type = uint8
|
||||||
|
NumberOfElements = 48
|
||||||
|
}
|
||||||
|
//! unused: not used anywhere
|
||||||
|
Dummy = {
|
||||||
|
Type = uint8
|
||||||
|
NumberOfElements = 4
|
||||||
|
}
|
||||||
|
ESDNTime = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
//! unused: why?
|
||||||
|
ReplyStatus = {
|
||||||
|
Type = uint16
|
||||||
|
}
|
||||||
|
ReplyWaveformAck = {
|
||||||
|
Type = uint16
|
||||||
|
}
|
||||||
|
// Status (26Bytes?) is not assigned
|
||||||
|
// GyrotronA measurements
|
||||||
|
// 56Bytes are used as Gyrotron1 Measurements (verified on 2020/10/22)
|
||||||
|
GYA_MHVPS_MESVOLT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_MHVPS_MESCURR = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_BPS_MESVOLT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_BPS_MESCURR = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_APS_MESVOLT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_APS_MESCURR = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_ARC1_MESVOLT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_ARC2_MESVOLT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_ARC3_MESVOLT = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_MCPS_CURR_MON = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_GCPS_CURR_MON = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_FHPS_MEAS_ACI = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GYA_CCPS_MEAS_DCI = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Functions = {
|
||||||
|
+SDNCommandGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
Command = {
|
||||||
|
DataSource = SDNCommands
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
NumberOfElements = 64
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
ESDNTime = {
|
||||||
|
DataSource = SDNCommands
|
||||||
|
NumberOfDimensions = 1
|
||||||
|
NumberOfElements = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
Command = {
|
||||||
|
DataSource = Th2Bridge
|
||||||
|
}
|
||||||
|
ESDNTime = {
|
||||||
|
DataSource = DDB2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+SDNReplyGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
ESDNTime = {
|
||||||
|
DataSource = DDB2
|
||||||
|
}
|
||||||
|
WaveformPacketID = {
|
||||||
|
DataSource = DDB2
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_MCPS_CURR_MON = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
GY_GCPS_CURR_MON = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
GY_FHPS_MEAS_ACI = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
GY_CCPS_MEAS_DCI = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
ESDNTime = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
ReplyWaveformAck = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_BPS_MESVOLT = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_BPS_MESCURR = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_APS_MESVOLT = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_APS_MESCURR = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_ARC1_MESVOLT = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_ARC2_MESVOLT = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_ARC3_MESVOLT = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_MHVPS_MESVOLT = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_MHVPS_MESCURR = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_MCPS_CURR_MON = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_GCPS_CURR_MON = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_FHPS_MEAS_ACI = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
}
|
||||||
|
GYA_CCPS_MEAS_DCI = {
|
||||||
|
DataSource = SDNReply
|
||||||
|
Trigger = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,395 @@
|
|||||||
|
#package jada_gyro.RTApp
|
||||||
|
|
||||||
|
|
||||||
|
+Data = {
|
||||||
|
+SynchThread = {
|
||||||
|
Class = RealTimeThreadSynchronisation
|
||||||
|
Timeout = 100
|
||||||
|
Signals = {
|
||||||
|
DiTime = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PXI6259_Status = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PXI6528_Status = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PXI6683_Status = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PXI6683_PtpdStatus = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_APS_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
MHVPS_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
ECPC_MOD = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
FAST_TRIP = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
TRIGGER = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
RFON_TIME = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHOT_ID = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+DDB3 = {
|
||||||
|
Signals = {
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
RFON_TIME = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PXI6528_Status = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
MHVPS_DT = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_HVON_DT = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_SWON_DT = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_HVON_DT = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_SWON_DT = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHOTLEN = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHORT_PULSE_MODE = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Functions = {
|
||||||
|
+SyncThreadProducerGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
Time = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PXI6259_Status = {
|
||||||
|
Alias = Status
|
||||||
|
DataSource = NI6259_DIO_P0
|
||||||
|
}
|
||||||
|
PXI6528_Status = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Value = 0
|
||||||
|
}
|
||||||
|
PXI6683_Status = {
|
||||||
|
DataSource = TimingBoard
|
||||||
|
Alias = Status
|
||||||
|
}
|
||||||
|
PXI6683_PtpdStatus = {
|
||||||
|
DataSource = TimingBoard
|
||||||
|
Alias = PtpdStatus
|
||||||
|
}
|
||||||
|
GYA_APS_READY = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_READY = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
ECPC_MOD = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
FAST_TRIP = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
TRIGGER = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
RFON_TIME = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
SHOT_ID = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
DiTime = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PXI6259_Status = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PXI6528_Status = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PXI6683_Status = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PXI6683_PtpdStatus = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
GYA_APS_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
MHVPS_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
ECPC_MOD = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
FAST_TRIP = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
TRIGGER = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
RFON_TIME = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
SHOT_ID = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
#package jada_gyro.RTApp
|
||||||
|
|
||||||
|
+Functions = {
|
||||||
|
//# Thread3 pulse parameter EPICS PVs read.
|
||||||
|
//# TODO: Should be better to read it in thread 1 and use a async bridge to copy to 3?
|
||||||
|
+FastEpicsInputGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
MHVPS_DT = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_HVON_DT = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_SWON_DT = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_HVON_DT = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_SWON_DT = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHOTLEN = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHORT_PULSE_MODE = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
MHVPS_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
APS_HVON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
APS_SWON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BPS_HVON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BPS_SWON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
SHOTLEN = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
SHORT_PULSE_MODE = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
#package jada_gyro.RTApp.Functions
|
||||||
|
|
||||||
|
//# Reset HVPS outputs. ToDo: Fix to access NI d.s.
|
||||||
|
+HVPSsOffGAM = {
|
||||||
|
Class = ConstantGAM
|
||||||
|
OutputSignals = {
|
||||||
|
MHVPS_HVON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Default = 0
|
||||||
|
}
|
||||||
|
BPS_HVON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Default = 0
|
||||||
|
}
|
||||||
|
BPS_SWON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Default = 0
|
||||||
|
}
|
||||||
|
APS_HVON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Default = 0
|
||||||
|
}
|
||||||
|
APS_SWON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Default = 0
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Default = 0
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Default = 0
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Default = 0
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Default = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
#package jada_gyro.RTApp.Functions
|
||||||
|
|
||||||
|
+FastStopRequestGAM = {
|
||||||
|
Class = JAConditionalSignalUpdateGAM
|
||||||
|
Operation = "OR"
|
||||||
|
InputSignals = {
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
MIS_ITL = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint8
|
||||||
|
Comparator = "EQUALS"
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
FAST_STOP = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint8
|
||||||
|
DefaultValue = 0
|
||||||
|
Value = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# Check the selected mode, and check maximum pulse length. Use with a StateMachineGAM
|
||||||
|
+ModeLimitGAM = {
|
||||||
|
Class = JAModeControlGAM
|
||||||
|
InputSignals = {
|
||||||
|
PLC_MODE1 = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
MD1_SHOTLEN_LIM = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
PLC_MODE2 = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
MD2_SHOTLEN_LIM = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
PLC_MODE3 = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
MD3_SHOTLEN_LIM = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
PLC_MODE4 = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
MD4_SHOTLEN_LIM = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = Th2Bridge
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
DataSource = Th2Bridge
|
||||||
|
}
|
||||||
|
HVInjection = {
|
||||||
|
DataSource = Th2Bridge
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
MODE_SHOTLEN_FLAG = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,250 @@
|
|||||||
|
#package jada_gyro.RTApp.Functions
|
||||||
|
|
||||||
|
+NI6528_0_ReaderGAM = {
|
||||||
|
Class = "IOExt::ExtractBitGAM"
|
||||||
|
InputSignals = {
|
||||||
|
DI0 = {
|
||||||
|
Trigger = 1
|
||||||
|
DataSource = NI6528_0_DIO
|
||||||
|
}
|
||||||
|
DI1 = {
|
||||||
|
DataSource = NI6528_0_DIO
|
||||||
|
}
|
||||||
|
DI2 = {
|
||||||
|
DataSource = NI6528_0_DIO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
GYA_APS_READY = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_READY = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
ECPC_MOD = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
FAST_TRIP = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
//! implicit: placeholder for spare
|
||||||
|
NONE_DI10 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
TRIGGER = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
NONE_DI23 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Digital Output port access.
|
||||||
|
// EPICS PV to one uint8 variable
|
||||||
|
+NI6528_0_WriterGAM = {
|
||||||
|
Class = "IOExt::CompactBitGAM"
|
||||||
|
InputSignals = {
|
||||||
|
APS_HVON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
APS_SWON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
APS_STOP = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BPS_HVON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BPS_SWON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BPS_STOP = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
DO_REV5 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
DO_REV6 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
DO_REV7 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
DO_REV8 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_HVON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_STOP = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_MODSW = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PCF_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
FHPS_RU = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
SCM_RU = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
SCM_RD = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
CCPS_IN_OPERATION = {
|
||||||
|
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 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
//! implicit: Placeholder for spare output
|
||||||
|
NONE_DO5_1_After = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint8
|
||||||
|
Default = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
DO3 = {
|
||||||
|
DataSource = NI6528_0_DIO
|
||||||
|
}
|
||||||
|
DO4 = {
|
||||||
|
DataSource = NI6528_0_DIO
|
||||||
|
}
|
||||||
|
DO5 = {
|
||||||
|
DataSource = NI6528_0_DIO
|
||||||
|
}
|
||||||
|
DO5_B1 = {
|
||||||
|
Alias = DO5
|
||||||
|
DataSource = NI6528_1_DIO
|
||||||
|
Trigger = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// //# INPUTs: StateMahine Value, NI6528P3Value and NI6528P4Value
|
||||||
|
// //# OUTPUTs: Each NIxxx data sources.
|
||||||
|
// //# TODO: name is very ambiguos
|
||||||
|
// +TerminalInterfaceGAM = {
|
||||||
|
// Class = JATerminalInterfaceGAM
|
||||||
|
// mhvps_hvon_term = 4
|
||||||
|
// aps_hvon_term = 1
|
||||||
|
// aps_swon_term = 16
|
||||||
|
// bps_hvon_term = 2
|
||||||
|
// bps_swon_term = 8
|
||||||
|
// InputSignals = {
|
||||||
|
// MHVPS_HVON = {
|
||||||
|
// DataSource = DDB3
|
||||||
|
// }
|
||||||
|
// APS_HVON = {
|
||||||
|
// DataSource = DDB3
|
||||||
|
// }
|
||||||
|
// APS_SWON = {
|
||||||
|
// DataSource = DDB3
|
||||||
|
// }
|
||||||
|
// BPS_HVON = {
|
||||||
|
// DataSource = DDB3
|
||||||
|
// }
|
||||||
|
// BPS_SWON = {
|
||||||
|
// DataSource = DDB3
|
||||||
|
// }
|
||||||
|
// SHORT_PULSE_MODE = {
|
||||||
|
// DataSource = EPICSCAInput
|
||||||
|
// Type = uint32
|
||||||
|
// }
|
||||||
|
// // Input signals about HW terminal.
|
||||||
|
// RTSMValue = {
|
||||||
|
// DataSource = DDB3
|
||||||
|
// Type = uint32
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// OutputSignals = {
|
||||||
|
// NI6259Value = {
|
||||||
|
// DataSource = NI6259_DIO_P0
|
||||||
|
// Type = uint32
|
||||||
|
// Trigger = 1
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
@@ -0,0 +1,197 @@
|
|||||||
|
#package jada_gyro.RTApp.Functions
|
||||||
|
|
||||||
|
|
||||||
|
+GAMRealTimeStateMachine = {
|
||||||
|
Class = JARTStateMachineGAM
|
||||||
|
ConditionTrigger = 1
|
||||||
|
mhvps_hvon = 4
|
||||||
|
aps_hvon = 1
|
||||||
|
aps_swon = 16
|
||||||
|
bps_hvon = 2
|
||||||
|
bps_swon = 8
|
||||||
|
InputSignals = {
|
||||||
|
Time = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_HVON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_SWON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_HVON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_SWON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHOTLEN = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
FAST_STOP = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MODE_SHOTLEN_FLAG = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
SHORT_PULSE_MODE = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_MODSW = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
// Add 20210121
|
||||||
|
DO_REV6 = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
RTSMValue = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
Trigger = 1
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BeamONTime = {
|
||||||
|
Alias = BEAM_ON_TIME
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
RFONTime = {
|
||||||
|
Alias = RFON_TIME
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHOT_ID = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
APS_HVON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
APS_SWON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BPS_HVON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BPS_SWON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_HVON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
NI6259Value = {
|
||||||
|
DataSource = NI6259_DIO_P0
|
||||||
|
Type = uint32
|
||||||
|
Trigger = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+GAMSDNRealTimeStateMachine = {
|
||||||
|
Class = JASDNRTStateMachineGAM
|
||||||
|
ConditionTrigger = 1
|
||||||
|
mhvps_hvon = 4
|
||||||
|
aps_hvon = 1
|
||||||
|
aps_swon = 16
|
||||||
|
bps_hvon = 2
|
||||||
|
bps_swon = 8
|
||||||
|
InputSignals = {
|
||||||
|
Time = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MHVPS_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_HVON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
APS_SWON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_HVON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
BPS_SWON_DT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHOTLEN = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
FAST_STOP = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
MODE_SHOTLEN_FLAG = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
Command = {
|
||||||
|
DataSource = Th2Bridge
|
||||||
|
Type = uint16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
RTSMValue = {
|
||||||
|
DataSource = DDB3
|
||||||
|
Trigger = 1
|
||||||
|
}
|
||||||
|
BeamON = {
|
||||||
|
Alias = BEAM_ON_STAT
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
BeamONTime = {
|
||||||
|
Alias = BEAM_ON_TIME
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
RFONTime = {
|
||||||
|
Alias = RFON_TIME
|
||||||
|
DataSource = DDB3
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
SHOT_ID = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,652 @@
|
|||||||
|
#package jada_gyro.RTApp
|
||||||
|
|
||||||
|
|
||||||
|
+Data = {
|
||||||
|
+FastADC = {
|
||||||
|
Class = "NI6368::NI6368ADC"
|
||||||
|
// The divisor is computed on BaseSampleClockFrequency.
|
||||||
|
SamplingFrequency = @sampling_freq
|
||||||
|
DeviceName = "/dev/pxie-6368"
|
||||||
|
IsMultiplexed = 0 // Default is 0 for 6368. Set to 1 if using 6363.
|
||||||
|
BoardId = 0 // Mandatory
|
||||||
|
ExecutionMode = "RealTimeThread" // Optional (default is IndepenentThread). Possible values:IndependentThread, RealTimeThread
|
||||||
|
Calibrate = 1 // Optional (default is 0). If disabled the signals show raw acquired value (signal type must be int16). If enabled the samples already converted accordingly to the declared InputRange. In this case the signal type must be float32
|
||||||
|
|
||||||
|
Signals = {
|
||||||
|
Counter = {
|
||||||
|
Type = uint64
|
||||||
|
ResetOnBufferChange = 1
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
Type = uint64
|
||||||
|
}
|
||||||
|
Status = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
ChannelId = 0
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
ChannelId = 1
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
ChannelId = 2
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
ChannelId = 3
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
ChannelId = 4
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
ChannelId = 5
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
ChannelId = 6
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
ChannelId = 7
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
ChannelId = 8
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
ChannelId = 9
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+TimingBoard = {
|
||||||
|
Class = NI6683H
|
||||||
|
BoardId = 0
|
||||||
|
Signals = {
|
||||||
|
Status = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
PtpdStatus = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
Type = uint64
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+DDB4 = {
|
||||||
|
Class = GAMDataSource
|
||||||
|
Signals = {
|
||||||
|
PXI6368_Status = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+FastAnalogDAN = {
|
||||||
|
Class = "DAN::DANSource"
|
||||||
|
NumberOfBuffers = 100
|
||||||
|
CPUMask = @cpus_fdan
|
||||||
|
StackSize = 10000000
|
||||||
|
DanBufferMultiplier = 10000 //10s at 1kHz loop (1M with 1k samples)
|
||||||
|
StoreOnTrigger = 1
|
||||||
|
ICProgName = @app_name
|
||||||
|
NumberOfPreTriggers = 0
|
||||||
|
NumberOfPostTriggers = 0
|
||||||
|
Signals = {
|
||||||
|
Trigger = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
AI_Time = {
|
||||||
|
Type = uint64
|
||||||
|
TimeSignal = 1
|
||||||
|
AbsoluteTime = 1
|
||||||
|
TimeSignalMultiplier = 1e-9
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
SamplingFrequency = @sampling_freq
|
||||||
|
NodeName = (@rfid .. ":GY_APS_V_MEAS")
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
SamplingFrequency = @sampling_freq
|
||||||
|
NodeName = (@rfid .. ":GY_APS_I_MEAS")
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
SamplingFrequency = @sampling_freq
|
||||||
|
NodeName = (@rfid .. ":GY_BPS_V_MEAS")
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
SamplingFrequency = @sampling_freq
|
||||||
|
NodeName = (@rfid .. ":GY_BPS_I_MEAS")
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
SamplingFrequency = @sampling_freq
|
||||||
|
NodeName = (@rfid .. ":GY_MHV_V_MEAS")
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
SamplingFrequency = @sampling_freq
|
||||||
|
NodeName = (@rfid .. ":GY_MHV_I_MEAS")
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
SamplingFrequency = @sampling_freq
|
||||||
|
NodeName = (@rfid .. ":GY_ARC1_V_MEAS")
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
SamplingFrequency = @sampling_freq
|
||||||
|
NodeName = (@rfid .. ":GY_ARC2_V_MEAS")
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
SamplingFrequency = @sampling_freq
|
||||||
|
NodeName = (@rfid .. ":GY_ARC3_V_MEAS")
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
NumberOfElements = @slow_clock
|
||||||
|
SamplingFrequency = @sampling_freq
|
||||||
|
NodeName = (@rfid .. ":GY_RF_V_MEAS")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+AnalogEpicsOutput = {
|
||||||
|
Class = "EPICSCA::EPICSCAOutput"
|
||||||
|
CPUMask = @cpus_epics // change from 0x200
|
||||||
|
StackSize = 10000000
|
||||||
|
NumberOfBuffers = 50
|
||||||
|
Signals = {
|
||||||
|
PXI6368_Status = {
|
||||||
|
Type = uint32
|
||||||
|
PVName = (@rfid .. "-HWCF:6368-0-STATUS")
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
PVName = (@rfid .. "-PA1F:PSU3000-ET")
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
PVName = (@rfid .. "-PA1F:PSU3000-IT")
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
PVName = (@rfid .. "-PB1F:PSU1000-ET")
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
PVName = (@rfid .. "-PB1F:PSU1000-IT")
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
PVName = (@rfid .. "-PMF:PSU0000-ET-GA")
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
PVName = (@rfid .. "-PMF:PSU0000-IT-GA")
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
PVName = (@rfid .. "-GAF:MOE2810-ET")
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
PVName = (@rfid .. "-GAF:MOE2820-ET")
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
PVName = (@rfid .. "-GAF:MOE2830-ET")
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
PVName = (@rfid .. "-GAF:MRF2910-ET")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Th4Bridge = {
|
||||||
|
Class = RealTimeThreadAsyncBridge
|
||||||
|
NumberOfBuffers = 20
|
||||||
|
Signals = {
|
||||||
|
PXI6368_Status = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+Functions = {
|
||||||
|
+ReadADC = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
Status = {
|
||||||
|
DataSource = FastADC
|
||||||
|
Frequency = 1000
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
DataSource = FastADC
|
||||||
|
Samples = @slow_clock
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
DataSource = FastADC
|
||||||
|
Samples = @slow_clock
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
DataSource = FastADC
|
||||||
|
Samples = @slow_clock
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
DataSource = FastADC
|
||||||
|
Samples = @slow_clock
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
DataSource = FastADC
|
||||||
|
Samples = @slow_clock
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
DataSource = FastADC
|
||||||
|
Samples = @slow_clock
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
DataSource = FastADC
|
||||||
|
Samples = @slow_clock
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
DataSource = FastADC
|
||||||
|
Samples = @slow_clock
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
DataSource = FastADC
|
||||||
|
Samples = @slow_clock
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS = {
|
||||||
|
DataSource = FastADC
|
||||||
|
Samples = @slow_clock
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
PXI6368_Status = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+PushADCtoDAN = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
TRIGGER_DAN = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
DataSource = TimingBoard
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
Trigger = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
AI_Time = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS = {
|
||||||
|
DataSource = FastAnalogDAN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+PushADCtoEpics = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
PXI6368_Status_Async = {
|
||||||
|
Alias = PXI6368_Status
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
PXI6368_Status = {
|
||||||
|
DataSource = DDB4
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS_Async = {
|
||||||
|
Alias = GY_APS_V_MEAS
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS_Async = {
|
||||||
|
Alias = GY_APS_I_MEAS
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS_Async = {
|
||||||
|
Alias = GY_BPS_V_MEAS
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS_Async = {
|
||||||
|
Alias = GY_BPS_I_MEAS
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS_Async = {
|
||||||
|
Alias = GY_MHV_V_MEAS
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS_Async = {
|
||||||
|
Alias = GY_MHV_I_MEAS
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS_Async = {
|
||||||
|
Alias = GY_ARC1_V_MEAS
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS_Async = {
|
||||||
|
Alias = GY_ARC2_V_MEAS
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS_Async = {
|
||||||
|
Alias = GY_ARC3_V_MEAS
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS_Async = {
|
||||||
|
Alias = GY_RF_V_MEAS
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS = {
|
||||||
|
DataSource = DDB4
|
||||||
|
Ranges = { { 0, 0 } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
PXI6368_Status_Async = {
|
||||||
|
Alias = PXI6368_Status
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
PXI6368_Status = {
|
||||||
|
DataSource = AnalogEpicsOutput
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS_Async = {
|
||||||
|
Alias = GY_APS_V_MEAS
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_APS_V_MEAS = {
|
||||||
|
DataSource = AnalogEpicsOutput
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS_Async = {
|
||||||
|
Alias = GY_APS_I_MEAS
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_APS_I_MEAS = {
|
||||||
|
DataSource = AnalogEpicsOutput
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS_Async = {
|
||||||
|
Alias = GY_BPS_V_MEAS
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_BPS_V_MEAS = {
|
||||||
|
DataSource = AnalogEpicsOutput
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS_Async = {
|
||||||
|
Alias = GY_BPS_I_MEAS
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_BPS_I_MEAS = {
|
||||||
|
DataSource = AnalogEpicsOutput
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS_Async = {
|
||||||
|
Alias = GY_MHV_V_MEAS
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_MHV_V_MEAS = {
|
||||||
|
DataSource = AnalogEpicsOutput
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS_Async = {
|
||||||
|
Alias = GY_MHV_I_MEAS
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_MHV_I_MEAS = {
|
||||||
|
DataSource = AnalogEpicsOutput
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS_Async = {
|
||||||
|
Alias = GY_ARC1_V_MEAS
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_ARC1_V_MEAS = {
|
||||||
|
DataSource = AnalogEpicsOutput
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS_Async = {
|
||||||
|
Alias = GY_ARC2_V_MEAS
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_ARC2_V_MEAS = {
|
||||||
|
DataSource = AnalogEpicsOutput
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS_Async = {
|
||||||
|
Alias = GY_ARC3_V_MEAS
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_ARC3_V_MEAS = {
|
||||||
|
DataSource = AnalogEpicsOutput
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS_Async = {
|
||||||
|
Alias = GY_RF_V_MEAS
|
||||||
|
DataSource = Th4Bridge
|
||||||
|
}
|
||||||
|
GY_RF_V_MEAS = {
|
||||||
|
DataSource = AnalogEpicsOutput
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,763 @@
|
|||||||
|
#package jada_gyro.RTApp
|
||||||
|
|
||||||
|
|
||||||
|
+Data = {
|
||||||
|
+DDB5 = {
|
||||||
|
Class = GAMDataSource
|
||||||
|
AllowNoProducers = 1
|
||||||
|
Signals = {
|
||||||
|
DiTime = {
|
||||||
|
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 = {
|
||||||
|
Class = "DAN::DANSource"
|
||||||
|
NumberOfBuffers = 100
|
||||||
|
CPUMask = @cpus_dio
|
||||||
|
StackSize = 10000000
|
||||||
|
DanBufferMultiplier = 200 //10s at 20Hz
|
||||||
|
StoreOnTrigger = 0
|
||||||
|
ICProgName = @app_name
|
||||||
|
NumberOfPreTriggers = 0
|
||||||
|
NumberOfPostTriggers = 0
|
||||||
|
Signals = {
|
||||||
|
DI_Time = {
|
||||||
|
Type = uint32
|
||||||
|
TimeSignal = 1
|
||||||
|
AbsoluteTime = 0
|
||||||
|
}
|
||||||
|
PXI6528_Status = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint32
|
||||||
|
NodeName = @rfid .. ":PXI6528_Status"
|
||||||
|
}
|
||||||
|
GYA_APS_READY = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":GYA_APS_READY"
|
||||||
|
}
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":GYA_APS_FLT"
|
||||||
|
}
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":GYA_BPS_READY"
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":GYA_BPS_FLT"
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":MHVPS_OV"
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":MHVPS_OC"
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":MHVPS_FLT"
|
||||||
|
}
|
||||||
|
MHVPS_READY = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":MHVPS_READY"
|
||||||
|
}
|
||||||
|
ECPC_MOD = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":ECPC_MOD"
|
||||||
|
}
|
||||||
|
FAST_TRIP = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":FAST_TRIP"
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":CRIO_RV1"
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":CRIO_RV2"
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":CRIO_RV3"
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":PLC_ITL"
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":PLC_STANDBY"
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":PLC_READY"
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":PLC_ON"
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":PLC_PERMIT"
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":PLC_OP_SELECTED"
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":PLC_CC_OP_SELECTED"
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":PLC_SYNCMODE"
|
||||||
|
}
|
||||||
|
TRIGGER = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":TRIGGER"
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":BEAM_ON_STAT"
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":HVARMED"
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint8
|
||||||
|
NodeName = @rfid .. ":HVINJECTION"
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
NodeName = @rfid .. ":RFON"
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
NodeName = @rfid .. ":BEAM_ON_TIME"
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
RFON_TIME = {
|
||||||
|
SamplingFrequency = @fast_clock
|
||||||
|
NumberOfElements = @dan_ratio
|
||||||
|
Type = uint32
|
||||||
|
NodeName = @rfid .. ":RFON_TIME"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+Functions = {
|
||||||
|
+WaitForDioSignals = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
DiTime = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
Frequency = 1
|
||||||
|
}
|
||||||
|
PXI6528_Status = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
GYA_APS_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
MHVPS_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
ECPC_MOD = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
FAST_TRIP = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
TRIGGER = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
Samples = @dan_ratio
|
||||||
|
}
|
||||||
|
RFON_TIME = {
|
||||||
|
DataSource = SynchThread
|
||||||
|
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 = {
|
||||||
|
DI_Time = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
PXI6528_Status = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
GYA_APS_READY = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
GYA_APS_FLT = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
GYA_BPS_READY = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
GYA_BPS_FLT = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
MHVPS_OV = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
MHVPS_OC = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
MHVPS_FLT = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
MHVPS_READY = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
ECPC_MOD = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
FAST_TRIP = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
CRIO_RV1 = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
CRIO_RV2 = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
CRIO_RV3 = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
PLC_ITL = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
PLC_READY = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
PLC_ON = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
PLC_PERMIT = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
PLC_OP_SELECTED = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
PLC_CC_OP_SELECTED = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
PLC_SYNCMODE = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
TRIGGER = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
BEAM_ON_STAT = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
HVARMED = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
HVINJECTION = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
RFON = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
BEAM_ON_TIME = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
RFON_TIME = {
|
||||||
|
DataSource = DANDIODataSource
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
#package jada_gyro.RTApp
|
||||||
|
|
||||||
|
|
||||||
|
+Functions = {
|
||||||
|
//# GAM for trianguler waveform generation.
|
||||||
|
+CCPSWaveformGAM = {
|
||||||
|
Class = JATriangleWaveGAM
|
||||||
|
InputSignals = {
|
||||||
|
Frequency = {
|
||||||
|
Alias = CCPS_OUTPUT_FREQ
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
Amplitude = {
|
||||||
|
Alias = CCPS_OUTPUT_AMP
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
Offset = {
|
||||||
|
Alias = CCPS_OUTPUT_OFFS
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
}
|
||||||
|
PLCSTANDBY = {
|
||||||
|
Alias = PLC_STANDBY
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
CCPS_REF = {
|
||||||
|
DataSource = DDB6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+Data = {
|
||||||
|
+DDB6 = {
|
||||||
|
AllowNoProducers = 1
|
||||||
|
Signals = {
|
||||||
|
CCPS_REF = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
#package jada_gyro.RTApp
|
||||||
|
|
||||||
|
|
||||||
|
+Functions = {
|
||||||
|
|
||||||
|
//# Flat FHPS Setpoint.
|
||||||
|
+FHPSSetpointGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
FHPS_AUTO_TAGV = {
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
FHPS_TAGV = {
|
||||||
|
DataSource = DDB6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//# Filament heating rampup reference generator
|
||||||
|
+FHPSRampupGAM = {
|
||||||
|
Class = JARampupGAM
|
||||||
|
InputSignals = {
|
||||||
|
Targetv = {
|
||||||
|
Alias = FHPS_TAGV
|
||||||
|
DataSource = DDB6
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
Alias = FHPS_AUTO_TIME
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
Start = {
|
||||||
|
Alias = FHPS_AUTO_START
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
PLC_STANDBY = {
|
||||||
|
Alias = PLC_STANDBY
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
MANUAL_AUTO = {
|
||||||
|
Alias = FHPS_MANM
|
||||||
|
DataSource = EPICSCAInput
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
FHPS_PrePro = {
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
FHPS_REF = {
|
||||||
|
DataSource = DDB6 // probably to be direct analog output
|
||||||
|
}
|
||||||
|
FHPS_AUTO_STAT = {
|
||||||
|
DataSource = DDB6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+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 = {
|
||||||
|
+DDB6 = {
|
||||||
|
Signals = {
|
||||||
|
FHPS_REF = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
FHPS_SCALED = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
FHPS_TAGV = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
FHPS_AUTO_STAT = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
#package jada_gyro.RTApp
|
||||||
|
|
||||||
|
|
||||||
|
+Data = {
|
||||||
|
+WGAsyncBridge = {
|
||||||
|
Class = RealTimeThreadAsyncBridge
|
||||||
|
NumberOfBuffers = 20
|
||||||
|
Signals = {
|
||||||
|
CCPS_REF = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
FHPS_REF = {
|
||||||
|
Type = float32
|
||||||
|
}
|
||||||
|
FHPS_AUTO_STAT = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
FHPS_RU = {
|
||||||
|
Type = uint8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+NI6259_AO = {
|
||||||
|
Class = NI6259DAC
|
||||||
|
DeviceName = "/dev/pxi6259" // Mandatory
|
||||||
|
BoardId = 1 // Mandatory
|
||||||
|
SamplingFrequency = @wg_clock
|
||||||
|
Signals = {
|
||||||
|
CCPS_REF = {
|
||||||
|
Type = float32 // Mandatory. Only type that is supported.
|
||||||
|
ChannelId = 0 // Mandatory. The channel number.
|
||||||
|
OutputPolarity = "Bipolar" // Optional. Possible values: Bipolar, Unipolar. Default value Unipolar.
|
||||||
|
}
|
||||||
|
FHPS_REF = {
|
||||||
|
Type = float32
|
||||||
|
ChannelId = 1
|
||||||
|
OutputPolarity = "Bipolar"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Functions = {
|
||||||
|
+WGProducerGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
CCPS_REF = {
|
||||||
|
DataSource = DDB6
|
||||||
|
}
|
||||||
|
CCPS_REF_OUT = {
|
||||||
|
Alias = CCPS_REF
|
||||||
|
DataSource = DDB6
|
||||||
|
}
|
||||||
|
FHPS_SCALED = {
|
||||||
|
DataSource = DDB6
|
||||||
|
}
|
||||||
|
FHPS_REF_OUT = {
|
||||||
|
Alias = FHPS_REF
|
||||||
|
DataSource = DDB6
|
||||||
|
}
|
||||||
|
FHPS_AUTO_STAT = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
CCPS_REF = {
|
||||||
|
DataSource = WGAsyncBridge
|
||||||
|
}
|
||||||
|
CCPS_REF_OUT = {
|
||||||
|
Alias = CCPS_REF
|
||||||
|
DataSource = NI6259_AO
|
||||||
|
}
|
||||||
|
FHPS_REF = {
|
||||||
|
DataSource = WGAsyncBridge
|
||||||
|
}
|
||||||
|
FHPS_REF_OUT = {
|
||||||
|
Alias = FHPS_REF
|
||||||
|
DataSource = NI6259_AO
|
||||||
|
Trigger = 1
|
||||||
|
}
|
||||||
|
FHPS_AUTO_STAT = {
|
||||||
|
DataSource = WGAsyncBridge
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,168 @@
|
|||||||
|
#package jada_gyro.RTApp
|
||||||
|
|
||||||
|
+Data = {
|
||||||
|
//# Timer used for publsihing SDN data
|
||||||
|
+TimerSDN = {
|
||||||
|
Class = LinuxTimer
|
||||||
|
SleepNature = "Busy"
|
||||||
|
SleepPercentage = 40
|
||||||
|
ExecutionMode = "RealTimeThread"
|
||||||
|
Signals = {
|
||||||
|
Counter = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# Fast Timer for thread 3 (RTStateMachineGAM execution cycle.)
|
||||||
|
+FastTimer = {
|
||||||
|
Class = LinuxTimer
|
||||||
|
SleepNature = "Busy"
|
||||||
|
SleepPercentage = 40
|
||||||
|
ExecutionMode = "RealTimeThread"
|
||||||
|
Signals = {
|
||||||
|
Counter = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
AbsoluteTime = {
|
||||||
|
Type = uint64
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# Fast Timer for thread 3 (RTStateMachineGAM execution cycle.)
|
||||||
|
+WGTimer = {
|
||||||
|
Class = LinuxTimer
|
||||||
|
SleepNature = "Busy"
|
||||||
|
SleepPercentage = 40
|
||||||
|
ExecutionMode = "RealTimeThread"
|
||||||
|
Signals = {
|
||||||
|
Counter = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Add signals to existing ddb
|
||||||
|
+DDB2 = {
|
||||||
|
Signals = {
|
||||||
|
Time = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
Counter = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+DDB3 = {
|
||||||
|
Signals = {
|
||||||
|
Counter = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
AbsoluteTime = {
|
||||||
|
Type = uint64
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+DDB6 = {
|
||||||
|
Signals = {
|
||||||
|
Time = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
Counter = {
|
||||||
|
Type = uint32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+Functions = {
|
||||||
|
//# Timer for SDN thread.
|
||||||
|
+TimeSDNGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
Time = {
|
||||||
|
DataSource = TimerSDN
|
||||||
|
}
|
||||||
|
Counter = {
|
||||||
|
DataSource = TimerSDN
|
||||||
|
Frequency = @slow_clock
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
Time = {
|
||||||
|
DataSource = DDB2
|
||||||
|
}
|
||||||
|
Counter = {
|
||||||
|
DataSource = DDB2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//# GAM for realtime statemachine
|
||||||
|
+FastTimerGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
Counter = {
|
||||||
|
DataSource = FastTimer
|
||||||
|
Frequency = @fast_clock
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
DataSource = FastTimer
|
||||||
|
}
|
||||||
|
AbsoluteTime = {
|
||||||
|
DataSource = FastTimer
|
||||||
|
}
|
||||||
|
PCF_FAULT = {
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
PXI_FAULT = {
|
||||||
|
DataSource = Th1Bridge
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
Counter = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
Time = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
AbsoluteTime = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PCF_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
PXI_FLT = {
|
||||||
|
DataSource = DDB3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+WGTimerGAM = {
|
||||||
|
Class = IOGAM
|
||||||
|
InputSignals = {
|
||||||
|
Time = {
|
||||||
|
DataSource = WGTimer
|
||||||
|
}
|
||||||
|
Counter = {
|
||||||
|
DataSource = WGTimer
|
||||||
|
Frequency = @wg_clock
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OutputSignals = {
|
||||||
|
Time = {
|
||||||
|
DataSource = DDB6
|
||||||
|
}
|
||||||
|
Counter = {
|
||||||
|
DataSource = DDB6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
#package jada_gyro
|
||||||
|
|
||||||
|
|
||||||
|
//# Gyrotron ID
|
||||||
|
#var rfid: string = "EC-GN-P01"
|
||||||
|
//# Fast Clock
|
||||||
|
#var fast_clock: uint32 = 20000 // Hz
|
||||||
|
//# Slow Clock
|
||||||
|
#var slow_clock: uint32 = 1000 // Hz
|
||||||
|
//# WF Generation Clock
|
||||||
|
#var wg_clock: uint32 = 1000 // Hz
|
||||||
|
//# ADC Clock
|
||||||
|
#var sampling_freq: uint32 = 10000 // Hz
|
||||||
|
//# App name
|
||||||
|
#var app_name: string = "JADA_RF01App"
|
||||||
|
|
||||||
|
//# Ratio between fast and slow
|
||||||
|
#let fast_slow_ratio: uint32 = (@fast_clock / @slow_clock)
|
||||||
|
|
||||||
|
#var dan_ratio: uint32 = 1000
|
||||||
|
|
||||||
|
// Constants for state values
|
||||||
|
#let state_error: uint32 = 1
|
||||||
|
#let state_disabled: uint32 = 2
|
||||||
|
#let state_standby: uint32 = 3
|
||||||
|
#let state_ready: uint32 = 4
|
||||||
|
#let state_permit: uint32 = 5
|
||||||
|
#let state_hvon: uint32 = 6
|
||||||
|
#let state_hvon_prep: uint32 = 7
|
||||||
|
#let state_hvon_sdn: uint32 = 8
|
||||||
|
#let state_hvon_sdn_prep: uint32 = 9
|
||||||
|
#let state_none: uint32 = 0
|
||||||
|
|
||||||
|
//# decimation index for sync gam
|
||||||
|
#let dec_index: int = (@fast_slow_ratio - 1)
|
||||||
|
|
||||||
|
// CPUS pinning
|
||||||
|
#var cpus_epics: uint = 0x8
|
||||||
|
#var cpus_sdn: uint = 0x10
|
||||||
|
#var cpus_rt: uint = 0x20
|
||||||
|
#var cpus_adc: uint = 0x40
|
||||||
|
#var cpus_dio: uint = 0x80
|
||||||
|
#var cpus_dan: uint = 0x100
|
||||||
|
#var cpus_wg: uint = 0x200
|
||||||
|
#var cpus_fdan: uint = 0x400
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
-100,0,0,0,0,0,0
|
|
||||||
-90,1,1,1,1,1,1
|
|
||||||
-80,2,2,2,2,2,2
|
|
||||||
-70,3,3,3,3,3,3
|
|
||||||
-60,4,4,4,4,4,4
|
|
||||||
-50,5,5,5,5,5,5
|
|
||||||
-40,6,6,6,6,6,6
|
|
||||||
-30,7,7,7,7,7,7
|
|
||||||
-20,8,8,8,8,8,8
|
|
||||||
-10,9,9,9,9,9,9
|
|
||||||
0,10,10,10,10,10,10
|
|
||||||
10,9,9,9,9,9,9
|
|
||||||
20,8,8,8,8,8,8
|
|
||||||
30,7,7,7,7,7,7
|
|
||||||
40,6,6,6,6,6,6
|
|
||||||
50,5,5,5,5,5,5
|
|
||||||
60,4,4,4,4,4,4
|
|
||||||
70,3,3,3,3,3,3
|
|
||||||
80,2,2,2,2,2,2
|
|
||||||
90,1,1,1,1,1,1
|
|
||||||
100,0,0,0,0,0,0
|
|
||||||
110,1,1,1,1,1,1
|
|
||||||
120,2,2,2,2,2,2
|
|
||||||
130,3,3,3,3,3,3
|
|
||||||
140,4,4,4,4,4,4
|
|
||||||
150,5,5,5,5,5,5
|
|
||||||
160,6,6,6,6,6,6
|
|
||||||
170,7,7,7,7,7,7
|
|
||||||
180,8,8,8,8,8,8
|
|
||||||
190,9,9,9,9,9,9
|
|
||||||
200,10,10,10,10,10,10
|
|
||||||
210,9,9,9,9,9,9
|
|
||||||
220,8,8,8,8,8,8
|
|
||||||
230,7,7,7,7,7,7
|
|
||||||
240,6,6,6,6,6,6
|
|
||||||
250,5,5,5,5,5,5
|
|
||||||
260,4,4,4,4,4,4
|
|
||||||
270,3,3,3,3,3,3
|
|
||||||
280,2,2,2,2,2,2
|
|
||||||
290,1,1,1,1,1,1
|
|
||||||
300,0,0,0,0,0,0
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user