05102024

Last update2016/05/28 14:38

Back 現在地: Home パートナー segger-tools VNC サポート

VNC サポート


VNC サポート

はじめ

VNCは、2つのタイプのコンポーネントで構成されています。ディスプレイ、そして実際に画面上の表示を描画するビューアを、生成するサーバー、。リモートマシン(ターゲットまたはシミュレーション)のみ閲覧だけでなく、マウスやキーボードで操作することができます。サーバとビューアは、異なるマシン上にして異なるアーキテクチャ上で可能性があります。サーバとビューワを接続するプロトコルは、シンプルでオープンな、とプラッフォームとは無関係です。ない状態がビューアで保存されていません。サーバへの視聴者の接続を切断してから再接続すると、データは失われません。接続がどこかからリメイクすることができるので、簡単に機動性を持っている。VNCサーバを使用すると、どこからでもターゲットを制御してもよいし、"ライブ"システムからスクリーンショットを(手動用など)することができます。

要件

TCP / IPスタック

サーバとビューア間の通信はTCP / IP接続に基づいているため、VNCはTCP / IPスタックが必要です。Win32のシミュレーション環境では、TCP / IP(Winsock)通常存在です。ターゲットでは、TCP / IPスタックが存在する必要があります。TCP / IPスタックはemWinの一部ではありません。柔軟なインタフェースは、任意のTCP / IPスタックが使用できるようにするため。

タスキング、マルチ

VNCサーバは、別のスレッドとして実行する必要があります。そのため、マルチタスクシステムは、emWin VNCサーバを使用する必要があります。

この実装上の注意

サーバメッセージにサポートされているクライアント

emWin VNCサーバは、ポインタのイベントメッセージとキーボードのイベントのメッセージをサポートしています。

エンコーディング

サーバは、生のエンコーディングとhextileエンコーディングをサポートしています。

認証

Serverは、現在認証を必要としません。ただし、この機能は要求に応じて簡単にサーバに追加することができます。

パフォーマンス

ほとんどの視聴者は、降下の圧縮をサポートしているhextileエンコーディングを、サポートしています。典型的な四半期VGA画面では、典型的には20が必要 - データの50KB。ARM7プラットフォーム(50 MHZ、キャッシュ付き)上で動作する実装では、アプリケーションが必要です。200 - 画面全体の更新のために300ミリ秒。サーバは、増分更新を処理し、ほとんどの場合、更新された表示領域は全体のディスプレイに比べてずっと小さいですし、少ないデータは、送信する必要があります。典型的なARM7システムは、したがって、リアルタイム更新が可能になります。

複数のサーバ

実装は、完全に安全かつリエントラントスレッドです。複数のVNCサーバは、異なる層またはディスプレイに同じCPU上で起動することができます。あなたの目標は(もちろん、同じことがシミュレーションで成立)複数のディスプレイまたは複数のレイヤーを持っている場合、これは便利なオプションをすることができます。唯一のVNCサーバは、任意の時点でレイヤー単位で開始されることがあります。ビューアへの接続が終了したら、もう一方は接続することができます。

VNCビューア

可用性

サブフォルダ™ツール™AT&Tケンブリッジ研究所からVNCビューアが含まれています。それはフリーソフトウェアであり、GNU Public Licenseの条件の下で配布されています。VNCソフトウェアの現行バージョンは、異なるプラットフォーム用のサーバーとクライアントのためのより多くのVNCプロトコルに関する情報だけでなく、ソースコードが利用可能にhttp:// www.uk.research.att.com / vncからダウンロードできます。

バージョン

emWinのVNCの実装は、バージョン3.3.3R2でテストされており、このバージョンまたはそれ以降のバージョンでも動作するはずです。

プラットフォーム

ビューアは、異なるプラットフォームで利用可能です。可用性の詳細については、AT&Tケンブリッジ研究所のウェブサイトを見てください。

VNCビューアの起動

ファイルのToolVNCViewer.exeをダブルクリックしてビューアを起動します。それは、接続するVNCサーバを求めるプロンプトが表示されます。

同じPC上でシミュレーションを使ってVNCサーバに接続する

