bool Volkslogger::SendCommandWriteBulk(Port &port, OperationEnvironment &env, Command cmd, const void *data, size_t size) { if (!SendCommand(port, env, cmd, 0, 0) || !WaitForACK(port, env)) return false; env.Sleep(100); return WriteBulk(port, env, data, size) && WaitForACK(port, env); }
int Lidar::GetDistance() { while(Write(0, 0x04)) { Wait(.002); } uint8_t distanceAddress=0x8f; uint16_t distance; uint8_t distArr[2]; Wait(.02); bool failure=false; while(!failure){ if(!WriteBulk(&distanceAddress,1)) { Wait(0.002); failure=!ReadOnly(2, (uint8_t*)distArr); distance = (distArr[0] * 256) + distArr[1]; } Wait(.002); } return((int) distance); }