초기 커밋.

This commit is contained in:
2025-12-17 12:40:51 +09:00
parent e8d195c03e
commit 368acb1aa8
184 changed files with 95393 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LFP_Manager.DataStructure
{
internal class CsSnmpConstData
{
public static readonly string[] SnmpOidInfo =
{
".1.3.6.1.2.1.15.1.0", // 0 Voltage - 10mV
".1.3.6.1.2.1.15.2.0", // 1 Current - 10mA
".1.3.6.1.2.1.15.3.0", // 2 #01 Cell Voltage - mV
".1.3.6.1.2.1.15.4.0", // 3 #02 Cell Voltage - mV
".1.3.6.1.2.1.15.5.0", // 4 #03 Cell Voltage - mV
".1.3.6.1.2.1.15.6.0", // 5 #04 Cell Voltage - mV
".1.3.6.1.2.1.15.7.0", // 6 #05 Cell Voltage - mV
".1.3.6.1.2.1.15.8.0", // 7 #06 Cell Voltage - mV
".1.3.6.1.2.1.15.9.0", // 8 #07 Cell Voltage - mV
".1.3.6.1.2.1.15.10.0", // 9 #08 Cell Voltage - mV
".1.3.6.1.2.1.15.11.0", // 10 #09 Cell Voltage - mV
".1.3.6.1.2.1.15.12.0", // 11 #10 Cell Voltage - mV
".1.3.6.1.2.1.15.13.0", // 12 #11 Cell Voltage - mV
".1.3.6.1.2.1.15.14.0", // 13 #12 Cell Voltage - mV
".1.3.6.1.2.1.15.15.0", // 14 #13 Cell Voltage - mV
".1.3.6.1.2.1.15.16.0", // 15 #14 Cell Voltage - mV
".1.3.6.1.2.1.15.17.0", // 16 #15 Cell Voltage - mV
".1.3.6.1.2.1.15.18.0", // 17 #16 Cell Voltage - mV
".1.3.6.1.2.1.15.19.0", // 18 Temp of PCB - C
".1.3.6.1.2.1.15.20.0", // 19 Temp of Ambient - C
".1.3.6.1.2.1.15.21.0", // 20 Temp Max. - C
".1.3.6.1.2.1.15.22.0", // 21 Remaining Capacity - 0.1AH
".1.3.6.1.2.1.15.24.0", // 23 SOH - 0.00%
".1.3.6.1.2.1.15.25.0", // 24 SOC - 0.00%
".1.3.6.1.2.1.15.26.0", // 25 Status
".1.3.6.1.2.1.15.27.0", // 26 Warning
".1.3.6.1.2.1.15.28.0", // 27 Protection
".1.3.6.1.2.1.15.29.0", // 28 FailAndStatus
".1.3.6.1.2.1.15.30.0", // 29 Cycle Count
".1.3.6.1.2.1.15.31.0", // 30 #01 Temp - C
".1.3.6.1.2.1.15.32.0", // 31 #02 Temp - C
".1.3.6.1.2.1.15.33.0", // 32 #03 Temp - C
".1.3.6.1.2.1.15.34.0", // 33 #04 Temp - C
".1.3.6.1.2.1.15.37.0", // 34 Cell Number
".1.3.6.1.2.1.15.38.0", // 35 Designed Capacity - 0.1AH
".1.3.6.1.2.1.15.39.0", // 36 Average Temp - C
".1.3.6.1.2.1.15.40.0", // 37 Max Charge Current - A
".1.3.6.1.2.1.15.41.0", // 38 Temp Number
".1.3.6.1.2.1.15.42.0", // 39 DateTime - Year
".1.3.6.1.2.1.15.43.0", // 40 DateTime - Month
".1.3.6.1.2.1.15.44.0", // 41 DateTime - Date
".1.3.6.1.2.1.15.45.0", // 42 DateTime - Hour
".1.3.6.1.2.1.15.46.0", // 43 DateTime - Minute
".1.3.6.1.2.1.15.47.0", // 44 DateTime - Second
".1.3.6.1.2.1.15.48.0", // 45 Flaot Voltage - 0.00V
".1.3.6.1.2.1.15.49.0", // 46 Boost Voltage - 0.00V
".1.3.6.1.2.1.15.50.0", // 47 Min. Charge Temp - C
".1.3.6.1.2.1.15.51.0", // 48 Max. Charge Temp - C
".1.3.6.1.2.1.15.60.0", // 49 Model - String
".1.3.6.1.2.1.15.61.0", // 50 BMS Firmware - String
".1.3.6.1.2.1.15.62.0", // 51 Pack Serial Number - String
".1.3.6.1.2.1.15.63.0", // 52 Vendor Name - String
".1.3.6.1.2.1.15.64.0", // 53 Product Code - String
".1.3.6.1.2.1.15.65.0", // 54 MajorMinorRev - String
".1.3.6.1.2.1.15.66.0", // 55 HwProductRev - String
".1.3.6.1.2.1.15.67.0", // 56 Manufacture Date - String
};
}
}

View File

