Qt

Qt Safe Renderer を用いた機能安全の実現

Published Monday June 5th, 2017 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の Functional Safety with the Qt Safe Renderer を翻訳したものです。 執筆: Tuukka Turunen, 2017年5月22日 この記事では Qt によるユーザーインターフェースと機能安全について、新しいアプローチを紹介します。Qt Safe Renderer により、リッチな GUI とセーフティクリティカルなシステムの共存の実現が簡単になります。車載や医療、産業オートメーションのような Qt が UI フレームワークとしてリードしている業界において、Qt の利用と共にセーフティクリティカルの要件を満たすことがより簡単になりました。 我々の機能安全に対するアプローチについては以前書いた「機能安全」の記事と「Qt を用いたシステムの認証取得」に関する記事をご覧ください。 認証取得可能なシステムの構築において、セーフティークリティカルな機能はシステムのその他の部分と分離されている必要があります。セーフティークリティカルな機能は、例えば認証済みのリアルタイムオペレーティングシステム(RTOS)を用いて自身のメモリ領域を保護されたプロセスとして分離することが可能です。これにより、セーフティークリティカルなシステムに必要な部分は以下の2つとなります。 UI のデザインワークフローを実現する認証済みのツール セーフティクリティカル部分の設計、コーディング、認証取得 この度開発をした Qt Safe Renderer は、セーフティクリティカルな UI のアイテムをデザインするためのツールと、その部分を描画する特別なソフトウェアを提供することで、Qt ベースのセーフティクリティカルシステムのこの2つの問題を解決いたします。 Qt Safe Renderer のツールでは、セーフティークリティカルの UI を Qt によるセーフティクリティカルシステムに容易に追加できるようになっています。警告灯などのセーフティクリティカルの UI エレメントを GUI […]

Read More

Qt 5.9 をリリースしました

Published Thursday June 1st, 2017 | Leave a comment
Posted in Qt | Tags: ,

この記事は The Qt Blog の Qt 5.9 released を翻訳したものです。 執筆: Lars Knoll, 2017年5月31日 Qt 5.9.0 を本日リリースいたしました。Qt 5.9 は Qt 史上、最高のバージョンになるよう、これまで開発を続けてまいりました。 Qt 5.9 では特に パフォーマンスと安定性の向上に力を入れてきました。バグの修正は Qt の隅々に渡って行われ、継続的な自動テストのインフラの改善も行いました。これにより、Qt 5.9 以降の Qt のリリースサイクルを(パッチレベルでもマイナーリリースでも)速く回すことができるようになりました。 また、テストのインフラにパフォーマンスの自動テストも追加し、パフォーマンスの向上を継続的に可視化できるようにしました。詳細は こちらのブログ記事 をご覧ください。 Qt Lite 向けに開発した新しい Qt のコンフィグレーションシステムにも様々なバグフィックスがなされました。詳細は こちらのブログ記事 をご覧ください。 長期サポート(LTS) Qt 5.9 を「長期サポート(LTS)」としたのは大きな決断の一つでした。前回の LTS である Qt 5.6 は時代遅れになり始めたところで、もっと新しいバージョンを長期的なプロジェクトのベースとして採用したいという要望が数多く寄せられていました。 Qt 5.6 以降、2000 以上のバグフィックスが Qt 全体に渡って行われてきました。Qt […]

Read More

Qt 5.9 LTS の INTEGRITY RTOS サポート

Published Monday May 29th, 2017 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の INTEGRITY RTOS Support in Qt 5.9 LTS を翻訳したものです。 執筆: Tuukka Turunen, 2017年5月17日 Qt 5.9 LTS は Green Hills Software 社のリアルタイムオペレーティングシステム(RTOS) である INTEGRITY を公式にサポートします。INTEGRITY は Qt 4.8 で一度サポートされましたが、今回 Qt 5.9 で再度サポートされることになりました。INTEGRITY 上で Qt を動かしたいという要望は、機能安全を満たす車載のメータークラスタ以外にも様々な業界のみなさんから上がってきていました。 Qt で INTEGRITY をサポートする重要性はどのくらいあるのでしょうか?その最先端のクロスプラットフォームのアプリケーション&UI開発フレームワークが RTOS のアプリケーション開発に必要でしょうか?それらはインフラの深部で動作しているので、普通にしていたら絶対気づかないでしょう? これは半分は正しくて半分は間違いです。多くの RTOS アプリケーションは UI を持たず、美しい操作可能な GUI は分離されています。しかし、ユーザー体験を実現するために最新の GUI フレームワークを必要とする RTOS アプリケーションの数は急速に増えつつあり、高度なセーフティとセキュリティを提供する […]

Read More

Qt 5.9 は LTS になります

Published Monday May 29th, 2017 | Leave a comment
Posted in Qt | Tags: ,

