hm2_pktuart_read - lee datos de un búfer UART Hostmot2
#include <hostmot2-serial.h>
int hm2_pktuart_read(char *name, unsigned char data[], rtapi_u8 *num_frames, rtapi_u16 *max_frame_length, rtapi_u16 frame_sizes[]) |
hm2_pktuart_read lee datos del PktUART "name". "name" es una cadena única dada a cada PktUART durante la configuración de hostmot2. Los nombres de los canales disponibles se imprimen en la salida estándar durante la carga del controlador y toman la forma: hm2_<nombre de la tajeta>.<Ãndice de la tarjeta>.pktuart.<Ãndice> . Por ejemplo hm2_5i25.0.pktuart.0
Esta función lee un número variable de paquetes PktUART del canal especificado. Debe usarse dentro de un componente HAL en tiempo real registrado con el controlador principal hostmot2 que utiliza la función hm2_pktuart_setup en el código de configuración.
"(*num_frames)*(*max_frame_length)" debe ser <= sizeof "data", que se intenta estimar o adivinar antes de llamar a la función. Si hay más bytes en el búfer que el tamaño del array de datos, entonces se devuelve RxArraySizeError.
Tenga en cuenta que PktUART MaxFrameSize tiene codificados 1024 bytes en hostmot2.vhd.
Devuelve el número de bytes leÃdos en caso de éxito y códigos de error negativos en caso de error.
"num_frames", cuyo puntero se pasa por valor, se establece en el número de datagramas leÃdos.
Los
códigos de error negativos son:
-1 - error de lectura/escritura de bajo nivel
-EINVAL: cualquier error de configuración por
instancia de PktUART
-HM2_PKTUART_RxStartbitError
- Error de registro de modo Rx
-HM2_PKTUART_RxOverrunError - Error de registro de modo Rx
-HM2_PKTUART_RxRCFIFOError - Error de registro de modo
Rx
-HM2_PKTUART_RxPacketOverrrunError
- Error de registro de recuento Rx
-HM2_PKTUART_RxPacketStartbitError - Error de registro de
recuento Rx
-HM2_PKTUART_RxPacketSizeZero:
el tamaño del paquete recibido es cero
-HM2_PKTUART_RxArraySizeError: el array de datos es
demasiado pequeño
para todos los datos en el búfer
Los valores numéricos de los
códigos de error HM2_PKTUART_ se definen
en src/hal/drivers/mesa-hostmot2/pktuart_errno.h.
man
hm2_pktuart_setup, man hm2_pktuart_send
Consulte src/hal/drivers/mesa_pktgyro_test.comp para ver un
ejemplo de
uso.