*/
package org.openhab.binding.hpprinter.internal.api;
-import java.util.HashMap;
-import java.util.Map;
-
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.w3c.dom.Document;
public class HPStatus {
public static final String ENDPOINT = "/DevMgmt/ProductStatusDyn.xml";
- private static final Map<String, String> STATUS_MESSAGES = initializeStatus();
-
private final String printerStatus;
private final boolean trayEmptyOrOpen;
Element element = (Element) nodes.item(i);
String statusCategory = element.getElementsByTagName("pscat:StatusCategory").item(0).getTextContent();
if (!"genuineHP".equals(statusCategory) && !"trayEmpty".equals(statusCategory)) {
- localPrinterStatus = STATUS_MESSAGES.getOrDefault(statusCategory, statusCategory);
+ localPrinterStatus = statusCategory;
}
if ("trayEmpty".equals(statusCategory)) {
localTrayEmptyOrOpen = true;
printerStatus = localPrinterStatus;
}
- private static Map<String, String> initializeStatus() {
- Map<String, String> statusMap = new HashMap<>();
-
- statusMap.put("processing", "Printing...");
- statusMap.put("scanProcessing", "Scanning...");
- statusMap.put("inPowerSave", "Power Save");
- statusMap.put("ready", "Idle");
- statusMap.put("initializing", "Initializing...");
- statusMap.put("closeDoorOrCover", "Door/Cover Open");
- statusMap.put("inkSystemInitializing", "Loading Ink...");
- statusMap.put("shuttingDown", "Shutting Down...");
- return statusMap;
- }
-
public boolean getTrayEmptyOrOpen() {
return trayEmptyOrOpen;
}
<item-type>String</item-type>
<label>Status</label>
<description>Printer Status</description>
- <state readOnly="true"/>
+ <state readOnly="true">
+ <options>
+ <option value="ready">Idle</option>
+ <option value="processing">Printing</option>
+ <option value="scanProcessing">Scanning</option>
+ <option value="inPowerSave">Power Save</option>
+ <option value="initializing">Initializing</option>
+ <option value="closeDoorOrCover">Door/Cover</option>
+ <option value="inkSystemInitializing">Loading Ink</option>
+ <option value="shuttingDown">Shutting Down</option>
+ <option value="replaceCartridgeOut">Cartridge Depleted</option>
+ </options>
+ </state>
</channel-type>
<channel-type id="readonlyswitch" advanced="true">