package hayashi.yuu.register; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.w3c.dom.Document; import org.w3c.dom.Element; public class DeviceData { /** * コンストラクタ: データコレクタのデータ */ public DeviceData() { deviceName = null; typeID = null; verAVR = null; dateAVR = null; verMSP = null; } /** * データコレクターのデバイス識別コード * (製品のシリアル番号です) */ String deviceID = null; /** * データコレクターのデバイス識別コードを取得する * @return デバイス識別コード(製品のシリアル番号) */ public String getDeviceID() { return this.deviceID; } /** * データコレクターのデバイス識別コードを設定する。 * @param deviceID デバイス識別コード(製品のシリアル番号) */ public void setDeviceID(String deviceID) { this.deviceID = deviceID; } /** * データコレクターを識別するためにユーザーが定義した名称。 * 未定義のときは、NULLとする。 */ String deviceName = null; // デバイスの定義名称 /** * このデバイスの名称を取得する。 * 名称が未定義の時は、NULLが戻る。 * @return デバイス名称 */ public String getDeviceName() { return this.deviceName; } /** * このデバイスの名称を定義する。 * @param deviceName */ public void setDeviceName(String deviceName) { this.deviceName = deviceName; } String typeID = null; public String getTypeID() { return typeID; } public void setTypeID(String typeID) { this.typeID = typeID; } /** * このデバイスの「タイプ名」 */ String typeName = "GuardiX OEM"; /** * このデバイスの「タイプ名」を取得する。 * @return タイプ名 */ public String getTypeName() { return this.typeName; } /** * ステータス */ public int status; public int getStatus() { return this.status; } public void setStatus(int status) { this.status = status; } public void setStatus(String statusStr) { this.status = Integer.parseInt(statusStr, 16); } public String getStatusName() { if (status == 0x02) { return ("正常"); } StringBuffer sbuf = new StringBuffer(); if ((status & 0x02) == 0) { sbuf.append("残データあり "); } else { sbuf.append("残データなし "); } sbuf.append("["); if ((status & 0x01) != 0) { sbuf.append("RAMエラー発生! , "); } if ((status & 0x04) != 0) { sbuf.append("要バッテリー交換! , "); } if ((status & 0x08) != 0) { sbuf.append("メモリーオーバー!"); } sbuf.append("]"); return sbuf.toString(); } /** * AVR version */ String verAVR = null; public String getVerAVR() { return this.verAVR; } public void setVerAVR(String verAVR) { this.verAVR = verAVR; } /** * AVR date */ Date dateAVR = null; public Date getDateAVR() { return this.dateAVR; } public void setDateAVR(Date dateAVR) { this.dateAVR = dateAVR; } public void setDateAVR(String dateAVRstr) throws ParseException { this.dateAVR = (new SimpleDateFormat("yyyyMMdd")).parse(dateAVRstr); } /** * MSP version */ String verMSP = null; public String getVerMSP() { return verMSP; } public void setVerMSP(String verMSP) { this.verMSP = verMSP; } /** * Version Type */ String verType = null; public String getVerType() { return verType; } public void setVerType(String verType) { this.verType = verType; } /** * 収集データをXML形式にして表現する。 * @return XMLレコード */ public Element getXmlElement(Document document) { Element device = document.createElement("device"); String idStr = getDeviceID(); if (idStr != null) { device.setAttribute("sn", idStr); } if (getTypeID() != null) { Element type = document.createElement("type"); type.setAttribute("id", getTypeID()); type.appendChild(document.createTextNode(getTypeName())); device.appendChild(type); } if (getVerAVR() != null) { Element avr = document.createElement("AVR"); avr.setAttribute("ver", getVerAVR()); if (getDateAVR() != null) { avr.setAttribute("date", (new SimpleDateFormat("yyyy/MM/dd")).format(getDateAVR())); } device.appendChild(avr); } if (getVerMSP() != null) { Element msp = document.createElement("AVR"); msp.setAttribute("ver", getVerMSP()); if (getVerType() != null) { msp.setAttribute("type", getVerType()); } device.appendChild(msp); } String name = getDeviceName(); if (name != null) { Element nameEle = document.createElement("name"); nameEle.appendChild(document.createTextNode(name)); device.appendChild(nameEle); } return device; } }