Go to the documentation of this file.00001 #ifndef __RFID_DRIVER_WRAPPER_H__
00002 #define __RFID_DRIVER_WRAPPER_H__
00003
00029 #include <ros/ros.h>
00030 #include "rfid_driver_interface.h"
00031
00032
00033 #include <feusb.h>
00034 #include <feisc.h>
00035 #include <FedmIscCore.h>
00036 #include <impl/core/i_scan/tag_handler/FedmIscTagHandler_EPC_Class1_Gen2.h>
00037
00038 class RfidDriverWrapper : public RfidDriverInterface {
00039 public:
00043 RfidDriverWrapper();
00044
00048 ~RfidDriverWrapper();
00049
00055 int open_device(long num_device);
00056
00062 int close_device();
00063
00069 std::string get_uid_label();
00070
00076 std::string* get_tags();
00077
00082 std::string get_type_reader();
00083
00089 int get_num_labels();
00090
00096 void set_num_labels(int num_labels);
00097
00104 void read_hf(unsigned char data[BLOCK_SIZE_HF], unsigned char uc_db_address);
00105
00113 void write_hf(unsigned char data[BLOCK_SIZE_HF], unsigned char uc_db_address, std::string uid);
00114
00124 int write_tag_epc(unsigned char* data, std::string epc, unsigned int mem_bank, unsigned int address,
00125 unsigned int num_blocks);
00126
00132 int inventory();
00133
00134 private:
00140 int set_type_reader(int index);
00141
00148 int set_port_hand(long num_device);
00149
00150 int _device_handle, _reader_handle, _lenght, _num_max_labels, _num_devices;
00151 long _id_device;
00152
00153 std::string _device_name;
00154 std::string _snr;
00155 std::string _DSFID;
00156
00157 std::vector<std::string> _labels;
00158
00159 FEDM_ISCReaderModule _rfid_reader;
00160 };
00161 #endif