mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
opal: remove outdated example
This commit is contained in:
parent
0b12340dfc
commit
130b8cf21d
111 changed files with 0 additions and 42263 deletions
1
clients/opal/villas_udp/.gitignore
vendored
1
clients/opal/villas_udp/.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
*.log
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>villas_udp</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>com.opalrt.rtlab.ui.rtlabnature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -1,2 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
rtprojectfile=villas_udp.llp
|
|
@ -1,3 +0,0 @@
|
|||
OPAL-1.0 Object
|
||||
ListMap<String,Link<DriverDefinition>> {
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
[
|
||||
{"version":2},
|
||||
{
|
||||
"Opal::Simulation::SerializeableAliasList":
|
||||
{
|
||||
"copyOnWrite":0,
|
||||
"locked":0,
|
||||
"name":"D804207F-3D61-429A-9CBD-659A211EF103",
|
||||
"versioned":0,
|
||||
"aliasSets":
|
||||
[
|
||||
],
|
||||
"history":"",
|
||||
"parent":"/"
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,13 +0,0 @@
|
|||
OPAL-1.0 Object
|
||||
Opal::Simulation::Configuration {
|
||||
projectID=7B042784-8CF2-444A-92E3-8457E429E28A
|
||||
copyOnWrite=0
|
||||
locked=0
|
||||
name=7B042784-8CF2-444A-92E3-8457E429E28A-default
|
||||
versioned=0
|
||||
connectionSets {
|
||||
}
|
||||
syncExchangerRegistry=7B042784-8CF2-444A-92E3-8457E429E28A-default/SyncExchangerRegistry
|
||||
history=
|
||||
parent=/
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
*.o
|
||||
*.d
|
||||
AsyncIP
|
||||
Opcommon/
|
||||
report/
|
||||
*_sm_model/
|
||||
*_ss_model/
|
||||
*_sc_console.mdl
|
|
@ -1,79 +0,0 @@
|
|||
# Makefile.
|
||||
#
|
||||
# @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
# @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
# @license GNU General Public License (version 3)
|
||||
#
|
||||
# VILLASnode
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
###################################################################################
|
||||
|
||||
TARGET = AsyncIP
|
||||
|
||||
VPATH = src
|
||||
|
||||
RTLAB_INTEL_COMPILER ?= 1
|
||||
|
||||
# Compiler selection
|
||||
ifeq ($(RTLAB_INTEL_COMPILER),1)
|
||||
CC = opicc
|
||||
LD = opicpc
|
||||
else
|
||||
CC = gcc
|
||||
LD = g++
|
||||
|
||||
INTEL_LIBS = -limf -lirc
|
||||
INTEL_OBJS = compat.o
|
||||
endif
|
||||
|
||||
# Support for debugging symbols
|
||||
ifeq ($(DEBUG),1)
|
||||
CC_DEBUG_OPTS = -g -D_DEBUG
|
||||
LD_DEBUG_OPTS = -g
|
||||
else
|
||||
CC_DEBUG_OPTS = -O
|
||||
LD_DEBUG_OPTS =
|
||||
endif
|
||||
|
||||
TARGET_LIB = -lpthread -lm -ldl -lutil -lrt $(INTEL_LIBS)
|
||||
|
||||
INCLUDES = -I. $(OPAL_INCPATH) -Iinclude
|
||||
LIBPATH = -L. $(OPAL_LIBPATH)
|
||||
CC_OPTS = -m32 -std=c99 -D_GNU_SOURCE -MMD
|
||||
LD_OPTS = -m32
|
||||
OBJS = main.o msg.o utils.o socket.o $(INTEL_OBJS)
|
||||
|
||||
ifneq ($(PROTOCOL),)
|
||||
CC_OPTS += -DPROTOCOL=$(PROTOCOL)
|
||||
endif
|
||||
|
||||
ADDLIB = -lOpalCore -lOpalUtils
|
||||
LIBS = -lOpalAsyncApiCore $(ADDLIB) $(TARGET_LIB) $(OPAL_LIBS)
|
||||
|
||||
CFLAGS = -c $(CC_OPTS) $(CC_DEBUG_OPTS) $(INCLUDES)
|
||||
LDFLAGS = $(LD_OPTS) $(LD_DEBUG_OPTS) $(LIBPATH)
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
install: $(TARGET)
|
||||
install -m 0755 -D -t $(DESTDIR)$(PREFIX)/bin $(TARGET)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS) $(OBJS:%.o=%.d) $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS)
|
||||
$(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
|
||||
|
||||
-include $(wildcard *.d)
|
|
@ -1,41 +0,0 @@
|
|||
/** Compile-time configuration.
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#ifndef _CONFIG_H_
|
||||
#define _CONFIG_H_
|
||||
|
||||
#define PROGNAME "VILLASnode-OPAL-UDP"
|
||||
#define VERSION "0.6"
|
||||
|
||||
#define MAX_VALUES 64
|
||||
|
||||
/* List of protocols */
|
||||
#define VILLAS 1
|
||||
#define GTNET_SKT 2
|
||||
|
||||
/* Default protocol */
|
||||
#ifndef PROTOCOL
|
||||
#define PROTOCOL VILLAS
|
||||
#endif
|
||||
|
||||
#endif /* _CONFIG_H_ */
|
|
@ -1,51 +0,0 @@
|
|||
/** Message related functions
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* Forward declarations. */
|
||||
struct msg;
|
||||
|
||||
/** Swaps the byte-order of the message.
|
||||
*
|
||||
* Message are always transmitted in network (big endian) byte order.
|
||||
*
|
||||
* @param m A pointer to the message
|
||||
*/
|
||||
void msg_hdr_ntoh(struct msg *m);
|
||||
|
||||
void msg_hdr_hton(struct msg *m);
|
||||
|
||||
void msg_ntoh(struct msg *m);
|
||||
|
||||
void msg_hton(struct msg *m);
|
||||
|
||||
/** Check the consistency of a message.
|
||||
*
|
||||
* The functions checks the header fields of a message.
|
||||
*
|
||||
* @param m A pointer to the message
|
||||
* @retval 0 The message header is valid.
|
||||
* @retval <0 The message header is invalid.
|
||||
*/
|
||||
int msg_verify(struct msg *m);
|
|
@ -1,92 +0,0 @@
|
|||
/** Message format
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/** The current version number for the message format */
|
||||
#define MSG_VERSION 2
|
||||
|
||||
/** @todo Implement more message types */
|
||||
#define MSG_TYPE_DATA 0 /**< Message contains float values */
|
||||
#define MSG_TYPE_START 1 /**< Message marks the beginning of a new simulation case */
|
||||
#define MSG_TYPE_STOP 2 /**< Message marks the end of a simulation case */
|
||||
|
||||
/** The total size in bytes of a message */
|
||||
#define MSG_LEN(values) (sizeof(struct msg) + MSG_DATA_LEN(values))
|
||||
|
||||
/** The length of \p values values in bytes. */
|
||||
#define MSG_DATA_LEN(values) (sizeof(float) * (values))
|
||||
|
||||
/** The offset to the first data value in a message. */
|
||||
#define MSG_DATA_OFFSET(msg) ((char *) (msg) + offsetof(struct msg, data))
|
||||
|
||||
/** Initialize a message with default values */
|
||||
#define MSG_INIT(len, seq) (struct msg) {\
|
||||
.version = MSG_VERSION, \
|
||||
.type = MSG_TYPE_DATA, \
|
||||
.length = len, \
|
||||
.sequence = seq \
|
||||
}
|
||||
|
||||
/** The timestamp of a message in struct timespec format */
|
||||
#define MSG_TS(msg) (struct timespec) { \
|
||||
.tv_sec = (msg)->ts.sec, \
|
||||
.tv_nsec = (msg)->ts.nsec \
|
||||
}
|
||||
|
||||
/** This message format is used by all clients
|
||||
*
|
||||
* @diafile msg_format.dia
|
||||
**/
|
||||
struct msg
|
||||
{
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
unsigned version: 4; /**< Specifies the format of the remaining message (see MGS_VERSION) */
|
||||
unsigned type : 2; /**< Data or control message (see MSG_TYPE_*) */
|
||||
unsigned rsvd1 : 2; /**< Reserved bits */
|
||||
#elif BYTE_ORDER == LITTLE_ENDIAN
|
||||
unsigned rsvd1 : 2; /**< Reserved bits */
|
||||
unsigned type : 2; /**< Data or control message (see MSG_TYPE_*) */
|
||||
unsigned version: 4; /**< Specifies the format of the remaining message (see MGS_VERSION) */
|
||||
#else
|
||||
#error Invalid byte-order
|
||||
#endif
|
||||
|
||||
uint8_t rsvd2; /**< Reserved bits */
|
||||
uint16_t length; /**< The number of values in msg::data[]. */
|
||||
uint32_t sequence; /**< The sequence number is incremented by one for consecutive messages. */
|
||||
|
||||
/** A timestamp per message. */
|
||||
struct {
|
||||
uint32_t sec; /**< Seconds since 1970-01-01 00:00:00 */
|
||||
uint32_t nsec; /**< Nanoseconds of the current second. */
|
||||
} ts;
|
||||
|
||||
/** The message payload. */
|
||||
union {
|
||||
float f; /**< Floating point values. */
|
||||
uint32_t i; /**< Integer values. */
|
||||
} data[];
|
||||
} __attribute__((packed));
|
|
@ -1,49 +0,0 @@
|
|||
/** Helper functions for sockets.
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#ifndef _SOCKET_H_
|
||||
#define _SOCKET_H_
|
||||
|
||||
#include <netinet/in.h>
|
||||
|
||||
#define RT
|
||||
#include "OpalGenAsyncParamCtrl.h"
|
||||
|
||||
#define UDP_PROTOCOL 1
|
||||
#define TCP_PROTOCOL 2
|
||||
|
||||
struct socket {
|
||||
struct sockaddr_in send_ad; /* Send address */
|
||||
struct sockaddr_in recv_ad; /* Receive address */
|
||||
int sd; /* socket descriptor */
|
||||
};
|
||||
|
||||
int socket_init(struct socket *s, Opal_GenAsyncParam_Ctrl IconCtrlStruct);
|
||||
|
||||
int socket_send(struct socket *s, char *data, int len);
|
||||
|
||||
int socket_recv(struct socket *s, char *data, int len, double timeout);
|
||||
|
||||
int socket_close(struct socket *s, Opal_GenAsyncParam_Ctrl IconCtrlStruct);
|
||||
|
||||
#endif /* _SOCKET_H_ */
|
|
@ -1,31 +0,0 @@
|
|||
/** Configure scheduler.
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @author Mathieu Dubé-Dallaire
|
||||
* @copyright 2003, OPAL-RT Technologies inc
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#ifndef _UTILS_H_
|
||||
#define _UTILS_H_
|
||||
|
||||
int AssignProcToCpu0(void);
|
||||
|
||||
#endif /* _UTILS_H_ */
|
|
@ -1,118 +0,0 @@
|
|||
[EnvVars]
|
||||
ABORT_COMPILE_WHEN_NO_BITSTREAM=0
|
||||
ACTION_AFTER_N_OVERRUNS=10
|
||||
ACTION_ON_OVERRUNS=0
|
||||
AcquisitionMemory=0,2500,24,100
|
||||
ActiveGroups=7/0/24/25/26/27/28/29/
|
||||
CACHEABLE_DMA_MEMORY_ACCESS=ON
|
||||
COMM_RT=UDP/IP
|
||||
ClockPeriodMode=Free-Clock
|
||||
ClockPeriodTime=10
|
||||
DEBUG=0
|
||||
DETECT_OVERRUNS=ON
|
||||
ENABLE_WATCHDOG=ON
|
||||
EXT_CC_OPTS=
|
||||
EXT_LD_OPTS=
|
||||
EXT_LIB=
|
||||
EXT_LIBPATH=
|
||||
MODEL_PAUSE_TIME=0.000000
|
||||
MODEL_STOP_TIME=0.000000
|
||||
MONITORING=ON
|
||||
MONITORING_BLOCK=OFF
|
||||
MONITORING_DISPLAY=ALL
|
||||
MSG_PRECISION_FACTOR=0
|
||||
MaxDynamicSignals=2/0/100/24/100/
|
||||
NB_STEP_WITHOUT_OVERRUNS=10
|
||||
OPAL_DEBUG=OFF
|
||||
OP_MATLABR2014B=1
|
||||
OS_COMPILE_RELEASE=2.6.29.6-opalrt-5
|
||||
PRINT_LOG_LEVEL=DEBUG_RUN
|
||||
RESET_IO_MISSING=ON
|
||||
SYSNAME=linux
|
||||
USER_INCS=
|
||||
USER_SRCS=
|
||||
WATCHDOG_TIMEOUT=5000
|
||||
[EnvVars_REDHAWK_DYN_1]
|
||||
INTERNAL_IGN_SOURCE_FILE=sfun_gen_async_ctrl.c sfun_recv_async.c sfun_send_async.c
|
||||
INTERNAL_LIBRARY2=-lOpalAsyncApiR2014b
|
||||
INTERNAL_LIBRARY3=-lOpalAsyncApiCore
|
||||
[ExtraGetFilesComp_1_RT_LAB]
|
||||
AsyncIP=Binary|Async_Proc
|
||||
[ExtraPutFilesComp]
|
||||
Makefile.mk=Ascii
|
||||
include\config.h=Ascii
|
||||
include\msg.h=Ascii
|
||||
include\msg_format.h=Ascii
|
||||
include\socket.h=Ascii
|
||||
include\utils.h=Ascii
|
||||
src\compat.c=Ascii
|
||||
src\main.c=Ascii
|
||||
src\msg.c=Ascii
|
||||
src\socket.c=Ascii
|
||||
src\utils.c=Ascii
|
||||
[ExtraPutFilesComp_1_RT_LAB]
|
||||
C:\OPAL-RT\RT-LAB\v11.0.8.13\common\lib\redhawk\libOpalAsyncApiCore.a=Binary|Other
|
||||
[ExtraPutFilesLoad_1_RT_LAB]
|
||||
.\send_receive_sm_model\OpREDHAWKtarget\AsyncIP=Binary|Async_Proc
|
||||
[General]
|
||||
ATT_CHECKSUM1=2360032266
|
||||
ATT_CHECKSUM2=1041833943
|
||||
ATT_CHECKSUM3=842695092
|
||||
ATT_CHECKSUM4=2435976698
|
||||
ATT_CREATED_BY=jwu
|
||||
ATT_CREATED_ON=Thu Apr 15 08:21:54 1999
|
||||
ATT_ENABLE_PTA=OFF
|
||||
ATT_HANDLE_CONSOLE=ON
|
||||
ATT_LAST_SAVED_BY=svo
|
||||
ATT_LAST_SAVED_ON=Tue Jun 27 10:20:09 2017
|
||||
ATT_REFERENCE_MDL_PATHS=
|
||||
ATT_REVISION=1.453
|
||||
AutoRetrieveFiles=ON
|
||||
AutoRetrieveRtlab=ON
|
||||
CompilerVersion=AUTOMATIC
|
||||
DESCRIPTION=
|
||||
DinamoFlag=OFF
|
||||
FILENAME=C:\Users\svo\workspace\villas\node\clients\opal\villas_udp\models\send_receive\send_receive.mdl
|
||||
FORCE_RECOMPILE=0
|
||||
IMPORTED_GLOBAL_VARIABLES=1
|
||||
LastCompileRtlabVersion=v11.0.8.13
|
||||
LastMatlabUsed=27
|
||||
LastMatlabUsedName=v8.4
|
||||
MATLAB_USED_IN_MODEL=21
|
||||
Name=send_receive
|
||||
PETALINUX_LAST_COMPILE_VERSION=
|
||||
PRINT_CYCLE=OFF
|
||||
PostBuildCmd=
|
||||
PreBuildCmd=
|
||||
QNX_LAST_COMPILE_VERSION=
|
||||
RH64_LAST_COMPILE_VERSION=
|
||||
RH_LAST_COMPILE_VERSION=2.6.29.6-opalrt-5
|
||||
ReportFileId=
|
||||
RetrieveBuildTree=ON
|
||||
RetrieveRootDir=
|
||||
SimulationMode=2
|
||||
TLC=Automatic
|
||||
TMF=Automatic
|
||||
TRANSFERFILE_AT_LOAD=ON
|
||||
TargetCompileCmd=/usr/bin/make -f /usr/opalrt/common/bin/opalmodelmk
|
||||
TargetPlatform=REDHAWK
|
||||
TimeFactor=1.000000000000000
|
||||
TimeStep=0.000050000000000
|
||||
sc_consoleTimeStep=-1.000000000000000
|
||||
sm_modelTimeStep=0.000049999998737
|
||||
sm_send_receiveTimeStep=0.000049999998737
|
||||
[General_1]
|
||||
TargetPreCompileCmd=make -f /usr/opalrt/common/bin/opalmodelmk
|
||||
[NodeMapping]
|
||||
sm_model=ACS_OPAL_RT
|
||||
sm_model_CORE_ASSIGNATION=1
|
||||
sm_model_CPU=-1
|
||||
sm_model_DEBUG=OFF
|
||||
sm_model_XHP_ENABLE=FALSE
|
||||
sm_send_receive=ACS_OPAL_RT
|
||||
sm_send_receive_CORE_ASSIGNATION=1
|
||||
sm_send_receive_CPU=-1
|
||||
sm_send_receive_DEBUG=OFF
|
||||
sm_send_receive_XHP_ENABLE=FALSE
|
||||
[UserEnvVars]
|
||||
PROTOCOL=VILLAS
|
File diff suppressed because it is too large
Load diff
|
@ -1,57 +0,0 @@
|
|||
[General]
|
||||
ATT_VERSION=6
|
||||
FileVersion=6
|
||||
numClientsProbe=0
|
||||
[Group_1]
|
||||
condition=0
|
||||
decimationFactor=1
|
||||
duration=0.010000
|
||||
dynSignalsList=0
|
||||
fileLimit=1000000
|
||||
fixSignalsList=13|1|2|3|4|5|6|7|8|9|10|11|12|13
|
||||
level=0.000000
|
||||
maxDynSignals=100
|
||||
newMemSize=2500
|
||||
nodeId=0
|
||||
numValues=200
|
||||
offset=0
|
||||
rearmDelay=0.000000
|
||||
repetitive=1
|
||||
signalName=
|
||||
signalNameId=0
|
||||
trigSigNameId=339755367
|
||||
trigSignalName=
|
||||
trigType=0
|
||||
triggerButton=2
|
||||
triggerEnabled=0
|
||||
triggerState=0
|
||||
valueType=0
|
||||
writeEnabled=0
|
||||
writeFileName=
|
||||
writeFileVarName=
|
||||
[Group_25]
|
||||
condition=0
|
||||
decimationFactor=1
|
||||
duration=0.005000
|
||||
dynSignalsList=0
|
||||
fileLimit=0
|
||||
level=0.000000
|
||||
maxDynSignals=100
|
||||
newMemSize=100
|
||||
nodeId=158494572
|
||||
numValues=100
|
||||
offset=0
|
||||
rearmDelay=0.000000
|
||||
repetitive=1
|
||||
signalName=
|
||||
signalNameId=1818584175
|
||||
trigSigNameId=1866690149
|
||||
trigSignalName=
|
||||
trigType=0
|
||||
triggerButton=2
|
||||
triggerEnabled=0
|
||||
triggerState=0
|
||||
valueType=0
|
||||
writeEnabled=0
|
||||
writeFileName=
|
||||
writeFileVarName=
|
|
@ -1,46 +0,0 @@
|
|||
/** Compatibility code for GCC
|
||||
*
|
||||
* OPAL-RT's libSystem.a links against some Intel
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
size_t __intel_sse2_strlen(const char *s)
|
||||
{
|
||||
return strlen(s);
|
||||
}
|
||||
|
||||
void * _intel_fast_memset(void *b, int c, size_t len)
|
||||
{
|
||||
return memset(b, c, len);
|
||||
}
|
||||
|
||||
void * _intel_fast_memcpy(void *restrict dst, const void *restrict src, size_t n)
|
||||
{
|
||||
return memcpy(dst, src, n);
|
||||
}
|
||||
|
||||
int _intel_fast_memcmp(const void *s1, const void *s2, size_t n)
|
||||
{
|
||||
return memcmp(s1, s2, n);
|
||||
}
|
|
@ -1,352 +0,0 @@
|
|||
/** Main routine of AsyncIP.
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU Lesser General Public License v2.1
|
||||
*
|
||||
* VILLASnode - connecting real-time simulation equipment
|
||||
*
|
||||
* This application is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License.
|
||||
*
|
||||
* This application is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*********************************************************************************/
|
||||
|
||||
/* Standard ANSI C headers needed for this program */
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
#include <pthread.h>
|
||||
|
||||
/* Define RTLAB before including OpalPrint.h for messages to be sent
|
||||
* to the OpalDisplay. Otherwise stdout will be used. */
|
||||
#define RTLAB
|
||||
#include "OpalPrint.h"
|
||||
#include "AsyncApi.h"
|
||||
|
||||
/* This is the message format */
|
||||
#include "config.h"
|
||||
#include "socket.h"
|
||||
#include "utils.h"
|
||||
|
||||
#if PROTOCOL == VILLAS
|
||||
#include "msg.h"
|
||||
#include "msg_format.h"
|
||||
#endif
|
||||
|
||||
/* This is just for initializing the shared memory access to communicate
|
||||
* with the RT-LAB model. It's easier to remember the arguments like this */
|
||||
#define ASYNC_SHMEM_NAME argv[1]
|
||||
#define ASYNC_SHMEM_SIZE atoi(argv[2])
|
||||
#define PRINT_SHMEM_NAME argv[3]
|
||||
|
||||
/* Global Variables */
|
||||
struct socket skt;
|
||||
|
||||
static void * SendToIPPort(void *arg)
|
||||
{
|
||||
unsigned int ModelState, SendID = 1, Sequence = 0;
|
||||
int nbSend = 0, ret, cnt, len;
|
||||
|
||||
/* Data from OPAL-RT model */
|
||||
double mdldata[MAX_VALUES];
|
||||
int mdldata_size;
|
||||
|
||||
#if PROTOCOL == VILLAS
|
||||
char buf[MSG_LEN(MAX_VALUES)];
|
||||
struct msg *msg = (struct msg *) buf;
|
||||
#elif PROTOCOL == GTNET_SKT
|
||||
char buf[MAX_VALUES * sizeof(float)];
|
||||
float *msg = (float *) buf;
|
||||
#endif
|
||||
|
||||
OpalPrint("%s: SendToIPPort thread started\n", PROGNAME);
|
||||
|
||||
OpalGetNbAsyncSendIcon(&nbSend);
|
||||
if (nbSend < 1) {
|
||||
OpalPrint("%s: SendToIPPort: No transimission block for this controller. Stopping thread.\n", PROGNAME);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
do {
|
||||
/* This call unblocks when the 'Data Ready' line of a send icon is asserted. */
|
||||
ret = OpalWaitForAsyncSendRequest(&SendID);
|
||||
if (ret != EOK) {
|
||||
ModelState = OpalGetAsyncModelState();
|
||||
if ((ModelState != STATE_RESET) && (ModelState != STATE_STOP)) {
|
||||
OpalSetAsyncSendIconError(ret, SendID);
|
||||
OpalPrint("%s: OpalWaitForAsyncSendRequest(), errno %d\n", PROGNAME, ret);
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
/* No errors encountered yet */
|
||||
OpalSetAsyncSendIconError(0, SendID);
|
||||
|
||||
/* Get the size of the data being sent by the unblocking SendID */
|
||||
OpalGetAsyncSendIconDataLength(&mdldata_size, SendID);
|
||||
cnt = mdldata_size / sizeof(double);
|
||||
if (cnt > MAX_VALUES) {
|
||||
OpalPrint("%s: Number of signals for SendID=%d exceeds allowed maximum (%d)\n",
|
||||
PROGNAME, SendID, MAX_VALUES);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Read data from the model */
|
||||
OpalGetAsyncSendIconData(mdldata, mdldata_size, SendID);
|
||||
|
||||
#if PROTOCOL == VILLAS
|
||||
/* Get current time */
|
||||
struct timespec now;
|
||||
clock_gettime(CLOCK_REALTIME, &now);
|
||||
|
||||
msg->length = mdldata_size / sizeof(double);
|
||||
msg->sequence = Sequence++;
|
||||
msg->ts.sec = now.tv_sec;
|
||||
msg->ts.nsec = now.tv_nsec;
|
||||
|
||||
for (int i = 0; i < msg->length; i++)
|
||||
msg->data[i].f = (float) mdldata[i];
|
||||
|
||||
msg_hton(msg);
|
||||
|
||||
len = MSG_LEN(msg->length);
|
||||
#elif PROTOCOL == GTNET_SKT
|
||||
uint32_t *imsg = (uint32_t *) msg;
|
||||
for (int i = 0; i < cnt; i++) {
|
||||
msg[i] = (float) mdldata[i];
|
||||
imsg[i] = htonl(imsg[i]);
|
||||
}
|
||||
|
||||
len = mdldata_size / sizeof(double) * sizeof(float);
|
||||
#else
|
||||
#error Unknown protocol
|
||||
#endif
|
||||
|
||||
/* Perform the actual write to the ip port */
|
||||
ret = socket_send(&skt, (char *) msg, len);
|
||||
if (ret < 0)
|
||||
OpalSetAsyncSendIconError(errno, SendID);
|
||||
else
|
||||
OpalSetAsyncSendIconError(0, SendID);
|
||||
|
||||
/* This next call allows the execution of the "asynchronous" process
|
||||
* to actually be synchronous with the model. To achieve this, you
|
||||
* should set the "Sending Mode" in the Async_Send block to
|
||||
* NEED_REPLY_BEFORE_NEXT_SEND or NEED_REPLY_NOW. This will force
|
||||
* the model to wait for this process to call this
|
||||
* OpalAsyncSendRequestDone function before continuing. */
|
||||
OpalAsyncSendRequestDone(SendID);
|
||||
|
||||
/* Before continuing, we make sure that the real-time model
|
||||
* has not been stopped. If it has, we quit. */
|
||||
ModelState = OpalGetAsyncModelState();
|
||||
} while ((ModelState != STATE_RESET) && (ModelState != STATE_STOP));
|
||||
|
||||
OpalPrint("%s: SendToIPPort: Finished\n", PROGNAME);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void * RecvFromIPPort(void *arg)
|
||||
{
|
||||
unsigned int ModelState, RecvID = 1;
|
||||
int nbRecv = 0, ret, cnt;
|
||||
|
||||
/* Data from OPAL-RT model */
|
||||
double mdldata[MAX_VALUES];
|
||||
int mdldata_size;
|
||||
|
||||
#if PROTOCOL == VILLAS
|
||||
char buf[MSG_LEN(MAX_VALUES)];
|
||||
struct msg *msg = (struct msg *) buf;
|
||||
#elif PROTOCOL == GTNET_SKT
|
||||
char buf[MAX_VALUES * sizeof(float)];
|
||||
float *msg = (float *) buf;
|
||||
#else
|
||||
#error Unknown protocol
|
||||
#endif
|
||||
|
||||
OpalPrint("%s: RecvFromIPPort thread started\n", PROGNAME);
|
||||
|
||||
OpalGetNbAsyncRecvIcon(&nbRecv);
|
||||
if (nbRecv < 1) {
|
||||
OpalPrint("%s: RecvFromIPPort: No reception block for this controller. Stopping thread.\n", PROGNAME);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
do {
|
||||
/* Receive message */
|
||||
ret = socket_recv(&skt, (char *) msg, sizeof(buf), 1.0);
|
||||
if (ret < 1) {
|
||||
ModelState = OpalGetAsyncModelState();
|
||||
if ((ModelState != STATE_RESET) && (ModelState != STATE_STOP)) {
|
||||
if (ret == 0) /* timeout, so we continue silently */
|
||||
OpalPrint("%s: Timeout while waiting for data\n", PROGNAME, errno);
|
||||
if (ret == -1) /* a more serious error, so we print it */
|
||||
OpalPrint("%s: Error %d while waiting for data\n", PROGNAME, errno);
|
||||
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* Get the number of signals to send back to the model */
|
||||
OpalGetAsyncRecvIconDataLength(&mdldata_size, RecvID);
|
||||
cnt = mdldata_size / sizeof(double);
|
||||
if (cnt > MAX_VALUES) {
|
||||
OpalPrint("%s: Number of signals for RecvID=%d (%d) exceeds allowed maximum (%d)\n",
|
||||
PROGNAME, RecvID, cnt, MAX_VALUES);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#if PROTOCOL == VILLAS
|
||||
msg_ntoh(msg);
|
||||
|
||||
ret = msg_verify(msg);
|
||||
if (ret) {
|
||||
OpalPrint("%s: Skipping invalid packet\n", PROGNAME);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (cnt > msg->length) {
|
||||
OpalPrint("%s: Number of signals for RecvID=%d (%d) exceeds what was received (%d)\n",
|
||||
PROGNAME, RecvID, cnt, msg->length);
|
||||
}
|
||||
|
||||
for (int i = 0; i < msg->length; i++) {
|
||||
mdldata[i] = (double) msg->data[i].f;
|
||||
printf("Data rcvd from VILLAS %f\n", mdldata[i]);
|
||||
}
|
||||
|
||||
/* Update OPAL model */
|
||||
OpalSetAsyncRecvIconStatus(msg->sequence, RecvID); /* Set the Status to the message ID */
|
||||
#elif PROTOCOL == GTNET_SKT
|
||||
uint32_t *imsg = (uint32_t *) msg;
|
||||
for (int i = 0; i < cnt; i++)
|
||||
imsg[i] = ntohl(imsg[i]);
|
||||
|
||||
printf("Protocol GTNET_SKT\n");
|
||||
for (int i = 0; i < cnt; i++) {
|
||||
mdldata[i] = (double) msg[i];
|
||||
printf("Data rcvd from GTNET_SKT %f\n", mdldata[i]);
|
||||
}
|
||||
#else
|
||||
#error Unknown protocol
|
||||
#endif
|
||||
|
||||
OpalSetAsyncRecvIconError(0, RecvID); /* Set the Error to 0 */
|
||||
|
||||
OpalSetAsyncRecvIconData(mdldata, mdldata_size, RecvID);
|
||||
|
||||
/* Before continuing, we make sure that the real-time model
|
||||
* has not been stopped. If it has, we quit. */
|
||||
ModelState = OpalGetAsyncModelState();
|
||||
} while ((ModelState != STATE_RESET) && (ModelState != STATE_STOP));
|
||||
|
||||
OpalPrint("%s: RecvFromIPPort: Finished\n", PROGNAME);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
/* @todo remove after testing */
|
||||
printf("*****************Starting the Application****************\n");
|
||||
FILE * testfile = fopen ("testfile.txt","w");
|
||||
if (testfile!=NULL)
|
||||
{
|
||||
fputs ("test file to check if main runs", testfile);
|
||||
fclose (testfile);
|
||||
}
|
||||
|
||||
int ret;
|
||||
|
||||
Opal_GenAsyncParam_Ctrl IconCtrlStruct;
|
||||
|
||||
pthread_t tid_send, tid_recv;
|
||||
|
||||
OpalPrint("%s: This is %s client version %s\n", PROGNAME, PROGNAME, VERSION);
|
||||
|
||||
/* Check for the proper arguments to the program */
|
||||
if (argc < 4) {
|
||||
printf("Invalid Arguments: 1-AsyncShmemName 2-AsyncShmemSize 3-PrintShmemName\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/* Enable the OpalPrint function. This prints to the OpalDisplay. */
|
||||
ret = OpalSystemCtrl_Register(PRINT_SHMEM_NAME);
|
||||
if (ret != EOK) {
|
||||
printf("%s: ERROR: OpalPrint() access not available\n", PROGNAME);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Open Share Memory created by the model. */
|
||||
ret = OpalOpenAsyncMem(ASYNC_SHMEM_SIZE, ASYNC_SHMEM_NAME);
|
||||
if (ret != EOK) {
|
||||
OpalPrint("%s: ERROR: Model shared memory not available\n", PROGNAME);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
AssignProcToCpu0();
|
||||
|
||||
/* Get IP Controler Parameters (ie: ip address, port number...) and
|
||||
* initialize the device on the QNX node. */
|
||||
memset(&IconCtrlStruct, 0, sizeof(IconCtrlStruct));
|
||||
|
||||
ret = OpalGetAsyncCtrlParameters(&IconCtrlStruct, sizeof(IconCtrlStruct));
|
||||
if (ret != EOK) {
|
||||
OpalPrint("%s: ERROR: Could not get controller parameters (%d).\n", PROGNAME, ret);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Initialize socket */
|
||||
ret = socket_init(&skt, IconCtrlStruct);
|
||||
if (ret != EOK) {
|
||||
OpalPrint("%s: ERROR: Initialization failed.\n", PROGNAME);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Start send/receive threads */
|
||||
ret = pthread_create(&tid_send, NULL, SendToIPPort, NULL);
|
||||
if (ret == -1)
|
||||
OpalPrint("%s: ERROR: Could not create thread (SendToIPPort), errno %d\n", PROGNAME, errno);
|
||||
|
||||
ret = pthread_create(&tid_recv, NULL, RecvFromIPPort, NULL);
|
||||
if (ret == -1)
|
||||
OpalPrint("%s: ERROR: Could not create thread (RecvFromIPPort), errno %d\n", PROGNAME, errno);
|
||||
|
||||
/* Wait for both threads to finish */
|
||||
ret = pthread_join(tid_send, NULL);
|
||||
if (ret != 0)
|
||||
OpalPrint("%s: ERROR: pthread_join (SendToIPPort), errno %d\n", PROGNAME, ret);
|
||||
|
||||
ret = pthread_join(tid_recv, NULL);
|
||||
if (ret != 0)
|
||||
OpalPrint("%s: ERROR: pthread_join (RecvFromIPPort), errno %d\n", PROGNAME, ret);
|
||||
|
||||
/* Close the ip port and shared memories */
|
||||
socket_close(&skt, IconCtrlStruct);
|
||||
|
||||
OpalCloseAsyncMem (ASYNC_SHMEM_SIZE, ASYNC_SHMEM_NAME);
|
||||
OpalSystemCtrl_UnRegister(PRINT_SHMEM_NAME);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,340 +0,0 @@
|
|||
/** Main routine of AsyncIP.
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
/* Standard ANSI C headers needed for this program */
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
#include <pthread.h>
|
||||
|
||||
/* Define RTLAB before including OpalPrint.h for messages to be sent
|
||||
* to the OpalDisplay. Otherwise stdout will be used. */
|
||||
#define RTLAB
|
||||
#include "OpalPrint.h"
|
||||
#include "AsyncApi.h"
|
||||
|
||||
/* This is the message format */
|
||||
#include "config.h"
|
||||
#include "socket.h"
|
||||
#include "utils.h"
|
||||
|
||||
#if PROTOCOL == VILLAS
|
||||
#include "msg.h"
|
||||
#include "msg_format.h"
|
||||
#endif
|
||||
|
||||
/* This is just for initializing the shared memory access to communicate
|
||||
* with the RT-LAB model. It's easier to remember the arguments like this */
|
||||
#define ASYNC_SHMEM_NAME argv[1]
|
||||
#define ASYNC_SHMEM_SIZE atoi(argv[2])
|
||||
#define PRINT_SHMEM_NAME argv[3]
|
||||
|
||||
/* Global Variables */
|
||||
struct socket skt;
|
||||
|
||||
static void * SendToIPPort(void *arg)
|
||||
{
|
||||
unsigned int ModelState, SendID = 1, Sequence = 0;
|
||||
int nbSend = 0, ret, cnt, len;
|
||||
|
||||
/* Data from OPAL-RT model */
|
||||
double mdldata[MAX_VALUES];
|
||||
int mdldata_size;
|
||||
|
||||
#if PROTOCOL == VILLAS
|
||||
char buf[MSG_LEN(MAX_VALUES)];
|
||||
struct msg *msg = (struct msg *) buf;
|
||||
#elif PROTOCOL == GTNET_SKT
|
||||
char buf[MAX_VALUES * sizeof(float)];
|
||||
float *msg = (float *) buf;
|
||||
#endif
|
||||
|
||||
OpalPrint("%s: SendToIPPort thread started\n", PROGNAME);
|
||||
|
||||
OpalGetNbAsyncSendIcon(&nbSend);
|
||||
if (nbSend < 1) {
|
||||
OpalPrint("%s: SendToIPPort: No transimission block for this controller. Stopping thread.\n", PROGNAME);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
do {
|
||||
/* This call unblocks when the 'Data Ready' line of a send icon is asserted. */
|
||||
ret = OpalWaitForAsyncSendRequest(&SendID);
|
||||
if (ret != EOK) {
|
||||
ModelState = OpalGetAsyncModelState();
|
||||
if ((ModelState != STATE_RESET) && (ModelState != STATE_STOP)) {
|
||||
OpalSetAsyncSendIconError(ret, SendID);
|
||||
OpalPrint("%s: OpalWaitForAsyncSendRequest(), errno %d\n", PROGNAME, ret);
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
/* No errors encountered yet */
|
||||
OpalSetAsyncSendIconError(0, SendID);
|
||||
|
||||
/* Get the size of the data being sent by the unblocking SendID */
|
||||
OpalGetAsyncSendIconDataLength(&mdldata_size, SendID);
|
||||
cnt = mdldata_size / sizeof(double);
|
||||
if (cnt > MAX_VALUES) {
|
||||
OpalPrint("%s: Number of signals for SendID=%d exceeds allowed maximum (%d). Limiting...\n",
|
||||
PROGNAME, SendID, MAX_VALUES);
|
||||
cnt = MAX_VALUES;
|
||||
}
|
||||
|
||||
/* Read data from the model */
|
||||
OpalGetAsyncSendIconData(mdldata, mdldata_size, SendID);
|
||||
|
||||
#if PROTOCOL == VILLAS
|
||||
/* Get current time */
|
||||
struct timespec now;
|
||||
clock_gettime(CLOCK_REALTIME, &now);
|
||||
|
||||
msg->version = MSG_VERSION;
|
||||
msg->type = MSG_TYPE_DATA;
|
||||
msg->rsvd1 = 0;
|
||||
msg->rsvd2 = 0;
|
||||
msg->length = cnt;
|
||||
msg->sequence = Sequence++;
|
||||
msg->ts.sec = now.tv_sec;
|
||||
msg->ts.nsec = now.tv_nsec;
|
||||
|
||||
for (int i = 0; i < msg->length; i++)
|
||||
msg->data[i].f = (float) mdldata[i];
|
||||
|
||||
len = MSG_LEN(msg->length);
|
||||
|
||||
msg_hton(msg);
|
||||
#elif PROTOCOL == GTNET_SKT
|
||||
uint32_t *imsg = (uint32_t *) msg;
|
||||
for (int i = 0; i < cnt; i++) {
|
||||
msg[i] = (float) mdldata[i];
|
||||
imsg[i] = htonl(imsg[i]);
|
||||
}
|
||||
|
||||
len = cnt * sizeof(float);
|
||||
#else
|
||||
#error Unknown protocol
|
||||
#endif
|
||||
|
||||
/* Perform the actual write to the ip port */
|
||||
ret = socket_send(&skt, (char *) msg, len);
|
||||
if (ret < 0)
|
||||
OpalSetAsyncSendIconError(errno, SendID);
|
||||
else
|
||||
OpalSetAsyncSendIconError(0, SendID);
|
||||
|
||||
/* This next call allows the execution of the "asynchronous" process
|
||||
* to actually be synchronous with the model. To achieve this, you
|
||||
* should set the "Sending Mode" in the Async_Send block to
|
||||
* NEED_REPLY_BEFORE_NEXT_SEND or NEED_REPLY_NOW. This will force
|
||||
* the model to wait for this process to call this
|
||||
* OpalAsyncSendRequestDone function before continuing. */
|
||||
OpalAsyncSendRequestDone(SendID);
|
||||
|
||||
/* Before continuing, we make sure that the real-time model
|
||||
* has not been stopped. If it has, we quit. */
|
||||
ModelState = OpalGetAsyncModelState();
|
||||
} while ((ModelState != STATE_RESET) && (ModelState != STATE_STOP));
|
||||
|
||||
OpalPrint("%s: SendToIPPort: Finished\n", PROGNAME);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void * RecvFromIPPort(void *arg)
|
||||
{
|
||||
unsigned int ModelState, RecvID = 1;
|
||||
int nbRecv = 0, ret, cnt;
|
||||
|
||||
/* Data from OPAL-RT model */
|
||||
double mdldata[MAX_VALUES];
|
||||
int mdldata_size;
|
||||
|
||||
#if PROTOCOL == VILLAS
|
||||
char buf[MSG_LEN(MAX_VALUES)];
|
||||
struct msg *msg = (struct msg *) buf;
|
||||
#elif PROTOCOL == GTNET_SKT
|
||||
char buf[MAX_VALUES * sizeof(float)];
|
||||
float *msg = (float *) buf;
|
||||
#else
|
||||
#error Unknown protocol
|
||||
#endif
|
||||
|
||||
OpalPrint("%s: RecvFromIPPort thread started\n", PROGNAME);
|
||||
|
||||
OpalGetNbAsyncRecvIcon(&nbRecv);
|
||||
if (nbRecv < 1) {
|
||||
OpalPrint("%s: RecvFromIPPort: No reception block for this controller. Stopping thread.\n", PROGNAME);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
do {
|
||||
/* Receive message */
|
||||
ret = socket_recv(&skt, (char *) msg, sizeof(buf), 1.0);
|
||||
if (ret < 1) {
|
||||
ModelState = OpalGetAsyncModelState();
|
||||
if ((ModelState != STATE_RESET) && (ModelState != STATE_STOP)) {
|
||||
if (ret == 0) /* timeout, so we continue silently */
|
||||
OpalPrint("%s: Timeout while waiting for data\n", PROGNAME, errno);
|
||||
if (ret == -1) /* a more serious error, so we print it */
|
||||
OpalPrint("%s: Error %d while waiting for data\n", PROGNAME, errno);
|
||||
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* Get the number of signals to send back to the model */
|
||||
OpalGetAsyncRecvIconDataLength(&mdldata_size, RecvID);
|
||||
cnt = mdldata_size / sizeof(double);
|
||||
if (cnt > MAX_VALUES) {
|
||||
OpalPrint("%s: Number of signals for RecvID=%d (%d) exceeds allowed maximum (%d)\n",
|
||||
PROGNAME, RecvID, cnt, MAX_VALUES);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#if PROTOCOL == VILLAS
|
||||
msg_ntoh(msg);
|
||||
|
||||
ret = msg_verify(msg);
|
||||
if (ret) {
|
||||
OpalPrint("%s: Skipping invalid packet\n", PROGNAME);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (cnt > msg->length) {
|
||||
OpalPrint("%s: Number of signals for RecvID=%d (%d) exceeds what was received (%d)\n",
|
||||
PROGNAME, RecvID, cnt, msg->length);
|
||||
}
|
||||
|
||||
for (int i = 0; i < msg->length; i++)
|
||||
mdldata[i] = (double) msg->data[i].f;
|
||||
|
||||
/* Update OPAL model */
|
||||
OpalSetAsyncRecvIconStatus(msg->sequence, RecvID); /* Set the Status to the message ID */
|
||||
#elif PROTOCOL == GTNET_SKT
|
||||
uint32_t *imsg = (uint32_t *) msg;
|
||||
for (int i = 0; i < cnt; i++) {
|
||||
imsg[i] = ntohl(imsg[i]);
|
||||
mdldata[i] = (double) msg[i];
|
||||
}
|
||||
#else
|
||||
#error Unknown protocol
|
||||
#endif
|
||||
|
||||
OpalSetAsyncRecvIconError(0, RecvID); /* Set the Error to 0 */
|
||||
|
||||
OpalSetAsyncRecvIconData(mdldata, mdldata_size, RecvID);
|
||||
|
||||
/* Before continuing, we make sure that the real-time model
|
||||
* has not been stopped. If it has, we quit. */
|
||||
ModelState = OpalGetAsyncModelState();
|
||||
} while ((ModelState != STATE_RESET) && (ModelState != STATE_STOP));
|
||||
|
||||
OpalPrint("%s: RecvFromIPPort: Finished\n", PROGNAME);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int ret;
|
||||
|
||||
Opal_GenAsyncParam_Ctrl IconCtrlStruct;
|
||||
|
||||
pthread_t tid_send, tid_recv;
|
||||
|
||||
OpalPrint("%s: This is %s client version %s\n", PROGNAME, PROGNAME, VERSION);
|
||||
|
||||
/* Check for the proper arguments to the program */
|
||||
if (argc < 4) {
|
||||
printf("Invalid Arguments: 1-AsyncShmemName 2-AsyncShmemSize 3-PrintShmemName\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/* Enable the OpalPrint function. This prints to the OpalDisplay. */
|
||||
ret = OpalSystemCtrl_Register(PRINT_SHMEM_NAME);
|
||||
if (ret != EOK) {
|
||||
printf("%s: ERROR: OpalPrint() access not available\n", PROGNAME);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Open Share Memory created by the model. */
|
||||
ret = OpalOpenAsyncMem(ASYNC_SHMEM_SIZE, ASYNC_SHMEM_NAME);
|
||||
if (ret != EOK) {
|
||||
OpalPrint("%s: ERROR: Model shared memory not available\n", PROGNAME);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
AssignProcToCpu0();
|
||||
|
||||
/* Get IP Controler Parameters (ie: ip address, port number...) and
|
||||
* initialize the device on the QNX node. */
|
||||
memset(&IconCtrlStruct, 0, sizeof(IconCtrlStruct));
|
||||
|
||||
ret = OpalGetAsyncCtrlParameters(&IconCtrlStruct, sizeof(IconCtrlStruct));
|
||||
if (ret != EOK) {
|
||||
OpalPrint("%s: ERROR: Could not get controller parameters (%d).\n", PROGNAME, ret);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Initialize socket */
|
||||
ret = socket_init(&skt, IconCtrlStruct);
|
||||
if (ret != EOK) {
|
||||
OpalPrint("%s: ERROR: Initialization failed.\n", PROGNAME);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Start send/receive threads */
|
||||
ret = pthread_create(&tid_send, NULL, SendToIPPort, NULL);
|
||||
if (ret == -1)
|
||||
OpalPrint("%s: ERROR: Could not create thread (SendToIPPort), errno %d\n", PROGNAME, errno);
|
||||
|
||||
ret = pthread_create(&tid_recv, NULL, RecvFromIPPort, NULL);
|
||||
if (ret == -1)
|
||||
OpalPrint("%s: ERROR: Could not create thread (RecvFromIPPort), errno %d\n", PROGNAME, errno);
|
||||
|
||||
/* Wait for both threads to finish */
|
||||
ret = pthread_join(tid_send, NULL);
|
||||
if (ret != 0)
|
||||
OpalPrint("%s: ERROR: pthread_join (SendToIPPort), errno %d\n", PROGNAME, ret);
|
||||
|
||||
ret = pthread_join(tid_recv, NULL);
|
||||
if (ret != 0)
|
||||
OpalPrint("%s: ERROR: pthread_join (RecvFromIPPort), errno %d\n", PROGNAME, ret);
|
||||
|
||||
/* Close the ip port and shared memories */
|
||||
socket_close(&skt, IconCtrlStruct);
|
||||
|
||||
OpalCloseAsyncMem (ASYNC_SHMEM_SIZE, ASYNC_SHMEM_NAME);
|
||||
OpalSystemCtrl_UnRegister(PRINT_SHMEM_NAME);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,70 +0,0 @@
|
|||
/** Message related functions.
|
||||
*
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#include "msg.h"
|
||||
#include "msg_format.h"
|
||||
|
||||
void msg_ntoh(struct msg *m)
|
||||
{
|
||||
msg_hdr_ntoh(m);
|
||||
|
||||
for (int i = 0; i < m->length; i++)
|
||||
m->data[i].i = ntohl(m->data[i].i);
|
||||
}
|
||||
|
||||
void msg_hton(struct msg *m)
|
||||
{
|
||||
for (int i = 0; i < m->length; i++)
|
||||
m->data[i].i = htonl(m->data[i].i);
|
||||
|
||||
msg_hdr_hton(m);
|
||||
}
|
||||
|
||||
void msg_hdr_hton(struct msg *m)
|
||||
{
|
||||
m->length = htons(m->length);
|
||||
m->sequence = htonl(m->sequence);
|
||||
m->ts.sec = htonl(m->ts.sec);
|
||||
m->ts.nsec = htonl(m->ts.nsec);
|
||||
}
|
||||
|
||||
void msg_hdr_ntoh(struct msg *m)
|
||||
{
|
||||
m->length = ntohs(m->length);
|
||||
m->sequence = ntohl(m->sequence);
|
||||
m->ts.sec = ntohl(m->ts.sec);
|
||||
m->ts.nsec = ntohl(m->ts.nsec);
|
||||
}
|
||||
|
||||
int msg_verify(struct msg *m)
|
||||
{
|
||||
if (m->version != MSG_VERSION)
|
||||
return -1;
|
||||
else if (m->type != MSG_TYPE_DATA)
|
||||
return -2;
|
||||
else if ((m->rsvd1 != 0) || (m->rsvd2 != 0))
|
||||
return -3;
|
||||
else
|
||||
return 0;
|
||||
}
|
|
@ -1,190 +0,0 @@
|
|||
/** Helper functions for sockets.
|
||||
*
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
/* Define RTLAB before including OpalPrint.h for messages to be sent
|
||||
* to the OpalDisplay. Otherwise stdout will be used. */
|
||||
#define RTLAB
|
||||
#include "OpalPrint.h"
|
||||
#include "AsyncApi.h"
|
||||
|
||||
#include "config.h"
|
||||
#include "socket.h"
|
||||
|
||||
int socket_init(struct socket *s, Opal_GenAsyncParam_Ctrl IconCtrlStruct)
|
||||
{
|
||||
struct ip_mreq mreq; /* Multicast group structure */
|
||||
unsigned char TTL = 1, LOOP = 0;
|
||||
int rc, proto, ret;
|
||||
|
||||
proto = (int) IconCtrlStruct.FloatParam[0];
|
||||
if (proto != UDP_PROTOCOL) {
|
||||
OpalPrint("%s: This version of %s only supports UDP\n", PROGNAME, PROGNAME);
|
||||
return EIO;
|
||||
}
|
||||
|
||||
|
||||
OpalPrint("%s: Version : %s\n", PROGNAME, VERSION);
|
||||
OpalPrint("%s: Remote Address : %s\n", PROGNAME, IconCtrlStruct.StringParam[0]);
|
||||
OpalPrint("%s: Remote Port : %d\n", PROGNAME, (int) IconCtrlStruct.FloatParam[1]);
|
||||
|
||||
/* Initialize the socket */
|
||||
s->sd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
|
||||
if (s->sd < 0) {
|
||||
OpalPrint("%s: ERROR: Could not open socket\n", PROGNAME);
|
||||
return EIO;
|
||||
}
|
||||
|
||||
/* Set the structure for the remote port and address */
|
||||
memset(&s->send_ad, 0, sizeof(s->send_ad));
|
||||
s->send_ad.sin_family = AF_INET;
|
||||
s->send_ad.sin_addr.s_addr = inet_addr(IconCtrlStruct.StringParam[0]);
|
||||
s->send_ad.sin_port = htons((u_short) IconCtrlStruct.FloatParam[1]);
|
||||
|
||||
/* Set the structure for the local port and address */
|
||||
memset(&s->recv_ad, 0, sizeof(s->recv_ad));
|
||||
s->recv_ad.sin_family = AF_INET;
|
||||
s->recv_ad.sin_addr.s_addr = INADDR_ANY;
|
||||
s->recv_ad.sin_port = htons((u_short) IconCtrlStruct.FloatParam[2]);
|
||||
|
||||
/* Bind local port and address to socket. */
|
||||
ret = bind(s->sd, (struct sockaddr *) &s->recv_ad, sizeof(struct sockaddr_in));
|
||||
if (ret == -1) {
|
||||
OpalPrint("%s: ERROR: Could not bind local port to socket\n", PROGNAME);
|
||||
return EIO;
|
||||
}
|
||||
else
|
||||
OpalPrint("%s: Local Port : %d\n", PROGNAME, (int) IconCtrlStruct.FloatParam[2]);
|
||||
|
||||
/* If sending to a multicast address */
|
||||
if ((inet_addr(IconCtrlStruct.StringParam[0]) & inet_addr("240.0.0.0")) == inet_addr("224.0.0.0")) {
|
||||
ret = setsockopt(s->sd, IPPROTO_IP, IP_MULTICAST_TTL, (char *) &TTL, sizeof(TTL));
|
||||
if (ret == -1) {
|
||||
OpalPrint("%s: ERROR: Could not set TTL for multicast send (%d)\n", PROGNAME, errno);
|
||||
return EIO;
|
||||
}
|
||||
|
||||
ret = setsockopt(s->sd, IPPROTO_IP, IP_MULTICAST_LOOP, (char *)&LOOP, sizeof(LOOP));
|
||||
if (ret == -1) {
|
||||
OpalPrint("%s: ERROR: Could not set loopback for multicast send (%d)\n", PROGNAME, errno);
|
||||
return EIO;
|
||||
}
|
||||
|
||||
OpalPrint("%s: Configured socket for sending to multicast address\n", PROGNAME);
|
||||
}
|
||||
|
||||
/* If receiving from a multicast group, register for it. */
|
||||
if (inet_addr(IconCtrlStruct.StringParam[1]) > 0) {
|
||||
if ((inet_addr(IconCtrlStruct.StringParam[1]) & inet_addr("240.0.0.0")) == inet_addr("224.0.0.0")) {
|
||||
mreq.imr_multiaddr.s_addr = inet_addr(IconCtrlStruct.StringParam[1]);
|
||||
mreq.imr_interface.s_addr = INADDR_ANY;
|
||||
|
||||
/* Have the multicast socket join the multicast group */
|
||||
ret = setsockopt(s->sd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *) &mreq, sizeof(mreq));
|
||||
if (ret == -1) {
|
||||
OpalPrint("%s: ERROR: Could not join multicast group (%d)\n", PROGNAME, errno);
|
||||
return EIO;
|
||||
}
|
||||
|
||||
OpalPrint("%s: Added process to multicast group (%s)\n",
|
||||
PROGNAME, IconCtrlStruct.StringParam[1]);
|
||||
}
|
||||
else {
|
||||
OpalPrint("%s: WARNING: IP address for multicast group is not in multicast range. Ignored\n",
|
||||
PROGNAME);
|
||||
}
|
||||
}
|
||||
|
||||
return EOK;
|
||||
}
|
||||
|
||||
int socket_close(struct socket *s, Opal_GenAsyncParam_Ctrl IconCtrlStruct)
|
||||
{
|
||||
if (s->sd < 0) {
|
||||
shutdown(s->sd, SHUT_RDWR);
|
||||
close(s->sd);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int socket_send(struct socket *s, char *data, int len)
|
||||
{
|
||||
if (s->sd < 0)
|
||||
return -1;
|
||||
|
||||
/* Send the packet */
|
||||
return sendto(s->sd, data, len, 0, (struct sockaddr *) &s->send_ad, sizeof(s->send_ad));
|
||||
}
|
||||
|
||||
int socket_recv(struct socket *s, char *data, int len, double timeout)
|
||||
{
|
||||
int ret;
|
||||
struct sockaddr_in client_ad;
|
||||
struct timeval tv;
|
||||
socklen_t client_ad_size = sizeof(client_ad);
|
||||
fd_set sd_set;
|
||||
|
||||
if (s->sd < 0)
|
||||
return -1;
|
||||
|
||||
/* Set the descriptor set for the select() call */
|
||||
FD_ZERO(&sd_set);
|
||||
FD_SET(s->sd, &sd_set);
|
||||
|
||||
/* Set the tv structure to the correct timeout value */
|
||||
tv.tv_sec = (int) timeout;
|
||||
tv.tv_usec = (int) ((timeout - tv.tv_sec) * 1000000);
|
||||
|
||||
/* Wait for a packet. We use select() to have a timeout. This is
|
||||
* necessary when reseting the model so we don't wait indefinitely
|
||||
* and prevent the process from exiting and freeing the port for
|
||||
* a future instance (model load). */
|
||||
ret = select(s->sd + 1, &sd_set, (fd_set *) 0, (fd_set *) 0, &tv);
|
||||
switch (ret) {
|
||||
case -1: /* Error */
|
||||
return -1;
|
||||
case 0: /* We hit the timeout */
|
||||
return 0;
|
||||
default:
|
||||
if (!(FD_ISSET(s->sd, &sd_set))) {
|
||||
/* We received something, but it's not on "sd". Since sd is the only
|
||||
* descriptor in the set... */
|
||||
OpalPrint("%s: RecvPacket: God, is that You trying to reach me?\n", PROGNAME);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Clear the data array (in case we receive an incomplete packet) */
|
||||
memset(data, 0, len);
|
||||
|
||||
/* Perform the reception */
|
||||
return recvfrom(s->sd, data, len, 0, (struct sockaddr *) &client_ad, &client_ad_size);
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
/** Configure scheduler.
|
||||
*
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @author Mathieu Dubé-Dallaire
|
||||
* @copyright 2003, OPAL-RT Technologies inc
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#include <errno.h>
|
||||
#include <sched.h>
|
||||
|
||||
/* Define RTLAB before including OpalPrint.h for messages to be sent
|
||||
* to the OpalDisplay. Otherwise stdout will be used. */
|
||||
#define RTLAB
|
||||
#include "OpalPrint.h"
|
||||
|
||||
#include "config.h"
|
||||
#include "utils.h"
|
||||
|
||||
int AssignProcToCpu0(void)
|
||||
{
|
||||
int ret;
|
||||
cpu_set_t bindSet;
|
||||
|
||||
CPU_ZERO(&bindSet);
|
||||
CPU_SET(0, &bindSet);
|
||||
|
||||
/* Changing process cpu affinity */
|
||||
ret = sched_setaffinity(0, sizeof(cpu_set_t), &bindSet);
|
||||
if (ret) {
|
||||
OpalPrint("Unable to bind the process to CPU 0: %d\n", errno);
|
||||
return EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<Project>
|
||||
<General>
|
||||
<att_name>villas_udp</att_name>
|
||||
<att_description>This is a project!</att_description>
|
||||
<att_ip_address>134.130.169.120:25251</att_ip_address>
|
||||
<att_hashcode>FC70D2D4-2B11-40E7-8317-6C0EB3BB3182</att_hashcode>
|
||||
<att_autosave>ON</att_autosave>
|
||||
<att_filename>C:\Users\svo\workspace\villas\node\clients\opal\villas_udp\villas_udp.llp</att_filename>
|
||||
</General>
|
||||
<Models>
|
||||
<Model>
|
||||
<Path>
|
||||
<Relative>models/send_receive/send_receive.mdl</Relative>
|
||||
<Absolute>C:/Users/svo/workspace/villas/node/clients/opal/villas_udp/models/send_receive/send_receive.mdl</Absolute>
|
||||
<UNC>C:/Users/svo/workspace/villas/node/clients/opal/villas_udp/models/send_receive/send_receive.mdl</UNC>
|
||||
</Path>
|
||||
</Model>
|
||||
</Models>
|
||||
</Project>
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>s2ss_tests</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>com.opalrt.rtlab.ui.rtlabnature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -1,2 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
rtprojectfile=villas_udp.llp
|
File diff suppressed because it is too large
Load diff
|
@ -1,3 +0,0 @@
|
|||
OPAL-1.0 Object
|
||||
ListMap<String,Link<DriverDefinition>> {
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
OPAL-1.0 Object
|
||||
Opal::Simulation::Configuration {
|
||||
projectID=7B042784-8CF2-444A-92E3-8457E429E28A
|
||||
copyOnWrite=0
|
||||
locked=0
|
||||
name=7B042784-8CF2-444A-92E3-8457E429E28A-default
|
||||
versioned=0
|
||||
connectionSets {
|
||||
}
|
||||
syncExchangerRegistry=7B042784-8CF2-444A-92E3-8457E429E28A-default/SyncExchangerRegistry
|
||||
history=
|
||||
parent=/
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
*.o
|
||||
*.d
|
||||
AsyncIP
|
|
@ -1,79 +0,0 @@
|
|||
# Makefile.
|
||||
#
|
||||
# @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
# @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
# @license GNU General Public License (version 3)
|
||||
#
|
||||
# VILLASnode
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
###################################################################################
|
||||
|
||||
TARGET = AsyncIP
|
||||
|
||||
VPATH = src
|
||||
|
||||
RTLAB_INTEL_COMPILER ?= 1
|
||||
|
||||
# Compiler selection
|
||||
ifeq ($(RTLAB_INTEL_COMPILER),1)
|
||||
CC = opicc
|
||||
LD = opicpc
|
||||
else
|
||||
CC = gcc
|
||||
LD = g++
|
||||
|
||||
INTEL_LIBS = -limf -lirc
|
||||
INTEL_OBJS = compat.o
|
||||
endif
|
||||
|
||||
# Support for debugging symbols
|
||||
ifeq ($(DEBUG),1)
|
||||
CC_DEBUG_OPTS = -g -D_DEBUG
|
||||
LD_DEBUG_OPTS = -g
|
||||
else
|
||||
CC_DEBUG_OPTS = -O
|
||||
LD_DEBUG_OPTS =
|
||||
endif
|
||||
|
||||
TARGET_LIB = -lpthread -lm -ldl -lutil -lrt $(INTEL_LIBS)
|
||||
|
||||
INCLUDES = -I. $(OPAL_INCPATH) -Iinclude
|
||||
LIBPATH = -L. $(OPAL_LIBPATH)
|
||||
CC_OPTS = -m32 -std=c99 -D_GNU_SOURCE -MMD
|
||||
LD_OPTS = -m32
|
||||
OBJS = main.o msg.o utils.o socket.o $(INTEL_OBJS)
|
||||
|
||||
ifneq ($(PROTOCOL),)
|
||||
CC_OPTS += -DPROTOCOL=$(PROTOCOL)
|
||||
endif
|
||||
|
||||
ADDLIB = -lOpalCore -lOpalUtils
|
||||
LIBS = -lOpalAsyncApiCore $(ADDLIB) $(TARGET_LIB) $(OPAL_LIBS)
|
||||
|
||||
CFLAGS = -c $(CC_OPTS) $(CC_DEBUG_OPTS) $(INCLUDES)
|
||||
LDFLAGS = $(LD_OPTS) $(LD_DEBUG_OPTS) $(LIBPATH)
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
install: $(TARGET)
|
||||
install -m 0755 -D -t $(DESTDIR)$(PREFIX)/bin $(TARGET)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS) $(OBJS:%.o=%.d) $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS)
|
||||
$(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
|
||||
|
||||
-include $(wildcard *.d)
|
|
@ -1,2 +0,0 @@
|
|||
send_receive/sc_console/OpComm: 1,1,1 : 0.000000000000000 : 0.000000000000000, 0.000000000000000, 0.000000000000000 : 1 : 0 : [0,0,0]
|
||||
SampleTime=0.000050000000000
|
|
@ -1,2 +0,0 @@
|
|||
2
|
||||
1 0.000050000 1 13
|
|
@ -1,3 +0,0 @@
|
|||
[General]
|
||||
aliascnt=0
|
||||
[Alias]
|
|
@ -1,157 +0,0 @@
|
|||
[COMPILATION.REDHAWK]
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\AsyncApi.h=612a2585f27b46429afc0e858c75c713@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\DataTypes.h=e8af444cc1a3bd89782b0ab1bb3f6e72@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\Hardware.h=c9bfba4f16f638311db7b93fd742ba6a@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\Matlab.h=a802f2c2fc3abb0cd838cfeb9654b6a3@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpBlobNexus.h=a2116d7de151e9925d1e389e92bec829@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpCommRtUser.h=5e28baae58ba34488aea94917e228832@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpPcCard.h=5aba7e62bf8f969ce4b3966b4fce456a@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalBlobs.h=c39ab0c000305df2e68d1417806607e6@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalBlobsDefs.h=bf7897b7897082199922e64e603158e0@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalDDK_public.h=927afb68af2b38cbec6a2091c4d5241b@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalError.h=4bf71657c3f3abfcef1548ccdf1b9c33@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalGPIBAsyncParamCtrl.h=322b90842d950c2e24e64221560f8547@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalGenAsyncParamCtrl.h=05e42234759f7581447d7127eef01bc8@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalGlobals.h=990ca2f7e18fea057570ac3c6d24dcca@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalIO.h=f5cb07d5530eb93a105f494f1e638dc4@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalIOTypes.h=ffe180da6232749bf063890c3e86064c@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalLapCan2_251_AsyncParamCtrl.h=4a9e78801563e7a2cdb0735db1339af0@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalLapCan2_LIN_AsyncParamCtrl.h=88a065a675b313e37e35f881a86ff682@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalMonitoring.h=91576afe759fcfc30768ddbd153ce3f8@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalPrint.h=03a38d20d6d31f5a6daf8ee27dc7c840@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalStandalonePrint.h=583e20d5650fe09ac5cf5ed906e1a1a9@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalTypes.h=d8da14c4caa08746e08c62c241c6f928@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\Opal_1553.h=b671e8223e7ca1f27ca44c1ffc5cc854@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\Opal_429.h=45eac2372eeb2379c47b56294f2e4dde@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\PlugAndPlay.h=7d11f72bca2d07e59de69261a8b94d42@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\RTAPI.h=d6d27d01732f7e6efe63987b1ef1e0a6@11/03/15 10:21:00
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\Timing.h=5cda3a7b252a018edb74036e6a9aafb7@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_ctl.h=6ee734cc68dd02e53d12838b8c929b72@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_monitor.h=f475d59c590621b75ae725241de79350@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_opal_lib.h=860d42e929b36ed2b8f42dc561c4ac0f@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_recv.h=bf3ed909d3cdefe5ee4403b1ea8faec5@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_send.h=6943c1b9fc01d989f266464b29e8a224@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_user.h=265e2bf93f910a62b2cf6bee1f1af3ed@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canlib.h=eb642618fbfdece6bee5edd6c655f37a@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canstat.h=e4f0b71311da8d008c63e362ae667e40@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\da.h=a951e14868bde5447753ef3a9dde047a@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\da_private.h=353f4e839f21787d50345e84519ba3e9@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\da_types.h=075036d7aed1746f65809761859504e3@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\hwmonitoring.h=1cb199bba35c134d18f41a861335e373@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip500.h=99a3988bfd5badc0cff437f6c79a54c8@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip500_501_lib.h=6946e1ada3bb7f6a536feaaaf390074f@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip501_16.h=1fd64733aad9a8e8508ed3dd4c00719b@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip520.h=8c8e892ace8379b548a3d00f072d64e3@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip520_lib.h=01924ac25540fb79713022e3e5e6fae7@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip_mp_serial.h=afed951a8aebf7045b936d695a2f4e39@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\linlib.h=e5718cf969377d1b3debf780e53ef20d@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\model_main.h=c05f61fa707f3b1356bf42a6d5aa2256@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\model_main_rtm.h=d1a16c34abf6055e0bcf6ae2e71c4b40@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ni4882.h=5dced5f0176f0fbf9d57fded5d56b182@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ni488_ugpib.h=abdffda7aaa7d8fdb96491565198864d@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\opal_sfun2ucb.h=628bb72a278c95e696dc3f1e0bd2b010@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ophsdio64_public.h=a2fc3c0e7916f19bac9d0482543689f6@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\opmstackBlobId.h=bcbdb4d8341f72749b15f6693e1ae9e5@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8.h=4bb9a86ecfde8d9f3ac41e3b0f2186bc@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8ad.h=03fd05b0e4f22ebe7c7df0bd3786459b@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8da.h=18eb59babcb04183e54abc2d9681bfc9@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8di.h=d1c2f1a123e172d009d0b5701dbcc8e7@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8dig.h=9172b60b7dcf12e143d310b3336eb133@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8do.h=babc608f3d7f5a74746b48a52a849379@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8en.h=a323ad8c638a1ea1cf74dc77dcc123f5@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8tb.h=fd571a4532bcd88b811c0a878f6c7512@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8wd.h=d807b2c8ec525323d4735d63cea6f86d@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\qnx_main.h=4b5a89fd7086b9a74060aabc6057b678@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\rfm_extern.h=5250ace82a9096d582272281cd8774c5@11/03/15 10:21:00
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\s611_x11.h=6666cd76f96956469e7be39d750cc7d9@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\serial.h=453b0baa5ac22c5b09e8e860a6877416@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libOpalCore.a=1d420cb48100a790dae4d646658260ae@01/17/16 16:37:12
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libOpalOhci.a=4b0103a337b7e3971d1965ebcf49a888@01/17/16 17:07:34
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libOpalUtils.a=b4790c6468643c016a7227c4f91b2f84@01/17/16 16:37:14
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libOpalUtils_redhawk.a=c0bbedad43ea5adde7ccc73c3e79b5c1@01/17/16 17:07:36
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libimf.a=8c07bba84320099788d8a92a5feab5aa@01/17/16 17:07:18
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libirc.a=c00c9e9b725d1339e4e44cfbda39acb5@01/17/16 17:07:16
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\simulink\libR2011b\redhawk\libOpalRTER2011B.a=0f33a61eaa94b3fbb2e368a37b711870@01/17/16 17:07:16
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\simulink\rtw\c\common\model_main.c=313aa888ccc7d6e8b3306809e82e3ac2@11/19/15 18:58:42
|
||||
Makefile.mk=98b2e444900ec6b948e9e31c1854259e@04/27/17 15:54:22
|
||||
include\config.h=cf64c4b893847bec0ca5413b536d7c19@04/27/17 15:54:48
|
||||
include\msg.h=8eee9094174ba6693af23b6c1e2d68f7@04/27/17 15:55:05
|
||||
include\msg_format.h=450b947e89fea20f00cf44800b2f3a32@04/27/17 15:55:20
|
||||
include\socket.h=110f238401b448b7fd53a84e802f802c@04/27/17 15:55:55
|
||||
include\utils.h=59bf213b2d720aae31fe712a03a19655@04/27/17 15:56:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\OpalSnapshotUtil.c=9792898abdf74ce99a8fd05b76ba37c9@04/27/17 18:29:10
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetInf.c=256d0abf4bff515f93a456831aa87ad4@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetInf.h=a120f861c22a4733a51cf18c86dffef4@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetNaN.c=c21dda3a66f71fea3e0a70ec8ceaa4c3@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetNaN.h=22aa634cdde3d8dc9c5d53a55dccc174@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_defines.h=e73b9c3de9205a6e9566888cd1c0a21b@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_nonfinite.c=c8af8e350477c2f3eb728ac4af48798f@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_nonfinite.h=fe8ab8747a436ce0c3bbc639596df157@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtmodel.h=5601c02babaa7edcf442c39eb4c1765d@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtwtypes.h=607f50ed2a6634f5223c724ef6e4f6aa@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.c=050be41c41b9d0a44f145d451fb9c29e@04/27/17 18:29:11
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.h=bf469212512a98eb8f868b03d6ff675c@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.mk=462ed3ce1fee5476e0ef1aa6d625a105@04/27/17 18:29:09
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_data.c=230d2f64109fe74be213902eaa7f2707@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_private.h=44d44cd99d416cbfc7ef347ea249a9b3@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_types.h=d02eb0c79cbd9dfbd2c1cc6f9fd0840e@04/27/17 18:29:07
|
||||
src\compat.c=6ca227226e1e7654ff67a6967e8b27ae@04/27/17 15:56:20
|
||||
src\main.c=0abe95c10021aaf4168d9daf852c18e9@04/27/17 15:57:24
|
||||
src\msg.c=14b13786973ac76d0a9e2061e7668886@04/27/17 15:57:40
|
||||
src\socket.c=e706f47240c94a6a5d115393688fc2be@04/27/17 15:58:28
|
||||
src\utils.c=b4cc2dacfbda747fd585830690f09df5@04/27/17 15:58:48
|
||||
[COMPILATION.REDHAWK.SETTINGS]
|
||||
CompilerVersion=Automatic
|
||||
DEBUG=0
|
||||
DevNodeIP=134.130.169.80
|
||||
DevNodeOSVersion=2.6.29.6-opalrt-5
|
||||
EXT_CC_OPTS=
|
||||
EXT_LD_OPTS=
|
||||
EXT_LIB=
|
||||
EXT_LIBPATH=
|
||||
RTLAB_Version=v11.0.5.499undefined
|
||||
TargetCompileCmd=/usr/bin/make -f /usr/opalrt/common/bin/opalmodelmk
|
||||
USER_INCS=
|
||||
USER_SRCS=
|
||||
[COMPILATION.REDHAWK.VOLATILE]
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libOpalAsyncApiCore.a=5440eeacc8db73055d3bc4ae8d1921a2@01/17/16 17:07:20
|
||||
[GENERATION.REDHAWK]
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\simulink\rtw\c\common\rtlab_rtmodel.tlc=09852261f29ea7ec57d1ce695ec6f76f@12/10/15 20:46:12
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\simulink\rtw\c\common\rtlab_rtmodel.tmf=255e8a677a2349e4995ed16ee7ac9ef5@09/01/15 12:07:28
|
||||
Opcommon\send_receive.param=945dcacf98897ebb360282243911e1c5@04/27/17 18:29:10
|
||||
Opcommon\send_receive.signal=76e000dfc75f1d89aff0a36a54e40efb@04/27/17 18:29:10
|
||||
Opcommon\send_receive.subsys=9edb3bbbf44128cd5de3d16659904e0e@04/27/17 18:28:55
|
||||
Opcommon\send_receive_1_sm_model.mdl=8143648b3d9b3f4ac874931e13fbce52@04/27/17 18:28:54
|
||||
send_receive_sm_model\OpREDHAWKtarget\OpalSnapshotUtil.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetInf.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetInf.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetNaN.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetNaN.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_defines.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_nonfinite.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_nonfinite.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtmodel.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtwtypes.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.mk=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_data.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_private.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_types.h=exists
|
||||
[GENERATION.REDHAWK.SETTINGS]
|
||||
CompilerVersion=Automatic
|
||||
PlatformDependent=yes
|
||||
RTLAB_Version=v11.0.5.499undefined
|
||||
[INTERNAL]
|
||||
LAST_PLATFORM=4
|
||||
[SEPARATION]
|
||||
Opcommon\send_receive.subsys=exists
|
||||
Opcommon\send_receive_1_sm_model.mdl=exists
|
||||
send_receive.mdl=0114282744b5375fe4fb961ab49e3787@04/27/17 18:28:14
|
||||
send_receive_2_sc_console.mdl=exists
|
||||
[SEPARATION.SETTINGS]
|
||||
MATLAB_VERSION=21
|
||||
PostBuildCmd=
|
||||
PreBuildCmd=
|
||||
RTLAB_Version=v11.0.5.499undefined
|
|
@ -1,157 +0,0 @@
|
|||
[COMPILATION.REDHAWK]
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\AsyncApi.h=612a2585f27b46429afc0e858c75c713@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\DataTypes.h=e8af444cc1a3bd89782b0ab1bb3f6e72@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\Hardware.h=c9bfba4f16f638311db7b93fd742ba6a@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\Matlab.h=a802f2c2fc3abb0cd838cfeb9654b6a3@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpBlobNexus.h=a2116d7de151e9925d1e389e92bec829@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpCommRtUser.h=5e28baae58ba34488aea94917e228832@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpPcCard.h=5aba7e62bf8f969ce4b3966b4fce456a@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalBlobs.h=c39ab0c000305df2e68d1417806607e6@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalBlobsDefs.h=bf7897b7897082199922e64e603158e0@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalDDK_public.h=927afb68af2b38cbec6a2091c4d5241b@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalError.h=4bf71657c3f3abfcef1548ccdf1b9c33@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalGPIBAsyncParamCtrl.h=322b90842d950c2e24e64221560f8547@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalGenAsyncParamCtrl.h=05e42234759f7581447d7127eef01bc8@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalGlobals.h=990ca2f7e18fea057570ac3c6d24dcca@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalIO.h=f5cb07d5530eb93a105f494f1e638dc4@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalIOTypes.h=ffe180da6232749bf063890c3e86064c@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalLapCan2_251_AsyncParamCtrl.h=4a9e78801563e7a2cdb0735db1339af0@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalLapCan2_LIN_AsyncParamCtrl.h=88a065a675b313e37e35f881a86ff682@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalMonitoring.h=91576afe759fcfc30768ddbd153ce3f8@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalPrint.h=03a38d20d6d31f5a6daf8ee27dc7c840@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalStandalonePrint.h=583e20d5650fe09ac5cf5ed906e1a1a9@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\OpalTypes.h=d8da14c4caa08746e08c62c241c6f928@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\Opal_1553.h=b671e8223e7ca1f27ca44c1ffc5cc854@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\Opal_429.h=45eac2372eeb2379c47b56294f2e4dde@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\PlugAndPlay.h=7d11f72bca2d07e59de69261a8b94d42@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\RTAPI.h=d6d27d01732f7e6efe63987b1ef1e0a6@11/03/15 10:21:00
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\Timing.h=5cda3a7b252a018edb74036e6a9aafb7@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_ctl.h=6ee734cc68dd02e53d12838b8c929b72@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_monitor.h=f475d59c590621b75ae725241de79350@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_opal_lib.h=860d42e929b36ed2b8f42dc561c4ac0f@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_recv.h=bf3ed909d3cdefe5ee4403b1ea8faec5@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_send.h=6943c1b9fc01d989f266464b29e8a224@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canac2_user.h=265e2bf93f910a62b2cf6bee1f1af3ed@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canlib.h=eb642618fbfdece6bee5edd6c655f37a@09/01/15 12:11:04
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\canstat.h=e4f0b71311da8d008c63e362ae667e40@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\da.h=a951e14868bde5447753ef3a9dde047a@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\da_private.h=353f4e839f21787d50345e84519ba3e9@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\da_types.h=075036d7aed1746f65809761859504e3@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\hwmonitoring.h=1cb199bba35c134d18f41a861335e373@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip500.h=99a3988bfd5badc0cff437f6c79a54c8@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip500_501_lib.h=6946e1ada3bb7f6a536feaaaf390074f@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip501_16.h=1fd64733aad9a8e8508ed3dd4c00719b@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip520.h=8c8e892ace8379b548a3d00f072d64e3@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip520_lib.h=01924ac25540fb79713022e3e5e6fae7@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ip_mp_serial.h=afed951a8aebf7045b936d695a2f4e39@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\linlib.h=e5718cf969377d1b3debf780e53ef20d@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\model_main.h=c05f61fa707f3b1356bf42a6d5aa2256@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\model_main_rtm.h=d1a16c34abf6055e0bcf6ae2e71c4b40@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ni4882.h=5dced5f0176f0fbf9d57fded5d56b182@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ni488_ugpib.h=abdffda7aaa7d8fdb96491565198864d@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\opal_sfun2ucb.h=628bb72a278c95e696dc3f1e0bd2b010@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\ophsdio64_public.h=a2fc3c0e7916f19bac9d0482543689f6@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\opmstackBlobId.h=bcbdb4d8341f72749b15f6693e1ae9e5@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8.h=4bb9a86ecfde8d9f3ac41e3b0f2186bc@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8ad.h=03fd05b0e4f22ebe7c7df0bd3786459b@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8da.h=18eb59babcb04183e54abc2d9681bfc9@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8di.h=d1c2f1a123e172d009d0b5701dbcc8e7@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8dig.h=9172b60b7dcf12e143d310b3336eb133@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8do.h=babc608f3d7f5a74746b48a52a849379@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8en.h=a323ad8c638a1ea1cf74dc77dcc123f5@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8tb.h=fd571a4532bcd88b811c0a878f6c7512@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\q8wd.h=d807b2c8ec525323d4735d63cea6f86d@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\qnx_main.h=4b5a89fd7086b9a74060aabc6057b678@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\rfm_extern.h=5250ace82a9096d582272281cd8774c5@11/03/15 10:21:00
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\s611_x11.h=6666cd76f96956469e7be39d750cc7d9@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\include_target\serial.h=453b0baa5ac22c5b09e8e860a6877416@09/01/15 12:11:06
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libOpalCore.a=1d420cb48100a790dae4d646658260ae@01/17/16 16:37:12
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libOpalOhci.a=4b0103a337b7e3971d1965ebcf49a888@01/17/16 17:07:34
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libOpalUtils.a=b4790c6468643c016a7227c4f91b2f84@01/17/16 16:37:14
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libOpalUtils_redhawk.a=c0bbedad43ea5adde7ccc73c3e79b5c1@01/17/16 17:07:36
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libimf.a=8c07bba84320099788d8a92a5feab5aa@01/17/16 17:07:18
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libirc.a=c00c9e9b725d1339e4e44cfbda39acb5@01/17/16 17:07:16
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\simulink\libR2011b\redhawk\libOpalRTER2011B.a=0f33a61eaa94b3fbb2e368a37b711870@01/17/16 17:07:16
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\simulink\rtw\c\common\model_main.c=313aa888ccc7d6e8b3306809e82e3ac2@11/19/15 18:58:42
|
||||
Makefile.mk=98b2e444900ec6b948e9e31c1854259e@04/27/17 15:54:22
|
||||
include\config.h=cf64c4b893847bec0ca5413b536d7c19@04/27/17 15:54:48
|
||||
include\msg.h=8eee9094174ba6693af23b6c1e2d68f7@04/27/17 15:55:05
|
||||
include\msg_format.h=450b947e89fea20f00cf44800b2f3a32@04/27/17 15:55:20
|
||||
include\socket.h=110f238401b448b7fd53a84e802f802c@04/27/17 15:55:55
|
||||
include\utils.h=59bf213b2d720aae31fe712a03a19655@04/27/17 15:56:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\OpalSnapshotUtil.c=9792898abdf74ce99a8fd05b76ba37c9@04/27/17 18:29:10
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetInf.c=256d0abf4bff515f93a456831aa87ad4@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetInf.h=a120f861c22a4733a51cf18c86dffef4@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetNaN.c=c21dda3a66f71fea3e0a70ec8ceaa4c3@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetNaN.h=22aa634cdde3d8dc9c5d53a55dccc174@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_defines.h=e73b9c3de9205a6e9566888cd1c0a21b@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_nonfinite.c=c8af8e350477c2f3eb728ac4af48798f@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_nonfinite.h=fe8ab8747a436ce0c3bbc639596df157@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtmodel.h=5601c02babaa7edcf442c39eb4c1765d@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtwtypes.h=607f50ed2a6634f5223c724ef6e4f6aa@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.c=050be41c41b9d0a44f145d451fb9c29e@04/27/17 18:29:11
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.h=bf469212512a98eb8f868b03d6ff675c@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.mk=462ed3ce1fee5476e0ef1aa6d625a105@04/27/17 18:29:09
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_data.c=230d2f64109fe74be213902eaa7f2707@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_private.h=44d44cd99d416cbfc7ef347ea249a9b3@04/27/17 18:29:07
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_types.h=d02eb0c79cbd9dfbd2c1cc6f9fd0840e@04/27/17 18:29:07
|
||||
src\compat.c=6ca227226e1e7654ff67a6967e8b27ae@04/27/17 15:56:20
|
||||
src\main.c=0abe95c10021aaf4168d9daf852c18e9@04/27/17 15:57:24
|
||||
src\msg.c=14b13786973ac76d0a9e2061e7668886@04/27/17 15:57:40
|
||||
src\socket.c=e706f47240c94a6a5d115393688fc2be@04/27/17 15:58:28
|
||||
src\utils.c=b4cc2dacfbda747fd585830690f09df5@04/27/17 15:58:48
|
||||
[COMPILATION.REDHAWK.SETTINGS]
|
||||
CompilerVersion=Automatic
|
||||
DEBUG=0
|
||||
DevNodeIP=134.130.169.80
|
||||
DevNodeOSVersion=2.6.29.6-opalrt-5
|
||||
EXT_CC_OPTS=
|
||||
EXT_LD_OPTS=
|
||||
EXT_LIB=
|
||||
EXT_LIBPATH=
|
||||
RTLAB_Version=v11.0.5.499undefined
|
||||
TargetCompileCmd=/usr/bin/make -f /usr/opalrt/common/bin/opalmodelmk
|
||||
USER_INCS=
|
||||
USER_SRCS=
|
||||
[COMPILATION.REDHAWK.VOLATILE]
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libOpalAsyncApiCore.a=5440eeacc8db73055d3bc4ae8d1921a2@01/17/16 17:07:20
|
||||
[GENERATION.REDHAWK]
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\simulink\rtw\c\common\rtlab_rtmodel.tlc=09852261f29ea7ec57d1ce695ec6f76f@12/10/15 20:46:12
|
||||
..\..\..\..\..\..\..\OPAL-RT\RT-LAB\v11.0.5.499\simulink\rtw\c\common\rtlab_rtmodel.tmf=255e8a677a2349e4995ed16ee7ac9ef5@09/01/15 12:07:28
|
||||
Opcommon\send_receive.param=945dcacf98897ebb360282243911e1c5@04/27/17 18:29:10
|
||||
Opcommon\send_receive.signal=76e000dfc75f1d89aff0a36a54e40efb@04/27/17 18:29:10
|
||||
Opcommon\send_receive.subsys=9edb3bbbf44128cd5de3d16659904e0e@04/27/17 18:28:55
|
||||
Opcommon\send_receive_1_sm_model.mdl=8143648b3d9b3f4ac874931e13fbce52@04/27/17 18:28:54
|
||||
send_receive_sm_model\OpREDHAWKtarget\OpalSnapshotUtil.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetInf.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetInf.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetNaN.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtGetNaN.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_defines.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_nonfinite.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rt_nonfinite.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtmodel.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\rtwtypes.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model.mk=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_data.c=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_private.h=exists
|
||||
send_receive_sm_model\OpREDHAWKtarget\send_receive_1_sm_model_types.h=exists
|
||||
[GENERATION.REDHAWK.SETTINGS]
|
||||
CompilerVersion=Automatic
|
||||
PlatformDependent=yes
|
||||
RTLAB_Version=v11.0.5.499undefined
|
||||
[INTERNAL]
|
||||
LAST_PLATFORM=4
|
||||
[SEPARATION]
|
||||
Opcommon\send_receive.subsys=exists
|
||||
Opcommon\send_receive_1_sm_model.mdl=exists
|
||||
send_receive.mdl=0114282744b5375fe4fb961ab49e3787@04/27/17 18:28:14
|
||||
send_receive_2_sc_console.mdl=exists
|
||||
[SEPARATION.SETTINGS]
|
||||
MATLAB_VERSION=21
|
||||
PostBuildCmd=
|
||||
PreBuildCmd=
|
||||
RTLAB_Version=v11.0.5.499undefined
|
|
@ -1,19 +0,0 @@
|
|||
[General]
|
||||
ATT_VERSION=1
|
||||
[Size]
|
||||
nbParameters=13
|
||||
nbValues=13
|
||||
nbVariables=0
|
||||
nbParamsVar=0
|
||||
[Parameter]
|
||||
0=send_receive/sm_model/data ready 2 kHz|Amplitude| |Scalar|1|1|2|1.0|1|1|
|
||||
1=send_receive/sm_model/data ready 2 kHz|Period| |Scalar|1|1|3|10.0|1|1|
|
||||
2=send_receive/sm_model/data ready 2 kHz|PulseWidth| |Scalar|1|1|4|1.0|1|1|
|
||||
3=send_receive/sm_model/data ready 2 kHz|PhaseDelay| |Scalar|1|1|5|0.0|1|1|
|
||||
4=send_receive/sm_model/Constant|Value| |RVector|1|4|6|1.0|2.0|3.0|4.0|1|4|
|
||||
8=send_receive/sm_model/Pulse Generator1|Amplitude| |Scalar|1|1|10|5.0|1|1|
|
||||
9=send_receive/sm_model/Pulse Generator1|Period| |Scalar|1|1|11|2000.0|1|1|
|
||||
10=send_receive/sm_model/Pulse Generator1|PulseWidth| |Scalar|1|1|12|600.0|1|1|
|
||||
11=send_receive/sm_model/Pulse Generator1|PhaseDelay| |Scalar|1|1|13|0.0|1|1|
|
||||
12=send_receive/sm_model/timeout|Value| |Scalar|1|1|83|2.0|1|1|
|
||||
[Variable]
|
|
@ -1,15 +0,0 @@
|
|||
[AcqGr1]
|
||||
1=send_receive/sm_model/port2(1)|signal1.signal1|1|1|3
|
||||
10=send_receive/sm_model/port3(2)|signal1.signal1(2)|3|2|5
|
||||
11=send_receive/sm_model/port3(3)|signal1.signal1(3)|3|3|5
|
||||
12=send_receive/sm_model/port3(4)|signal1.signal1(4)|3|4|5
|
||||
13=send_receive/sm_model/port3(5)|signal1.signal2|3|5|5
|
||||
2=send_receive/sm_model/port2(2)|signal1.signal2|1|2|3
|
||||
3=send_receive/sm_model/port2(3)|signal1.signal3|1|3|3
|
||||
4=send_receive/sm_model/port1(1)|signal1(1)|2|1|5
|
||||
5=send_receive/sm_model/port1(2)|signal1(2)|2|2|5
|
||||
6=send_receive/sm_model/port1(3)|signal1(3)|2|3|5
|
||||
7=send_receive/sm_model/port1(4)|signal1(4)|2|4|5
|
||||
8=send_receive/sm_model/port1(5)|signal1(5)|2|5|5
|
||||
9=send_receive/sm_model/port3(1)|signal1.signal1(1)|3|1|5
|
||||
nbsignals=13
|
|
@ -1,30 +0,0 @@
|
|||
[Signal]
|
||||
1=send_receive/sm_model/data ready 2 kHz/port1|signal1|1|1|2|1|1|1|S|0|
|
||||
2=send_receive/sm_model/Pulse Generator1/port1|signal1|1|1|3|1|1|1|S|0|
|
||||
3=send_receive/sm_model/send message 1/S-Function2/port1|signal1|1|1|4|1|1|1|S|0|
|
||||
4=send_receive/sm_model/receive message 1/S-Function1/port1|signal1|1|1|5|1|1|1|S|0|
|
||||
5=send_receive/sm_model/receive message 1/S-Function1/port2|signal2|1|2|6|1|1|1|S|0|
|
||||
6=send_receive/sm_model/receive message 1/S-Function1/port3(1)|signal3(1)|1|3|7|1|5|1|V|0|
|
||||
7=send_receive/sm_model/receive message 1/S-Function1/port3(2)|signal3(2)|1|3|8|1|5|1|V|0|
|
||||
8=send_receive/sm_model/receive message 1/S-Function1/port3(3)|signal3(3)|1|3|9|1|5|1|V|0|
|
||||
9=send_receive/sm_model/receive message 1/S-Function1/port3(4)|signal3(4)|1|3|10|1|5|1|V|0|
|
||||
10=send_receive/sm_model/receive message 1/S-Function1/port3(5)|signal3(5)|1|3|11|1|5|1|V|0|
|
||||
[FixedSignal]
|
||||
1=send_receive/sm_model/port2(1)|signal1.signal1|1|1|0|1|
|
||||
2=send_receive/sm_model/port2(2)|signal1.signal2|1|1|0|1|
|
||||
3=send_receive/sm_model/port2(3)|signal1.signal3|1|1|0|1|
|
||||
4=send_receive/sm_model/port1(1)|signal1(1)|1|1|0|1|
|
||||
5=send_receive/sm_model/port1(2)|signal1(2)|1|1|0|1|
|
||||
6=send_receive/sm_model/port1(3)|signal1(3)|1|1|0|1|
|
||||
7=send_receive/sm_model/port1(4)|signal1(4)|1|1|0|1|
|
||||
8=send_receive/sm_model/port1(5)|signal1(5)|1|1|0|1|
|
||||
9=send_receive/sm_model/port3(1)|signal1.signal1(1)|1|1|0|1|
|
||||
10=send_receive/sm_model/port3(2)|signal1.signal1(2)|1|1|0|1|
|
||||
11=send_receive/sm_model/port3(3)|signal1.signal1(3)|1|1|0|1|
|
||||
12=send_receive/sm_model/port3(4)|signal1.signal1(4)|1|1|0|1|
|
||||
13=send_receive/sm_model/port3(5)|signal1.signal2|1|1|0|1|
|
||||
[ControlSignal]
|
||||
[Size]
|
||||
nbSignals=10
|
||||
nbFixedSignals=13
|
||||
nbControlSignal=0
|
|
@ -1,2 +0,0 @@
|
|||
send_receive/sm_model,send_receive_1_sm_model,1
|
||||
send_receive/sc_console,send_receive_2_sc_console,2
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +0,0 @@
|
|||
[S-Function list]
|
||||
send_receive_1_sm_model/sm_model/OpIPSocketCtrl1=0
|
||||
send_receive_1_sm_model/sm_model/receive message 1/S-Function1=0
|
||||
send_receive_1_sm_model/sm_model/rtlab_send_subsystem/Subsystem1/Send1/S-Function=0
|
||||
send_receive_1_sm_model/sm_model/send message 1/S-Function2=0
|
|
@ -1,18 +0,0 @@
|
|||
|
||||
-------------------- Starting compilation --------------------
|
||||
Start at : Thursday, April 27, 2017, 18:31:22
|
||||
|
||||
The current RT-LAB version is: v11.0.5.499
|
||||
The current model is: C:\Users\opal-user\OPAL-RT\msv-ufa\test1\models\send_receive\send_receive.mdl
|
||||
The current host platform is: Windows
|
||||
The current target platform is: Redhat
|
||||
The current compiler is: Automatic
|
||||
WARNING: Model separation will be skipped because no change has been detected.
|
||||
WARNING: Model code generation will be skipped because no change has been detected.
|
||||
The current Matlab version is: v7.13
|
||||
WARNING: Model code compilation will be skipped because no change has been detected.
|
||||
|
||||
End at : Thursday, April 27, 2017, 18:31:26
|
||||
|
||||
Compilation duration : 00h:00m:04s
|
||||
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -1,41 +0,0 @@
|
|||
/** Compile-time configuration.
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#ifndef _CONFIG_H_
|
||||
#define _CONFIG_H_
|
||||
|
||||
#define PROGNAME "VILLASnode-OPAL-UDP"
|
||||
#define VERSION "0.6"
|
||||
|
||||
#define MAX_VALUES 64
|
||||
|
||||
/* List of protocols */
|
||||
#define VILLAS 1
|
||||
#define GTNET_SKT 2
|
||||
|
||||
/* Default protocol */
|
||||
#ifndef PROTOCOL
|
||||
#define PROTOCOL VILLAS
|
||||
#endif
|
||||
|
||||
#endif /* _CONFIG_H_ */
|
|
@ -1,51 +0,0 @@
|
|||
/** Message related functions
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* Forward declarations. */
|
||||
struct msg;
|
||||
|
||||
/** Swaps the byte-order of the message.
|
||||
*
|
||||
* Message are always transmitted in network (big endian) byte order.
|
||||
*
|
||||
* @param m A pointer to the message
|
||||
*/
|
||||
void msg_hdr_ntoh(struct msg *m);
|
||||
|
||||
void msg_hdr_hton(struct msg *m);
|
||||
|
||||
void msg_ntoh(struct msg *m);
|
||||
|
||||
void msg_hton(struct msg *m);
|
||||
|
||||
/** Check the consistency of a message.
|
||||
*
|
||||
* The functions checks the header fields of a message.
|
||||
*
|
||||
* @param m A pointer to the message
|
||||
* @retval 0 The message header is valid.
|
||||
* @retval <0 The message header is invalid.
|
||||
*/
|
||||
int msg_verify(struct msg *m);
|
|
@ -1,84 +0,0 @@
|
|||
/** Message format
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/** The current version number for the message format */
|
||||
#define MSG_VERSION 2
|
||||
|
||||
/** @todo Implement more message types */
|
||||
#define MSG_TYPE_DATA 0 /**< Message contains float values */
|
||||
#define MSG_TYPE_START 1 /**< Message marks the beginning of a new simulation case */
|
||||
#define MSG_TYPE_STOP 2 /**< Message marks the end of a simulation case */
|
||||
|
||||
/** The total size in bytes of a message */
|
||||
#define MSG_LEN(values) (sizeof(struct msg) + MSG_DATA_LEN(values))
|
||||
|
||||
/** The length of \p values values in bytes. */
|
||||
#define MSG_DATA_LEN(values) (sizeof(float) * (values))
|
||||
|
||||
/** The offset to the first data value in a message. */
|
||||
#define MSG_DATA_OFFSET(msg) ((char *) (msg) + offsetof(struct msg, data))
|
||||
|
||||
/** Initialize a message with default values */
|
||||
#define MSG_INIT(len, seq) (struct msg) {\
|
||||
.version = MSG_VERSION, \
|
||||
.type = MSG_TYPE_DATA, \
|
||||
.length = len, \
|
||||
.sequence = seq \
|
||||
}
|
||||
|
||||
/** The timestamp of a message in struct timespec format */
|
||||
#define MSG_TS(msg) (struct timespec) { \
|
||||
.tv_sec = (msg)->ts.sec, \
|
||||
.tv_nsec = (msg)->ts.nsec \
|
||||
}
|
||||
|
||||
/** This message format is used by all clients
|
||||
*
|
||||
* @diafile msg_format.dia
|
||||
**/
|
||||
struct msg
|
||||
{
|
||||
unsigned version: 4; /**< Specifies the format of the remaining message (see MGS_VERSION) */
|
||||
unsigned type : 2; /**< Data or control message (see MSG_TYPE_*) */
|
||||
unsigned rsvd1 : 2; /**< Reserved bits */
|
||||
unsigned rsvd2 : 8; /**< Reserved bits */
|
||||
|
||||
uint16_t length; /**< The number of values in msg::data[]. */
|
||||
uint32_t sequence; /**< The sequence number is incremented by one for consecutive messages. */
|
||||
|
||||
/** A timestamp per message. */
|
||||
struct {
|
||||
uint32_t sec; /**< Seconds since 1970-01-01 00:00:00 */
|
||||
uint32_t nsec; /**< Nanoseconds of the current second. */
|
||||
} ts;
|
||||
|
||||
/** The message payload. */
|
||||
union {
|
||||
float f; /**< Floating point values. */
|
||||
uint32_t i; /**< Integer values. */
|
||||
} data[];
|
||||
} __attribute__((packed));
|
|
@ -1,49 +0,0 @@
|
|||
/** Helper functions for sockets.
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#ifndef _SOCKET_H_
|
||||
#define _SOCKET_H_
|
||||
|
||||
#include <netinet/in.h>
|
||||
|
||||
#define RT
|
||||
#include "OpalGenAsyncParamCtrl.h"
|
||||
|
||||
#define UDP_PROTOCOL 1
|
||||
#define TCP_PROTOCOL 2
|
||||
|
||||
struct socket {
|
||||
struct sockaddr_in send_ad; /* Send address */
|
||||
struct sockaddr_in recv_ad; /* Receive address */
|
||||
int sd; /* socket descriptor */
|
||||
};
|
||||
|
||||
int socket_init(struct socket *s, Opal_GenAsyncParam_Ctrl IconCtrlStruct);
|
||||
|
||||
int socket_send(struct socket *s, char *data, int len);
|
||||
|
||||
int socket_recv(struct socket *s, char *data, int len, double timeout);
|
||||
|
||||
int socket_close(struct socket *s, Opal_GenAsyncParam_Ctrl IconCtrlStruct);
|
||||
|
||||
#endif /* _SOCKET_H_ */
|
|
@ -1,31 +0,0 @@
|
|||
/** Configure scheduler.
|
||||
*
|
||||
* @file
|
||||
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
||||
* @author Mathieu Dubé-Dallaire
|
||||
* @copyright 2003, OPAL-RT Technologies inc
|
||||
* @copyright 2017, Institute for Automation of Complex Power Systems, EONERC
|
||||
* @license GNU General Public License (version 3)
|
||||
*
|
||||
* VILLASnode
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************************/
|
||||
|
||||
#ifndef _UTILS_H_
|
||||
#define _UTILS_H_
|
||||
|
||||
int AssignProcToCpu0(void);
|
||||
|
||||
#endif /* _UTILS_H_ */
|
|
@ -1,3 +0,0 @@
|
|||
function swapClass(obj, cls) {
|
||||
obj.className = cls
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
.hideprint{
|
||||
display: none;
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
.hidescreen{
|
||||
display: none;
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
.bOver {
|
||||
font-family: Verdana;
|
||||
font-size: 10px;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
|
||||
padding-top: 3px;
|
||||
padding-left: 5px;
|
||||
padding-bottom: 3px;
|
||||
padding-right: 5px;
|
||||
|
||||
background-color: #99ccff;
|
||||
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.bOut {
|
||||
font-family: Verdana;
|
||||
font-size: 10px;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
|
||||
padding-top: 3px;
|
||||
padding-left: 5px;
|
||||
padding-bottom: 3px;
|
||||
padding-right: 5px;
|
||||
|
||||
background-color: #5389bc;
|
||||
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.notsel {
|
||||
padding-left: 7px;
|
||||
font-family: Verdana;
|
||||
font-size: 11px;
|
||||
color: black;
|
||||
font-weight: 500;
|
||||
|
||||
}
|
||||
|
||||
.sel {
|
||||
padding-left: 7px;
|
||||
font-family: Verdana;
|
||||
font-size: 11px;
|
||||
color: black;
|
||||
font-weight: 600;
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 854 B |
Binary file not shown.
Before Width: | Height: | Size: 857 B |
Binary file not shown.
Before Width: | Height: | Size: 833 B |
|
@ -1,17 +0,0 @@
|
|||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="css/tree.css" title="MinimizeExpand"/>
|
||||
<link rel="stylesheet" type="text/css" href="css/print.css" media="print,projection">
|
||||
<link rel="stylesheet" type="text/css" href="css/screen.css" media="screen">
|
||||
|
||||
|
||||
<script language="Javascript" SRC="tree/tree.js"></script>
|
||||
<script language="Javascript" SRC="common/css.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="initializeTree('minimize');">
|
||||
<div id="xmlContent">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -1,301 +0,0 @@
|
|||
|
||||
var platformMoz = (document.implementation && document.implementation.createDocument);
|
||||
var platformIE6 = (!platformMoz && document.getElementById && window.ActiveXObject);
|
||||
var noXSLT = (!platformMoz && !platformIE6);
|
||||
|
||||
var msxmlVersion = '3.0';
|
||||
var urlXML;
|
||||
var urlXSL;
|
||||
var docXML;
|
||||
var docXSL;
|
||||
var target;
|
||||
var cache;;
|
||||
var processor;
|
||||
var i;
|
||||
var DefaultTreeMode;
|
||||
|
||||
|
||||
if (platformIE6)
|
||||
{
|
||||
cache = new ActiveXObject('Msxml2.XSLTemplate.' + msxmlVersion);
|
||||
}
|
||||
|
||||
|
||||
function initializeTree(defTreeMode)
|
||||
{
|
||||
if (noXSLT)
|
||||
{
|
||||
alert("Sorry, this doesn't work in your browser");
|
||||
return;
|
||||
}
|
||||
|
||||
urlXML = get_report_filename()
|
||||
urlXSL = "tree/tree.xsl";
|
||||
target = document.getElementById("xmlContent");
|
||||
|
||||
DefaultTreeMode = defTreeMode;
|
||||
Transform();
|
||||
}
|
||||
|
||||
function get_report_filename()
|
||||
{
|
||||
var filename;
|
||||
var i;
|
||||
var j;
|
||||
var c;
|
||||
var fileId;
|
||||
|
||||
filename = document.URL;
|
||||
j = filename.length;
|
||||
k = 0
|
||||
for (i=filename.length-1; i>=0; i--)
|
||||
{
|
||||
|
||||
c = filename.charAt(i)
|
||||
|
||||
if ( (j == filename.length) && (c == '.') )
|
||||
{
|
||||
j = i;
|
||||
}
|
||||
if ( (c == '/') || (c == '\\') )
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i != -1)
|
||||
{
|
||||
return 'xml/' + filename.substring(i+1,j) + '.xml'
|
||||
}
|
||||
else
|
||||
{
|
||||
return 'xml/report.xml'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function CreateDocument()
|
||||
{
|
||||
var doc = null;
|
||||
|
||||
if (platformMoz)
|
||||
{
|
||||
doc = document.implementation.createDocument('', '', null);
|
||||
}
|
||||
else if (platformIE6)
|
||||
{
|
||||
doc = new ActiveXObject('Msxml2.FreeThreadedDOMDocument.' + msxmlVersion);
|
||||
}
|
||||
return doc;
|
||||
}
|
||||
|
||||
function Transform()
|
||||
{
|
||||
|
||||
|
||||
docXML = CreateDocument();
|
||||
docXSL = CreateDocument();
|
||||
if (platformMoz)
|
||||
{
|
||||
docXML.addEventListener('load', DoLoadXSL, false);
|
||||
docXML.load(urlXML);
|
||||
}
|
||||
else if (platformIE6)
|
||||
{
|
||||
docXML.async = false;
|
||||
docXML.load(urlXML);
|
||||
docXSL.async = false;
|
||||
docXSL.load(urlXSL);
|
||||
DoTransform();
|
||||
}
|
||||
}
|
||||
|
||||
function DoLoadXSL()
|
||||
{
|
||||
if (platformMoz)
|
||||
{
|
||||
docXSL.addEventListener('load', DoTransform, false);
|
||||
docXSL.load(urlXSL);
|
||||
}
|
||||
}
|
||||
|
||||
function DoTransform()
|
||||
{
|
||||
if (platformMoz)
|
||||
{
|
||||
processor = new XSLTProcessor();
|
||||
processor.importStylesheet(docXSL);
|
||||
|
||||
processor.setParameter(null, "DefaultTreeMode", DefaultTreeMode);
|
||||
|
||||
var fragment = processor.transformToFragment(docXML, document);
|
||||
while (target.hasChildNodes())
|
||||
{
|
||||
target.removeChild(target.childNodes[0]);
|
||||
}
|
||||
target.appendChild(fragment);
|
||||
}
|
||||
else if (platformIE6)
|
||||
{
|
||||
cache.stylesheet = docXSL;
|
||||
|
||||
processor = cache.createProcessor();
|
||||
processor.input = docXML;
|
||||
processor.addParameter("DefaultTreeMode", DefaultTreeMode);
|
||||
|
||||
processor.transform();
|
||||
target.innerHTML = processor.output;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//----------------------------------------------------
|
||||
function cancelBuble(event)
|
||||
{
|
||||
if (window.event)
|
||||
{
|
||||
window.event.cancelBubble = true;
|
||||
window.event.returnValue = false;
|
||||
}
|
||||
else if (event && event.preventDefault && event.stopPropagation)
|
||||
{
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------
|
||||
function clickOnEntity(event, entity)
|
||||
{
|
||||
// cancel buble
|
||||
cancelBuble(event)
|
||||
|
||||
if(entity.getAttribute("open") == "false")
|
||||
{
|
||||
expand(entity)
|
||||
}
|
||||
else
|
||||
{
|
||||
collapse(entity)
|
||||
}
|
||||
|
||||
// cancel buble
|
||||
cancelBuble(event)
|
||||
|
||||
}
|
||||
|
||||
//----------------------------------------------------
|
||||
function expand(entity)
|
||||
{
|
||||
// Variable declarations
|
||||
var oImage
|
||||
var i
|
||||
|
||||
|
||||
// Get class name
|
||||
if (platformMoz)
|
||||
cl = entity.getAttribute("CLASS");
|
||||
else if (platformIE6)
|
||||
cl = entity.className
|
||||
|
||||
// Get and change image
|
||||
if (cl == "item")
|
||||
{
|
||||
oImage = entity.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0]
|
||||
oImage.src = entity.getAttribute("openimage")
|
||||
}
|
||||
|
||||
for(i=0; i < entity.childNodes.length; i++)
|
||||
{
|
||||
node = entity.childNodes[i]
|
||||
if((node.tagName == "DIV") || (node.tagName == "div"))
|
||||
{
|
||||
// Display child
|
||||
node.style.display = "block"
|
||||
}
|
||||
}
|
||||
entity.setAttribute("open","true")
|
||||
}
|
||||
|
||||
//----------------------------------------------------
|
||||
function collapse(entity)
|
||||
{
|
||||
|
||||
// Variable declarations
|
||||
var oImage
|
||||
var i
|
||||
|
||||
// Get class name
|
||||
if (platformMoz)
|
||||
cl = entity.getAttribute("CLASS");
|
||||
else if (platformIE6)
|
||||
cl = entity.className
|
||||
|
||||
// Get and change image
|
||||
if (cl == "item")
|
||||
{
|
||||
oImage = entity.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0]
|
||||
oImage.src = entity.getAttribute("closeimage")
|
||||
}
|
||||
for(i=0; i < entity.childNodes.length; i++)
|
||||
{
|
||||
node = entity.childNodes[i]
|
||||
if((node.tagName == "DIV") || (node.tagName == "div"))
|
||||
{
|
||||
// Display child
|
||||
node.style.display = "none"
|
||||
}
|
||||
}
|
||||
|
||||
entity.setAttribute("open","false")
|
||||
}
|
||||
|
||||
//----------------------------------------------------
|
||||
function expandAllFromString(entityString)
|
||||
{
|
||||
entity = document.getElementById(entityString);
|
||||
expandAll(entity, 1)
|
||||
}
|
||||
|
||||
function expandAll(entity, isRoot)
|
||||
{
|
||||
var i
|
||||
// expand current node
|
||||
expand(entity)
|
||||
|
||||
// expand children
|
||||
for(i=0; i < entity.childNodes.length; i++)
|
||||
{
|
||||
if ((entity.childNodes[i].tagName == "DIV") || (entity.childNodes[i].tagName == "div"))
|
||||
{
|
||||
expandAll(entity.childNodes[i], 0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------
|
||||
|
||||
function collapseAllFromString(entityString)
|
||||
{
|
||||
entity = document.getElementById(entityString);
|
||||
collapseAll(entity, 1)
|
||||
}
|
||||
|
||||
function collapseAll(entity, isRoot)
|
||||
{
|
||||
|
||||
var i
|
||||
// collapse current node
|
||||
idStr = entity.id
|
||||
if ( isRoot == 0 )
|
||||
{
|
||||
collapse(entity)
|
||||
}
|
||||
// expand children
|
||||
for(i=0; i < entity.childNodes.length; i++)
|
||||
{
|
||||
if((entity.childNodes[i].tagName == "DIV") || (entity.childNodes[i].tagName == "div"))
|
||||
{
|
||||
collapseAll(entity.childNodes[i], 0)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,249 +0,0 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:output method="html" indent="yes" encoding="iso-8859-1"/>
|
||||
|
||||
<!-- To display treeview as expanded or minimized use external variable 'DefaultTreeMode' = 'expand' or 'minize'-->
|
||||
<xsl:param name="DefaultTreeMode" select="'expand'"/>
|
||||
|
||||
<!-- _____ ITEM ________________________________________-->
|
||||
<xsl:template match="item">
|
||||
|
||||
<!-- REPORT ITEM (ROOT ITEM) -->
|
||||
<xsl:if test="count(ancestor::item)=0">
|
||||
<h1>RT-LAB Report</h1>
|
||||
<xsl:apply-templates select="item"/>
|
||||
</xsl:if>
|
||||
|
||||
<!-- SECTION ITEM (SECOND LEVEL ITEM) -->
|
||||
<xsl:if test="(count(ancestor::item)=1)">
|
||||
|
||||
<h2>
|
||||
<xsl:value-of select="concat(translate(substring(@name,1,1),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ'),substring(@name,2))"/>
|
||||
</h2>
|
||||
<hr class="hidescreen" style="border:1px" width="100%"/>
|
||||
|
||||
<table class="hideprint" border="0" cellspacing="0" cellpadding="0">
|
||||
<col width="0%"/>
|
||||
<col width="0%"/>
|
||||
<col width="100%"/>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="bOut" onmouseover="swapClass(this, 'bOver')" onmouseout="swapClass(this, 'bOut')">
|
||||
<xsl:attribute name="onclick">
|
||||
expandAllFromString('<xsl:value-of select="@name"/>')
|
||||
</xsl:attribute>
|
||||
Expand
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="bOut" onmouseover="swapClass(this, 'bOver')" onmouseout="swapClass(this, 'bOut')">
|
||||
<xsl:attribute name="onclick">
|
||||
collapseAllFromString('<xsl:value-of select="@name"/>')
|
||||
</xsl:attribute>
|
||||
Minimize
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="bOut"><br/></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div style="padding-top: 8px;">
|
||||
<xsl:attribute name="id"><xsl:value-of select="@name"/></xsl:attribute>
|
||||
<xsl:apply-templates select="property"/>
|
||||
<xsl:apply-templates select="textlog"/>
|
||||
<xsl:apply-templates select="item"/>
|
||||
</div>
|
||||
</xsl:if>
|
||||
|
||||
|
||||
<!-- ITEM -->
|
||||
<xsl:if test="count(ancestor::item)>1">
|
||||
<DIV CLASS="item" onclick="clickOnEntity(event, this);" onselectstart="return false" ondragstart="return false">
|
||||
|
||||
<xsl:attribute name="id"><xsl:value-of select="@name"/></xsl:attribute>
|
||||
|
||||
<!-- Add open attribute to DIV -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="$DefaultTreeMode='minimize'">
|
||||
<xsl:attribute name="open">false</xsl:attribute>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:attribute name="open">true</xsl:attribute>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
<!-- Add style attribute to DIV -->
|
||||
<xsl:attribute name="STYLE">
|
||||
padding-left: 20px;
|
||||
cursor: pointer;
|
||||
<xsl:if test="(count(ancestor::item)>2) and ($DefaultTreeMode='minimize')">
|
||||
display: none;
|
||||
</xsl:if>
|
||||
</xsl:attribute>
|
||||
|
||||
<!-- Add openImage attribute to DIV -->
|
||||
<xsl:attribute name="openImage">
|
||||
images/openitem.gif
|
||||
</xsl:attribute>
|
||||
|
||||
<!-- Add closeImage attribute to DIV -->
|
||||
<xsl:attribute name="closeImage">
|
||||
images/closeitem.gif
|
||||
</xsl:attribute>
|
||||
|
||||
<!-- Add table -->
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<!-- Add row to the table -->
|
||||
<tr>
|
||||
|
||||
<!-- Add cell element to the row -->
|
||||
<td valign="middle">
|
||||
|
||||
<!-- Add image to the cell -->
|
||||
|
||||
<xsl:choose>
|
||||
<xsl:when test="$DefaultTreeMode='minimize'">
|
||||
<img border="0" id="image" SRC="images/closeitem.gif">
|
||||
</img>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<img border="0" id="image" SRC="images/openitem.gif">
|
||||
</img>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</td>
|
||||
|
||||
<!-- Add cell element to the row -->
|
||||
<td valign="middle"
|
||||
nowrap="true"
|
||||
class="notsel"
|
||||
onmouseover="swapClass(this, 'sel')"
|
||||
onmouseout="swapClass(this, 'notsel')">
|
||||
<!-- Add text to the cell -->
|
||||
<xsl:value-of select="@name"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Display sub element -->
|
||||
<xsl:apply-templates select="property"/>
|
||||
<xsl:apply-templates select="textlog"/>
|
||||
<xsl:apply-templates select="item"/>
|
||||
|
||||
</DIV>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<!-- PROPERTY -->
|
||||
<xsl:template match="property">
|
||||
<DIV CLASS="property" onclick="cancelBuble(event);" onselectstart="return false" ondragstart="return false">
|
||||
|
||||
<!-- Add open attribute to DIV -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="$DefaultTreeMode='minimize'">
|
||||
<xsl:attribute name="open">false</xsl:attribute>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:attribute name="open">true</xsl:attribute>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
<!-- Add style attribute to DIV -->
|
||||
<xsl:attribute name="STYLE">
|
||||
padding-left: 20px;
|
||||
cursor: pointer;
|
||||
<xsl:if test="(count(ancestor::item)>2) and ($DefaultTreeMode='minimize')">
|
||||
display: none;
|
||||
</xsl:if>
|
||||
</xsl:attribute>
|
||||
|
||||
<!-- Add table -->
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<!-- Add row to the table -->
|
||||
<tr>
|
||||
|
||||
<!-- Add cell element to the row -->
|
||||
<td valign="middle">
|
||||
|
||||
<!-- Add image to the cell -->
|
||||
<img border="0" id="image" SRC="images/property.gif">
|
||||
</img>
|
||||
</td>
|
||||
|
||||
<!-- Add cell element to the row -->
|
||||
<td valign="middle"
|
||||
class="notsel"
|
||||
onmouseover="swapClass(this, 'sel')"
|
||||
onmouseout="swapClass(this, 'notsel')"
|
||||
nowrap="true">
|
||||
|
||||
<!-- Add text to the cell -->
|
||||
<xsl:if test="not(translate(@name,' ','')='')">
|
||||
<xsl:value-of select="@name"/>=
|
||||
</xsl:if>
|
||||
<xsl:value-of select="value"/>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</DIV>
|
||||
</xsl:template>
|
||||
|
||||
<!-- TEXTLOG -->
|
||||
<xsl:template match="textlog">
|
||||
<DIV CLASS="textlog" onclick="cancelBuble(event);" onselectstart="return false" ondragstart="return false">
|
||||
<!-- Add open attribute to DIV -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="$DefaultTreeMode='minimize'">
|
||||
<xsl:attribute name="open">false</xsl:attribute>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:attribute name="open">true</xsl:attribute>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
|
||||
<!-- Add style attribute to DIV -->
|
||||
<xsl:attribute name="STYLE">
|
||||
padding-left: 20px;
|
||||
cursor: pointer;
|
||||
<xsl:if test="(count(ancestor::item)>2) and ($DefaultTreeMode='minimize')">
|
||||
display: none;
|
||||
</xsl:if>
|
||||
</xsl:attribute>
|
||||
|
||||
<!-- Add section -->
|
||||
|
||||
<table>
|
||||
<div style="padding-top: 4px; padding-right: 10px;">
|
||||
<!-- Display log file -->
|
||||
<xsl:call-template name="replaceBackSlashN">
|
||||
<xsl:with-param name="string" select="."/>
|
||||
</xsl:call-template>
|
||||
</div>
|
||||
</table>
|
||||
</DIV>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="replaceBackSlashN">
|
||||
<xsl:param name="string"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($string,' ')">
|
||||
<xsl:value-of select="substring-before($string,' ')"/>
|
||||
<br/>
|
||||
<xsl:call-template name="replaceBackSlashN">
|
||||
<xsl:with-param name="string" select="substring-after($string,' ')"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$string"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<item name="report">
|
||||
<item name="general">
|
||||
<property name="User">
|
||||
<value>
|
||||
UserName
|
||||
</value>
|
||||
</property>
|
||||
<property name="Command station">
|
||||
<value>
|
||||
ComputerName
|
||||
</value>
|
||||
</property>
|
||||
<property name="Date">
|
||||
<value>
|
||||
CurrentDate
|
||||
</value>
|
||||
</property>
|
||||
</item>
|
||||
</item>
|
File diff suppressed because it is too large
Load diff
|
@ -1,117 +0,0 @@
|
|||
[EnvVars]
|
||||
ABORT_COMPILE_WHEN_NO_BITSTREAM=0
|
||||
ACTION_AFTER_N_OVERRUNS=10
|
||||
ACTION_ON_OVERRUNS=0
|
||||
AcquisitionMemory=0,2500,24,100
|
||||
ActiveGroups=7/0/24/25/26/27/28/29/
|
||||
CACHEABLE_DMA_MEMORY_ACCESS=ON
|
||||
COMM_RT=UDP/IP
|
||||
ClockPeriodMode=Free-Clock
|
||||
ClockPeriodTime=10
|
||||
DEBUG=0
|
||||
DETECT_OVERRUNS=ON
|
||||
ENABLE_WATCHDOG=ON
|
||||
EXT_CC_OPTS=
|
||||
EXT_LD_OPTS=
|
||||
EXT_LIB=
|
||||
EXT_LIBPATH=
|
||||
MODEL_PAUSE_TIME=0.000000
|
||||
MODEL_STOP_TIME=0.000000
|
||||
MONITORING=ON
|
||||
MONITORING_BLOCK=OFF
|
||||
MONITORING_DISPLAY=ALL
|
||||
MSG_PRECISION_FACTOR=0
|
||||
MaxDynamicSignals=2/0/100/24/44/
|
||||
NB_STEP_WITHOUT_OVERRUNS=10
|
||||
OPAL_DEBUG=OFF
|
||||
OP_MATLABR2011B=1
|
||||
OS_COMPILE_RELEASE=2.6.29.6-opalrt-5
|
||||
PRINT_LOG_LEVEL=DEBUG_ALL
|
||||
RESET_IO_MISSING=ON
|
||||
SYSNAME=linux
|
||||
USER_INCS=
|
||||
USER_SRCS=
|
||||
WATCHDOG_TIMEOUT=5000
|
||||
[EnvVars_REDHAWK_DYN_1]
|
||||
INTERNAL_IGN_SOURCE_FILE=sfun_gen_async_ctrl.c sfun_recv_async.c sfun_send_async.c
|
||||
INTERNAL_LIBRARY2=-lOpalAsyncApiR2011b
|
||||
INTERNAL_LIBRARY3=-lOpalAsyncApiCore
|
||||
[ExtraGetFilesComp_1_RT_LAB]
|
||||
AsyncIP=Binary|Async_Proc
|
||||
[ExtraPutFilesComp]
|
||||
Makefile.mk=Ascii
|
||||
include\config.h=Ascii
|
||||
include\msg.h=Ascii
|
||||
include\msg_format.h=Ascii
|
||||
include\socket.h=Ascii
|
||||
include\utils.h=Ascii
|
||||
src\compat.c=Ascii
|
||||
src\main.c=Ascii
|
||||
src\msg.c=Ascii
|
||||
src\socket.c=Ascii
|
||||
src\utils.c=Ascii
|
||||
[ExtraPutFilesComp_1_RT_LAB]
|
||||
C:\OPAL-RT\RT-LAB\v11.0.5.499\common\lib\redhawk\libOpalAsyncApiCore.a=Binary|Other
|
||||
[ExtraPutFilesLoad_1_RT_LAB]
|
||||
.\send_receive_sm_model\OpREDHAWKtarget\AsyncIP=Binary|Async_Proc
|
||||
[General]
|
||||
ATT_CHECKSUM1=2279805938
|
||||
ATT_CHECKSUM2=383409599
|
||||
ATT_CHECKSUM3=223183736
|
||||
ATT_CHECKSUM4=2538634328
|
||||
ATT_CREATED_BY=jwu
|
||||
ATT_CREATED_ON=Thu Apr 15 08:21:54 1999
|
||||
ATT_ENABLE_PTA=OFF
|
||||
ATT_HANDLE_CONSOLE=ON
|
||||
ATT_LAST_SAVED_BY=opal-user
|
||||
ATT_LAST_SAVED_ON=Thu Apr 27 18:28:14 2017
|
||||
ATT_REFERENCE_MDL_PATHS=
|
||||
ATT_REVISION=1.452
|
||||
AutoRetrieveFiles=ON
|
||||
AutoRetrieveRtlab=ON
|
||||
CompilerVersion=AUTOMATIC
|
||||
DESCRIPTION=
|
||||
DinamoFlag=OFF
|
||||
FILENAME=C:\Users\opal-user\OPAL-RT\msv-ufa\test1\models\send_receive\send_receive.mdl
|
||||
FORCE_RECOMPILE=0
|
||||
IMPORTED_GLOBAL_VARIABLES=1
|
||||
LastCompileRtlabVersion=v11.0.5.499
|
||||
LastMatlabUsed=21
|
||||
LastMatlabUsedName=v7.13
|
||||
MATLAB_USED_IN_MODEL=21
|
||||
Name=send_receive
|
||||
PRINT_CYCLE=OFF
|
||||
PostBuildCmd=
|
||||
PreBuildCmd=
|
||||
QNX_LAST_COMPILE_VERSION=
|
||||
RH64_LAST_COMPILE_VERSION=
|
||||
RH_LAST_COMPILE_VERSION=2.6.29.6-opalrt-5
|
||||
ReportFileId=
|
||||
RetrieveBuildTree=ON
|
||||
RetrieveRootDir=
|
||||
SimulationMode=2
|
||||
TLC=Automatic
|
||||
TMF=Automatic
|
||||
TRANSFERFILE_AT_LOAD=ON
|
||||
TargetCompileCmd=/usr/bin/make -f /usr/opalrt/common/bin/opalmodelmk
|
||||
TargetPlatform=REDHAWK
|
||||
TimeFactor=1.000000000000000
|
||||
TimeStep=0.000050000000000
|
||||
sc_consoleTimeStep=-1.000000000000000
|
||||
sm_modelTimeStep=0.000049999998737
|
||||
sm_send_receiveTimeStep=0.000049999998737
|
||||
[General_1]
|
||||
TargetPreCompileCmd=make -f /usr/opalrt/common/bin/opalmodelmk
|
||||
[NodeMapping]
|
||||
sm_model=OPAL_Target_1
|
||||
sm_model_CORE_ASSIGNATION=1
|
||||
sm_model_CPU=-1
|
||||
sm_model_DEBUG=OFF
|
||||
sm_model_XHP_ENABLE=FALSE
|
||||
sm_send_receive=ACS_OPAL_RT
|
||||
sm_send_receive_CORE_ASSIGNATION=1
|
||||
sm_send_receive_CPU=-1
|
||||
sm_send_receive_DEBUG=OFF
|
||||
sm_send_receive_XHP_ENABLE=FALSE
|
||||
[UserEnvVars]
|
||||
PROTOCOL=GTNET_SKT
|
File diff suppressed because it is too large
Load diff
|
@ -1,57 +0,0 @@
|
|||
[General]
|
||||
ATT_VERSION=6
|
||||
FileVersion=6
|
||||
numClientsProbe=0
|
||||
[Group_1]
|
||||
condition=0
|
||||
decimationFactor=1
|
||||
duration=0.010000
|
||||
dynSignalsList=0
|
||||
fileLimit=1000000
|
||||
fixSignalsList=13|1|2|3|4|5|6|7|8|9|10|11|12|13
|
||||
level=0.000000
|
||||
maxDynSignals=100
|
||||
newMemSize=2500
|
||||
nodeId=0
|
||||
numValues=200
|
||||
offset=0
|
||||
rearmDelay=0.000000
|
||||
repetitive=1
|
||||
signalName=
|
||||
signalNameId=69301800
|
||||
trigSigNameId=339755367
|
||||
trigSignalName=
|
||||
trigType=0
|
||||
triggerButton=2
|
||||
triggerEnabled=0
|
||||
triggerState=0
|
||||
valueType=0
|
||||
writeEnabled=0
|
||||
writeFileName=
|
||||
writeFileVarName=
|
||||
[Group_25]
|
||||
condition=0
|
||||
decimationFactor=1
|
||||
duration=0.005000
|
||||
dynSignalsList=0
|
||||
fileLimit=0
|
||||
level=0.000000
|
||||
maxDynSignals=44
|
||||
newMemSize=100
|
||||
nodeId=158494572
|
||||
numValues=100
|
||||
offset=0
|
||||
rearmDelay=0.000000
|
||||
repetitive=1
|
||||
signalName=
|
||||
signalNameId=1026653233
|
||||
trigSigNameId=1866690149
|
||||
trigSignalName=
|
||||
trigType=0
|
||||
triggerButton=2
|
||||
triggerEnabled=0
|
||||
triggerState=0
|
||||
valueType=0
|
||||
writeEnabled=0
|
||||
writeFileName=
|
||||
writeFileVarName=
|
File diff suppressed because it is too large
Load diff
|
@ -1,24 +0,0 @@
|
|||
sm_model/data ready 2 kHz/port1
|
||||
16
|
||||
F64
|
||||
1
|
||||
sm_model/Pulse Generator1/port1
|
||||
24
|
||||
F64
|
||||
1
|
||||
sm_model/send message 1/S-Function2/port1
|
||||
32
|
||||
F64
|
||||
1
|
||||
sm_model/receive message 1/S-Function1/port1
|
||||
40
|
||||
F64
|
||||
1
|
||||
sm_model/receive message 1/S-Function1/port2
|
||||
48
|
||||
F64
|
||||
1
|
||||
sm_model/receive message 1/S-Function1/port3
|
||||
56
|
||||
F64
|
||||
5
|
|
@ -1,40 +0,0 @@
|
|||
sm_model/data ready 2 kHz/Amplitude
|
||||
16
|
||||
F64
|
||||
1
|
||||
sm_model/data ready 2 kHz/Period
|
||||
24
|
||||
F64
|
||||
1
|
||||
sm_model/data ready 2 kHz/PulseWidth
|
||||
32
|
||||
F64
|
||||
1
|
||||
sm_model/data ready 2 kHz/PhaseDelay
|
||||
40
|
||||
F64
|
||||
1
|
||||
sm_model/Constant/Value
|
||||
48
|
||||
F64
|
||||
4
|
||||
sm_model/Pulse Generator1/Amplitude
|
||||
80
|
||||
F64
|
||||
1
|
||||
sm_model/Pulse Generator1/Period
|
||||
88
|
||||
F64
|
||||
1
|
||||
sm_model/Pulse Generator1/PulseWidth
|
||||
96
|
||||
F64
|
||||
1
|
||||
sm_model/Pulse Generator1/PhaseDelay
|
||||
104
|
||||
F64
|
||||
1
|
||||
sm_model/timeout/Value
|
||||
664
|
||||
F64
|
||||
1
|
|
@ -1,138 +0,0 @@
|
|||
/**
|
||||
* This function is generated by RT-LAB during model compilation (at 'generation' step).
|
||||
* This function copies data from src to dst, ignoring pointers.
|
||||
* Note that only PWork are supposed to be pointers within a DWork structure
|
||||
* and that sub-structures are copied in one operation since they do not contain pointers.
|
||||
*/
|
||||
int OpalSnapshot_Copy_DWork(void * src, void * dst) {
|
||||
D_Work * pSrc = (D_Work*)src;
|
||||
D_Work * pDst = (D_Work*)dst;
|
||||
int size = 0, eltSize = 0;
|
||||
|
||||
eltSize = sizeof(pSrc->SFunction_PreviousInput);
|
||||
memcpy(&pDst->SFunction_PreviousInput, &pSrc->SFunction_PreviousInput, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->clockTickCounter);
|
||||
memcpy(&pDst->clockTickCounter, &pSrc->clockTickCounter, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->clockTickCounter_h);
|
||||
memcpy(&pDst->clockTickCounter_h, &pSrc->clockTickCounter_h, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->SFunction_IWORK);
|
||||
memcpy(&pDst->SFunction_IWORK, &pSrc->SFunction_IWORK, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is generated by RT-LAB during model compilation (at 'generation' step).
|
||||
* This function copies data from a raw buffer (src)
|
||||
* to an RT_MODEL structure(dst), ignoring pointers.
|
||||
* Note that sub-structures are copied in one operation since they cannot contain pointers.
|
||||
*/
|
||||
int OpalSnapshot_Copy_TimingData(void * src, void * dst) {
|
||||
RT_MODEL tmpBuffer;
|
||||
RT_MODEL * pSrc = &tmpBuffer;
|
||||
RT_MODEL * pDst = (RT_MODEL *)dst;
|
||||
int TimingSize = sizeof(tmpBuffer.Timing);
|
||||
int size = 0, eltSize = 0;
|
||||
|
||||
memcpy(&tmpBuffer.Timing, src, TimingSize);
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.clockTick0);
|
||||
memcpy(&pDst->Timing.clockTick0, &pSrc->Timing.clockTick0, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.clockTickH0);
|
||||
memcpy(&pDst->Timing.clockTickH0, &pSrc->Timing.clockTickH0, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.tFinal);
|
||||
memcpy(&pDst->Timing.tFinal, &pSrc->Timing.tFinal, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.offsetTimesArray);
|
||||
memcpy(&pDst->Timing.offsetTimesArray, &pSrc->Timing.offsetTimesArray, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.perTaskSampleHitsArray);
|
||||
memcpy(&pDst->Timing.perTaskSampleHitsArray, &pSrc->Timing.perTaskSampleHitsArray, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.sampleHitArray);
|
||||
memcpy(&pDst->Timing.sampleHitArray, &pSrc->Timing.sampleHitArray, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.sampleTimesArray);
|
||||
memcpy(&pDst->Timing.sampleTimesArray, &pSrc->Timing.sampleTimesArray, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.sampleTimeTaskIDArray);
|
||||
memcpy(&pDst->Timing.sampleTimeTaskIDArray, &pSrc->Timing.sampleTimeTaskIDArray, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.simTimeStep);
|
||||
memcpy(&pDst->Timing.simTimeStep, &pSrc->Timing.simTimeStep, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.tStart);
|
||||
memcpy(&pDst->Timing.tStart, &pSrc->Timing.tStart, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.stepSize);
|
||||
memcpy(&pDst->Timing.stepSize, &pSrc->Timing.stepSize, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.stepSize0);
|
||||
memcpy(&pDst->Timing.stepSize0, &pSrc->Timing.stepSize0, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.stopRequestedFlag);
|
||||
memcpy(&pDst->Timing.stopRequestedFlag, &pSrc->Timing.stopRequestedFlag, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.tArray);
|
||||
memcpy(&pDst->Timing.tArray, &pSrc->Timing.tArray, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->Timing.timeOfLastOutput);
|
||||
memcpy(&pDst->Timing.timeOfLastOutput, &pSrc->Timing.timeOfLastOutput, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is generated by RT-LAB during model compilation (at 'generation' step).
|
||||
* This function copies data from a raw buffer (src)
|
||||
* to an RT_MODEL structure(dst), ignoring pointers.
|
||||
* Note that ingData must not be copied since it contains pointers.
|
||||
*/
|
||||
int OpalSnapshot_Copy_ModelData(void * src, void * dst) {
|
||||
RT_MODEL tmpBuffer;
|
||||
RT_MODEL * pSrc = &tmpBuffer;
|
||||
RT_MODEL * pDst = (RT_MODEL *)dst;
|
||||
int ModelDataSize = sizeof(tmpBuffer.ModelData);
|
||||
int size = 0, eltSize = 0;
|
||||
|
||||
memcpy(&tmpBuffer.ModelData, src, ModelDataSize);
|
||||
|
||||
eltSize = sizeof(pSrc->ModelData.blkStateChange);
|
||||
memcpy(&pDst->ModelData.blkStateChange, &pSrc->ModelData.blkStateChange, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->ModelData.derivCacheNeedsReset);
|
||||
memcpy(&pDst->ModelData.derivCacheNeedsReset, &pSrc->ModelData.derivCacheNeedsReset, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
eltSize = sizeof(pSrc->ModelData.zCCacheNeedsReset);
|
||||
memcpy(&pDst->ModelData.zCCacheNeedsReset, &pSrc->ModelData.zCCacheNeedsReset, eltSize);
|
||||
size += eltSize;
|
||||
|
||||
return size;
|
||||
}
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -1,8 +0,0 @@
|
|||
MODEL=send_receive_1_sm_model
|
||||
NUMST=1
|
||||
NCSTATES=0
|
||||
HAVESTDIO
|
||||
RT
|
||||
USE_RTMODEL
|
||||
INTEGER_CODE=0
|
||||
MT=0
|
|
@ -1 +0,0 @@
|
|||
send_receive_1_sm_model.c rt_matrx.c rt_printf.c rt_logging.c
|
Binary file not shown.
|
@ -1,140 +0,0 @@
|
|||
/*
|
||||
* rtGetInf.c
|
||||
*
|
||||
* Code generation for model "send_receive_1_sm_model.mdl".
|
||||
*
|
||||
* Model version : 1.453
|
||||
* Simulink Coder version : 8.1 (R2011b) 08-Jul-2011
|
||||
* C source code generated on : Thu Apr 27 18:29:02 2017
|
||||
*
|
||||
* Target selection: rtlab_rtmodel.tlc
|
||||
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||
* Embedded hardware selection: 32-bit Generic
|
||||
* Code generation objectives: Unspecified
|
||||
* Validation result: Not run
|
||||
*/
|
||||
/*
|
||||
* Abstract:
|
||||
* Function to intialize non-finite, Inf
|
||||
*/
|
||||
|
||||
#include "rtGetInf.h"
|
||||
#define NumBitsPerChar 8U
|
||||
|
||||
/*
|
||||
* Initialize rtInf needed by the generated code.
|
||||
* Inf is initialized as non-signaling. Assumes IEEE.
|
||||
*/
|
||||
real_T rtGetInf(void)
|
||||
{
|
||||
size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
|
||||
real_T inf = 0.0;
|
||||
if (bitsPerReal == 32U) {
|
||||
inf = rtGetInfF();
|
||||
} else {
|
||||
uint16_T one = 1U;
|
||||
enum {
|
||||
LittleEndian,
|
||||
BigEndian
|
||||
} machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
|
||||
switch (machByteOrder) {
|
||||
case LittleEndian:
|
||||
{
|
||||
union {
|
||||
LittleEndianIEEEDouble bitVal;
|
||||
real_T fltVal;
|
||||
} tmpVal;
|
||||
|
||||
tmpVal.bitVal.words.wordH = 0x7FF00000U;
|
||||
tmpVal.bitVal.words.wordL = 0x00000000U;
|
||||
inf = tmpVal.fltVal;
|
||||
break;
|
||||
}
|
||||
|
||||
case BigEndian:
|
||||
{
|
||||
union {
|
||||
BigEndianIEEEDouble bitVal;
|
||||
real_T fltVal;
|
||||
} tmpVal;
|
||||
|
||||
tmpVal.bitVal.words.wordH = 0x7FF00000U;
|
||||
tmpVal.bitVal.words.wordL = 0x00000000U;
|
||||
inf = tmpVal.fltVal;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return inf;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize rtInfF needed by the generated code.
|
||||
* Inf is initialized as non-signaling. Assumes IEEE.
|
||||
*/
|
||||
real32_T rtGetInfF(void)
|
||||
{
|
||||
IEEESingle infF;
|
||||
infF.wordL.wordLuint = 0x7F800000U;
|
||||
return infF.wordL.wordLreal;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize rtMinusInf needed by the generated code.
|
||||
* Inf is initialized as non-signaling. Assumes IEEE.
|
||||
*/
|
||||
real_T rtGetMinusInf(void)
|
||||
{
|
||||
size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
|
||||
real_T minf = 0.0;
|
||||
if (bitsPerReal == 32U) {
|
||||
minf = rtGetMinusInfF();
|
||||
} else {
|
||||
uint16_T one = 1U;
|
||||
enum {
|
||||
LittleEndian,
|
||||
BigEndian
|
||||
} machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
|
||||
switch (machByteOrder) {
|
||||
case LittleEndian:
|
||||
{
|
||||
union {
|
||||
LittleEndianIEEEDouble bitVal;
|
||||
real_T fltVal;
|
||||
} tmpVal;
|
||||
|
||||
tmpVal.bitVal.words.wordH = 0xFFF00000U;
|
||||
tmpVal.bitVal.words.wordL = 0x00000000U;
|
||||
minf = tmpVal.fltVal;
|
||||
break;
|
||||
}
|
||||
|
||||
case BigEndian:
|
||||
{
|
||||
union {
|
||||
BigEndianIEEEDouble bitVal;
|
||||
real_T fltVal;
|
||||
} tmpVal;
|
||||
|
||||
tmpVal.bitVal.words.wordH = 0xFFF00000U;
|
||||
tmpVal.bitVal.words.wordL = 0x00000000U;
|
||||
minf = tmpVal.fltVal;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return minf;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize rtMinusInfF needed by the generated code.
|
||||
* Inf is initialized as non-signaling. Assumes IEEE.
|
||||
*/
|
||||
real32_T rtGetMinusInfF(void)
|
||||
{
|
||||
IEEESingle minfF;
|
||||
minfF.wordL.wordLuint = 0xFF800000U;
|
||||
return minfF.wordL.wordLreal;
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
/*
|
||||
* rtGetInf.h
|
||||
*
|
||||
* Code generation for model "send_receive_1_sm_model.mdl".
|
||||
*
|
||||
* Model version : 1.453
|
||||
* Simulink Coder version : 8.1 (R2011b) 08-Jul-2011
|
||||
* C source code generated on : Thu Apr 27 18:29:02 2017
|
||||
*
|
||||
* Target selection: rtlab_rtmodel.tlc
|
||||
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||
* Embedded hardware selection: 32-bit Generic
|
||||
* Code generation objectives: Unspecified
|
||||
* Validation result: Not run
|
||||
*/
|
||||
|
||||
#ifndef RTW_HEADER_rtGetInf_h_
|
||||
#define RTW_HEADER_rtGetInf_h_
|
||||
#include <stddef.h>
|
||||
#include "rtwtypes.h"
|
||||
#include "rt_nonfinite.h"
|
||||
|
||||
extern real_T rtGetInf(void);
|
||||
extern real32_T rtGetInfF(void);
|
||||
extern real_T rtGetMinusInf(void);
|
||||
extern real32_T rtGetMinusInfF(void);
|
||||
|
||||
#endif /* RTW_HEADER_rtGetInf_h_ */
|
|
@ -1,100 +0,0 @@
|
|||
/*
|
||||
* rtGetNaN.c
|
||||
*
|
||||
* Code generation for model "send_receive_1_sm_model.mdl".
|
||||
*
|
||||
* Model version : 1.453
|
||||
* Simulink Coder version : 8.1 (R2011b) 08-Jul-2011
|
||||
* C source code generated on : Thu Apr 27 18:29:02 2017
|
||||
*
|
||||
* Target selection: rtlab_rtmodel.tlc
|
||||
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||
* Embedded hardware selection: 32-bit Generic
|
||||
* Code generation objectives: Unspecified
|
||||
* Validation result: Not run
|
||||
*/
|
||||
/*
|
||||
* Abstract:
|
||||
* Function to intialize non-finite, NaN
|
||||
*/
|
||||
|
||||
#include "rtGetNaN.h"
|
||||
#define NumBitsPerChar 8U
|
||||
|
||||
/*
|
||||
* Initialize rtNaN needed by the generated code.
|
||||
* NaN is initialized as non-signaling. Assumes IEEE.
|
||||
*/
|
||||
real_T rtGetNaN(void)
|
||||
{
|
||||
size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
|
||||
real_T nan = 0.0;
|
||||
if (bitsPerReal == 32U) {
|
||||
nan = rtGetNaNF();
|
||||
} else {
|
||||
uint16_T one = 1U;
|
||||
enum {
|
||||
LittleEndian,
|
||||
BigEndian
|
||||
} machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
|
||||
switch (machByteOrder) {
|
||||
case LittleEndian:
|
||||
{
|
||||
union {
|
||||
LittleEndianIEEEDouble bitVal;
|
||||
real_T fltVal;
|
||||
} tmpVal;
|
||||
|
||||
tmpVal.bitVal.words.wordH = 0xFFF80000U;
|
||||
tmpVal.bitVal.words.wordL = 0x00000000U;
|
||||
nan = tmpVal.fltVal;
|
||||
break;
|
||||
}
|
||||
|
||||
case BigEndian:
|
||||
{
|
||||
union {
|
||||
BigEndianIEEEDouble bitVal;
|
||||
real_T fltVal;
|
||||
} tmpVal;
|
||||
|
||||
tmpVal.bitVal.words.wordH = 0x7FFFFFFFU;
|
||||
tmpVal.bitVal.words.wordL = 0xFFFFFFFFU;
|
||||
nan = tmpVal.fltVal;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nan;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize rtNaNF needed by the generated code.
|
||||
* NaN is initialized as non-signaling. Assumes IEEE.
|
||||
*/
|
||||
real32_T rtGetNaNF(void)
|
||||
{
|
||||
IEEESingle nanF = { { 0 } };
|
||||
|
||||
uint16_T one = 1U;
|
||||
enum {
|
||||
LittleEndian,
|
||||
BigEndian
|
||||
} machByteOrder = (*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian;
|
||||
switch (machByteOrder) {
|
||||
case LittleEndian:
|
||||
{
|
||||
nanF.wordL.wordLuint = 0xFFC00000U;
|
||||
break;
|
||||
}
|
||||
|
||||
case BigEndian:
|
||||
{
|
||||
nanF.wordL.wordLuint = 0x7FFFFFFFU;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return nanF.wordL.wordLreal;
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
/*
|
||||
* rtGetNaN.h
|
||||
*
|
||||
* Code generation for model "send_receive_1_sm_model.mdl".
|
||||
*
|
||||
* Model version : 1.453
|
||||
* Simulink Coder version : 8.1 (R2011b) 08-Jul-2011
|
||||
* C source code generated on : Thu Apr 27 18:29:02 2017
|
||||
*
|
||||
* Target selection: rtlab_rtmodel.tlc
|
||||
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||
* Embedded hardware selection: 32-bit Generic
|
||||
* Code generation objectives: Unspecified
|
||||
* Validation result: Not run
|
||||
*/
|
||||
|
||||
#ifndef RTW_HEADER_rtGetNaN_h_
|
||||
#define RTW_HEADER_rtGetNaN_h_
|
||||
#include <stddef.h>
|
||||
#include "rtwtypes.h"
|
||||
#include "rt_nonfinite.h"
|
||||
|
||||
extern real_T rtGetNaN(void);
|
||||
extern real32_T rtGetNaNF(void);
|
||||
|
||||
#endif /* RTW_HEADER_rtGetNaN_h_ */
|
|
@ -1,49 +0,0 @@
|
|||
/*
|
||||
* rt_defines.h
|
||||
*
|
||||
* Code generation for model "send_receive_1_sm_model.mdl".
|
||||
*
|
||||
* Model version : 1.453
|
||||
* Simulink Coder version : 8.1 (R2011b) 08-Jul-2011
|
||||
* C source code generated on : Thu Apr 27 18:29:02 2017
|
||||
*
|
||||
* Target selection: rtlab_rtmodel.tlc
|
||||
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||
* Embedded hardware selection: 32-bit Generic
|
||||
* Code generation objectives: Unspecified
|
||||
* Validation result: Not run
|
||||
*/
|
||||
|
||||
#ifndef RTW_HEADER_rt_defines_h_
|
||||
#define RTW_HEADER_rt_defines_h_
|
||||
|
||||
/*===========*
|
||||
* Constants *
|
||||
*===========*/
|
||||
#define RT_PI 3.14159265358979323846
|
||||
#define RT_PIF 3.1415927F
|
||||
#define RT_LN_10 2.30258509299404568402
|
||||
#define RT_LN_10F 2.3025851F
|
||||
#define RT_LOG10E 0.43429448190325182765
|
||||
#define RT_LOG10EF 0.43429449F
|
||||
#define RT_E 2.7182818284590452354
|
||||
#define RT_EF 2.7182817F
|
||||
|
||||
/*
|
||||
* UNUSED_PARAMETER(x)
|
||||
* Used to specify that a function parameter (argument) is required but not
|
||||
* accessed by the function body.
|
||||
*/
|
||||
#ifndef UNUSED_PARAMETER
|
||||
# if defined(__LCC__)
|
||||
# define UNUSED_PARAMETER(x) /* do nothing */
|
||||
# else
|
||||
|
||||
/*
|
||||
* This is the semi-ANSI standard way of indicating that an
|
||||
* unused function parameter is required.
|
||||
*/
|
||||
# define UNUSED_PARAMETER(x) (void) (x)
|
||||
# endif
|
||||
#endif
|
||||
#endif /* RTW_HEADER_rt_defines_h_ */
|
|
@ -1,70 +0,0 @@
|
|||
/*
|
||||
* rt_nonfinite.c
|
||||
*
|
||||
* Code generation for model "send_receive_1_sm_model.mdl".
|
||||
*
|
||||
* Model version : 1.453
|
||||
* Simulink Coder version : 8.1 (R2011b) 08-Jul-2011
|
||||
* C source code generated on : Thu Apr 27 18:29:02 2017
|
||||
*
|
||||
* Target selection: rtlab_rtmodel.tlc
|
||||
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||
* Embedded hardware selection: 32-bit Generic
|
||||
* Code generation objectives: Unspecified
|
||||
* Validation result: Not run
|
||||
*/
|
||||
/*
|
||||
* Abstract:
|
||||
* Function to intialize non-finites,
|
||||
* (Inf, NaN and -Inf).
|
||||
*/
|
||||
|
||||
#include "rt_nonfinite.h"
|
||||
#include "rtGetNaN.h"
|
||||
#include "rtGetInf.h"
|
||||
|
||||
real_T rtInf;
|
||||
real_T rtMinusInf;
|
||||
real_T rtNaN;
|
||||
real32_T rtInfF;
|
||||
real32_T rtMinusInfF;
|
||||
real32_T rtNaNF;
|
||||
|
||||
/*
|
||||
* Initialize the rtInf, rtMinusInf, and rtNaN needed by the
|
||||
* generated code. NaN is initialized as non-signaling. Assumes IEEE.
|
||||
*/
|
||||
void rt_InitInfAndNaN(size_t realSize)
|
||||
{
|
||||
(void) (realSize);
|
||||
rtNaN = rtGetNaN();
|
||||
rtNaNF = rtGetNaNF();
|
||||
rtInf = rtGetInf();
|
||||
rtInfF = rtGetInfF();
|
||||
rtMinusInf = rtGetMinusInf();
|
||||
rtMinusInfF = rtGetMinusInfF();
|
||||
}
|
||||
|
||||
/* Test if value is infinite */
|
||||
boolean_T rtIsInf(real_T value)
|
||||
{
|
||||
return (boolean_T)((value==rtInf || value==rtMinusInf) ? 1U : 0U);
|
||||
}
|
||||
|
||||
/* Test if single-precision value is infinite */
|
||||
boolean_T rtIsInfF(real32_T value)
|
||||
{
|
||||
return (boolean_T)(((value)==rtInfF || (value)==rtMinusInfF) ? 1U : 0U);
|
||||
}
|
||||
|
||||
/* Test if value is not a number */
|
||||
boolean_T rtIsNaN(real_T value)
|
||||
{
|
||||
return (boolean_T)((value!=value) ? 1U : 0U);
|
||||
}
|
||||
|
||||
/* Test if single-precision value is not a number */
|
||||
boolean_T rtIsNaNF(real32_T value)
|
||||
{
|
||||
return (boolean_T)(((value!=value) ? 1U : 0U));
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
/*
|
||||
* rt_nonfinite.h
|
||||
*
|
||||
* Code generation for model "send_receive_1_sm_model.mdl".
|
||||
*
|
||||
* Model version : 1.453
|
||||
* Simulink Coder version : 8.1 (R2011b) 08-Jul-2011
|
||||
* C source code generated on : Thu Apr 27 18:29:02 2017
|
||||
*
|
||||
* Target selection: rtlab_rtmodel.tlc
|
||||
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||
* Embedded hardware selection: 32-bit Generic
|
||||
* Code generation objectives: Unspecified
|
||||
* Validation result: Not run
|
||||
*/
|
||||
|
||||
#ifndef RTW_HEADER_rt_nonfinite_h_
|
||||
#define RTW_HEADER_rt_nonfinite_h_
|
||||
#include <stddef.h>
|
||||
#include "rtwtypes.h"
|
||||
|
||||
extern real_T rtInf;
|
||||
extern real_T rtMinusInf;
|
||||
extern real_T rtNaN;
|
||||
extern real32_T rtInfF;
|
||||
extern real32_T rtMinusInfF;
|
||||
extern real32_T rtNaNF;
|
||||
extern void rt_InitInfAndNaN(size_t realSize);
|
||||
extern boolean_T rtIsInf(real_T value);
|
||||
extern boolean_T rtIsInfF(real32_T value);
|
||||
extern boolean_T rtIsNaN(real_T value);
|
||||
extern boolean_T rtIsNaNF(real32_T value);
|
||||
typedef struct {
|
||||
struct {
|
||||
uint32_T wordH;
|
||||
uint32_T wordL;
|
||||
} words;
|
||||
} BigEndianIEEEDouble;
|
||||
|
||||
typedef struct {
|
||||
struct {
|
||||
uint32_T wordL;
|
||||
uint32_T wordH;
|
||||
} words;
|
||||
} LittleEndianIEEEDouble;
|
||||
|
||||
typedef struct {
|
||||
union {
|
||||
real32_T wordLreal;
|
||||
uint32_T wordLuint;
|
||||
} wordL;
|
||||
} IEEESingle;
|
||||
|
||||
#endif /* RTW_HEADER_rt_nonfinite_h_ */
|
|
@ -1,23 +0,0 @@
|
|||
/*
|
||||
* rtmodel.h:
|
||||
*
|
||||
* Code generation for model "send_receive_1_sm_model.mdl".
|
||||
*
|
||||
* Model version : 1.453
|
||||
* Simulink Coder version : 8.1 (R2011b) 08-Jul-2011
|
||||
* C source code generated on : Thu Apr 27 18:29:02 2017
|
||||
*
|
||||
* Target selection: rtlab_rtmodel.tlc
|
||||
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||
* Embedded hardware selection: 32-bit Generic
|
||||
* Code generation objectives: Unspecified
|
||||
* Validation result: Not run
|
||||
*/
|
||||
#ifndef RTW_HEADER_rtmodel_h_
|
||||
#define RTW_HEADER_rtmodel_h_
|
||||
|
||||
/*
|
||||
* Includes the appropriate headers when we are using rtModel
|
||||
*/
|
||||
#include "send_receive_1_sm_model.h"
|
||||
#endif /* RTW_HEADER_rtmodel_h_ */
|
|
@ -1,4 +0,0 @@
|
|||
Simulink Coder project for send_receive_1_sm_model using C:\OPAL-RT\RT-LAB\v11.0.5.499\Simulink\rtw\c\common\rtlab_rtmodel.tmf. MATLAB root = C:\Program Files (x86)\MATLAB\R2011b. SimStruct date: 11-Jul-2011 20:59:52
|
||||
This file is generated by Simulink Coder for use by the make utility
|
||||
to determine when to rebuild objects when the name of the current Simulink Coder project changes.
|
||||
The rtwinfomat located at: ..\slprj\rtlab_rtmodel\send_receive_1_sm_model\tmwinternal\binfo.mat
|
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
|
@ -1,2 +0,0 @@
|
|||
set MATLAB=C:\Program Files (x86)\MATLAB\R2011b
|
||||
make -f send_receive_1_sm_model.mk GENERATE_REPORT=0 EXT_MODE=0 EXTMODE_STATIC_ALLOC=0 TMW_EXTMODE_TESTING=0 EXTMODE_STATIC_ALLOC_SIZE=1000000 EXTMODE_TRANSPORT=0
|
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,145 +0,0 @@
|
|||
[ModelDataStructure]
|
||||
0=blkStateChange
|
||||
120=zCCacheNeedsReset
|
||||
19=derivCacheNeedsReset
|
||||
[Parameter]
|
||||
0=send_receive_1_sm_model/OpCCode_do_not_touch/S-Function1|Value|0|Scalar|0|1|1|0.0|Constant|
|
||||
1=send_receive_1_sm_model/OpCCode_do_not_touch/S-Function|X0|0|Scalar|0|1|1|0.0|Memory|
|
||||
10=send_receive_1_sm_model/sm_model/Pulse Generator1|PhaseDelay|0|Scalar|0|1|1|0.0|DiscretePulseGenerator|
|
||||
100=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P22Size| |RVector|0|1|2|0.0|0.0|S-Function sfun_gen_async_ctrl|
|
||||
101=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P23Size| |RVector|0|1|2|0.0|0.0|S-Function sfun_gen_async_ctrl|
|
||||
102=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P24Size| |RVector|0|1|2|0.0|0.0|S-Function sfun_gen_async_ctrl|
|
||||
103=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P25Size| |RVector|0|1|2|0.0|0.0|S-Function sfun_gen_async_ctrl|
|
||||
104=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P26Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_gen_async_ctrl|
|
||||
105=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P26| |RVector|0|1|7|65.0|115.0|121.0|110.0|99.0|73.0|80.0|S-Function sfun_gen_async_ctrl|
|
||||
106=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P27Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
107=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P27|0|Scalar|0|1|1|0.0|S-Function sfun_gen_async_ctrl|
|
||||
11=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P1Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_send_async|
|
||||
12=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P1|ctl_id|Scalar|0|1|1|1.0|S-Function sfun_send_async|
|
||||
13=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P2Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_send_async|
|
||||
14=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P2|send_id|Scalar|0|1|1|1.0|S-Function sfun_send_async|
|
||||
15=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P3Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_send_async|
|
||||
16=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P3|mode|Scalar|0|1|1|3.0|S-Function sfun_send_async|
|
||||
17=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P4Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_send_async|
|
||||
18=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P4|fp1|Scalar|0|1|1|1.0|S-Function sfun_send_async|
|
||||
19=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P5Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_send_async|
|
||||
2=send_receive_1_sm_model/sm_model/data ready 2 kHz|Amplitude|1|Scalar|0|1|1|1.0|DiscretePulseGenerator|
|
||||
20=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P5|fp2|Scalar|0|1|1|2.0|S-Function sfun_send_async|
|
||||
21=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P6Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_send_async|
|
||||
22=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P6|fp3|Scalar|0|1|1|3.0|S-Function sfun_send_async|
|
||||
23=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P7Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_send_async|
|
||||
24=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P7|fp4|Scalar|0|1|1|4.0|S-Function sfun_send_async|
|
||||
25=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P8Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_send_async|
|
||||
26=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P8|fp5|Scalar|0|1|1|5.0|S-Function sfun_send_async|
|
||||
27=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P9Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_send_async|
|
||||
28=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P9| |RVector|0|1|7|115.0|116.0|114.0|105.0|110.0|103.0|49.0|S-Function sfun_send_async|
|
||||
29=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P10Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_send_async|
|
||||
3=send_receive_1_sm_model/sm_model/data ready 2 kHz|Period|10|Scalar|0|1|1|10.0|DiscretePulseGenerator|
|
||||
30=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P10| |RVector|0|1|7|115.0|116.0|114.0|105.0|110.0|103.0|50.0|S-Function sfun_send_async|
|
||||
31=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P11Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_send_async|
|
||||
32=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P11| |RVector|0|1|7|115.0|116.0|114.0|105.0|110.0|103.0|51.0|S-Function sfun_send_async|
|
||||
33=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P12Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_send_async|
|
||||
34=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P12| |RVector|0|1|7|115.0|116.0|114.0|105.0|110.0|103.0|52.0|S-Function sfun_send_async|
|
||||
35=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P13Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_send_async|
|
||||
36=send_receive_1_sm_model/sm_model/send message 1/S-Function2|P13| |RVector|0|1|7|115.0|116.0|114.0|105.0|110.0|103.0|53.0|S-Function sfun_send_async|
|
||||
37=send_receive_1_sm_model/sm_model/timeout|Value|2|Scalar|0|1|1|2.0|Constant|
|
||||
38=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P1Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_recv_async|
|
||||
39=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P1|ctl_id|Scalar|0|1|1|1.0|S-Function sfun_recv_async|
|
||||
4=send_receive_1_sm_model/sm_model/data ready 2 kHz|PulseWidth|1|Scalar|0|1|1|1.0|DiscretePulseGenerator|
|
||||
40=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P2Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_recv_async|
|
||||
41=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P2|recv_id|Scalar|0|1|1|1.0|S-Function sfun_recv_async|
|
||||
42=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P3Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_recv_async|
|
||||
43=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P3|fp1|Scalar|0|1|1|1.0|S-Function sfun_recv_async|
|
||||
44=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P4Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_recv_async|
|
||||
45=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P4|fp2|Scalar|0|1|1|2.0|S-Function sfun_recv_async|
|
||||
46=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P5Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_recv_async|
|
||||
47=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P5|fp3|Scalar|0|1|1|3.0|S-Function sfun_recv_async|
|
||||
48=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P6Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_recv_async|
|
||||
49=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P6|fp4|Scalar|0|1|1|4.0|S-Function sfun_recv_async|
|
||||
5=send_receive_1_sm_model/sm_model/data ready 2 kHz|PhaseDelay|0|Scalar|0|1|1|0.0|DiscretePulseGenerator|
|
||||
50=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P7Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_recv_async|
|
||||
51=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P7|fp5|Scalar|0|1|1|5.0|S-Function sfun_recv_async|
|
||||
52=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P8Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_recv_async|
|
||||
53=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P8| |RVector|0|1|7|115.0|116.0|114.0|105.0|110.0|103.0|49.0|S-Function sfun_recv_async|
|
||||
54=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P9Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_recv_async|
|
||||
55=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P9| |RVector|0|1|7|115.0|116.0|114.0|105.0|110.0|103.0|50.0|S-Function sfun_recv_async|
|
||||
56=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P10Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_recv_async|
|
||||
57=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P10| |RVector|0|1|7|115.0|116.0|114.0|105.0|110.0|103.0|51.0|S-Function sfun_recv_async|
|
||||
58=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P11Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_recv_async|
|
||||
59=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P11| |RVector|0|1|7|115.0|116.0|114.0|105.0|110.0|103.0|52.0|S-Function sfun_recv_async|
|
||||
6=send_receive_1_sm_model/sm_model/Constant|Value|[1 2 3 4]|RVector|0|1|4|1.0|2.0|3.0|4.0|Constant|
|
||||
60=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P12Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_recv_async|
|
||||
61=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|P12| |RVector|0|1|7|115.0|116.0|114.0|105.0|110.0|103.0|53.0|S-Function sfun_recv_async|
|
||||
62=send_receive_1_sm_model/sm_model/rtlab_send_subsystem/Subsystem1/Send1/S-Function|P1Size| |RVector|0|1|2|1.0|1.0|S-Function OP_SEND|
|
||||
63=send_receive_1_sm_model/sm_model/rtlab_send_subsystem/Subsystem1/Send1/S-Function|P1|Acqu_group|Scalar|0|1|1|1.0|S-Function OP_SEND|
|
||||
64=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P1Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
65=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P1|ctl_id|Scalar|0|1|1|1.0|S-Function sfun_gen_async_ctrl|
|
||||
66=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P2Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
67=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P2|proto|Scalar|0|1|1|1.0|S-Function sfun_gen_async_ctrl|
|
||||
68=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P3Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
69=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P3|ip_port_remote|Scalar|0|1|1|12000.0|S-Function sfun_gen_async_ctrl|
|
||||
7=send_receive_1_sm_model/sm_model/Pulse Generator1|Amplitude|5|Scalar|0|1|1|5.0|DiscretePulseGenerator|
|
||||
70=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P4Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
71=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P4|ip_port_local|Scalar|0|1|1|12001.0|S-Function sfun_gen_async_ctrl|
|
||||
72=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P5Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
73=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P5|0|Scalar|0|1|1|0.0|S-Function sfun_gen_async_ctrl|
|
||||
74=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P6Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
75=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P6|0|Scalar|0|1|1|0.0|S-Function sfun_gen_async_ctrl|
|
||||
76=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P7Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
77=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P7|0|Scalar|0|1|1|0.0|S-Function sfun_gen_async_ctrl|
|
||||
78=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P8Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
79=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P8|0|Scalar|0|1|1|0.0|S-Function sfun_gen_async_ctrl|
|
||||
8=send_receive_1_sm_model/sm_model/Pulse Generator1|Period| |Scalar|0|1|1|2000.0|DiscretePulseGenerator|
|
||||
80=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P9Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
81=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P9|0|Scalar|0|1|1|0.0|S-Function sfun_gen_async_ctrl|
|
||||
82=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P10Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
83=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P10|0|Scalar|0|1|1|0.0|S-Function sfun_gen_async_ctrl|
|
||||
84=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P11Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
85=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P11|0|Scalar|0|1|1|0.0|S-Function sfun_gen_async_ctrl|
|
||||
86=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P12Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
87=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P12|0|Scalar|0|1|1|0.0|S-Function sfun_gen_async_ctrl|
|
||||
88=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P13Size| |RVector|0|1|2|1.0|1.0|S-Function sfun_gen_async_ctrl|
|
||||
89=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P13|0|Scalar|0|1|1|0.0|S-Function sfun_gen_async_ctrl|
|
||||
9=send_receive_1_sm_model/sm_model/Pulse Generator1|PulseWidth| |Scalar|0|1|1|600.0|DiscretePulseGenerator|
|
||||
90=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P14Size| |RVector|0|1|2|1.0|14.0|S-Function sfun_gen_async_ctrl|
|
||||
91=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P14| |RVector|0|1|14|49.0|51.0|52.0|46.0|49.0|51.0|48.0|46.0|49.0|54.0|57.0|46.0|51.0|49.0|S-Function sfun_gen_async_ctrl|
|
||||
92=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P15Size| |RVector|0|1|2|1.0|7.0|S-Function sfun_gen_async_ctrl|
|
||||
93=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P15| |RVector|0|1|7|48.0|46.0|48.0|46.0|48.0|46.0|48.0|S-Function sfun_gen_async_ctrl|
|
||||
94=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P16Size| |RVector|0|1|2|0.0|0.0|S-Function sfun_gen_async_ctrl|
|
||||
95=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P17Size| |RVector|0|1|2|0.0|0.0|S-Function sfun_gen_async_ctrl|
|
||||
96=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P18Size| |RVector|0|1|2|0.0|0.0|S-Function sfun_gen_async_ctrl|
|
||||
97=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P19Size| |RVector|0|1|2|0.0|0.0|S-Function sfun_gen_async_ctrl|
|
||||
98=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P20Size| |RVector|0|1|2|0.0|0.0|S-Function sfun_gen_async_ctrl|
|
||||
99=send_receive_1_sm_model/sm_model/OpIPSocketCtrl1|P21Size| |RVector|0|1|2|0.0|0.0|S-Function sfun_gen_async_ctrl|
|
||||
nbParameters=108
|
||||
[Signal]
|
||||
0=send_receive_1_sm_model/OpCCode_do_not_touch/S-Function|NULL|0|1|1|1|S|Memory|0|
|
||||
1=send_receive_1_sm_model/OpCCode_do_not_touch/Sum|NULL|1|1|1|1|S|Sum|0|
|
||||
2=send_receive_1_sm_model/sm_model/data ready 2 kHz|NULL|2|1|1|1|S|DiscretePulseGenerator|0|
|
||||
3=send_receive_1_sm_model/sm_model/Pulse Generator1|NULL|3|1|1|1|S|DiscretePulseGenerator|0|
|
||||
4=send_receive_1_sm_model/sm_model/send message 1/S-Function2|NULL|4|1|1|1|S|S-Function sfun_send_async|0|
|
||||
5=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|NULL|5|1|1|1|S|S-Function sfun_recv_async|0|
|
||||
6=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|NULL|6|1|1|1|S|S-Function sfun_recv_async|0|
|
||||
7=send_receive_1_sm_model/sm_model/receive message 1/S-Function1|NULL|7|5|5|1|V|S-Function sfun_recv_async|0|
|
||||
nbSignals=8
|
||||
[TimingStructure]
|
||||
108=tArray
|
||||
122=timeOfLastOutput
|
||||
24=tFinal
|
||||
4=clockTick0
|
||||
5=clockTickH0
|
||||
61=offsetTimesArray
|
||||
67=perTaskSampleHitsArray
|
||||
83=sampleHitArray
|
||||
87=sampleTimesArray
|
||||
90=sampleTimeTaskIDArray
|
||||
93=simTimeStep
|
||||
95=tStart
|
||||
96=stepSize
|
||||
97=stepSize0
|
||||
99=stopRequestedFlag
|
||||
[dwork]
|
||||
0=SFunction_PreviousInput|real_T|
|
||||
4=clockTickCounter|int32_T|
|
||||
5=clockTickCounter_h|int32_T|
|
||||
6=SFunction_IWORK|IWORK|
|
|
@ -1,671 +0,0 @@
|
|||
# File : TARGET.tmf
|
||||
#
|
||||
# $Revision 1.1 $
|
||||
#
|
||||
# Abstract:
|
||||
# Real-Time Workshop template makefile for building a Neutrino-based
|
||||
# stand-alone real-time version of SIMULINK model using
|
||||
# generated C code.
|
||||
#
|
||||
# Note that this template is automatically customized by the Real-Time
|
||||
# Workshop build procedure to create "<model>.mk"
|
||||
#
|
||||
# The following defines can be used to modify the behavior of the
|
||||
# build:
|
||||
# OPTS - User specific compile options, such as
|
||||
# OPTS=-DMULTITASKING to enable multitasking mode.
|
||||
# OPT_OPTS - Optimization options. Default is -Oatx. To enable
|
||||
# debugging define DEBUG.
|
||||
# USER_SRCS - Additional user sources, such as files needed by
|
||||
# S-functions.
|
||||
# USER_INCS - Additional include paths
|
||||
# (i.e. USER_INCS="-Iwhere-ever -Iwhere-ever2")
|
||||
|
||||
|
||||
#------------------------ Macros read by make_rtw -----------------------------
|
||||
#
|
||||
# The following macros are read by the Real-Time Workshop build procedure:
|
||||
#
|
||||
# MAKE - This is the command used to invoke the make utility
|
||||
# HOST - What platform this template makefile is targeted for
|
||||
# (i.e. PC or UNIX)
|
||||
# BUILD - Invoke make from the Real-Time Workshop build procedure
|
||||
# (yes/no)?
|
||||
# SYS_TARGET_FILE - Name of system target file.
|
||||
|
||||
MAKE = make
|
||||
HOST = PC
|
||||
BUILD = no
|
||||
SYS_TARGET_FILE = rtlab_rtmodel.tlc
|
||||
|
||||
#---------------------- Tokens expanded by make_rtw ---------------------------
|
||||
#
|
||||
# The following tokens, when wrapped with "|>" and "|<" are expanded by the
|
||||
# Real-Time Workshop build procedure.
|
||||
#
|
||||
# MODEL_NAME - Name of the SIMULINK block diagram
|
||||
# MODEL_MODULES - Any additional generated source modules
|
||||
# MAKEFILE_NAME - Name of makefile created from template makefile <model>.mk
|
||||
# MATLAB_ROOT - Path to were MATLAB is installed.
|
||||
# S_FUNCTIONS - List of S-functions.
|
||||
# SOLVER - Solver source file name
|
||||
# NUMST - Number of sample times
|
||||
# TID01EQ - yes (1) or no (0): Are sampling rates of continuous task
|
||||
# (tid=0) and 1st discrete task equal.
|
||||
# NCSTATES - Number of continuous states
|
||||
# MAT_FILE - yes (1) or no (0): Should mat file logging be done
|
||||
# COMPUTER - Computer type. See the MATLAB computer command.
|
||||
# BUILDARGS - Options passed in at the command line.
|
||||
|
||||
MODEL = send_receive_1_sm_model
|
||||
MODULES = rtGetInf.c rtGetNaN.c rt_logging.c rt_matrx.c rt_nonfinite.c rt_printf.c send_receive_1_sm_model_data.c
|
||||
MAKEFILE = send_receive_1_sm_model.mk
|
||||
MATLAB_ROOT = C:\Program Files (x86)\Matlab\R2011b
|
||||
ALT_MATLAB_ROOT = C:\PROGRA~2\Matlab\R2011b
|
||||
S_FUNCTIONS = sfun_send_async.c sfun_recv_async.c OP_SEND.c sfun_gen_async_ctrl.c
|
||||
SOLVER =
|
||||
NUMST = 1
|
||||
TID01EQ = 0
|
||||
NCSTATES = 0
|
||||
COMPUTER = PCWIN
|
||||
BUILDARGS = GENERATE_REPORT=0 EXT_MODE=0 EXTMODE_STATIC_ALLOC=0 TMW_EXTMODE_TESTING=0 EXTMODE_STATIC_ALLOC_SIZE=1000000 EXTMODE_TRANSPORT=0
|
||||
MULTITASKING = 0
|
||||
MAT_FILE = |>MAT_FILE<|
|
||||
|
||||
CLASSIC_INTERFACE = |>CLASSIC_INTERFACE<|
|
||||
# Optional for GRT
|
||||
ONESTEPFCN = |>COMBINE_OUTPUT_UPDATE_FCNS<|
|
||||
TERMFCN = 1
|
||||
MULTI_INSTANCE_CODE = |>MULTI_INSTANCE_CODE<|
|
||||
|
||||
MODELREFS =
|
||||
MODELLIB = send_receive_1_sm_modellib.lib
|
||||
MODELREF_LINK_LIBS =
|
||||
MODELREF_LINK_RSPFILE = send_receive_1_sm_model_ref.rsp
|
||||
MODELREF_INC_PATH =
|
||||
RELATIVE_PATH_TO_ANCHOR = ..
|
||||
MODELREF_TARGET_TYPE = NONE
|
||||
|
||||
SHARED_SRC =
|
||||
SHARED_SRC_DIR =
|
||||
SHARED_BIN_DIR =
|
||||
SHARED_LIB =
|
||||
|
||||
# SHARED_BIN_DIR = unused
|
||||
# SHARED_LIB = unused
|
||||
UNAME = $(shell uname)
|
||||
|
||||
ifeq "$(UNAME)" "QNX" ##### nto
|
||||
ifeq ($(MODELREF_TARGET_TYPE), NONE)
|
||||
SHARED_SRC := _sharedutils\*.c*
|
||||
SHARED_SRC_DIR := _sharedutils
|
||||
RELATIVE_PATH_TO_ANCHOR :=
|
||||
MODELREF_LINK_LIBS := $(MODELREF_LINK_LIBS:.lib=.a)
|
||||
MODELLIB := $(MODELLIB:.lib=.a)
|
||||
|
||||
else
|
||||
SHARED_SRC := ..\_sharedutils\*.c*
|
||||
SHARED_SRC_DIR := ..\_sharedutils
|
||||
RELATIVE_PATH_TO_ANCHOR := ..
|
||||
MODELREF_LINK_LIBS := $(MODELREF_LINK_LIBS:.lib=.a)
|
||||
MODELLIB := $(MODELLIB:.lib=.a)
|
||||
endif
|
||||
else
|
||||
ifeq "$(UNAME)" "Linux" ##### Linux (RedHawk)
|
||||
ifeq ($(MODELREF_TARGET_TYPE), NONE)
|
||||
SHARED_SRC := _sharedutils\*.c*
|
||||
SHARED_SRC_DIR := _sharedutils
|
||||
RELATIVE_PATH_TO_ANCHOR :=
|
||||
MODELREF_LINK_LIBS := $(MODELREF_LINK_LIBS:.lib=.a)
|
||||
MODELLIB := $(MODELLIB:.lib=.a)
|
||||
else
|
||||
SHARED_SRC := ..\_sharedutils\*.c*
|
||||
SHARED_SRC_DIR := ..\_sharedutils
|
||||
RELATIVE_PATH_TO_ANCHOR := ..
|
||||
MODELREF_LINK_LIBS := $(MODELREF_LINK_LIBS:.lib=.a)
|
||||
MODELLIB := $(MODELLIB:.lib=.a)
|
||||
endif
|
||||
else
|
||||
ifeq ($(MODELREF_TARGET_TYPE), NONE)
|
||||
SHARED_SRC := $(SHARED_SRC)
|
||||
SHARED_SRC_DIR := $(SHARED_SRC_DIR)
|
||||
RELATIVE_PATH_TO_ANCHOR := $(RELATIVE_PATH_TO_ANCHOR)
|
||||
MODELREF_LINK_LIBS := $(MODELREF_LINK_LIBS)
|
||||
MODELLIB := $(MODELLIB)
|
||||
else
|
||||
SHARED_SRC := $(SHARED_SRC)
|
||||
SHARED_SRC_DIR := $(SHARED_SRC_DIR)
|
||||
RELATIVE_PATH_TO_ANCHOR := $(RELATIVE_PATH_TO_ANCHOR)
|
||||
MODELREF_LINK_LIBS := $(MODELREF_LINK_LIBS)
|
||||
MODELLIB := $(MODELLIB)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
|
||||
|
||||
#----------------------------- Source Files ------------------------------
|
||||
MOD_TMP1 = $(MODULES:blms_an_wn_cc_rt.c= )
|
||||
MOD_TMP2 = $(MOD_TMP1:blms_an_wn_dd_rt.c= )
|
||||
MOD_TMP3 = $(MOD_TMP2:blms_an_wn_rr_rt.c= )
|
||||
MOD_TMP4 = $(MOD_TMP3:blms_an_wn_zz_rt.c= )
|
||||
MOD_TMP5 = $(MOD_TMP4:blms_an_wy_cc_rt.c= )
|
||||
MOD_TMP6 = $(MOD_TMP5:blms_an_wy_dd_rt.c= )
|
||||
MOD_TMP7 = $(MOD_TMP6:blms_an_wy_rr_rt.c= )
|
||||
MOD_TMP8 = $(MOD_TMP7:blms_an_wy_zz_rt.c= )
|
||||
MOD_TMP9 = $(MOD_TMP8:blms_ay_wn_cc_rt.c= )
|
||||
MOD_TMP10 = $(MOD_TMP9:blms_ay_wn_dd_rt.c= )
|
||||
MOD_TMP11 = $(MOD_TMP10:blms_ay_wn_rr_rt.c= )
|
||||
MOD_TMP12 = $(MOD_TMP11:blms_ay_wn_zz_rt.c= )
|
||||
MOD_TMP13 = $(MOD_TMP12:blms_ay_wy_cc_rt.c= )
|
||||
MOD_TMP14 = $(MOD_TMP13:blms_ay_wy_dd_rt.c= )
|
||||
MOD_TMP15 = $(MOD_TMP14:blms_ay_wy_rr_rt.c= )
|
||||
MOD_TMP16 = $(MOD_TMP15:blms_ay_wy_zz_rt.c= )
|
||||
MOD_TMP17 = $(MOD_TMP16:is_little_endian_rt.c= )
|
||||
MOD_TMP18 = $(MOD_TMP17:eph_zc_fcn_rt.c= )
|
||||
MOD_TMP19 = $(MOD_TMP18:2chabank_fr_df_cc_rt.c= )
|
||||
MOD_TMP20 = $(MOD_TMP19:2chabank_fr_df_cr_rt.c= )
|
||||
MOD_TMP21 = $(MOD_TMP20:2chabank_fr_df_dd_rt.c= )
|
||||
MOD_TMP22 = $(MOD_TMP21:2chabank_fr_df_rr_rt.c= )
|
||||
MOD_TMP23 = $(MOD_TMP22:2chabank_fr_df_zd_rt.c= )
|
||||
MOD_TMP24 = $(MOD_TMP23:2chabank_fr_df_zz_rt.c= )
|
||||
MOD_TMP25 = $(MOD_TMP24:2chsbank_df_cc_rt.c= )
|
||||
MOD_TMP26 = $(MOD_TMP25:2chsbank_df_cr_rt.c= )
|
||||
MOD_TMP27 = $(MOD_TMP26:2chsbank_df_dd_rt.c= )
|
||||
MOD_TMP28 = $(MOD_TMP27:2chsbank_df_rr_rt.c= )
|
||||
MOD_TMP29 = $(MOD_TMP28:2chsbank_df_zd_rt.c= )
|
||||
MOD_TMP30 = $(MOD_TMP29:2chsbank_df_zz_rt.c= )
|
||||
MOD_TMP31 = $(MOD_TMP30:ic_copy_channel_rt.c= )
|
||||
MOD_TMP32 = $(MOD_TMP31:ic_copy_matrix_rt.c= )
|
||||
MOD_TMP33 = $(MOD_TMP32:ic_copy_scalar_rt.c= )
|
||||
MOD_TMP34 = $(MOD_TMP33:ic_copy_vector_rt.c= )
|
||||
MOD_TMP35 = $(MOD_TMP34:ic_old_copy_fcns_rt.c= )
|
||||
MOD_TMP36 = $(MOD_TMP35:mmpcmaudio_rt.c= )
|
||||
MOD_TMP37 = $(MOD_TMP36:mmrgb24convert2gray_rt.c= )
|
||||
MOD_TMP38 = $(MOD_TMP37:mmrgb24convert_rt.c= )
|
||||
MOD_TMP39 = $(MOD_TMP38:mmrgb24output_rt.c= )
|
||||
MOD_TMP40 = $(MOD_TMP39:mmrgb24paddedoutput_rt.c= )
|
||||
MOD_TMP41 = $(MOD_TMP40:polyval_cc_rt.c= )
|
||||
MOD_TMP42 = $(MOD_TMP41:polyval_cr_rt.c= )
|
||||
MOD_TMP43 = $(MOD_TMP42:polyval_dd_rt.c= )
|
||||
MOD_TMP44 = $(MOD_TMP43:polyval_dz_rt.c= )
|
||||
MOD_TMP45 = $(MOD_TMP44:polyval_rc_rt.c= )
|
||||
MOD_TMP46 = $(MOD_TMP45:polyval_rr_rt.c= )
|
||||
MOD_TMP47 = $(MOD_TMP46:polyval_zd_rt.c= )
|
||||
MOD_TMP48 = $(MOD_TMP47:polyval_zz_rt.c= )
|
||||
MOD_TMP49 = $(MOD_TMP48:sort_ins_idx_d_rt.c= )
|
||||
MOD_TMP50 = $(MOD_TMP49:sort_ins_idx_r_rt.c= )
|
||||
MOD_TMP51 = $(MOD_TMP50:sort_ins_idx_s08_rt.c= )
|
||||
MOD_TMP52 = $(MOD_TMP51:sort_ins_idx_s16_rt.c= )
|
||||
MOD_TMP53 = $(MOD_TMP52:sort_ins_idx_s32_rt.c= )
|
||||
MOD_TMP54 = $(MOD_TMP53:sort_ins_idx_u08_rt.c= )
|
||||
MOD_TMP55 = $(MOD_TMP54:sort_ins_idx_u16_rt.c= )
|
||||
MOD_TMP56 = $(MOD_TMP55:sort_ins_idx_u32_rt.c= )
|
||||
MOD_TMP57 = $(MOD_TMP56:sort_ins_val_d_rt.c= )
|
||||
MOD_TMP58 = $(MOD_TMP57:sort_ins_val_r_rt.c= )
|
||||
MOD_TMP59 = $(MOD_TMP58:sort_ins_val_s08_rt.c= )
|
||||
MOD_TMP60 = $(MOD_TMP59:sort_ins_val_s16_rt.c= )
|
||||
MOD_TMP61 = $(MOD_TMP60:sort_ins_val_s32_rt.c= )
|
||||
MOD_TMP62 = $(MOD_TMP61:sort_ins_val_u08_rt.c= )
|
||||
MOD_TMP63 = $(MOD_TMP62:sort_ins_val_u16_rt.c= )
|
||||
MOD_TMP64 = $(MOD_TMP63:sort_ins_val_u32_rt.c= )
|
||||
MOD_TMP65 = $(MOD_TMP64:sort_qk_idx_d_rt.c= )
|
||||
MOD_TMP66 = $(MOD_TMP65:sort_qk_idx_r_rt.c= )
|
||||
MOD_TMP67 = $(MOD_TMP66:sort_qk_idx_s08_rt.c= )
|
||||
MOD_TMP68 = $(MOD_TMP67:sort_qk_idx_s16_rt.c= )
|
||||
MOD_TMP69 = $(MOD_TMP68:sort_qk_idx_s32_rt.c= )
|
||||
MOD_TMP70 = $(MOD_TMP69:sort_qk_idx_u08_rt.c= )
|
||||
MOD_TMP71 = $(MOD_TMP70:sort_qk_idx_u16_rt.c= )
|
||||
MOD_TMP72 = $(MOD_TMP71:sort_qk_idx_u32_rt.c= )
|
||||
MOD_TMP73 = $(MOD_TMP72:sort_qk_val_d_rt.c= )
|
||||
MOD_TMP74 = $(MOD_TMP73:sort_qk_val_r_rt.c= )
|
||||
MOD_TMP75 = $(MOD_TMP74:sort_qk_val_s08_rt.c= )
|
||||
MOD_TMP76 = $(MOD_TMP75:sort_qk_val_s16_rt.c= )
|
||||
MOD_TMP77 = $(MOD_TMP76:sort_qk_val_s32_rt.c= )
|
||||
MOD_TMP78 = $(MOD_TMP77:sort_qk_val_u08_rt.c= )
|
||||
MOD_TMP79 = $(MOD_TMP78:sort_qk_val_u16_rt.c= )
|
||||
MOD_TMP80 = $(MOD_TMP79:sort_qk_val_u32_rt.c= )
|
||||
MOD_TMP81 = $(MOD_TMP80:srt_qid_findpivot_d_rt.c= )
|
||||
MOD_TMP82 = $(MOD_TMP81:srt_qid_findpivot_r_rt.c= )
|
||||
MOD_TMP83 = $(MOD_TMP82:srt_qid_partition_d_rt.c= )
|
||||
MOD_TMP84 = $(MOD_TMP83:srt_qid_partition_r_rt.c= )
|
||||
MOD_TMP85 = $(MOD_TMP84:srt_qkrec_c_rt.c= )
|
||||
MOD_TMP86 = $(MOD_TMP85:srt_qkrec_d_rt.c= )
|
||||
MOD_TMP87 = $(MOD_TMP86:srt_qkrec_r_rt.c= )
|
||||
MOD_TMP88 = $(MOD_TMP87:srt_qkrec_z_rt.c= )
|
||||
MOD_TMP89 = $(MOD_TMP88:randsrccreateseeds_32_rt.c= )
|
||||
MOD_TMP90 = $(MOD_TMP89:randsrccreateseeds_64_rt.c= )
|
||||
MOD_TMP91 = $(MOD_TMP90:randsrcinitstate_gc_32_rt.c= )
|
||||
MOD_TMP92 = $(MOD_TMP91:randsrcinitstate_gc_64_rt.c= )
|
||||
MOD_TMP93 = $(MOD_TMP92:randsrcinitstate_gz_rt.c= )
|
||||
MOD_TMP94 = $(MOD_TMP93:randsrcinitstate_u_32_rt.c= )
|
||||
MOD_TMP95 = $(MOD_TMP94:randsrcinitstate_u_64_rt.c= )
|
||||
MOD_TMP96 = $(MOD_TMP95:randsrc_gc_c_rt.c= )
|
||||
MOD_TMP97 = $(MOD_TMP96:randsrc_gc_d_rt.c= )
|
||||
MOD_TMP98 = $(MOD_TMP97:randsrc_gc_r_rt.c= )
|
||||
MOD_TMP99 = $(MOD_TMP98:randsrc_gc_z_rt.c= )
|
||||
MOD_TMP100 = $(MOD_TMP99:randsrc_gz_c_rt.c= )
|
||||
MOD_TMP101 = $(MOD_TMP100:randsrc_gz_d_rt.c= )
|
||||
MOD_TMP102 = $(MOD_TMP101:randsrc_gz_r_rt.c= )
|
||||
MOD_TMP103 = $(MOD_TMP102:randsrc_gz_z_rt.c= )
|
||||
MOD_TMP104 = $(MOD_TMP103:randsrc_u_c_rt.c= )
|
||||
MOD_TMP105 = $(MOD_TMP104:randsrc_u_d_rt.c= )
|
||||
MOD_TMP106 = $(MOD_TMP105:randsrc_u_r_rt.c= )
|
||||
MOD_TMP107 = $(MOD_TMP106:randsrc_u_z_rt.c= )
|
||||
MOD_TMP108 = $(MOD_TMP107:buf_copy_frame_to_mem_OL_1ch_rt.c= )
|
||||
MOD_TMP109 = $(MOD_TMP108:buf_copy_frame_to_mem_OL_rt.c= )
|
||||
MOD_TMP110 = $(MOD_TMP109:buf_copy_input_to_output_1ch_rt.c= )
|
||||
MOD_TMP111 = $(MOD_TMP110:buf_copy_input_to_output_rt.c= )
|
||||
MOD_TMP112 = $(MOD_TMP111:buf_copy_scalar_to_mem_OL_1ch_rt.c= )
|
||||
MOD_TMP113 = $(MOD_TMP112:buf_copy_scalar_to_mem_OL_rt.c= )
|
||||
MOD_TMP114 = $(MOD_TMP113:buf_copy_scalar_to_mem_UL_1ch_rt.c= )
|
||||
MOD_TMP115 = $(MOD_TMP114:buf_copy_scalar_to_mem_UL_rt.c= )
|
||||
MOD_TMP116 = $(MOD_TMP115:buf_output_frame_1ch_rt.c= )
|
||||
MOD_TMP117 = $(MOD_TMP116:buf_output_frame_rt.c= )
|
||||
MOD_TMP118 = $(MOD_TMP117:buf_output_scalar_1ch_rt.c= )
|
||||
MOD_TMP119 = $(MOD_TMP118:buf_output_scalar_rt.c= )
|
||||
MOD_TMP120 = $(MOD_TMP119:svd_c_rt.c= )
|
||||
MOD_TMP121 = $(MOD_TMP120:svd_d_rt.c= )
|
||||
MOD_TMP122 = $(MOD_TMP121:svd_helper_rt.c= )
|
||||
MOD_TMP123 = $(MOD_TMP122:svd_r_rt.c= )
|
||||
MOD_TMP124 = $(MOD_TMP123:rt_matrx.c= )
|
||||
MODULES_SRCS = $(MOD_TMP124:svd_z_rt.c= )
|
||||
|
||||
# Remove Opal-RT block sources from the list of S-Functions: they are provided with RT-LAB
|
||||
# Leave any other S-Functions.
|
||||
SFS_TMP1 = $(S_FUNCTIONS:recv_param.c=)
|
||||
SFS_TMP1a = $(SFS_TMP1:RECV_Param.c=)
|
||||
SFS_TMP2 = $(SFS_TMP1a:recv_rt.c=)
|
||||
SFS_TMP3 = $(SFS_TMP2:op_send.c=)
|
||||
SFS_TMP3a = $(SFS_TMP3:OP_SEND.c=)
|
||||
SFS_TMP4 = $(SFS_TMP3a:send_rt.c=)
|
||||
SFS_TMP10 = $(SFS_TMP4:sfun_timing.c=)
|
||||
SFS_TMP11 = $(SFS_TMP10:optrigger.c=)
|
||||
SFS_TMP19 = $(SFS_TMP11:opsnapshot.c=)
|
||||
SFS_TMP20 = $(SFS_TMP19:opwritefile.c=)
|
||||
SFS_TMP21 = $(SFS_TMP20:send_fw.c=)
|
||||
SFS_TMP22 = $(SFS_TMP21:recv_fw.c=)
|
||||
SFS_TMP23 = $(SFS_TMP22:simulation_info.c=)
|
||||
SFS_TMP25 = $(SFS_TMP23:usr_delay.c=)
|
||||
SFS_TMP26 = $(SFS_TMP25:simulation_events2.c=)
|
||||
|
||||
|
||||
SFS_TMP56 = $(SFS_TMP26:sfun_opfromfile.c=)
|
||||
SFS_TMP78 = $(SFS_TMP56:sfun_opexternvar.c=)
|
||||
SFS_TMP79 = $(SFS_TMP78:sfun_time_factor.c=)
|
||||
SFS_TMP80 = $(SFS_TMP79:sfun_ohci_info.c=)
|
||||
SFS_TMP84 = $(SFS_TMP80:simulation_events.c=)
|
||||
SFS_TMP88 = $(SFS_TMP84:sfun_sync_vme200_2.c=)
|
||||
SFS_TMP92 = $(SFS_TMP88:read_dinamo.c=)
|
||||
SFS_TMP93 = $(SFS_TMP92:sfun_subsystem_trigger.c=)
|
||||
SFS_TMP110 = $(SFS_TMP93:sfun_async_st_emit.c=)
|
||||
|
||||
SFS_TMP127 = $(SFS_TMP110:recv_ohci.c=)
|
||||
SFS_TMP128 = $(SFS_TMP127:send_ohci.c=)
|
||||
SFS_TMP129 = $(SFS_TMP128:error_status.c=)
|
||||
SFS_TMP130 = $(SFS_TMP129:fake_io.c=)
|
||||
SFS_TMP131 = $(SFS_TMP130:op_getpid.c=)
|
||||
SFS_TMP132 = $(SFS_TMP131:print_msg.c=)
|
||||
SFS_TMP133 = $(SFS_TMP132:read_pport.c=)
|
||||
SFS_TMP134 = $(SFS_TMP133:run_model.c=)
|
||||
|
||||
SFS_TMP138 = $(SFS_TMP134:opAssertion.c=)
|
||||
SFS_TMP139 = $(SFS_TMP138:checkoutputwidth.c=)
|
||||
SFS_TMP140 = $(SFS_TMP139:signalCompression.c=)
|
||||
SFS_TMP141 = $(SFS_TMP140:signalUncompression.c=)
|
||||
SFS_TMP142 = $(SFS_TMP141:opendianswapper.c=)
|
||||
SFS_TMP143 = $(SFS_TMP142:signalcompression.c=)
|
||||
SFS_TMP144 = $(SFS_TMP143:signaluncompression.c=)
|
||||
|
||||
SFS_TMP182 = $(SFS_TMP144:pause_model.c=)
|
||||
SFS_TMP183 = $(SFS_TMP182:opmonitor.c=)
|
||||
|
||||
SFS_TMP215 = $(SFS_TMP183:mstack_ccp_cal.c=)
|
||||
SFS_TMP216 = $(SFS_TMP215:mstack_ccp_in.c=)
|
||||
SFS_TMP217 = $(SFS_TMP216:mstack_analog_in.c=)
|
||||
SFS_TMP218 = $(SFS_TMP217:mstack_digital_in.c=)
|
||||
SFS_TMP219 = $(SFS_TMP218:mstack_ccp_ctl.c=)
|
||||
|
||||
SFS_TMP229 = $(SFS_TMP219:pycall.c=)
|
||||
|
||||
SFS_TMP238 = $(SFS_TMP229:sfun_opdataset.c=)
|
||||
SFS_TMP239 = $(SFS_TMP238:sfun_opinterpol.c=)
|
||||
SFS_TMP240 = $(SFS_TMP239:nrt.c=)
|
||||
SFS_TMP241 = $(SFS_TMP240:opplotfile.c=)
|
||||
SFS_TMP242 = $(SFS_TMP241:pubhlaclassattr.c=)
|
||||
SFS_TMP243 = $(SFS_TMP242:subhlaclassattr.c=)
|
||||
SFS_TMP244 = $(SFS_TMP243:pubhlainteraction.c=)
|
||||
SFS_TMP245 = $(SFS_TMP244:subhlainteraction.c=)
|
||||
SFS_TMP246 = $(SFS_TMP245:pubentitytype.c=)
|
||||
SFS_TMP247 = $(SFS_TMP246:hlafedoptions.c=)
|
||||
|
||||
SFS_TMP260 = $(SFS_TMP247:sfun_xplane.c=)
|
||||
SFS_TMP261 = $(SFS_TMP260:sfun_opjoystick.c=)
|
||||
|
||||
SFS_TMP262 = $(SFS_TMP261:fts2abcd.c=)
|
||||
SFS_TMP263 = $(SFS_TMP262:fts2flux.c=)
|
||||
SFS_TMP264 = $(SFS_TMP263:fts2dla.c=)
|
||||
SFS_TMP265 = $(SFS_TMP264:fts2hfun.c=)
|
||||
SFS_TMP266 = $(SFS_TMP265:fts2abcd_dtc.c=)
|
||||
|
||||
SFS_TMP270 = $(SFS_TMP266:sfun_conversion.c=)
|
||||
SFS_TMP271 = $(SFS_TMP270:sfun_elements_demux.c=)
|
||||
SFS_TMP272 = $(SFS_TMP271:sfun_blob_decimation.c=)
|
||||
SFS_TMP273 = $(SFS_TMP272:sfun_dynamic_rescale.c=)
|
||||
SFS_TMP274 = $(SFS_TMP273:sfun_DBL2SFP.c=)
|
||||
SFS_TMP275 = $(SFS_TMP274:sfun_SFP2DBL.c=)
|
||||
SFS_TMP276 = $(SFS_TMP275:OpDVP.c=)
|
||||
SFS_TMP277 = $(SFS_TMP276:OpRfm.c=)
|
||||
SFS_TMP278 = $(SFS_TMP277:OpHei.c=)
|
||||
SFS_TMP279 = $(SFS_TMP278:OpPickeringBattSim.c=)
|
||||
SFS_TMP280 = $(SFS_TMP279:OpOutput.c=)
|
||||
SFS_TMP281 = $(SFS_TMP280:OpInput.c=)
|
||||
SFS_TMP282 = $(SFS_TMP281:sfun_arincEncoder.c=)
|
||||
SFS_TMP283 = $(SFS_TMP282:sfun_arincDecoder.c=)
|
||||
|
||||
S_FUNC_SRCS = $(SFS_TMP283:optaketime.c=)
|
||||
|
||||
|
||||
#############################################################################
|
||||
#
|
||||
# For CarSim/VehSim/TruckSim by Mechanical SImulation Corp.
|
||||
#
|
||||
# The product name: MSC_PRODUCT_ID carsim, vehsim, trucksim
|
||||
# The product type: MSC_PRODUCT_TYPE i_i, i_s__ss, s_ss ...
|
||||
# Version Number: MSC_PRODUCT_VERSION 5.25, 6.02, 3.04 ...
|
||||
#
|
||||
#############################################################################
|
||||
ifeq "$(MSC_PRODUCT_TYPE)" ""
|
||||
# Do nothing here
|
||||
else
|
||||
include /usr/$(MSC_PRODUCT_ID)/$(MSC_PRODUCT_VERSION)/$(MSC_PRODUCT_ID).opt
|
||||
endif
|
||||
#
|
||||
#############################################################################
|
||||
# End CarSim/TruckSim/VehSim
|
||||
#############################################################################
|
||||
|
||||
SHARED_SRC := $(subst \,/,$(SHARED_SRC))
|
||||
SHARED_SRC := $(wildcard $(SHARED_SRC))
|
||||
|
||||
SHARED_SRC_DIR := $(subst \,/,$(SHARED_SRC_DIR))
|
||||
|
||||
ifeq ($(MODELREF_TARGET_TYPE), NONE)
|
||||
# Top model for RTW
|
||||
SRCS1 += $(MODEL).c model_main.c rt_sim.c $(RTWLOG) $(SOLVER) $(EXT_SRC) $(MODULES_SRCS) $(SHARED_SRC)
|
||||
SRCS1 += $(INTERNAL_ADD_SOURCE_FILE) $(S_FUNC_SRCS) $(USER_SRCS)
|
||||
SRCS = $(filter-out $(INTERNAL_IGN_SOURCE_FILE), $(sort $(SRCS1)))
|
||||
|
||||
else
|
||||
# sub-model for RTW
|
||||
SRCS1 += $(MODULES_SRCS)
|
||||
SRCS1 += $(INTERNAL_ADD_SOURCE_FILE) $(S_FUNC_SRCS) $(USER_SRCS)
|
||||
SRCS = $(filter-out $(INTERNAL_IGN_SOURCE_FILE), $(sort $(SRCS1)))
|
||||
endif
|
||||
|
||||
|
||||
ifeq "$(UNAME)" "QNX" ##### nto
|
||||
ifeq ($(MODELREF_TARGET_TYPE), NONE)
|
||||
include qnxnto.opt
|
||||
else
|
||||
include $(RELATIVE_PATH_TO_ANCHOR)/qnxnto.opt
|
||||
endif
|
||||
else
|
||||
ifeq "$(UNAME)" "Linux" ##### Linux (RedHawk)
|
||||
MACHINE = $(shell uname -m)
|
||||
ifeq "$(MACHINE)" "x86_64"
|
||||
ifeq ($(MODELREF_TARGET_TYPE), NONE)
|
||||
include linux64.opt
|
||||
else
|
||||
include $(RELATIVE_PATH_TO_ANCHOR)/linux64.opt
|
||||
endif
|
||||
else
|
||||
ifeq ($(MODELREF_TARGET_TYPE), NONE)
|
||||
include linux32.opt
|
||||
else
|
||||
include $(RELATIVE_PATH_TO_ANCHOR)/linux32.opt
|
||||
endif
|
||||
endif
|
||||
else
|
||||
ifeq ($(MODELREF_TARGET_TYPE), NONE)
|
||||
include win32.opt
|
||||
else
|
||||
include $(RELATIVE_PATH_TO_ANCHOR)/OpNTtarget/win32.opt
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
#------------------------------ Include Path -----------------------------
|
||||
|
||||
MATLAB_INCLUDES = -I$(TARGET_MATLAB_ROOT)/simulink/include \
|
||||
-I$(TARGET_MATLAB_ROOT)/extern/include \
|
||||
-I$(TARGET_MATLAB_ROOT)/rtw/c/src \
|
||||
-I$(TARGET_MATLAB_ROOT)/rtw/c/src/matrixmath \
|
||||
-I$(TARGET_MATLAB_ROOT)/rtw/c/libsrc \
|
||||
|
||||
ifeq "$(UNAME)" "QNX" ##### nto
|
||||
MATLAB_INCLUDES += -I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/drive \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/mech \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/foundation \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/network_engine \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/ne_sli \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/dspblks/include \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/compiler/core/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/engine/sli/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/engine/core/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/utils
|
||||
else
|
||||
ifeq "$(UNAME)" "Linux" ##### Linux (RedHawk)
|
||||
MATLAB_INCLUDES += -I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/drive \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/mech \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/foundation \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/network_engine \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/ne_sli \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/dspblks/include \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/compiler/core/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/engine/sli/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/engine/core/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/simscape/include/utils
|
||||
else
|
||||
MATLAB_INCLUDES += -I$(TARGET_MATLAB_ROOT)/toolbox/physmod/drive/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/physmod/mech/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/physmod/foundation/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/physmod/ne_sli/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/physmod/simscape/engine/sli/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/physmod/simscape/engine/core/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/physmod/network_engine/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/physmod/common/foundation/core/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/physmod/simscape/compiler/core/c \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/physmod/extern/include \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/physmod/smlink/api/include \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/dsp/include \
|
||||
-I$(TARGET_MATLAB_ROOT)/toolbox/dspblks/include
|
||||
endif
|
||||
endif
|
||||
|
||||
RTLAB_INCLUDES = \
|
||||
-I$(TARGET_RTLAB_ROOT)/common/include \
|
||||
-I$(TARGET_RTLAB_ROOT)/common/include_target \
|
||||
-I$(TARGET_RTLAB_ROOT)/RT-LAB/include
|
||||
|
||||
SHARED_INCLUDES =
|
||||
ifneq ($(SHARED_SRC_DIR),)
|
||||
SHARED_INCLUDES = -I$(SHARED_SRC_DIR)
|
||||
endif
|
||||
|
||||
INCLUDES = -I. $(MATLAB_INCLUDES) $(RTLAB_INCLUDES) $(INTERNAL_INCLUDE_PATH) $(USER_INCS) $(MODELREF_INC_PATH) $(SHARED_INCLUDES)
|
||||
|
||||
|
||||
#------------------------ rtModel ----------------------------------------------
|
||||
#define USE_RTMODEL 1
|
||||
RTM_CC_OPTS = -DUSE_RTMODEL
|
||||
ifeq ($(OP_DISCRETE_SOLVER),1)
|
||||
RTM_CC_OPTS = -DUSE_RTMODEL -DDISCRETE_SOLVER
|
||||
endif
|
||||
|
||||
#-------------------------------- C Flags --------------------------------
|
||||
# General User Options
|
||||
#OLDMATLABVERSION = 0
|
||||
|
||||
ifeq ($(OP_MATLABR2011B),1)
|
||||
MATLABVERSION_CFLAGS = -DOP_MATLABR2011B
|
||||
endif
|
||||
ifeq ($(OP_MATLABR2012A),1)
|
||||
MATLABVERSION_CFLAGS = -DOP_MATLABR2012A
|
||||
endif
|
||||
ifeq ($(OP_MATLABR2012B),1)
|
||||
MATLABVERSION_CFLAGS = -DOP_MATLABR2012B
|
||||
endif
|
||||
ifeq ($(OP_MATLABR2013A),1)
|
||||
MATLABVERSION_CFLAGS = -DOP_MATLABR2013A
|
||||
endif
|
||||
ifeq ($(OP_MATLABR2013B),1)
|
||||
MATLABVERSION_CFLAGS = -DOP_MATLABR2013B
|
||||
endif
|
||||
ifeq ($(OP_MATLABR2014A),1)
|
||||
MATLABVERSION_CFLAGS = -DOP_MATLABR2014A
|
||||
endif
|
||||
ifeq ($(OP_MATLABR2014B),1)
|
||||
MATLABVERSION_CFLAGS = -DOP_MATLABR2014B
|
||||
endif
|
||||
ifeq ($(OP_MATLABR2015A),1)
|
||||
MATLABVERSION_CFLAGS = -DOP_MATLABR2015A
|
||||
endif
|
||||
OPTS =
|
||||
|
||||
ANSI_OPTS =
|
||||
|
||||
CC_OPTS = -c $(OPT_OPTS) $(OPTS) $(ANSI_OPTS) $(EXT_CC_OPTS) $(RTM_CC_OPTS)
|
||||
CC_OPTS77 = -c $(OPT_OPTS77) $(OPTS) $(ANSI_OPTS) $(EXT_CC_OPTS) $(RTM_CC_OPTS)
|
||||
|
||||
CPP_REQ_DEFINES = -DMODEL=$(MODEL) -DRT=RT -DNUMST=$(NUMST) \
|
||||
-DTID01EQ=$(TID01EQ) -DNCSTATES=$(NCSTATES) \
|
||||
-DMT=$(MULTITASKING) \
|
||||
-DTERMFCN=$(TERMFCN) \
|
||||
-DMULTITASKING=$(MULTITASKING) -D_SIMULINK -DRTLAB $(MATLABVERSION_CFLAGS)
|
||||
|
||||
# Skip variables that have not been expanded (they contain |>)
|
||||
|
||||
ifeq (,$(findstring |>,$(MAT_FILE)))
|
||||
CPP_REQ_DEFINES += -DMAT_FILE=$(MAT_FILE)
|
||||
endif
|
||||
ifeq (,$(findstring |>,$(CLASSIC_INTERFACE)))
|
||||
CPP_REQ_DEFINES += -DCLASSIC_INTERFACE=$(CLASSIC_INTERFACE)
|
||||
endif
|
||||
ifeq (,$(findstring |>,$(ONESTEPFCN)))
|
||||
CPP_REQ_DEFINES += -DONESTEPFCN=$(ONESTEPFCN)
|
||||
endif
|
||||
ifeq (,$(findstring |>,$(MULTI_INSTANCE_CODE)))
|
||||
CPP_REQ_DEFINES += -DMULTI_INSTANCE_CODE=$(MULTI_INSTANCE_CODE)
|
||||
endif
|
||||
|
||||
CFLAGS = $(CC_OPTS) $(CPP_REQ_DEFINES) $(TARGET_CFLAGS) $(INCLUDES)
|
||||
CFLAGS77 = $(CC_OPTS77) $(CPP_REQ_DEFINES) $(TARGET_CFLAGS) $(INCLUDES)
|
||||
|
||||
#------------------------------- LD Flags --------------------------------
|
||||
LDFLAGS = $(LD_DEBUG_OPTS) $(LIBPATH) $(EXT_LD_OPTS) $(RTLAB_LDFLAGS)
|
||||
|
||||
|
||||
#--------------------------------- Rules ---------------------------------
|
||||
|
||||
ifeq "$(UNAME)" "QNX" ##### nto
|
||||
ifeq ($(MODELREF_TARGET_TYPE), NONE)
|
||||
include posix.rules
|
||||
else
|
||||
include $(RELATIVE_PATH_TO_ANCHOR)/posix.rules
|
||||
endif
|
||||
else
|
||||
ifeq "$(UNAME)" "Linux" ##### Linux (RedHawk)
|
||||
ifeq ($(MODELREF_TARGET_TYPE), NONE)
|
||||
include posix.rules
|
||||
else
|
||||
include $(RELATIVE_PATH_TO_ANCHOR)/posix.rules
|
||||
endif
|
||||
else
|
||||
ifeq ($(MODELREF_TARGET_TYPE), NONE)
|
||||
include win32.rules
|
||||
else
|
||||
include $(RELATIVE_PATH_TO_ANCHOR)/OpNTtarget/win32.rules
|
||||
endif
|
||||
|
||||
|
||||
# Libraries:
|
||||
ifeq ($(USE_EXPAND_RTWLIB),1)
|
||||
|
||||
else
|
||||
|
||||
MODULES_rtwlib = rt_backsubcc_dbl.obj \
|
||||
rt_backsubcc_sgl.obj \
|
||||
rt_backsubrc_dbl.obj \
|
||||
rt_backsubrc_sgl.obj \
|
||||
rt_backsubrr_dbl.obj \
|
||||
rt_backsubrr_sgl.obj \
|
||||
rt_forwardsubcc_dbl.obj \
|
||||
rt_forwardsubcc_sgl.obj \
|
||||
rt_forwardsubcr_dbl.obj \
|
||||
rt_forwardsubcr_sgl.obj \
|
||||
rt_forwardsubrc_dbl.obj \
|
||||
rt_forwardsubrc_sgl.obj \
|
||||
rt_forwardsubrr_dbl.obj \
|
||||
rt_forwardsubrr_sgl.obj \
|
||||
rt_lu_cplx.obj \
|
||||
rt_lu_cplx_sgl.obj \
|
||||
rt_lu_real.obj \
|
||||
rt_lu_real_sgl.obj \
|
||||
rt_matdivcc_dbl.obj \
|
||||
rt_matdivcc_sgl.obj \
|
||||
rt_matdivcr_dbl.obj \
|
||||
rt_matdivcr_sgl.obj \
|
||||
rt_matdivrc_dbl.obj \
|
||||
rt_matdivrc_sgl.obj \
|
||||
rt_matdivrr_dbl.obj \
|
||||
rt_matdivrr_sgl.obj \
|
||||
rt_matmultandinccc_dbl.obj \
|
||||
rt_matmultandinccc_sgl.obj \
|
||||
rt_matmultandinccr_dbl.obj \
|
||||
rt_matmultandinccr_sgl.obj \
|
||||
rt_matmultandincrc_dbl.obj \
|
||||
rt_matmultandincrc_sgl.obj \
|
||||
rt_matmultandincrr_dbl.obj \
|
||||
rt_matmultandincrr_sgl.obj \
|
||||
rt_matmultcc_dbl.obj \
|
||||
rt_matmultcc_sgl.obj \
|
||||
rt_matmultcr_dbl.obj \
|
||||
rt_matmultcr_sgl.obj \
|
||||
rt_matmultrc_dbl.obj \
|
||||
rt_matmultrc_sgl.obj \
|
||||
rt_matmultrr_dbl.obj \
|
||||
rt_matmultrr_sgl.obj
|
||||
endif
|
||||
|
||||
$(RTWLIB) :
|
||||
@echo ### Creating $@
|
||||
-@md $(RTW_PROGRAMDATA_PATH)
|
||||
-@md $(RTWLIB_PATH)
|
||||
|
||||
ifeq ($(USE_EXPAND_RTWLIB),1)
|
||||
$(CC) $(CFLAGS) $(ALT_MATLAB_ROOT)\rtw\c\src\*.c
|
||||
else
|
||||
$(CC) $(CFLAGS) $(ALT_MATLAB_ROOT)\rtw\c\src\matrixmath\*.c
|
||||
endif
|
||||
$(LIBCMD) /nologo /out:$@ $(MODULES_rtwlib)
|
||||
@echo ### Created $@
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
|
||||
ifeq "$(UNAME)" "QNX" ##### nto
|
||||
MODELREF_LINK_LIBS_MAIN :
|
||||
@for A in $(MODELREFS); do $(MAKE) -C $(SHARED_SRC_DIR)/../$$A -f $$A.mk; done
|
||||
else
|
||||
ifeq "$(UNAME)" "Linux" ##### Linux (RedHawk)
|
||||
MODELREF_LINK_LIBS_MAIN :
|
||||
@for A in $(MODELREFS); do $(MAKE) -C $(SHARED_SRC_DIR)/../$$A -f $$A.mk; done
|
||||
else
|
||||
MODELREF_LINK_LIBS_MAIN :
|
||||
@FOR %A IN ($(MODELREFS)) DO $(MAKE) -C $(SHARED_SRC_DIR)/../%A -f %A.mk
|
||||
endif
|
||||
endif
|
|
@ -1 +0,0 @@
|
|||
!/home/win7-lab/c/users/opal-user/opal-rt/msv-ufa/test1/models/send_receive/send_receive_sm_model/send_receive_1_sm_model 5e-005 1 6750209 65552 1 2 134.130.169.16:59083
|
|
@ -1,480 +0,0 @@
|
|||
/*
|
||||
* send_receive_1_sm_model_data.c
|
||||
*
|
||||
* Code generation for model "send_receive_1_sm_model.mdl".
|
||||
*
|
||||
* Model version : 1.453
|
||||
* Simulink Coder version : 8.1 (R2011b) 08-Jul-2011
|
||||
* C source code generated on : Thu Apr 27 18:29:02 2017
|
||||
*
|
||||
* Target selection: rtlab_rtmodel.tlc
|
||||
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||
* Embedded hardware selection: 32-bit Generic
|
||||
* Code generation objectives: Unspecified
|
||||
* Validation result: Not run
|
||||
*/
|
||||
#include "send_receive_1_sm_model.h"
|
||||
#include "send_receive_1_sm_model_private.h"
|
||||
|
||||
/* Block parameters (auto storage) */
|
||||
Parameters_send_receive_1_sm_model send_receive_1_sm_model_P = {
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S1>/S-Function1'
|
||||
*/
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S1>/S-Function'
|
||||
*/
|
||||
1.0, /* Expression: 1
|
||||
* Referenced by: '<S2>/data ready 2 kHz'
|
||||
*/
|
||||
10.0, /* Expression: 10
|
||||
* Referenced by: '<S2>/data ready 2 kHz'
|
||||
*/
|
||||
1.0, /* Expression: 1
|
||||
* Referenced by: '<S2>/data ready 2 kHz'
|
||||
*/
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S2>/data ready 2 kHz'
|
||||
*/
|
||||
|
||||
/* Expression: [1 2 3 4]
|
||||
* Referenced by: '<S2>/Constant'
|
||||
*/
|
||||
{ 1.0, 2.0, 3.0, 4.0 },
|
||||
5.0, /* Expression: 5
|
||||
* Referenced by: '<S2>/Pulse Generator1'
|
||||
*/
|
||||
2000.0, /* Computed Parameter: PulseGenerator1_Period
|
||||
* Referenced by: '<S2>/Pulse Generator1'
|
||||
*/
|
||||
600.0, /* Computed Parameter: PulseGenerator1_Duty
|
||||
* Referenced by: '<S2>/Pulse Generator1'
|
||||
*/
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S2>/Pulse Generator1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction2_P1_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
1.0, /* Expression: ctl_id
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction2_P2_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
1.0, /* Expression: send_id
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction2_P3_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
3.0, /* Expression: mode
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction2_P4_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
1.0, /* Expression: fp1
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction2_P5_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
2.0, /* Expression: fp2
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction2_P6_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
3.0, /* Expression: fp3
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction2_P7_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
4.0, /* Expression: fp4
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction2_P8_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
5.0, /* Expression: fp5
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction2_P9_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: SFunction2_P9
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 115.0, 116.0, 114.0, 105.0, 110.0, 103.0, 49.0 },
|
||||
|
||||
/* Computed Parameter: SFunction2_P10_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: SFunction2_P10
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 115.0, 116.0, 114.0, 105.0, 110.0, 103.0, 50.0 },
|
||||
|
||||
/* Computed Parameter: SFunction2_P11_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: SFunction2_P11
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 115.0, 116.0, 114.0, 105.0, 110.0, 103.0, 51.0 },
|
||||
|
||||
/* Computed Parameter: SFunction2_P12_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: SFunction2_P12
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 115.0, 116.0, 114.0, 105.0, 110.0, 103.0, 52.0 },
|
||||
|
||||
/* Computed Parameter: SFunction2_P13_Size
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: SFunction2_P13
|
||||
* Referenced by: '<S5>/S-Function2'
|
||||
*/
|
||||
{ 115.0, 116.0, 114.0, 105.0, 110.0, 103.0, 53.0 },
|
||||
2.0, /* Expression: 2
|
||||
* Referenced by: '<S2>/timeout'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction1_P1_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
1.0, /* Expression: ctl_id
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction1_P2_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
1.0, /* Expression: recv_id
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction1_P3_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
1.0, /* Expression: fp1
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction1_P4_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
2.0, /* Expression: fp2
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction1_P5_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
3.0, /* Expression: fp3
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction1_P6_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
4.0, /* Expression: fp4
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction1_P7_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
5.0, /* Expression: fp5
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: SFunction1_P8_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: SFunction1_P8
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 115.0, 116.0, 114.0, 105.0, 110.0, 103.0, 49.0 },
|
||||
|
||||
/* Computed Parameter: SFunction1_P9_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: SFunction1_P9
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 115.0, 116.0, 114.0, 105.0, 110.0, 103.0, 50.0 },
|
||||
|
||||
/* Computed Parameter: SFunction1_P10_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: SFunction1_P10
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 115.0, 116.0, 114.0, 105.0, 110.0, 103.0, 51.0 },
|
||||
|
||||
/* Computed Parameter: SFunction1_P11_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: SFunction1_P11
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 115.0, 116.0, 114.0, 105.0, 110.0, 103.0, 52.0 },
|
||||
|
||||
/* Computed Parameter: SFunction1_P12_Size
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: SFunction1_P12
|
||||
* Referenced by: '<S3>/S-Function1'
|
||||
*/
|
||||
{ 115.0, 116.0, 114.0, 105.0, 110.0, 103.0, 53.0 },
|
||||
|
||||
/* Computed Parameter: SFunction_P1_Size
|
||||
* Referenced by: '<S7>/S-Function'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
1.0, /* Expression: Acqu_group
|
||||
* Referenced by: '<S7>/S-Function'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P1_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
1.0, /* Expression: ctl_id
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P2_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
1.0, /* Expression: proto
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P3_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
12000.0, /* Expression: ip_port_remote
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P4_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
12001.0, /* Expression: ip_port_local
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P5_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P6_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P7_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P8_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P9_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P10_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P11_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P12_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P13_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
0.0, /* Expression: 0
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P14_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 14.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P14
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 49.0, 51.0, 52.0, 46.0, 49.0, 51.0, 48.0, 46.0, 49.0, 54.0, 57.0, 46.0, 51.0,
|
||||
49.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P15_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P15
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 48.0, 46.0, 48.0, 46.0, 48.0, 46.0, 48.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P16_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 0.0, 0.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P17_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 0.0, 0.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P18_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 0.0, 0.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P19_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 0.0, 0.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P20_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 0.0, 0.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P21_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 0.0, 0.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P22_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 0.0, 0.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P23_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 0.0, 0.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P24_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 0.0, 0.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P25_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 0.0, 0.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P26_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 7.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P26
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 65.0, 115.0, 121.0, 110.0, 99.0, 73.0, 80.0 },
|
||||
|
||||
/* Computed Parameter: OpIPSocketCtrl1_P27_Size
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
{ 1.0, 1.0 },
|
||||
0.0 /* Expression: 0
|
||||
* Referenced by: '<S2>/OpIPSocketCtrl1'
|
||||
*/
|
||||
};
|
|
@ -1,38 +0,0 @@
|
|||
/*
|
||||
* send_receive_1_sm_model_private.h
|
||||
*
|
||||
* Code generation for model "send_receive_1_sm_model.mdl".
|
||||
*
|
||||
* Model version : 1.453
|
||||
* Simulink Coder version : 8.1 (R2011b) 08-Jul-2011
|
||||
* C source code generated on : Thu Apr 27 18:29:02 2017
|
||||
*
|
||||
* Target selection: rtlab_rtmodel.tlc
|
||||
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||
* Embedded hardware selection: 32-bit Generic
|
||||
* Code generation objectives: Unspecified
|
||||
* Validation result: Not run
|
||||
*/
|
||||
#ifndef RTW_HEADER_send_receive_1_sm_model_private_h_
|
||||
#define RTW_HEADER_send_receive_1_sm_model_private_h_
|
||||
#include "rtwtypes.h"
|
||||
#ifndef __RTWTYPES_H__
|
||||
#error This file requires rtwtypes.h to be included
|
||||
#else
|
||||
#ifdef TMWTYPES_PREVIOUSLY_INCLUDED
|
||||
#error This file requires rtwtypes.h to be included before tmwtypes.h
|
||||
#else
|
||||
|
||||
/* Check for inclusion of an incorrect version of rtwtypes.h */
|
||||
#ifndef RTWTYPES_ID_C08S16I32L32N32F1
|
||||
#error This code was generated with a different "rtwtypes.h" than the file included
|
||||
#endif /* RTWTYPES_ID_C08S16I32L32N32F1 */
|
||||
#endif /* TMWTYPES_PREVIOUSLY_INCLUDED */
|
||||
#endif /* __RTWTYPES_H__ */
|
||||
|
||||
extern void sfun_send_async(SimStruct *rts);
|
||||
extern void sfun_recv_async(SimStruct *rts);
|
||||
extern void OP_SEND(SimStruct *rts);
|
||||
extern void sfun_gen_async_ctrl(SimStruct *rts);
|
||||
|
||||
#endif /* RTW_HEADER_send_receive_1_sm_model_private_h_ */
|
|
@ -1,27 +0,0 @@
|
|||
/*
|
||||
* send_receive_1_sm_model_types.h
|
||||
*
|
||||
* Code generation for model "send_receive_1_sm_model.mdl".
|
||||
*
|
||||
* Model version : 1.453
|
||||
* Simulink Coder version : 8.1 (R2011b) 08-Jul-2011
|
||||
* C source code generated on : Thu Apr 27 18:29:02 2017
|
||||
*
|
||||
* Target selection: rtlab_rtmodel.tlc
|
||||
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||
* Embedded hardware selection: 32-bit Generic
|
||||
* Code generation objectives: Unspecified
|
||||
* Validation result: Not run
|
||||
*/
|
||||
#ifndef RTW_HEADER_send_receive_1_sm_model_types_h_
|
||||
#define RTW_HEADER_send_receive_1_sm_model_types_h_
|
||||
#include "rtwtypes.h"
|
||||
|
||||
/* Parameters (auto storage) */
|
||||
typedef struct Parameters_send_receive_1_sm_model_
|
||||
Parameters_send_receive_1_sm_model;
|
||||
|
||||
/* Forward declaration for rtModel */
|
||||
typedef struct RT_MODEL_send_receive_1_sm_model RT_MODEL_send_receive_1_sm_model;
|
||||
|
||||
#endif /* RTW_HEADER_send_receive_1_sm_model_types_h_ */
|
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue