tofDevice.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import SDK.Vzense.VzenseDS_api as tof
  2. import etc_pb2 as etc
  3. import time
  4. from ctypes import *
  5. class Tof3DDevice:
  6. def __init__(self, tof_etc=etc.VzenseTofDevices()):
  7. self.tof_etc = tof_etc
  8. print(self.tof_etc.ipv4)
  9. camera = tof.VzenseTofCam()
  10. camera_count = camera.VZ_GetDeviceCount()
  11. retry_count = 100
  12. while camera_count == 0 and retry_count > 0:
  13. retry_count = retry_count - 1
  14. camera_count = camera.VZ_GetDeviceCount()
  15. time.sleep(1)
  16. print("scaning...... ", retry_count)
  17. device_info = tof.VzDeviceInfo()
  18. if camera_count > 1:
  19. ret, device_infolist = camera.VZ_GetDeviceInfoList(camera_count)
  20. if ret == 0:
  21. device_info = device_infolist[0]
  22. for info in device_infolist:
  23. print('cam uri: ' + str(info.uri))
  24. else:
  25. print(' failed:' + ret)
  26. exit()
  27. elif camera_count == 1:
  28. ret, device_info = camera.VZ_GetDeviceInfo()
  29. if ret == 0:
  30. print('cam uri:' + str(device_info.uri))
  31. else:
  32. print(' failed:' + ret)
  33. exit()
  34. else:
  35. print("there are no camera found")
  36. exit()
  37. if tof.VzConnectStatus.Connected.value != device_info.status:
  38. print("connect statu:", device_info.status)
  39. print("Call VZ_OpenDeviceByUri with connect status :", tof.VzConnectStatus.Connected.value)
  40. exit()
  41. else:
  42. print("uri: " + str(device_info.uri))
  43. print("alias: " + str(device_info.alias))
  44. print("connectStatus: " + str(device_info.status))
  45. print(self.tof_etc.ipv4)
  46. # ret = camera.VZ_OpenDeviceByIP(b'192.168.2.101')
  47. ret = camera.VZ_OpenDeviceByIP(self.tof_etc.ipv4.encode())
  48. if ret == 0:
  49. print("open device successful")
  50. else:
  51. print('VZ_OpenDeviceByUri failed: ' + str(ret))
  52. ret = camera.VZ_StartStream()
  53. if ret == 0:
  54. print("start stream successful")
  55. else:
  56. print("VZ_StartStream failed:", ret)