オープンソフトウェア利用促進事業 第 3 回 oss...

12
委委委委委 2009 委委委 919 委 組組組組組組組組組組組組組組組 組組組組組組組組組 1 委委 23 委 2 委 委委委委委委 委委委委委委 OSS 委委委委委委委委委委委委委委委委委委委委委委委委委委委委委

Upload: hector

Post on 15-Jan-2016

51 views

Category:

Documents


0 download

DESCRIPTION

委託契約書 2009 情財第 919 号. オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証. ~ OSS を活用した組込みソフトウェア開発教育プログラムの開発と実証~. 組込みソフトウェア実装特別演習 演習実施環境の構成. 平成 23 年 2 月 公立大学法人 広島市立大学. システム概要. 基本アーキテクチャ. OTP の アプリケーションとして 動作させる. シミュレーション プロセス監視 ( OTP を利用). データベースについて. 分散データベース Mnesia を利用 管理データ 外部環境系データ 動作履歴 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

委託契約書 2009情財第 919号

組込みソフトウェア実装特別演習演習実施環境の構成

1

平成 23年 2月

公立大学法人 広島市立大学

~ OSSを活用した組込みソフトウェア開発教育プログラムの開発と実証~

Page 2: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

基本アーキテクチャ

2

シミュレーション

プロセス監視( OTPを利用)

OTPのアプリケーションとして動作させる

Page 3: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

分散データベースMnesiaを利用管理データ

外部環境系データ動作履歴計算に使う定数値

動作方法 Erlangシェルから直接コマンドを入力してデータを追加・変更できる

プログラム内からでも可能

3

Page 4: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

Erlang環境の整備 Erlang環境のインストール作業

http://erlangworld.web.fc2.com/erlang/ins2win.html (windowsの場合)

シミュレータ教材( ver2.0)のインストール インストールディレクトリに注意する

C:\Users\xxx へインストールしたと仮定する ソースプログラムのコンパイル 分散データベースの初期化

開発用のエディタの準備 秀丸などのプレーンテキストエディタが必要 使い慣れたテキストエディタ 講義中に紹介されるテキストエディタや統合開発ツールなど 行番号表示、括弧チェック機能、キーワードに色が付くなど

4

Page 5: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

最新版の Erlangをダウンロード Windows binary のところをダウンロード ダウンロードファイルを実行して指示に従う インストール完了後、インストールされた場所を確認する。

例)  C:\Program Files\erl5.7.5.\bin コマンドプロンプトから直接 Erlangが実行できるようにパスを設定

システム環境変数の「 Path」に、追加する。 例)  ; C:\Program Files\erl5.7.5.\bin

 を追加する。はじめのセミコロンも必要。既存にかかれているパスは絶対に削除しないこと。

コマンドプロンプトから Erlangが実行できるか確認 erl と打って、 Erlangが起動すれば OK.

5

Page 6: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

以下の URLからシミュレータ教材をダウンロード

http://scarlet.sos.info.hiroshima-cu.ac.jp/ipa/sim/

作業(任意)フォルダに保存して、解凍する。解凍後、ファイルの内容を確認。

ファイル数: 26 フォルダ数: 2 logフォルダ内にサンプルファイルが2つ scenarioフォルダ内にサンプルファイルが3つ

機能仕様書が同梱されています6

Page 7: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

実行環境に依存する部分を修正する sim_sup.erl

-define(NODE1, 'node1@localhost').-define(NODE2, 'node2@localhost').

-define(NODE1, '[email protected]').-define(NODE2, '[email protected]').

7

Page 8: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

シミュレータ教材(ソース一式)一式を任意のディレクトリにコピー インストール先ディレクトリはどこでもよいが、コマンドプロンプトから起動するので、「 C:\Users\xxx」などの場所にインストールするとよい

シミュレータのコンパイル コマンドプロンプトを立ち上げ、教材インストール先にcdコマンドで移動する。

ソースプログラムのコンパイル makeと打つコンパイル後は、 xxxxx.beamファイルが出来る

8

Page 9: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

分散データベース(Mnesia)の初期化 ノードを2つ立ち上げる(コマンドプロンプトから行う)

erl –name [email protected] –cookie abcdef erl –name [email protected] –cookie abcdef

どちらかのノードで、 DB初期化コマンドを打つ sim_sup:init_sim(). 打ち込むと他ノードも同じメッセージが表示される

データの確認同じディレクトリ上に下記のディレクトリが作成されていることを確認する

[email protected] [email protected]

9

Page 10: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

ノードを2つ立ち上げる(コマンドプロンプトから行う) erl –name [email protected] –cookie abcdef erl –name [email protected] –cookie abcdef

どちらかのノードで、起動コマンドを打つ application:start(brakesim).

Mnesiaの開始が遅れて、失敗する場合もある その場合にはもう一度起動コマンドを打つ

コマンドでの終了の仕方 application:stop(brakesim).

10

Page 11: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

コマンドプロンプトを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 ノード上。

再実行 以降繰り返し

11

Page 12: オープンソフトウェア利用促進事業 第 3 回 OSS モデルカリキュラム導入実証

event_loop() ->receive{state_inf,brake, Parameter} ->

Des = getParam(torque, Parameter),ifDes >= 3 ->NDes = 20,io:format("NewTorque: ~p~n",[NDes]),

gen_server:cast({global,wheelFright},{update_ind,dcs,[opetype,brake,userope,speeddown,torque,NDes]}),

gen_server:cast({global,wheelFleft},{update_ind,dcs,[opetype,brake,userope,speeddown,torque,NDes]}),

gen_server:cast({global,wheelRright},{update_ind,dcs,[opetype,brake,userope,speeddown,torque,NDes]}),

gen_server:cast({global,wheelRleft},{update_ind,dcs,[opetype,brake,userope,speeddown,torque,NDes]}),

true;true-> falseend,

io:format("OrgTorque: ~p~n",[Des]),event_loop();

end.

ブレーキの踏みこみが一定以上の場合はフルブレーキにする例12