0

まず、C++ Builder でのこの種の開発は初めてなので、C++ Builder XE8 でタスクを達成するための最良の方法を探しています。基本的に、更新を sqlite データベースにプッシュする 1 つの firemonkey GUI アプリケーション (より良い代替手段がある場合はアドバイスしてください) と、それとカスタムメイドのハードウェアとの間のインターフェイスとなる別の firemonkey アプリケーション (基本的にはバックグラウンド サービス) を用意します。 . それで、私の質問は、データベースが更新されたことを伝えるための最も速く、最も「ライブアクション」な方法は何ですか. イベントハンドラ? 100 ミリ秒ごとにライブバインディングを更新するだけのタイマーは、コストがかかるように思われるため、使用したくありません。これは、Android、iOS、および Windows デバイスで実行されることに注意してください。それらのいくつかは力不足かもしれません。

私のアイデアは、元のアプリケーションが必要に応じて更新を sqlite データベースにプッシュするというものです。これはディスク上の単なるファイルです。インターフェースとなる firemonkey アプリケーションは、イベント リスナーによって、または私が読んだマルチプラットフォームの RTL メッセージから、これらの更新がいつ発生したかを知る必要があります。アイデアは、最小量のメモリ フットプリントで最速の通信を行うことです。ハードウェアをどのように扱っているかはまだわかりませんが、今のところ、ポイント A からポイント B に移動する必要があり、ポイント C (ハードウェア) については後で心配します。そのため、元の GUI アプリケーションからのデータベースの更新をインターフェイス アプリケーションでリッスンするようにするためのアドバイスは素晴らしいものです。また、ファイルが更新されているかどうかを確認できるファイルリスナーであることも読みましたか?

4

1 に答える 1

1

あなたが達成しようとしていることを完全に理解しているかどうかはわかりませんが、できる限りお答えします。

システムの両端を制御しているので、データベースがいつ変更されるかを把握しようとはしませんが、代わりに、変更が書き込まれたときにすべてのアプリに通知するだけです。説明させてください。

データベースへのすべての書き込みを処理するメイン アプリがあります。データベースへの書き込みが開始されると、接続されている他のすべてのアプリにも通知が送信されます。これは、データベースを更新するための最良の方法であるためです。

通信を処理する最も簡単で非常に軽い方法は、App Tethering: Overview video and Documentationです。これは、接続ハードウェア (IoT) でのアプリ テザリングの使用に関する CodeRage セッションと、一般的なアプリ テザリングに関する別のセッションです。

来週も、暗号化を使用したアプリ テザリングに関するスキル スプリントがあります (暗号化は必要ないことはわかっていますが、それでも質問をするのに適した場所かもしれません)。

また、InterBase XE7 では変更変更ビューが導入されました。これにより、アプリは、前回以降にデータベースで何が変更されたかを簡単に確認できます。

于 2016-01-15T23:19:51.297 に答える