diff --git a/Sources/SwiftSerial.swift b/Sources/SwiftSerial.swift index 2236f05..4d7b04d 100644 --- a/Sources/SwiftSerial.swift +++ b/Sources/SwiftSerial.swift @@ -460,8 +460,23 @@ extension SerialPort { let character = UnicodeScalar(buffer[0]) return character } - } - + } + } + + public func readByte() throws -> UInt8 { + let buffer = UnsafeMutablePointer.allocate(capacity: 1) + + defer { + buffer.deallocate(capacity: 1) + } + + while true { + let bytesRead = try readBytes(into: buffer, size: 1) + + if bytesRead > 0 { + return buffer[0] + } + } } }