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; isSuccess = false;
switch (priority) currentButton = priority switch
{ {
case ChargePriority.OnlySolar: ChargePriority.OnlySolar => Button.ChOnlySolar,
currentButton = Button.ChOnlySolar; ChargePriority.SolarFirst => Button.ChSolarFirst,
ChargePriority.SolarAndUtility => Button.ChSolarAndUtility,
break; ChargePriority.UtilityFirst => Button.ChUtilityFirst,
case ChargePriority.SolarFirst: _ => null
currentButton = Button.ChSolarFirst; };
break;
case ChargePriority.SolarAndUtility:
currentButton = Button.ChSolarAndUtility;
break;
case ChargePriority.UtilityFirst:
currentButton = Button.ChUtilityFirst;
break;
default:
currentButton = null;
break;
}
;
if (await Http.GetStringAsync($"api/settings/set-setting/{Setting.ChargePriority}/{priority}") == "true") if (await Http.GetStringAsync($"api/settings/set-setting/{Setting.ChargePriority}/{priority}") == "true")
{ {
@ -362,12 +346,15 @@
value = settings!.BackToBatteryVoltage; value = settings!.BackToBatteryVoltage;
break; break;
case Setting.ChargePriority:
case Setting.OutputPriority:
case Setting.CombinedChargeCurrent:
case Setting.UtilityChargeCurrent:
default: default:
currentButton = null; currentButton = null;
break; break;
} }
;
if (await Http.GetStringAsync($"api/settings/set-setting/{setting}/{value}") == "true") if (await Http.GetStringAsync($"api/settings/set-setting/{setting}/{value}") == "true")
{ {
@ -379,20 +366,12 @@
{ {
isSuccess = false; isSuccess = false;
switch (setting) currentButton = setting switch
{ {
case Setting.CombinedChargeCurrent: Setting.CombinedChargeCurrent => Button.MaxCombinedChargeCurrent,
currentButton = Button.MaxCombinedChargeCurrent; Setting.UtilityChargeCurrent => Button.MaxUtilityChargeCurrent,
_ => currentButton
break; };
case Setting.UtilityChargeCurrent:
currentButton = Button.MaxUtilityChargeCurrent;
break;
}
var xxx = $"api/settings/set-setting/{setting}/{value}";
if (await Http.GetStringAsync($"api/settings/set-setting/{setting}/{value}") == "true") 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!") _ => throw new ArgumentException("Invalid setting!")
}; };
var registerAddress = (ushort)setting;
var settingValue = (ushort)value; var settingValue = (ushort)value;
// Build request frame: // Build request frame:
@ -136,8 +137,8 @@ public sealed class FelicitySolarInverter
var frame = new byte[8]; var frame = new byte[8];
frame[0] = SlaveAddress; frame[0] = SlaveAddress;
frame[1] = 0x06; frame[1] = 0x06;
frame[2] = (byte)((ushort)setting >> 8); frame[2] = (byte)(registerAddress >> 8);
frame[3] = (byte)((ushort)setting & 0xFF); frame[3] = (byte)(registerAddress & 0xFF);
frame[4] = (byte)(settingValue >> 8); frame[4] = (byte)(settingValue >> 8);
frame[5] = (byte)(settingValue & 0xFF); frame[5] = (byte)(settingValue & 0xFF);
var crc = CalculateCrc(frame, 6); var crc = CalculateCrc(frame, 6);