| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import Foundation
- import SwiftSerial
- print("You should do a loopback i.e short the TX and RX pins of the target serial port before testing.")
- let testString: String = "The quick brown fox jumps over the lazy dog 01234567890."
- let arguments = CommandLine.arguments
- guard arguments.count >= 2 else {
- print("Need serial port name, e.g. /dev/ttyUSB0 as the first argument.")
- exit(1)
- }
- let portName = arguments[1]
- let serialPort: SerialPort = SerialPort(path: portName)
- do {
- try serialPort.openPort()
- print("Serial port \(portName) opened successfully.")
- defer {
- serialPort.closePort()
- }
- serialPort.setSettings(receiveRate: .baud9600,
- transmitRate: .baud9600,
- minimumBytesToRead: 1)
- print("Writing test string <\(testString)> of \(testString.characters.count) characters to serial port")
- var bytesWritten = try serialPort.writeString(testString)
- print("Successfully wrote \(bytesWritten) bytes")
- print("Waiting to receive what was written...")
- let stringReceived = try serialPort.readString(ofLength: bytesWritten)
- if testString == stringReceived {
- print("Received string is the same as transmitted string. Test successful!")
- } else {
- print("Uh oh! Received string is not the same as what was transmitted. This was what we received,")
- print("<\(stringReceived)>")
- }
- } catch PortError.failedToOpen {
- print("Serial port \(portName) failed to open. You might need root permissions.")
- } catch {
- print("Error: \(error)")
- }
|