diff --git a/Package.resolved b/Package.resolved new file mode 100644 index 0000000..73e5140 --- /dev/null +++ b/Package.resolved @@ -0,0 +1,25 @@ +{ + "object": { + "pins": [ + { + "package": "SwiftSerial", + "repositoryURL": "https://vato.ddns.net/gitlab/vato007/SwiftSerial.git", + "state": { + "branch": "master", + "revision": "0e824cc38c6802e69543d0c1406d34babfd68e2e", + "version": null + } + }, + { + "package": "SwiftyGPIO", + "repositoryURL": "https://github.com/uraimo/SwiftyGPIO.git", + "state": { + "branch": null, + "revision": "2038228e020cf12a62012b1ebe36bb9b8e6fdb6a", + "version": "1.2.5" + } + } + ] + }, + "version": 1 +} diff --git a/Sources/Swift2dCar/Esp32ServoOutput.swift b/Sources/Swift2dCar/Esp32ServoOutput.swift index 07a255d..b43ef35 100644 --- a/Sources/Swift2dCar/Esp32ServoOutput.swift +++ b/Sources/Swift2dCar/Esp32ServoOutput.swift @@ -30,14 +30,15 @@ public class Esp32ServoOutput : PWMOutput { self.serialPort = port } - public convenience init?(forChannel channel: UInt8, forPin pin: UInt8, onPort port: String) { - self.init(forChannel: channel, forPin: pin, onPort: SerialPort(path: port)) + public convenience init?(forChannel channel: UInt8, forPin pin: UInt8, onPort port: String) throws { + let initPort = SerialPort(path: port) + try initPort.openPort() + initPort.setSettings(receiveRate: .baud115200, transmitRate: .baud115200, minimumBytesToRead: 1) + self.init(forChannel: channel, forPin: pin, onPort: initPort) } public func initPWM() { do { - try serialPort.openPort() - serialPort.setSettings(receiveRate: .baud115200, transmitRate: .baud115200, minimumBytesToRead: 1) let bytesWritten = try serialPort.writeData(Data([0, 1, channel, pin])) if bytesWritten != 4 { print("Wrote %d bytes, but should have written 4", bytesWritten)