diff options
| author | MDC Service <michael.schmid@mdc-service.de> | 2022-05-23 11:17:34 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-23 11:17:34 +0200 |
| commit | 74a0003fea4087de8e9f03b6f828c45d255bcd4a (patch) | |
| tree | 1b4615232dcac918fcc47cbd3c6ed54014fb38b7 /software/main/MU80X.h | |
| parent | d2f3c7c9e17895ae43caed761f941a30e4e5eed6 (diff) | |
initial check in firmware files
Diffstat (limited to 'software/main/MU80X.h')
| -rw-r--r-- | software/main/MU80X.h | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/software/main/MU80X.h b/software/main/MU80X.h new file mode 100644 index 0000000..40b3751 --- /dev/null +++ b/software/main/MU80X.h @@ -0,0 +1,101 @@ +#ifndef MU80X_H_ +#define MU80X_H_ +#include "main.h" + +#define ESP32 + +#ifdef ESP32 +#include <sys/types.h> +#include <stdio.h> +#include <string.h> +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_event.h" +#include "esp_log.h" +#include "driver/uart.h" +#else +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#include <unistd.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> +#include <fcntl.h> +#include <termios.h> +#endif + +#define HashSize 16 +#define CRC_POLY_16 0x8005 +#define ProtBufLen 260 + +#define ERR_NOERR 0 +#define ERR_CRC -1 +#define ERR_WRITE -2 +#define ERR_NOANSWER -3 +#define ERR_DECODE -4 + +#define BAUD_9600 0 +#define BAUD_19200 1 +#define BAUD_38400 2 +#define BAUD_57600 5 +#define BAUD_115200 6 + +class MU80X { +public: +#ifdef ESP32 + MU80X(const int fh); +#else + MU80X(const char *dev = "/dev/ttyUSB0", const uint16_t baud = 57600); +#endif + ~MU80X(void); + + int ConnectionStatus; + int iBufferInventory(uint8_t Q, uint8_t antenna, uint8_t time); + int iClearBuffer(void); // done + void DumpBuffer(unsigned char *buf, int len); + int iGetBuffer(Tag_t *tagarr); + int iGetReaderInformation(); + int iGetReaderInformation(uint8_t addr); + int iGetReaderSerial(); // done + // int iGetGPI(void); +// int iGetRFIDSettings(); +// int iReset(void); + int iReadProt(int ms); + int iSendProt(uint8_t len, uint8_t adr, uint8_t cmd, unsigned char *data); // done + int iSendProt(uint8_t len, uint8_t adr, uint8_t cmd, unsigned char *data, int wait); // done +// int iSetAntennas(int antennas); // done each antenna is represented by its bit + int iSetBaud(uint8_t Bd); // BAUD_XXXXX definitions +// int iSetGPO(uint8_t GPO); // later + int iSetPower(uint8_t dBm); + int iSetRFRegion(); // fixed to ETSI + int iSetScantime(uint8_t time); + void PrintTag(Tag_t tag); + // int iSetRFIDSettings(int Q); +// int iStop(); + + unsigned char SendBuf[ProtBufLen]; + unsigned char RecvBuf[ProtBufLen]; + int ProtStatus; + int TagsInBuffer; + int TagsSeen; + +private: + // void vCreateTable(); + +// uint16_t crc_tab16_init = 0xFFFF; +// uint16_t crc_tab16[256]; + int serial_read(int fh,unsigned char *buf); + int serial_write(int fh, unsigned char * buf,int len); + uint16_t _ui16CalculateCrc(unsigned char *data, unsigned char len); + int _DecodeBuffer(int tagcount, int start, unsigned char *buf, Tag_t *tagbuf); + + int _devh; + uint8_t _devid; +// unsigned int _baud; +}; + +#endif /* MU80X_H_ */ |
