Protocolos de Comunicación-3a

Anuncio
Protocolos de Comunicación
Aplicación Básica
Preparado por: jhuircan
Octubre -2013
Rev. Agosto 2014
Definición de componentes de App
Programación de la interfaz de comunicación
Aplicación para testeo del canal
Lectura de datos del canal
Solicitar el uso del canal mediante el usuario.
Envío de datos por el canal
Esquema Recepción Básica
Configura Comm
NO
Hay Dato?
Si
Lee dato del canal
Esquema Recepción Básica
Configura Comm
NO
Hay Dato?
Si
Lee dato del canal
Req. Canal Usuario?
Si
Enviar dato por el canal
NO
Esquema Recepción Básica
Configura Comm
NO
Hay Dato?
Si
Lee dato del canal
Req. Canal Usuario?
Si
Enviar dato por el canal
NO
App C
void main()
{
// Inicializa Puerto
while(1)
{
// Verificar canal
// Leer información canal
// Solicitar uso de canal
// Enviar data por el canal
}
}
App C
void main()
{
init_com(); // Funcion inicializa puertos
while(1)
{
// Verificar canal
// Leer información canal
// Solicitar uso de canal
// Enviar data por el canal
}
}
App C
void main()
{
char st;
init_comm();
while(1)
{
st=verificar_canal(); // Devuelve 1 si hay dato
// Leer información canal
// Solicitar uso de canal
// Enviar data por el canal
}
}
App C
void main()
{
char st;
init_comm();
while(1)
{
st=verificar_canal();
if(st) lee_dato_puerto();
// Solicitar uso de canal
// Enviar data por el canal
}
}
App C
void main()
{
char st;
init_comm();
while(1)
{
st=verificar_canal();
if(st) lee_dato_puerto();
// Verificar uso de teclado
// Enviar data por el canal
}
}
App C
void main()
{
char st;
init_comm();
while(1)
{
st=verificar_canal();
if(st) lee_dato_puerto();
if(kbhit()) { // Detecta uso de teclado
// Enviar data
}
}
}
App C
void main()
{
char st,c;
init_comm();
while(1)
{
st=verificar_canal();
if(st) lee_dato_puerto();
if(kbhit()) {
c=getch();
// Enviar data
}
}
}
App C
void main()
{
char st,c;
init_comm();
while(1)
{
st=verificar_canal();
if(st) lee_dato_puerto();
if(kbhit()) {
c=getch();
enviar_data_puerto(c);
}
}
}
App New Variante
init_com()
{
// Dependiente
// de Hardware
}
void enviar(char c)
{
// Envia car
}
char *recibe()
{
char dato_rec;
// Recibe car
return(dato_rec);
}
char status_canal()
{
char st_canal;
// Lee el estado del
// canal
// Retorna estado
return (st_canal)
}
App New
void main()
{
char st;
init_com();
while(1)
{
st=status_canal();
if(st) recibe();
if(kbhit())
{
c=getch();
enviar(c);
}
}
}
Verificación del funcionamiento
Mensajes en pantalla
Uso de funciones
putchar(); // Imprime tecla en pantalla
printf(); // Imprime con formato
Captura de datos por teclado
getch(); // Lee tecla
gets(); // Lee string
Código fuente de prueba (web)
El código fuente disponible en la web realiza una
tarea similar a la indicada, en este caso los nombres
de las funciones pudieran ser diferentes
En dicha aplicación la función recibe(), detecta
el estado del canal por lo tanto sino ha llegado dato
esta función espera y luego sale sin devolver
información.
Descargar