Skip to content

Latest commit

 

History

History
112 lines (90 loc) · 3.32 KB

硬件接口.rst

File metadata and controls

112 lines (90 loc) · 3.32 KB

硬件接口

  • ### 编译
    • Windows .. code-block:

      - git clone SpikeCV 
      - cd SpikeCV\device\spikevision\m1k40
      - mkdir build & cd build
      - cmake .. -G "Visual Studio 15 2017 Win64"
      - cmake --build .
      - python ./test/main.py -t 0 -fn "d:/data.bin"
    • Linux .. code-block:

      - git clone SpikeCV 
      - cd SpikeCV\device\spikevision\m1k40
      - mkdir build & cd build
      - cmake ..
      - cmake
      - python ./test/main.py -t 1 -dn "./libhda100.so"
  • ### 接口说明

    • C/C++ ```C++ #创建和销毁 SV_API ISpikeLinkInput* SV_CALLTYPE CreateSpikeLinkInput(SpikeLinkInitParams params, ISpikeLinkInputObserverobsver); SV_API void SV_CALLTYPE DeleteSpikeLinkInput(ISpikeLinkInput *input);

    #function void Fini() int32_t Open() = 0; int32_t Close() = 0; bool IsOpen() = 0; int32_t Start() = 0; int32_t Stop() = 0; int32_t GetState() = 0; uint16_t SV_CALLTYPE AddRef() = 0; uint16_t SV_CALLTYPE Release() = 0; void SetCallback(ISpikeLinkInputObserver *obsver) = 0;

    #调用参考:SpikeCVdevicespikevisionm1k40sdkspikelinkapimain.cpp

    - Python
      ```python
      # python 调用 C/C++ 接口
      SV_API void* SV_CALLTYPE CreateSpikeLinkInputPython();
      SV_API int32_t SV_CALLTYPE Init(void *input, SpikeLinkInitParams *params);
      SV_API void SV_CALLTYPE SetCallbackPython(void *input, InputCallBack callback)
      SV_API bool SV_CALLTYPE IsOpen(void *input);
      SV_API int32_t SV_CALLTYPE Open(void *input);
      SV_API int32_t SV_CALLTYPE Close(void *input);
      SV_API int32_t SV_CALLTYPE Start(void *input);
      SV_API int32_t SV_CALLTYPE Stop(void *input);
      SV_API int32_t SV_CALLTYPE GetState(void *input);
      SV_API void SV_CALLTYPE Fini(void *input);
      SV_API void SV_CALLTYPE ReleaseFrame(void* input, void* frame);
    
      #python 接口
      class spikelinkInput :
          __init__(self, path)
          init(self, params)
          setcallback(self, callback) 
          release(self)
          start(self)
          stop(self)
          open(self)
          is_open(self)
          close(self)
          getState(self)
          releaseFrame(self, frame)
    
      #python 回调接口
      LinkInputCallBack = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p)
    
      #调用参考:
      SpikeCV\device\spikevision\m1k40\sdk\spikelinkapi.py
      SpikeCV\device\spikevision\m1k40\test\main.py
    
      #示例:
      input = link.spikelinkInput("./sdk/lib/Debug/spikelinkapi.dll")#输入参数C++数据采集库
      params = link.SpikeLinkInitParams() #初始化参数
      input.init(ctypes.byref(params)) #采集驱动初始化参数
      input.setcallback(input_callback) #设置回调
      input.open()
      input.start()      
      ...
      input.stop()
      input.close()
    
      #特别说明
      callback 回调底层一帧数据,放进处理队列,处理完毕后需要通过releaseFrame接口还回底层
  • ### 测试
    • python 接口测试用例在examples目录中 ```python # dummy camera python test_device.py