fix settings bit shifting
This commit is contained in:
parent
fc19fe7a14
commit
ebc42d1436
@ -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")
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user