1
0
Fork 0
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:
Steffen Vogel 2017-06-29 19:42:15 +02:00
parent 0b12340dfc
commit 130b8cf21d
111 changed files with 0 additions and 42263 deletions

View file

@ -1 +0,0 @@
*.log

View file

@ -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>

View file

@ -1,2 +0,0 @@
eclipse.preferences.version=1
rtprojectfile=villas_udp.llp

View file

@ -1,3 +0,0 @@
OPAL-1.0 Object
ListMap<String,Link<DriverDefinition>> {
}

View file

@ -1,17 +0,0 @@
[
{"version":2},
{
"Opal::Simulation::SerializeableAliasList":
{
"copyOnWrite":0,
"locked":0,
"name":"D804207F-3D61-429A-9CBD-659A211EF103",
"versioned":0,
"aliasSets":
[
],
"history":"",
"parent":"/"
}
}
]

View file

@ -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=/
}

View file

@ -1,8 +0,0 @@
*.o
*.d
AsyncIP
Opcommon/
report/
*_sm_model/
*_ss_model/
*_sc_console.mdl

View file

@ -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)

View file

@ -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_ */

View file

@ -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);

View file

@ -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));

View file

@ -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_ */

View file

@ -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_ */

View file

@ -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

View file

@ -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=

View file

@ -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);
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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);
}

View file

@ -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;
}

View file

@ -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>

View file

@ -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>

View file

@ -1,2 +0,0 @@
eclipse.preferences.version=1
rtprojectfile=villas_udp.llp

File diff suppressed because it is too large Load diff

View file

@ -1,3 +0,0 @@
OPAL-1.0 Object
ListMap<String,Link<DriverDefinition>> {
}

View file

@ -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=/
}

View file

@ -1,3 +0,0 @@
*.o
*.d
AsyncIP

View file

@ -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)

View file

@ -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

View file

@ -1,3 +0,0 @@
[General]
aliascnt=0
[Alias]

View file

@ -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

View file

@ -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

View file

@ -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]

View file

@ -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

View file

@ -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

View file

@ -1,2 +0,0 @@
send_receive/sm_model,send_receive_1_sm_model,1
send_receive/sc_console,send_receive_2_sc_console,2

View file

@ -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

View file

@ -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

View file

@ -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_ */

View file

@ -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);

View file

@ -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));

View file

@ -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_ */

View file

@ -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_ */

View file

@ -1,3 +0,0 @@
function swapClass(obj, cls) {
obj.className = cls
}

View file

@ -1,3 +0,0 @@
.hideprint{
display: none;
}

View file

@ -1,3 +0,0 @@
.hidescreen{
display: none;
}

View file

@ -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

View file

@ -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>

View file

@ -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)
}
}
}

View file

@ -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)&gt;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)&gt;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)&gt;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)&gt;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,'&#10;')">
<xsl:value-of select="substring-before($string,'&#10;')"/>
<br/>
<xsl:call-template name="replaceBackSlashN">
<xsl:with-param name="string" select="substring-after($string,'&#10;')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View file

@ -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>

View file

@ -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

View file

@ -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=

View file

@ -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

View file

@ -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

View file

@ -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;
}

View file

@ -1,8 +0,0 @@
MODEL=send_receive_1_sm_model
NUMST=1
NCSTATES=0
HAVESTDIO
RT
USE_RTMODEL
INTEGER_CODE=0
MT=0

View file

@ -1 +0,0 @@
send_receive_1_sm_model.c rt_matrx.c rt_printf.c rt_logging.c

View file

@ -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;
}

View file

@ -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_ */

View file

@ -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;
}

View file

@ -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_ */

View file

@ -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_ */

View file

@ -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));
}

View file

@ -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_ */

View file

@ -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_ */

View file

@ -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

View file

@ -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

View file

@ -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|

View file

@ -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

View file

@ -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

View file

@ -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'
*/
};

View file

@ -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_ */

View file

@ -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_ */

Some files were not shown because too many files have changed in this diff Show more