You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

FreeFareDevice.cpp 678B

1234567891011121314151617181920212223
  1. //
  2. // Created by robin on 6/19/16.
  3. //
  4. #include "FreeFareDevice.h"
  5. FreeFareDevice::FreeFareDevice(std::shared_ptr<NfcDevice> device)
  6. : _device(device)
  7. {
  8. }
  9. Result<std::vector<std::shared_ptr<FreeFareTag>>> FreeFareDevice::getTags()
  10. {
  11. FreefareTag* tags = freefare_get_tags(_device->getDevice());
  12. if (!tags) {
  13. return Result<std::vector<std::shared_ptr<FreeFareTag>>>::error("Failed to get MIFARE tags");
  14. }
  15. std::vector<std::shared_ptr<FreeFareTag>> tagList;
  16. for (size_t i = 0; tags[i] != 0; ++i) {
  17. tagList.push_back(std::make_shared<FreeFareTag>(tags[i]));
  18. }
  19. return Result<std::vector<std::shared_ptr<FreeFareTag>>>::ok(tagList);
  20. }