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:
Publicar un comentario