/*2011-01-03T15:23:35-01:00*/

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

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

#include "capteur_ana.h"



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

CB_Index capteur_ana__num = 0;
CB_Mem_Float *capteur_ana_mesure;
CB_Mem_Float *capteur_ana_valeur;
CB_Mem_Int *capteur_ana_tmp;
CB_Mem_Float *capteur_ana_Valeur;
CB_Mem_Bool *capteur_ana_d_val;
CB_Mem_Float *capteur_ana_v_d_val;

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

#define mesure (capteur_ana_mesure->CB_current_value)
#define valeur (capteur_ana_valeur->CB_current_value)
#define tmp (capteur_ana_tmp->CB_current_value)
#define Valeur (capteur_ana_Valeur->CB_current_value)
#define d_val (capteur_ana_d_val->CB_current_value)
#define v_d_val (capteur_ana_v_d_val->CB_current_value)


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


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

int _bibliotheque_epo__capteur_ana_init(void)
{
	self.Bool+=1;
	self.Int+=1;
	self.Float+=2;


	return 0;
}


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

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

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

		capteur_ana_tmp = self.Int+0;
		capteur_ana_Valeur = self.Float+0;
		capteur_ana_d_val = self.Bool+0;
		capteur_ana_v_d_val = self.Float+1;

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

		/*no Pre-conditions*/

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

		{
			/* -----------------------------------------------------------------	*/
			/* Type : Modèle de Comportement Opératif					*/
			/* Catégorie :  Capteurs							*/
			/* Auteur : Techniques Nouvelles d'Informatique				*/
			/* Date de révision : Octobre 2002						*/
			/* -----------------------------------------------------------------	*/
			/* Ce module represente un capteur analogique 				*/
			/* Il permet de créer un défaut sur la valeur mesurée 			*/
			/* -----------------------------------------------------------------	*/
			
			
			if (d_val) valeur = v_d_val;
			else valeur = mesure;
			
			/* On tronc la valeur d'affichage à un digit derriere la virgule 	*/
			
			tmp = valeur * 10;
			Valeur = tmp / 10.0;
					}

		CB_post_float(capteur_ana_valeur);

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

		/*no Post-conditions*/
	}

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

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

	return 0;
}

