Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
12f46dd1
提交
12f46dd1
authored
4月 29, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1. TCU的CAN数据放入队列
2. 按照新协议修改AB抢地址
上级
11550d38
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
33 行增加
和
13 行删除
+33
-13
Drv_TCUComm.c
DcPillar/Src/Drivers/Drv_TCUComm.c
+0
-0
Drv_TCUComm.h
DcPillar/Src/Drivers/Drv_TCUComm.h
+2
-0
Thd_TCU.c
DcPillar/Src/Thread/Thd_TCU.c
+31
-13
没有找到文件。
DcPillar/Src/Drivers/Drv_TCUComm.c
浏览文件 @
12f46dd1
差异被折叠。
点击展开。
DcPillar/Src/Drivers/Drv_TCUComm.h
浏览文件 @
12f46dd1
...
...
@@ -219,6 +219,8 @@ typedef struct
#define TCU1939Addr (0x8A)
#define ChargerCont1939Addr (0xE0)
#define ChargerCont1939Addr_B (0xE1)
typedef
enum
{
eCmd_start
=
0x000100
,
// 充电启动帧
...
...
DcPillar/Src/Thread/Thd_TCU.c
浏览文件 @
12f46dd1
...
...
@@ -77,7 +77,15 @@ void TCURecvProcess(void)
break
;
case
eCmd_Query
:
// 充电桩配置信息查询帧
TCUCommuStatus
.
ChgNum
=
pPgnRecv
.
Data
[
0
];
//TCUCommuStatus.ChgNum = pPgnRecv.Data[0];
if
(
pPgnRecv
.
DA
==
ChargerCont1939Addr
)
{
TCUCommuStatus
.
ChgNum
=
1
;
}
else
if
(
pPgnRecv
.
DA
==
ChargerCont1939Addr_B
)
{
TCUCommuStatus
.
ChgNum
=
2
;
}
TCUCommuStatus
.
CommStage
=
ChgInfornQueryStage
;
TCUCommuStatus
.
ChgInfornQueryRecvTime
=
GetSystemTick
();
TCUCommuStatus
.
ChgInfornQuerySentTime
=
0
;
...
...
@@ -159,7 +167,7 @@ void DCMeasuring_A(void)
if
(
TCUCommuStatus
.
DCMeasuErrCnt
>
5
)
{
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
TCUCommuStatus
.
ConnectFlag
=
0
;
TCUCommuStatus
.
ConnectFlag
=
CONNECT_TIMEOUT
;
TCUCommuStatus
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus
.
HeartBeatVaild
=
0
;
//心跳失效
TCUCanInit
();
//can通讯接口初始化
...
...
@@ -195,7 +203,7 @@ void DCMeasuring_B(void)
if
(
TCUCommuStatus
.
DCMeasuErrCnt_B
>
5
)
{
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
TCUCommuStatus
.
ConnectFlag
=
0
;
TCUCommuStatus
.
ConnectFlag
=
CONNECT_TIMEOUT
;
TCUCommuStatus
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus
.
HeartBeatVaild
=
0
;
//心跳失效
TCUCanInit
();
...
...
@@ -340,8 +348,8 @@ void TCUPillarHeartBeat(void)
{
u32
SendTick
;
if
(
TCUCommuStatus
.
HeartBeatVaild
!=
CONNECT_NORMAL
)
return
;
//
if (TCUCommuStatus.HeartBeatVaild != CONNECT_NORMAL)
//
return;
if
(
0
==
TCUCommuStatus
.
HeartBeatRecvTime
)
//初始12s一次
{
...
...
@@ -352,7 +360,7 @@ void TCUPillarHeartBeat(void)
if
(
TCUCommuStatus
.
HeartBeatErrCnt
>
TCUCommuParam
.
HeartErrCntMax
)
{
memset
(
&
TCUCommuStatus
,
0x00
,
sizeof
(
TCUCommuStatus
));
//通讯初始化
TCUCommuStatus
.
ConnectFlag
=
0
;
TCUCommuStatus
.
ConnectFlag
=
CONNECT_TIMEOUT
;
TCUCommuStatus
.
HeartBeatErrCnt
=
0
;
TCUCommuStatus
.
HeartBeatVaild
=
0
;
//心跳失效
TCUCanInit
();
...
...
@@ -383,10 +391,10 @@ void TCUPillarHeartBeat_B(void)
{
u32
SendTick
;
if
(
TCUCommuStatus
.
HeartBeatVaild
!=
CONNECT_NORMAL
)
return
;
//
if (TCUCommuStatus.HeartBeatVaild != CONNECT_NORMAL)
//
return;
if
(
0
==
TCUCommuStatus
.
HeartBeatRecvTime_B
)
//初始12s一次
/*
if (0 == TCUCommuStatus.HeartBeatRecvTime_B) //初始12s一次
{
if ((GetSystemTick() -TCUCommuStatus.HeartBeatSendTime_B) > ((u32) TCUCommuParam.HeartTimeout * 1000))
{
...
...
@@ -394,7 +402,7 @@ void TCUPillarHeartBeat_B(void)
if (TCUCommuStatus.HeartBeatErrCnt_B > TCUCommuParam.HeartErrCntMax)
{
TCUCommuStatus
.
ConnectFlag
=
0
;
TCUCommuStatus.ConnectFlag =
CONNECT_TIMEOUT
;
TCUCommuStatus.HeartBeatErrCnt_B = 0;
TCUCommuStatus.HeartBeatVaild = 0; //心跳失效
TCUCanInit();
...
...
@@ -407,7 +415,7 @@ void TCUPillarHeartBeat_B(void)
}
}
}
else
else
*/
{
//心跳周期
SendTick
=
((
u32
)
TCUCommuParam
.
HeartPeriod
*
1000
);
...
...
@@ -838,16 +846,26 @@ void TCULinkProcess(void) //心跳帧处理
}
osMessageQId
TcuSendMsgId
=
0
;
void
TCUComm
(
void
const
*
argument
)
{
osDelay
(
6000
);
TCUCommInit
();
TcuSendMsgId
=
NULL
;
osMessageQDef
(
TcuSendMsgId
,
128
,
StructChargeSend
);
TcuSendMsgId
=
osMessageCreate
(
osMessageQ
(
TcuSendMsgId
),
NULL
);
for
(;
;
)
{
StructChargeSend
DataSend
;
if
(
pdTRUE
==
xQueueReceive
(
TcuSendMsgId
,
&
DataSend
,
0
))
{
TCUSendMsg
(
&
DataSend
);
}
TCURecvProcess
();
//帧接收
TCUWorkProcess
();
//遥测遥信息处理
TCULinkProcess
();
//心跳包处理配置信息
...
...
@@ -855,7 +873,7 @@ void TCUComm(void const * argument)
// TCUCodeDone();//告警故障处理
// TCUSaveEventDone();
osDelay
(
10
0
);
osDelay
(
10
);
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论