同じPC上でvncviewerを、シミュレーションを実行して、タイプは"localhost:0"に接続する。":0"は、サーバーのインデックス0を意味する。あなたがサーバのインデックスを省略した場合はビューアがサーバの0を想定しています。そのため、ほとんどのケースでは、シミュレーションへの接続に"localhost"を入力することができます。

別のPCまたはターゲット上で動作するVNCサーバへの接続

(":"とサーバ番号、オプションに続く)別のPCまたはターゲットシステム上で実行されているVNCサーバーに接続するには、マシンの名前またはIPアドレスを入力してください。または"イェル":コンピュータ"イェル"、IPアドレス192.168.1.2を持つ上でVNCサーバに接続するには、"192.168.1.2:0"、または"0イェルク"を入力することができます。IPアドレス192.168.1.254を使用してターゲットに接続するには、"192.168.1.254"と入力します。

スクリーンショット

次のスクリーンショットは、ビューアを示しています。

シミュレーションに接続 ターゲットに接続

emWin VNCサーバ

emWin VNCサーバの起動

VNCサーバを起動する唯一の事は、関数を呼び出すことですGUI_VNC_X_StartServerを():

ボイドMainTask(ボイド){GUI_Init(); GUI_VNC_X_StartServer(0、/ *レイヤのインデックス* / 0); / *サーバのインデックス* / ... } 

 

上記の関数呼び出しは、着信接続用にポート5900で待機するスレッドを作成します。接続が検出された後 GUI_VNC_Process()が呼び出されます。

ポート

VNCサーバは、xはサーバーのインデックスであるポート590x、リッスンします。彼らは、デフォルトで表示0を使用するためこのように、ほとんどのPCサーバでは、ポートは、5900になります。

どのようにサーバが起動し...

シミュレーションを使用する場合は、のみの関数GUI_VNC_X_StartServerは() 呼び出す必要があります。それはincomming接続が検出されるまでポート590xでリッスンし、呼び出しスレッドが作成さGUI_VNC_Process()実際のサーバの実装である、。

ターゲット上でVNCサーバの統合

関数の前にGUI_VNC_X_StartServer()は使用することができる、それが使用するTCP / IPスタックとマルチタスクシステムに適応する必要があります。唯一の小さな変更が必要な実装の サンプルは、提供されます。サンプルファイルには、用のメモリの割り当てに動的なメモリ割り当てを使用していませんGUI_VNC_CONTEXTの後述する構造を。したがって、この実装では、1つのサーバーのみ を起動することができます。

設定オプション

タイプマクロデフォルトの説明
N GUI_VNC_BUFFER_SIZE 1000年 フレームバッファサイズ。バッファはスタック上に割り当てられます。
バッファサイズを大きくする場合は、システムをスピードアップされていません。
スタックサイズは、バッファのサイズがアプリケーションにダウンを低減することができる短い場合。200バイト。
B GUI_VNC_LOCK_FRAME 0 1 GUIに設定すると視聴者に送信されたフレームの中にロックされる場合。
ドキュメンテーションのためのスクリーンショットが行われる必要がある場合はこのオプションは意味をなさない可能性があります。
S GUI_VNC_PROGNAME (説明を参照してください) このマクロは、ビューアのタイトルバーに表示されているターゲットの名前を定義します。
シミュレーションではビューアを使用している場合、デフォルトは:
"WIN32上で組み込みGUI"
ターゲットを使用している場合、デフォルトは:
"組込みGUI"
B GUI_VNC_SUPPORT_HEXTILE 1 hextileエンコーディングを有効または無効にします。Hextileエンコーディングは高速ですが、大きなコードを(約1.4K以上)が必要です

サンプル

試用版は、また、VNCサーバが含まれ、(使用してコードの1つしか線を取りますGUI_VNC_X_StartServer()) をアクティブにする。

単層のサンプル
スクリーンショットのシミュレーション スクリーンショットVNCサーバ
VNC_singlelayerサンプルをダウンロード(この先は英語になります)

 

マルチレイヤーのサンプル
スクリーンショットのシミュレーション スクリーンショットVNCサーバ
レイヤ0

レイヤ1

VNC_multilayerサンプルをダウンロード

サンプルは、上記のプリコンパイルされた実行可能ファイルですとemWinシミュレーションで生成。これは、どのようなPCで実行することができます。VNCビューアを接続するために使用することができます。