I've left the old callback implementations in for now, undecided whether these should be removed. The nice thing about the callback method is that it's more compact, however the logic behind it is less clear.
41 lines
1.0 KiB
Swift
41 lines
1.0 KiB
Swift
import SwiftRPLidar
|
|
import SwiftSerial
|
|
|
|
do {
|
|
try main()
|
|
}
|
|
catch {
|
|
print("Unexpected Error \(error)")
|
|
}
|
|
|
|
func main() throws {
|
|
let serialPort = SerialPort(path: "/dev/cu.usbserial-0001")
|
|
let lidar = try SwiftRPLidar(onPort: serialPort)
|
|
var index = 0
|
|
try lidar.iterMeasurements { measurement in
|
|
print("Quality: ",measurement.quality, ", Angle: ", measurement.angle, ", Distance: ", measurement.distance)
|
|
index += 1
|
|
return index <= 10
|
|
}
|
|
|
|
index = 0
|
|
_ = try lidar.startScanning()
|
|
for measurement in lidar {
|
|
print("Quality: ",measurement.quality, ", Angle: ", measurement.angle, ", Distance: ", measurement.distance)
|
|
index += 1
|
|
if index > 10 {
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
extension SerialPort: LidarSerial{
|
|
public func setBaudrate(baudrate: Int) {
|
|
switch baudrate{
|
|
default:
|
|
setSettings(receiveRate: .baud115200, transmitRate: .baud115200, minimumBytesToRead: 3, timeout: 1)
|
|
}
|
|
|
|
}
|
|
}
|