All notable changes to ORSSerialPort are documented in this file. This project adheres to Semantic Versioning.
This section is for changes commited to the ORSSerialPort repository, but not yet included in an official release.
- ORSSerialPort now supports deployment to mac OS 10.8 Mountain Lion or later. Support for 10.7 has been dropped.
- Updated Swift examples to Swift 4.2 and otherwise modernized them
- Updated all projects to more recent Xcode versions
- Support for configuring number of data bits via
numberOfDataBits
property (credit: stbraun) - Support for Swift Package Manager
- Race condition when changing delegate
- Issue where certain API would fail after unplugging then replugging a port (credit: KevinVitale)
Now that ORSSerialPort can be installed using the Swift Package Manager, I intend to deprecate support for CocoaPods and Carthage in the future. In the upcoming Xcode 11, SwiftPM packages can be managed directly in Xcode with no need for third-party dependency management tools. This is true even for pure Objective-C apps (despite SwiftPM's name). Please consider switching to using SwiftPM for management of ORSSerialPort. Formal deprecation of CocoaPods and Carthage, along with removal of support for them will be clearly communicated well in advance, so this only serves as a very early notice that that's coming.
- Refactored packet descriptor buffer parsing to pave the way for future improvements (thanks @nathanntg!)
- Clarified distinction between packet parsing API and request/response API in documentation for
ORSSerialPacketDescriptor
. - Refactored modem line control code (see Issue #86 and commit 6fc0c9e)
- Fixed error building framework project in Xcode 4.6 on 10.7.5
- Fixed bug where PacketParsingDemo and RequestResponseDemo apps didn't work on 10.11
- Fixed incorrect nullability annotation on
ORSSerialRequest
'sresponseDescriptor
property
- Added CHANGELOG.md file
- Travis CI now builds and tests changes to ORSSerialPort's public repository
- Fixed error when building framework project (tests target specifically) in versions of Xcode before support for nullability annotations were introduced.
Version 2.0.0 is a major update to ORSSerialPort. It includes enhancements including a new packet parsing API, bug fixes, performance improvements, and additional example code.
It is mostly API compatible with previous releases, requiring no code changes on the part of most users. The exception is that the methods for creating an ORSSerialRequest object have changed slightly. The old methods are deprecated, but still available.
Important note: Due to a change to the underlying system API used by ORSSerialPort, as of this release, it only supports deploying to OS X 10.7 or later. If you require support for OS X 10.6, use version 1.8.2. The requirements for building ORSSerialPort (Xcode 4.4+ on 10.7+) have not changed.
- Added full featured packet parsing API.
ORSSerialPacketDescriptor
, etc. See []documentation](https://github.com/armadsen/ORSSerialPort/wiki/Packet-Parsing-API) - Added ability to cancel pending requests
- Added Objective-C generics annotations for nicer usability from Swift
- Added PacketParsingDemo app (Swift and Objective-C)
- Added some unit tests
No API has been removed, but a few methods have been deprecated their use should be replaced as soon as possible:
- Existing
ORSSerialRequest
initializer (and corresponding convenience method),-[ORSSerialRequest initWithDataToSend:userInfo:timeoutInterval:responseEvaluator:]
has been deprecated. Use-initWithDataToSend:userInfo:timeoutInterval:responseDescriptor:
instead. - Deprecated
-[ORSSerialRequest dataIsValidRespone:]
. If this functionality is needed, use the request's packet descriptor's-dataIsValidPacket:
method instead.
- Removed support for deploying to Mac OS X 10.6 Snow Leopard. Those who need to continue deploying to 10.6 should use version 1.8.2. Version 2.0.0 will deploy to 10.7 or higher.
- Request / response API response detection has been rewritten to use new packet parsing API.
ORSSerialPort
now uses a dispatch source for reading from the underlying serial device- Converted all Swift demo apps to Swift 2.0
Note that this is the last release of ORSSerialPort to support deploying to OS X 10.6.
- Minor memory leak when targeting 10.6 or 10.7
- Made some usability enhancements in ORSSerialPortDemo
- Nullability annotations are now conditional, fixing building in older versions of Xcode
- Fixed build errors and warnings in Swift RequestResponseDemo project
- Added support for non-standard baud rates (depends on adapter driver)
- Added nullability annotations for nicer Swift integration
- Added Swift version of CommandLineDemo app
- Updated ORSSerialPortSwiftDemo to Swift 1.2
- Unified Objective-C and Swift versions of GUI demo into a single ORSSerialPortDemo folder
- Added
-[ORSSerialPortManager availablePortWithName:]
- Fixed possible hang due to deadlock when removing a port while it is still open
- Framework project builds on 10.7
- Fixes for building examples projects in Xcode 4.6 on 10.7
- Added demo app for Request / Response API (Swift and Objective-C)
- Added
queuedRequests
property used to obtain requests waiting to be sent
- When building from source and targeting OS X 10.8,
ORSSerialPort
'sdelegate
property is now weak ORSSerialPortDelegate
now inherits fromNSObject
protocol- Shortened readme, and moved more documentation into wiki
- Fixed failure to automatically close open ports when host application quits
- Added contribution guidelines (CONTRIBUTING.md)
- Better handling of requests for which a response is not expected
- Request response API works in Foundation-only programs
- Fixed possible deadlock in request response timeout logic
- Fixed broken automatic machine sleep/wake handling
- Changed framework name to ORSSerial.framework
- Fixed framework header visibility
- Project to build ORSSerialPort.framework
- Build error
- Minor bugs in Swift demo
- Updated and improved documentation
- Fixed possible failure to send all data when
-sendData:
was called with a lot of data
- Request / Response API (
ORSSerialRequest
, etc.) See documentation - Swift demo app
- Delegate method
-serialPort:didReceiveData:
is now optional
- Podspec file for built in CocoaPods support
- Updated to modern Objective-C syntax
- Cleaned up unused code in ORSSerialPortDemo
- Fixed 100% CPU usage and failure to call
-serialPortWasRemovedFromSystem:
after removing a port when not usingORSSerialPortManager
- Compiler warnings when building in Xcode 6..1 on 10.10
- Fixed possibility of passing
NULL
todispatch_retain()
- Updated documentation
- Bluetooth ports are no longer filtered from
-availablePorts
- Baud rate declarations
- Possibly incorrect error codes in errors passed to delegate error notification method
- Incorrect compile-time check for whether GCD objects participate in ARC
- Various other minor bugs
- Problem where
+[ORSSerialPort initialize]
could be called multiple times - Extraneous line (copy/paste error) that caused build failure
- Complete documentation
- Support for modem devices
- Support for passing dialin (tty.*) paths to
-serialPortWithPath:
- NSNotifications are posted when ports are added to/removed from the system
- Support for using ORSSerialPort in Foundation-only command line programs
- Command line example program
- Access to underlying IOKit device
- README and documentation improvements
- KVO notifications for
-availablePorts
include old/new keys in change dictionary - Fixed bug where changing number of stop bits didn't work
- An error is generated if ORSSerialPort is compiled with ARC turned off
Initial release