VoxelXUProgrammer.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * TI Voxel Lib component.
  3. *
  4. * Copyright (c) 2014 Texas Instruments Inc.
  5. */
  6. #ifndef VOXEL_TI_VOXELXU_PROGRAMMER_H
  7. #define VOXEL_TI_VOXELXU_PROGRAMMER_H
  8. #include "UVCXU.h"
  9. #include "VoxelProgrammerBase.h"
  10. namespace Voxel
  11. {
  12. namespace TI
  13. {
  14. class TI3DTOF_EXPORT VoxelXUProgrammer: public VoxelProgrammerBase
  15. {
  16. protected:
  17. UVCXUPtr _xu;
  18. const int _XU_ID = 3;
  19. uint8_t _majorVersion, _minorVersion;
  20. enum Control
  21. {
  22. CONTROL_WRITE_REGISTER_3 = 1, // Write 3 bytes
  23. CONTROL_SET_READ_REGISTER = 2, // Set read register
  24. CONTROL_READ_REGISTER_3 = 3, // Read 3 bytes
  25. CONTROL_WRITE_REGISTER_1 = 4, // Write 1 byte
  26. CONTROL_READ_REGISTER_1 = 5, // Read 1 byte
  27. CONTROL_REBOOT_FW_MODE = 6, // Reboot to firmware mode
  28. CONTROL_GET_VERSION = 7, // Get 2 bytes (major.minor) version
  29. CONTROL_WRITE_REGISTER_2 = 8, // Write 2 bytes
  30. CONTROL_READ_REGISTER_2 = 9, // Write 2 bytes
  31. };
  32. virtual bool _readRegister(uint16_t slaveAddress, uint16_t registerAddress, uint32_t &value, uint8_t length) const;
  33. virtual bool _writeRegister(uint16_t slaveAddress, uint16_t registerAddress, uint32_t value, uint8_t length);
  34. public:
  35. VoxelXUProgrammer(const SlaveAddressToByteMap &map, DevicePtr device);
  36. virtual bool isInitialized() const;
  37. void init();
  38. virtual bool reset();
  39. virtual ~VoxelXUProgrammer() {}
  40. };
  41. }
  42. }
  43. #endif // VOXEL_TI_VOXELXU_PROGRAMMER_H