fix settings bit shifting

This commit is contained in:
djnitehawk 2025-03-16 11:29:19 +05:30
parent fc19fe7a14
commit ebc42d1436
2 changed files with 19 additions and 39 deletions

View File

@ -279,30 +279,14 @@
{
isSuccess = false;
switch (priority)
currentButton = priority switch
{
case ChargePriority.OnlySolar:
currentButton = Button.ChOnlySolar;
break;
case ChargePriority.SolarFirst:
currentButton = Button.ChSolarFirst;
break;
case ChargePriority.SolarAndUtility:
currentButton = Button.ChSolarAndUtility;
break;
case ChargePriority.UtilityFirst:
currentButton = Button.ChUtilityFirst;
break;
default:
currentButton = null;
break;
}
;
ChargePriority.OnlySolar => Button.ChOnlySolar,
ChargePriority.SolarFirst => Button.ChSolarFirst,
ChargePriority.SolarAndUtility => Button.ChSolarAndUtility,
ChargePriority.UtilityFirst => Button.ChUtilityFirst,
_ => null
};
if (await Http.GetStringAsync($"api/settings/set-setting/{Setting.ChargePriority}/{priority}") == "true")
{
@ -362,12 +346,15 @@
value = settings!.BackToBatteryVoltage;
break;
case Setting.ChargePriority:
case Setting.OutputPriority:
case Setting.CombinedChargeCurrent:
case Setting.UtilityChargeCurrent:
default:
currentButton = null;
break;
}
;
if (await Http.GetStringAsync($"api/settings/set-setting/{setting}/{value}") == "true")
{
@ -379,20 +366,12 @@
{
isSuccess = false;
switch (setting)
currentButton = setting switch
{
case Setting.CombinedChargeCurrent:
currentButton = Button.MaxCombinedChargeCurrent;
break;
case Setting.UtilityChargeCurrent:
currentButton = Button.MaxUtilityChargeCurrent;
break;
}
var xxx = $"api/settings/set-setting/{setting}/{value}";
Setting.CombinedChargeCurrent => Button.MaxCombinedChargeCurrent,
Setting.UtilityChargeCurrent => Button.MaxUtilityChargeCurrent,
_ => currentButton
};
if (await Http.GetStringAsync($"api/settings/set-setting/{setting}/{value}") == "true")
{

View File

@ -128,6 +128,7 @@ public sealed class FelicitySolarInverter
_ => throw new ArgumentException("Invalid setting!")
};
var registerAddress = (ushort)setting;
var settingValue = (ushort)value;
// Build request frame:
@ -136,8 +137,8 @@ public sealed class FelicitySolarInverter
var frame = new byte[8];
frame[0] = SlaveAddress;
frame[1] = 0x06;
frame[2] = (byte)((ushort)setting >> 8);
frame[3] = (byte)((ushort)setting & 0xFF);
frame[2] = (byte)(registerAddress >> 8);
frame[3] = (byte)(registerAddress & 0xFF);
frame[4] = (byte)(settingValue >> 8);
frame[5] = (byte)(settingValue & 0xFF);
var crc = CalculateCrc(frame, 6);