提交 620b36ac 作者: wysheng

恢复AB枪电子锁端口

上级 17e9ce90
......@@ -28,13 +28,13 @@
#define DcOutChkPos_Port GPIOE
#define DcOutChkPos_RCC RCC_AHB1Periph_GPIOE
#define Lock_Pin GPIO_Pin_12
#define Lock_Port GPIOD
#define Lock_RCC RCC_AHB1Periph_GPIOD
#define Lock_B_Pin GPIO_Pin_12
#define Lock_B_Port GPIOD
#define Lock_B_RCC RCC_AHB1Periph_GPIOD
#define LockChk_Pin GPIO_Pin_14
#define LockChk_Port GPIOD
#define LockChk_RCC RCC_AHB1Periph_GPIOD
#define LockChk_B_Pin GPIO_Pin_14
#define LockChk_B_Port GPIOD
#define LockChk_B_RCC RCC_AHB1Periph_GPIOD
#define ChgLed_Pin GPIO_Pin_10
#define ChgLed_Port GPIOE
......@@ -87,13 +87,13 @@
#define DcOutChkNeg_B_RCC RCC_AHB1Periph_GPIOE
#define Lock_B_Pin GPIO_Pin_13
#define Lock_B_Port GPIOD
#define Lock_B_RCC RCC_AHB1Periph_GPIOD
#define Lock_Pin GPIO_Pin_13
#define Lock_Port GPIOD
#define Lock_RCC RCC_AHB1Periph_GPIOD
#define LockChk_B_Pin GPIO_Pin_15
#define LockChk_B_Port GPIOD
#define LockChk_B_RCC RCC_AHB1Periph_GPIOD
#define LockChk_Pin GPIO_Pin_15
#define LockChk_Port GPIOD
#define LockChk_RCC RCC_AHB1Periph_GPIOD
#define ChgLed_B_Pin GPIO_Pin_13
#define ChgLed_B_Port GPIOE
......
......@@ -291,16 +291,11 @@ void DcModuleCtrlProcess_SmartAllocation(void)
static u32 Tick = 0; //
if (Tick == 0)
Tick = GetSystemTick();
if ((GetSystemTick() -Tick) < 100)
{
return;
}
Tick = GetSystemTick();
Tick = GetSystemTick();
static StructDcModuleUsedStatus status[4] =
{
......@@ -311,7 +306,6 @@ void DcModuleCtrlProcess_SmartAllocation(void)
Invalid, Invalid, Invalid, Invalid
};
//StructDcModuleSend DataSend;
u32 Temp;
u8 addr;
u32 Volt = 0;
......@@ -420,7 +414,6 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
if (DcModuleGroup[i].status == Hold_A && i != 0)
{
if (abs((s16) (DcModuleGroup[i].Voltage) - (s16) (DcModuleManage.SetVolt / 100)) > 100) //差距在10V以内,升压完成
{
Temp++;
......@@ -451,7 +444,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
for (u8 j = 0; j < DcModuleGroup[i].num; j++)
{
addr = DcModuleGroup[i].modules[j].addr;
addr = DcModuleGroup[i].modules[j].addr;
DcModuleManage_B.Cmd = 0x55; //开机
DcModuleGroup[i].modules[j].cmd = 0x55;
......@@ -471,7 +464,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
Temp++;
for (u8 j = 0; j < DcModuleGroup[i].num; j++)
{
addr = DcModuleGroup[i].modules[j].addr;
addr = DcModuleGroup[i].modules[j].addr;
DcModuleGroup[i].modules[j].cmd = 0xAA;
SendCmdToDcModule(addr, 0xAA); //关机
}
......@@ -583,7 +576,6 @@ void DcModuleCtrlProcess_SmartAllocation(void)
}
if (Temp)
return;
......@@ -599,9 +591,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
Temp++;
}
if ((GetSystemTick() -CtrlTick) > 100)
//if ((GetSystemTick() -CtrlTick) > 100)
{
CtrlTick = GetSystemTick();
//CtrlTick = GetSystemTick();
Temp++;
}
......@@ -712,7 +704,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
for (u8 j = 0; j < DcModuleGroup[i].num; j++)
{
addr = DcModuleGroup[i].modules[j].addr;
addr = DcModuleGroup[i].modules[j].addr;
DcModuleManage_B.Cmd = 0x55; //开机
DcModuleGroup[i].modules[j].cmd = 0x55;
......
......@@ -17,11 +17,11 @@ void DcModleVoltDetect(u16 Voltage);
StructDcModuleAbility DcModuleAbility =
{
.MaxVolt = DcModuleMaxVolt,
.MinVolt = DcModuleMinVolt,
.MaxCurrt = DcModuleMaxCurrt,
.MinCurrt = DcModuleMinCurrt,
.SingleMaxCurrt = DcModuleSinMaxCurrt,
.MaxVolt = DcModuleMaxVolt,
.MinVolt = DcModuleMinVolt,
.MaxCurrt = DcModuleMaxCurrt,
.MinCurrt = DcModuleMinCurrt,
.SingleMaxCurrt = DcModuleSinMaxCurrt,
};
......@@ -36,9 +36,12 @@ StructDcModuleCtrl DcModuleCtrl_B;
StructDcModuleCtrl DcModuleCtrl_ALL;
void DcModeleRelayInit(void);
extern void GetNXRAcVolt(CanRxMsg* RxMsg);
extern void GetNXRAcVolt(CanRxMsg * RxMsg);
extern void GetNXRAcVoltMsg(u32 addr);
static s8 DcModleVoltChkCnt = 0;
void DcModuleRxIrqHandle(void)
{
CanRxMsg RxMsg;
......@@ -69,6 +72,7 @@ void DcModuleRxIrqHandle(void)
Data.RecvTime = GetSystemTick();
DcModuleStatus_ALL[Data.Id] = Data;
}
GetNXRAcVolt(&RxMsg);
}
}
......@@ -93,6 +97,7 @@ void DcModuleRxIrqHandle(void)
Data.RecvTime = GetSystemTick();
DcModuleStatus_ALL[Data.Id] = Data;
}
GetNXRAcVolt(&RxMsg);
}
}
......@@ -103,6 +108,8 @@ void DcModuleRxIrqHandle(void)
/*125K*/
void DcModuleCanInit(void)
{
DcModleVoltChkCnt = 0;
MCP2515_EnterCritical();
MCP2515_SetInt(DcModuleRxIrqHandle, DISABLE);
......@@ -198,6 +205,7 @@ void DcModuleCanInit(void)
** 函数名: CAN1_SendMessage
** 输 入: ulCanId----发送ID, ulCanDataA----发送数据的底4字节, ulCanDataB----发送数据的高4字�
��
��
** 输 出: 参数读取状态
** 描 述: 通过CAN通道发送数据
** 日 期: 2010/08/19
......@@ -245,20 +253,20 @@ void DcModuleSet(EnumSwitchStatus Set, u16 Volt, u16 Currt)
}*/
release_DcModule(1);
}
else
else
{
DcModuleCtrl.CtrlFlag = 1;
DcModuleCtrl.NeedVolt = Volt;
DcModuleCtrl.NeedCurrt = Currt;
if(DcModuleGroup[0].status == Hold_B)
if (DcModuleGroup[0].status == Hold_B)
{
DcModuleGroup[0].status = Hold_A;
DcModuleManage_B.ValidNum -= DcModuleGroup[0].ValidNum;
DcModuleManage.ValidNum += DcModuleGroup[0].ValidNum;
GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else if(DcModuleGroup[0].status == Valid)
else if (DcModuleGroup[0].status == Valid)
{
DcModuleGroup[0].status = Hold_A;
DcModuleManage.ValidNum += DcModuleGroup[0].ValidNum;
......@@ -301,9 +309,8 @@ void DcModule(void const * parameter)
osDelay(6000);
DcModeleRelayInit();
DcModuleCanInit();
//ACContactorSet(eSwSta_On);
DcModuleAbility.MaxVolt = UserParam.DcMaxVolt;
DcModuleAbility.MinVolt = UserParam.DcMinVolt;
DcModuleAbility.MaxCurrt = UserParam.DcMaxCurrt;
......@@ -313,22 +320,20 @@ void DcModule(void const * parameter)
DcModeMsg = NULL;
osMessageQDef(DcModeMsg, 128, StructDcModuleSend);
DcModeMsg = osMessageCreate(osMessageQ(DcModeMsg), NULL);
u32 SendTick = GetSystemTick();
u32 SendTick = GetSystemTick();
while (1)
{
if ((GetSystemTick() -SendTick) > 10)
{
SendTick = GetSystemTick();
StructDcModuleSend DataSend;
if (pdTRUE == xQueueReceive(DcModeMsg, &DataSend, 0))
if ((GetSystemTick() -SendTick) > 10)
{
DcModuleSendMsg(&DataSend);
}
}
SendTick = GetSystemTick();
StructDcModuleSend DataSend;
if (pdTRUE == xQueueReceive(DcModeMsg, &DataSend, 0))
{
DcModuleSendMsg(&DataSend);
}
}
DcModuleManageProcess_SmartAllocation();
......@@ -369,19 +374,20 @@ void DcModuleSet_B(EnumSwitchStatus Set, u16 Volt, u16 Currt)
}*/
release_DcModule(2);
}
else
else
{
DcModuleCtrl_B.CtrlFlag = 1;
DcModuleCtrl_B.NeedVolt = Volt;
DcModuleCtrl_B.NeedCurrt = Currt;
if(DcModuleGroup[2].status == Hold_A)
if (DcModuleGroup[2].status == Hold_A)
{
DcModuleGroup[2].status = Hold_B;
DcModuleManage.ValidNum -= DcModuleGroup[2].ValidNum;
DcModuleManage_B.ValidNum += DcModuleGroup[2].ValidNum;
GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else if(DcModuleGroup[2].status == Valid)
else if (DcModuleGroup[2].status == Valid)
{
DcModuleGroup[2].status = Hold_B;
DcModuleManage_B.ValidNum += DcModuleGroup[2].ValidNum;
......@@ -431,7 +437,7 @@ void DcModuleSet_AB(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleCtrl_B.CtrlFlag = 0;
}
else
else
{
if (ChargeEnable_AB == 0) //单枪连冲
{
......@@ -447,7 +453,7 @@ void DcModuleSet_AB(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleCtrl.NeedCurrt = DcModuleAbility.MinCurrt * DcModuleManage.ValidNum;
DcModuleCtrl.CtrlFlag = 0;
}
else
else
{
DcModuleCtrl.NeedVolt = Volt;
DcModuleCtrl.NeedCurrt = Currt; //* (DcModuleManage.ValidNum / (DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
......@@ -468,7 +474,7 @@ void DcModuleSet_AB(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleCtrl.NeedCurrt = DcModuleAbility.MinCurrt * DcModuleManage.ValidNum;
DcModuleCtrl.CtrlFlag = 0;
}
else
else
{
DcModuleCtrl.NeedVolt = Volt;
DcModuleCtrl_B.NeedVolt = Volt;
......@@ -524,6 +530,7 @@ u16 GetDcModuleCurrtSet_AB(void)
return (DcModuleCtrl.NeedCurrt + DcModuleCtrl_B.NeedCurrt);
}
void DcModeleRelayInit()
{
GPIO_InitTypeDef GPIO_InitStructure;
......@@ -538,51 +545,57 @@ void DcModeleRelayInit()
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = RELAY_K1K2_Pin;
GPIO_Init(RELAY_K1K2_Port, &GPIO_InitStructure);
GPIO_ResetBits(RELAY_K1K2_Port,RELAY_K1K2_Pin);
GPIO_ResetBits(RELAY_K1K2_Port, RELAY_K1K2_Pin);
GPIO_InitStructure.GPIO_Pin = RELAY_K3K4_Pin;
GPIO_Init(RELAY_K3K4_Port, &GPIO_InitStructure);
GPIO_ResetBits(RELAY_K3K4_Port,RELAY_K3K4_Pin);
GPIO_ResetBits(RELAY_K3K4_Port, RELAY_K3K4_Pin);
GPIO_InitStructure.GPIO_Pin = RELAY_K5K6_Pin;
GPIO_Init(RELAY_K5K6_Port, &GPIO_InitStructure);
GPIO_ResetBits(RELAY_K5K6_Port,RELAY_K5K6_Pin);
GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
GPIO_InitStructure.GPIO_Pin = RELAY_K7K8_Pin;
GPIO_Init(RELAY_K7K8_Port, &GPIO_InitStructure);
GPIO_ResetBits(RELAY_K7K8_Port,RELAY_K7K8_Pin);
GPIO_ResetBits(RELAY_K7K8_Port, RELAY_K7K8_Pin);
GPIO_InitStructure.GPIO_Pin = RELAY_K9K10_Pin;
GPIO_Init(RELAY_K9K10_Port, &GPIO_InitStructure);
GPIO_ResetBits(RELAY_K9K10_Port,RELAY_K9K10_Pin);
GPIO_ResetBits(RELAY_K9K10_Port, RELAY_K9K10_Pin);
}
void GetNXRAcVoltMsg(u32 addr)
{
StructDcModuleSend DataSend = {0};
u16 reg = 0;
DataSend.Id = (0x00000060<<20) |(1<<19)| (addr<<11) |(0x000000f0 <<3);//0x6080780 + (addr<<11);//0x06080f80
DataSend.Len = 8;
DataSend.Data[0] = 0x10;
DataSend.Data[1] = 0x00;
DataSend.Data[2] = 0x00;
DataSend.Data[3] = 0x00;
DataSend.Data[4] = 0x00;
DataSend.Data[5] = 0x00;
DataSend.Data[6] = 0x00;
DataSend.Data[7] = 0x00;
reg = 0x000C; //A相
DataSend.Data[2] = reg>>8;
DataSend.Data[3] = reg;
StructDcModuleSend DataSend =
{
0
};
u16 reg = 0;
DataSend.Id = (0x00000060 << 20) | (1 << 19) | (addr << 11) | (0x000000f0 << 3); //0x6080780 + (addr<<11);//0x06080f80
DataSend.Len = 8;
DataSend.Data[0] = 0x10;
DataSend.Data[1] = 0x00;
DataSend.Data[2] = 0x00;
DataSend.Data[3] = 0x00;
DataSend.Data[4] = 0x00;
DataSend.Data[5] = 0x00;
DataSend.Data[6] = 0x00;
DataSend.Data[7] = 0x00;
reg = 0x000C; //A相
DataSend.Data[2] = reg >> 8;
DataSend.Data[3] = reg;
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
//osDelay(10);
}
/*
reg = 0x000D; //B相
DataSend.Data[2] = reg>>8;
......@@ -591,7 +604,7 @@ void GetNXRAcVoltMsg(u32 addr)
{
//osDelay(10);
}
reg = 0x000E; //C相
DataSend.Data[2] = reg>>8;
DataSend.Data[3] = reg;
......@@ -601,32 +614,37 @@ void GetNXRAcVoltMsg(u32 addr)
}*/
}
#include<math.h>
u16 DcVoltIn = 0;
void GetNXRAcVolt(CanRxMsg* RxMsg)
void GetNXRAcVolt(CanRxMsg * RxMsg)
{
if ((0x060f8000 == (RxMsg->ExtId & 0xFFFF8000)) \
/*&& (0x41 == RxMsg->Data[0] || 0x42 == RxMsg->Data[0]) \*/
&& (0xf0 == RxMsg->Data[1]))
if ((0x060f8000 == (RxMsg->ExtId & 0xFFFF8000)) /*&& (0x41 == RxMsg->Data[0] || 0x42 == RxMsg->Data[0]) \*/
&& (0xf0 == RxMsg->Data[1]))
{
if(0x0C == RxMsg->Data[3])
if (0x0C == RxMsg->Data[3])
{
//A
u32 val = RxMsg->Data[4];
val = val << 8;
val |= RxMsg->Data[5];
val = val << 8;
val |= RxMsg->Data[6];
val = val << 8;
val |= RxMsg->Data[7];
u8 S = (u8)(val>>31) & 0x01;
u32 M = val&0x007fffff;
u16 E = (u8)(val>>23);
float f = (1+ M * pow(2,-23)) * pow(2, (E-127));
DcVoltIn = (u16)(f/sqrt(3)*10);
u32 val = RxMsg->Data[4];
val = val << 8;
val |= RxMsg->Data[5];
val = val << 8;
val |= RxMsg->Data[6];
val = val << 8;
val |= RxMsg->Data[7];
u8 S = (u8) (val >> 31) & 0x01;
u32 M = val & 0x007fffff;
u16 E = (u8) (val >> 23);
float f = (1 + M * pow(2, -23)) *pow(2, (E - 127));
DcVoltIn = (u16) (f / sqrt(3) * 10);
DcModleVoltDetect(DcVoltIn);
}
/*else if(0x0D == RxMsg->Data[3])
{
//B
......@@ -666,36 +684,70 @@ void GetNXRAcVolt(CanRxMsg* RxMsg)
}
}
static s8 DcModleVoltChkCnt = 0;
void DcModleVoltDetect(u16 Voltage)
{
if(UserParam.VoltHigh < (u16)(Voltage))
{
if(DcModleVoltChkCnt < 5)
DcModleVoltChkCnt++;
else
DcModleVoltChkCnt = 5;
}
else if(UserParam.VoltLow > (u16)(Voltage))
{
if(DcModleVoltChkCnt > -5)
DcModleVoltChkCnt--;
else
DcModleVoltChkCnt = -5;
}
else
{
if(DcModleVoltChkCnt > 0)
DcModleVoltChkCnt--;
else if(DcModleVoltChkCnt < 0)
DcModleVoltChkCnt ++;
else
DcModleVoltChkCnt = 0;
}
if (UserParam.VoltHigh < (u16) (Voltage))
{
if (DcModleVoltChkCnt < 5)
DcModleVoltChkCnt++;
else
DcModleVoltChkCnt = 5;
}
else if (UserParam.VoltLow > (u16) (Voltage))
{
if (DcModleVoltChkCnt > -5)
DcModleVoltChkCnt--;
else
DcModleVoltChkCnt = -5;
}
else
{
if (DcModleVoltChkCnt > 0)
DcModleVoltChkCnt--;
else if (DcModleVoltChkCnt < 0)
DcModleVoltChkCnt++;
else
DcModleVoltChkCnt = 0;
}
}
s8 getDcMoudleVoltChkCnt(void)
{
return DcModleVoltChkCnt;
}
void setDcMoudleVoltChkCnt(s8 val)
{
DcModleVoltChkCnt = 0;
}
void DcModule_ZhongXing(void)
{
u32 addr_src = 0x6f;
u32 addr_dst = 0xa0;
u32 cmd = 0;
StructDcModuleSend DataSend =
{
0
};
DataSend.Id = (6 << 26) | (cmd << 16) | (addr_dst << 8) | (addr_src);
DataSend.Len = 8;
DataSend.Data[0] = 0x10;
DataSend.Data[1] = 0x00;
DataSend.Data[2] = 0x00;
DataSend.Data[3] = 0x00;
DataSend.Data[4] = 0x00;
DataSend.Data[5] = 0x00;
DataSend.Data[6] = 0x00;
DataSend.Data[7] = 0x00;
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
//osDelay(10);
}
}
......@@ -23,8 +23,8 @@ s32 GetChgVoltChgRun_B(void)
s32 GetChgCurrtChgRun_B(void)
{
if(eMeterSta_Unavail != MeterComm.Status_B)
return MeterValue_B.Current/100;
//if(eMeterSta_Unavail != MeterComm.Status_B)
// return MeterValue_B.Current/100;
if(BcsMsg_B.Valid)
return abs((s32)BcsMsg_B.ChgCurrt - 4000);
return -1;
......@@ -97,7 +97,7 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
{
if((GetSystemTick() - CCS_SendTick) > 50)
{
CCS_Send_B( MeterValue_B.Voltage, (4000- MeterValue_B.Current/100), GetChgMin(), CcsChgEnable);
CCS_Send_B( GetDcModuleVolt_B(), (4000-GetDcModuleCurrt_B()), GetChgMin_B(), CcsChgEnable);
CCS_SendTick = GetSystemTick();
}
......@@ -227,7 +227,7 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
if((eChgVer_2011 != UserParam.ChgVer) && (eChgVer_2011 != ChgVer_B))
{
Temp = GetChgCurrtChgRun_B();
if((0 != CcsChgEnable) && (Temp > (DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum)) && (Temp > GetDcModuleCurrtSet_B()))
if((Temp>0)&&(0 != CcsChgEnable) && (Temp > (DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum)) && (Temp > GetDcModuleCurrtSet_B()))
{
if((Temp - GetDcModuleCurrtSet_B()) > (GetDcModuleCurrtSet_B()*10/100))
{
......
......@@ -104,7 +104,7 @@ void ChgProChgRun(StructChargeCtrl * pChargeCtrl)
{
if ((GetSystemTick() -CCS_SendTick) > 50)
{
CCS_Send(MeterValue.Voltage, (4000 - MeterValue.Current / 100), GetChgMin(), CcsChgEnable);
CCS_Send(GetDcModuleVolt(), (4000 - GetDcModuleCurrt()), GetChgMin(), CcsChgEnable);
CCS_SendTick = GetSystemTick();
}
......@@ -244,7 +244,7 @@ void ChgProChgRun(StructChargeCtrl * pChargeCtrl)
{
Temp = GetChgCurrtChgRun();
if ((0 != CcsChgEnable) && (Temp > (DcModuleAbility.MinCurrt * DcModuleManage.ValidNum)) &&
if ((Temp > 0)&&(0 != CcsChgEnable) && (Temp > (DcModuleAbility.MinCurrt * DcModuleManage.ValidNum)) &&
(Temp > GetDcModuleCurrtSet ()))
{
if ((Temp - GetDcModuleCurrtSet()) > (GetDcModuleCurrtSet() * 10 / 100))
......
......@@ -33,6 +33,8 @@ void ChgProChgIdle(StructChargeCtrl *pChargeCtrl)
BmsCanInit();
osDelay(20);
//TCUCurChgRecd.TCUChargeEnable = 1;
while(1)
{
ChgPgnRecv(&PgnRecv);
......
......@@ -239,10 +239,10 @@ void LcdProFactoryTestTwo(StructLcdCtrl *pLcdCtrl)
//DcOutNegSet(eSwSta_On);
break;
case BtnFactoryTestTwo_DehOff:
//DehumidifierSet(eSwSta_Off);
ACContactorSet(eSwSta_Off);
break;
case BtnFactoryTestTwo_DehOn:
//DehumidifierSet(eSwSta_On);
ACContactorSet(eSwSta_On);
break;
case BtnFactoryTestTwo_eLockOff:
LockSet(eSwSta_Off);
......
......@@ -748,12 +748,17 @@ void Thd_Mult(void const *parameter)
}
/*输入电压异常检测*/
extern s8 getDcMoudleVoltChkCnt(void);
if((5 == getDcMoudleVoltChkCnt()) || (-5 == getDcMoudleVoltChkCnt()))
if(5 == getDcMoudleVoltChkCnt())
{
PillarError.Value.InVolt = 1;
PillarError_B.Value.InVolt = 1;
}
else if(0 == VoltChkCnt)
else if(-5 == getDcMoudleVoltChkCnt())
{
PillarError.Value.InVolt = 1;
PillarError_B.Value.InVolt = 1;
}
else if(0 == getDcMoudleVoltChkCnt())
{
PillarError.Value.InVolt = 0;
PillarError_B.Value.InVolt = 0;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论