Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
8a98d085
提交
8a98d085
authored
7月 06, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
准备完善TCU升级
上级
295c413d
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
61 行增加
和
20 行删除
+61
-20
Drv_TCUComm.c
DcPillar/Src/Drivers/Drv_TCUComm.c
+47
-8
Drv_TCUComm.h
DcPillar/Src/Drivers/Drv_TCUComm.h
+11
-12
Thd_TCU.c
DcPillar/Src/Thread/Thd_TCU.c
+3
-0
没有找到文件。
DcPillar/Src/Drivers/Drv_TCUComm.c
浏览文件 @
8a98d085
...
@@ -3148,6 +3148,29 @@ void TCUMeasuRecv(StructTCUSend * pPgnRecv)
...
@@ -3148,6 +3148,29 @@ void TCUMeasuRecv(StructTCUSend * pPgnRecv)
}
}
}
}
void
TCUUpDateHeartHandle
(
StructTCUSend
*
pPgnRecv
)
{
static
u16
count
=
0xffff
;
u16
count_tmp
=
0
;
u8
Data
[
8
]
=
{
0
};
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
{
count_tmp
=
pPgnRecv
->
Data
[
3
];
count_tmp
=
(
count_tmp
<<
8
)
+
pPgnRecv
->
Data
[
2
];
if
(
pPgnRecv
->
Data
[
1
]
==
0x01
&&
(
u16
)(
count_tmp
-
count
)
==
0x0001
)
//0x01 --- 直流充电控制器
{
count
=
count_tmp
;
Data
[
1
]
=
0x01
;
Data
[
2
]
=
(
u8
)(
count_tmp
);
Data
[
3
]
=
(
u8
)(
count_tmp
>>
8
);
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_upDateHeartAck
,
4
,
ChargerCont1939Addr
);
}
}
else
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr_B
)
{
}
}
typedef
struct
typedef
struct
{
{
...
@@ -3214,20 +3237,36 @@ void StartDownloadAck(u8 ChgNum)
...
@@ -3214,20 +3237,36 @@ void StartDownloadAck(u8 ChgNum)
{
{
Data
[
1
]
=
StartDownload
.
type
;
Data
[
1
]
=
StartDownload
.
type
;
Data
[
2
]
=
StartDownload
.
addr
;
Data
[
2
]
=
StartDownload
.
addr
;
Data
[
3
]
=
0x01
;
//01H:禁止下载
if
(
StartDownload
.
type
==
0x01
)
//0x01 --- 直流充电控制器
Data
[
4
]
=
0x01
;
//0x01:英特尔HEX格式
{
Data
[
5
]
=
0x01
;
//0x01:校验码方案A
/*if(StartDownload.ver != 0x0500) //V5版本
Data
[
6
]
=
0x01
;
//01H:本身不支持此功能
{
Data[3] = 0x01;//01H:禁止下载
Data[6] = 0x02;//02H:数据合法性校验失败
}
else*/
{
Data
[
3
]
=
0x00
;
//00H:允许下载
Data
[
6
]
=
0x00
;
//
}
}
else
{
Data
[
3
]
=
0x01
;
//01H:禁止下载
Data
[
6
]
=
0x01
;
//01H:本身不支持此功能
}
Data
[
4
]
=
0x03
;
//0x03:BIN格式
Data
[
5
]
=
0x01
;
//0x01:校验码方案A
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_startDownloadAck
,
4
,
ChargerCont1939Addr
);
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_startDownloadAck
,
4
,
ChargerCont1939Addr
);
}
}
else
if
(
ChgNum
==
2
)
else
if
(
ChgNum
==
2
)
{
{
Data
[
1
]
=
StartDownload_B
.
type
;
Data
[
1
]
=
StartDownload_B
.
type
;
Data
[
2
]
=
StartDownload_B
.
addr
;
Data
[
2
]
=
StartDownload_B
.
addr
;
Data
[
3
]
=
0x01
;
//01H:禁止下载
Data
[
3
]
=
0x01
;
//01H:禁止下载
Data
[
4
]
=
0x0
1
;
//0x01:英特尔HEX
格式
Data
[
4
]
=
0x0
3
;
//0x03:BIN
格式
Data
[
5
]
=
0x01
;
//0x01:校验码方案A
Data
[
5
]
=
0x01
;
//0x01:校验码方案A
Data
[
6
]
=
0x01
;
//01H:本身不支持此功能
Data
[
6
]
=
0x01
;
//01H:本身不支持此功能
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_startDownloadAck
,
4
,
ChargerCont1939Addr_B
);
TCUSinglePackSendMsg
(
Data
,
8
,
eCmd_startDownloadAck
,
4
,
ChargerCont1939Addr_B
);
}
}
}
}
...
...
DcPillar/Src/Drivers/Drv_TCUComm.h
浏览文件 @
8a98d085
...
@@ -353,21 +353,20 @@ typedef enum {
...
@@ -353,21 +353,20 @@ typedef enum {
eCmd_upDateHeartAck
=
0x007100
,
//升级心跳应答帧 007100H
eCmd_upDateHeartAck
=
0x007100
,
//升级心跳应答帧 007100H
eCmd_startDownload
=
0x007200
,
//启动下载命令帧 007200H
eCmd_startDownload
=
0x007200
,
//启动下载命令帧 007200H
eCmd_startDownloadAck
=
0x007300
,
//启动下载应答帧 007300H
eCmd_startDownloadAck
=
0x007300
,
//启动下载应答帧 007300H
eCmd_RequestInterval
=
0x007400
,
//索要区间命令帧 007400H
//索要区间命令帧 007400H
eCmd_RequestIntervalAck1
=
0x007500
,
//索要区间应答帧1 007500H
//索要区间应答帧1 007500H
eCmd_RequestIntervalAck2
=
0x007600
,
//索要区间应答帧2 007600H
//索要区间应答帧2 007600H
eCmd_StartPackage
=
0x007700
,
//启动组包命令帧 007700H
//启动组包命令帧 007700H
eCmd_StartPackageAck
=
0x007800
,
//启动组包应答帧 007800H
//启动组包应答帧 007800H
eCmd_SendDate
=
0x007900
,
//数据发送帧 007900H
//数据发送帧 007900H
eCmd_CompletePackage
=
0x007A00
,
//完成组包命令帧 007A00H
//完成组包命令帧 007A00H
eCmd_CompletePackageAck
=
0x007B00
,
//完成组包应答帧 007B00H
//完成组包应答帧 007B00H
eCmd_ProgramVerification
=
0x007C00
,
//程序校验数据帧 007C00H
//程序校验数据帧 007C00H
eCmd_ProgramVerificationAck
=
0x007D00
,
//程序校验应答帧 007D00H
//程序校验应答帧 007D00H
eCmd_reset
=
0x007E00
,
//立即复位命令帧 007E00H
eCmd_reset
=
0x007E00
,
//立即复位命令帧 007E00H
eCmd_resetAck
=
0x007F00
,
//立即复位应答帧 007F00H
eCmd_resetAck
=
0x007F00
,
//立即复位应答帧 007F00H
/*****************在线升级命令 end*******************/
/*****************在线升级命令 end*******************/
eCmd_valueSet
=
0x008000
,
//定值设置命令帧 008000H
eCmd_valueSet
=
0x008000
,
//定值设置命令帧 008000H
eCmd_valueSetAck
=
0x008100
,
//定值设置命令应答帧 008100H
eCmd_valueSetAck
=
0x008100
,
//定值设置命令应答帧 008100H
eCmd_valueQuery
=
0x008200
,
//定值查询命令帧 008200H
eCmd_valueQuery
=
0x008200
,
//定值查询命令帧 008200H
...
...
DcPillar/Src/Thread/Thd_TCU.c
浏览文件 @
8a98d085
...
@@ -123,6 +123,9 @@ void TCURecvProcess(void)
...
@@ -123,6 +123,9 @@ void TCURecvProcess(void)
case
eCmd_TCUErroComm
:
// 计费单元错误帧
case
eCmd_TCUErroComm
:
// 计费单元错误帧
TCUErroCommAnalysis
(
&
pPgnRecv
);
TCUErroCommAnalysis
(
&
pPgnRecv
);
break
;
break
;
case
eCmd_upDateHeart
:
TCUUpDateHeartHandle
(
&
pPgnRecv
);
break
;
case
eCmd_startDownload
:
case
eCmd_startDownload
:
TCUStartDownloadHandle
(
&
pPgnRecv
);
TCUStartDownloadHandle
(
&
pPgnRecv
);
break
;
break
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论