Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
396d6c6b
提交
396d6c6b
authored
4月 29, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
简化超时检测
上级
b053e7c3
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
113 行增加
和
248 行删除
+113
-248
Drv_TCUComm.c
DcPillar/Src/Drivers/Drv_TCUComm.c
+15
-19
Thd_TCU.c
DcPillar/Src/Thread/Thd_TCU.c
+98
-201
Thd_TCU.h
DcPillar/Src/Thread/Thd_TCU.h
+0
-28
没有找到文件。
DcPillar/Src/Drivers/Drv_TCUComm.c
浏览文件 @
396d6c6b
...
@@ -414,7 +414,7 @@ StructTCUEM TCUChgContralTCUEM_B;
...
@@ -414,7 +414,7 @@ StructTCUEM TCUChgContralTCUEM_B;
StructTCUCControl
TCUControlInfo
=
StructTCUCControl
TCUControlInfo
=
{
{
.
ChargingServiceFlag
=
1
,
.
ChargingServiceFlag
=
2
,
.
version
=
0x0230
,
.
version
=
0x0230
,
.
ChargeNum
=
.
ChargeNum
=
{
{
...
@@ -1468,10 +1468,12 @@ void AckTCUHeartBeat(StructTCUSend * pPgnRecv)
...
@@ -1468,10 +1468,12 @@ void AckTCUHeartBeat(StructTCUSend * pPgnRecv)
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
{
{
TCUCommuStatus
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus
.
HeartBeatRecvTime
=
GetSystemTick
();
}
}
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
{
TCUCommuStatus
.
HeartBeatErrCnt_B
=
0
;
}
TCUCommuStatus
.
ConnectFlag
=
CONNECT_NORMAL
;
//tcu检测控制器心跳状态
TCUCommuStatus
.
ConnectFlag
=
CONNECT_NORMAL
;
//tcu检测控制器心跳状态
TCUCommuStatus
.
HeartBeatVaild
=
1
;
//控制器检测tcu心跳状态
TCUCommuStatus
.
HeartBeatVaild
=
1
;
//控制器检测tcu心跳状态
...
@@ -1485,7 +1487,6 @@ void TCUtimeSet(StructTCUSend * pPgnRecv)
...
@@ -1485,7 +1487,6 @@ void TCUtimeSet(StructTCUSend * pPgnRecv)
cp56time2a
*
time
=
NULL
;
cp56time2a
*
time
=
NULL
;
//TCUCommuStatus.ChgNum = pPgnRecv->Data[0];
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
{
{
TCUCommuStatus
.
ChgNum
=
1
;
TCUCommuStatus
.
ChgNum
=
1
;
...
@@ -1495,7 +1496,7 @@ void TCUtimeSet(StructTCUSend * pPgnRecv)
...
@@ -1495,7 +1496,7 @@ void TCUtimeSet(StructTCUSend * pPgnRecv)
TCUCommuStatus
.
ChgNum
=
2
;
TCUCommuStatus
.
ChgNum
=
2
;
}
}
TCUCommuStatus
.
TimeRecvTime
=
GetSystemTick
();
TCUCommuStatus
.
CommStage
=
TimeStage
;
TCUCommuStatus
.
CommStage
=
TimeStage
;
memcpy
(
time
,
&
pPgnRecv
->
Data
[
1
],
7
);
memcpy
(
time
,
&
pPgnRecv
->
Data
[
1
],
7
);
...
@@ -1562,8 +1563,7 @@ void TCUVersionCheck(StructTCUSend * pPgnRecv)
...
@@ -1562,8 +1563,7 @@ void TCUVersionCheck(StructTCUSend * pPgnRecv)
{
{
TCUCommuStatus
.
VerChkVaild
=
1
;
//版本校验成功
TCUCommuStatus
.
VerChkVaild
=
1
;
//版本校验成功
TCUCommuStatus
.
CommStage
=
VersionStage
;
TCUCommuStatus
.
CommStage
=
VersionStage
;
TCUCommuStatus
.
VersionRecvTime
=
GetSystemTick
();
TCUCommuStatus
.
VersionSentTime
=
0
;
//版本发送初始话
}
}
else
else
TCUCommuStatus
.
VerChkVaild
=
0
;
//版本校验失败
TCUCommuStatus
.
VerChkVaild
=
0
;
//版本校验失败
...
@@ -1580,7 +1580,7 @@ void TCUVersionCheckSent(void)
...
@@ -1580,7 +1580,7 @@ void TCUVersionCheckSent(void)
0
0
};
};
Data
[
0
]
=
0
;
//TCUCommuStatus.ChgNum;
Data
[
0
]
=
0
;
Data
[
1
]
=
TCUControlInfo
.
version
;
Data
[
1
]
=
TCUControlInfo
.
version
;
Data
[
2
]
=
(
u8
)
(
TCUControlInfo
.
version
>>
8
);
Data
[
2
]
=
(
u8
)
(
TCUControlInfo
.
version
>>
8
);
if
(
TCUCommuStatus
.
ChgNum
==
1
)
if
(
TCUCommuStatus
.
ChgNum
==
1
)
...
@@ -1597,7 +1597,6 @@ void TCUVersionCheckSent(void)
...
@@ -1597,7 +1597,6 @@ void TCUVersionCheckSent(void)
void
TCUParam
(
StructTCUSend
*
pPgnRecv
)
void
TCUParam
(
StructTCUSend
*
pPgnRecv
)
{
{
//TCUCommuStatus.ChgNum = pPgnRecv->Data[0];
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
{
{
TCUCommuStatus
.
ChgNum
=
1
;
TCUCommuStatus
.
ChgNum
=
1
;
...
@@ -1608,8 +1607,7 @@ void TCUParam(StructTCUSend * pPgnRecv)
...
@@ -1608,8 +1607,7 @@ void TCUParam(StructTCUSend * pPgnRecv)
}
}
TCUCommuStatus
.
CommStage
=
ChageParamStage
;
TCUCommuStatus
.
CommStage
=
ChageParamStage
;
memcpy
(
TCUControlInfo
.
ChargeNum
,
&
pPgnRecv
->
Data
[
0
],
8
);
memcpy
(
TCUControlInfo
.
ChargeNum
,
&
pPgnRecv
->
Data
[
0
],
8
);
TCUCommuStatus
.
ParamRecvTime
=
GetSystemTick
();
TCUCommuStatus
.
ParamSentTime
=
0
;
//参数发送初始化
}
}
...
@@ -1659,8 +1657,7 @@ void SerConAckAnalysis(StructTCUSend * pPgnRecv)
...
@@ -1659,8 +1657,7 @@ void SerConAckAnalysis(StructTCUSend * pPgnRecv)
TCUCommuStatus
.
ChgNum
=
2
;
TCUCommuStatus
.
ChgNum
=
2
;
}
}
TCUCommuStatus
.
CommStage
=
ServiceContralStage
;
TCUCommuStatus
.
CommStage
=
ServiceContralStage
;
TCUCommuStatus
.
ServiceContralRecvTime
=
GetSystemTick
();
TCUCommuStatus
.
ServiceContralSentTime
=
0
;
if
((
pPgnRecv
->
Data
[
1
]
!=
0x01
)
&&
(
pPgnRecv
->
Data
[
1
]
!=
0x02
))
if
((
pPgnRecv
->
Data
[
1
]
!=
0x01
)
&&
(
pPgnRecv
->
Data
[
1
]
!=
0x02
))
TCUCommuStatus
.
ServiceContralVaildValue
=
1
;
//数据合法性校验失败
TCUCommuStatus
.
ServiceContralVaildValue
=
1
;
//数据合法性校验失败
...
@@ -1725,9 +1722,9 @@ void ElectControlAnalysis(StructTCUSend * pPgnRecv)
...
@@ -1725,9 +1722,9 @@ void ElectControlAnalysis(StructTCUSend * pPgnRecv)
{
{
TCUCommuStatus
.
ChgNum
=
2
;
TCUCommuStatus
.
ChgNum
=
2
;
}
}
TCUCommuStatus
.
ElectLockRecvTime
=
GetSystemTick
();
TCUCommuStatus
.
CommStage
=
ElectLockStage
;
TCUCommuStatus
.
CommStage
=
ElectLockStage
;
TCUCommuStatus
.
ElectLockSentTime
=
0
;
TCUCommuStatus
.
ElectLockSetValue
=
pPgnRecv
->
Data
[
2
];
TCUCommuStatus
.
ElectLockSetValue
=
pPgnRecv
->
Data
[
2
];
if
(((
pPgnRecv
->
Data
[
1
]
!=
0x01
)
&&
(
pPgnRecv
->
Data
[
1
]
!=
0x02
))
||
((
pPgnRecv
->
Data
[
2
]
!=
0x01
)
&&
if
(((
pPgnRecv
->
Data
[
1
]
!=
0x01
)
&&
(
pPgnRecv
->
Data
[
1
]
!=
0x02
))
||
((
pPgnRecv
->
Data
[
2
]
!=
0x01
)
&&
...
@@ -1815,8 +1812,7 @@ void PowerControlAnalysis(StructTCUSend * pPgnRecv)
...
@@ -1815,8 +1812,7 @@ void PowerControlAnalysis(StructTCUSend * pPgnRecv)
TCUCommuStatus
.
ChgNum
=
2
;
TCUCommuStatus
.
ChgNum
=
2
;
}
}
TCUCommuStatus
.
CommStage
=
PowerControlStage
;
TCUCommuStatus
.
CommStage
=
PowerControlStage
;
TCUCommuStatus
.
PowerControlRecvTime
=
GetSystemTick
();
TCUCommuStatus
.
PowerControlSentTime
=
0
;
TCUCommuStatus
.
PowerControltype
=
pPgnRecv
->
Data
[
1
];
TCUCommuStatus
.
PowerControltype
=
pPgnRecv
->
Data
[
1
];
TCUCommuStatus
.
PowerControlParam
=
pPgnRecv
->
Data
[
2
]
+
(
u16
)
TCUCommuStatus
.
PowerControlParam
=
pPgnRecv
->
Data
[
2
]
+
(
u16
)
pPgnRecv
->
Data
[
3
]
<<
8
;
pPgnRecv
->
Data
[
3
]
<<
8
;
...
@@ -2395,11 +2391,11 @@ void TCUMeasuRecv(StructTCUSend * pPgnRecv)
...
@@ -2395,11 +2391,11 @@ void TCUMeasuRecv(StructTCUSend * pPgnRecv)
{
{
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
{
{
TCUCommuStatus
.
DCMeasu
RecvTime
=
GetSystemTick
()
;
TCUCommuStatus
.
DCMeasu
ErrCnt
=
0
;
}
}
else
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
else
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
{
{
TCUCommuStatus
.
DCMeasu
RecvTime_B
=
GetSystemTick
()
;
TCUCommuStatus
.
DCMeasu
ErrCnt_B
=
0
;
}
}
}
}
...
...
DcPillar/Src/Thread/Thd_TCU.c
浏览文件 @
396d6c6b
...
@@ -29,7 +29,7 @@ const StructTCUCommuParam TCUCommuParam =
...
@@ -29,7 +29,7 @@ const StructTCUCommuParam TCUCommuParam =
{
{
.
HeartPeriod
=
1
,
.
HeartPeriod
=
1
,
.
HeartErrCntMax
=
3
,
.
HeartErrCntMax
=
3
,
.
HeartTimeout
=
3
,
.
HeartTimeout
=
1
,
.
SignInPeriod
=
60
,
.
SignInPeriod
=
60
,
};
};
...
@@ -87,8 +87,7 @@ void TCURecvProcess(void)
...
@@ -87,8 +87,7 @@ void TCURecvProcess(void)
TCUCommuStatus
.
ChgNum
=
2
;
TCUCommuStatus
.
ChgNum
=
2
;
}
}
TCUCommuStatus
.
CommStage
=
ChgInfornQueryStage
;
TCUCommuStatus
.
CommStage
=
ChgInfornQueryStage
;
TCUCommuStatus
.
ChgInfornQueryRecvTime
=
GetSystemTick
();
TCUCommuStatus
.
ChgInfornQuerySentTime
=
0
;
break
;
break
;
case
eCmd_verificationAck
:
//车辆验证应答帧
case
eCmd_verificationAck
:
//车辆验证应答帧
...
@@ -128,42 +127,29 @@ void TCURecvProcess(void)
...
@@ -128,42 +127,29 @@ void TCURecvProcess(void)
void
InformationReporting
(
void
)
void
InformationReporting
(
void
)
{
{
if
(
TCUCommuStatus
.
DCConInforSendTime
==
0
)
//遥信
{
static
u32
DCConInforSendTime
=
0
;
InformationReporting_22_A
();
if
(
GetSystemTick
()
-
DCConInforSendTime
>=
500
)
InformationReporting_23_A
();
TCUCommuStatus
.
DCConInforSendTime
=
GetSystemTick
();
}
else
if
(
GetSystemTick
()
-
TCUCommuStatus
.
DCConInforSendTime
>=
500
)
{
{
DCConInforSendTime
=
GetSystemTick
();
InformationReporting_22_A
();
InformationReporting_22_A
();
InformationReporting_23_A
();
InformationReporting_23_A
();
TCUCommuStatus
.
DCConInforSendTime
=
GetSystemTick
();
}
if
(
TCUCommuStatus
.
DCConInforSendTime_B
==
0
)
{
InformationReporting_22_B
();
InformationReporting_22_B
();
InformationReporting_23_B
();
InformationReporting_23_B
();
TCUCommuStatus
.
DCConInforSendTime_B
=
GetSystemTick
();
}
}
else
if
(
GetSystemTick
()
-
TCUCommuStatus
.
DCConInforSendTime_B
>=
500
)
{
InformationReporting_22_B
();
InformationReporting_23_B
();
TCUCommuStatus
.
DCConInforSendTime_B
=
GetSystemTick
();
}
//遥信
}
}
void
DCMeasuring_A
(
void
)
void
DCMeasuring_A
(
void
)
{
{
if
(
0
==
TCUCommuStatus
.
DCMeasuRecvTime
)
//遥测
static
u32
DCMeasuRecvTime
=
0
;
{
if
((
GetSystemTick
()
-
TCUCommuStatus
.
DCMeasuSendTime
)
>
2
000
)
if
((
GetSystemTick
()
-
DCMeasuRecvTime
)
>
1
000
)
{
{
TCUCommuStatus
.
DCMeasuErrCnt
++
;
TCUCommuStatus
.
DCMeasuErrCnt
++
;
DCMeasuRecvTime
=
GetSystemTick
();
if
(
TCUCommuStatus
.
DCMeasuErrCnt
>
5
)
if
(
TCUCommuStatus
.
DCMeasuErrCnt
>
5
)
{
{
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
...
@@ -175,31 +161,9 @@ void DCMeasuring_A(void)
...
@@ -175,31 +161,9 @@ void DCMeasuring_A(void)
else
else
{
{
measuringReporting20_A
();
measuringReporting20_A
();
TCUCommuStatus
.
DCMeasuSendTime
=
GetSystemTick
();
TCUCommuStatus
.
DCMeasuRecvTime
=
0
;
}
}
}
else
//循环发送
{
if
((
GetSystemTick
()
-
TCUCommuStatus
.
DCMeasuSendTime
)
>
1000
)
{
measuringReporting20_A
();
TCUCommuStatus
.
DCMeasuSendTime
=
GetSystemTick
();
TCUCommuStatus
.
DCMeasuRecvTime
=
0
;
}
}
}
}
void
DCMeasuring_B
(
void
)
{
if
(
0
==
TCUCommuStatus
.
DCMeasuRecvTime_B
)
//遥测
{
if
((
GetSystemTick
()
-
TCUCommuStatus
.
DCMeasuSendTime_B
)
>
2000
)
{
TCUCommuStatus
.
DCMeasuErrCnt_B
++
;
TCUCommuStatus
.
DCMeasuErrCnt_B
++
;
if
(
TCUCommuStatus
.
DCMeasuErrCnt_B
>
5
)
if
(
TCUCommuStatus
.
DCMeasuErrCnt_B
>
5
)
{
{
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
...
@@ -211,23 +175,14 @@ void DCMeasuring_B(void)
...
@@ -211,23 +175,14 @@ void DCMeasuring_B(void)
else
else
{
{
measuringReporting20_B
();
measuringReporting20_B
();
TCUCommuStatus
.
DCMeasuSendTime_B
=
GetSystemTick
();
TCUCommuStatus
.
DCMeasuRecvTime_B
=
0
;
}
}
}
else
//循环发送
{
if
((
GetSystemTick
()
-
TCUCommuStatus
.
DCMeasuSendTime_B
)
>
1000
)
{
measuringReporting20_B
();
TCUCommuStatus
.
DCMeasuSendTime_B
=
GetSystemTick
();
TCUCommuStatus
.
DCMeasuRecvTime_B
=
0
;
}
}
}
}
}
}
void
ConEMSend
(
void
)
void
ConEMSend
(
void
)
{
{
static
u32
ConEMSendTick
=
0
;
static
u32
ConEMSendTick
=
0
;
...
@@ -309,24 +264,23 @@ void ConEMSend(void)
...
@@ -309,24 +264,23 @@ void ConEMSend(void)
void
CommutionConfigurationStage
(
void
)
void
CommutionConfigurationStage
(
void
)
{
{
static
EnumTCUCommStage
oldStage
;
static
u32
VersionRecvTime
=
0
;
static
u32
VersionSendTimes
=
0
;
if
(
TCUCommuStatus
.
CommStage
==
VersionStage
)
if
(
TCUCommuStatus
.
CommStage
==
VersionStage
)
{
{
if
(
GetSystemTick
()
-
TCUCommuStatus
.
VersionRecvTime
<=
2000
)
//2S
if
(
oldStage
!=
VersionStage
)
{
{
if
(
TCUCommuStatus
.
VersionSentTime
==
0
)
VersionRecvTime
=
0
;
{
VersionSendTimes
=
0
;
TCUVersionCheckSent
();
TCUCommuStatus
.
VersionSentTime
=
GetSystemTick
();
}
}
else
if
(
GetSystemTick
()
-
TCUCommuStatus
.
VersionSentTime
>=
500
)
if
(
GetSystemTick
()
-
VersionRecvTime
>=
500
)
{
{
TCUVersionCheckSent
();
VersionSendTimes
++
;
TCUCommuStatus
.
VersionSentTime
=
GetSystemTick
();
if
(
VersionSendTimes
>
5000
/
500
)
}
}
else
if
(
GetSystemTick
()
-
TCUCommuStatus
.
VersionRecvTime
>=
5000
)
{
{
if
(
TCUCommuStatus
.
ChgNum
==
2
)
if
(
TCUCommuStatus
.
ChgNum
==
1
)
{
{
TCUCommuStatus
.
ErrData
.
Value
.
Param
=
1
;
TCUCommuStatus
.
ErrData
.
Value
.
Param
=
1
;
TCUCommuStatus
.
ConEMSendFlag
=
1
;
TCUCommuStatus
.
ConEMSendFlag
=
1
;
...
@@ -338,225 +292,169 @@ void CommutionConfigurationStage(void)
...
@@ -338,225 +292,169 @@ void CommutionConfigurationStage(void)
}
}
TCUCommuStatus
.
CommStage
=
HeartStage
;
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
else
{
TCUVersionCheckSent
();
}
}
}
}
}
oldStage
=
TCUCommuStatus
.
CommStage
;
}
}
void
TCUPillarHeartBeat
(
void
)
void
TCUPillarHeartBeat
(
void
)
{
{
u32
SendTick
;
static
u32
SendTick
=
0
;
if
((
GetSystemTick
()
-
SendTick
)
<
1000
)
{
return
;
}
SendTick
=
GetSystemTick
();
TCUHeartBeat_A
();
TCUHeartBeat_B
();
//if (TCUCommuStatus.HeartBeatVaild != CONNECT_NORMAL)
// return;
if
(
0
==
TCUCommuStatus
.
HeartBeatRecvTime
)
//初始12s一次
{
if
((
GetSystemTick
()
-
TCUCommuStatus
.
HeartBeatSendTime
)
>
((
u32
)
TCUCommuParam
.
HeartTimeout
*
1000
))
{
TCUCommuStatus
.
HeartBeatErrCnt
++
;
TCUCommuStatus
.
HeartBeatErrCnt
++
;
if
(
TCUCommuStatus
.
HeartBeatErrCnt
>
TCUCommuParam
.
HeartErrCntMax
)
if
(
TCUCommuStatus
.
HeartBeatErrCnt
>
5
)
{
{
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
TCUCommuStatus
.
ConnectFlag
=
CONNECT_TIMEOUT
;
TCUCommuStatus
.
ConnectFlag
=
CONNECT_TIMEOUT
;
TCUCommuStatus
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus
.
HeartBeatVaild
=
0
;
//心跳失效
TCUCanInit
();
TCUCanInit
();
}
}
else
{
TCUHeartBeat_A
();
TCUCommuStatus
.
HeartBeatSendTime
=
GetSystemTick
();
TCUCommuStatus
.
HeartBeatRecvTime
=
0
;
}
}
}
else
{
//心跳周期
SendTick
=
((
u32
)
TCUCommuParam
.
HeartPeriod
*
1000
);
if
((
GetSystemTick
()
-
TCUCommuStatus
.
HeartBeatSendTime
)
>
SendTick
)
{
TCUHeartBeat_A
();
TCUCommuStatus
.
HeartBeatSendTime
=
GetSystemTick
();
TCUCommuStatus
.
HeartBeatRecvTime
=
0
;
}
}
}
}
void
TCUPillarHeartBeat_B
(
void
)
void
CommutionRunStage
(
void
)
{
{
u32
SendTick
;
static
EnumTCUCommStage
oldStage
;
//if (TCUCommuStatus.HeartBeatVaild != CONNECT_NORMAL)
// return;
/*if (0 == TCUCommuStatus.HeartBeatRecvTime_B) //初始12s一次
static
u32
sendTick
=
0
;
{
static
u8
sendTimes
=
0
;
if ((GetSystemTick() -TCUCommuStatus.HeartBeatSendTime_B) > ((u32) TCUCommuParam.HeartTimeout * 1000))
{
TCUCommuStatus.HeartBeatErrCnt_B++;
if (TCUCommuStatus.HeartBeatErrCnt_B > TCUCommuParam.HeartErrCntMax)
{
TCUCommuStatus.ConnectFlag = CONNECT_TIMEOUT;
TCUCommuStatus.HeartBeatErrCnt_B = 0;
TCUCommuStatus.HeartBeatVaild = 0; //心跳失效
TCUCanInit();
}
else
{
TCUHeartBeat_B();
TCUCommuStatus.HeartBeatSendTime = GetSystemTick();
TCUCommuStatus.HeartBeatRecvTime = 0;
}
}
}
else */
{
//心跳周期
SendTick
=
((
u32
)
TCUCommuParam
.
HeartPeriod
*
1000
);
if
((
GetSystemTick
()
-
TCUCommuStatus
.
HeartBeatSendTime_B
)
>
SendTick
)
if
(
oldStage
!=
TCUCommuStatus
.
CommStage
)
{
{
TCUHeartBeat_B
();
sendTick
=
0
;
TCUCommuStatus
.
HeartBeatSendTime_B
=
GetSystemTick
();
sendTimes
=
0
;
TCUCommuStatus
.
HeartBeatRecvTime_B
=
0
;
}
}
}
}
void
CommutionRunStage
(
void
)
{
if
((
TCUCommuStatus
.
CommStage
==
ChageParamStage
))
if
((
TCUCommuStatus
.
CommStage
==
ChageParamStage
))
{
{
if
(
GetSystemTick
()
-
TCUCommuStatus
.
ParamRecvTime
<=
2000
)
//2S参数反馈
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
if
(
TCUCommuStatus
.
ParamSentTime
==
0
)
sendTick
=
GetSystemTick
();
sendTimes
++
;
if
(
sendTimes
>
2000
/
500
)
{
{
TCUParamAck
();
TCUCommuStatus
.
CommStage
=
HeartStage
;
TCUCommuStatus
.
ParamSentTime
=
GetSystemTick
();
}
}
else
if
(
GetSystemTick
()
-
TCUCommuStatus
.
ParamSentTime
>=
500
)
else
{
{
TCUParamAck
();
TCUParamAck
();
TCUCommuStatus
.
ParamSentTime
=
GetSystemTick
();
}
}
}
else
{
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
}
}
}
if
((
TCUCommuStatus
.
CommStage
==
TimeStage
))
if
((
TCUCommuStatus
.
CommStage
==
TimeStage
))
{
{
if
(
GetSystemTick
()
-
TCUCommuStatus
.
TimeRecvTime
<=
2000
)
//2S对时
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
if
(
TCUCommuStatus
.
TimeSentTime
==
0
)
sendTimes
++
;
sendTick
=
GetSystemTick
();
if
(
sendTimes
>
2000
/
500
)
{
{
TCUtimeSetAck
();
TCUCommuStatus
.
CommStage
=
HeartStage
;
TCUCommuStatus
.
TimeSentTime
=
GetSystemTick
();
}
}
else
if
(
GetSystemTick
()
-
TCUCommuStatus
.
TimeSentTime
>=
500
)
else
{
{
TCUtimeSetAck
();
TCUtimeSetAck
();
TCUCommuStatus
.
TimeSentTime
=
GetSystemTick
();
}
}
}
}
else
{
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
}
}
if
((
TCUCommuStatus
.
CommStage
==
ServiceContralStage
))
if
((
TCUCommuStatus
.
CommStage
==
ServiceContralStage
))
{
{
if
(
GetSystemTick
()
-
TCUCommuStatus
.
ServiceContralRecvTime
<=
2000
)
//2S
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
if
(
TCUCommuStatus
.
ServiceContralSentTime
==
0
)
sendTimes
++
;
sendTick
=
GetSystemTick
();
if
(
sendTimes
>
2000
/
500
)
{
{
SerConAck
();
TCUCommuStatus
.
CommStage
=
HeartStage
;
TCUCommuStatus
.
ServiceContralSentTime
=
GetSystemTick
();
}
}
else
if
(
GetSystemTick
()
-
TCUCommuStatus
.
ServiceContralSentTime
>=
500
)
else
{
{
SerConAck
();
SerConAck
();
TCUCommuStatus
.
ServiceContralSentTime
=
GetSystemTick
();
}
}
}
else
{
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
}
}
}
if
((
TCUCommuStatus
.
CommStage
==
ElectLockStage
))
if
((
TCUCommuStatus
.
CommStage
==
ElectLockStage
))
{
{
if
(
GetSystemTick
()
-
TCUCommuStatus
.
ElectLockRecvTime
<=
2000
)
//2S
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
if
(
TCUCommuStatus
.
ElectLockSentTime
==
0
)
sendTimes
++
;
sendTick
=
GetSystemTick
();
if
(
sendTimes
>
2000
/
500
)
{
{
ElectControlAck
();
TCUCommuStatus
.
CommStage
=
HeartStage
;
TCUCommuStatus
.
ElectLockSentTime
=
GetSystemTick
();
}
}
else
if
(
GetSystemTick
()
-
TCUCommuStatus
.
ElectLockSentTime
>=
500
)
else
{
{
ElectControlAck
();
ElectControlAck
();
TCUCommuStatus
.
ElectLockSentTime
=
GetSystemTick
();
}
}
}
}
else
{
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
}
}
if
((
TCUCommuStatus
.
CommStage
==
PowerControlStage
))
if
((
TCUCommuStatus
.
CommStage
==
PowerControlStage
))
{
{
if
(
GetSystemTick
()
-
TCUCommuStatus
.
ElectLockRecvTime
<=
2000
)
//2S
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
if
(
TCUCommuStatus
.
PowerControlSentTime
==
0
)
sendTimes
++
;
sendTick
=
GetSystemTick
();
if
(
sendTimes
>
2000
/
500
)
{
{
PowerControlAck
();
TCUCommuStatus
.
CommStage
=
HeartStage
;
TCUCommuStatus
.
PowerControlSentTime
=
GetSystemTick
();
}
}
else
if
(
GetSystemTick
()
-
TCUCommuStatus
.
PowerControlSentTime
>=
500
)
else
{
{
PowerControlAck
();
PowerControlAck
();
TCUCommuStatus
.
PowerControlSentTime
=
GetSystemTick
();
}
}
}
}
else
{
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
}
}
if
((
TCUCommuStatus
.
CommStage
==
ChgInfornQueryStage
))
if
((
TCUCommuStatus
.
CommStage
==
ChgInfornQueryStage
))
{
{
if
(
GetSystemTick
()
-
TCUCommuStatus
.
ChgInfornQueryRecvTime
<=
2000
)
//2S
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
if
(
TCUCommuStatus
.
ChgInfornQuerySentTime
==
0
)
sendTimes
++
;
sendTick
=
GetSystemTick
();
if
(
sendTimes
>
2000
/
500
)
{
{
ChgInfornQueryAck
();
TCUCommuStatus
.
CommStage
=
HeartStage
;
TCUCommuStatus
.
ChgInfornQuerySentTime
=
GetSystemTick
();
}
}
else
if
(
GetSystemTick
()
-
TCUCommuStatus
.
ChgInfornQuerySentTime
>=
500
)
else
{
{
ChgInfornQueryAck
();
ChgInfornQueryAck
();
TCUCommuStatus
.
ChgInfornQuerySentTime
=
GetSystemTick
();
}
}
}
}
else
{
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
}
}
oldStage
=
TCUCommuStatus
.
CommStage
;
}
}
...
@@ -828,8 +726,8 @@ void SendStatus(void)
...
@@ -828,8 +726,8 @@ void SendStatus(void)
ChgStutusSendTick
=
GetSystemTick
();
ChgStutusSendTick
=
GetSystemTick
();
data
[
0
]
=
0
;
data
[
0
]
=
0
;
data
[
1
]
=
ChargeCtrl
.
CurProcess
;
//待完善 04/29
data
[
1
]
=
ChargeCtrl
.
CurProcess
;
//待完善 04/29
TCUSinglePackSendMsg
(
data
,
6
,
eCmd_sta
rtComp
,
4
,
ChargerCont1939Addr
);
TCUSinglePackSendMsg
(
data
,
6
,
eCmd_sta
tus
,
4
,
ChargerCont1939Addr
);
TCUSinglePackSendMsg
(
data
,
6
,
eCmd_sta
rtComp
,
4
,
ChargerCont1939Addr_B
);
TCUSinglePackSendMsg
(
data
,
6
,
eCmd_sta
tus
,
4
,
ChargerCont1939Addr_B
);
}
}
}
}
...
@@ -847,14 +745,13 @@ void TCUWorkProcess(void)
...
@@ -847,14 +745,13 @@ void TCUWorkProcess(void)
InformationReporting
();
//遥信
InformationReporting
();
//遥信
DCMeasuring_A
();
//遥测
DCMeasuring_A
();
//遥测
DCMeasuring_B
();
//遥测
}
}
void
TCULinkProcess
(
void
)
//心跳帧处理
void
TCULinkProcess
(
void
)
//心跳帧处理
{
{
TCUPillarHeartBeat
();
//心跳处理
TCUPillarHeartBeat
();
//心跳处理
TCUPillarHeartBeat_B
();
//心跳处理
CommutionConfigurationStage
();
//配置阶段
CommutionConfigurationStage
();
//配置阶段
CommutionRunStage
();
//运行阶段
CommutionRunStage
();
//运行阶段
ConEMSend
();
//ab超时发送逻辑
ConEMSend
();
//ab超时发送逻辑
...
...
DcPillar/Src/Thread/Thd_TCU.h
浏览文件 @
396d6c6b
...
@@ -44,36 +44,20 @@ typedef struct
...
@@ -44,36 +44,20 @@ typedef struct
{
{
EnumTCUCommStage
CommStage
;
EnumTCUCommStage
CommStage
;
u8
ChgNum
;
u8
ChgNum
;
u32
VersionRecvTime
;
u32
VersionSentTime
;
u8
VerChkVaild
;
u8
VerChkVaild
;
u32
ParamRecvTime
;
u32
ParamSentTime
;
u8
ParamVaild
;
u8
ParamVaild
;
u32
TimeRecvTime
;
u32
TimeSentTime
;
u32
ServiceContralRecvTime
;
u32
ServiceContralSentTime
;
u8
ChargingServiceSetValue
;
//保留下发设置值
u8
ChargingServiceSetValue
;
//保留下发设置值
u8
ServiceContralVaildValue
;
//服务控制下发失败原因 0成功
u8
ServiceContralVaildValue
;
//服务控制下发失败原因 0成功
u32
ElectLockRecvTime
;
u32
ElectLockSentTime
;
u8
ElectLockSetValue
;
//保留下发设置值
u8
ElectLockSetValue
;
//保留下发设置值
u8
ElectLockVaildValue
;
//电子锁控制下发失败原因 0成功
u8
ElectLockVaildValue
;
//电子锁控制下发失败原因 0成功
u32
PowerControlRecvTime
;
u32
PowerControlSentTime
;
u8
PowerControltype
;
u8
PowerControltype
;
u16
PowerControlParam
;
u16
PowerControlParam
;
u8
PowerControlVaildValue
;
//功率调节失败原因
u8
PowerControlVaildValue
;
//功率调节失败原因
u32
ChgInfornQueryRecvTime
;
u32
ChgInfornQuerySentTime
;
u8
ConnectFlag
;
//0 未连接 其他已连接
u8
ConnectFlag
;
//0 未连接 其他已连接
u8
HeartBeatVaild
;
//接收心跳有效标志位
u8
HeartBeatVaild
;
//接收心跳有效标志位
u8
HeartBeatErrCnt
;
u8
HeartBeatErrCnt
;
...
@@ -81,18 +65,6 @@ typedef struct
...
@@ -81,18 +65,6 @@ typedef struct
u16
HeartBeatNumCnt
;
u16
HeartBeatNumCnt
;
u16
HeartBeatLoseCnt
;
u16
HeartBeatLoseCnt
;
u32
HeartBeatSendTime
;
u32
HeartBeatSendTime_B
;
u32
HeartBeatRecvTime
;
u32
HeartBeatRecvTime_B
;
u32
DCConInforSendTime
;
u32
DCConInforSendTime_B
;
u32
DCMeasuSendTime
;
u32
DCMeasuSendTime_B
;
u32
DCMeasuRecvTime
;
u32
DCMeasuRecvTime_B
;
u32
DCMeasuErrCnt
;
u32
DCMeasuErrCnt
;
u32
DCMeasuErrCnt_B
;
u32
DCMeasuErrCnt_B
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论