@@ -0,0 +1,106 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LFP_Manager.DataStructure
{
internal class CsSnmpConstData124050
{
public static readonly string[] SnmpOidInfo =
{
".1.3.6.1.2.1.15.1.0", // 0 Voltage - 10mV
".1.3.6.1.2.1.15.2.0", // 1 Current - 10mA
".1.3.6.1.2.1.15.3.0", // 2 #01 Cell Voltage - mV
".1.3.6.1.2.1.15.4.0", // 3 #02 Cell Voltage - mV
".1.3.6.1.2.1.15.5.0", // 4 #03 Cell Voltage - mV
".1.3.6.1.2.1.15.6.0", // 5 #04 Cell Voltage - mV
".1.3.6.1.2.1.15.7.0", // 6 #05 Cell Voltage - mV
".1.3.6.1.2.1.15.8.0", // 7 #06 Cell Voltage - mV
".1.3.6.1.2.1.15.9.0", // 8 #07 Cell Voltage - mV
".1.3.6.1.2.1.15.10.0", // 9 #08 Cell Voltage - mV
".1.3.6.1.2.1.15.11.0", // 10 #09 Cell Voltage - mV
".1.3.6.1.2.1.15.12.0", // 11 #10 Cell Voltage - mV
".1.3.6.1.2.1.15.13.0", // 12 #11 Cell Voltage - mV
".1.3.6.1.2.1.15.14.0", // 13 #12 Cell Voltage - mV
".1.3.6.1.2.1.15.15.0", // 14 #13 Cell Voltage - mV
".1.3.6.1.2.1.15.16.0", // 15 #14 Cell Voltage - mV
".1.3.6.1.2.1.15.17.0", // 16 #15 Cell Voltage - mV
".1.3.6.1.2.1.15.18.0", // 17 #16 Cell Voltage - mV
".1.3.6.1.2.1.15.19.0", // 18 #17 Cell Voltage - mV
".1.3.6.1.2.1.15.20.0", // 19 #18 Cell Voltage - mV
".1.3.6.1.2.1.15.21.0", // 20 #19 Cell Voltage - mV
".1.3.6.1.2.1.15.22.0", // 21 #20 Cell Voltage - mV
".1.3.6.1.2.1.15.23.0", // 22 #21 Cell Voltage - mV
".1.3.6.1.2.1.15.24.0", // 23 #22 Cell Voltage - mV
".1.3.6.1.2.1.15.25.0", // 24 #23 Cell Voltage - mV
".1.3.6.1.2.1.15.26.0", // 25 #24 Cell Voltage - mV
".1.3.6.1.2.1.15.27.0", // 26 #25 Cell Voltage - mV
".1.3.6.1.2.1.15.28.0", // 27 #26 Cell Voltage - mV
".1.3.6.1.2.1.15.29.0", // 28 #27 Cell Voltage - mV
".1.3.6.1.2.1.15.30.0", // 29 #28 Cell Voltage - mV
".1.3.6.1.2.1.15.31.0", // 30 #29 Cell Voltage - mV
".1.3.6.1.2.1.15.32.0", // 31 #30 Cell Voltage - mV
".1.3.6.1.2.1.15.33.0", // 32 #31 Cell Voltage - mV
".1.3.6.1.2.1.15.34.0", // 33 #32 Cell Voltage - mV
".1.3.6.1.2.1.15.35.0", // 34 #33 Cell Voltage - mV
".1.3.6.1.2.1.15.36.0", // 35 #34 Cell Voltage - mV
".1.3.6.1.2.1.15.37.0", // 36 #35 Cell Voltage - mV
".1.3.6.1.2.1.15.38.0", // 37 #36 Cell Voltage - mV
".1.3.6.1.2.1.15.39.0", // 38 #37 Cell Voltage - mV
".1.3.6.1.2.1.15.40.0", // 39 #38 Cell Voltage - mV
".1.3.6.1.2.1.15.41.0", // 40 #39 Cell Voltage - mV
".1.3.6.1.2.1.15.43.0", // 41 Temp of PCB - C
".1.3.6.1.2.1.15.44.0", // 42 Temp of Ambient - C
".1.3.6.1.2.1.15.45.0", // 43 Temp Max. - C
".1.3.6.1.2.1.15.46.0", // 44 Remaining Capacity - 0.1AH
".1.3.6.1.2.1.15.47.0", // 45 SOH - 0.00%
".1.3.6.1.2.1.15.48.0", // 46 SOC - 0.00%
".1.3.6.1.2.1.15.49.0", // 47 Status
".1.3.6.1.2.1.15.50.0", // 48 Warning
".1.3.6.1.2.1.15.51.0", // 49 Protection
".1.3.6.1.2.1.15.52.0", // 50 FailAndStatus
".1.3.6.1.2.1.15.53.0", // 51 Cycle Count
".1.3.6.1.2.1.15.54.0", // 52 #01 Temp - C
".1.3.6.1.2.1.15.55.0", // 53 #02 Temp - C
".1.3.6.1.2.1.15.56.0", // 54 #03 Temp - C
".1.3.6.1.2.1.15.57.0", // 55 #04 Temp - C
".1.3.6.1.2.1.15.58.0", // 56 #05 Temp - C
".1.3.6.1.2.1.15.59.0", // 57 #06 Temp - C
".1.3.6.1.2.1.15.60.0", // 58 #07 Temp - C
".1.3.6.1.2.1.15.61.0", // 59 #08 Temp - C
".1.3.6.1.2.1.15.68.0", // 64 Cell Number
".1.3.6.1.2.1.15.69.0", // 65 Designed Capacity - 0.1AH
".1.3.6.1.2.1.15.70.0", // 66 Average Temp - C
".1.3.6.1.2.1.15.71.0", // 67 Max Charge Current - A
".1.3.6.1.2.1.15.72.0", // 69 Temp Number
".1.3.6.1.2.1.15.74.0", // 69 DateTime - Year
".1.3.6.1.2.1.15.75.0", // 70 DateTime - Month
".1.3.6.1.2.1.15.76.0", // 71 DateTime - Date
".1.3.6.1.2.1.15.77.0", // 72 DateTime - Hour
".1.3.6.1.2.1.15.78.0", // 73 DateTime - Minute
".1.3.6.1.2.1.15.79.0", // 74 DateTime - Second
".1.3.6.1.2.1.15.81.0", // 75 Flaot Voltage - 0.00V
".1.3.6.1.2.1.15.82.0", // 76 Boost Voltage - 0.00V
".1.3.6.1.2.1.15.83.0", // 77 Min. Charge Temp - C
".1.3.6.1.2.1.15.84.0", // 78 Max. Charge Temp - C
".1.3.6.1.2.1.15.90.0", // 79 Model - String
".1.3.6.1.2.1.15.91.0", // 80 BMS Firmware - String
".1.3.6.1.2.1.15.92.0", // 81 Pack Serial Number - String
".1.3.6.1.2.1.15.93.0", // 82 Vendor Name - String
".1.3.6.1.2.1.15.94.0", // 83 Product Code - String
".1.3.6.1.2.1.15.95.0", // 84 MajorMinorRev - String
".1.3.6.1.2.1.15.96.0", // 85 HwProductRev - String
".1.3.6.1.2.1.15.97.0", // 86 Manufacture Date - String
};
}
}

View File

