Skip to content

Latest commit

 

History

History

README.md

LibR200 (Libreria clase gestion lector R200) Logo license

Libreria LibR200 Probada con el lector M100 26dBm V1.0 (UHF EPC C1G2/ISO 18000-6C, 840–960 MHz) V.Software: V2.3.5 Fabricante: MagicRf

Libreria para la gestion y programación del lector RFID-UHF R200

El autor NO asume ninguna responsabilidad por la forma en que elija utilizar cualquiera de los ejecutables/código fuente de cualquier archivo provistos. El autor y cualquier persona afiliada no serán responsables de ninguna pérdida o daño en relación con el uso de esta libreria o parte de su código.

Usted ACEPTA USARLO BAJO SU PROPIO RIESGO.

Comandos pendientes de implementar

Algunos comandos no se han implementado, por no encontrarles todavia uso interesante, así la clase ocupa menos memoria, y por su peligrosidad y poco uso.
De todas formas la implementación de nuevos comandos es sencilla con las base de la clase creada.

No incorporados

  • Multipolling 0x27 y Stop 0x28 ya que con el simple pooling lo podemos realizar nosotros, controlando tiempo de lenctura y asi ocupamos menos memoria en la clase.
  • Look Almacenamiento 0x82 y Kill Tag 0x65. Por su peligrosidad en especial Kill que las deja fuera de uso y solo seria interesante en programa producción de por ejemplo un comercio.
  • Propios de NXP e impinj.
  • 0x17(Sleep) y 0x1D(Idle Sleep tiempo inactividad)
  • 0x1A Control de puerto de E/S (4 puertos)
  • 0xF2 y 0xF3 Para pruebas de RF

## Uso de LibR200 Libreria que facilita la programación del lector "R200", lo primero que deberemos de hacer es crear la clase R200 Lector(&Puerto); y despues inicializarla "Lector.iniciaR200()"

Métodos LibR200

Funcion Descripción
R200(HardwareSerial, int baud = 115200, uint8_t RxPin = 16, uint8_t TxPin = 17) Constructor
bool iniciaR200() Inicializa la clase
t_CodError get_Error() Nos da el codigo del ultimo error producido
bool hw_info(t_Hardware *) 0x03: Información de la placa
t_Region get_Region(void) bool set_Region(t_Region) 0x08 0x07: Obtiene y programa la región de uso
float get_Canal(void) bool set_Canal(uint8_t) 0xAA 0xAB: obtiene y pone canal
int get_Potencia(void) bool set_Potencia(int) 0xB7 0xB6: Obtiene y define la potencia
t_Firmware get_Firmware(void) bool set_Firmware(t_Sel, t_Session, t_Target, uint8_t) 0x0D 0x0E: configuración y obtención de parametros de firmware
t_Demodulador get_Demodulador(void) bool set_Demodulador(t_Demodulador) 0xF1 0xF0: Define y obtiene configuración del demodulador
bool hopping(bool) 0xAD: Activa o desactiva hopping
bool insertCanales(uint8_t , uint8_t) 0xA9: Inserta canales de hopping
bool transmisionContinua(bool) 0xB0: Activa o desactiva la transmisión continua
int simplePool(t_Tag * , int ) 0x22: Lectura simple de los TAGs a su alcance
bool setSelect(t_Objetivo,t_Accion,t_BankMemory,uint32_t,uint8_t *,unsigned int, t_Truncate) 0x0C: Pone parámetros de Select
t_Parametros getSelect(void) 0x0B: Obtiene parámetros de Select
bool modoSelect(uint8_t) 0x12: pone modeo Select (0x00 envia select antes de cualquier operación, 0x01 No envia CANCEL, 0x02 Envio pero no para pooling)
bool leeTAG(uint8_t , t_BankMemory , unsigned int, unsigned int, t_DatosTag) Lee datos de un TAG
bool escribeTAG(uint8_t , t_BankMemory , unsigned int, unsigned int, uint8_t, t_DatosTag) Escribe un TAG

# Estructuras de interes
  • t_Hardware Estructura con la información de Hardware.

    • String vHW
    • String vSW
    • String fabricante
  • t_Tag estructura que tiene datos de una etiqueta y es retornada por el pooling.

    • uint8_t RSSI
    • uint8_t PC_msb
    • uint8_t PC_lsb
    • int LongEPC
    • uint8_t *Datos_EPC
    • uint8_t CRC_msb
    • uint8_t CRC_lsb
  • t_DatosTag Datos que nos retorna una lectura simple (comando 0x39)
    - uint16_t PC
    - int longEP
    - ;uint8_t* Datos_EPC
    - t_BankMemory bancoMemoria
    - int longDatos
    - uint8_t* Datos

tipos de interes

  • t_Region Regiones (Desconocido, China_900, US, EU, China_800, Korea)
  • t_BankMemory Bancos de memoria para busquedas o lecturas: BANK_RFU (Reservado para password, etc), BANK_EPC (Define producto), BANK_TID (TID El identificador unico), BANK_User (Banco usuario)
  • t_Objetivo Indica el objetivo a filtrar por sesion (obS0, obS1, obS2, obS3) o el inventario obSL
  • t_Accion Como seleccionar el indicador seleccionado: Coincide, NoCoincide
  • t_Truncate NoTrunca, Trunca.
  • t_ModoSelect Selecciona el modo select o cuando lanza select ate pooling u otra acción: Siempre, Nunca, NoPooling.
  • t_Sel Tipo de selección: ALL, SL o NSL.
  • t_Session Sesion de la etiqueta: S0, S1, S2, S3.
  • t_Target Banderas de inventario: A o B.

Esta información se puede ampliar viendo los tipos en el fichero tipos_LibR200.h

Tenemos varios ejemplos de su uso:

  • VerificaLector Nos da el firmware y datos configurados
  • LecturaTAG Lectura de un TAG
  • EscrituraTAG Escribe datos en un TAG.
  • BuscaEtiqueta Localizas etiquetas en el ambito.
  • Select Realización de filtros para la localización de etiquetas.

__Website__: https://www.pinguytaz.net