概要
最近はBLEとか無線が主流になってきていて,シリアル通信なんていらないぜって方もいるかもしれませんが,それでも開発機やプロトタイピングだったりすると,マイコンとの通信はシリアル通信が簡単で便利ですよね.おそらく,macOS (旧OSX)でシリアル通信やるアプリを実装するとなったら,多くの方がObjective-Cで書かれたORSSerialPortを使ってきたことだと思います.ORSSerialPortは優秀なライブラリなのですが,Swiftが浸透してきた時代には新しいライブラリが必要だと感じました.そこで,今回はシリアル通信用のライブラリをSwiftで書いてみました.
成果物 - SerialGate
MITライセンスにてGitHubにオープンソースとして公開し,CocoaPodsでもインストールできるようにしてみました(今回初の試み).
GitHubのリンク:SerialGate
デモ
プロジェクトの中にデモアプリが入っています.READMEにも使い方が軽く書いてありますが,実装はデモを参考にするといいと思います.機能検証は所持していたArduino microとmbedで行いました.Readは改行コード区切りで取得できます.
所感
今回Cに近い所の実装をしたため,Unmanaged<T>
やUnsafeMutableRawPointer
など普段接しないものに触れてSwiftの深淵を少し覗いた気がしました.
このSerialGateはまだ成長途中気味なライブラリではありますが,Swift時代のシリアル通信のデフォルトスタンダードになれたらなぁと思います.