DevHotPlugCallback.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. from pickle import FALSE, TRUE
  2. import sys
  3. sys.path.append('../../../')
  4. from API.VzenseDS_api import *
  5. import time
  6. camera = VzenseTofCam()
  7. def HotPlugStateCallback(type_struct, state = c_int32(0)):
  8. global camera
  9. if state ==0:
  10. print(str(type_struct.contents.alias) + " add")
  11. ret = camera.VZ_OpenDeviceByUri(type_struct.contents.uri)
  12. if ret == 0:
  13. print(str(type_struct.contents.alias) + " open success")
  14. else:
  15. print(str(type_struct.contents.alias) + " open failed",ret)
  16. ret = camera.VZ_StartStream()
  17. if ret == 0:
  18. print(str(type_struct.contents.alias) + " startstream success")
  19. else:
  20. print(str(type_struct.contents.alias) + " startstream failed",ret)
  21. else:
  22. print(str(type_struct.contents.alias) + " remove")
  23. ret = camera.VZ_StopStream()
  24. if ret == 0:
  25. print(str(type_struct.contents.alias) + " stopstream success")
  26. else:
  27. print(str(type_struct.contents.alias) + " stopstream failed",ret)
  28. ret = camera.VZ_CloseDevice()
  29. if ret == 0:
  30. print(str(type_struct.contents.alias) + " close success")
  31. else:
  32. print(str(type_struct.contents.alias) + " close failed",ret)
  33. camera.VZ_SetHotPlugStatusCallback(HotPlugStateCallback)
  34. camera_count = camera.VZ_GetDeviceCount()
  35. retry_count = 100
  36. while camera_count==0 and retry_count > 0:
  37. retry_count = retry_count-1
  38. camera_count = camera.VZ_GetDeviceCount()
  39. time.sleep(1)
  40. print("scaning...... ",retry_count)
  41. device_info=VzDeviceInfo()
  42. if camera_count > 1:
  43. ret,device_infolist=camera.VZ_GetDeviceInfoList(camera_count)
  44. if ret==0:
  45. device_info = device_infolist[0]
  46. for info in device_infolist:
  47. print('cam uri: ' + str(info.uri))
  48. else:
  49. print(' failed:' + ret)
  50. exit()
  51. elif camera_count == 1:
  52. ret,device_info=camera.VZ_GetDeviceInfo()
  53. if ret==0:
  54. print('cam uri:' + str(device_info.uri))
  55. else:
  56. print(' failed:' + ret)
  57. exit()
  58. else:
  59. print("there are no camera found")
  60. exit()
  61. print("uri: "+str(device_info.uri))
  62. ret = camera.VZ_OpenDeviceByUri(device_info.uri)
  63. if ret == 0 or ret == -103:
  64. ret = camera.VZ_StartStream()
  65. if ret == 0:
  66. print("startstream success")
  67. else:
  68. print("startstream failed",ret)
  69. while 1:
  70. ret, frameready = camera.VZ_GetFrameReady(c_uint16(1000))
  71. if ret !=0:
  72. print("VZ_GetFrameReady failed:",ret)
  73. continue
  74. if frameready.depth:
  75. ret,frame = camera.VZ_GetFrame(VzFrameType.VzDepthFrame)
  76. if ret ==0:
  77. print("frameIndex: ",frame.frameIndex)
  78. else:
  79. print("get depth frame failed ",ret)
  80. continue
  81. else:
  82. print('VZ_OpenDeviceByUri failed: ' + str(ret))
  83. ret = camera.VZ_StopStream()
  84. if ret == 0:
  85. print("stopstream success")
  86. else:
  87. print("stopstream failed",ret)
  88. ret = camera.VZ_CloseDevice()
  89. if ret == 0:
  90. print("close device successful")
  91. else:
  92. print('VZ_CloseDevice failed: ' + str(ret))