• 検索結果がありません。

タイプ 1 インタフェース

ドキュメント内 JTRON 2.1仕様 (ページ 45-50)

( アタッチクラス/メモリ操作クラス/例外クラス ) 4.1 概要

アタッチクラスはJavaプログラムからITRONの機能を利用する手段を 提供する。タスク、セマフォ、メールボックスといった ITRON 機能毎 にそれに対応するクラスを設け、そのクラスのインスタンスをITRON カーネルオブジェクトに対応させる。ITRONカーネルオブジェクトの操 作は生成したインスタンスのメソッドを呼び出すことで行なうので、い ちいちオブジェクトのID を指定する必要はない。これはJavaのオブジ ェクト指向プログラミングになじむものである。

アタッチという名称はクラスのインスタンスが ITRON カーネルオブジ ェクトに1対1対応するところから来ている。対応の方法として、イン スタンス生成時に以下のどちらかを選択することができる。

(1) ITRONカーネルオブジェクトを生成し、それを生成インスタン

スに対応させる。

(2) 既に存在する ITRON カーネルオブジェクトに生成インスタン スを対応させる。

メモリ操作クラスはアドレスを意識しないでメモリを扱う手段を提供す る。Javaにはメモリアドレスの概念がないので、ITRONの機能を利用す る場合に必要なアドレスを指定することができない。またその内容を操 作することもできない。メモリ操作クラスを用いるとストリームI/Oの ような形式でメモリを扱うことができる。

例外クラスはアタッチクラス とメモリ操作クラスで発生するエラーを Javaの例外処理機構で扱うための手段を提供する。ITRON由来のエラー とそれ以外のエラーに分類されており、ITRON 由来のエラーはさらに

ITRONのエラーコード毎に別々のクラスに派生定義されているため、例

外処理機構の利用を容易にする。

30  パッケージ名:org.jtron.attach

例外クラス:

ITRONによる例外クラス

ItronCauseException

各ITRONサービスコール例外クラス

ItronSYSException ItronNOSPTException ItronRSFNException ItronRSATRException ItronPARException ItronIDException ItronCTXException ItronMACVException ItronOACVException ItronILUSEException ItronNOMEMException ItronNOIDException ItronOBJException ItronNOEXSException ItronQOVRException ItronRLWAIException ItronTMOUTException ItronDLTException ItronCLSException ItronWBLKException ItronBOVRException

JTRONによる例外クラス

JtronCauseException

 

org.jtron.JtronException

ItronCauseException JtronCauseException

ItronSYSException, ItronNOSPTException, ItronRSFNException, ItronRSATRException, ItronPARException, ItronIDException, ItronCTXException, ItronMACVException, ItronOACVException, ItronILUSEException, ItronNOMEMException, ItronNOIDException, ItronOBJException, ItronNOEXSException, ItronQOVRException, ItronRLWAIException, ItronTMOUTException, ItronDLTException, ItronCLSException, ItronWBLKException, ItronBOVRException

図4.1: org.jtron.attachパッケージの例外クラス構成

アタッチクラスは下層のμITRON仕様OSの実装に大きく影響される。

そのため実装されていないサービスコールが必要なクラス・メソッドの 扱いをどうするかを以下のどちらかの実装定義とする。

(1)該当クラス・メソッドを実装しない。この場合、実行時これを呼び出 すとClassNotFoundException、NoSuchMethodExceptionの ような例外が発生する。

(2)すべてのクラス・メソッドを実装し、実行時これを呼び出した時 ItronNOSPTException例外を起こす。

32  クラス:

メモリ操作クラス ItronMemory タスク

Task, T_CTSK, T_RTST, T_RTSK, T_DTEX, T_RTEX, T_ROVR セマフォ

Semaphore, T_CSEM, T_RSEM イベントフラグ

EventFlag, T_CFLG, T_RFLG データキュー

DataQueue, T_CDTQ, T_RDTQ メールボックス

MailBox, T_CMBX, T_RMBX ミューテックス

Mutex, T_CMTX, T_RMTX メッセージバッファ

MessageBuffer, T_CMBF, T_RMBF ランデブ

RendezvousPort, T_CPOR, T_RPOR, Rendezvous, T_RRDV

固定長メモリプール

FixedMemoryPool, T_CMPF, T_RMPF, ItronFixedMemory

可変長メモリプール

VariableMemoryPool, T_CMPL, T_RMPL, ItronVariableMemory

周期ハンドラ

CyclicHandler, T_CCYC, T_RCYC アラームハンドラ

AlarmHandler, T_CALM, T_RALM 割込みサービスルーチン

InterruptServiceRoutine, T_CISR, T_RISR その他

Kernel, T_DOVR, T_RSYS, T_DINH, T_DSVC, T_DEXC, T_RCFG, T_RVER

 

ItronMemory

ItronFixedMemory

java.lang.Object

Rendezvous

ItronVariableMemory

図4.2: org.jtron.attachパッケージのメモリ操作クラス構成

34 

4.2 Java API

4.2.1 ITRON による例外クラス(ItronCauseException)

org.jtron.JtronException

org.jtron.attach.ItronCauseException

ドキュメント内 JTRON 2.1仕様 (ページ 45-50)