4. 1-wire機器の固有アドレスの検出

ここでは予備練習でやったことを踏まえて、各自が一通りの作業の流れを確実に掴むこと。
  1. 作業環境を整える。
  2. 1-wire機器の固有アドレスの検出をし表示するプラグラムを作成する。
  3. buildファイルを編集した後、コンパイル(build)しtiniファイルを作成する。
  4. ftpにてtiniファイルをTINIへ転送する。
  5. telnetにてtiniファイルを実行する。
上述の1~5は、下記の説明に付番されていないが、どの説明がどこのことを言っているのかを把握しながら作業を進めること。


作業環境は以下のようにする。 各実験ごとに C:\TINISDK\src 配下に任意のフォルダを作成し、 そこを作業場所として、プログラミングを行う。 C:\TINISDK\src\任意のフォルダ名
 任意のフォルダ名は、半角英数文字で作成して下さい。 作成した任意のフォルダの中に以下のファイルまたはフォルダを置く。 bin …空のフォルダとして作成する。この中にtiniファイルが作成される。 src …空のフォルダとして作成するが、中にはプログラムのソースファイル(****.java)を入れる。 build.bat …ソースファイルからtiniファイルを作るバッチファイル ※上述した以外の場所にフォルダやファイルを置いた場合は、build.batの内容を修正しなければなりません。

ListOW
import com.dalsemi.onewire.OneWireAccessProvider;
import com.dalsemi.onewire.adapter.DSPortAdapter;
import com.dalsemi.onewire.container.OneWireContainer;
import java.util.Enumeration;


/**
 * Minimal demo to list device found on default 1-Wire port
 *
 * @version    0.00, 28 August 2000
 * @author     DS
 */
public class ListOW
{

   /**
    * Method main
    *
    *
    * @param args
    *
    */
   public static void main (String args [])
   {
      OneWireContainer owd;

      try
      {

         // get the default adapter  
         DSPortAdapter adapter = OneWireAccessProvider.getDefaultAdapter();

         System.out.println();
         System.out.println("Adapter: " + adapter.getAdapterName()
                            + " Port: " + adapter.getPortName());
         System.out.println();

         // get exclusive use of adapter
         adapter.beginExclusive(true);

         // clear any previous search restrictions
         adapter.setSearchAllDevices();
         adapter.targetAllFamilies();
         adapter.setSpeed(adapter.SPEED_REGULAR);

         // enumerate through all the 1-Wire devices found
         for (Enumeration owd_enum = adapter.getAllDeviceContainers();
                 owd_enum.hasMoreElements(); )
         {
            owd = ( OneWireContainer ) owd_enum.nextElement();

            System.out.println(owd.getAddressAsString());
         }

         // end exclusive use of adapter
         adapter.endExclusive();

         // free port used by adapter
         adapter.freePort();
      }
      catch (Exception e)
      {
         System.out.println(e);
      }

      return;
   }
}

build.bat内に記述されている環境変数PROGは、クラス名にします。 この名前.tiniが作成されることになります。 これ以外にも、実験によって利用するライブラリ等が異なる場合があります。 その場合は、build.batの内容を手直しする必要があります。

@echo off
set PROG=クラス名

set TINISDK=..\..

javac -source 1.3 -target 1.3 -bootclasspath %TINISDK%\bin\tiniclasses.jar -classpath %TINISDK%\bin\owapi_dependencies_TINI.jar;%classpath% -d bin src\*.java

java -classpath %TINISDK%\bin\tini.jar;%classpath% BuildDependency -x %TINISDK%\bin\owapi_dep.txt -p %TINISDK%\bin\owapi_dependencies_TINI.jar -f bin -o bin\%PROG%.tini -d %TINISDK%\bin\tini.db

rem -add OneWireContainer28;HTTPSERVER
rem -add OneWireMonitor
rem -add SHADebit

del bin\%PROG%.class



コンパイル(build)しtini形式に変換されるとbinディレクトリに入ります。
これを ftp にてTINIに転送します。
転送の仕方は、 3. 予備練習 にて行ったのと同様の手順です。

転送が完了したら telnet にて実行します。
実行の仕方も、 3. 予備練習 にて行ったのと同様の手順です。

※ 注意 ※
転送と実行の仕方は予備練習と同様の手順ですが、ファイル名まで同じではないことは当然考慮に入れること! 1-wireに接続されている機器のアドレスが表示されれば成功です!

TOPページへ戻る