設計 > SDKありとSDKなしでの実装


動作環境
RS-232Cが使える環境

関連

組込みプログラミング > エミュレータを作る利点と欠点

背景

  • とある装置がある
  • とある通信interface(例: RS-232C)で通信する
  • その装置との通信用SDKが提供されている
    • 対応OSは決まっている

とある装置のエミュレータを作ったのは2年くらい前だった。
その後、PC上でSDKを使った通信ソフトのデバッグにそのエミュレータが活躍してきた(数百時間くらい)。

変更 > SDKを使わない

「SDKなしで通信できたらXXXできるのに」という一言から始まった。

エミュレータがあったので、エミュレータと通信しながら、SDKなしの通信ソフトを実装した。
装置の実機もあるので、その後に実機を使って動作確認も終わった。

SDKを使わない

SDKを使った場合、以下の事項が気になる。

  • OSのバージョンアップ時にSDKはそのまま使えるか
    • XPから7になったので対応できません、という実例は、とある会社の製品であった
      • それを残念がるユーザの言葉が強く印象に残った
    • ソフトのEOL (End of Life)を規定する
  • SDKを使えるOS上でしか動かない
    • ESP8266やRaspberry Piでは使えない
  • 付随情報の通信を行うことにより、処理時間がかかる
    • 例:20秒(SDKあり), 1秒(SDKなし)
  • 一度に1対1通信しかできない (1対N同時通信ができない)
    • SDKでインスタンス変数ではなく、static変数を使っているようだ

アスキー通信の場合は通信内容から推測ができるかもしれない。
バイナリ通信では解析が成功しないとSDKを使うことになる。

状況に合わせてSDKあり、SDKなしを検討するのはいいかもしれない。

独自機能に依存した通信の場合はSDKなしでの利点は少ないかもしれない。