NTT DOCOMO and Hitachi Kokusai Electric Know-how & Confidential

com.docomo_um.module.connection
クラス SPISlave

java.lang.Object
  上位を拡張 com.docomo_um.module.connection.SPIDevice
      上位を拡張 com.docomo_um.module.connection.SPISlave

public class SPISlave
extends SPIDevice

SPIスレーブ側を表すクラスです。

CS信号の状態が変化したタイミングは、SPIListener.onChangedStatus(SPIDevice, boolean)の通知から判断します。 sendCombinedFormat(SPICombinedFormatData[])で入出力処理を組み合わせて、データの送受信を行います。

留意事項
デバイスと物理的に接続されていない状態で、 sendCombinedFormat(SPICombinedFormatData[])による入出力処理を行った場合、処理をブロックします。 デバイスを接続してマスタ側で入出力処理を行うか、interrupt()により入出力処理を中断する必要があります。

関連項目:
SPIConnection, SPISpec, SPIMaster, SPIListener

メソッドの概要
 void interrupt()
          データの送受信を中断させます。
 SPICombinedFormatData[] sendCombinedFormat(SPICombinedFormatData[] data)
          連続してデータの送受信を行います。
 void setSPIListener(SPIListener listener)
          リスナを登録します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait
 

メソッドの詳細

sendCombinedFormat

public SPICombinedFormatData[] sendCombinedFormat(SPICombinedFormatData[] data)
                                           throws java.io.IOException,
                                                  ConnectionException
連続してデータの送受信を行います。 dataに指定した配列の先頭の要素から順に送受信を行います。 マスタ側で送受信を行ったタイミングで送信処理または受信処理を行います。

送信データはフレーム単位に分割されてから送信されます。

戻り値の要素数は、dataで指定した配列のうち、伝送タイプがSPICombinedFormatData.TYPE_READである要素の数と同じです。 また戻り値の要素の受信領域のバッファサイズおよび順序についても、dataで指定した配列の要素の受信領域および順序と同じです。 なお、データの受信によってdataで指定したSPICombinedFormatDataの受信領域が書き換わることはありません。

送受信処理を行った場合、スレーブ側からの送信データおよび受信領域分のクロックを受信するまでブロックします。 それに満たない状態でクロックが止まった場合、送信データおよび受信領域分のクロックを受信するまでブロックします。 interrupt()により送受信処理を中断できます。

本メソッドで送受信中の状態で本メソッドをコールした場合、IllegalStateExceptionが発生します。

定義:
クラス SPIDevice 内の sendCombinedFormat
パラメータ:
data - 送信データと受信領域の配列を指定します。
戻り値:
受信したデータを返します。受信処理を行わなかった場合はnullを返します。
例外:
java.lang.NullPointerException - dataがnullの場合に発生します。
java.lang.IllegalArgumentException - dataの要素数が0であった場合に発生します。
java.lang.IllegalStateException - 既に本メソッドで送受信中の状態で、本メソッドをコールした場合に発生します。
java.io.IOException - interrupt()により送受信を中断した場合、または入出力エラーの場合に発生します。
ConnectionException - 内部エラーにより処理が中断した場合に発生します。

interrupt

public void interrupt()
               throws java.io.IOException,
                      ConnectionException
データの送受信を中断させます。

このインスタンスにてデータ送受信中に本メソッドをコールすると、データの送受信が中断されます。

例外:
java.io.IOException - 入出力エラーの場合に発生します。
ConnectionException - 内部エラーにより処理が中断した場合に発生します。
関連項目:
sendCombinedFormat(SPICombinedFormatData[] data)

setSPIListener

public void setSPIListener(SPIListener listener)
                    throws ConnectionException
リスナを登録します。

このインスタンスに登録できるリスナは1つだけです。 このメソッドを複数回呼出した場合、最後に登録したリスナだけが有効です。 null を指定すると、リスナの登録を削除します。

パラメータ:
listener - リスナを指定します。
例外:
ConnectionException - 内部エラーにより処理が中断した場合に発生します。

Copyright © 2013 NTT DOCOMO, INC. and Hitachi Kokusai Electric Inc. All Rights Reserved.