domingo, 2 de diciembre de 2007

Preparandome para programar...

en C. Si si, en el curso vamos a empezar con C... no es que me llame mucho la atencion, pero eso puede "obligarme" a meterme con el tema del robot y empezar a programar la aplicacion que tengo en mente.
Asi que he decidido empezar a currar en ello, y para empezar, nada mejor que preparar el programa que controlara el circuito, dependiendo de las ordenes del robot. Aunque en un futuro deberia ser un objeto, voy a empezar a desarrollarlo como una funcion (para ir acorde con el curso)
Y me he encontrado con el siguiente problema: Suponiendo que el circuito del robot recibe por el puerto serie, pero a la vez puede indicarme una serie de valores (por ejemplo, que las entradas A, B, C, D y E estan activas), o un error al ejecutar una instruccion... ¿Como tengo que abrir el archivo /dev/ttyS0? tengo que abrirlo en modo E/S, pero... desde dos procesos distintos? vuelvo a utilizar fork()?
el programa se me plantea de la siguiente manera:

int circuito(...){
int pid;
...
...
pid=fork();
switch (pid){
case 0: lector(); break;
case -1: error(); break;
case default: escritor(); break;
}
}

int lector(...){
FILE *entrada;

entrada=fopen("/dev/ttyS0", "r");
/* control de errores y leer del archivo*/
}

int escritor(...){
FILE *salida;

salida = fopen("/dev/ttyS0", "w");
/*control de erroes y escribir instrucciones al circuito*/
}

La duda consiste en si, de alguna manera, la apertura del mismo archivo en dos modos distintos y de distinta manera, puede generar un "lio" como, por ejemplo, no permitir uno a otro abrir el circuito...

No hay comentarios:

 
Informacion de proyecto para el control de un robot mediante puerto serie desde una fonera. Jakala. Licencia GPL. oct-2007