get_packet_nb Mouse

get_packet_nb Mouse

de Maria Sara Silva Addiego -
Número de respuestas: 1

Buenas,

Tenemos una pregunta sobre la subrutina get_packet_nb del Mouse. Es más bien de letra digamos, de cómo debería ser la dinámica de ir recibiendo los bytes. La gran pregunta es, la función retorna a medida que recibe bytes o se queda adentro mientras los va recibiendo y simplemente retorna cuando recibe todos. Creo que lo confuso es el concepto de paquete y de no bloqueante en este caso ajja. Una posibilidad sería entrar a la rutina, llamar a get_ps2_nb y si no hay nada retornar, y si hay algo recibir ese byte, retornar, volver para recibir el sigueinte byte retornar y etc. La otra opción sería (además de retornar si no hay nada) una vez que get_ps2_nb detecta que hay un byte lo guarda, después la llama de nuevo para recibir el sigueinte byte... y todo así pero sin retornar, más parecido a la dinámica de la práctica anterior. Las dos versiones serían no bloqueantes en algún sentido porque si get_ps2_nb no recibe el primer byte retorna, pero una si ya recibió el primero se queda adentro y la otra se va constantemente. Capaz es medio lo mismo hacer cualqueira de las dos pero depende de si querés hacer cosas en el medio de repente o no... No se.

Espero que se entienda la cuestión, gracias!!

En respuesta a Maria Sara Silva Addiego

Re: get_packet_nb Mouse

de Julio Perez -

Lo que pide la letra es que la subrutina "siempre retorna inmediatamente sin quedar bloqueada a la espera de la recepción", entonces debería funcionar como la primera situación que describís. Es cierto que para que todo funcione bien la subrutina debe ser invocada a menudo, para que por lo menos sea invocada una vez entre la recepción de dos bytes consecutivos.

En el segundo de los dos comportamientos que describís la subrutina quedaría bloqueada a la espera de la segunda y tercera palabra del paquete. En tiempos humanos ese bloqueo sería muy breve porque el ratón envía los tres bytes en forma consecutiva, pero medido en períodos de reloj es un tiempo importante no aceptable.

Espero haber aclarado, pero si quedan dudas consulten de nuevo nomás.

Saludos,

julio