mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1efda38ccf | ||
|
|
88eb4916b6 | ||
|
|
741d9cf1e2 | ||
|
|
45e3d5e75f | ||
|
|
443f6726c7 | ||
|
|
f22f6eb960 | ||
|
|
a83b42c263 | ||
|
|
b97bd9af65 | ||
|
|
a70956eaf8 |
@@ -25,14 +25,22 @@ namespace GHelper.AnimeMatrix
|
|||||||
BatteryLevel,
|
BatteryLevel,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class SlashPacket : Packet
|
||||||
|
{
|
||||||
|
public SlashPacket(byte[] command, byte reportID = 0x5E) : base(reportID, 128, command)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public class SlashDevice : Device
|
public class SlashDevice : Device
|
||||||
{
|
{
|
||||||
|
|
||||||
internal class SlashPacket : Packet
|
protected virtual byte reportID => 0x5E;
|
||||||
|
|
||||||
|
protected virtual SlashPacket CreatePacket(byte[] command)
|
||||||
{
|
{
|
||||||
public SlashPacket(byte[] command) : base(0x5E, 128, command)
|
return new SlashPacket(command, reportID);
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dictionary<SlashMode, string> Modes = new Dictionary<SlashMode, string>
|
public static Dictionary<SlashMode, string> Modes = new Dictionary<SlashMode, string>
|
||||||
@@ -90,25 +98,25 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
public void WakeUp()
|
public void WakeUp()
|
||||||
{
|
{
|
||||||
Set(Packet<SlashPacket>(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")), "SlashWakeUp");
|
Set(CreatePacket(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")), "SlashWakeUp");
|
||||||
Set(Packet<SlashPacket>(0xC2), "SlashWakeUp");
|
Set(CreatePacket([0xC2]), "SlashWakeUp");
|
||||||
Set(Packet<SlashPacket>(0xD1, 0x01, 0x00, 0x01), "SlashWakeUp");
|
Set(CreatePacket([0xD1, 0x01, 0x00, 0x01 ]), "SlashWakeUp");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init()
|
public void Init()
|
||||||
{
|
{
|
||||||
Set(Packet<SlashPacket>(0xD7, 0x00, 0x00, 0x01, 0xAC), "SlashInit");
|
Set(CreatePacket([0xD7, 0x00, 0x00, 0x01, 0xAC]), "SlashInit");
|
||||||
Set(Packet<SlashPacket>(0xD2, 0x02, 0x01, 0x08, 0xAB), "SlashInit");
|
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xAB]), "SlashInit");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetEnabled(bool status = true)
|
public void SetEnabled(bool status = true)
|
||||||
{
|
{
|
||||||
Set(Packet<SlashPacket>(0xD8, 0x02, 0x00, 0x01, status ? (byte)0x00 : (byte)0x80), $"SlashEnable {status}");
|
Set(CreatePacket([0xD8, 0x02, 0x00, 0x01, status ? (byte)0x00 : (byte)0x80]), $"SlashEnable {status}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Save()
|
public void Save()
|
||||||
{
|
{
|
||||||
Set(Packet<SlashPacket>(0xD4, 0x00, 0x00, 0x01, 0xAB), "SlashSave");
|
Set(CreatePacket([0xD4, 0x00, 0x00, 0x01, 0xAB]), "SlashSave");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetMode(SlashMode mode)
|
public void SetMode(SlashMode mode)
|
||||||
@@ -124,8 +132,8 @@ namespace GHelper.AnimeMatrix
|
|||||||
modeByte = 0x00;
|
modeByte = 0x00;
|
||||||
}
|
}
|
||||||
|
|
||||||
Set(Packet<SlashPacket>(0xD2, 0x03, 0x00, 0x0C), "SlashMode");
|
Set(CreatePacket([0xD2, 0x03, 0x00, 0x0C]), "SlashMode");
|
||||||
Set(Packet<SlashPacket>(0xD3, 0x04, 0x00, 0x0C, 0x01, modeByte, 0x02, 0x19, 0x03, 0x13, 0x04, 0x11, 0x05, 0x12, 0x06, 0x13), "SlashMode");
|
Set(CreatePacket([0xD3, 0x04, 0x00, 0x0C, 0x01, modeByte, 0x02, 0x19, 0x03, 0x13, 0x04, 0x11, 0x05, 0x12, 0x06, 0x13]), "SlashMode");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetStatic(int brightness = 0)
|
public void SetStatic(int brightness = 0)
|
||||||
@@ -179,35 +187,35 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
public void SetCustom(byte[] data)
|
public void SetCustom(byte[] data)
|
||||||
{
|
{
|
||||||
Set(Packet<SlashPacket>(0xD2, 0x02, 0x01, 0x08, 0xAC), "Static");
|
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xAC]), "Static");
|
||||||
Set(Packet<SlashPacket>(0xD3, 0x03, 0x01, 0x08, 0xAC, 0xFF, 0xFF, 0x01, 0x05, 0xFF, 0xFF), "StaticSettings");
|
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xAC, 0xFF, 0xFF, 0x01, 0x05, 0xFF, 0xFF]), "StaticSettings");
|
||||||
Set(Packet<SlashPacket>(0xD4, 0x00, 0x00, 0x01, 0xAC), "StaticSave");
|
Set(CreatePacket([0xD4, 0x00, 0x00, 0x01, 0xAC]), "StaticSave");
|
||||||
|
|
||||||
byte[] payload = new byte[] { 0xD3, 0x00, 0x00, 0x07 };
|
byte[] payload = new byte[] { 0xD3, 0x00, 0x00, 0x07 };
|
||||||
Set(Packet<SlashPacket>(payload.Concat(data.Take(7)).ToArray()), "Static Data");
|
Set(CreatePacket(payload.Concat(data.Take(7)).ToArray()), "Static Data");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetOptions(bool status, int brightness = 0, int interval = 0)
|
public void SetOptions(bool status, int brightness = 0, int interval = 0)
|
||||||
{
|
{
|
||||||
byte brightnessByte = (byte)(brightness * 85.333);
|
byte brightnessByte = (byte)(brightness * 85.333);
|
||||||
|
|
||||||
Set(Packet<SlashPacket>(0xD3, 0x03, 0x01, 0x08, 0xAB, 0xFF, 0x01, status ? (byte)0x01 : (byte)0x00, 0x06, brightnessByte, 0xFF, (byte)interval), "SlashOptions");
|
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xAB, 0xFF, 0x01, status ? (byte)0x01 : (byte)0x00, 0x06, brightnessByte, 0xFF, (byte)interval]), "SlashOptions");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetBatterySaver(bool status)
|
public void SetBatterySaver(bool status)
|
||||||
{
|
{
|
||||||
Set(Packet<SlashPacket>(0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00), $"SlashBatterySaver {status}");
|
Set(CreatePacket([0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00]), $"SlashBatterySaver {status}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetLidMode(bool status)
|
public void SetLidMode(bool status)
|
||||||
{
|
{
|
||||||
Set(Packet<SlashPacket>(0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00), $"DisableLidClose {status}");
|
Set(CreatePacket([0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00]), $"DisableLidClose {status}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetSleepActive(bool status)
|
public void SetSleepActive(bool status)
|
||||||
{
|
{
|
||||||
Set(Packet<SlashPacket>(0xD2, 0x02, 0x01, 0x08, 0xA1), "SleepInit");
|
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xA1]), "SleepInit");
|
||||||
Set(Packet<SlashPacket>(0xD3, 0x03, 0x01, 0x08, 0xA1, 0x00, 0xFF, status ? (byte)0x01 : (byte)0x00, 0x02, 0xFF, 0xFF), $"Sleep {status}");
|
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xA1, 0x00, 0xFF, status ? (byte)0x01 : (byte)0x00, 0x02, 0xFF, 0xFF]), $"Sleep {status}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Set(Packet packet, string? log = null)
|
public void Set(Packet packet, string? log = null)
|
||||||
@@ -219,15 +227,15 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
public class SlashDeviceAura : SlashDevice
|
public class SlashDeviceAura : SlashDevice
|
||||||
{
|
{
|
||||||
public SlashDeviceAura(): base(0x193B)
|
protected override byte reportID => 0x5D;
|
||||||
|
|
||||||
|
public SlashDeviceAura() : base(0x19B6)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
internal new class SlashPacket : Packet
|
protected override SlashPacket CreatePacket(byte[] command)
|
||||||
{
|
{
|
||||||
public SlashPacket(byte[] command) : base(0x5D, 128, command)
|
return new SlashPacket(command, reportID);
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -402,7 +402,7 @@ public static class AppConfig
|
|||||||
|
|
||||||
public static bool IsSingleColor()
|
public static bool IsSingleColor()
|
||||||
{
|
{
|
||||||
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU");
|
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU") || ContainsModel("FA617N") || ContainsModel("FA617X");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsSlash()
|
public static bool IsSlash()
|
||||||
|
|||||||
@@ -644,7 +644,7 @@ public class AsusACPI
|
|||||||
|
|
||||||
public bool IsAllAmdPPT()
|
public bool IsAllAmdPPT()
|
||||||
{
|
{
|
||||||
if (_allAMD is null) _allAMD = DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0;
|
if (_allAMD is null) _allAMD = DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0 && !AppConfig.IsAlly();
|
||||||
return (bool)_allAMD;
|
return (bool)_allAMD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.182</AssemblyVersion>
|
<AssemblyVersion>0.183</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ public static class AsusHid
|
|||||||
public const byte INPUT_ID = 0x5a;
|
public const byte INPUT_ID = 0x5a;
|
||||||
public const byte AURA_ID = 0x5d;
|
public const byte AURA_ID = 0x5d;
|
||||||
|
|
||||||
static int[] deviceIds = { 0x1a30, 0x1854, 0x1869, 0x1866, 0x19b6, 0x1822, 0x1837, 0x1854, 0x184a, 0x183d, 0x8502, 0x1807, 0x17e0, 0x18c6, 0x1abe };
|
static int[] deviceIds = { 0x1a30, 0x1854, 0x1869, 0x1866, 0x19b6, 0x1822, 0x1837, 0x1854, 0x184a, 0x183d, 0x8502, 0x1807, 0x17e0, 0x18c6, 0x1abe, 0x1b4c };
|
||||||
|
|
||||||
static HidStream? auraStream;
|
static HidStream? auraStream;
|
||||||
|
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ namespace GHelper.USB
|
|||||||
msg[6] = mono ? (byte)0 : color.B; // B
|
msg[6] = mono ? (byte)0 : color.B; // B
|
||||||
msg[7] = (byte)speed; // aura.speed as u8;
|
msg[7] = (byte)speed; // aura.speed as u8;
|
||||||
msg[8] = 0x00; // aura.direction as u8;
|
msg[8] = 0x00; // aura.direction as u8;
|
||||||
msg[9] = (color.R == 0 && color.G == 0 && color.B == 0) ? (byte)0xFF : (byte)0x00; // random color flag
|
msg[9] = (color.R == 0 && color.G == 0 && color.B == 0) ? (byte)0xFF : (mode == AuraMode.AuraBreathe ? (byte)0x01 : (byte)0x00); // random color flag
|
||||||
msg[10] = color2.R; // R
|
msg[10] = color2.R; // R
|
||||||
msg[11] = mono ? (byte)0 : color2.G; // G
|
msg[11] = mono ? (byte)0 : color2.G; // G
|
||||||
msg[12] = mono ? (byte)0 : color2.B; // B
|
msg[12] = mono ? (byte)0 : color2.B; // B
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra load and unnecessary services.
|
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra load and unnecessary services.
|
||||||
|
|
||||||
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix / Scar Series, ProArt, Vivobook, Zenbook, ROG Ally and many more!
|
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix or Scar Series, ProArt, Vivobook, Zenbook, ROG Ally and many more!
|
||||||
|
|
||||||
# [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
|
# [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
|
||||||
**⭐ If you like the app - please spread the word about it online**
|
**⭐ If you like the app - please spread the word about it online**
|
||||||
|
|||||||
Reference in New Issue
Block a user