From b4aca410b43714bf6eab7a1764658b1f54dba95d Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Thu, 7 Dec 2023 21:07:52 +0100 Subject: [PATCH] Pixoo: implement some protocol for testing --- .../service/devices/divoom/PixooProtocol.java | 44 +++++++++++++++++++ .../service/devices/divoom/PixooSupport.java | 4 -- 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooProtocol.java index f0d13d971..8cd6fa408 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooProtocol.java @@ -201,6 +201,50 @@ public class PixooProtocol extends GBDeviceProtocol { }); } + private byte[] encodeClockModeCommand(int clockMode, boolean showTime, boolean showWeather, boolean showTemperature, boolean showDate, + int r, int g, int b) { + + r = Math.min(r, 127); + g = Math.min(g, 127); + b = Math.min(b, 127); + + return encodeProtocol(new byte[]{ + 0x45, + 0x00, + 0x01, // unknown, can be 0 or 1 + (byte) clockMode, + (byte) (showTime ? 0x01 : 0x00), // ignored it seems + (byte) (showWeather ? 0x01 : 0x00), + (byte) (showTemperature ? 0x01 : 0x00), + (byte) (showDate ? 0x01 : 0x00), + (byte) r, (byte) g, (byte) b + }); + + } + + private byte[] encodeAudioVisualisationModeCommand(int visualisationMode) { + return encodeProtocol(new byte[]{ + 0x45, + 0x04, + (byte) visualisationMode, + }); + } + + private byte[] encodeEffectModeCommand(int effectMode) { + return encodeProtocol(new byte[]{ + 0x45, + 0x03, + (byte) effectMode, + }); + } + + @Override + public byte[] encodeTestNewFunction() { + //return encodeAudioModeCommand(1); // works + //return encodeEffectModeCommand(5); // does nothing + return encodeClockModeCommand(0, true, true, false, true, 127, 127, 127); // works r,g,b up to 127 + } + byte[] encodeProtocol(byte[] payload) { ByteBuffer msgBuf = ByteBuffer.allocate(6 + payload.length); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooSupport.java index 5a718aea6..3c5b95f9d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/divoom/PixooSupport.java @@ -33,10 +33,6 @@ public class PixooSupport extends AbstractSerialDeviceSupport { super.onSendConfiguration(config); } - @Override - public void onTestNewFunction() { - } - @Override public boolean connect() { getDeviceIOThread().start();