ブレーキシミュレータ 教材説明

委託契約書2009情財第919号
オープンソフトウェア利用促進事業
第3回OSSモデルカリキュラム導入実証
~OSSを活用した組込みソフトウェア開発教育プログラムの開発と実証~
製品企画プロジェクト特別演習
演習実施環境の構成
平成23年2月
公立大学法人 広島市立大学
1
シミュレータの構成図
演習対象DCS(Drive Control
Simulate)に対して、各部品か
らの状態変化を通知する。
DCSは、各情報を基に計算を
行い、フィードバック情報指示
をする。
分散データベース(Mnesia)
• ハッシュ型のデータベース
– Erlang標準(付属)のデータベース
– {key,value}のリスト
• 分散データベース
– Mnesiaが自動的にレプリケーションする
• 本シミュレータでの使用用途
– 外部環境系データ
– 動作履歴
– 計算に使う定数値
Erlang環境のインストール
最新版のErlangをダウンロード
Windows binary のところをダウンロード
ダウンロードファイルを実行して指示に従う
インストール完了後、インストールされた場所を確認する。
例) C:\Program Files\erl5.7.5.\bin
コマンドプロンプトから直接Erlangが実行できるようにパス
を設定
システム環境変数の「Path」に、追加する。
例) ; C:\Program Files\erl5.7.5.\bin
を追加する。はじめのセミコロンも必要。既存にかかれているパスは絶対
に削除しないこと。
コマンドプロンプトからErlangが実行できるか確認
erl と打って、Erlangが起動すればOK.
4
ソースファイルの修正
• 実行環境に依存する部分を修正する
– sim_sup.erl
-define(NODE1,
-define(NODE2,
'node1@localhost').
'node2@localhost').
-define(NODE1,
-define(NODE2,
'[email protected]').
'[email protected]').
5
シミュレータ教材のインストール
シミュレータ教材(ソース一式)一式を任意のディ
レクトリにコピー
インストール先ディレクトリはどこでもよいが、コマン
ドプロンプトから起動するので、「C:\Users\xxx」などの
場所にインストールするとよい
シミュレータのコンパイル
コマンドプロンプトを立ち上げ、教材インストール先に
cdコマンドで移動する。
ソースプログラムのコンパイル
makeと打つ
コンパイル後は、xxxxx.beamファイルが出来る
6
シミュレータ教材(DB)の初期化
分散データベース(Mnesia)の初期化
ノードを2つ立ち上げる(コマンドプロンプトから行う)
erl –name [email protected] –cookie abcdef
erl –name [email protected] –cookie abcdef
どちらかのノードで、DB初期化コマンドを打つ
sim_sup:init_sim().
打ち込むと他ノードも同じメッセージが表示される
データの確認
同じディレクトリ上に下記のディレクトリが作成されているこ
とを確認する
[email protected][email protected]
7
シミュレータ教材の起動
ノードを2つ立ち上げる(コマンドプロンプトから行う)
erl –name [email protected] –cookie abcdef
erl –name [email protected] –cookie abcdef
どちらかのノードで、起動コマンドを打つ
application:start(brakesim).
Mnesiaの開始が遅れて、失敗する場合もある
その場合にはもう一度起動コマンドを打つ
コマンドでの終了の仕方
application:stop(brakesim).
8
開発手順
 コマンドプロンプトを2つ立ち上げる
 シミュレータのディレクトリに移動
 Erlangシェルの立ち上げ(2ノード)
 erl –name [email protected] –cookie yymmdd
 erl –name [email protected] –cookie yymmdd
 アプリケーションの実行
 application:start(brakesim).
 テキストエディタ等でプログラムの修正
 dcs.erl
 コンパイルまたはmake
 c (dcs).
 make
 「make」はコマンドプロンプト上。「c(dcs).」は、Erlangノード上。
 再実行
 以降繰り返し
9