From 76b17543bee2c38995fca07e21d5b271eddb7369 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 6 Dec 2014 19:25:51 +0100 Subject: o Moving out the executor so it becomes its own class. o Adding seek bars to each gauge. Sending updates to the device. --- .../no/topi/fiken/display/FikenStatusPanel.java | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 app/src/main/java/no/topi/fiken/display/FikenStatusPanel.java (limited to 'app/src/main/java/no/topi/fiken/display/FikenStatusPanel.java') diff --git a/app/src/main/java/no/topi/fiken/display/FikenStatusPanel.java b/app/src/main/java/no/topi/fiken/display/FikenStatusPanel.java new file mode 100644 index 0000000..fb7f5e1 --- /dev/null +++ b/app/src/main/java/no/topi/fiken/display/FikenStatusPanel.java @@ -0,0 +1,68 @@ +package no.topi.fiken.display; + +import android.util.Log; + +import static no.topi.fiken.display.DefaultDisplayService.toHexString; + +public class FikenStatusPanel { + private final static String TAG = DefaultDisplayService.class.getSimpleName(); + + public static final byte + FSP_CMD_GET_GAUGE_COUNT = (byte) 0x01, + FSP_CMD_SET_GAUGE = (byte) 0x02, + FSP_CMD_GET_GAUGE = (byte) 0x03, + FSP_CMD_FAIL = (byte) 0xff; + + private Integer[] gauges; + + public int gaugeCount() { + return gauges != null ? gauges.length : 0; + } + + public Integer get(int gauge) { + return gauges[gauge]; + } + + public void update(byte[] data) { + Log.d(TAG, "data=" + toHexString(data)); + byte len = data[0]; + byte code = data[1]; + + switch (code) { + case FSP_CMD_GET_GAUGE_COUNT: + byte count = data[2]; + gauges = new Integer[count]; + Log.d(TAG, "Gauge count=" + count); + break; + case FSP_CMD_GET_GAUGE: + byte gauge = data[2]; + byte value = data[3]; + Log.d(TAG, "Gauge #" + gauge + ", value=" + value); + if (gauge < gauges.length) { + gauges[gauge] = 0xff & value; + } + break; + case FSP_CMD_FAIL: + Log.e(TAG, "FSP_CMD_FAIL"); + break; + case FSP_CMD_SET_GAUGE: + // ignored + break; + default: + Log.w(TAG, "Unknown code: " + code); + break; + } + } + + public static byte[] getGaugeCountReq() { + return new byte[]{FSP_CMD_GET_GAUGE_COUNT}; + } + + public static byte[] getGaugeValueReq(byte gauge) { + return new byte[]{FSP_CMD_GET_GAUGE, gauge}; + } + + public static byte[] setGaugeValueReq(byte gauge, byte value) { + return new byte[]{FSP_CMD_SET_GAUGE, gauge, value}; + } +} -- cgit v1.2.3