Está en la página 1de 1

UNIVERSIDAD JAVERIANA MAESTRIA INGENIERIA ELECTRONICA DISEO DE SOFTWARE

1

I. TAREA
EALIZAR el cdigo faltante en el programa de trabajo de
clase relacionado con la implementacin del timeout

RTA:/

/* Tiempo.c Implementacin del mdulo de tiempo. */

/* #include "Tiempo.h" */
#include <Tiempo.h>

void Tm_Defina (Tm_Control *tcp,
Tm_Periodico *pp,
Tm_Num n_per,
Tm_Timeout *tp,
Tm_Num n_to,
Tm_Atender *atienda)
{
tcp->pp = pp;
tcp->n_per = n_per;
for ( ; n_per; ++pp, --n_per)
pp->banderas = 0;

tcp->tp = tp;
tcp->n_to = n_to;
for ( ; n_to; ++tp, --n_to)
*tp = 0;

tcp->atienda = atienda;
};

void Tm_Procese (Tm_Control *tcp)
{
Tm_Periodico *pp;
Tm_Timeout *tp;
Tm_num num;

if ( !tcp->atienda(SI) )
return;

for (pp = tcp->pp, num = tcp->n_per; num; ++pp, --num)
if (pp->banderas & TM_PER_B_ACTIVO)
{
--(pp->contador);
if ( !(pp->contador) )
{
pp->banderas |= TM_PER_B_FC;
pp->contador = pp->periodo;
};
};


El presente documento se realiza para dar respuesta a la primera tarea de
la asignatura Diseo de Software de la Maestra en Ingeniera electrnica con
nfasis en sistemas Digitales de la Pontificia Universidad Javeriana.
Gutirrez Cceres, Edgar Andrs. Estudiante de la Maestra en Ingeniera
Electrnica de la Pontificia Universidad Javeriana (e-mail: Edgar-
gutierrez@javeriana.edu.co ).
for (tp = tcp->tp, num = tcp->n_to; num; ++tp, --num)
if (*tp)
--(*tp);
};

void Tm_Inicie_periodico (Tm_Control *tcp,
Tm_Num num,
Tm_Contador periodo)
{
Tm_Periodico *pp = pp + num;

pp->contador = pp->periodo = periodo;
pp->banderas = TM_PER_B_ACTIVO;
};

void Tm_Termine_periodico (Tm_Control *tcp,
Tm_Num num)
{
tcp->pp[num].banderas = 0;
};

char Tm_Hubo_periodico (const Tm_Control *tcp,
Tm_Num num)
{
return (tcp->pp[num].banderas & TM_PER_B_FC);
};

void Tm_Baje_periodico (Tm_Control *tcp,
Tm_Num num)
{
tcp->pp[num].banderas &= ~TM_PER_B_FC;
};

Tm_Contador Tm_Valor_periodico (const Tm_Control *tcp,
Tm_Num num)
{
return tcp->pp[num].contador;
};

/*Codigo Adicionado para Timeout*/

Void TM_Inicie_timeout (Tm_Control *tcp, Tm_Num num, Tm_Contador
timeout);

{
Tm_Timeout *tp= tp-num;
};

char Tm_Hubo_timeout (const Tm_Control *tcp, Tm_Num num);

{
return tcp->tp[num].contador = 0;

};

Tm_Contador Tm_Valor_timeout (const Tm_Control *tcp, Tm_Num
num);

{
return tcp->tp[num].contador;
};
Tarea Implementacin timeout
Gutirrez Cceres, Edgar Andrs. Member, IEEE
R

También podría gustarte