Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
6f621aed
提交
6f621aed
authored
5月 01, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复TCU can多包发送;当前故障2004
上级
f0d59927
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
60 行增加
和
36 行删除
+60
-36
Drv_TCUComm.c
DcPillar/Src/Drivers/Drv_TCUComm.c
+44
-25
Thd_TCU.c
DcPillar/Src/Thread/Thd_TCU.c
+16
-11
没有找到文件。
DcPillar/Src/Drivers/Drv_TCUComm.c
浏览文件 @
6f621aed
...
...
@@ -436,7 +436,7 @@ StructTCUEM TCUChgContralTCUEM_B;
StructTCUCControl
TCUControlInfo
=
{
.
ChargingServiceFlag
=
2
,
.
version
=
0x02
3
0
,
.
version
=
0x02
2
0
,
.
ChargeNum
=
{
0
,
0
,
0
,
0
...
...
@@ -526,42 +526,46 @@ void TCUMultiPackSendMsg(u8 * pfram, u16 len, EnumTCUCommPgn cmd, u8 Prio, u8 ad
FrameSend
.
Id
.
Disp
.
DA_PS
=
TCU1939Addr
;
FrameSend
.
Id
.
Disp
.
SA
=
addr
;
u16
checkSum
=
0
;
u8
num
=
(
len
+
3
+
2
)
/
7
;
if
((
len
+
3
+
2
)
%
7
)
num
++
;
for
(
i
=
0
;
i
<
len
;
i
++
)
{
checkSum
+=
pfram
[
i
];
}
checkSum
=
checkSum
+
((
len
+
3
+
2
)
/
7
+
1
)
;
checkSum
=
checkSum
+
num
;
checkSum
=
checkSum
+
(
u8
)
len
+
(
u8
)
(
len
>>
8
);
for
(
i
=
1
;
i
<=
((
len
+
3
+
2
)
/
7
+
1
)
;
i
++
)
//第一包
for
(
i
=
1
;
i
<=
num
;
i
++
)
//第一包
{
if
(
i
==
1
)
{
FrameSend
.
Data
[
0
]
=
i
;
FrameSend
.
Data
[
1
]
=
(
len
+
3
+
2
)
/
7
+
1
;
FrameSend
.
Data
[
1
]
=
num
;
FrameSend
.
Data
[
2
]
=
(
u8
)
len
;
FrameSend
.
Data
[
3
]
=
(
u8
)
(
len
>>
8
);
//FrameSend.Data[4] = *pfram++;
memcpy
(
&
FrameSend
.
Data
[
4
],
pfram
,
4
);
lenFlag
+=
4
;
}
else
if
(
i
==
((
len
+
3
+
2
)
/
7
+
1
)
)
//最后一包
else
if
(
i
==
num
)
//最后一包
{
FrameSend
.
Data
[
0
]
=
i
;
if
(
len
>=
lenFlag
)
{
memcpy
(
&
FrameSend
.
Data
[
1
],
&
pfram
[
lenFlag
],
len
-
lenFlag
+
1
);
FrameSend
.
Data
[
len
-
lenFlag
+
2
]
=
(
u8
)
checkSum
;
FrameSend
.
Data
[
len
-
lenFlag
+
3
]
=
(
u8
)
(
checkSum
>>
8
);
memset
(
&
FrameSend
.
Data
[
len
-
lenFlag
+
4
],
0x00
,
4
-
len
+
lenFlag
);
}
else
if
(
len
<
lenFlag
)
{
FrameSend
.
Data
[
1
]
=
(
u8
)
checkSum
;
FrameSend
.
Data
[
2
]
=
(
u8
)
(
checkSum
>>
8
);
memset
(
&
FrameSend
.
Data
[
3
],
0x00
,
5
);
}
else
{
memcpy
(
&
FrameSend
.
Data
[
1
],
&
pfram
[
lenFlag
],
len
-
lenFlag
);
FrameSend
.
Data
[
len
-
lenFlag
+
1
]
=
(
u8
)
checkSum
;
FrameSend
.
Data
[
len
-
lenFlag
+
2
]
=
(
u8
)
(
checkSum
>>
8
);
if
((
len
-
lenFlag
+
2
)
<
7
)
memset
(
&
FrameSend
.
Data
[
len
-
lenFlag
+
3
],
0x00
,
5
-
len
+
lenFlag
);
}
}
...
...
@@ -2273,7 +2277,7 @@ void InformationReporting_23_A(void)
Data
[
0
]
=
0x00
;
InformainReport2_A
.
InfRe
.
Door
=
PillarError
.
Value
.
Door
;
InformainReport2_A
.
InfRe
.
DCOutConOn
=
0x0
1
;
InformainReport2_A
.
InfRe
.
DCOutConOn
=
0x0
0
;
if
(((
ChargeError
.
Value
.
IsolateWarn
==
1
)
||
(
ChargeError
.
Value
.
IsolateError
==
1
))
&&
(
TCUCurChgRecd
.
TCUChargeEnable
==
1
))
...
...
@@ -2290,7 +2294,7 @@ void InformationReporting_23_A(void)
InformainReport2_A
.
InfRe
.
UniContactorOff
=
PillarError
.
Value
.
UniContactor
;
InformainReport2_A
.
InfRe
.
UniContactorOn
=
0x00
;
memcpy
(
&
Data
[
1
],
&
InformainReport2_A
.
data
,
2
);
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_DCConInfor2
,
3
,
ChargerCont1939Addr
);
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_DCConInfor2
,
4
,
ChargerCont1939Addr
);
}
...
...
@@ -2300,7 +2304,7 @@ void InformationReporting_23_B(void)
Data
[
0
]
=
0x00
;
InformainReport2_B
.
InfRe
.
Door
=
PillarError_B
.
Value
.
Door
;
InformainReport2_B
.
InfRe
.
DCOutConOn
=
0x0
1
;
InformainReport2_B
.
InfRe
.
DCOutConOn
=
0x0
;
if
(((
ChargeError_B
.
Value
.
IsolateWarn
==
1
)
||
(
ChargeError_B
.
Value
.
IsolateError
==
1
))
&&
(
TCUCurChgRecd_B
.
TCUChargeEnable
==
1
))
...
...
@@ -2317,13 +2321,13 @@ void InformationReporting_23_B(void)
InformainReport2_B
.
InfRe
.
UniContactorOff
=
PillarError_B
.
Value
.
UniContactor
;
InformainReport2_B
.
InfRe
.
UniContactorOn
=
0x00
;
memcpy
(
&
Data
[
1
],
&
InformainReport2_B
.
data
,
2
);
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_DCConInfor2
,
3
,
ChargerCont1939Addr_B
);
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_DCConInfor2
,
4
,
ChargerCont1939Addr_B
);
}
void
measuringReporting20_A
(
void
)
{
u8
Data
[
3
2
]
=
{
0
};
u8
Data
[
3
6
]
=
{
0
};
u8
len
=
0
;
Data
[
len
++
]
=
0x00
;
...
...
@@ -2354,13 +2358,13 @@ void measuringReporting20_A(void)
Data
[
len
++
]
=
Adc_Get_a_NTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_B_PTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_B_NTemp
()
+
50
;
TCUMultiPackSendMsg
(
Data
,
len
,
eCmd_DCConMeasu
,
6
,
ChargerCont1939Addr
);
TCUMultiPackSendMsg
(
Data
,
34
,
eCmd_DCConMeasu
,
6
,
ChargerCont1939Addr
);
}
void
measuringReporting20_B
(
void
)
{
u8
Data
[
3
2
]
=
{
0
};
u8
Data
[
3
6
]
=
{
0
};
u8
len
=
0
;
Data
[
len
++
]
=
0x00
;
...
...
@@ -2391,7 +2395,7 @@ void measuringReporting20_B(void)
Data
[
len
++
]
=
Adc_Get_a_NTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_B_PTemp
()
+
50
;
Data
[
len
++
]
=
Adc_Get_B_NTemp
()
+
50
;
TCUMultiPackSendMsg
(
Data
,
len
,
eCmd_DCConMeasu
,
6
,
ChargerCont1939Addr_B
);
TCUMultiPackSendMsg
(
Data
,
34
,
eCmd_DCConMeasu
,
6
,
ChargerCont1939Addr_B
);
}
...
...
@@ -2423,13 +2427,14 @@ void ChgInfornQueryAck(u8 ChgNum)
data
[
len
++
]
=
(
u8
)
(
4000
-
TCUControlInfo
.
DcMinCurrt
);
data
[
len
++
]
=
(
u8
)
((
4000
-
TCUControlInfo
.
DcMinCurrt
)
>>
8
);
//memset(data,1,38);
if
(
ChgNum
==
1
)
{
TCUMultiPackSendMsg
(
data
,
len
,
eCmd_QueryAck
,
6
,
ChargerCont1939Addr
);
TCUMultiPackSendMsg
(
data
,
37
,
eCmd_QueryAck
,
6
,
ChargerCont1939Addr
);
}
else
if
(
ChgNum
==
2
)
{
TCUMultiPackSendMsg
(
data
,
len
,
eCmd_QueryAck
,
6
,
ChargerCont1939Addr_B
);
TCUMultiPackSendMsg
(
data
,
37
,
eCmd_QueryAck
,
6
,
ChargerCont1939Addr_B
);
}
}
...
...
@@ -2512,9 +2517,23 @@ void TcuEMMsg_B(u16 data)
void
TCUErroCommAnalysis
(
StructTCUSend
*
pPgnRecv
)
{
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
{
memcpy
(
&
TCUChgContralTCUEM_A
.
tcuem
,
&
pPgnRecv
->
Data
[
1
],
2
);
//memset(&TCUCommuStatus, 0x00, sizeof(TCUCommuStatus)); //通讯初始化
//TCUCommuStatus.ConnectFlag = CONNECT_TIMEOUT;
//TCUCommuStatus.HeartBeatErrCnt = 0;
//HeartBeatVaild = 0; //心跳失效
}
else
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
{
memcpy
(
&
TCUChgContralTCUEM_B
.
tcuem
,
&
pPgnRecv
->
Data
[
1
],
2
);
//memset(&TCUCommuStatus_B, 0x00, sizeof(TCUCommuStatus)); //通讯初始化
//TCUCommuStatus_B.ConnectFlag = CONNECT_TIMEOUT;
//TCUCommuStatus_B.HeartBeatErrCnt = 0;
//TCUCommuStatus_B.HeartBeatVaild = 0; //心跳失效
}
}
...
...
DcPillar/Src/Thread/Thd_TCU.c
浏览文件 @
6f621aed
...
...
@@ -132,12 +132,13 @@ void InformationReporting(void)
{
//遥信
static
u32
DCConInforSendTime
=
0
;
if
(
GetSystemTick
()
-
DCConInforSendTime
>=
500
)
if
(
GetSystemTick
()
-
DCConInforSendTime
>=
500UL
)
{
DCConInforSendTime
=
GetSystemTick
();
if
(
TCUCommuStatus
.
VerChkVaild
)
//版本检验未完成不发送
{
InformationReporting_22_A
();
InformationReporting_23_A
();
}
...
...
@@ -218,6 +219,7 @@ void ConEMSend(void)
{
if
(
GetSystemTick
()
-
ConEMSendTick
>=
250
)
{
ConEMSendTick
=
GetSystemTick
();
if
(
ConEMSendEcount
<
20
)
{
ConEMSendEcount
++
;
...
...
@@ -253,6 +255,7 @@ void ConEMSend(void)
{
if
(
GetSystemTick
()
-
ConEMSendTick_B
>=
250
)
{
ConEMSendTick_B
=
GetSystemTick
();
if
(
ConEMSendEcount_B
<
20
)
{
ConEMSendEcount_B
++
;
...
...
@@ -298,6 +301,7 @@ void CommutionConfigurationStage(void)
if
(
GetSystemTick
()
-
VersionRecvTime
>=
500
)
{
VersionRecvTime
=
GetSystemTick
();
VersionSendTimes
++
;
if
(
VersionSendTimes
>
5000
/
500
)
{
...
...
@@ -327,6 +331,7 @@ void CommutionConfigurationStage(void)
if
(
GetSystemTick
()
-
VersionRecvTime_B
>=
500
)
{
VersionRecvTime_B
=
GetSystemTick
();
VersionSendTimes_B
++
;
if
(
VersionSendTimes_B
>
5000
/
500
)
{
...
...
@@ -641,7 +646,7 @@ void TCUCurChgRecordInterface_A(void)
}
else
if
(
TCUCurChgRecd
.
TCUChgStartNotetrl
==
2
)
{
if
(
GetSystemTick
()
-
ChgStartSendTick
>=
250
)
if
(
GetSystemTick
()
-
ChgStartSendTick
>=
250
UL
)
{
if
(
ChgStartSendEcount
<
8
)
//2S
{
...
...
@@ -664,7 +669,7 @@ void TCUCurChgRecordInterface_A(void)
}
else
if
(
TCUCurChgRecd
.
TCUChgStarCompNotetrl
==
2
)
{
if
((
GetSystemTick
()
-
ChgStartCompSendTick
)
>
(
250
))
if
((
GetSystemTick
()
-
ChgStartCompSendTick
)
>
(
250
UL
))
{
ChgStartCompSendEcount
++
;
...
...
@@ -699,7 +704,7 @@ void TCUCurChgRecordInterface_A(void)
}
else
if
(
TCUCurChgRecd
.
TCUChgStopNotetrl
==
2
)
{
if
(
GetSystemTick
()
-
ChgStopSendTick
>=
250
)
if
(
GetSystemTick
()
-
ChgStopSendTick
>=
250
UL
)
{
if
(
ChgStopSendEcount
<
8
)
{
...
...
@@ -723,7 +728,7 @@ void TCUCurChgRecordInterface_A(void)
}
else
if
((
TCUCurChgRecd
.
TCUChgStopCompNotetrl
==
2
)
&&
(
0
!=
TCUCurChgRecd
.
TCUChargeEnable
))
{
if
((
GetSystemTick
()
-
ChgRecordSendTick
)
>
(
250
))
if
((
GetSystemTick
()
-
ChgRecordSendTick
)
>
(
250
UL
))
{
ChgRecordSendErr
++
;
...
...
@@ -771,7 +776,7 @@ void TCUCurChgRecordInterface_B(void)
}
else
if
(
TCUCurChgRecd_B
.
TCUChgStartNotetrl
==
2
)
{
if
(
GetSystemTick
()
-
ChgStartSendTick
>=
250
)
if
(
GetSystemTick
()
-
ChgStartSendTick
>=
250
UL
)
{
if
(
ChgStartSendEcount
<
8
)
//2S
{
...
...
@@ -794,7 +799,7 @@ void TCUCurChgRecordInterface_B(void)
}
else
if
(
TCUCurChgRecd_B
.
TCUChgStarCompNotetrl
==
2
)
{
if
((
GetSystemTick
()
-
ChgStartCompSendTick
)
>
(
250
))
if
((
GetSystemTick
()
-
ChgStartCompSendTick
)
>
(
250
UL
))
{
ChgStartCompSendEcount
++
;
...
...
@@ -828,7 +833,7 @@ void TCUCurChgRecordInterface_B(void)
}
else
if
(
TCUCurChgRecd_B
.
TCUChgStopNotetrl
==
2
)
{
if
(
GetSystemTick
()
-
ChgStopSendTick
>=
250
)
if
(
GetSystemTick
()
-
ChgStopSendTick
>=
250
UL
)
{
if
(
ChgStopSendEcount
<
8
)
{
...
...
@@ -851,7 +856,7 @@ void TCUCurChgRecordInterface_B(void)
}
else
if
((
TCUCurChgRecd_B
.
TCUChgStopCompNotetrl
==
2
)
&&
(
0
!=
TCUCurChgRecd_B
.
TCUChargeEnable
))
{
if
((
GetSystemTick
()
-
ChgRecordSendTick
)
>
(
250
))
if
((
GetSystemTick
()
-
ChgRecordSendTick
)
>
(
250
UL
))
{
ChgRecordSendErr
++
;
...
...
@@ -1036,7 +1041,7 @@ void SendStatus(void)
static
u32
ChgStutusSendTick
=
0
;
u8
data
[
8
]
=
{
0
};
if
((
GetSystemTick
()
-
ChgStutusSendTick
)
>
(
500
))
if
((
GetSystemTick
()
-
ChgStutusSendTick
)
>
(
500
UL
))
{
ChgStutusSendTick
=
GetSystemTick
();
data
[
0
]
=
0
;
...
...
@@ -1097,7 +1102,7 @@ void TCUComm(void const * argument)
u32
sendTick
=
0
;
for
(;
;
)
{
if
(
GetSystemTick
()
-
sendTick
>=
10
)
if
(
GetSystemTick
()
-
sendTick
>=
10
UL
)
{
StructChargeSend
DataSend
;
sendTick
=
GetSystemTick
();
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论