@@ -0,0 +1,192 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LFP_Manager.DataStructure
{
class csCanConstData
{
public class CanDeviceInfo
{
public const int VCI_PCI5121 = 1;
public const int VCI_PCI9810 = 2;
public const int VCI_USBCAN1 = 3;
public const int VCI_USBCAN2 = 4;
public const int VCI_USBCAN2A = 4;
public const int VCI_PCI9820 = 5;
public const int VCI_CAN232 = 6;
public const int VCI_PCI5110 = 7;
public const int VCI_CANLITE = 8;
public const int VCI_ISA9620 = 9;
public const int VCI_ISA5420 = 10;
public const int VCI_PC104CAN = 11;
public const int VCI_CANETUDP = 12;
public const int VCI_CANETE = 12;
public const int VCI_DNP9810 = 13;
public const int VCI_PCI9840 = 14;
public const int VCI_PC104CAN2 = 15;
public const int VCI_PCI9820I = 16;
public const int VCI_CANETTCP = 17;
public const int VCI_PEC9920 = 18;
public const int VCI_PCI5010U = 19;
public const int VCI_USBCAN_E_U = 20;
public const int VCI_USBCAN_2E_U = 21;
public const int VCI_PCI5020U = 22;
public const int VCI_EG20T_CAN = 23;
/// <summary>
///
/// </summary>
/// <param name="DeviceType"></param>
/// <param name="DeviceInd"></param>
/// <param name="Reserved"></param>
/// <returns></returns>
}
public static readonly string[] DEVICE_NAME =
{
"PCI5121",
"PCI9810",
"USBCAN1",
"USBCAN2",
"USBCAN2A",
"PCI9820",
"CAN232",
"PCI5110",
"CANLITE",
"ISA9620",
"ISA5420",
"PC104CAN",
"CANETUDP",
"CANETE",
"DNP9810",
"PCI9840",
"PC104CAN2",
"PCI9820I",
"CANETTCP",
"PEC9920",
"PCI5010U",
"USBCAN_E_U",
"USBCAN_2E_U",
"PCI5020U",
"EG20T_CAN",
/// <summary>
///
/// </summary>
/// <param name="DeviceType"></param>
/// <param name="DeviceInd"></param>
/// <param name="Reserved"></param>
/// <returns></returns>
};
public static readonly int[] DEVICE_ID =
{
1,
2,
3,
4,
4,
5,
6,
7,
8,
9,
10,
11,
12,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
/// <summary>
///
/// </summary>
/// <param name="DeviceType"></param>
/// <param name="DeviceInd"></param>
/// <param name="Reserved"></param>
/// <returns></returns>
};
//0x060003--1000Kbps
//0x060004--800Kbps
//0x060007--500Kbps
//0x1C0008--250Kbps
//0x1C0011--125Kbps
//0x160023--100Kbps
//0x1C002C--50Kbps
//0x1600B3--20Kbps
//0x1C00E0--10Kbps
//0x1C01C1--5Kbps
public static readonly int[] CAN_BAUDRATE =
{
0x060003,
0x060004,
0x060007,
0x1C0008,
0x1C0011,
0x160023,
0x1C002C,
0x1600B3,
0x1C00E0,
0x1C01C1
};
//USBCAN II Baudrate
public static readonly int[] CAN_BAUDRATE_OTHER = // Timer 0 + Timer 1
{
0x0014, // 1000Kbps
0x0016, // 800Kbps
0x001C, // 500Kbps
0x011C, // 250Kbps
0x031C, // 125Kbps
0x041C, // 100Kbps
0x091C, // 50Kbps
0x181C, // 20Kbps
0x311C, // 10Kbps
0xBFFF // 5Kbps
};
public static readonly string[] CAN_BAUDRATE_STR =
{
"1000Kbps",
"800Kbps",
"500Kbps",
"250Kbps",
"125Kbps",
"100Kbps",
"50Kbps",
"20Kbps",
"10Kbps",
"5Kbps"
};
public class SendType
{
public const int Normal = 0;
public const int Single_Normal = 1;
public const int Loop_Back = 2;
public const int Single_Loop_Back = 3;
}
public class FrameType
{
public const int Standard = 0;
public const int Extended = 1;
}
public class FrameFormat
{
public const int Data_Frame = 0;
public const int Remote_Frame = 1;
}
}
}

View File

