レポート

オートモーティブ,医療分野で採用が進むQtの今 -「Qt World Summit 2017」レポート

この記事を読むのに必要な時間:およそ 6 分

セッション

各セッションは,以下の8カテゴリに分類されており,1セッション25分または50分で,78セッションが行われました。なお,カテゴリ最後のカッコ内数字は各カテゴリのセッション数を表しています。複数カテゴリに属しているセッションもありました。

  1. App Dev(12)
  2. Automation(15)
  3. Automotive(16)
  4. Business(11)
  5. Embedded(7)
  6. Graphics and 3D(9)
  7. Medical(5)
  8. Technical Deep Dive(6)

ここでは,筆者が参加したトピック Automation「Qt and MQTT」⁠Automotive「QtIVI: Integrating and Testing Vehicle Functions with Qt Automotive Suite」⁠Medical「Technical Overview of Qt in Medical Devices」について紹介したいと思います。

Qt and MQTT

このセッションは,QtMqttのメンテナーであるMaurice Kalinowski氏が,Qt for Automationについて,MQTTとななにか,QtMqttとはなにか,最後にロードマップについて説明していました。

セッションの冒頭で,Qt for Automationプロジェクトが2017年8月に立ち上がり,そこにKNXやMQTTなどのM2Mプロトコルが含まれたことが説明されました。

次に,MQTTとは,OASIS標準であるpublish/subscribe型のメッセージを処理するための軽量プロトコルあることを説明していました。現在MQTTのバージョンは3.1.1です。

また,QtMqttは,クライアント側の実装で,デバイスからの送信や,データの受信や管理のモニタリングのソリューションを提供します。ブローカー,サーバ,およびクラウド側は対象外です。QtMqttでは,MQTT仕様に完全準拠したいうことで,プロトコルレベル3.1および3.1.1,SoQレベル,トピックのワイルドカード,認証,SSL接続,および遺言機能を実装しています。

最後に,ロードマップについて説明がありました。QtMQTTを含むQt for Automatoin 1.0は,GPL/CommercialのDual Licenseで,Qt 5.10でリリースする予定です。

また,将来の開発については,MQTTの次のバージョンとなる5.0のDraftのステータスがPublic Reviewであり,正式にMQTT 5.0がリリースされれば実装する予定です。ただし,MQTT-SNに関しては,適応事例が見当たらないので,聴講者からのフィードバックをもらい,Qtにとって利点があるかどうかを吟味した上で対応したいと締めくくっていました。

QtIVI: Integrating and Testing Vehicle Functions with Qt Automotive Suite

このセッションでは,KDABのMike Krus氏が現行のQt Automotive SuiteのQtIVIについて説明し,また,このQtIVI 1.xにおける問題を提起し,QtIVI 2.0で導入予定の解決策について述べました。

QtIVIとは,Qt In-Vehicle Infotainment車載用インフォテインメント(InformationとEntertainmentの造語)でQt Automotive Suiteに含まれる開発を支援するためのツールです。QtIVIを用いることで,エアコン制御,ウィンドウ制御,オーディオ制御などの車両機能をQtベースのインタフェースで容易に作成することができます。QtIVIモジュールでは,車載機能を利用するためのC++クラスやQML Typeを提供しています。モジュールは,開発者側のAPIをFeatureといい,それを実装した側をBackendといいます。また,1つのFeatureに複数のBackendを設けることも可能です。

QtIVI

QtIVI

現在のQtIVI 1.1では,QIviPropertiesを利用していますが,アプリケーション実装側でQtIVIで使用する全てのプロパティを記述する必要があります。たとえば,エアコンの温度の最大値や最小値など,全て定義しなければなりません。これには,Backendで使用するデフォルト値も含まれ,Backend側のメンテナンスも行う必要があります。

そこで,これらのプロセスを簡略化するために,QtIVI 2.0ではコード生成機能を追加します。これは,アプリで使用する値をInterfaceとして定義し,プロパティだけでなく,名前,ENUM,データ構造,Signal,Slotなどをメタデータとして記述できるようにします。そして,このメタデータから,QtIVI 1.1で手作業で作成していたプロパティや,Backendのデフォルト値,テスト時に使用するBackendのSimulatorの生成,およびデータバリデータ用のコードなどを生成しようと考えていると説明していました。

QtIVI 2.0は,次期Qt Automotive Suite 2.0で,来年にリリースの予定です。

Technical Overview of Qt in Medical Devices

このセッションでは,医療業界にて開発に従事してきたThe Qt CompanyのIonut Alexandrescu氏が,医療機器におけるQtの技術概要について述べ,最後に適用事例を2つ挙げて説明しました。

Ionut Alexandrescu 氏によるセッション

Ionut Alexandrescu 氏によるセッション

医療機器の表示に関しては,医者にとって,ボタンの位置,フォーマット,サイズなどの見た目がとても重要で,またユーザの経験も重要であることから,次のコンポーネントに有用性があると述べていました。

1. Qt Quick
Qt WidgetよりUI作成やカスタマイズが容易
2. Qt Safe Renderer
簡単に実装可能であり,安全に重要な部品を使用でき,また車業界でも使用されています。
3. Virtual Keyboard
数多くの言語対応し,手書き入力も可能であり,また,カスタマイズも簡単です。

さらに,医療機器間の接続に関しては,次の機能が有用であろうと付け加えて説明していました。

1. Qt Bluetooth
Bluetooh Low Enargy(BTLE)
2. Qt Serial Bus
自動車業界で多く採用されているCAN Busや産業業界のデファクトスタンダードであるModBusを使用しています。

最後に,使用事例の1つめとして,麻酔換気(Anesthesia ventilators)医療機器を紹介。これにはQt Quickが使用されており,全世界で毎日2万5,000人以上の患者に安全に使用されています。また2つめとして,医療機器ではありませんが,全世界で使用されている外科用レントゲン撮影装置(Cアーム)のシミュレーション機器があります。

著者プロフィール

鈴木哲也(すずきてつや)

株式会社SRAの開発エンジニア。2017年度からQt関連プロジェクト専任となり,Qtのコンサルティングやアプリケーション開発を担当している。