この記事は The Qt Blog の Introducing Long Term Support for Qt 5.9 を翻訳したものです。 執筆: Tuukka Turunen, 2017年5月11日 Qt 5.9 を Long Term Support(LTS) とすることをこの度決定いたしました。Qt 5.6 LTS 以降、様々な改善がなされて来ており、それらの恩恵をユーザーのみなさんが最大限活用できるよう、Qt 5.9 を LTS とすることにしました。Qt 5.9 の正式リリース以降の3年間、Qt 5.9.x というパッチリリースを継続して行う予定です(Qt 5.10 のリリース以降も 5.9.x のサポートは継続されます)。商用版をお使いの方は、LTS の期間内は 5.9 のサポートを受け続けることができます。 前回の LTS である Qt 5.6 のリリース以来、数え切れないほどの改善がなされてきました。大幅なパフォーマンスの改善やいくつもの新機能の追加、膨大な数のバグの修正が行われています。Qt 5.9 LTS は Qt 5.6 LTS 以降の大幅な改善を取り込んだ最高の製品になるでしょう。というわけで、すべてのユーザーのみなさんが、これまでの成果を享受できるよう、Qt […]

Read More

Qt オンラインインストーラーのメンテナンスツールの更新のお願い

Published Wednesday April 26th, 2017 | Leave a comment
Posted in Qt | Tags: ,

この記事は The Qt Blog の Please update your Qt Online Installer’s Maintenance Tool を翻訳したものです。 執筆: Katja Marttila, 2017年4月20日 この度、Qt のオンラインインストール用のサーバーのドメインを変更することにいたしました。2.0.3 以前のメンテナンスツールをお使いの場合は最新の 2.0.5 にアップデートしてください。 「Update Components」の実行でこれは完了し、Qt 自体のインストールへの影響はありません。このアップデートは2017年5月5日までに行ってください。それ以降、古いメンテナンスツールをお使いの方はエラーが発生します。 2.0.4 をお使いの方は引き続きそのバージョンをお使いいただくことが可能です。

Read More

【Qtデバイスの高速起動】Part4: ハードウェアについて

Published Wednesday April 26th, 2017 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の Fast-Booting Qt Devices, Part 4: Hardware Matters を翻訳したものです。 執筆: Risto Avila, 2016年8月30日 みなさんこんにちは! これまで Qt デバイスの高速起動に関して 1.5 秒でブートします、Qt アプリケーションの最適化、システム全体の最適化 の3つ記事を書きました。今回はハードウェアの選択、特に同じ CPU が載っていてもアーキテクチャの違いによって高速起動に与える影響が大きいことを説明したいと思います。この比較のために、同じ NXP i.MX6 Quadcore CPU を搭載した2つのボードを用意しました。1つはソフトウェア開発向けのボードで、もう片方は製品にも使えるようなシステム・オン・モジュールのボードです。 それではちょっとしたバトルを開催しましょう! 左側は NXP SABRE i.MX6 Quad Development Board です: NXP i.MX 6 Quadcore プロセッサ、1GHz で動作 1GB DDR3 RAM 8GB eMMC 右側は Toradex Apalis […]

Read More

【Qtデバイスの高速起動】Part3: システムイメージの最適化

Published Tuesday April 25th, 2017 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の Fast-Booting Qt Devices, Part 3: Optimizing System Image を翻訳したものです。 執筆: Risto Avila, 2016年5月25日 高速起動に関するブログ記事の3つ目です。最初の記事 ではクラスタのデモ が 1.56 秒で起動し、2つ目の記事 では Qt アプリケーションの最適化 について紹介しました。今回はブートローダーと NNXP i.MX6 SABRE ボード用の Linux カーネルの最適化に専念しましょう。 起動時間の高速化に着手する前に測った起動時間は 22.8 秒でした。その後ゴールを2秒以内に定めました。これに向けて様々な作業を行います。最初は一番わかりやすい rootfs からはじめました。既存の rootfs は今回のデモには必要のないものが数多く含まれていました。これにより、元々 500 MB だったサイズが 24 MB まで減らすことができました。buildroot を用いてターゲットデバイス向けの最小限の rootfs とクロスコンパイル用のツールチェインを用意しました。 この小さな rootfs で測定した起動時間は 15.6 秒でした。この中でカーネルの起動が 6 […]

Read More

【Qtデバイスの高速起動】Part2: Qt アプリケーションの最適化

