度々すみません。
RS1とSPC1000を組み合わせてみましたが、うまくいきません。
新しいSunSPOTがAPIに対応していないかもしれないと思い、
REV5.0のSunSPOTを使用してみましたが、だめでした。
RS1とSPC1000はそれぞれはきちんと動いています。
RS1のプロジェクトの中にSPC1000.javaとSpiShiftRegister.javaの2つのクラスを
コピーしました。
- コード: 全て選択
package org.sunspotworld;
import com.sun.spot.sensorboard.peripheral.ITemperatureInput;
import com.sun.spot.sensorboard.peripheral.LEDColor;
import java.util.Date;
public class RS1 extends SunSpotApplicationAdapter {
static final String DB = "TemperatureRecordStore";
static final int RECORD = 0;
static final int PRINT = 1;
static final int DELETE = 2;
ModeSelector modeSelector;
RMS rms;
SPC1000 spc1000;
ITemperatureInput tempSensor;
protected void setup() {
modeSelector = new ModeSelector(LEDColor.GREEN, LEDColor.CYAN, LEDColor.RED);
while (!modeSelector.selected()) {
sleep(100);
}
switch (modeSelector.getMode()) {
case RECORD:
spc1000 = new SPC1000(d1, d2, d3, d0); //mosi, miso, sck, ss
spc1000.start();
rms = RMS.getInstance(DB, true);
tempSensor = eDemo.getADCTemperature();
break;
case PRINT:
rms = RMS.getInstance(DB, false);
break;
}
}
protected void loop() throws Exception {
switch (modeSelector.getMode()) {
case RECORD:
rms.write(System.currentTimeMillis());
rms.write(tempSensor.getCelsius());
//rms.write(new Date());
rms.write(spc1000.getPressure());
rms.write(spc1000.getTemperature());
rms.flush();
sleep(1 * 1000);
break;
case PRINT:
if (rms.hasMoreRecords()) {
long time = rms.readLong();
double temperature = rms.readDouble();
//long time2 = rms.readLong();
double pressure = rms.readDouble();
double temperature2 = rms.readDouble();
System.out.println(DateUtils.toDateString(time) + "," + temperature + "," + pressure + "," + temperature2);
rms.skip();
} else {
exitLoop();
}
break;
case DELETE:
RMS.delete(DB);
exitLoop();
}
}
}
エラーメッセージは
init:
Please wait while connected Sun SPOTs are examined...
Using Sun SPOT device on port COM32
Deleting: C:\Program Files\Sun\SunSPOT\sdk\temp\spotselector-1031579377
init:
No to.jar.file specified.
Using "suite\RS1_1.0.0.jar"
Deleting directory C:\Users\wp363928\Desktop\SunSPOTWorkshop4CANSAT\RS1\build
Deleting directory C:\Users\wp363928\Desktop\SunSPOTWorkshop4CANSAT\RS1\suite
Deleting directory C:\Users\wp363928\Desktop\SunSPOTWorkshop4CANSAT\RS1\j2meclasses
clean:
Created dir: C:\Users\wp363928\Desktop\SunSPOTWorkshop4CANSAT\RS1\build
Compiling 7 source files to C:\Users\wp363928\Desktop\SunSPOTWorkshop4CANSAT\RS1\build
C:\Users\wp363928\Desktop\SunSPOTWorkshop4CANSAT\RS1\src\org\sunspotworld\RS1.java:31: シンボルを見つけられません。
シンボル: コンストラクタ SPC1000(com.sun.spot.resources.transducers.IIOPin,com.sun.spot.resources.transducers.IIOPin,com.sun.spot.resources.transducers.IIOPin,com.sun.spot.resources.transducers.IIOPin)
場所 : org.sunspotworld.SPC1000 の クラス
spc1000 = new SPC1000(d1, d2, d3, d0); //mosi, miso, sck, ss
注:一部の入力ファイルは推奨されない API を使用またはオーバーライドしています。
注:詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。
エラー 1 個
C:\Program Files\Sun\SunSPOT\sdk\build.xml:96: The following error occurred while executing this line:
C:\Program Files\Sun\SunSPOT\sdk\ant\compile.xml:48: Compile failed; see the compiler error output for details.
構築失敗 (合計時間: 4 秒)
です。
spc1000 = new SPC1000(d1, d2, d3, d0); //mosi, miso, sck, ss
spc1000.start();
の2ヶ所に赤の!がついています。
アドバイスをお願いします。
藤木 郁久