@@ -0,0 +1,273 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LFP_Manager.DataStructure
{
class csConstData
{
public class SystemInfo
{
public const int BASE_CAN_TARGET_ADDR = 200;
public const int MAX_MODULE_SIZE = 16;
public const int MAX_MODULE_CELL_SIZE = 39;
public const int MAX_MODULE_TEMP_SIZE = 8; //Byul 21.08.09 Initial : 8
public static readonly int FLOATING_VOLTAGE = (int)(3.55 * MAX_MODULE_CELL_SIZE * 10);
public static readonly string[] CHG_MODE =
{
"NO CURR LMT",
"ALWAYS CURR LMT",
"PRE-CHG PROTECT",
"CHG LMT AFTER OC",
"PRE-CHG + LMT",
};
}
public class CommType
{
public const int COMM_UART = 0;
public const int COMM_RS485 = 1;
public const int COMM_SNMP = 2;
public const int COMM_UART_MULTI = 9;
}
public class MODEL_INDEX
{
public const int LFPM_48100D = 0;
public const int LFPM_48150D = 1;
public const int LFPM_48200D = 2;
public const int LFPM_48250D = 3;
public const int LFPM_48300D = 4;
public const int LFPM_124050D = 5;
}
public static readonly string[] MODEL_STR =
{
"LFPM-48100D", // 0
"LFPM-48150D", // 1
"LFPM-48200D", // 2
"LFPM-48250D", // 3
"LFPM-48300D", // 4
"LFPM-124050D", // 5
};
public static readonly string[] UART_PROTOCOL =
{
"AMG",
};
public class UART_PARAM_LIST
{
public const int DEFAULT_PARAM = 0;
public const int CELL_UNDER_VOLTAGE = 61; //67
public const int PACK_UNDER_VOLTAGE = 64; //64
public const int CELL_OVER_VOLTAGE = 67; //
public const int PACK_OVER_VOLTAGE = 70; //61
public const int CHG_OVER_CURRENT2 = 83;
public const int DCH_OVER_CURRENT2 = 84;
public const int CHG_OVER_CURRENT = 78;
public const int DCH_OVER_CURRENT = 79;
public const int ENV_LOW_TEMPERATURE = 0x82; // 130, 131, 132 0x82, 0x83, 0x84 - Warning, Trip, Release
public const int ENV_HIGH_TEMPERATURE = 0x85; // 133, 134, 135 0x85, 0x86, 0x87 - Warning, Trip, Release
public const int CHG_LOW_TEMPERATURE = 90;
public const int CHG_HIGH_TEMPERATURE = 93; //93
public const int DCH_LOW_TEMPERATURE = 96;
public const int DCH_HIGH_TEMPERATURE = 99; //99
public const int PCB_HIGH_TEMPERATURE = 102;
public const int LOW_CAPACITY = 58;
public const int DESIGN_CAPACITY = 37;
public const int SOC_VALUE = 24;
public const int CYCLE_COUNT = 29;
}
public class UART_CALIB_ADDR_LIST
{
public const int LIMIT_CHARGE = 0x502E; //
public const int BMS_DATETIME = 0x002D;
public const int CHAGE_MODE = 0x002F; //
public const int ANTI_THEFT_COMM = 0x0088;
public const int ANTI_THEFT_GYRO = 0x0089;
public const int BAL_VOLT = 0x38;
public const int BAL_DIFF = 0x39;
}
public class UART_PARAM_DEFAULT
{
public const int Warn_Cell_UV = 2800;
public const int Protect_Cell_UV = 2500;
public const int Release_Cell_UV = 3000;
public const int Warn_Pack_UV = 4300;
public const int Protect_Pack_UV = 4200;
public const int Release_Pack_UV = 4500;
public const int Warn_Cell_OV = 3750;
public const int Protect_Cell_OV = 3850;
public const int Release_Cell_OV = 3580;
public const int Warn_Pack_OV = 5600;
public const int Protect_Pack_OV = 5700;
public const int Release_Pack_OV = 5400;
public const int Protect_Charge_OC1 = 11000;
public const int Protect_Discharge_OC1 = 11000;
public const int Protect_Charge_OC2 = 12000;
public const int Protect_Discharge_OC2 = 12000;
public const int ReleaseTime_Charge_OC = 60;
public const int ReleaseTime_Discharge_OC = 60;
public const int Delay_Charge_OC1 = 5;
public const int Delay_Discharge_OC1 = 5;
public const int Delay_Charge_OC2 = 1;
public const int Delay_Discharge_OC2 = 1;
public const int Times_Charge_OC = 5;
public const int Times_Discharge_OC = 5;
public const int Warn_Charge_UT = -5;
public const int Protect_Charge_UT = -10;
public const int Release_Charge_UT = -3;
public const int Warn_Charge_OT = 60;
public const int Protect_Charge_OT = 65;
public const int Release_Charge_OT = 55;
public const int Warn_Discharge_UT = -20;
public const int Protect_Discharge_UT = -25;
public const int Release_Discharge_UT = -15;
public const int Warn_Discharge_OT = 65;
public const int Protect_Discharge_OT = 70;
public const int Release_Discharge_OT = 60;
public const int Warn_Low_Capacity = 5;
}
public class UART_124050_PARAM_DEFAULT
{
public const int Warn_Cell_UV = 2800;
public const int Protect_Cell_UV = 2500;
public const int Release_Cell_UV = 3000;
public const int Warn_Pack_UV = 10900;
public const int Protect_Pack_UV = 9795;
public const int Release_Pack_UV = 11700;
public const int Warn_Cell_OV = 3750;
public const int Protect_Cell_OV = 3850;
public const int Release_Cell_OV = 3580;
public const int Warn_Pack_OV = 14600;
public const int Protect_Pack_OV = 15000;
public const int Release_Pack_OV = 14000;
public const int Protect_Charge_OC1 = 11000;
public const int Protect_Discharge_OC1 = 11000;
public const int Protect_Charge_OC2 = 12000;
public const int Protect_Discharge_OC2 = 12000;
public const int ReleaseTime_Charge_OC = 60;
public const int ReleaseTime_Discharge_OC = 60;
public const int Delay_Charge_OC1 = 5;
public const int Delay_Discharge_OC1 = 5;
public const int Delay_Charge_OC2 = 1;
public const int Delay_Discharge_OC2 = 1;
public const int Times_Charge_OC = 5;
public const int Times_Discharge_OC = 5;
public const int Warn_Charge_UT = -5;
public const int Protect_Charge_UT = -10;
public const int Release_Charge_UT = -3;
public const int Warn_Charge_OT = 60;
public const int Protect_Charge_OT = 65;
public const int Release_Charge_OT = 55;
public const int Warn_Discharge_UT = -20;
public const int Protect_Discharge_UT = -25;
public const int Release_Discharge_UT = -15;
public const int Warn_Discharge_OT = 65;
public const int Protect_Discharge_OT = 70;
public const int Release_Discharge_OT = 60;
public const int Warn_Low_Capacity = 5;
public const int Warn_Env_UT = -20;
public const int Protect_Env_UT = -25;
public const int Release_Env_UT = -15;
public const int Warn_Env_OT = 65;
public const int Protect_Env_OT = 70;
public const int Release_Env_OT = 60;
}
public class ResetCommandFlag
{
public static readonly ushort SystemReset = 0x0001;
public static readonly ushort LcdHistoryDelete = 0x0002;
public static readonly ushort SystemResetAll = 0x0003;
}
public class Eltek_Data
{
public static readonly ushort MD_BASE_REG = 4000;
public static readonly ushort MD_OFFSET = 400;
public static readonly ushort OpDataRegAddr = 0;
public static readonly ushort OpDataRegSize = 15;
public static readonly ushort ParaDataRegAddr = 200;
public static readonly ushort ParaDataRegSize = 71;
public static ushort GetOpDataRegAddr(int mID)
{
return (ushort)(MD_BASE_REG + (MD_OFFSET * mID) + OpDataRegAddr);
}
public static ushort GetParamDataRegAddr(int mID)
{
return (ushort)(MD_BASE_REG + (MD_OFFSET * mID) + ParaDataRegAddr);
}
}
public class CRC_Data
{
public static readonly byte[] auchCRCHi =
{
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40
};
public static readonly byte[] auchCRCLo =
{
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40
};
}
}
}

