초기 커밋.
This commit is contained in:
732
LFP_Manager_PRM/DataStructure/csDataStructure.cs
Normal file
732
LFP_Manager_PRM/DataStructure/csDataStructure.cs
Normal file
@@ -0,0 +1,732 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace LFP_Manager.DataStructure
|
||||
{
|
||||
public class CommConfig
|
||||
{
|
||||
public string AppPath;
|
||||
public string mSN;
|
||||
|
||||
public int CommType;
|
||||
|
||||
public int TargetModelIndex;
|
||||
|
||||
public string SnmpIP;
|
||||
public int SnmpModelIndex;
|
||||
public int SnmpMdQty;
|
||||
|
||||
public string UartPort;
|
||||
public int UartBaudrate;
|
||||
public int UartModelIndex;
|
||||
|
||||
public int CanDevice;
|
||||
public int CanIndex;
|
||||
public int CanNo;
|
||||
public int CanBaudrate;
|
||||
|
||||
public int DbLogPeriod;
|
||||
|
||||
public int CbTestGap;
|
||||
public int CbTestTime;
|
||||
|
||||
public CommConfig()
|
||||
{
|
||||
CommType = 0;
|
||||
TargetModelIndex = 0;
|
||||
SnmpIP = "";
|
||||
SnmpModelIndex = 0;
|
||||
SnmpMdQty = 0;
|
||||
UartPort = "";
|
||||
UartBaudrate = 0;
|
||||
UartModelIndex = 0;
|
||||
CanDevice = 0;
|
||||
CanIndex = 0;
|
||||
CanNo = 0;
|
||||
CanBaudrate = 0;
|
||||
|
||||
DbLogPeriod = 5;
|
||||
|
||||
CbTestGap = 1500;
|
||||
CbTestTime = 3000;
|
||||
}
|
||||
}
|
||||
|
||||
public class TMinMax
|
||||
{
|
||||
public short value;
|
||||
public short num;
|
||||
|
||||
public TMinMax()
|
||||
{
|
||||
value = 0;
|
||||
num = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class DeviceSystemTotalData
|
||||
{
|
||||
public bool CommFail;
|
||||
|
||||
public DeviceValueTotalData ValueData;
|
||||
public DeviceStatusTotalData StatusData;
|
||||
public DeviceAvgData AvgData;
|
||||
|
||||
public DeviceSystemTotalData()
|
||||
{
|
||||
CommFail = false;
|
||||
ValueData = new DeviceValueTotalData();
|
||||
StatusData = new DeviceStatusTotalData();
|
||||
AvgData = new DeviceAvgData();
|
||||
}
|
||||
}
|
||||
|
||||
public class DeviceSystemData
|
||||
{
|
||||
public int mNo;
|
||||
public int cellQty;
|
||||
public int tempQty;
|
||||
public UInt32 heatbeat;
|
||||
public int OneBuffTime;
|
||||
public int AllBuffTime;
|
||||
public bool CommFail;
|
||||
public bool ShelfCommFail;
|
||||
public DateTime LastRxTime;
|
||||
|
||||
public DeviceValueData ValueData;
|
||||
public DeviceAvgData AvgData;
|
||||
public DeviceStatusData StatusData;
|
||||
public DeviceParamData ParamData;
|
||||
public DeviceCalibration CalibriationData;
|
||||
|
||||
public DeviceInforation Information;
|
||||
public DeviceSystemData()
|
||||
{
|
||||
mNo = 0;
|
||||
heatbeat = 0;
|
||||
OneBuffTime = 0;
|
||||
AllBuffTime = 0;
|
||||
CommFail = false;
|
||||
ShelfCommFail = false;
|
||||
LastRxTime = new DateTime();
|
||||
|
||||
ValueData = new DeviceValueData();
|
||||
AvgData = new DeviceAvgData();
|
||||
StatusData = new DeviceStatusData();
|
||||
ParamData = new DeviceParamData();
|
||||
CalibriationData = new DeviceCalibration();
|
||||
|
||||
Information = new DeviceInforation();
|
||||
}
|
||||
}
|
||||
|
||||
public class DeviceValueTotalData
|
||||
{
|
||||
public short TotalVoltage;
|
||||
public short TotalCurrent;
|
||||
public short TotalSOC;
|
||||
public short TotalTemp;
|
||||
|
||||
public DeviceValueTotalData()
|
||||
{
|
||||
TotalVoltage = 0;
|
||||
TotalCurrent = 0;
|
||||
TotalSOC = 0;
|
||||
TotalTemp = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class DeviceValueData
|
||||
{
|
||||
public byte[] fw_ver;
|
||||
|
||||
public short voltageOfPack;
|
||||
public short current;
|
||||
public short averageCurrent;
|
||||
public short rSOC;
|
||||
|
||||
public ushort[] CellVoltage;
|
||||
public short[] CellTemperature;
|
||||
|
||||
public short CpuTemperature;
|
||||
public short FetTemperature;
|
||||
|
||||
public short remainingCapacity;
|
||||
public short stateOfHealth;
|
||||
public short cycleCount;
|
||||
public short fullChargeCapacity;
|
||||
public short designedCapacity;
|
||||
public DeviceValueData()
|
||||
{
|
||||
fw_ver = new byte[4];
|
||||
|
||||
voltageOfPack = 0;
|
||||
current = 0;
|
||||
averageCurrent = 0;
|
||||
rSOC = 0;
|
||||
|
||||
CellVoltage = new ushort[csConstData.SystemInfo.MAX_MODULE_CELL_SIZE];
|
||||
CellTemperature = new short[csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE];
|
||||
|
||||
CpuTemperature = 0;
|
||||
FetTemperature = 0;
|
||||
|
||||
remainingCapacity = 0;
|
||||
stateOfHealth = 0;
|
||||
cycleCount = 0;
|
||||
fullChargeCapacity = 0;
|
||||
designedCapacity = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class DeviceAvgData
|
||||
{
|
||||
public ushort maxCellVoltage;
|
||||
public ushort minCellVoltage;
|
||||
public ushort avgCellVoltage;
|
||||
public ushort diffCellVoltage;
|
||||
public short maxCellNum;
|
||||
public short minCellNum;
|
||||
public short maxTemp;
|
||||
public short minTemp;
|
||||
public short avgTemp;
|
||||
public short diffTemp;
|
||||
public short maxTempNum;
|
||||
public short minTempNum;
|
||||
public DeviceAvgData()
|
||||
{
|
||||
maxCellVoltage = 0;
|
||||
minCellVoltage = 0;
|
||||
avgCellVoltage = 0;
|
||||
diffCellVoltage = 0;
|
||||
maxCellNum = 0;
|
||||
minCellNum = 0;
|
||||
maxTemp = 0;
|
||||
minTemp = 0;
|
||||
avgTemp = 0;
|
||||
diffTemp = 0;
|
||||
maxTempNum = 0;
|
||||
minTempNum = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class DeviceStatusTotalData
|
||||
{
|
||||
public short batteryStatus;
|
||||
public short warning;
|
||||
public short protect;
|
||||
public short status;
|
||||
|
||||
public DeviceStatusTotalData()
|
||||
{
|
||||
batteryStatus = 0;
|
||||
warning = 0;
|
||||
protect = 0;
|
||||
status = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class DeviceStatusData
|
||||
{
|
||||
public short batteryStatusA;
|
||||
public short batteryStatusB;
|
||||
public short warning;
|
||||
public short protect;
|
||||
public short protect1;
|
||||
public short status;
|
||||
public short alarm;
|
||||
public short relayStatus;
|
||||
public uint cellBallanceStatusLv;
|
||||
public uint cellBallanceStatusHv;
|
||||
public ushort cellBalanceValue;
|
||||
|
||||
public uint BalanceEnable;
|
||||
public uint BalanceMode;
|
||||
|
||||
public short cellBalanceInterval;
|
||||
public short cellBalanceEndGap;
|
||||
public short cellBalanceFlag;
|
||||
public DeviceStatusData()
|
||||
{
|
||||
batteryStatusA = 0;
|
||||
batteryStatusB = 0;
|
||||
warning = 0;
|
||||
protect = 0;
|
||||
protect1 = 0;
|
||||
status = 0;
|
||||
alarm = 0;
|
||||
relayStatus = 0;
|
||||
cellBallanceStatusLv = 0;
|
||||
cellBallanceStatusHv = 0;
|
||||
cellBalanceValue = 0;
|
||||
cellBalanceInterval = 0;
|
||||
cellBalanceEndGap = 0;
|
||||
cellBalanceFlag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class DeviceCommStatus
|
||||
{
|
||||
public DateTime LastRxTime;
|
||||
public bool CommFail;
|
||||
public DeviceCommStatus()
|
||||
{
|
||||
LastRxTime = new DateTime();
|
||||
CommFail = false;
|
||||
}
|
||||
}
|
||||
|
||||
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 ChaOverCurrentTrip;
|
||||
public short ChaOverCurrentWarning;
|
||||
public short ChaOverCurrentRelease;
|
||||
public short DchOverCurrentTrip;
|
||||
public short DchOverCurrentWarning;
|
||||
public short DchOverCurrentRelease;
|
||||
|
||||
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 DeviceParamData()
|
||||
{
|
||||
CellOverVoltageTrip = 0;
|
||||
CellOverVoltageWarning = 0;
|
||||
CellOverVoltageRelease = 0;
|
||||
CellUnderVoltageTrip = 0;
|
||||
CellUnderVoltageWarning = 0;
|
||||
CellUnderVoltageRelease = 0;
|
||||
|
||||
SysOverVoltageTrip = 0;
|
||||
SysOverVoltageWarning = 0;
|
||||
SysOverVoltageRelease = 0;
|
||||
SysUnderVoltageTrip = 0;
|
||||
SysUnderVoltageWarning = 0;
|
||||
SysUnderVoltageRelease = 0;
|
||||
|
||||
ChaHighTempTrip = 0;
|
||||
ChaHighTempWarning = 0;
|
||||
ChaHighTempRelease = 0;
|
||||
ChaLowTempTrip = 0;
|
||||
ChaLowTempWarning = 0;
|
||||
ChaLowTempRelease = 0;
|
||||
DchHighTempTrip = 0;
|
||||
DchHighTempWarning = 0;
|
||||
DchHighTempRelease = 0;
|
||||
DchLowTempTrip = 0;
|
||||
DchLowTempWarning = 0;
|
||||
DchLowTempRelease = 0;
|
||||
|
||||
ChaOverCurrentTrip = 0;
|
||||
ChaOverCurrentWarning = 0;
|
||||
ChaOverCurrentRelease = 0;
|
||||
DchOverCurrentTrip = 0;
|
||||
DchOverCurrentWarning = 0;
|
||||
DchOverCurrentRelease = 0;
|
||||
|
||||
LowSocTrip = 0;
|
||||
LowSocWarning = 0;
|
||||
LowSocRelease = 0;
|
||||
|
||||
CellVoltageDifferenceTrip = 0;
|
||||
CellVoltageDifferenceWarning = 0;
|
||||
CellVoltageDifferenceRelease = 0;
|
||||
CellVoltageDifferenceTime = 0;
|
||||
|
||||
DefalutParamOption = 0;
|
||||
DefalutParamAll = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class DeviceCalibration
|
||||
{
|
||||
public CellVoltageCalib CellVoltge;
|
||||
public SystemVoltageCalib SystemVoltage;
|
||||
public ForcedBalControl ForcedBalancing;
|
||||
public ForcedBalControl2 ForcedBalancing2; // For PR-57150
|
||||
public BatteryParameter Battery;
|
||||
public CurrentCalib Current;
|
||||
public SystemInfor SystemInfo;
|
||||
public SocCalibration SocCalib;
|
||||
public TCbParam CbParam;
|
||||
|
||||
public DeviceInforation InvData;
|
||||
|
||||
public short CellBalancingVoltage;
|
||||
public short CellBalancingVoltageInterval;
|
||||
public short CellBalancingVoltageEndGap;
|
||||
|
||||
public DeviceCalibration()
|
||||
{
|
||||
CellVoltge = new CellVoltageCalib();
|
||||
SystemVoltage = new SystemVoltageCalib();
|
||||
ForcedBalancing = new ForcedBalControl();
|
||||
ForcedBalancing2 = new ForcedBalControl2(); // For PR-57150
|
||||
Battery = new BatteryParameter();
|
||||
Current = new CurrentCalib();
|
||||
SystemInfo = new SystemInfor();
|
||||
SocCalib = new SocCalibration();
|
||||
CbParam = new TCbParam();
|
||||
|
||||
InvData = new DeviceInforation();
|
||||
|
||||
CellBalancingVoltage = 0;
|
||||
CellBalancingVoltageInterval = 0;
|
||||
CellBalancingVoltageEndGap = 0;
|
||||
}
|
||||
public DeviceCalibration DeepCopy()
|
||||
{
|
||||
DeviceCalibration newCopy = new DeviceCalibration
|
||||
{
|
||||
CellVoltge = CellVoltge,
|
||||
SystemVoltage = SystemVoltage,
|
||||
ForcedBalancing = ForcedBalancing.DeepCopy(),
|
||||
Battery = Battery,
|
||||
Current = Current,
|
||||
SystemInfo = SystemInfo,
|
||||
SocCalib = SocCalib,
|
||||
CbParam = CbParam.DeepCopy(),
|
||||
|
||||
InvData = InvData,
|
||||
|
||||
CellBalancingVoltage = CellBalancingVoltage,
|
||||
CellBalancingVoltageInterval = CellBalancingVoltageInterval,
|
||||
CellBalancingVoltageEndGap = CellBalancingVoltageEndGap,
|
||||
};
|
||||
return newCopy;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class DeviceInforation
|
||||
{
|
||||
public UInt32 ManufactureDate;
|
||||
public byte[] pcb_sn;
|
||||
public byte[] module_sn;
|
||||
public DeviceInforation()
|
||||
{
|
||||
ManufactureDate = 0;
|
||||
pcb_sn = new byte[16];
|
||||
module_sn = new byte[32];
|
||||
}
|
||||
}
|
||||
|
||||
public class CellVoltageCalib
|
||||
{
|
||||
public short CvOffsetLow;
|
||||
public short CvOffsetHigh;
|
||||
public CellVoltageCalib()
|
||||
{
|
||||
CvOffsetLow = 0;
|
||||
CvOffsetHigh = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class SystemVoltageCalib
|
||||
{
|
||||
public short Calibration_K;
|
||||
public short Calibration_B;
|
||||
public SystemVoltageCalib()
|
||||
{
|
||||
Calibration_K = 0;
|
||||
Calibration_B = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class ForcedBalControl
|
||||
{
|
||||
public short Control;
|
||||
public short CellNo;
|
||||
public bool AutoB;
|
||||
public bool DCP;
|
||||
public ForcedBalControl()
|
||||
{
|
||||
Control = 0;
|
||||
CellNo = 0;
|
||||
AutoB = false;
|
||||
DCP = false;
|
||||
}
|
||||
public ForcedBalControl DeepCopy()
|
||||
{
|
||||
ForcedBalControl newCopy = new ForcedBalControl()
|
||||
{
|
||||
Control = Control,
|
||||
CellNo = CellNo,
|
||||
AutoB = AutoB,
|
||||
DCP = DCP
|
||||
};
|
||||
return newCopy;
|
||||
}
|
||||
}
|
||||
|
||||
public class ForcedBalControl2
|
||||
{
|
||||
public int Control;
|
||||
public int CellNo;
|
||||
public int Mode;
|
||||
public int Enable;
|
||||
public ForcedBalControl2()
|
||||
{
|
||||
Control = 0;
|
||||
CellNo = 0;
|
||||
Mode = 0;
|
||||
Enable = 0;
|
||||
}
|
||||
public ForcedBalControl2 DeepCopy()
|
||||
{
|
||||
ForcedBalControl2 newCopy = new ForcedBalControl2()
|
||||
{
|
||||
Control = Control,
|
||||
CellNo = CellNo,
|
||||
Mode = Mode,
|
||||
Enable = Enable
|
||||
};
|
||||
return newCopy;
|
||||
}
|
||||
}
|
||||
|
||||
public class BatteryParameter
|
||||
{
|
||||
public short CellQty;
|
||||
public short TempQty;
|
||||
public UInt32 Capacity;
|
||||
public BatteryParameter()
|
||||
{
|
||||
CellQty = 0;
|
||||
TempQty = 0;
|
||||
Capacity = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class CurrentCalib
|
||||
{
|
||||
public short SelectSubItem;
|
||||
public short ShuntRange;
|
||||
public short CurrentZero;
|
||||
public short VoltageZero;
|
||||
public Int32 Calibration_K;
|
||||
public short ChaAndDchSelect;
|
||||
public short ChargeOption;
|
||||
public CurrentCalib()
|
||||
{
|
||||
SelectSubItem = 0;
|
||||
ShuntRange = 0;
|
||||
CurrentZero = 0;
|
||||
VoltageZero = 0;
|
||||
Calibration_K = 0;
|
||||
ChaAndDchSelect = 0;
|
||||
ChargeOption = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class SystemInfor
|
||||
{
|
||||
//public short Id;
|
||||
public DateTime devTime;
|
||||
public UInt16 devAddr;
|
||||
public SystemInfor()
|
||||
{
|
||||
devTime = new DateTime();
|
||||
devAddr = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class SocCalibration
|
||||
{
|
||||
public short CellNo;
|
||||
public short SocValue;
|
||||
public SocCalibration()
|
||||
{
|
||||
CellNo = 0;
|
||||
SocValue = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class TCbParam
|
||||
{
|
||||
public short Threadhold;
|
||||
public short Window;
|
||||
public short Min;
|
||||
public short Interval;
|
||||
public TCbParam()
|
||||
{
|
||||
Threadhold = 0;
|
||||
Window = 0;
|
||||
Min = 0;
|
||||
Interval = 0;
|
||||
}
|
||||
public TCbParam DeepCopy()
|
||||
{
|
||||
TCbParam newCopy = new TCbParam
|
||||
{
|
||||
Threadhold = Threadhold,
|
||||
Window = Window,
|
||||
Min = Min,
|
||||
Interval = Interval
|
||||
};
|
||||
return newCopy;
|
||||
}
|
||||
}
|
||||
|
||||
public class DataFunction
|
||||
{
|
||||
public static void DataInit(ref DeviceSystemData sData, ref CommConfig sConfig)
|
||||
{
|
||||
sData.ShelfCommFail = true;
|
||||
|
||||
switch (sConfig.TargetModelIndex)
|
||||
{
|
||||
case 0: // PR-57150
|
||||
sData.cellQty = 18;
|
||||
sData.tempQty = 6;
|
||||
break;
|
||||
case 1: // PR-64150
|
||||
sData.cellQty = 20;
|
||||
sData.tempQty = 8;
|
||||
break;
|
||||
case 2: // LFPM-57080
|
||||
sData.cellQty = 18;
|
||||
sData.tempQty = 6;
|
||||
break;
|
||||
case 3: // PR-102150
|
||||
sData.cellQty = 32;
|
||||
sData.tempQty = 8;
|
||||
break;
|
||||
case 4: // PR-115300
|
||||
sData.cellQty = 36;
|
||||
sData.tempQty = 16;
|
||||
break;
|
||||
case 5: // PR-67150
|
||||
sData.cellQty = 21;
|
||||
sData.tempQty = 8;
|
||||
break;
|
||||
default:
|
||||
sData.cellQty = 18;
|
||||
sData.tempQty = 6;
|
||||
break;
|
||||
}
|
||||
|
||||
for (int j = 0; j < csConstData.SystemInfo.MAX_MODULE_CELL_SIZE; j++)
|
||||
{
|
||||
sData.ValueData.CellVoltage[j] = 0;
|
||||
}
|
||||
for (int j = 0; j < csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE; j++)
|
||||
{
|
||||
sData.ValueData.CellTemperature[j] = 0;
|
||||
}
|
||||
sData.ValueData.voltageOfPack = 0;
|
||||
sData.ValueData.current = 0;
|
||||
sData.ValueData.rSOC = 0;
|
||||
sData.AvgData.maxCellVoltage = 0;
|
||||
sData.AvgData.minCellVoltage = 0;
|
||||
sData.AvgData.avgCellVoltage = 0;
|
||||
sData.AvgData.maxTemp = 0;
|
||||
sData.AvgData.minTemp = 0;
|
||||
sData.AvgData.avgTemp = 0;
|
||||
sData.heatbeat = 0;
|
||||
sData.StatusData.warning = 0;
|
||||
sData.StatusData.protect = 0;
|
||||
}
|
||||
}
|
||||
public class TCanTxBuff
|
||||
{
|
||||
private const int BuffMax = 4096;
|
||||
public int InPos;
|
||||
public int OutPos;
|
||||
public TCanTRxData[] Buf;
|
||||
public TCanTxBuff()
|
||||
{
|
||||
InPos = 0;
|
||||
OutPos = 0;
|
||||
Buf = new TCanTRxData[BuffMax];
|
||||
for (int i = 0; i < BuffMax; i++)
|
||||
{
|
||||
Buf[i] = new TCanTRxData();
|
||||
}
|
||||
}
|
||||
|
||||
public void PutBuff(TCanTRxData CanTxData)
|
||||
{
|
||||
if (CanTxData != null)
|
||||
{
|
||||
Buf[InPos++] = CanTxData.DeepCopy();
|
||||
InPos %= BuffMax;
|
||||
}
|
||||
}
|
||||
public TCanTRxData GetBuff()
|
||||
{
|
||||
TCanTRxData result = null;
|
||||
|
||||
if (InPos != OutPos)
|
||||
{
|
||||
result = Buf[OutPos++].DeepCopy();
|
||||
OutPos %= BuffMax;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
public class TCanTRxData
|
||||
{
|
||||
public int type;
|
||||
public UInt32 exid;
|
||||
public byte[] data;
|
||||
|
||||
public TCanTRxData()
|
||||
{
|
||||
type = 0;
|
||||
exid = 0;
|
||||
data = new byte[8];
|
||||
}
|
||||
public TCanTRxData DeepCopy()
|
||||
{
|
||||
TCanTRxData newCopy = new TCanTRxData
|
||||
{
|
||||
exid = exid
|
||||
};
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
newCopy.data[i] = data[i];
|
||||
}
|
||||
return newCopy;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user