ecg
記録ファイルを読み取り、データを変数に書き込むプログラムを作成する必要があります。
私が今持っているのはinputstream
とだけですbytebuffer
。
ドキュメントから、最初の 2はunint16bytes
を表し、次の 4は16 進数のマジック ナンバーなどを表す必要があることを知っています...checksum
bytes
しかし、下のコードを実行すると、数値の出力が 0 になるため機能しません。
私の質問は、バッファ セクションで何か間違ったことをしたかどうかです。ストリーム全体を配列に書き込んでから 3 ~ 6 要素の位置を指すと、出力は次のようになるため、奇妙です。
output += String.format("0x%02X", bC[2]);
それを逆さまに読んで、マジックナンバーを取得します。
public class Stream {
private String fileName;
private byte[] storageArray;
private int byteLength;
private byte[] magicNumber;
public Stream(String fileName) {
this.fileName = fileName;
try {
readIt();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void readIt() throws IOException {
FileInputStream fileIn = new FileInputStream("ecg-file");
//for skipping to the desired beginning of the byte stream
fileIn.skip(0);
setByteLength(fileIn.available());
storageArray = new byte[getByteLength()];
fileIn.read(getStorageArray());
fileIn.close();
}
public String getCRCNumber () {
ByteBuffer twoByte = ByteBuffer.wrap(getStorageArray());
twoByte.order(ByteOrder.LITTLE_ENDIAN);
//the missing bytes @ the beginning for the int
twoByte.put((byte)0x00);
twoByte.put((byte)0x00);
//shift the start position per 2 bytes
// and read the first 2 bytes of the inputstream into the buffer
twoByte.position(0x02);
twoByte.put(getStorageArray(), 0, 2);
twoByte.flip();
//creates the int number of the 4 bytes in the buffer
int result = twoByte.getInt();
String output = "";
String b = "\n";
return output += Integer.toString(result);
}
public int getByteLength() {
return byteLength;
}
public void setByteLength(int byteLength) {
this.byteLength = byteLength;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public byte[] getMagicNumber() {
return magicNumber;
}
public void setMagicNumber(byte[] magicNumber) {
this.magicNumber = magicNumber;
}
public byte[] getStorageArray() {
return storageArray;
}
public void setStorageArray(byte[] storageArray) {
this.storageArray = storageArray;
}
}