Hola, buen día! Estuve viendo este ejercicio y me pareció bastante similar al que se da en openfing en el teorico (adjunto a continuacion), a diferencia de que en este caso hay 4 líneas de entrada y el bit menos significativo de EST_CONT indica si hay un dato. Tengo dos dudas que creo que son lo que hacen distinto al ejercicio con el visto en openfing:
1) la letra dice: Se debe cumplir que al ingresar un dato (1 byte) por la línea n (0..3) se transmite a la salida el número n (1 byte) y luego el dato ingresado (1 byte).
O sea primero en intEntrada() debería hacer un out(dirc, indice) (cuando corresponda) y luego a out(direc,dato), o el out(direc, dato) lo hago en intSalida()?
2)El concentrador deberá aceptar los bytes de entrada y guardarlos en un buffer EN CASO DE QUE EL CANAL DE SALIDA ESTE SIENDO UTILIZADO, hasta un máximo de MAX_BUFFER bytes. En caso de que el buffer esté lleno se descartarán los caracteres recibidos.
En el ejercicio de openfing, los va cargando siempre en el buffer en intEntrada y descarga en intSalida, podría aplicar esto en este ejercicio? o por la condición de arriba seria incorrecto? Dado que tendría que controlar muchas mas cosas en ese caso