/*2011-01-03T15:22:59-01:00*/

/********************************************************************
 * moyenne_cov.c
 * 
 * generated by: plcgen 2.1.201
 ********************************************************************/

#include "cb_comp.h"
#include "cb_covs.h"
#include "iec_1131.h"

#include "moyenne.h"



/**************************** Variables *****************************/

CB_Index moyenne__num = 0;
CB_Mem_Float *moyenne_valeurEntree1;
CB_Mem_Float *moyenne_valeurEntree2;
CB_Mem_Float *moyenne_valeurSortie;
CB_Mem_Bool *moyenne_d_moyenne;
CB_Mem_Float *moyenne_v_d_moyenne;

/**************************** Variables *****************************/

#define valeurEntree1 (moyenne_valeurEntree1->CB_current_value)
#define valeurEntree2 (moyenne_valeurEntree2->CB_current_value)
#define valeurSortie (moyenne_valeurSortie->CB_current_value)
#define d_moyenne (moyenne_d_moyenne->CB_current_value)
#define v_d_moyenne (moyenne_v_d_moyenne->CB_current_value)


/************************ Components offsets ************************/


/********************* Initialization function **********************/

int _bibliotheque_epo__moyenne_init(void)
{
	self.Bool+=1;
	self.Float+=1;


	return 0;
}


/************************ Behavior function *************************/

int bibliotheque_epo__moyenne(void)
{
	static char *__comp_name = "bibliotheque_epo.moyenne";
	if (exec_term_node(self_num)) {

		/*********************** Internals variables ************************/

		moyenne_d_moyenne = self.Bool+0;
		moyenne_v_d_moyenne = self.Float+0;

		/********************* Pre-conditions execution *********************/

		/*no Pre-conditions*/

		/************************ Behavior execution ************************/

		{
			/* -----------------------------------------------------------------	*/
			/* Type : Modèle de Comportement Opératif					*/
			/* Catégorie :  Boite à outils						*/
			/* Auteur : Techniques Nouvelles d'Informatique				*/
			/* Date de révision : Octobre 2002						*/
			/* -----------------------------------------------------------------	*/
			/* Ce module donne, en résultat, un réel correspondant à la 		*/
			/*	valeur moyenne de deux variables réelles.				*/
			/* -----------------------------------------------------------------	*/
			
			if (d_moyenne ) valeurSortie = v_d_moyenne;	 /* forçage de la valeur 	*/
			else valeurSortie = ( valeurEntree1 + valeurEntree2 ) / 2.0;	/* résultat 	*/
					}

		CB_post_float(moyenne_valeurSortie);

		/******************** Post-conditions execution *********************/

		/*no Post-conditions*/
	}

	/*************************** self update ****************************/

	self.Bool += 1;
	self.Float += 1;

	return 0;
}

