handle removal of the serialdevice

This commit is contained in:
bjarnedevel0per
2018-09-11 10:26:36 +02:00
parent 1b9591e07a
commit db7a3b79a2

View File

@@ -210,6 +210,7 @@ public enum PortError: Int32, Error {
case mustBeOpen case mustBeOpen
case stringsMustBeUTF8 case stringsMustBeUTF8
case unableToConvertByteToCharacter case unableToConvertByteToCharacter
case deviceNotConnected
} }
public class SerialPort { public class SerialPort {
@@ -371,7 +372,13 @@ extension SerialPort {
guard let fileDescriptor = fileDescriptor else { guard let fileDescriptor = fileDescriptor else {
throw PortError.mustBeOpen throw PortError.mustBeOpen
} }
var s: stat = stat()
fstat(fileDescriptor, &s)
if s.st_nlink != 1 {
throw PortError.deviceNotConnected
}
let bytesRead = read(fileDescriptor, buffer, size) let bytesRead = read(fileDescriptor, buffer, size)
return bytesRead return bytesRead
} }