View File

@@ -0,0 +1,961 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using static DevExpress.Utils.MVVM.Internal.ILReader;
using LFP_Manager.Function;
namespace LFP_Manager.DataStructure
{
public class CommConfig
{
public int CommType;
public string SnmpIP;
public int SnmpModelIndex;
public int ModuleQty;
public int RecvWaitTime;
public string UartPort;
public int UartBaudrate;
public int UartModelIndex;
public int UartProtocol;
public int DbLogPeriod;
public int GyroSensitive;
public int ControlLevel;
public string MasterPw;
public string EngineerPw;
public string TechnicianPw;
public CommConfig()
{
CommType = 0;
SnmpIP = "192.168.0.200";
SnmpModelIndex = 0;
ModuleQty = 1;
RecvWaitTime = 1500; // 1500ms
UartPort = "";
UartBaudrate = 9600;
UartModelIndex = 0;
UartProtocol = 0;
DbLogPeriod = 5;
GyroSensitive = 120;
ControlLevel = 0;
MasterPw = "8003";
EngineerPw = "7003";
TechnicianPw = "6003";
}
}
public class TMinMax
{
public short value;
public short num;
public TMinMax()
{
value = 0;
num = 0;
}
}
public class DeviceSystemTotalData
{
public bool CommFail;
public DeviceSystemIdent IdentData;
public DeviceValueTotalData ValueData;
public DeviceStatusTotalData StatusData;
public DeviceSystemTotalData()
{
IdentData = new DeviceSystemIdent();
ValueData = new DeviceValueTotalData();
StatusData = new DeviceStatusTotalData();
}
}
public class DeviceSystemIdent
{
public string Manufacturer;
public string DeviceModel;
//public int ModuleQuantity;
public byte[] fw_ver;
public string FwVerStr;
public int AlarmOutputMode;
public UInt32 ManufactureDate;
public string SerialNumber;
public DeviceSystemIdent()
{
Manufacturer = "";
DeviceModel = "";
//ModuleQuantity = 1;
fw_ver = new byte[4];
FwVerStr = "";
AlarmOutputMode = 0;
ManufactureDate = 0;
SerialNumber = "";
}
}
public class DateTimeStruct
{
public int year;
public int month;
public int day;
public int hour;
public int minute;
public int second;
public string DateTimeStr;
public DateTimeStruct()
{
DateTimeStr = "-";
}
}
public class DeviceSystemData
{
public bool active;
public int mNo;
public int cellQty;
public int recv_cellQty;
public int tempQty;
public int ntcQty;
public int ChargeVoltage;
public int DOD;
public int MaxChaCurrent;
public int MaxDchCurrent;
public int FloatVoltage;
public int BoostVoltage;
public int MinChargeTemp;
public int MaxChargeTemp;
public UInt32 heatbeat;
public bool CommFail;
public bool ShelfCommFail;
public DateTime LastRxTime;
public Int32 BmsDateTimeInt;
public ushort BmsDateTimeShort1;
public ushort BmsDateTimeShort2;
public DateTimeStruct BmsDateTime;
public DeviceValueData ValueData;
public DeviceAvgData AvgData;
public DeviceStatusData StatusData;
public DeviceParamData ParamData;
public DeviceCalibration CalibrationData;
public DeviceInforation Information;
public DeviceEtcStatus EtcStatus;
public DeviceMaxValue MaxValue;
public DeviceGyroValue GyroValue;
public DeviceSystemData()
{
active = false;
mNo = 0;
cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE;
tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE;
ChargeVoltage = 0;
DOD = 0;
MaxChaCurrent = 0;
MaxDchCurrent = 0;
heatbeat = 0;
CommFail = false;
ShelfCommFail = false;
LastRxTime = DateTime.MinValue;
BmsDateTimeInt = 0;
BmsDateTime = new DateTimeStruct();
ValueData = new DeviceValueData();
AvgData = new DeviceAvgData();
StatusData = new DeviceStatusData();
ParamData = new DeviceParamData();
CalibrationData = new DeviceCalibration();
Information = new DeviceInforation();
EtcStatus = new DeviceEtcStatus();
MaxValue = new DeviceMaxValue();
GyroValue = new DeviceGyroValue();
}
}
public class DeviceValueTotalData
{
public short TotalVoltage;
public short TotalCurrent;
public short TotalSOC;
public short TotalSOH;
public short TotalTemp;
public DeviceValueTotalData()
{
TotalVoltage = 0;
TotalCurrent = 0;
TotalSOC = 0;
TotalSOH = 0;
TotalTemp = 0;
}
}
public class DeviceValueData
{
public byte[] fw_ver;
public short voltageOfPack;
public short current;
public short cha_current;
public short dch_current;
public short averageCurrent;
public short rSOC;
public short NumOfCells;
public short NumOfTemps;
public ushort[] CellVoltage;
public short[] CellTemperature;
public short Ext1Temperature;
public short Ext2Temperature;
public short remainingCapacity;
public short stateOfHealth;
public int cycleCount;
public int fullChargeCapacity;
public int designedCapacity;
public int TimeLeft;
public int Ah_Charged;
public int Ah_Discharged;
public int NoOfDischargeCycles;
public int NoOfChargeCycles;
public int ModuleAlarms;
public int ModuleWarnings;
public int ModuleStatus;
public int ModuleVoltage_int;
public int ModBusDocVersion;
public int ParametersChanged;
public int MaxBattChargeCurr;
public int MaxBattDischargeCurr;
public int BatteryProdDateYear;
public int BatteryProdDateMonth;
public int BatteryProdDateDay;
public int BatteryModelDescription;
public int BatteryType;
public DeviceValueData()
{
fw_ver = new byte[6];
CellVoltage = new ushort[csConstData.SystemInfo.MAX_MODULE_CELL_SIZE];
CellTemperature = new short[csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE];
}
}
public class DeviceAvgData
{
public int maxCellVoltage;
public int minCellVoltage;
public int avgCellVoltage;
public int diffCellVoltage;
public int maxCellNum;
public int minCellNum;
public int maxTemp;
public int minTemp;
public int avgTemp;
public int diffTemp;
public int maxTempNum;
public int minTempNum;
public DeviceAvgData()
{
}
}
public class DeviceStatusTotalData
{
public short batteryStatus;
public short warning;
public short protection;
public short status;
}
public class DeviceStatusData
{
public short batteryStatus;
public short batteryStatus1;
public short warning;
public short protection;
public short protection1;
public short status;
public short faultAndStatus;
public short relayStatus;
public short errorCode;
public short specialAlarm; // 1: Commfail, 2. Gyro, 3, Breaker
public short faultstatus; // Only for RS-485
public short cellBallanceStatus;
public short cellBalanceValue;
public short cellBalanceFlag;
}
public class DeviceCommStatus
{
public DateTime LastRxTime;
public bool CommFail;
}
public class DeviceParamData
{
public short CellOverVoltageTrip;
public short CellOverVoltageWarning;
public short CellOverVoltageRelease;
public short CellUnderVoltageTrip;
public short CellUnderVoltageWarning;
public short CellUnderVoltageRelease;
public short SysOverVoltageTrip;
public short SysOverVoltageWarning;
public short SysOverVoltageRelease;
public short SysUnderVoltageTrip;
public short SysUnderVoltageWarning;
public short SysUnderVoltageRelease;
public short ChaHighTempTrip;
public short ChaHighTempWarning;
public short ChaHighTempRelease;
public short ChaLowTempTrip;
public short ChaLowTempWarning;
public short ChaLowTempRelease;
public short DchHighTempTrip;
public short DchHighTempWarning;
public short DchHighTempRelease;
public short DchLowTempTrip;
public short DchLowTempWarning;
public short DchLowTempRelease;
public short ChaOverCurrentTrip1;
public short ChaOverCurrentTrip2;
public short ChaOverCurrentWarning;
public short ChaOverCurrentReleaseTime;
public short ChaOverCurrentTimes;
public short ChaOverCurrentDelay1;
public short ChaOverCurrentDelay2;
public short DchOverCurrentTrip1;
public short DchOverCurrentTrip2;
public short DchOverCurrentWarning;
public short DchOverCurrentReleaseTime;
public short DchOverCurrentTimes;
public short DchOverCurrentDelay1;
public short DchOverCurrentDelay2;
public short PcbHighTempTrip;
public short PcbHighTempWarning;
public short PcbHighTempRelease;
public short EnvLowTempWarning;
public short EnvLowTempTrip;
public short EnvLowTempRelease;
public short EnvHighTempWarning;
public short EnvHighTempTrip;
public short EnvHighTempRelease;
public short ShortCircuit;
public short LowSocTrip;
public short LowSocWarning;
public short LowSocRelease;
public short CellVoltageDifferenceTrip;
public short CellVoltageDifferenceWarning;
public short CellVoltageDifferenceRelease;
public short CellVoltageDifferenceTime;
public short DefalutParamOption;
public short DefalutParamAll;
public ushort ReadParamAll;
public DeviceParamData DeepCopy()
{
DeviceParamData newCopy = new DeviceParamData
{
CellOverVoltageTrip = CellOverVoltageTrip,
CellOverVoltageWarning = CellOverVoltageWarning,
CellOverVoltageRelease = CellOverVoltageRelease,
CellUnderVoltageTrip = CellUnderVoltageTrip,
CellUnderVoltageWarning = CellUnderVoltageWarning,
CellUnderVoltageRelease = CellUnderVoltageRelease,
SysOverVoltageTrip = SysOverVoltageTrip,
SysOverVoltageWarning = SysOverVoltageWarning,
SysOverVoltageRelease = SysOverVoltageRelease,
SysUnderVoltageTrip = SysUnderVoltageTrip,
SysUnderVoltageWarning = SysUnderVoltageWarning,
SysUnderVoltageRelease = SysUnderVoltageRelease,
ChaHighTempTrip = ChaHighTempTrip,
ChaHighTempWarning = ChaHighTempWarning,
ChaHighTempRelease = ChaHighTempRelease,
ChaLowTempTrip = ChaLowTempTrip,
ChaLowTempWarning = ChaLowTempWarning,
ChaLowTempRelease = ChaLowTempRelease,
DchHighTempTrip = DchHighTempTrip,
DchHighTempWarning = DchHighTempWarning,
DchHighTempRelease = DchHighTempRelease,
DchLowTempTrip = DchLowTempTrip,
DchLowTempWarning = DchLowTempWarning,
DchLowTempRelease = DchLowTempRelease,
ChaOverCurrentTrip1 = ChaOverCurrentTrip1,
ChaOverCurrentTrip2 = ChaOverCurrentTrip2,
ChaOverCurrentWarning = ChaOverCurrentWarning,
ChaOverCurrentReleaseTime = ChaOverCurrentReleaseTime,
ChaOverCurrentTimes = ChaOverCurrentTimes,
ChaOverCurrentDelay1 = ChaOverCurrentDelay1,
ChaOverCurrentDelay2 = ChaOverCurrentDelay2,
DchOverCurrentTrip1 = DchOverCurrentTrip1,
DchOverCurrentTrip2 = DchOverCurrentTrip2,
DchOverCurrentWarning = DchOverCurrentWarning,
DchOverCurrentReleaseTime = DchOverCurrentReleaseTime,
DchOverCurrentTimes = DchOverCurrentTimes,
DchOverCurrentDelay1 = DchOverCurrentDelay1,
DchOverCurrentDelay2 = DchOverCurrentDelay2,
PcbHighTempTrip = PcbHighTempTrip,
PcbHighTempWarning = PcbHighTempWarning,
PcbHighTempRelease = PcbHighTempRelease,
EnvLowTempWarning = EnvLowTempWarning,
EnvLowTempTrip = EnvLowTempTrip,
EnvLowTempRelease = EnvLowTempRelease,
EnvHighTempWarning = EnvHighTempWarning,
EnvHighTempTrip = EnvHighTempTrip,
EnvHighTempRelease = EnvHighTempRelease,
ShortCircuit = ShortCircuit,
LowSocTrip = LowSocTrip,
LowSocWarning = LowSocWarning,
LowSocRelease = LowSocRelease,
CellVoltageDifferenceTrip = CellVoltageDifferenceTrip,
CellVoltageDifferenceWarning = CellVoltageDifferenceWarning,
CellVoltageDifferenceRelease = CellVoltageDifferenceRelease,
CellVoltageDifferenceTime = CellVoltageDifferenceTime,
DefalutParamOption = DefalutParamOption,
DefalutParamAll = DefalutParamAll,
ReadParamAll = ReadParamAll,
};
return newCopy;
}
}
public class DeviceCalibration
{
public CellVoltageCalib CellVoltge;
public SystemVoltageCalib SystemVoltage;
public ForcedBalControl ForcedBalancing;
public BatteryParameter Battery;
public CurrentCalib Current;
public SystemInfor SystemInfo;
public CapCalibration CapCalib;
public FetCalibration FetCalib;
public ChargeMode ChaMode;
public TAntiTheft AntiTheft;
public TBmsDateTime BmsDateTime;
public TBalCalib BalCalib;
public DeviceInforation InvData;
public TAntiTheftComm AntiTheftComm;
public TAntiTheftGyro AntiTheftGyro;
public DeviceCalibration()
{
CellVoltge = new CellVoltageCalib();
SystemVoltage = new SystemVoltageCalib();
ForcedBalancing = new ForcedBalControl();
Battery = new BatteryParameter();
Current = new CurrentCalib();
SystemInfo = new SystemInfor();
CapCalib = new CapCalibration();
FetCalib = new FetCalibration();
ChaMode = new ChargeMode();
AntiTheft = new TAntiTheft();
BmsDateTime = new TBmsDateTime();
BalCalib = new TBalCalib();
InvData = new DeviceInforation();
AntiTheftComm = new TAntiTheftComm();
AntiTheftGyro = new TAntiTheftGyro();
}
public DeviceCalibration DeepCopy()
{
DeviceCalibration newCopy = new DeviceCalibration
{
CellVoltge = CellVoltge,
SystemVoltage = SystemVoltage,
ForcedBalancing = ForcedBalancing,
Battery = Battery,
Current = Current,
SystemInfo = SystemInfo,
CapCalib = CapCalib.DeepCopy(),
AntiTheft = AntiTheft.DeepCopy(),
BalCalib = BalCalib.DeepCopy(),
FetCalib = FetCalib,
ChaMode = ChaMode.DeepCopy(),
};
return newCopy;
}
}
public class TAntiTheftComm
{
public int TimeOut;
public int FuncSwitch;
public int Unlock;
public TAntiTheftComm()
{
TimeOut = 0;
FuncSwitch = 0;
Unlock = 0;
}
public TAntiTheftComm DeepCopy()
{
TAntiTheftComm newCopy = new TAntiTheftComm
{
TimeOut = TimeOut,
FuncSwitch = FuncSwitch,
Unlock = Unlock
};
return newCopy;
}
}
public class TAntiTheftGyro
{
public int XAxis;
public int YAxis;
public int ZAxis;
public int GyroPolicySel;
public int GyroFuncSwitch;
public int GyroState;
public int Unlock;
public TAntiTheftGyro()
{
XAxis = 0;
YAxis = 0;
ZAxis = 0;
GyroPolicySel = 0;
GyroFuncSwitch = 0;
GyroState = 0;
Unlock = 0;
}
public TAntiTheftGyro DeepCopy()
{
TAntiTheftGyro newCopy = new TAntiTheftGyro
{
XAxis = XAxis,
YAxis = YAxis,
ZAxis = ZAxis,
GyroPolicySel = GyroPolicySel,
GyroFuncSwitch = GyroFuncSwitch,
GyroState = GyroState,
Unlock = Unlock,
};
return newCopy;
}
}
public class CellVoltageCalib
{
public short CurrentCellNo; // 0: ODD, 1: EVEN
public short OddCellVoltageCalibration_K;
public short OddCellVoltageCalibration_B;
public short EvenCellVoltageCalibration_K;
public short EvenCellVoltageCalibration_B;
}
public class SystemVoltageCalib
{
[MarshalAs(UnmanagedType.I2, SizeConst = 2)]
public short Calibration_K;
public short Calibration_B;
}
public class ForcedBalControl
{
public short Control;
public short CellNo;
public bool AutoB;
}
public class BatteryParameter
{
public short CellQty;
public short TempQty;
public UInt32 Capacity;
}
public class CurrentCalib
{
public short SelectSubItem;
public short ShuntRange;
public short CurrentZero;
public short VoltageZero;
public Int32 ChgCalibration_K;
public Int32 DchCalibration_K;
public short ChaAndDchSelect;
public short ChargeOption;
}
public class SystemInfor
{
//public short Id;
public DateTime devTime;
public ushort LastRebootCause;
}
public class CapCalibration
{
public int DesignCapacity;
public int SocValue;
public int CycleCount;
public CapCalibration()
{
DesignCapacity = 0;
SocValue = 0;
CycleCount = 0;
}
public CapCalibration DeepCopy()
{
CapCalibration newCopy = new CapCalibration
{
DesignCapacity = DesignCapacity,
SocValue = SocValue,
CycleCount = CycleCount,
};
return newCopy;
}
}
public class ChargeMode
{
public int Mode;
public int Value;
public ChargeMode()
{
Mode = 0;
Value = 0;
}
public ChargeMode DeepCopy()
{
ChargeMode newCopy = new ChargeMode
{
Mode = Mode,
Value = Value,
};
return newCopy;
}
}
public class TAntiTheft
{
public int Comm;
public int GyroScope;
public TAntiTheft()
{
Comm = 0;
GyroScope = 0;
}
public TAntiTheft DeepCopy()
{
TAntiTheft newCopy = new TAntiTheft
{
Comm = Comm,
GyroScope = GyroScope,
};
return newCopy;
}
}
public class TBmsDateTime
{
public string Str;
public int lValue;
public short[] sValue;
public TBmsDateTime()
{
Str = "";
lValue = 0;
sValue = new short[2];
}
public TBmsDateTime DeepCopy()
{
TBmsDateTime newCopy = new TBmsDateTime
{
Str = Str,
lValue = lValue,
};
for (int i = 0; i < 2; i++)
{
newCopy.sValue[i] = sValue[i];
}
return newCopy;
}
}
public class TBalCalib
{
public int Volt;
public int Diff;
public TBalCalib()
{
Volt = 0;
Diff = 0;
}
public TBalCalib DeepCopy()
{
TBalCalib newCopy = new TBalCalib
{
Volt = Volt,
Diff = Diff,
};
return newCopy;
}
}
public class FetCalibration
{
public short FetStatus;
public short DchFetOff; // 6010
public short ChaFetOff; // 6011
public short LmtChaFetOff; // 6012
public short PreChaFetOn; // 6013
public short HeaterFetOn; // 6014
public short ChaFetOn; // 6015
}
public class DeviceInforation
{
//public string ManuDate_Str;
public byte[] ManuDate_Byte;
public byte[] Model_Byte;
public byte[] FwVer_Byte;
//public string Model_Str;
//public string FwVer_Str;
public byte[] BMS_SN;
//public string BMS_SN_Str;
public byte[] Module_SN;
public byte[] Vendor_Byte;
public string VendorName;
public string ProductCode;
public string MajorMinorRev;
public string ModelName;
public string HwSerialNumber;
public string HwProductRev;
public string ManufacturingDate;
public string SwProductRev;
public DeviceInforation()
{
ManuDate_Byte = new byte[10];
Model_Byte = new byte[24];
FwVer_Byte = new byte[6];
//Model_Str = " ";
//FwVer_Str = " ";
BMS_SN = new byte[32];
//BMS_SN_Str = " ";
Module_SN = new byte[32];
Vendor_Byte = new byte[10];
VendorName = "-";
ProductCode = "-";
MajorMinorRev = "-";
ModelName = "-";
HwSerialNumber = "-";
HwProductRev = "-";
ManufacturingDate = "-";
SwProductRev = "-";
}
}
public class DeviceEtcStatus
{
public short SwitchHW;
public short SwitchWarning;
public short SwitchProtect;
public ushort LogDurationIdle; // min
public ushort LogDurationActive; // min
public UInt32 DataAndTime;
public ushort ChgOCPModel; /* 充电限流
0不限流保护
1始终限流充电
2预充保护
4充电过流后限流
8预充+充电过流后限流 */
public short ChgLmtVoltage; // mv
public short SOC_StopFloat; // % 暂停浮充Soc
public short SOC_RecvFloat; // % 恢复浮充电压
public short DurationFloat; // sec
public short DurationIdle; // sec
public short VoltageStopFloat; // 0.1V
public short VoltageRecvFloat; // 0.1V
public short FloatMode; /* 0000: 持续浮充
0001检测电压
0002定时浮充
0003检测SOC */
public short BalanceVoltage; // mV 均衡启动电压
public short BalanceDeltaV; // mV 均衡启动压差
public short WarnLowCapacity; // 低容量告警
public short HistroyDelete; // 删除数据记录
}
public class DeviceMaxValue
{
public short MaxChgCurrent;
public short MaxChgTemperature;
public short MinChgTemperature;
public short FloatChgVolt;
public short BoostChgVolt;
public DeviceMaxValue()
{
}
}
public class DeviceGyroValue
{
public short X_axis;
public short Y_axis;
public short Z_axis;
public short Gyro_policy_sel;
public short Gyro_func_sw;
public short Gyro_state;
public DeviceGyroValue()
{
}
}
public class TUartTRxData
{
public int type;
public int length;
public byte[] data;
public TUartTRxData()
{
type = 0;
length = 0;
data = new byte[256];
}
public TUartTRxData DeepCopy()
{
TUartTRxData newCopy = new TUartTRxData
{
type = type,
length = length,
data = data
};
for (int i = 0; i < data.Length; i++)
{
newCopy.data[i] = data[i];
}
return newCopy;
}
}
public class TUartTxBuff
{
public int InPos;
public int OutPos;
public TUartTRxData[] Buf;
public TUartTxBuff()
{
InPos = 0;
OutPos = 0;
Buf = new TUartTRxData[50];
for (int i = 0; i < 50; i++)
{
Buf[i] = new TUartTRxData();
}
}
public bool CheckBuff()
{
if (InPos != OutPos) { return true; }
else { return false; }
}
public void PutBuff(TUartTRxData UartTxData)
{
if (UartTxData != null)
{
Buf[InPos++] = UartTxData.DeepCopy();
InPos %= 50;
}
}
public TUartTRxData GetBuff()
{
TUartTRxData result = null;
if (InPos != OutPos)
{
result = Buf[OutPos++].DeepCopy();
OutPos %= 50;
}
return result;
}
}
}

