Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
da0c4803
提交
da0c4803
authored
6月 07, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复tcu通信的一些问题;绝缘检测待解决
上级
bf30d83f
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
346 行增加
和
295 行删除
+346
-295
Drv_TCUComm.c
DcPillar/Src/Drivers/Drv_TCUComm.c
+6
-4
ChgPro_ImdCheck.c
DcPillar/Src/Thread/Charge/ChgPro_ImdCheck.c
+1
-1
Thd_Mult.c
DcPillar/Src/Thread/Thd_Mult.c
+43
-53
Thd_TCU.c
DcPillar/Src/Thread/Thd_TCU.c
+285
-227
Thd_TCU.h
DcPillar/Src/Thread/Thd_TCU.h
+11
-10
没有找到文件。
DcPillar/Src/Drivers/Drv_TCUComm.c
浏览文件 @
da0c4803
...
@@ -1804,14 +1804,14 @@ void AckTCUHeartBeat(StructTCUSend * pPgnRecv)
...
@@ -1804,14 +1804,14 @@ void AckTCUHeartBeat(StructTCUSend * pPgnRecv)
{
{
TCUCommuStatus
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus
.
ConnectFlag
=
CONNECT_NORMAL
;
//tcu检测控制器心跳状态
TCUCommuStatus
.
ConnectFlag
=
CONNECT_NORMAL
;
//tcu检测控制器心跳状态
TCUCommuStatus
.
HeartBeatVaild
=
1
;
//控制器检测tcu心跳状态
//
TCUCommuStatus.HeartBeatVaild = 1; //控制器检测tcu心跳状态
}
}
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
{
{
TCUCommuStatus_B
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus_B
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus_B
.
ConnectFlag
=
CONNECT_NORMAL
;
//tcu检测控制器心跳状态
TCUCommuStatus_B
.
ConnectFlag
=
CONNECT_NORMAL
;
//tcu检测控制器心跳状态
TCUCommuStatus_B
.
HeartBeatVaild
=
1
;
//控制器检测tcu心跳状态
//
TCUCommuStatus_B.HeartBeatVaild = 1; //控制器检测tcu心跳状态
}
}
}
}
...
@@ -1945,11 +1945,13 @@ void TCUParam(StructTCUSend * pPgnRecv)
...
@@ -1945,11 +1945,13 @@ void TCUParam(StructTCUSend * pPgnRecv)
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
{
{
TCUCommuStatus
.
CommStage
=
ChageParamStage
;
TCUCommuStatus
.
CommStage
=
ChageParamStage
;
TCUCommuStatus
.
ParamVaild
=
1
;
memcpy
(
TCUControlInfo
.
ChargeNum
,
&
pPgnRecv
->
Data
[
0
],
8
);
memcpy
(
TCUControlInfo
.
ChargeNum
,
&
pPgnRecv
->
Data
[
0
],
8
);
}
}
else
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
else
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
{
{
TCUCommuStatus_B
.
CommStage
=
ChageParamStage
;
TCUCommuStatus_B
.
CommStage
=
ChageParamStage
;
TCUCommuStatus_B
.
ParamVaild
=
1
;
memcpy
(
TCUControlInfo
.
ChargeNum
,
&
pPgnRecv
->
Data
[
0
],
8
);
memcpy
(
TCUControlInfo
.
ChargeNum
,
&
pPgnRecv
->
Data
[
0
],
8
);
}
}
}
}
...
@@ -2016,7 +2018,7 @@ void SerConAckAnalysis(StructTCUSend * pPgnRecv)
...
@@ -2016,7 +2018,7 @@ void SerConAckAnalysis(StructTCUSend * pPgnRecv)
if
((
pPgnRecv
->
Data
[
1
]
!=
0x01
)
&&
(
pPgnRecv
->
Data
[
1
]
!=
0x02
))
if
((
pPgnRecv
->
Data
[
1
]
!=
0x01
)
&&
(
pPgnRecv
->
Data
[
1
]
!=
0x02
))
TCUCommuStatus
.
ServiceContralVaildValue
=
1
;
//数据合法性校验失败
TCUCommuStatus
.
ServiceContralVaildValue
=
1
;
//数据合法性校验失败
else
if
((
TCUCommuStatus
.
ConnectFlag
==
CONNECT_TIMEOUT
)
||
(
TCUCommuStatus
.
HeartBeatVaild
)
)
else
if
((
TCUCommuStatus
.
ConnectFlag
==
CONNECT_TIMEOUT
)
/* || (TCUCommuStatus.HeartBeatVaild)*/
)
TCUCommuStatus
.
ServiceContralVaildValue
=
2
;
//通讯超时
TCUCommuStatus
.
ServiceContralVaildValue
=
2
;
//通讯超时
else
if
(
TCUCommuStatus
.
VerChkVaild
==
0
)
else
if
(
TCUCommuStatus
.
VerChkVaild
==
0
)
TCUCommuStatus
.
ServiceContralVaildValue
=
3
;
//版本校验未完成
TCUCommuStatus
.
ServiceContralVaildValue
=
3
;
//版本校验未完成
...
@@ -2038,7 +2040,7 @@ void SerConAckAnalysis(StructTCUSend * pPgnRecv)
...
@@ -2038,7 +2040,7 @@ void SerConAckAnalysis(StructTCUSend * pPgnRecv)
if
((
pPgnRecv
->
Data
[
1
]
!=
0x01
)
&&
(
pPgnRecv
->
Data
[
1
]
!=
0x02
))
if
((
pPgnRecv
->
Data
[
1
]
!=
0x01
)
&&
(
pPgnRecv
->
Data
[
1
]
!=
0x02
))
TCUCommuStatus_B
.
ServiceContralVaildValue
=
1
;
//数据合法性校验失败
TCUCommuStatus_B
.
ServiceContralVaildValue
=
1
;
//数据合法性校验失败
else
if
((
TCUCommuStatus_B
.
ConnectFlag
==
CONNECT_TIMEOUT
)
||
(
TCUCommuStatus_B
.
HeartBeatVaild
)
)
else
if
((
TCUCommuStatus_B
.
ConnectFlag
==
CONNECT_TIMEOUT
)
/* || (TCUCommuStatus_B.HeartBeatVaild)*/
)
TCUCommuStatus_B
.
ServiceContralVaildValue
=
2
;
//通讯超时
TCUCommuStatus_B
.
ServiceContralVaildValue
=
2
;
//通讯超时
else
if
(
TCUCommuStatus_B
.
VerChkVaild
==
0
)
else
if
(
TCUCommuStatus_B
.
VerChkVaild
==
0
)
TCUCommuStatus_B
.
ServiceContralVaildValue
=
3
;
//版本校验未完成
TCUCommuStatus_B
.
ServiceContralVaildValue
=
3
;
//版本校验未完成
...
...
DcPillar/Src/Thread/Charge/ChgPro_ImdCheck.c
浏览文件 @
da0c4803
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
#include "Drv_ImdJyc.h"
#include "Drv_ImdJyc.h"
#define ImdCheckFreq (200)//ms
#define ImdCheckFreq (200)//ms
#define DcModOutTimeOut (
22
000)//ms
#define DcModOutTimeOut (
11
000)//ms
#define VoltWaitTimeOut (1000)//ms
#define VoltWaitTimeOut (1000)//ms
#define ChkWaitTimeOut (12000)//(8500)//ms
#define ChkWaitTimeOut (12000)//(8500)//ms
#define ChkTimeOut (1500)//ms
#define ChkTimeOut (1500)//ms
...
...
DcPillar/Src/Thread/Thd_Mult.c
浏览文件 @
da0c4803
...
@@ -1010,67 +1010,57 @@ void Thd_Mult(void const *parameter)
...
@@ -1010,67 +1010,57 @@ void Thd_Mult(void const *parameter)
}
}
#endif
#endif
/*绝缘检测通讯故障判断*/
/*绝缘检测通讯故障判断*/
if
((
GetSystemTick
()
-
ImdCheckTcik
)
>=
6
00
)
if
((
GetSystemTick
()
-
ImdCheckTcik
)
>=
5
00
)
{
{
//if(eChgVer_2011 != UserParam.ChgVer
ImdCheckTcik
=
GetSystemTick
();
// || eLcdPro_FactoryTest == LcdCtrl.CurScreen
static
u8
flag
=
0
;
// || eLcdPro_B_FactoryTest == LcdCtrl.CurScreen
if
(
flag
==
0
)
// )
{
{
flag
=
1
;
if
(
0
==
ImdRead
(
&
ImdValue
))
if
(
0
==
ImdRead
(
&
ImdValue
))
{
{
if
(
ImdErrorCnt
>
2
)
if
(
ImdErrorCnt
>
2
)
ImdErrorCnt
-=
2
;
ImdErrorCnt
-=
2
;
else
if
(
ImdErrorCnt
>
0
)
else
if
(
ImdErrorCnt
>
0
)
ImdErrorCnt
--
;
ImdErrorCnt
--
;
ImdValue
.
Vaild
=
1
;
}
else
{
if
(
ImdErrorCnt
<
5
)
ImdErrorCnt
++
;
else
{
ImdErrorCnt
=
5
;
ImdValue
.
Vaild
=
0
;
}
}
}
ImdValue
.
Vaild
=
1
;
//else
}
//{
else
// ImdErrorCnt = 0;
{
// ImdErrorCnt_B = 0;
if
(
ImdErrorCnt
<
5
)
// ImdValue.Vaild = 0;
ImdErrorCnt
++
;
// ImdValue_B.Vaild = 0;
else
//}
{
ImdErrorCnt
=
5
;
ImdCheckTcik
=
GetSystemTick
();
ImdValue
.
Vaild
=
0
;
}
}
if
((
GetSystemTick
()
-
ImdCheckTcik_B
)
>=
550
)
}
{
if
(
0
==
ImdRead_B
(
&
ImdValue_B
))
{
if
(
ImdErrorCnt_B
>
2
)
ImdErrorCnt_B
-=
2
;
else
if
(
ImdErrorCnt_B
>
0
)
ImdErrorCnt_B
--
;
ImdValue_B
.
Vaild
=
1
;
}
}
else
else
{
{
if
(
ImdErrorCnt_B
<
5
)
flag
=
0
;
ImdErrorCnt_B
++
;
if
(
0
==
ImdRead_B
(
&
ImdValue_B
))
{
if
(
ImdErrorCnt_B
>
2
)
ImdErrorCnt_B
-=
2
;
else
if
(
ImdErrorCnt_B
>
0
)
ImdErrorCnt_B
--
;
ImdValue_B
.
Vaild
=
1
;
}
else
else
{
{
ImdErrorCnt_B
=
5
;
if
(
ImdErrorCnt_B
<
5
)
ImdValue_B
.
Vaild
=
0
;
ImdErrorCnt_B
++
;
else
{
ImdErrorCnt_B
=
5
;
ImdValue_B
.
Vaild
=
0
;
}
}
}
}
}
ImdCheckTcik_B
=
GetSystemTick
();
}
}
if
(
0
==
ImdErrorCnt
)
if
(
0
==
ImdErrorCnt
)
PillarError
.
Value
.
ImdDev
=
0
;
PillarError
.
Value
.
ImdDev
=
0
;
else
if
((
5
==
ImdErrorCnt
)
&&
((
TCUCurChgRecd_B
.
TCUChargeEnable
==
0
)
&&
(
TCUCurChgRecd
.
TCUChargeEnable
==
0
)
&&
(
eChgVer_2011
!=
UserParam
.
ChgVer
)))
else
if
((
5
==
ImdErrorCnt
)
&&
((
TCUCurChgRecd_B
.
TCUChargeEnable
==
0
)
&&
(
TCUCurChgRecd
.
TCUChargeEnable
==
0
)
&&
(
eChgVer_2011
!=
UserParam
.
ChgVer
)))
...
@@ -1085,7 +1075,7 @@ void Thd_Mult(void const *parameter)
...
@@ -1085,7 +1075,7 @@ void Thd_Mult(void const *parameter)
{
{
OnesCheckTcik
=
GetSystemTick
();
OnesCheckTcik
=
GetSystemTick
();
extern
void
OnesCheckTcikHandle
(
void
);
extern
void
OnesCheckTcikHandle
(
void
);
OnesCheckTcikHandle
();
//
OnesCheckTcikHandle();
}
}
osDelay
(
25
);
osDelay
(
25
);
}
}
...
...
DcPillar/Src/Thread/Thd_TCU.c
浏览文件 @
da0c4803
...
@@ -17,7 +17,7 @@ extern void TCUCanInit(void);
...
@@ -17,7 +17,7 @@ extern void TCUCanInit(void);
StructTCUCommuStatus
TCUCommuStatus
=
StructTCUCommuStatus
TCUCommuStatus
=
{
{
.
CommStage
=
HeartStage
,
.
CommStage
=
TCUConfig
,
.
ParamVaild
=
0
,
.
ParamVaild
=
0
,
0
,
0
,
0
0
...
@@ -25,7 +25,7 @@ StructTCUCommuStatus TCUCommuStatus =
...
@@ -25,7 +25,7 @@ StructTCUCommuStatus TCUCommuStatus =
StructTCUCommuStatus
TCUCommuStatus_B
=
StructTCUCommuStatus
TCUCommuStatus_B
=
{
{
.
CommStage
=
HeartStage
,
.
CommStage
=
TCUConfig
,
.
ParamVaild
=
0
,
.
ParamVaild
=
0
,
0
,
0
,
0
0
...
@@ -85,10 +85,12 @@ void TCURecvProcess(void)
...
@@ -85,10 +85,12 @@ void TCURecvProcess(void)
case
eCmd_Query
:
// 充电桩配置信息查询帧
case
eCmd_Query
:
// 充电桩配置信息查询帧
if
(
pPgnRecv
.
DA
==
ChargerCont1939Addr
)
if
(
pPgnRecv
.
DA
==
ChargerCont1939Addr
)
{
{
if
(
TCUCommuStatus
.
CommStage
==
HeartStage
)
TCUCommuStatus
.
CommStage
=
ChgInfornQueryStage
;
TCUCommuStatus
.
CommStage
=
ChgInfornQueryStage
;
}
}
else
if
(
pPgnRecv
.
DA
==
ChargerCont1939Addr_B
)
else
if
(
pPgnRecv
.
DA
==
ChargerCont1939Addr_B
)
{
{
if
(
TCUCommuStatus_B
.
CommStage
==
HeartStage
)
TCUCommuStatus_B
.
CommStage
=
ChgInfornQueryStage
;
TCUCommuStatus_B
.
CommStage
=
ChgInfornQueryStage
;
}
}
...
@@ -153,6 +155,16 @@ void InformationReporting(void)
...
@@ -153,6 +155,16 @@ void InformationReporting(void)
InformationReporting_22_A
();
InformationReporting_22_A
();
InformationReporting_23_A
();
InformationReporting_23_A
();
}
}
}
}
void
InformationReporting_B
(
void
)
{
//遥信
static
u32
DCConInforSendTime
=
0
;
if
(
GetSystemTick
()
-
DCConInforSendTime
>=
500UL
)
{
DCConInforSendTime
=
GetSystemTick
();
if
(
TCUCommuStatus_B
.
VerChkVaild
)
//版本检验未完成不发送
if
(
TCUCommuStatus_B
.
VerChkVaild
)
//版本检验未完成不发送
{
{
...
@@ -163,8 +175,7 @@ void InformationReporting(void)
...
@@ -163,8 +175,7 @@ void InformationReporting(void)
}
}
}
}
void
DCMeasuring
(
void
)
void
DCMeasuring_A
(
void
)
{
{
static
u32
DCMeasuRecvTime
=
0
;
static
u32
DCMeasuRecvTime
=
0
;
...
@@ -177,11 +188,8 @@ void DCMeasuring_A(void)
...
@@ -177,11 +188,8 @@ void DCMeasuring_A(void)
TCUCommuStatus
.
DCMeasuErrCnt
++
;
TCUCommuStatus
.
DCMeasuErrCnt
++
;
if
(
TCUCommuStatus
.
DCMeasuErrCnt
>
5
)
if
(
TCUCommuStatus
.
DCMeasuErrCnt
>
5
)
{
{
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
TCUCommuStatus
.
ErrData
.
Value
.
DCTCUMeasu
=
1
;
TCUCommuStatus
.
ConnectFlag
=
CONNECT_TIMEOUT
;
TCUCommuStatus
.
ConEMSendFlag
=
1
;
TCUCommuStatus
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus
.
HeartBeatVaild
=
0
;
//心跳失效
TCUCanInit
();
//can通讯接口初始化
}
}
else
else
{
{
...
@@ -189,16 +197,25 @@ void DCMeasuring_A(void)
...
@@ -189,16 +197,25 @@ void DCMeasuring_A(void)
}
}
}
}
}
}
void
DCMeasuring_B
(
void
)
{
static
u32
DCMeasuRecvTime
=
0
;
if
((
GetSystemTick
()
-
DCMeasuRecvTime
)
>
1000
)
{
DCMeasuRecvTime
=
GetSystemTick
();
if
(
TCUCommuStatus_B
.
VerChkVaild
)
//版本检验未完成不发送
if
(
TCUCommuStatus_B
.
VerChkVaild
)
//版本检验未完成不发送
{
{
TCUCommuStatus_B
.
DCMeasuErrCnt
++
;
TCUCommuStatus_B
.
DCMeasuErrCnt
++
;
if
(
TCUCommuStatus_B
.
DCMeasuErrCnt
>
5
)
if
(
TCUCommuStatus_B
.
DCMeasuErrCnt
>
5
)
{
{
memset
(
&
TCUCommuStatus_B
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
TCUCommuStatus_B
.
ErrData
.
Value
.
DCTCUMeasu
=
1
;
TCUCommuStatus_B
.
ConnectFlag
=
CONNECT_TIMEOUT
;
TCUCommuStatus_B
.
ConEMSendFlag
=
1
;
TCUCommuStatus_B
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus_B
.
HeartBeatVaild
=
0
;
//心跳失效
//TCUCanInit();
}
}
else
else
{
{
...
@@ -212,7 +229,6 @@ void DCMeasuring_A(void)
...
@@ -212,7 +229,6 @@ void DCMeasuring_A(void)
void
ConEMSend
(
void
)
void
ConEMSend
(
void
)
{
{
static
u32
ConEMSendTick
=
0
;
static
u32
ConEMSendTick
=
0
;
...
@@ -222,73 +238,49 @@ void ConEMSend(void)
...
@@ -222,73 +238,49 @@ void ConEMSend(void)
if
(
TCUCommuStatus
.
ConEMSendFlag
==
1
)
if
(
TCUCommuStatus
.
ConEMSendFlag
==
1
)
{
{
TcuEMMsg
(
TCUCommuStatus
.
ErrData
.
Mult
);
//帧超时
ConEMSendTick
=
GetSystemTick
();
TCUCommuStatus
.
ConEMSendFlag
=
2
;
}
else
if
(
TCUCommuStatus
.
ConEMSendFlag
==
2
)
{
if
(
GetSystemTick
()
-
ConEMSendTick
>=
250
)
if
(
GetSystemTick
()
-
ConEMSendTick
>=
250
)
{
{
ConEMSendTick
=
GetSystemTick
();
ConEMSendTick
=
GetSystemTick
();
ConEMSendEcount
++
;
if
(
ConEMSendEcount
<
20
)
if
(
ConEMSendEcount
<
20
)
{
{
ConEMSendEcount
++
;
TcuEMMsg
(
TCUCommuStatus
.
ErrData
.
Mult
);
TcuEMMsg
(
TCUCommuStatus
.
ErrData
.
Mult
);
}
}
else
else
{
{
ConEMSendTick
=
0
;
ConEMSendTick
=
0
;
TCUCommuStatus
.
ConEMSendFlag
=
0
;
if
(
TCUCurChgRecd
.
TCUChargeEnable
==
0
)
TCUCommuStatus
.
ErrData
.
Mult
=
0
;
ConEMSendEcount
=
0
;
ConEMSendEcount
=
0
;
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
}
}
}
}
else
{
ConEMSendTick
=
0
;
TCUCommuStatus
.
ConEMSendFlag
=
0
;
TCUCommuStatus
.
ErrData
.
Mult
=
0
;
ConEMSendEcount
=
0
;
}
}
}
else
if
(
TCUCommuStatus_B
.
ConEMSendFlag
==
1
)
{
{
TcuEMMsg_B
(
TCUCommuStatus_B
.
ErrData
.
Mult
);
//帧超时
ConEMSendTick
=
0
;
ConEMSendTick_B
=
GetSystemTick
();
ConEMSendEcount
=
0
;
TCUCommuStatus_B
.
ConEMSendFlag
=
2
;
}
}
else
if
(
TCUCommuStatus_B
.
ConEMSendFlag
==
2
)
if
(
TCUCommuStatus_B
.
ConEMSendFlag
==
1
)
{
{
if
(
GetSystemTick
()
-
ConEMSendTick_B
>=
250
)
if
(
GetSystemTick
()
-
ConEMSendTick_B
>=
250
)
{
{
ConEMSendTick_B
=
GetSystemTick
();
ConEMSendTick_B
=
GetSystemTick
();
ConEMSendEcount_B
++
;
if
(
ConEMSendEcount_B
<
20
)
if
(
ConEMSendEcount_B
<
20
)
{
{
ConEMSendEcount_B
++
;
TcuEMMsg_B
(
TCUCommuStatus_B
.
ErrData
.
Mult
);
TcuEMMsg_B
(
TCUCommuStatus_B
.
ErrData
.
Mult
);
}
}
else
else
{
{
ConEMSendTick_B
=
0
;
ConEMSendTick_B
=
0
;
TCUCommuStatus_B
.
ConEMSendFlag
=
0
;
TCUCommuStatus_B
.
ErrData
.
Mult
=
0
;
ConEMSendEcount_B
=
0
;
ConEMSendEcount_B
=
0
;
memset
(
&
TCUCommuStatus_B
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
}
}
}
}
}
}
else
else
{
{
ConEMSendTick_B
=
0
;
ConEMSendTick_B
=
0
;
TCUCommuStatus_B
.
ConEMSendFlag
=
0
;
if
(
TCUCurChgRecd_B
.
TCUChargeEnable
==
0
)
TCUCommuStatus_B
.
ErrData
.
Mult
=
0
;
//主动停机结束帧发送完成或主动TCU停机时置0
ConEMSendEcount_B
=
0
;
ConEMSendEcount_B
=
0
;
}
}
}
}
...
@@ -297,30 +289,29 @@ void ConEMSend(void)
...
@@ -297,30 +289,29 @@ void ConEMSend(void)
void
CommutionConfigurationStage
(
void
)
void
CommutionConfigurationStage
(
void
)
{
{
static
EnumTCUCommStage
oldStage
;
static
EnumTCUCommStage
oldStage
;
static
u32
VersionRecvTime
=
0
;
static
u32
sendTick
=
0
;
static
u32
VersionSendTimes
=
0
;
static
u32
ParamTimeOutTick
=
0
;
static
EnumTCUCommStage
oldStage_B
;
static
u8
sendTimes
=
0
;
static
u32
VersionRecvTime_B
=
0
;
static
u32
VersionSendTimes_B
=
0
;
if
(
TCUCommuStatus
.
CommStage
==
Version
Stage
)
if
(
oldStage
!=
TCUCommuStatus
.
Comm
Stage
)
{
{
if
(
oldStage
!=
VersionStage
)
sendTick
=
0
;
{
sendTimes
=
0
;
VersionRecvTime
=
0
;
}
VersionSendTimes
=
0
;
}
if
(
GetSystemTick
()
-
VersionRecvTime
>=
500
)
if
(
TCUCommuStatus
.
CommStage
==
VersionStage
)
{
if
(
ParamTimeOutTick
==
0
)
ParamTimeOutTick
=
GetSystemTick
();
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
VersionRecvTime
=
GetSystemTick
();
sendTick
=
GetSystemTick
();
VersionS
endTimes
++
;
s
endTimes
++
;
if
(
VersionSendTimes
>
5
000
/
500
)
if
(
sendTimes
>
2
000
/
500
)
{
{
///TCUCommuStatus.CommStage = TCUConfig;
TCUCommuStatus
.
ErrData
.
Value
.
Param
=
1
;
//TCUCommuStatus.VerChkVaild = 1;
TCUCommuStatus
.
ConEMSendFlag
=
1
;
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
}
else
else
...
@@ -332,24 +323,66 @@ void CommutionConfigurationStage(void)
...
@@ -332,24 +323,66 @@ void CommutionConfigurationStage(void)
}
}
if
(
TCUCommuStatus_B
.
CommStage
==
VersionStage
)
if
((
GetSystemTick
()
-
ParamTimeOutTick
>=
5100
)
&&
(
TCUCommuStatus
.
CommStage
==
VersionStage
)
&&
ParamTimeOutTick
!=
0
)
{
ParamTimeOutTick
=
0
;
TCUCommuStatus
.
CommStage
=
TCUConfig
;
TCUCommuStatus
.
ErrData
.
Value
.
Param
=
1
;
TCUCommuStatus
.
ConEMSendFlag
=
1
;
}
if
((
TCUCommuStatus
.
CommStage
==
ChageParamStage
)
||
TCUCommuStatus_B
.
ParamVaild
==
1
)
{
{
if
(
oldStage_B
!=
VersionStage
)
ParamTimeOutTick
=
0
;
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
VersionRecvTime_B
=
0
;
sendTick
=
GetSystemTick
();
VersionSendTimes_B
=
0
;
sendTimes
++
;
if
(
sendTimes
>
2000
/
500
)
{
//TCUCommuStatus.ParamVaild = 1;
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
else
{
TCUParamAck
(
1
);
}
}
}
}
oldStage
=
TCUCommuStatus
.
CommStage
;
}
void
CommutionConfigurationStage_B
(
void
)
{
static
EnumTCUCommStage
oldStage_B
;
static
u32
sendTick_B
=
0
;
static
u32
ParamTimeOutTick
=
0
;
static
u8
sendTimes_B
=
0
;
if
(
oldStage_B
!=
TCUCommuStatus_B
.
CommStage
)
{
sendTick_B
=
0
;
sendTimes_B
=
0
;
}
if
(
GetSystemTick
()
-
VersionRecvTime_B
>=
500
)
if
(
TCUCommuStatus_B
.
CommStage
==
VersionStage
)
{
if
(
ParamTimeOutTick
==
0
)
ParamTimeOutTick
=
GetSystemTick
();
if
(
GetSystemTick
()
-
sendTick_B
>=
500
)
{
{
VersionRecvTime
_B
=
GetSystemTick
();
sendTick
_B
=
GetSystemTick
();
VersionS
endTimes_B
++
;
s
endTimes_B
++
;
if
(
VersionSendTimes_B
>
5
000
/
500
)
if
(
sendTimes_B
>
2
000
/
500
)
{
{
//TCUCommuStatus_B.CommStage = TCUConfig;
TCUCommuStatus_B
.
ErrData
.
Value
.
Param
=
1
;
//TCUCommuStatus_B.VerChkVaild = 1;
TCUCommuStatus_B
.
ConEMSendFlag
=
1
;
TCUCommuStatus_B
.
CommStage
=
HeartStage
;
}
}
else
else
...
@@ -361,7 +394,36 @@ void CommutionConfigurationStage(void)
...
@@ -361,7 +394,36 @@ void CommutionConfigurationStage(void)
}
}
oldStage
=
TCUCommuStatus
.
CommStage
;
if
((
GetSystemTick
()
-
ParamTimeOutTick
>=
5100
)
&&
(
TCUCommuStatus_B
.
CommStage
==
VersionStage
)
&&
ParamTimeOutTick
!=
0
)
{
ParamTimeOutTick
=
0
;
TCUCommuStatus_B
.
CommStage
=
TCUConfig
;
TCUCommuStatus_B
.
ErrData
.
Value
.
Param
=
1
;
TCUCommuStatus_B
.
ConEMSendFlag
=
1
;
}
if
((
TCUCommuStatus_B
.
CommStage
==
ChageParamStage
)
||
TCUCommuStatus_B
.
ParamVaild
==
1
)
{
ParamTimeOutTick
=
0
;
if
(
GetSystemTick
()
-
sendTick_B
>=
500
)
{
sendTick_B
=
GetSystemTick
();
sendTimes_B
++
;
if
(
sendTimes_B
>
2000
/
500
)
{
//TCUCommuStatus_B.ParamVaild = 1;
TCUCommuStatus_B
.
CommStage
=
HeartStage
;
}
else
{
TCUParamAck
(
2
);
}
}
}
oldStage_B
=
TCUCommuStatus_B
.
CommStage
;
oldStage_B
=
TCUCommuStatus_B
.
CommStage
;
}
}
...
@@ -384,7 +446,9 @@ void TCUPillarHeartBeat(void)
...
@@ -384,7 +446,9 @@ void TCUPillarHeartBeat(void)
{
{
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
TCUCommuStatus
.
ConnectFlag
=
CONNECT_TIMEOUT
;
TCUCommuStatus
.
ConnectFlag
=
CONNECT_TIMEOUT
;
TCUCanInit
();
//TCUCanInit();
TCUCurChgRecd
.
TCUChargeEnable
=
0
;
}
}
...
@@ -396,8 +460,9 @@ void TCUPillarHeartBeat(void)
...
@@ -396,8 +460,9 @@ void TCUPillarHeartBeat(void)
{
{
memset
(
&
TCUCommuStatus_B
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
memset
(
&
TCUCommuStatus_B
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
TCUCommuStatus_B
.
ConnectFlag
=
CONNECT_TIMEOUT
;
TCUCommuStatus_B
.
ConnectFlag
=
CONNECT_TIMEOUT
;
//TCUCanInit()
;
TCUCurChgRecd_B
.
TCUChargeEnable
=
0
;
}
}
}
}
...
@@ -407,57 +472,30 @@ void CommutionRunStage(void)
...
@@ -407,57 +472,30 @@ void CommutionRunStage(void)
static
u32
sendTick
=
0
;
static
u32
sendTick
=
0
;
static
u8
sendTimes
=
0
;
static
u8
sendTimes
=
0
;
static
EnumTCUCommStage
oldStage_B
;
static
u32
sendTick_B
=
0
;
static
u8
sendTimes_B
=
0
;
if
(
oldStage
!=
TCUCommuStatus
.
CommStage
)
if
(
oldStage
!=
TCUCommuStatus
.
CommStage
)
{
{
sendTick
=
0
;
sendTick
=
0
;
sendTimes
=
0
;
sendTimes
=
0
;
}
}
if
(
oldStage_B
!=
TCUCommuStatus_B
.
CommStage
)
if
((
TCUCommuStatus
.
CommStage
==
TimeStage
))
{
sendTick_B
=
0
;
sendTimes_B
=
0
;
}
if
((
TCUCommuStatus
.
CommStage
==
ChageParamStage
))
{
{
if
(
GetSystemTick
()
-
sendTick
>=
500
)
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
sendTick
=
GetSystemTick
();
sendTimes
++
;
sendTimes
++
;
sendTick
=
GetSystemTick
();
if
(
sendTimes
>
2000
/
500
)
if
(
sendTimes
>
2000
/
500
)
{
{
TCUCommuStatus
.
CommStage
=
HeartStage
;
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
}
else
else
{
{
TCUParamAck
(
1
);
TCUtimeSetAck
(
1
);
}
}
}
if
((
TCUCommuStatus_B
.
CommStage
==
ChageParamStage
))
{
if
(
GetSystemTick
()
-
sendTick_B
>=
500
)
{
sendTick_B
=
GetSystemTick
();
sendTimes_B
++
;
if
(
sendTimes_B
>
2000
/
500
)
{
TCUCommuStatus_B
.
CommStage
=
HeartStage
;
}
else
{
TCUParamAck
(
2
);
}
}
}
}
}
}
if
((
TCUCommuStatus
.
CommStage
==
Time
Stage
))
if
((
TCUCommuStatus
.
CommStage
==
ServiceContral
Stage
))
{
{
if
(
GetSystemTick
()
-
sendTick
>=
500
)
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
...
@@ -469,29 +507,33 @@ void CommutionRunStage(void)
...
@@ -469,29 +507,33 @@ void CommutionRunStage(void)
}
}
else
else
{
{
TCUtimeSet
Ack
(
1
);
SerCon
Ack
(
1
);
}
}
}
}
}
}
if
((
TCUCommuStatus_B
.
CommStage
==
TimeStage
))
if
((
TCUCommuStatus
.
CommStage
==
ElectLockStage
))
{
{
if
(
GetSystemTick
()
-
sendTick
_B
>=
500
)
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
sendTimes
_B
++
;
sendTimes
++
;
sendTick
_B
=
GetSystemTick
();
sendTick
=
GetSystemTick
();
if
(
sendTimes
_B
>
2000
/
500
)
if
(
sendTimes
>
2000
/
500
)
{
{
TCUCommuStatus_B
.
CommStage
=
HeartStage
;
TCUCommuStatus
.
CommStage
=
HeartStage
;
if
(
TCUCommuStatus
.
ElectLockSetValue
==
2
)
LockSet
(
eSwSta_Off
);
}
}
else
else
{
{
TCUtimeSetAck
(
2
);
ElectControlAck
(
1
);
}
}
}
}
}
}
if
((
TCUCommuStatus
.
CommStage
==
ServiceContra
lStage
))
if
((
TCUCommuStatus
.
CommStage
==
PowerContro
lStage
))
{
{
if
(
GetSystemTick
()
-
sendTick
>=
500
)
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
...
@@ -503,31 +545,31 @@ void CommutionRunStage(void)
...
@@ -503,31 +545,31 @@ void CommutionRunStage(void)
}
}
else
else
{
{
SerCon
Ack
(
1
);
PowerControl
Ack
(
1
);
}
}
}
}
}
}
if
((
TCUCommuStatus
_B
.
CommStage
==
ServiceContral
Stage
))
if
((
TCUCommuStatus
.
CommStage
==
ChgInfornQuery
Stage
))
{
{
if
(
GetSystemTick
()
-
sendTick
_B
>=
500
)
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
sendTimes
_B
++
;
sendTimes
++
;
sendTick
_B
=
GetSystemTick
();
sendTick
=
GetSystemTick
();
if
(
sendTimes
_B
>
2000
/
500
)
if
(
sendTimes
>
2000
/
500
)
{
{
TCUCommuStatus
_B
.
CommStage
=
HeartStage
;
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
}
else
else
{
{
SerConAck
(
2
);
ChgInfornQueryAck
(
1
);
}
}
}
}
}
}
if
((
TCUCommuStatus
.
CommStage
==
ElectLock
Stage
))
if
((
TCUCommuStatus
.
CommStage
==
StartDownload
Stage
))
{
{
if
(
GetSystemTick
()
-
sendTick
>=
500
)
if
(
GetSystemTick
()
-
sendTick
>=
500
)
{
{
...
@@ -536,17 +578,31 @@ void CommutionRunStage(void)
...
@@ -536,17 +578,31 @@ void CommutionRunStage(void)
if
(
sendTimes
>
2000
/
500
)
if
(
sendTimes
>
2000
/
500
)
{
{
TCUCommuStatus
.
CommStage
=
HeartStage
;
TCUCommuStatus
.
CommStage
=
HeartStage
;
if
(
TCUCommuStatus
.
ElectLockSetValue
==
2
)
LockSet
(
eSwSta_Off
);
}
}
else
else
{
{
ElectControl
Ack
(
1
);
StartDownload
Ack
(
1
);
}
}
}
}
}
}
oldStage
=
TCUCommuStatus
.
CommStage
;
}
if
((
TCUCommuStatus_B
.
CommStage
==
ElectLockStage
))
void
CommutionRunStage_B
(
void
)
{
static
EnumTCUCommStage
oldStage_B
;
static
u32
sendTick_B
=
0
;
static
u8
sendTimes_B
=
0
;
if
(
oldStage_B
!=
TCUCommuStatus_B
.
CommStage
)
{
sendTick_B
=
0
;
sendTimes_B
=
0
;
}
if
((
TCUCommuStatus_B
.
CommStage
==
TimeStage
))
{
{
if
(
GetSystemTick
()
-
sendTick_B
>=
500
)
if
(
GetSystemTick
()
-
sendTick_B
>=
500
)
{
{
...
@@ -555,35 +611,33 @@ void CommutionRunStage(void)
...
@@ -555,35 +611,33 @@ void CommutionRunStage(void)
if
(
sendTimes_B
>
2000
/
500
)
if
(
sendTimes_B
>
2000
/
500
)
{
{
TCUCommuStatus_B
.
CommStage
=
HeartStage
;
TCUCommuStatus_B
.
CommStage
=
HeartStage
;
if
(
TCUCommuStatus_B
.
ElectLockSetValue
==
2
)
LockSet_B
(
eSwSta_Off
);
}
}
else
else
{
{
ElectControl
Ack
(
2
);
TCUtimeSet
Ack
(
2
);
}
}
}
}
}
}
if
((
TCUCommuStatus
.
CommStage
==
PowerContro
lStage
))
if
((
TCUCommuStatus
_B
.
CommStage
==
ServiceContra
lStage
))
{
{
if
(
GetSystemTick
()
-
sendTick
>=
500
)
if
(
GetSystemTick
()
-
sendTick
_B
>=
500
)
{
{
sendTimes
++
;
sendTimes
_B
++
;
sendTick
=
GetSystemTick
();
sendTick
_B
=
GetSystemTick
();
if
(
sendTimes
>
2000
/
500
)
if
(
sendTimes
_B
>
2000
/
500
)
{
{
TCUCommuStatus
.
CommStage
=
HeartStage
;
TCUCommuStatus
_B
.
CommStage
=
HeartStage
;
}
}
else
else
{
{
PowerControlAck
(
1
);
SerConAck
(
2
);
}
}
}
}
}
}
if
((
TCUCommuStatus_B
.
CommStage
==
PowerControl
Stage
))
if
((
TCUCommuStatus_B
.
CommStage
==
ElectLock
Stage
))
{
{
if
(
GetSystemTick
()
-
sendTick_B
>=
500
)
if
(
GetSystemTick
()
-
sendTick_B
>=
500
)
{
{
...
@@ -592,28 +646,29 @@ void CommutionRunStage(void)
...
@@ -592,28 +646,29 @@ void CommutionRunStage(void)
if
(
sendTimes_B
>
2000
/
500
)
if
(
sendTimes_B
>
2000
/
500
)
{
{
TCUCommuStatus_B
.
CommStage
=
HeartStage
;
TCUCommuStatus_B
.
CommStage
=
HeartStage
;
if
(
TCUCommuStatus_B
.
ElectLockSetValue
==
2
)
LockSet_B
(
eSwSta_Off
);
}
}
else
else
{
{
Power
ControlAck
(
2
);
Elect
ControlAck
(
2
);
}
}
}
}
}
}
if
((
TCUCommuStatus
.
CommStage
==
ChgInfornQuery
Stage
))
if
((
TCUCommuStatus
_B
.
CommStage
==
PowerControl
Stage
))
{
{
if
(
GetSystemTick
()
-
sendTick
>=
500
)
if
(
GetSystemTick
()
-
sendTick
_B
>=
500
)
{
{
sendTimes
++
;
sendTimes
_B
++
;
sendTick
=
GetSystemTick
();
sendTick
_B
=
GetSystemTick
();
if
(
sendTimes
>
2000
/
500
)
if
(
sendTimes
_B
>
2000
/
500
)
{
{
TCUCommuStatus
.
CommStage
=
HeartStage
;
TCUCommuStatus
_B
.
CommStage
=
HeartStage
;
}
}
else
else
{
{
ChgInfornQueryAck
(
1
);
PowerControlAck
(
2
);
}
}
}
}
...
@@ -637,24 +692,6 @@ void CommutionRunStage(void)
...
@@ -637,24 +692,6 @@ void CommutionRunStage(void)
}
}
if
((
TCUCommuStatus
.
CommStage
==
StartDownloadStage
))
{
if
(
GetSystemTick
()
-
sendTick_B
>=
500
)
{
sendTimes
++
;
sendTick
=
GetSystemTick
();
if
(
sendTimes
>
2000
/
500
)
{
TCUCommuStatus
.
CommStage
=
HeartStage
;
}
else
{
StartDownloadAck
(
1
);
}
}
}
if
((
TCUCommuStatus_B
.
CommStage
==
StartDownloadStage
))
if
((
TCUCommuStatus_B
.
CommStage
==
StartDownloadStage
))
{
{
if
(
GetSystemTick
()
-
sendTick_B
>=
500
)
if
(
GetSystemTick
()
-
sendTick_B
>=
500
)
...
@@ -673,15 +710,14 @@ void CommutionRunStage(void)
...
@@ -673,15 +710,14 @@ void CommutionRunStage(void)
}
}
oldStage
=
TCUCommuStatus
.
CommStage
;
oldStage_B
=
TCUCommuStatus_B
.
CommStage
;
oldStage_B
=
TCUCommuStatus_B
.
CommStage
;
}
}
void
TCUCurChgRecordInterface_A
(
void
)
void
TCUCurChgRecordInterface_A
(
void
)
{
{
static
u32
Chg
Record
SendTick
=
0
;
static
u32
Chg
StopComp
SendTick
=
0
;
static
u32
Chg
Record
SendErr
=
0
;
//停止完成帧
static
u32
Chg
StopComp
SendErr
=
0
;
//停止完成帧
static
u32
ChgStopSendTick
=
0
;
static
u32
ChgStopSendTick
=
0
;
static
u32
ChgStopSendEcount
=
0
;
//停止帧
static
u32
ChgStopSendEcount
=
0
;
//停止帧
static
u32
ChgStartSendTick
=
0
;
static
u32
ChgStartSendTick
=
0
;
...
@@ -716,9 +752,9 @@ void TCUCurChgRecordInterface_A(void)
...
@@ -716,9 +752,9 @@ void TCUCurChgRecordInterface_A(void)
{
{
if
((
GetSystemTick
()
-
ChgStartCompSendTick
)
>
(
250UL
))
if
((
GetSystemTick
()
-
ChgStartCompSendTick
)
>
(
250UL
))
{
{
Chg
Record
SendTick
=
GetSystemTick
();
Chg
StartComp
SendTick
=
GetSystemTick
();
ChgStartCompSendEcount
++
;
ChgStartCompSendEcount
++
;
if
(
Chg
RecordSendErr
<
20
)
//超时5S
if
(
Chg
StartCompSendEcount
<
20
)
//超时5S
{
//超时小于20次
{
//超时小于20次
startCompSend_A
();
startCompSend_A
();
}
}
...
@@ -737,7 +773,7 @@ void TCUCurChgRecordInterface_A(void)
...
@@ -737,7 +773,7 @@ void TCUCurChgRecordInterface_A(void)
TCUCurChgRecd
.
TCUStartCompresult
=
0
;
//
TCUCurChgRecd
.
TCUStartCompresult
=
0
;
//
//TCUCurChgRecd.StarChgType = 0;
//TCUCurChgRecd.StarChgType = 0;
ChgStartCompSendEcount
=
0
;
ChgStartCompSendEcount
=
0
;
Chg
Record
SendTick
=
0
;
Chg
StartComp
SendTick
=
0
;
}
}
if
(
TCUCurChgRecd
.
TCUChgStopNotetrl
==
1
)
if
(
TCUCurChgRecd
.
TCUChgStopNotetrl
==
1
)
...
@@ -772,11 +808,11 @@ void TCUCurChgRecordInterface_A(void)
...
@@ -772,11 +808,11 @@ void TCUCurChgRecordInterface_A(void)
if
((
TCUCurChgRecd
.
TCUChgStopCompNotetrl
==
1
)
//停止完成帧逻辑
if
((
TCUCurChgRecd
.
TCUChgStopCompNotetrl
==
1
)
//停止完成帧逻辑
/*&& (0 != TCUCurChgRecd.TCUChargeEnable)*/
)
/*&& (0 != TCUCurChgRecd.TCUChargeEnable)*/
)
{
{
if
((
GetSystemTick
()
-
Chg
Record
SendTick
)
>
(
250UL
))
if
((
GetSystemTick
()
-
Chg
StopComp
SendTick
)
>
(
250UL
))
{
{
Chg
Record
SendErr
++
;
Chg
StopComp
SendErr
++
;
Chg
Record
SendTick
=
GetSystemTick
();
Chg
StopComp
SendTick
=
GetSystemTick
();
if
(
Chg
Record
SendErr
<
20
)
//超时5S
if
(
Chg
StopComp
SendErr
<
20
)
//超时5S
{
//超时小于20次
{
//超时小于20次
stopCompSend_A
();
stopCompSend_A
();
}
}
...
@@ -796,16 +832,16 @@ void TCUCurChgRecordInterface_A(void)
...
@@ -796,16 +832,16 @@ void TCUCurChgRecordInterface_A(void)
}
}
else
else
{
{
Chg
Record
SendTick
=
0
;
Chg
StopComp
SendTick
=
0
;
Chg
Record
SendErr
=
0
;
Chg
StopComp
SendErr
=
0
;
}
}
}
}
void
TCUCurChgRecordInterface_B
(
void
)
void
TCUCurChgRecordInterface_B
(
void
)
{
{
static
u32
Chg
Record
SendTick
=
0
;
static
u32
Chg
StopComp
SendTick
=
0
;
static
u32
Chg
Record
SendErr
=
0
;
static
u32
Chg
StopComp
SendErr
=
0
;
static
u32
ChgStopSendTick
=
0
;
static
u32
ChgStopSendTick
=
0
;
static
u32
ChgStopSendEcount
=
0
;
static
u32
ChgStopSendEcount
=
0
;
static
u32
ChgStartSendTick
=
0
;
static
u32
ChgStartSendTick
=
0
;
...
@@ -841,8 +877,8 @@ void TCUCurChgRecordInterface_B(void)
...
@@ -841,8 +877,8 @@ void TCUCurChgRecordInterface_B(void)
if
((
GetSystemTick
()
-
ChgStartCompSendTick
)
>
(
250UL
))
if
((
GetSystemTick
()
-
ChgStartCompSendTick
)
>
(
250UL
))
{
{
ChgStartCompSendEcount
++
;
ChgStartCompSendEcount
++
;
Chg
Record
SendTick
=
GetSystemTick
();
Chg
StartComp
SendTick
=
GetSystemTick
();
if
(
Chg
RecordSendErr
<
20
)
//超时5S
if
(
Chg
StartCompSendEcount
<
20
)
//超时5S
{
//超时小于20次
{
//超时小于20次
startCompSend_B
();
startCompSend_B
();
}
}
...
@@ -860,7 +896,7 @@ void TCUCurChgRecordInterface_B(void)
...
@@ -860,7 +896,7 @@ void TCUCurChgRecordInterface_B(void)
TCUCurChgRecd_B
.
TCUStartCompresult
=
0
;
TCUCurChgRecd_B
.
TCUStartCompresult
=
0
;
//TCUCurChgRecd_B.StarChgType = 0;
//TCUCurChgRecd_B.StarChgType = 0;
ChgStartCompSendEcount
=
0
;
ChgStartCompSendEcount
=
0
;
Chg
Record
SendTick
=
0
;
Chg
StartComp
SendTick
=
0
;
}
}
if
(
TCUCurChgRecd_B
.
TCUChgStopNotetrl
==
1
)
if
(
TCUCurChgRecd_B
.
TCUChgStopNotetrl
==
1
)
...
@@ -894,11 +930,11 @@ void TCUCurChgRecordInterface_B(void)
...
@@ -894,11 +930,11 @@ void TCUCurChgRecordInterface_B(void)
if
((
TCUCurChgRecd_B
.
TCUChgStopCompNotetrl
==
1
)
/* && (0 != TCUCurChgRecd_B.TCUChargeEnable)*/
)
if
((
TCUCurChgRecd_B
.
TCUChgStopCompNotetrl
==
1
)
/* && (0 != TCUCurChgRecd_B.TCUChargeEnable)*/
)
{
{
if
((
GetSystemTick
()
-
Chg
Record
SendTick
)
>
(
250UL
))
if
((
GetSystemTick
()
-
Chg
StopComp
SendTick
)
>
(
250UL
))
{
{
Chg
Record
SendErr
++
;
Chg
StopComp
SendErr
++
;
Chg
Record
SendTick
=
GetSystemTick
();
Chg
StopComp
SendTick
=
GetSystemTick
();
if
(
Chg
Record
SendErr
<
20
)
//超时5S
if
(
Chg
StopComp
SendErr
<
20
)
//超时5S
{
//超时小于20次
{
//超时小于20次
stopCompSend_B
();
stopCompSend_B
();
}
}
...
@@ -912,14 +948,14 @@ void TCUCurChgRecordInterface_B(void)
...
@@ -912,14 +948,14 @@ void TCUCurChgRecordInterface_B(void)
}
}
else
if
((
TCUCurChgRecd_B
.
TCUChgStopCompNotetrl
==
3
)
/* && (0 != TCUCurChgRecd_B.TCUChargeEnable)*/
)
else
if
((
TCUCurChgRecd_B
.
TCUChgStopCompNotetrl
==
3
)
/* && (0 != TCUCurChgRecd_B.TCUChargeEnable)*/
)
{
{
TCUCurChgRecd_B
.
TCUChgStopCompNotetrl
=
0
;
//超时触发
TCUCurChgRecd_B
.
TCUChgStopCompNotetrl
=
0
;
TCUCurChgRecd_B
.
TCUChgStopType
=
0
;
TCUCurChgRecd_B
.
TCUChgStopType
=
0
;
}
}
else
else
{
{
Chg
Record
SendErr
=
0
;
Chg
StopComp
SendErr
=
0
;
Chg
Record
SendTick
=
0
;
Chg
StopComp
SendTick
=
0
;
}
}
}
}
...
@@ -1090,7 +1126,19 @@ void SendStatus(void)
...
@@ -1090,7 +1126,19 @@ void SendStatus(void)
data
[
1
]
=
TcuGetChgStatus
();
data
[
1
]
=
TcuGetChgStatus
();
TCUSinglePackSendMsg
(
data
,
8
,
eCmd_status
,
6
,
ChargerCont1939Addr
);
TCUSinglePackSendMsg
(
data
,
8
,
eCmd_status
,
6
,
ChargerCont1939Addr
);
}
}
}
}
void
SendStatus_B
(
void
)
{
static
u32
ChgStutusSendTick
=
0
;
u8
data
[
8
]
=
{
0
};
if
((
GetSystemTick
()
-
ChgStutusSendTick
)
>
(
500UL
))
{
ChgStutusSendTick
=
GetSystemTick
();
data
[
0
]
=
0
;
if
(
TCUCommuStatus_B
.
ConnectFlag
==
CONNECT_NORMAL
)
if
(
TCUCommuStatus_B
.
ConnectFlag
==
CONNECT_NORMAL
)
{
{
data
[
1
]
=
TcuGetChgStatus_B
();
data
[
1
]
=
TcuGetChgStatus_B
();
...
@@ -1100,33 +1148,7 @@ void SendStatus(void)
...
@@ -1100,33 +1148,7 @@ void SendStatus(void)
}
}
}
}
void
TCUChgStarStopProcess
(
void
)
//充电流启停程逻辑
{
TCUCurChgRecordInterface_A
();
TCUCurChgRecordInterface_B
();
}
void
TCUWorkProcess
(
void
)
{
//if (TCUCommuStatus.VerChkVaild == 0) //版本检验未完成不发送
// return;
InformationReporting
();
//遥信
DCMeasuring_A
();
//遥测
}
void
TCULinkProcess
(
void
)
//心跳帧处理
{
TCUPillarHeartBeat
();
//心跳处理
CommutionConfigurationStage
();
//配置阶段
CommutionRunStage
();
//运行阶段
ConEMSend
();
//ab超时发送逻辑
SendStatus
();
}
osMessageQId
TcuSendMsgId
=
0
;
osMessageQId
TcuSendMsgId
=
0
;
void
TCUComm
(
void
const
*
argument
)
void
TCUComm
(
void
const
*
argument
)
...
@@ -1154,10 +1176,46 @@ void TCUComm(void const * argument)
...
@@ -1154,10 +1176,46 @@ void TCUComm(void const * argument)
TCURecvProcess
();
//帧接收
TCURecvProcess
();
//帧接收
TCUWorkProcess
();
//遥测遥信息处理
TCULinkProcess
();
//心跳包处理配置信息
TCUChgStarStopProcess
();
//启停逻辑处理
TCUPillarHeartBeat
();
//心跳处理
if
(
TCUCommuStatus
.
CommStage
<
HeartStage
)
{
if
(
TCUCommuStatus
.
ConnectFlag
!=
CONNECT_TIMEOUT
)
{
CommutionConfigurationStage
();
//配置阶段
}
}
else
{
CommutionRunStage
();
//运行阶段
SendStatus
();
InformationReporting
();
//遥信
DCMeasuring
();
//遥测
TCUCurChgRecordInterface_A
();
//启停逻辑处理
}
if
(
TCUCommuStatus_B
.
CommStage
<
HeartStage
)
{
if
(
TCUCommuStatus_B
.
ConnectFlag
!=
CONNECT_TIMEOUT
)
{
CommutionConfigurationStage_B
();
//配置阶段
}
}
else
{
CommutionRunStage_B
();
//运行阶段
SendStatus_B
();
InformationReporting_B
();
//遥信
DCMeasuring_B
();
//遥测
TCUCurChgRecordInterface_B
();
//启停逻辑处理
}
ConEMSend
();
//ab超时发送逻辑
// TCUCodeDone();//告警故障处理
// TCUCodeDone();//告警故障处理
// TCUSaveEventDone();
// TCUSaveEventDone();
osDelay
(
5
);
osDelay
(
5
);
...
...
DcPillar/Src/Thread/Thd_TCU.h
浏览文件 @
da0c4803
...
@@ -10,15 +10,16 @@
...
@@ -10,15 +10,16 @@
#define CONNECT_TIMEOUT 1
#define CONNECT_TIMEOUT 1
typedef
enum
{
typedef
enum
{
HeartStage
=
0
,
//心跳阶段默认
TCUConfig
=
0
,
//心跳阶段默认
VersionStage
=
1
,
VersionStage
=
1
,
ChageParamStage
=
2
,
ChageParamStage
=
2
,
TimeStage
=
3
,
HeartStage
=
3
,
ServiceContralStage
=
4
,
TimeStage
=
4
,
ElectLockStage
=
5
,
ServiceContralStage
=
5
,
PowerControlStage
=
6
,
ElectLockStage
=
6
,
ChgInfornQueryStage
=
7
,
PowerControlStage
=
7
,
StartDownloadStage
=
8
,
ChgInfornQueryStage
=
8
,
StartDownloadStage
=
9
,
}
EnumTCUCommStage
;
}
EnumTCUCommStage
;
...
@@ -64,10 +65,10 @@ typedef struct {
...
@@ -64,10 +65,10 @@ typedef struct {
u8
PowerControlVaildValue
;
//功率调节失败原因
u8
PowerControlVaildValue
;
//功率调节失败原因
u8
ConnectFlag
;
//0 未连接 其他已连接
u8
ConnectFlag
;
//0 未连接 其他已连接
u8
HeartBeatVaild
;
//接收心跳有效标志位
//
u8 HeartBeatVaild; //接收心跳有效标志位
u8
HeartBeatErrCnt
;
u8
HeartBeatErrCnt
;
u16
HeartBeatNumCnt
;
//
u16 HeartBeatNumCnt;
u16
HeartBeatLoseCnt
;
//
u16 HeartBeatLoseCnt;
u32
DCMeasuErrCnt
;
u32
DCMeasuErrCnt
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论