LoginSignup
2

More than 3 years have passed since last update.

posted at

updated at

DTNシミュレータのThe OneをEclipseで実行できるようにしたときの手順メモ

the one シミュレータ入れてみた話

あらまし

DTNを研究することにした自分。当然実際のものを作る前にシミュレートしないといけないのでそのためのシミュレータを使えるようにならないといけない。

どうも聞いた話だとThe Oneシミュレータというものがあって、それを使うといろいろできるらしいけど、そもそもまっさらなパソコンを渡されてどうすんべ、というところから。readmeや、ダウンロードサイト https://www.netlab.tkk.fi/tutkimus/dtn/theone/ についているビギナーサイトだけだと微妙にうまくいかなかったので覚書として書きます。
参考:https://www.youtube.com/watch?v=6ywQQx7-UKM

まず初めに

JDKを入れましょう()
アンチウイルスソフトすら入ってない状態のまっさらパソコンを渡されたので仕方ないね。このシミュレータはJavaで動くので1も2もなくとにかくインストールしてください。Javaプログラムを動かすのに必要最低限な環境はほかのだれかの記事を読んで実装してくれればと思います。
java version.png

JDK動くかのテスト

JDKさえ入ればシミュレータは動きます。編集をメモ帳でできる猛者、もしくは自分の好きなこだわりのテキストエディタをお持ちの方はターミナル、もしくはコマンドプロンプトでテストして気の向くままに腕をお振るいください。ダウンロードした the oneシミュレータのあるディレクトリについているcompile.bat(Unixならcompile.sh)を実行してコンパイル、のちに下にあるone.bat(Unixならone.sh)を実行すれば動き出すはず。コンパイル時にエラーが出ているけれどひとまず無視で大丈夫です。
java version.png
java version.png

結果は自動的にreportsのディレクトリに入るので確認してみるとよいと思います。

次に

Eclipseを入れましょう。すでに入れてる人はスキップ。別にUnixならvimとかemacsとか強力なエディタがあるのでいらないとは思いますが、windowsでするときはEclipseと統合してシミュレータ動かすほうがエディタ的にいろいろ楽そう。(Eclipse起動があんまり早くないのであんまり好きではないのですが)
PCへのEclipseの実装も今回の趣旨ではないので他の方の記事をご参考くださいませ。自分はOxygenのwindows64bit版を使っております。(最新版で問題ないと思います)

Eclipseとの統合

Eclipseとoneシミュレータを合体させます、要はEclipseでoneシミュレータを動かします。beginer'sサイトhttp://one-simuator-for-beginners.blogspot.com/2013/08/how-to-integrate-one-with-eclipse.html に書いてある通りにやるとファイルの依存関係が崩れるのでお勧めしません。
まず、
ファイル→新規→Javaプロジェクト
を選択します。
デフォルトロケーションを使用のチェックボックスを外し、ロケーションをoneシミュレーターの入っているディレクトリにします。あとは完了を押しておけば8割がたお仕事は終了。

赤いバッテン残ってるよ?

Oneシミュレータは作者が作ったJARを用いて動いているため、外部JARとしてそれを入れる必要があります。すべてlibディレクトリに入っているのでビルドパスから茶々っと入れちゃいましょう。具体的には
右クリック→ビルドパス→ビルドパスの構成→外部JARの追加
からlibの中の2つのJARどちらも入れてしまいましょう。
java version.png

それでもやっぱり赤いバッテン。。。

testディレクトリに残ってますね。。。これはどうもあんまり実行には関係ないものらしいですが、JARにJunitを入れれば止まるようです。Eclipseにもともと入っているのでビルドパス構成のライブラリーから追加しちゃってください。もしくはtestディレクトリごと削除しても大丈夫です。

お疲れさまでした!

ここまでくれば後は実行するだけ。パッケージ・エクスプローラからcoreディレクトリ内のDTNsim.javaを右クリックして実行すれば動きます!
基本的にdefault_settings.txtに書かれている内容が実行されてシミュレーターが動きます。この内容を書き換えてノードの数を変えたり通信範囲変えたりデータの複製方式を変えたりデータの残存時間を変えたりメッセージの大きさを変えたりして色々することになります。結果はreportsディレクトリの中に保存されるので、一旦リフレッシュをして確認してみてください。ちなみにグラフ作成用のツールキットが用意されているようですが、全くの謎(というか僕がperlを読めない)なので、使わず普通にcellソフトでまとめるのがよいと思います。

オプション使いたいならば

ターミナル上で使うときはGUIを出さずに実行したり試行回数を増やしたりできます。同様のことをeclipseで行うには実行→外部ツールの構成から、コマンドプロンプト等を作業ディレクトリで動かせるようにしてください。
image.png

終わりに

現在the oneシミュレータにはだれでも見られる日本語サイトが無いようで、英文ビギナーサイトを見るだけではうまくいかなかったためあきらめムードでyoutubeの検索窓に間違えて書き込んだら非常にわかりやすい動画があって参考に書きました。つたない文章でしたが後に続く人がこんなつまらないことでつまらないようになれば幸いです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2