cppでdepthaiのxLinkやSPIOutを試す
上記のcpp版です。
#include <vector> #include "depthai/depthai.hpp" int main(int argc, char *argv[]){ dai::Pipeline pipeline = createPipeline(); dai::Device device(pipeline); std::shared_ptr<dai::DataInputQueue> xInQueue = device.getInputQueue("communication"); std::shared_ptr<dai::DataOutputQueue> xOutQueue = device.getOutputQueue("communication",5,false); uint16_t angle = 0; uint16_t reachTime = 0; while(true){ dai::Buffer srv; std::vector<uint8_t> data{ 0x55, 0x55, 0x01, 0x07, 0x01, 0x00FF & angle, 0x00FF & angle>>8, 0x00FF & reachTime, 0x00FF & reachTime>>8, }; data.push_back(~std::accumulate(data.begin(),data.end(),0)); srv.setData(data); xInQueue->send(srv); auto get_data = xOutQueue->tryGet(); if(get_data != nullptr){ std::for_each(get_data->getRaw()->data.begin(),get_data->getRaw()->data.end(), [](const int& n){std::cout<<n<<";";}); std::cout<<std::endl; } } return 0; }
角度とかは0固定にしてるけど。
rosから動かすのも問題なく書けそうです。
c++もっと使って勉強しないとなぁ。
data
の宣言のとこ、もっと賢くできるんじゃないかなぁと思っている。
depthai周りはこのリポジトリで作業します。