Implement process scan
This commit is contained in:
@@ -35,11 +35,23 @@ struct SwiftRPLidar {
|
|||||||
var text = "Hello, World!"
|
var text = "Hello, World!"
|
||||||
}
|
}
|
||||||
|
|
||||||
func processScan(raw: Data){
|
func processScan(raw: Data) throws -> LidarScan {
|
||||||
|
let newScan = raw[0] & 0b1
|
||||||
|
let inversedNewScan = (raw[0] >> 1) & 0b1
|
||||||
|
let quality = raw[0] >> 2
|
||||||
|
if (newScan == inversedNewScan){
|
||||||
|
|
||||||
|
}
|
||||||
|
if ((raw[1] & 0b1) != 1) {
|
||||||
|
|
||||||
|
}
|
||||||
|
let angle = (raw[1] >> 1) + (raw[2] << 7) / 64
|
||||||
|
let distance = raw[3] + (raw[4] << 8) / 4
|
||||||
|
return LidarScan(newScan: newScan, quality: quality, angle: angle, distance: distance)
|
||||||
}
|
}
|
||||||
|
|
||||||
struct LidarScan{
|
struct LidarScan{
|
||||||
|
var newScan: Bool
|
||||||
var quality: Float
|
var quality: Float
|
||||||
var angle: Float
|
var angle: Float
|
||||||
var distance: Float
|
var distance: Float
|
||||||
|
|||||||
Reference in New Issue
Block a user