Published Tuesday April 25th, 2017 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の Fast-Booting Qt Devices, Part 2: Optimizing Qt Application を翻訳したものです。 執筆: Risto Avila, 2016年4月27日 先日の記事 では i.MX6 ボード上で2秒で起動する高速起動デモの紹介をしました。今回の記事では Qt QML のクラスタアプリケーションをどのように最適化したのかをカバーしたいと思います。 Qt World Summit 2015 で展示した当初のデモは PC 環境で設計され、起動時間についてはそもそも考慮されていませんでした。Loader を利用して UI のパーツを非同期にロードするような設計にはなっていましたが、起動シーケンスについてはまったく間が得られていませんでした。最適化の初めの一歩として、ユースケースについて考える必要がありました。「はじめにユーザーに見てもらいたいものはなにか?」を検討した結果、一番初めは計器類の外枠を表示し、その後で画面に表示する他のものをロードするということにしました。 以下の画像で赤いオーバーレイの部分がアプリケーションの起動直後にユーザーが目にするエリアになります。 アプリケーションのソースコードを見てみると、ダッシュボードは複数のマスク画像で、その中のいくつかは画面と同じ大きさでした。そのためこれをすべて結合し、1つのフルスクリーンの画像にし、UI の最前面に表示させるようにしました。 アプリケーションの起動を一秒でも速くするために、アプリケーションの内部構造も色々見直しました。ダッシュボードのフレームを1つの QML ファイルにまとめ、一番最初にロードするようにしました。この外枠がロードされ描画されたあとで、UI の他の部分をロードするためのローダーを有効にするようにしました。 実際にどういった処理に時間がかかっているかを調べるために、Qt Creator の QML プロファイラも活用しました。元々このデモではデスクトップアプリ向けに開発されていた Qt Quick Controls を利用していて、これによって余計に時間がかかっていた部分がありました。(余談ですが、Qt Quick Controls は組み込み向けに 設計が見直されたものが […]

Read More

【Qtデバイスの高速起動】Part1: 車載インストルメントクラスタ

Published Tuesday April 25th, 2017 | Leave a comment
Posted in Qt | Tags: , , ,

この記事は The Qt Blog の Fast-Booting Qt Devices, Part 1: Automotive Instrument Cluster を翻訳したものです。 執筆: Risto Avila, 2016年4月20日 組み込み機器を開発する場合にユーザー体験として重要となるものの一つに、システムの起動時間ががります。自動車をはじめとした多くの業界において、起動時間は必須条件という場合もあります。 これに関して「Qt で開発した端末でどのくらい高速に起動ができますか?」「システムと Qt アプリケーションを2秒以内に起動するのは可能ですか?」「Qt アプリケーションを起動するのに最低限必要なシステムは何秒で起動できますか?」といった問い合わせを数多くいただいてきました。 これらの質問に対する唯一の回答は残念ながら存在しません。その代わりに、Qt で作る組み込みシステムの最適化に関して3つのブログ記事を書くことにしました。最初の記事では車載のインストルメントクラスタを例に、私たちが開発した高速起動デモのベンチマーク結果を紹介します。次の記事では実際に「どのように」Qt や Qt Quick アプリケーションを最適化したのかを紹介し、最後の記事ではハードウェアに関わる起動時間の短縮について書く予定です。 車載インストルメントクラスタのデモ 自動車業界では、起動時間に関する明確な要求が存在します。たとえば、デジタルインストルメントクラスタでは、できる限り高速に起動することが重要です。車の起動とほぼ同時にインストルメントクラスタが起動し、適切に動作する必要があります。これはユーザー体験としてだけではなく、安全性に関する要件という側面もあります。と同時に、計器類の表示のデジタル化はどんどん進み、3D 表示のようなリッチな表現に変わっていきます。プラットフォームやフレームワークといったソフトウェアの設計的にここは注意深く行う必要があります。Qt ではこのようなインストルメントクラスタの高速起動が可能で、Embedded world 2016 instrument cluster demo で最適化されたデモを実際に作成しました。 以下の動画で結果をご覧ください。 最適化以前の起動時間は23秒でしたが、様々な最適化の結果、起動直後のスクリーンの表示までの時間を 1.5 秒に短縮することに成功しました。この時間はシステムに必要とされるものに依存します。 起動時間の分析 この動画をもとに解析し数値化した結果が以下の図になります。 コールドブートで最初の画面の描画が表示されるまでにかかった時間は 1500 ms です。ご覧のように、多くの時間は Qt アプリ以外の部分に費やされています。その部分に関してはハードウェア的に高速に起動するものを選択する事でさらに短縮できるのではないかと思っています。ボードはメモリとメモリバスが高速である必要があります。u-boot はのさらなる最適化や、別のブートローダーを導入することでもう少し高速化できる可能性がありますが、特に Qt Quick […]

Read More

QPainter の OpenGL Core Profile Context のサポート

Published Tuesday April 25th, 2017 | Leave a comment
Posted in Qt | Tags: , ,

この記事は The Qt Blog の OpenGL Core Profile Context support in QPainter を翻訳したものです。 執筆: Laszlo Agocs, 2017年1月27日 みなさんご存知のとおり、QPainter は複数のバックエンドに対応していて、Qt 5 では主に2つの実装が利用されています。一つは ラスターペイントエンジン で、もう一つは OpenGL ES 2.0 向けの OpenGL2 ペイントエンジンです。 GL ペイントエンジンについて 様々な側面からラスターペイントエンジンが Qt では主役となっていますが、今回は脇役の方についてお話ししたいと思います。GL ペイントエンジンは QPainter が以下に対しての描画の際に使われます。 QOpenGLWindow QOpenGLWidget 現在のコンテキストと描画対象をラップすることができ、主に FBO 向けで使われる QOpenGLPaintDevice 既存の問題点 最近の OpenGL の状況はどうでしょう? 問題の元がなにかというと、Qt 5.0 当時、core profile context を使用して特殊な OpenGL の描画をする必要に迫られている人たちは様々な障害にぶちあたってきました。非推奨や削除された機能(例えば、クライアント側のポインター)に依存していたり、Vertex […]

Read More
Get started today with Qt Download now