V1.0.1.7-1 -- 2025/12/17

* Datastructure improved
This commit is contained in:
2025-12-17 16:19:26 +09:00
parent 671d6545a3
commit 5b5a4b4c59
16 changed files with 404 additions and 705 deletions

View File

@@ -907,20 +907,6 @@ namespace LFP_Manager.Function
break;
}
}
private static void SetReadIdRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
{
switch (reg_addr)
{
case 0x4000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; //
case 0x4001: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; //
case 0x4002: rSystemData.GyroValue.Z_axis = (short)(reg_value); break; //
case 0x4003: rSystemData.GyroValue.Gyro_policy_sel = (short)(reg_value); break; //
case 0x4004: rSystemData.GyroValue.Gyro_func_sw = (short)(reg_value); break; //
case 0x4006: rSystemData.GyroValue.Gyro_state = (short)(reg_value); break; //
default:
break;
}
}
private static void SetCoilRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
{
@@ -931,66 +917,9 @@ namespace LFP_Manager.Function
rSystemData.CalibrationData.FetCalib.FetStatus = reg_value;
break;
case 0x502E:
rSystemData.CalibrationData.Current.ChargeOption = reg_value;
rSystemData.CalibrationData.ChaMode.Mode = reg_value;
break;
}
}
private static short MakeUartWarningData(short rdata)
{
short result = 0;
bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001Pack OV
if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002Cell OV
if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004Pack UV
if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008Cell UV
if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010Charging OC
if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020Discharging OC
if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer
if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer
if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x0200SOC Low
return result;
}
private static short MakeUartTripData(short rdata)
{
short result = 0;
bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001Pack OV
if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002Cell OV
if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004Pack UV
if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008Cell UV
if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010Charging OC
if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020Discharging OC
if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Temprature
if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Temprature
if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Temprature
if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Temprature
if (bAlarm[13] == true) result |= (short)(1 << 9); // 0x0200Short Circuit Protection
return result;
}
private static short MakeUartErrorData(short rdata, short cdata)
{
short result = cdata;
bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
if (bAlarm[0] == true) result |= (short)(1 << 9); // 0x0001Voltage error
if (bAlarm[1] == true) result |= (short)(1 << 9); // 0x0002Temperature error
if (bAlarm[2] == true) result |= (short)(1 << 9); // 0x0004: 电流检测Error
if (bAlarm[3] == true) result |= (short)(1 << 9); // 0x0010Cell unbalance
return result;
}
}
}