/* time Scicos time signal block * Originaly write in fortran in the LARY_CR package * Rewrite in C with capabylity to compute output vector * Type 4 simulation function ver 1.0 - scilab-2.6&2.7 * 19 novembre 2003 - IRCOM GROUP - Author : A.Layec * 10 janvier 2004 : passage type 4 */ /* REVISION HISTORY : * $Log$ */ #include "machine.h" #include "scicos_block.h" /* Cette fonction de simulation délivre la valeur de la variable t * à chaque instant de déclenchement : * y[k]=y[k-1]+T[k] * avec T[k] le vecteur des paramètres et y[k] le vecteur des sortie * * Entrée régulière : néant. * Sorties régulières : y[0..nu-1] : sorties des nu signaux. * Entrée évenementielle : période de déclenchement * Sortie évènementielle : néant. * * Etats discrets : z[0..nu-1] : valeur des y[k-1] * paramètres réels : rpar[0..nu-1] : vecteurs des paramètres (T[k]=1/rpar) */ /*prototype*/ void time(scicos_block *block,int flag) { /*déclaration des variables*/ double *y; int i,nu; /*Récupération de l'adresse du port de sortie régulier*/ y=(double *)block->outptr[0]; /*récupération de la taille du port de sortie*/ nu=block->outsz[0]; /*Le flag 1 place le registre z dans le registre y*/ if(flag==1||flag==6) { for(i=0;i<nu;i++) y[i]=block->z[i]; } /*la flag 2 calcul l'incrément temporel*/ else if(flag==2) { for(i=0;i<nu;i++) block->z[i]=block->z[i]+1/block->rpar[i]; } }