じゃあ恥ずかしいけど公開します。どうせ暇だし。

あとメモリ食うのはきみが通信内容消さないせいだと思う。

このアプリケーションはOS X 10.8以降で動作します。

とりあえず最低限コードを整形してGitHubにあげときました。

https://github.com/mtkrtk/Serialer

自分でビルドしろというのも不親切ですから、バイナリも一緒に上げときました。

https://github.com/mtkrtk/Serialer/releases

つかいかた

  1. シリアルポートを指定する
  2. Portというラベルの横のコンボボックスにシリアルポートのパスを入れます。

    起動すると勝手にシリアルポートを検索してくれます。

    Searchボタンを押して検索させることもできます。

    お目当てのポートが出てこない場合は直接入力することもできます。

  3. ボーレートを指定する
  4. Baudというラベルの横のポップアップボタンから選びます。

    デフォルトは9600です。デフォルトを変える機能とかはないです。

    変えたかったらソースいじってビルドしてください。

  5. モードを指定する
  6. Modeというラベルの横のポップアップボタンから選びます。

    無駄に3つも読み取りモードを備えています。

    char[] 読んだデータを文字列として表示する(普通これしか使わない)。
    uint8_t 読んだデータを符号なし8bit整数として表示する。
    int8_t 読んだデータを符号あり8bit整数として表示する。

  7. Startボタンを押す
  8. シリアル通信が始まります。

    StartボタンがStopボタンになるので止めたかったらそれを押します。

  9. 画面がデータでいっぱいになったら
  10. Clearボタンを押して消しましょう。

あとはなんだかデータを送信する機能がついてる風味です。

画面下部のテキストボックスにデータを入れてSendボタンを押すとデータが送信されます。

テキストボックス左のポップアップボタンからデータの扱いを変更できます。

String データを文字列として送信する。
Numeric データを数値として送信する。
\n 入力されたデータに関わらず改行コードを送信する。

ソースについて

ソースコードはあんまり見て欲しくないです。いろいろと適当仕様なのです。

  • 恥ずかしポイント1: AppDelegateの実装がいいかげん
  • 個人用の動けばよかろうコードなのでエレガントさに欠けます。

  • 恥ずかしポイント2: シリアルの初期化がAppleのサンプルコード
  • だって動くんだもの。

あと、SwiftじゃなくてObjective-Cで書かれているのには理由があります。

当初SwiftはなぜかIOKitあたりのAPIが一部叩けなかったのです(今は知らない)。

登場して間もない言語だったので仕方ないですね。

どれくらい間もないかというと、実は2015ジャパンオープンでGcraudNanoのポスターにSerialerが紹介されていたりします。

実際は関東ブロック〜ジャパンオープンの間に開発し始めた気がします。Swift登場から下手すると半年経っていません。

今ならSwiftでAPI叩けるかもしれませんが、Objective-C大好きなので書き直すつもりとかはあまりありません。

困ったことがあったら言ってください。