Commit f18c8562 authored by julien.delange's avatar julien.delange

import polyorb-hi-ada, polyorb-hi-c and ocarina



git-svn-id: https://tecsw.estec.esa.int/svn/taste/trunk/po-hi-c@457 129961e7-ef38-4bb5-a8f7-c9a525a55882
parents
Julien Delange <delange@enst.fr>
Jerome Hugues <hugues@enst.fr>
Laurent Pautet <pautet@enst.fr>
This diff is collapsed.
This diff is collapsed.
Quick installation instructions for PolyORB-HI-C:
=================================================
Please refer to the provided user's guide for more
detailed installation instructions.
BUILD REQUIREMENTS:
===================
- Gnu C Compiler (aka GCC, see http://gcc.gnu.org/). Compiler
provided by most of Linux distribution is sufficient. However,
you'll need cross-compiler if you try to generate code for
embedded architectures. In this case, please refer to the
manual of PolyORB-HI-C.
- The latest snapshot of the Ocarina AADL tool suite
(http://ocarina.enst.fr/snapshots/).
BUILD AND INSTALLATION INSTRUCTIONS:
====================================
- Install Ocarina as specified by their respective
documentations and make sure their 'bin' installation directories is
located at the top of your PATH environment variable.
- Issue ./configure
- Issue make && make install. It will install the runtime
in a directory of Ocarina. You must have the rights to write
into the Ocarina installation directory to install PolyORB-HI-C.
To build the examples, and after installing PolyORB-HI-C, issue:
$> make examples
The generated code and the compiled nodes for each example are located
in examples/example_name/<main_aadl_system_name>
AUTOMAKE_OPTIONS = no-dependencies
CLEANFILES = config-stamp svn-commit*.tmp* *~
SUBDIRS = src support doc tools share include
DIST_SUBDIRS = $(SUBDIRS) examples
check-local:: examples
examples:: install
$(MAKE) -C examples build-all
run-examples::
$(MAKE) -C examples check-all
clean-examples::
$(MAKE) -C examples clean
distclean-examples::
$(MAKE) -C examples distclean
po_hi_doc_dir = ${shell $(CYGPATH_U) '$(OCARINA_PREFIX)/share/doc/ocarina'}
install-data-local:
$(MAKE) -C examples DESTDIR="$(DESTDIR)" install
$(INSTALL_DATA) $(srcdir)/ChangeLog $(DESTDIR)$(po_hi_doc_dir)/ChangeLog_polyorb_hi_c
uninstall-local:
$(MAKE) -C examples DESTDIR="$(DESTDIR)" uninstall
rm -f $(DESTDIR)$(po_hi_doc_dir)/ChangeLog_polyorb_hi_c
v1.0 (2008-05-12) : First release of PolyORB-HI-C
AC_PREREQ(2.60)
AC_INIT(PolyORB-HI/C, 1.0w, polyorb-hi-devel@listes.enst.fr)
AC_CONFIG_SRCDIR(src)
AC_CONFIG_AUX_DIR(support)
AC_CANONICAL_HOST
AM_INIT_AUTOMAKE([1.9 tar-pax] foreign)
AM_CONFIG_HEADER(include/po_hi_config.h)
CFLAGS="-Wall -O"
AC_PROG_CC
AC_LANG_C
AC_PROG_INSTALL
## We need some external programs in order to build
## PolyORB-HI-C and its documentation.
AC_CHECK_PROG(MV, mv, mv)
AC_CHECK_PROG(RM, rm, rm)
AC_CHECK_PROG(CP, cp, cp)
AC_CHECK_PROG(GREP, grep, grep)
AC_CHECK_PROG(CHMOD, chmod, chmod)
AC_CHECK_PROG(TEX, tex, tex)
AC_CHECK_PROG(BIBTEX, bibtex, bibtex)
AC_HEADER_STDBOOL
AC_CHECK_SIZEOF(char)
AC_CHECK_SIZEOF(float)
AC_CHECK_SIZEOF(double)
AC_CHECK_SIZEOF(long double)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(unsigned int)
AC_CHECK_SIZEOF(long int)
AC_CHECK_SIZEOF(unsigned long int)
AC_CHECK_SIZEOF(short int)
AC_CHECK_SIZEOF(unsigned short int)
AC_CHECK_FUNC(clock_gettime, AC_DEFINE(HAVE_CLOCK_GETTIME, [], [Check if the system supports the clock_gettime function]),)
AC_C_BIGENDIAN
##################################################
# Set CFLAGS and LDFLAGS for the native platform #
##################################################
NATIVE_CFLAGS="-DPOSIX"
NATIVE_LDFLAGS=""
SIMULINK_LDFLAGS=""
case ${host_os} in
*darwin*)
NATIVE_CFLAGS="${NATIVE_CFLAGS} -DNEED_CLOCK_GETTIME"
NATIVE_LDFLAGS="${NATIVE_LDFLAGS} -lpthread"
;;
*solaris*10*)
NATIVE_LDFLAGS="${NATIVE_LDFLAGS} -lrt"
;;
*)
NATIVE_LDFLAGS="${NATIVE_LDFLAGS} -lpthread -lrt"
SIMULINK_LDFLAGS="-lm"
;;
esac
AC_CHECK_LIB(socket, socket, [NATIVE_LDFLAGS="${NATIVE_LDFLAGS} -lsocket"])
AC_SUBST(NATIVE_CFLAGS)
AC_SUBST(NATIVE_LDFLAGS)
AC_SUBST(SIMULINK_LDFLAGS)
##########################################
# Check for Ocarina
##########################################
AM_PATH_OCARINA(1.1, ,AC_MSG_ERROR([Ocarina 1.1 or later is not installed on you
r system]))
AC_ARG_ENABLE(debug,
[ --enable-debug Turn on debugging options],
[ AC_DEFINE([__PO_HI_DEBUG], [], ["Enable debug options for PolyORB-HI-C"])])
AC_ARG_ENABLE(giop,
[ --enable-giop Use the GIOP protocol],
[ AC_DEFINE([__PO_HI_USE_GIOP], [], ["Enable the GIOP protocol"])])
############################################
# Set the value corresponding to cygpath -u
############################################
if test x"$CYGPATH_W" = x"echo"; then
CYGPATH_U="echo"
else
CYGPATH_U="cygpath -u"
fi
AC_SUBST(CYGPATH_U)
###############################################################
# Force the installation prefix to be equal to the Ocarina one
###############################################################
prefix='$(OCARINA_PREFIX)'
##########################################
# Output generated files
##########################################
dnl Important! One file per line, nothing before
dnl or after except whitespace! This section
dnl may, one day, be edited automatically to remove
dnl some entries.
AC_OUTPUT([
Makefile
doc/Makefile
src/Makefile
include/Makefile
examples/Makefile
examples/aadlv1/Makefile
examples/aadlv1/d3.1.3-1/Makefile
examples/aadlv1/ping/Makefile
examples/aadlv1/producer-consumer/Makefile
examples/aadlv1/flight-mgmt/Makefile
examples/aadlv1/rma/Makefile
examples/aadlv1/some-types/Makefile
examples/aadlv1/some-types-stdint/Makefile
examples/aadlv1/sunseeker/Makefile
examples/aadlv2/Makefile
examples/aadlv2/d3.1.3-1/Makefile
examples/aadlv2/import/Makefile
examples/aadlv2/ping/Makefile
examples/aadlv2/producer-consumer/Makefile
examples/aadlv2/flight-mgmt/Makefile
examples/aadlv2/rma/Makefile
examples/aadlv2/some-types/Makefile
examples/aadlv2/some-types-stdint/Makefile
examples/aadlv2/sunseeker/Makefile
tools/Makefile
tools/check-symbols/Makefile
tools/check-symbols/examples/Makefile
tools/check-symbols/examples/malloc/Makefile
tools/check-symbols/examples/strings/Makefile
tools/check-symbols/src/Makefile
share/Makefile
share/cheddar/Makefile
share/models/Makefile
share/ocarina/Makefile
share/tsim/Makefile
share/make/Makefile
share/make/Makefile.native
share/config/Makefile
share/config/spif-rtems/Makefile
share/config/leon-rtems/Makefile
support/Makefile
])
CODING GUIDELINES for PolyORB-HI
********************************
1. Don't use TAB characters, use space character instead
2. Don't put any space at the end of a line
3. Always indent the code
4. Don't have two blank lines
5. Don't put a space before ')' ar ofter a '('
6. Put a space before '(' and after ','
7. Don't end a line with a single '('
8. Don't have a single '(' on a line
9. Use brace as soon as possible
10. Try to comment the code as much as possible
11. Comment the functions in the header file
12. Use '__po_hi_' prefix for functions and global variables
13. Use '__PO_HI' prefix for macros and constants
14. The filename must have the prefix 'po_hi'
15. The comments should be written under the functions or structures
###############################################################################
# $Id: Makefile.am 6950 2009-08-25 08:06:54Z hugues $
# Makefile for the PolyORB HI User's Guide
###############################################################################
C_CODE = $(srcdir)/po_hi_messages.c
H_CODE = $(srcdir)/po_hi_messages.h $(srcdir)/po_hi_time.h \
$(srcdir)/po_hi_main.h $(srcdir)/po_hi_common.h \
$(srcdir)/po_hi_debug.h $(srcdir)/po_hi_marshallers.h \
$(srcdir)/po_hi_giop.h $(srcdir)/po_hi_gqueue.h \
$(srcdir)/po_hi_transport.h $(srcdir)/po_hi_returns.h \
$(srcdir)/po_hi_task.h $(srcdir)/po_hi_protocols.h \
$(srcdir)/po_hi_types.h $(srcdir)/po_hi_protected.h
SRC_CODE = $(C_CODE) $(H_CODE)
DOC_CODE = $(srcdir)/activity.c $(srcdir)/deployment.h \
$(srcdir)/deployment_c.c $(srcdir)/naming.c $(srcdir)/main.c \
$(srcdir)/toy_types.c $(srcdir)/toy_main.c \
$(srcdir)/toy_types.h $(srcdir)/data_struct.h \
$(srcdir)/node_b_activity.c $(srcdir)/marshallers.c \
$(srcdir)/subprograms.c
AADL_MODELS = $(srcdir)/complex_types.aadl $(srcdir)/do_ping_spg.aadl \
$(srcdir)/hardware.aadl $(srcdir)/node_a_model.aadl \
$(srcdir)/ping.aadl $(srcdir)/port_cnx.aadl \
$(srcdir)/processor_binding.aadl \
$(srcdir)/protected_object_types.aadl \
$(srcdir)/simple_types.aadl $(srcdir)/thread_a.aadl \
$(srcdir)/thread_a_full.aadl $(srcdir)/scenario_sample.aadl
FIGURES = $(srcdir)/fig/ping.eps $(srcdir)/fig/ping.pdf \
$(srcdir)/fig/ping.png
GUIDE = polyorb-hi-c_ug
###############################################################################
SRC_CODE_TEXIFILES = ${notdir $(SRC_CODE:.h=.h.texi) $(SRC_CODE:.c=.c.texi)}
DOC_CODE_TEXIFILES = ${notdir $(DOC_CODE:.h=.h.texi) $(DOC_CODE:.c=.c.texi)}
AADL_TEXIFILES = ${notdir $(AADL_MODELS:.aadl=.texi)}
GUIDE_TEXIFILES = polyorb-hi_ug_ref.texi $(SRC_CODE_TEXIFILES) \
$(DOC_CODE_TEXIFILES) $(AADL_TEXIFILES)
EXTRA_DIST= $(GUIDE_TEXIFILES) $(SRC_CODE) $(DOC_CODE) $(AADL_MODELS) \
$(srcdir)/CODING_GUIDELINES $(srcdir)/polyorb_hi.css \
$(srcdir)/conventions.texi $(srcdir)/gfdl.texi \
$(srcdir)/polyorb-hi_ug_ref.tex polyorb-hi_ug_ref.bbl \
polyorb-hi_ug_ref.aux $(srcdir)/polyorb-hi_ug.bib $(FIGURES)
info_TEXINFOS = polyorb-hi-c_ug.texi
polyorb_hi_c_ug_TEXINFOS = $(GUIDE_TEXIFILES)
SUFFIXES = .c .h .aadl .texi .sed .pdf .html
all-local: $(GUIDE_TEXIFILES) $(GUIDE).html $(GUIDE).pdf
###############################################################################
# The target below are active only in developper mode. In package
# mode, once the files in doc/ have been packages, they are not
# overriden.
$(SRC_CODE):
echo $(SRC_CODE_TEXINFOS)
for file in $(C_CODE); do \
cp -f $(top_srcdir)/src/`basename $${file}` $(srcdir); \
done
for file in $(H_CODE); do \
cp -f $(top_srcdir)/include/`basename $${file}` $(srcdir); \
done
$(DOC_CODE):
for file in $(DOC_CODE); do \
cp -f $(srcdir)/code/`basename $${file}` $(srcdir); \
done
$(AADL_MODELS):
for file in $(AADL_MODELS); do \
cp -f $(srcdir)/model/`basename $${file}` $(srcdir); \
done
###############################################################################
# The target below are used to build all elements of the documentation
# Targets to build a bibliography from BibTex files
polyorb-hi_ug_ref.texi: polyorb-hi_ug_ref.bbl
@sed -e 's/~/ /g' \
-e 's/\\[-`'\''"c^]//g' \
-e 's/\\emdash */---/g' \
-e 's/metapost/MetaPost/g' \
-e 's/\\MF/Metafont/g' \
-e 's/\\METAFONT/METAFONT/g' \
-e 's/\\TUB/TUGboat/g' \
-e 's/\\LaTeX/La@TeX/g' \
-e 's/\\AMSTEX/AMS@TeX/g' \
-e 's/\\AmSTeX/AMS@TeX/g' \
-e 's/\\TeX/@TeX/g' \
-e 's/\\noopsort{[^}]*}//g' \
-e 's/[{}\]//g' \
-e 's/@\[/{/g' \
-e 's/@\]/}/g' \
-e 's/@TeX/@TeX{}/g' \
$< >$@
polyorb-hi_ug_ref.bbl: polyorb-hi_ug_ref.aux
-TEXINPUTS="$(srcdir):.:" \
BIBINPUTS="$(srcdir):.:" \
BSTINPUTS="$(srcdir):.:" \
$(BIBTEX) polyorb-hi_ug_ref
polyorb-hi_ug_ref.aux: $(srcdir)/polyorb-hi_ug_ref.tex $(srcdir)/polyorb-hi_ug.bib
rm -f polyorb-hi_ug_ref.bbl
-TEXINPUTS="$(srcdir):.:" \
BIBINPUTS="$(srcdir):.:" \
BSTINPUTS="$(srcdir):.:" \
$(TEX) '\nonstopmode \input $<'
# The PolyORB HI User's Guide texi file does not provide Up links in
# @node commands, but we want to force generation of HTML
# documentation anyway.
$(GUIDE).html: $(srcdir)/$(GUIDE).texi
$(MAKEINFO) --css-include=$(srcdir)/polyorb_hi.css --html --number-sections $(srcdir)/$(GUIDE).texi -o $(GUIDE).html
rm -rf $(GUIDE).html/fig
mkdir -p $(GUIDE).html/fig
cp $(srcdir)/fig/*.png $(GUIDE).html/fig/
INDEX_FILE="$(GUIDE).html/index.html";\
TMP_FILE="$$INDEX_FILE.tmp"; \
cat "$$INDEX_FILE" | sed 's/$$LastChangedDate: \([^$$]*\) \$$/Last Modified: \1/g' > "$$TMP_FILE"; \
mv -f "$$TMP_FILE" "$$INDEX_FILE"
$(GUIDE).pdf: $(srcdir)/$(GUIDE).texi
-$(TEXI2DVI) -o $@ --pdf $<
po_hi_doc_dir=${shell $(CYGPATH_U) '$(OCARINA_PREFIX)/share/doc/ocarina'}
install-data-local: all
$(INSTALL) -d $(DESTDIR)$(po_hi_doc_dir)
$(INSTALL) -d $(DESTDIR)$(po_hi_doc_dir)/$(GUIDE).html
$(INSTALL) -d $(DESTDIR)$(po_hi_doc_dir)/$(GUIDE).html/fig
if [ -r $(GUIDE).pdf ]; then \
$(INSTALL_DATA) $(GUIDE).pdf $(DESTDIR)$(po_hi_doc_dir); \
for f in $(GUIDE).html/*.html; do \
$(INSTALL_DATA) $$f $(DESTDIR)$(po_hi_doc_dir)/$(GUIDE).html; \
done; \
for f in $(GUIDE).html/fig/*.png; do \
$(INSTALL_DATA) $$f $(DESTDIR)$(po_hi_doc_dir)/$(GUIDE).html/fig; \
done; \
else \
$(INSTALL_DATA) $(srcdir)/$(GUIDE).pdf $(DESTDIR)$(po_hi_doc_dir); \
for f in $(srcdir)/$(GUIDE).html/*.html; do \
$(INSTALL_DATA) $$f $(DESTDIR)$(po_hi_doc_dir)/$(GUIDE).html; \
done; \
for f in $(srcdir)/$(GUIDE).html/fig/*.png; do \
$(INSTALL_DATA) $$f $(DESTDIR)$(po_hi_doc_dir)/$(GUIDE).html/fig; \
done; \
fi
uninstall-local:
rm -f $(DESTDIR)$(po_hi_doc_dir)/$(GUIDE).pdf
rm -rf $(DESTDIR)$(po_hi_doc_dir)/$(GUIDE).html
clean-local:
@-rm -f *.aux *.log *.dvi *.bbl *.blg *~ *.bak *.toc
@-rm -f ${SRC_CODE} ${DOC_CODE} ${AADL_MODELS}
@-rm -f *.sed ${GUIDE_TEXIFILES}
realclean: clean
@-rm -f $(GUIDE).ps $(GUIDE).pdf $(GUIDE).info \
c.sed c.sed-stamp aadl.sed aadl.sed-stamp
DISTCLEANFILES = $(GUIDE).ps $(GUIDE).pdf $(GUIDE_TEXIFILES) \
c.sed c.sed-stamp aadl.sed aadl.sed-stamp
###############################################################################
# Texi generation from .h and .c files
#
%.h.texi: %.h $(top_srcdir)/support/gentexifile
$(MAKE) c.sed
$(SHELL) $(top_srcdir)/support/gentexifile $< NOGROUP
-@${RM} genout
%.c.texi: %.c $(top_srcdir)/support/gentexifile
$(MAKE) c.sed
$(SHELL) $(top_srcdir)/support/gentexifile $< NOGROUP
-@${RM} genout
%.texi: %.aadl $(top_srcdir)/support/gentexifile
$(MAKE) aadl.sed
$(SHELL) $(top_srcdir)/support/gentexifile $< NOGROUP
-@${RM} genout
C_KW = void int if switch case return char float uint8_t uint16_t \
struct typedef enum union
c.sed: c.sed-stamp
echo "s/\([^@]\)@\([^@]\)/\1@@\2/g" > c.sed
echo "s/{/@{/g" >> c.sed
echo "s/}/@}/g" >> c.sed
echo "s/-- \(.*\)$$/-- @i{\1}/" >> c.sed
echo "s/\([^-][^-][^\"]*\)\"\([^\"]*\)\"/\1\"@i{\2}\"/g" >> c.sed
echo "s/@@/@@@@/g" >> c.sed
echo "s/_@_/_@@_/g" >> c.sed
for kw in $(C_KW); do \
echo "s/^\([^-]* \)$$kw/\1@b{$$kw}/g" >> c.sed; \
echo "s/^\( *\)$$kw /\1@b{$$kw} /g" >> c.sed; \
echo "s/^$$kw$$/@b{$$kw}/g" >> c.sed; \
done
c.sed-stamp:
touch c.sed-stamp
AADL_KW = aadlboolean aadlinteger aadlreal aadlstring access all and \
annex applies binding bus calls classifier connections \
constant data delta device end enumeration event extends flow \
flows group implementation in inherit initial inverse is list \
memory mode modes none not of or out package parameter path \
port private process processor properties property provides \
public range reference refined refines requires server set \
sink source subcomponents subprogram system thread to true \
type units value
aadl.sed: aadl.sed-stamp
echo "s/\([^@]\)@\([^@]\)/\1@@\2/g" > aadl.sed
echo "s/@@/@@@@/g" >> aadl.sed
echo "s/_@_/_@@_/g" >> aadl.sed
echo "s/{/\@{/g" >> aadl.sed
echo "s/}/\@}/g" >> aadl.sed
echo "s/-- \(.*\)$$/-- @i{\1}/" >> aadl.sed
echo "s/\([^-][^-][^\"]*\)\"\([^\"]*\)\"/\1\"@i{\2}\"/g" >> aadl.sed
for kw in $(AADL_KW); do \
echo "s/^\([^-]* \)$$kw/\1@b{$$kw}/g" >> aadl.sed; \
echo "s/^\( *\)$$kw /\1@b{$$kw} /g" >> aadl.sed; \
echo "s/^$$kw$$/@b{$$kw}/g" >> aadl.sed; \
done
aadl.sed-stamp:
touch aadl.sed-stamp
dist-hook: all
cp -r $(srcdir)/$(GUIDE).html $(srcdir)/$(GUIDE).pdf $(distdir)
debug-makefile:
@echo "C_CODE = $(C_CODE)"
@echo "H_CODE = $(H_CODE)"
@echo "SRC_CODE = $(SRC_CODE)"
@echo "DOC_CODE = $(DOC_CODE)"
@echo "AADL_MODELS = $(AADL_MODELS)"
@echo "FIGURES = $(FIGURES)"
@echo "SRC_CODE_TEXIFILES = $(SRC_CODE_TEXIFILES)"
@echo "DOC_CODE_TEXIFILES = $(DOC_CODE_TEXIFILES)"
@echo "AADL_TEXIFILES = $(AADL_TEXIFILES)"
@echo "GUIDE_TEXIFILES = $(GUIDE_TEXIFILES)"
#include <po_hi_types.h>
#include <po_hi_gqueue.h>
#include <request.h>
#include <deployment.h>
#include <types.h>
#include <subprograms.h>
#include <po_hi_task.h>
#include <po_hi_main.h>
#include <marshallers.h>
extern __po_hi_entity_t __po_hi_port_global_to_entity[__PO_HI_NB_PORTS];
extern __po_hi_port_t __po_hi_port_global_to_local[__PO_HI_NB_PORTS];
__po_hi_int8_t __po_hi_data_source_local_destinations[1] = {ping_me_global_data_sink};
__po_hi_uint8_t __po_hi_pinger_woffsets[__po_hi_pinger_nb_ports];
__po_hi_uint8_t __po_hi_pinger_offsets[__po_hi_pinger_nb_ports];
__po_hi_uint8_t __po_hi_pinger_used_size[__po_hi_pinger_nb_ports];
__po_hi_uint8_t __po_hi_pinger_empties[__po_hi_pinger_nb_ports];
__po_hi_uint8_t __po_hi_pinger_first[__po_hi_pinger_nb_ports];
__po_hi_uint8_t __po_hi_pinger_recent[__po_hi_pinger_nb_ports * sizeof(__po_hi_request_t)];
__po_hi_uint8_t __po_hi_pinger_queue[0 * sizeof(__po_hi_request_t)];
__po_hi_uint16_t __po_hi_pinger_total_fifo_size = 0;
__po_hi_port_t __po_hi_pinger_history[0];
__po_hi_uint8_t __po_hi_pinger_n_dest[__po_hi_pinger_nb_ports] = {1};
__po_hi_int8_t __po_hi_pinger_fifo_size[__po_hi_pinger_nb_ports] = {__PO_HI_GQUEUE_FIFO_OUT};
__po_hi_uint8_t* __po_hi_pinger_destinations[__po_hi_pinger_nb_ports] = {__po_hi_data_source_local_destinations};
/* Periodic task : Pinger*/
/****************/
/* pinger_job */
/****************/
void* pinger_job ()
{
simple_type data_source_request_var;
__po_hi_request_t data_source_request;
__po_hi_gqueue_init(node_a_pinger_k,__po_hi_pinger_nb_ports,__po_hi_pinger_queue,__po_hi_pinger_fifo_size,__po_hi_pinger_first,__po_hi_pinger_offsets,__po_hi_pinger_woffsets,__po_hi_pinger_n_dest,__po_hi_pinger_destinations,__po_hi_pinger_used_size,__po_hi_pinger_history,__po_hi_pinger_recent,__po_hi_pinger_empties,__po_hi_pinger_total_fifo_size);
__po_hi_wait_initialization();
while (1)
{
/* Call implementation*/
do_ping_spg(&(data_source_request_var));
/* Set the OUT port values*/
data_source_request.vars.pinger_global_data_source.pinger_global_data_source = data_source_request_var;
data_source_request.port = data_source_request_var;
__po_hi_gqueue_store_out(node_a_pinger_k,pinger_local_data_source,&(data_source_request));
/* Send the OUT ports*/
__po_hi_gqueue_send_output(node_a_pinger_k,pinger_global_data_source);
__po_hi_wait_for_next_period(node_a_pinger_k);
}
}
/**************************/
/* __po_hi_main_deliver */
/**************************/
void __po_hi_main_deliver
(__po_hi_msg_t* message)
{
__po_hi_request_t request;
__po_hi_entity_t entity;
__po_hi_unmarshall_request(&(request),message);
entity = __po_hi_port_global_to_entity[request.port];
switch (entity)
{
default:
{
break;
}
}
}
#ifndef __ACTIVITY_H_
#define __ACTIVITY_H_
#include <request.h>
#include <po_hi_messages.h>
#include <deployment.h>
void pinger_deliver
(__po_hi_request_t* request);
/* Periodic task : Pinger*/
void* pinger_job ();
void __po_hi_main_deliver
(__po_hi_msg_t* message);
#endif
typedef struct
{
pos_internal_type field1;
pos_internal_type field2;
} pos_impl;
#ifndef __DEPLOYMENT_H_
#define __DEPLOYMENT_H_
#include <po_hi_protected.h>
typedef enum
{
pinger_local_data_source = 0
} __po_hi_pinger_t;
#define __po_hi_pinger_nb_ports 1
typedef enum