View File

@@ -0,0 +1,67 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LFP_Manager.DataStructure
{
class csDbConstData
{
public class DataBase
{
public static string FileName = @"\db\AlamrHistory.db";
public static string TableName = "History";
public static string CreateTable =
"CREATE TABLE " + TableName + " ("
+ "HTime DateTime NOT NULL, "
+ "model varchar(10), "
+ "sno int, "
+ "alarm_name varchar(20), "
+ "alarm_code int, "
+ "flag_name varchar(20), "
+ "flag int, "
+ "param1 float, "
+ "param2 float, "
+ ");";
}
public static readonly int ALARM_NAME_SIZE = 9;
public class DB_ALARM
{
public static int CELL_UNDER_VOLTAGE = 0;
public static int CELL_OVER_VOLTAGE = 1;
public static int SYSTEM_UNDER_VOLTAGE = 2;
public static int SYSTEM_OVER_VOLTAGAE = 3;
public static int HIGH_TEMPERATURE = 4;
public static int LOW_TEMPERATURE = 5;
public static int CHARGE_OVER_CURRENT = 6;
public static int DISCHARGE_OVER_CURRENT = 7;
public static int LOW_SOC = 8;
public static readonly string[] ALARM_NAME =
{
"CELL UNDER VOLTAGE",
"CELL OVER VOLTAGE",
"SYSTEM UNDER VOLTAGE",
"SYSTEM OVER VOLTAGAE",
"HIGH TEMPERATURE",
"LOW TEMPERATURE",
"CHARGE OVER CURRENT",
"DISCHARGE OVER CURRENT",
"LOW SOC",
};
public static int FLAG_RELEASE = 0;
public static int FLAG_WARNING = 1;
public static int FLAG_TRIP = 2;
public static readonly string[] FLAG_NAME =
{
"RELEASE",
"WARNING",
"FAULT",
};
}
}
}