Mercurial > hg > Members > oc > TreeVNC_mm
changeset 0:f2f19f45a77d
add mindmap
author | oc |
---|---|
date | Tue, 28 Oct 2014 05:35:00 +0900 |
parents | |
children | a4e68be124f3 |
files | TreeVNC.mm |
diffstat | 1 files changed, 212 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TreeVNC.mm Tue Oct 28 05:35:00 2014 +0900 @@ -0,0 +1,212 @@ +<map version="1.0.1"> +<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net --> +<node CREATED="1414405979339" ID="ID_990549510" MODIFIED="1414406069069" TEXT="TreeVNC"> +<node CREATED="1414406069454" ID="ID_157968695" MODIFIED="1414406071971" POSITION="left" TEXT="中間発表"> +<node CREATED="1414407632851" ID="ID_1399607370" MODIFIED="1414407634698" TEXT="目次"> +<node CREATED="1414407635260" ID="ID_1966814436" MODIFIED="1414407638355" TEXT="はじめに"/> +<node CREATED="1414407638604" ID="ID_1013097067" MODIFIED="1414407642066" TEXT="VNCとは"/> +<node CREATED="1414407642648" ID="ID_1036506863" MODIFIED="1414407653922" TEXT="TreeVNCの実装内容"/> +<node CREATED="1414407654436" ID="ID_946986347" MODIFIED="1414407660114" TEXT="デバッグ関係"> +<node CREATED="1414407752980" ID="ID_952143069" MODIFIED="1414407800016" TEXT="portの構造を変更した"> +<node CREATED="1414424039241" ID="ID_595848106" MODIFIED="1414424043408" TEXT="今まで"> +<node CREATED="1414424046137" ID="ID_1725191554" MODIFIED="1414424059666" TEXT="子nodeからrootに直接msgを投げていた"/> +<node CREATED="1414424206464" ID="ID_1692213701" MODIFIED="1414424225634" TEXT="msg別にport番号を開け、それで識別していた"/> +<node CREATED="1414424293039" ID="ID_695301377" MODIFIED="1414424322938" TEXT="port番号が固定だったため、1台のPCでTreeVNCは複数動かせなかった"/> +</node> +<node CREATED="1414424061226" ID="ID_276147644" MODIFIED="1414424064627" TEXT="改善後"> +<node CREATED="1414424109892" ID="ID_1282288981" MODIFIED="1414424124459" TEXT="nodeがそれぞれport番号を持つようになった"> +<node CREATED="1414407943692" ID="ID_1642949300" MODIFIED="1414424189138" TEXT="受信はrootの5950"/> +</node> +<node CREATED="1414424341639" ID="ID_1684656553" MODIFIED="1414424390626" TEXT="port番号を開ける際、固定ではなく動的に開いているport番号を探す"/> +<node CREATED="1414424065096" ID="ID_1690977745" MODIFIED="1414424083923" TEXT="子nodeからのmsgは木を伝って投げる"> +<node CREATED="1414407811697" ID="ID_1255665047" MODIFIED="1414407936010" TEXT="msgの識別をportでしなくなった"/> +</node> +<node CREATED="1414407690732" ID="ID_1339687890" MODIFIED="1414424285474" TEXT="デバッグしやすくなった"> +<node CREATED="1414407706852" ID="ID_1764452535" MODIFIED="1414407716555" TEXT="1つのPCで複数のTreeVNCが動く"/> +<node CREATED="1414407717444" ID="ID_886648008" MODIFIED="1414407732674" TEXT="checkDelayの再実装"/> +</node> +</node> +</node> +<node CREATED="1414407738346" ID="ID_1268915060" MODIFIED="1414407745947" TEXT="有線と無線で繋げられるようになった"> +<node CREATED="1414424406452" ID="ID_115158272" MODIFIED="1414424408978" TEXT="今まで"> +<node CREATED="1414424413136" ID="ID_955851456" MODIFIED="1414424426587" TEXT="hostnameで識別し、broadcast通信を行っていた"> +<node CREATED="1414424459121" ID="ID_451407407" MODIFIED="1414424488074" TEXT="hostname別だと1台につき1つ"/> +</node> +<node CREATED="1414440824904" ID="ID_797627727" MODIFIED="1414440869794" TEXT="nodeListはひとつであり、その中身はhostname別であった"/> +</node> +<node CREATED="1414424409546" ID="ID_1575688246" MODIFIED="1414424411824" TEXT="改善後"> +<node CREATED="1414424427639" ID="ID_1808841505" MODIFIED="1414424448562" TEXT="netInterfaceを使い、broadcast通信を行う"> +<node CREATED="1414424489234" ID="ID_141169075" MODIFIED="1414424513211" TEXT="netInterface別だと、1台につき有線・無線分できる"/> +</node> +<node CREATED="1414440836836" ID="ID_1184371154" MODIFIED="1414440848506" TEXT="nodeListがinterface別に作られる"> +<node CREATED="1414440895210" ID="ID_101061904" MODIFIED="1414440913642" TEXT="nodeListの数は、rootのnetworkInterfaceの数分"/> +</node> +<node CREATED="1414440978567" ID="ID_1242748032" MODIFIED="1414440997393" TEXT="nodeListの中身はTreeVNCNode"/> +<node CREATED="1414440915120" ID="ID_23305121" MODIFIED="1414441009121" TEXT="TreeVNCNodeの中身は、hostnameとportとlocalhostnameになった"/> +</node> +<node CREATED="1414440780172" ID="ID_347543596" MODIFIED="1414440783427" TEXT="処理の流れ"> +<node CREATED="1414440138496" ID="ID_1370883920" MODIFIED="1414440165730" TEXT="nodeがrootに繋ぎたい場合、Broadcastを利用して、FindRootを送信している"/> +<node CREATED="1414440169332" ID="ID_103289642" MODIFIED="1414440186130" TEXT="rootはそのFindRootに答えて、FindRootReplyを送信する"/> +<node CREATED="1414440200951" ID="ID_1388601897" MODIFIED="1414440227571" TEXT="以前と違うところは、新しくnodeListに加わる際に、networkInterfaceを確認する"/> +</node> +<node CREATED="1414439447448" ID="ID_1565893330" MODIFIED="1414439481369" TEXT="Hashmap interfaces<String, TreeManagement >"> +<node CREATED="1414439523857" ID="ID_1311108766" MODIFIED="1414439525835" TEXT="構造"> +<node CREATED="1414439485273" ID="ID_1984979608" MODIFIED="1414439500865" TEXT="String : en0 or en1"/> +<node CREATED="1414439501415" ID="ID_417290844" MODIFIED="1414439516219" TEXT="TreeManagement : nodeListが入ってる奴"/> +</node> +<node CREATED="1414439537089" ID="ID_1739621185" MODIFIED="1414439538658" TEXT="中身"> +<node CREATED="1414439539106" ID="ID_535407154" MODIFIED="1414439543177" TEXT="[0]"> +<node CREATED="1414439545953" ID="ID_1292359163" MODIFIED="1414439550928" TEXT="key : en0"/> +<node CREATED="1414439551273" ID="ID_1784494347" MODIFIED="1414439572423" TEXT="value : 有線用のnodeListが入ったTreeManagement"/> +</node> +<node CREATED="1414439578992" ID="ID_708510720" MODIFIED="1414439583297" TEXT="[1]"> +<node CREATED="1414439583624" ID="ID_90336080" MODIFIED="1414439587049" TEXT="key : en1"/> +<node CREATED="1414439587543" ID="ID_959556253" MODIFIED="1414439602753" TEXT="value : 無線用のnodeListが入ったTreeManagement"/> +</node> +</node> +</node> +<node CREATED="1414439674737" ID="ID_402310911" MODIFIED="1414439722427" TEXT="TreeVNCNetworkでaddNetworkInterface()よりinterfacesが作られる"/> +<node CREATED="1414439758316" ID="ID_1682448235" MODIFIED="1414439794811" TEXT="getTreeManager時に、どのinterfaceかで、これから扱うnodeListが変わってくる"/> +</node> +<node CREATED="1414407854332" ID="ID_220686701" MODIFIED="1414407912178" TEXT="ビデオフィードバック"> +<node CREATED="1414424518027" ID="ID_1001622607" MODIFIED="1414424522571" TEXT="今まで"> +<node CREATED="1414424523080" ID="ID_1310341365" MODIFIED="1414424537435" TEXT="shareしたnodeのviewerは開けっ放し"/> +<node CREATED="1414424537900" ID="ID_1033691217" MODIFIED="1414424554203" TEXT="自分の画面をviewerに映し続けるのでビデオフィードバックが生じた"/> +</node> +<node CREATED="1414424555611" ID="ID_1024637284" MODIFIED="1414424557306" TEXT="改善後"> +<node CREATED="1414424557658" ID="ID_1523636926" MODIFIED="1414424569059" TEXT="shareしたnodeのviewerは閉じるようにした"/> +<node CREATED="1414424570913" ID="ID_333997204" MODIFIED="1414424585146" TEXT="他nodeがshareすると、閉じたviewreが立ち上がる"/> +</node> +</node> +<node CREATED="1414407802395" ID="ID_1532959193" MODIFIED="1414424664834" TEXT="子nodeの再接続時に落ちるバグを取った"> +<node CREATED="1414424588177" ID="ID_464723644" MODIFIED="1414424591250" TEXT="今まで"> +<node CREATED="1414424634400" ID="ID_643197230" MODIFIED="1414424793547" TEXT="画面更新データを受信する、ReceiverTask Threadなどが動きっぱなしだった"/> +<node CREATED="1414424719943" ID="ID_1840262170" MODIFIED="1414424737746" TEXT="そのせいで、再接続後データがずれてしまって落ちてしまっていた"/> +</node> +<node CREATED="1414424701627" ID="ID_737580369" MODIFIED="1414424704794" TEXT="改善後"> +<node CREATED="1414424740449" ID="ID_255919364" MODIFIED="1414424765043" TEXT="ReceiverTaskを止めてから、再接続の処理を行うようにした"/> +</node> +</node> +<node CREATED="1414407913342" ID="ID_543146113" MODIFIED="1414407986731" TEXT="lostparentをまとめた"> +<node CREATED="1414424804563" ID="ID_1506776432" MODIFIED="1414424827610" TEXT="lostparentとnotFoundeがあった"/> +<node CREATED="1414424830348" ID="ID_343315339" MODIFIED="1414424832743" TEXT="これをまとめた"/> +<node CREATED="1414424834960" ID="ID_1848187234" MODIFIED="1414424843714" TEXT="notFoundeがなんだったのかわからない"/> +</node> +<node CREATED="1414407988367" ID="ID_1212536526" MODIFIED="1414408021567" TEXT="serverChange時のバグ"> +<node CREATED="1414408003195" ID="ID_1635491798" MODIFIED="1414408008554" TEXT="initDataを送り直す様に"/> +</node> +</node> +<node CREATED="1414407660716" ID="ID_357352007" MODIFIED="1414407668499" TEXT="新しい機能実装案"> +<node CREATED="1414408026684" ID="ID_774572333" MODIFIED="1414408031469" TEXT="音声機能"> +<node CREATED="1414424856155" ID="ID_726940129" MODIFIED="1414424865479" TEXT="画面データと一緒に音声データを送信するように"/> +<node CREATED="1414424866096" ID="ID_1213441990" MODIFIED="1414424884643" TEXT="画面データに比べたら、音声データは軽い(らしい)"/> +</node> +<node CREATED="1414408032056" ID="ID_464149904" MODIFIED="1414408036720" TEXT="画面の大きさ指定"> +<node CREATED="1414408036972" ID="ID_170886903" MODIFIED="1414408042083" TEXT="multidisplayに対応"/> +<node CREATED="1414424891113" ID="ID_1864736545" MODIFIED="1414424897803" TEXT="実装案"> +<node CREATED="1414424898460" ID="ID_308604538" MODIFIED="1414424930242" TEXT="shareした際、viewerを消すのではなく、枠を残す"/> +<node CREATED="1414424930961" ID="ID_981077148" MODIFIED="1414424961002" TEXT="枠の大きさ(x, y, width, height)を取り、その分の画面データのみを送信する"/> +<node CREATED="1414424998596" ID="ID_960712914" MODIFIED="1414425011977" TEXT="RequestUpdateRectangleで枠の大きさを送信する"/> +</node> +<node CREATED="1414425019360" ID="ID_1710551281" MODIFIED="1414425026938" TEXT="余計なデータを送信することがなくなる"/> +</node> +<node CREATED="1414408045388" ID="ID_1969318526" MODIFIED="1414408050730" TEXT="Aliceでの実装"/> +</node> +<node CREATED="1414423884963" ID="ID_1374230646" MODIFIED="1414423889274" TEXT="今後の課題"> +<node CREATED="1414423889746" ID="ID_1978924080" MODIFIED="1414423910187" TEXT="大きいデータを送信すると詰まってしまう問題"> +<node CREATED="1414425034171" ID="ID_1993110022" MODIFIED="1414425058611" TEXT="全画面書き換えが立て続けに起こる時"/> +<node CREATED="1414425063610" ID="ID_1400982647" MODIFIED="1414425072778" TEXT="例) Exposeした際"/> +<node CREATED="1414425079493" ID="ID_1698329689" MODIFIED="1414425087276" TEXT="解決案"> +<node CREATED="1414425119740" ID="ID_192643879" MODIFIED="1414425138355" TEXT="全画面書き換えの間隔が狭い時"> +<node CREATED="1414425138728" ID="ID_1436425620" MODIFIED="1414425154571" TEXT="いくつかの更新はskipする"/> +<node CREATED="1414425155547" ID="ID_952580028" MODIFIED="1414425168194" TEXT="その中で最新のデータのみを取る"/> +</node> +<node CREATED="1414425087278" ID="ID_1775306157" MODIFIED="1414425099275" TEXT="全画面書き換えの間隔が狭い場合を検知する"> +<node CREATED="1414425100473" ID="ID_423947438" MODIFIED="1414425109523" TEXT="時間計測で検知"/> +<node CREATED="1414425109808" ID="ID_146250266" MODIFIED="1414425117667" TEXT="timerを走らせてflagで検知"/> +</node> +</node> +<node CREATED="1414425173163" ID="ID_1960833544" MODIFIED="1414425187546" TEXT="たまったwriteのqueueをどう処理するかが問題になるかもしれない"/> +</node> +<node CREATED="1414425195458" ID="ID_1820570102" MODIFIED="1414425213362" TEXT="errorメッセージがroot側に出力されてしまう"> +<node CREATED="1414425213681" ID="ID_67574660" MODIFIED="1414425233355" TEXT="ServerChangeRequestReplyを参考にする"/> +<node CREATED="1414425282825" ID="ID_1277197987" MODIFIED="1414425303394" TEXT="framebufferUpdateのEncodingTypeとして送るのが良さそう"/> +<node CREATED="1414425234609" ID="ID_1640217093" MODIFIED="1414425253515" TEXT="treeが下のnodeにデータを流す"> +<node CREATED="1414425254377" ID="ID_1664690017" MODIFIED="1414425261770" TEXT="そのデータに、IDを追加する"> +<node CREATED="1414425262008" ID="ID_1401928911" MODIFIED="1414425275674" TEXT="IDが一致したnodeにerrorメッセージを表示する"/> +</node> +</node> +</node> +</node> +<node CREATED="1414407673556" ID="ID_1754050462" MODIFIED="1414407675339" TEXT="参考文献"/> +</node> +</node> +<node CREATED="1414406845275" ID="ID_427820294" MODIFIED="1414406850803" POSITION="right" TEXT="やってきたこと"> +<node CREATED="1414406851121" ID="ID_835353582" MODIFIED="1414406862827" TEXT="1つのPCで複数のTreeVNCが動く"> +<node CREATED="1414406863096" ID="ID_1598978318" MODIFIED="1414406870971" TEXT="nodeがportを別で持つ"/> +<node CREATED="1414406871476" ID="ID_868158640" MODIFIED="1414406882290" TEXT="固定portがなくなった(10001, 10002)"/> +</node> +<node CREATED="1414406923236" ID="ID_1393671788" MODIFIED="1414406939195" TEXT="有線と無線で繋げられるようになった。"> +<node CREATED="1414406895174" ID="ID_1189802793" MODIFIED="1414406922682" TEXT="hostnameではなく、net interfaceでbroadcastするように"/> +</node> +<node CREATED="1414406965582" ID="ID_1762320013" MODIFIED="1414406976915" TEXT="直接rootにmsgを投げないようになった"> +<node CREATED="1414406977388" ID="ID_1647197135" MODIFIED="1414406984915" TEXT="木を登る様にmsgを送る"/> +<node CREATED="1414406988275" ID="ID_272706576" MODIFIED="1414406990419" TEXT="メリット"> +<node CREATED="1414406990804" ID="ID_1420248924" MODIFIED="1414407006217" TEXT="余計なport(connection?)を開けなくて済む"/> +<node CREATED="1414407007074" ID="ID_979768532" MODIFIED="1414407020625" TEXT="既にnodeとしてつながってるからそこを使う"/> +</node> +</node> +<node CREATED="1414407023244" ID="ID_611202201" MODIFIED="1414407043178" TEXT="lostParetnとnotFoundがあったがそれをまとめて一つにした"> +<node CREATED="1414407043524" ID="ID_1361253331" MODIFIED="1414407052763" TEXT="notFoundがなんだったのかは未だ不明"/> +</node> +<node CREATED="1414407056564" ID="ID_822494944" MODIFIED="1414407063291" TEXT="server切り替えの部分"> +<node CREATED="1414407063764" ID="ID_1052117596" MODIFIED="1414407070195" TEXT="initDataを送り直す様にした"/> +</node> +<node CREATED="1414407090962" ID="ID_1562621281" MODIFIED="1414407097266" TEXT="multiDisplay対応にしたい"> +<node CREATED="1414407075713" ID="ID_932225363" MODIFIED="1414407106090" TEXT="画面の長さを固定長に"/> +<node CREATED="1414407120531" ID="ID_279710333" MODIFIED="1414407130994" TEXT="片方の画面のみを表示する"/> +<node CREATED="1414407187008" ID="ID_1798292079" MODIFIED="1414407190163" TEXT="実装アイデア"> +<node CREATED="1414407147216" ID="ID_77004292" MODIFIED="1414407154051" TEXT="枠だけ残す"/> +<node CREATED="1414407154292" ID="ID_208539613" MODIFIED="1414407168730" TEXT="枠内の画面を表示するように"/> +<node CREATED="1414407238643" ID="ID_1958420139" MODIFIED="1414407251218" TEXT="RequestUpdateRectangleで枠の大きさを送る"/> +</node> +<node CREATED="1414407258530" ID="ID_538556926" MODIFIED="1414407266978" TEXT="余計なデータを送らないで済む"/> +</node> +<node CREATED="1414407206333" ID="ID_475512586" MODIFIED="1414407211255" TEXT="ビデオフィードバックをなくした"> +<node CREATED="1414407211497" ID="ID_1817551403" MODIFIED="1414407232719" TEXT="ServerChangeRequest送信したnodeはviewerを落とす様に"/> +</node> +<node CREATED="1414407270921" ID="ID_1917156459" MODIFIED="1414407279426" TEXT="HDサイズで送信画面サイズを固定"/> +<node CREATED="1414407282465" ID="ID_1588844090" MODIFIED="1414407302427" TEXT="msgをport別でなくした"> +<node CREATED="1414407302644" ID="ID_702527535" MODIFIED="1414407320762" TEXT="その場で通信msgの種類をしい別するようにしてる"/> +<node CREATED="1414407323404" ID="ID_897523658" MODIFIED="1414407334474" TEXT="msgはすべてroot(5950)で受ける"/> +</node> +<node CREATED="1414407342579" ID="ID_988785752" MODIFIED="1414407372579" TEXT="子nodeが死んだ時、connectionのタイミングで落ちるバグを取った"> +<node CREATED="1414407372948" ID="ID_1543095353" MODIFIED="1414407398179" TEXT="connectToのタイミングで前のReceiverThreadが生きていた"/> +<node CREATED="1414407400108" ID="ID_421041051" MODIFIED="1414407410003" TEXT="データにズレが起こって落ちてた"/> +</node> +<node CREATED="1414407416196" ID="ID_953931630" MODIFIED="1414407419283" TEXT="新しい機能として"> +<node CREATED="1414407419671" ID="ID_1574252451" MODIFIED="1414407424386" TEXT="音声共有"/> +<node CREATED="1414407424900" ID="ID_935934621" MODIFIED="1414407431939" TEXT="画面の大きさ指定"/> +<node CREATED="1414407432817" ID="ID_31058877" MODIFIED="1414407437434" TEXT="Aliceで実装し直す"/> +</node> +<node CREATED="1414407438967" ID="ID_1811733613" MODIFIED="1414407447475" TEXT="大きいデータを送ると詰まってしまう問題"> +<node CREATED="1414407447477" ID="ID_784724607" MODIFIED="1414407453138" TEXT="Exposeのとき"/> +<node CREATED="1414407453571" ID="ID_1030048081" MODIFIED="1414407459539" TEXT="全画面書き換えの時"/> +<node CREATED="1414407460588" ID="ID_1000563164" MODIFIED="1414407476610" TEXT="全画面書き換えの間隔が短い場合"> +<node CREATED="1414407476857" ID="ID_1032694631" MODIFIED="1414407496945" TEXT="skipして"/> +<node CREATED="1414407486621" ID="ID_23793163" MODIFIED="1414407491098" TEXT="最新だけとる"/> +</node> +<node CREATED="1414407499024" ID="ID_14198946" MODIFIED="1414407505482" TEXT="時間計測で検知"/> +<node CREATED="1414407506132" ID="ID_1285505979" MODIFIED="1414407514306" TEXT="timerを走らせてflagを入れて、検知"/> +<node CREATED="1414407525113" ID="ID_520205242" MODIFIED="1414407535331" TEXT="たまったwriteのqueueをどうするかが問題"/> +</node> +<node CREATED="1414407520358" ID="ID_828693076" MODIFIED="1414407552947" TEXT="errorメッセージをrootではなくclientで表示するように"> +<node CREATED="1414407555113" ID="ID_1959375779" MODIFIED="1414407556419" TEXT="参考"> +<node CREATED="1414407556868" ID="ID_1410490694" MODIFIED="1414407568147" TEXT="SeverChangeRequestReplyを参考に"/> +<node CREATED="1414407570967" ID="ID_1268525530" MODIFIED="1414407592856" TEXT="treeで上から流す時、同じIDだったらそれを表示するように"/> +<node CREATED="1414407593883" ID="ID_1704596878" MODIFIED="1414407623210" TEXT="framebufferUpdateのEncodingTypeでのように送る"/> +</node> +</node> +</node> +</node> +</map>