Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

1 オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
委託契約書2009情財第919号 オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証 ~OSSを活用した組込みソフトウェア開発教育プログラムの開発と実証~ 組込みソフトウェア実装特別演習 演習実施環境の構成 平成23年2月 公立大学法人 広島市立大学

2 システム概要 基本アーキテクチャ OTPの アプリケーションとして 動作させる シミュレーション プロセス監視 (OTPを利用)

3 データベースについて 分散データベースMnesiaを利用 動作方法 管理データ
外部環境系データ 動作履歴 計算に使う定数値 動作方法 Erlangシェルから直接コマンドを入力してデータを追加・変更できる プログラム内からでも可能

4 開発環境の整備 Erlang環境の整備 シミュレータ教材(ver2.0)のインストール 開発用のエディタの準備
シミュレータ教材(ver2.0)のインストール インストールディレクトリに注意する C:\Users\xxx へインストールしたと仮定する ソースプログラムのコンパイル 分散データベースの初期化 開発用のエディタの準備 秀丸などのプレーンテキストエディタが必要 使い慣れたテキストエディタ 講義中に紹介されるテキストエディタや統合開発ツールなど 行番号表示、括弧チェック機能、キーワードに色が付くなど

5 Erlang環境のインストール 最新版のErlangをダウンロード Windows binary のところをダウンロード
ダウンロードファイルを実行して指示に従う インストール完了後、インストールされた場所を確認する。 例) C:\Program Files\erl5.7.5.\bin コマンドプロンプトから直接Erlangが実行できるようにパスを設定 システム環境変数の「Path」に、追加する。 例) ; C:\Program Files\erl5.7.5.\bin  を追加する。はじめのセミコロンも必要。既存にかかれているパスは絶対に削除しないこと。 コマンドプロンプトからErlangが実行できるか確認 erl と打って、Erlangが起動すればOK.

6 シミュレータ教材のダウンロード 以下のURLからシミュレータ教材をダウンロード 作業(任意)フォルダに保存して、解凍する。
作業(任意)フォルダに保存して、解凍する。 解凍後、ファイルの内容を確認。 ファイル数:26 フォルダ数:2 logフォルダ内にサンプルファイルが2つ scenarioフォルダ内にサンプルファイルが3つ 機能仕様書が同梱されています

7 ソースファイルの修正 実行環境に依存する部分を修正する sim_sup.erl
-define(NODE1, -define(NODE2, -define(NODE1, -define(NODE2,

8 シミュレータ教材のインストール シミュレータ教材(ソース一式)一式を任意のディレクトリにコピー シミュレータのコンパイル
インストール先ディレクトリはどこでもよいが、コマンドプロンプトから起動するので、「C:\Users\xxx」などの場所にインストールするとよい シミュレータのコンパイル コマンドプロンプトを立ち上げ、教材インストール先にcdコマンドで移動する。 ソースプログラムのコンパイル makeと打つ コンパイル後は、xxxxx.beamファイルが出来る

9 シミュレータ教材(DB)の初期化 分散データベース(Mnesia)の初期化 ノードを2つ立ち上げる(コマンドプロンプトから行う)
erl –name –cookie abcdef erl –name –cookie abcdef どちらかのノードで、DB初期化コマンドを打つ sim_sup:init_sim(). 打ち込むと他ノードも同じメッセージが表示される データの確認 同じディレクトリ上に下記のディレクトリが作成されていることを確認する

10 シミュレータ教材の起動 ノードを2つ立ち上げる(コマンドプロンプトから行う) どちらかのノードで、起動コマンドを打つ コマンドでの終了の仕方
erl –name –cookie abcdef erl –name –cookie abcdef どちらかのノードで、起動コマンドを打つ application:start(brakesim). Mnesiaの開始が遅れて、失敗する場合もある その場合にはもう一度起動コマンドを打つ コマンドでの終了の仕方 application:stop(brakesim).

11 開発手順 コマンドプロンプトを2つ立ち上げる シミュレータのディレクトリに移動 Erlangシェルの立ち上げ(2ノード)
erl –name –cookie yymmdd erl –name –cookie yymmdd アプリケーションの実行 application:start(brakesim). テキストエディタ等でプログラムの修正 dcs.erl コンパイルまたはmake c (dcs). make 「make」はコマンドプロンプト上。「c(dcs).」は、Erlangノード上。 再実行 以降繰り返し

12 dcs.erlの例 ブレーキの踏みこみが一定以上の場合はフルブレーキにする例 event_loop() -> receive
{state_inf,brake, Parameter} -> Des = getParam(torque, Parameter), if Des >= 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-> false end, io:format("OrgTorque: ~p~n",[Des]), event_loop(); end. ブレーキの踏みこみが一定以上の場合はフルブレーキにする例


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

Similar presentations


Ads by Google