Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
2e38ebd1
提交
2e38ebd1
authored
7月 07, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
TCU升级函数
上级
067175db
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
121 行增加
和
19 行删除
+121
-19
FreeRTOSConfig.h
DcPillar/Src/Config/FreeRTOSConfig.h
+1
-1
Drv_TCUComm.c
DcPillar/Src/TCU/Drv_TCUComm.c
+12
-12
TCU_UpDate.c
DcPillar/Src/TCU/TCU_UpDate.c
+78
-0
TCU_UpDate.h
DcPillar/Src/TCU/TCU_UpDate.h
+6
-0
Thd_TCU.c
DcPillar/Src/Thread/Thd_TCU.c
+24
-6
没有找到文件。
DcPillar/Src/Config/FreeRTOSConfig.h
浏览文件 @
2e38ebd1
...
...
@@ -92,7 +92,7 @@
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
#define configMAX_PRIORITIES ( 7 )
#define configMINIMAL_STACK_SIZE ( ( uint16_t ) 128 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2
0
* 1024 ) )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2
4
* 1024 ) )
#define configMAX_TASK_NAME_LEN ( 16 )
#define configUSE_TRACE_FACILITY 1
#define configUSE_16_BIT_TICKS 0
...
...
DcPillar/Src/TCU/Drv_TCUComm.c
浏览文件 @
2e38ebd1
...
...
@@ -90,9 +90,9 @@ void TCURxIrqHandle(void)
Frame
.
Pgn
+=
0x010000
;
}
switch
(
Frame
.
Pgn
)
//
switch (Frame.Pgn)
{
case
eCmd_start
:
// 充电启动帧
/*
case eCmd_start: // 充电启动帧
case eCmd_stop: // 充电停止帧
case eCmd_time: // 对时帧
case eCmd_versi: // 版本校验帧
...
...
@@ -113,7 +113,7 @@ void TCURxIrqHandle(void)
case eCmd_DCTCUMeasu: // 计费单元遥测帧
///////////心跳帧///////////
case eCmd_TcuHeart: // 计费单元心跳
case
eCmd_TCUErroComm
:
// 计费单元错误帧
case eCmd_TCUErroComm: // 计费单元错误帧
*/
Frame
.
Prio
=
Id1939
.
Disp
.
Prio
;
Frame
.
DP
=
Id1939
.
Disp
.
DP
;
Frame
.
PF
=
Id1939
.
Disp
.
PF
;
...
...
@@ -143,10 +143,10 @@ void TCURxIrqHandle(void)
if (pdTRUE == xQueueSendFromISR(TCUMsg_B, &Frame, &taskWoken))
portEND_SWITCHING_ISR(taskWoken);
}*/
break
;
//
break;
default:
break
;
//
default:
//
break;
}
}
...
...
@@ -188,9 +188,9 @@ void TCURxIrqHandle(void)
Frame
.
Pgn
+=
0x010000
;
}
switch
(
Frame
.
Pgn
)
//
switch (Frame.Pgn)
{
case
eCmd_start
:
// 充电启动帧
/*
case eCmd_start: // 充电启动帧
case eCmd_stop: // 充电停止帧
case eCmd_time: // 对时帧
case eCmd_versi: //版本校验帧
...
...
@@ -210,7 +210,7 @@ void TCURxIrqHandle(void)
///////////数据帧/直流////////////
///////////心跳帧///////////
case eCmd_TcuHeart: // 计费单元心跳
case
eCmd_TCUErroComm
:
// 计费单元错误帧
case eCmd_TCUErroComm: // 计费单元错误帧
*/
Frame
.
Prio
=
Id1939
.
Disp
.
Prio
;
Frame
.
DP
=
Id1939
.
Disp
.
DP
;
Frame
.
PF
=
Id1939
.
Disp
.
PF
;
...
...
@@ -240,10 +240,10 @@ void TCURxIrqHandle(void)
if (pdTRUE == xQueueSendFromISR(TCUMsg_B, &Frame, &taskWoken))
portEND_SWITCHING_ISR(taskWoken);
}*/
break
;
//
break;
default:
break
;
//
default:
//
break;
}
...
...
DcPillar/Src/TCU/TCU_UpDate.c
浏览文件 @
2e38ebd1
...
...
@@ -124,3 +124,81 @@ void StartDownloadAck(u8 ChgNum)
}
}
void
TCURequestIntervalHandle
(
StructTCUSend
*
pPgnRecv
)
{
u8
addr
=
0
;
u32
ProgramSize
=
0
;
u8
Date
[
8
]
=
{
0
};
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
{
if
(
pPgnRecv
->
Data
[
1
]
==
0x01
)
//0x01 --- 直流充电控制器
{
addr
=
pPgnRecv
->
Data
[
2
];
memcpy
(
&
ProgramSize
,
&
pPgnRecv
->
Data
[
3
],
4
);
//ack1
Date
[
1
]
=
0x01
;
Date
[
2
]
=
addr
;
Date
[
3
]
=
0x01
;
TCUSinglePackSendMsg
(
Date
,
8
,
eCmd_RequestIntervalAck1
,
4
,
ChargerCont1939Addr
);
//ack2
Date
[
3
]
=
0x02
;
u32
tmp
=
480
*
1024
;
memcpy
(
&
Date
[
4
],
&
tmp
,
4
);
TCUSinglePackSendMsg
(
Date
,
8
,
eCmd_RequestIntervalAck2
,
4
,
ChargerCont1939Addr
);
}
}
}
void
TCUStartPackageHandle
(
StructTCUSend
*
pPgnRecv
)
{
u8
addr
=
0
;
u32
PackageAddr
=
0
;
u8
Date
[
8
]
=
{
0
};
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
{
if
(
pPgnRecv
->
Data
[
1
]
==
0x01
)
//0x01 --- 直流充电控制器
{
addr
=
pPgnRecv
->
Data
[
2
];
memcpy
(
&
PackageAddr
,
&
pPgnRecv
->
Data
[
3
],
4
);
Date
[
1
]
=
0x01
;
Date
[
2
]
=
addr
;
memcpy
(
&
Date
[
3
],
&
PackageAddr
,
4
);
TCUSinglePackSendMsg
(
Date
,
8
,
eCmd_StartPackageAck
,
4
,
ChargerCont1939Addr
);
}
}
}
u8
TcuUpDateBuffer
[
1024
];
void
TCUSendDateHandle
(
StructTCUSend
*
pPgnRecv
)
{
u8
addr
=
0
;
u16
index
=
0
;
if
(
pPgnRecv
->
DA
==
ChargerCont1939Addr
)
{
if
(
pPgnRecv
->
Data
[
1
]
==
0x01
)
//0x01 --- 直流充电控制器
{
addr
=
pPgnRecv
->
Data
[
2
];
if
(
pPgnRecv
->
Data
[
3
]
==
0x00
)
{
memset
(
TcuUpDateBuffer
,
0xff
,
1024
);
}
index
=
4
*
pPgnRecv
->
Data
[
3
];
memcpy
(
&
TcuUpDateBuffer
[
index
],
&
(
pPgnRecv
->
Data
[
4
]),
4
);
}
}
}
void
TCUCompletePackageHandle
(
StructTCUSend
*
pPgnRecv
)
{
}
void
TCUProgramVerificationHandle
(
StructTCUSend
*
pPgnRecv
)
{
}
void
TCUResetHandle
(
StructTCUSend
*
pPgnRecv
)
{
}
DcPillar/Src/TCU/TCU_UpDate.h
浏览文件 @
2e38ebd1
...
...
@@ -8,6 +8,12 @@
void
TCUStartDownloadHandle
(
StructTCUSend
*
pPgnRecv
);
void
StartDownloadAck
(
u8
ChgNum
);
void
TCURequestIntervalHandle
(
StructTCUSend
*
pPgnRecv
);
void
TCUStartPackageHandle
(
StructTCUSend
*
pPgnRecv
);
void
TCUSendDateHandle
(
StructTCUSend
*
pPgnRecv
);
void
TCUCompletePackageHandle
(
StructTCUSend
*
pPgnRecv
);
void
TCUProgramVerificationHandle
(
StructTCUSend
*
pPgnRecv
);
void
TCUResetHandle
(
StructTCUSend
*
pPgnRecv
);
#endif
/*__TCU_UPDATE_H__*/
DcPillar/Src/Thread/Thd_TCU.c
浏览文件 @
2e38ebd1
...
...
@@ -120,12 +120,6 @@ void TCURecvProcess(void)
case
eCmd_TCUErroComm
:
// 计费单元错误帧
TCUErroCommAnalysis
(
&
pPgnRecv
);
break
;
case
eCmd_upDateHeart
:
TCUUpDateHeartHandle
(
&
pPgnRecv
);
break
;
case
eCmd_startDownload
:
TCUStartDownloadHandle
(
&
pPgnRecv
);
break
;
case
eCmd_valueSet
:
TCUValueSetHandle
(
&
pPgnRecv
);
break
;
...
...
@@ -135,6 +129,30 @@ void TCURecvProcess(void)
case
eCmd_debugInfo
:
TCUDebugInfoHandle
(
&
pPgnRecv
);
break
;
case
eCmd_upDateHeart
:
TCUUpDateHeartHandle
(
&
pPgnRecv
);
break
;
case
eCmd_startDownload
:
TCUStartDownloadHandle
(
&
pPgnRecv
);
break
;
case
eCmd_RequestInterval
:
TCURequestIntervalHandle
(
&
pPgnRecv
);
break
;
case
eCmd_StartPackage
:
TCUStartPackageHandle
(
&
pPgnRecv
);
break
;
case
eCmd_SendDate
:
TCUSendDateHandle
(
&
pPgnRecv
);
break
;
case
eCmd_CompletePackage
:
TCUCompletePackageHandle
(
&
pPgnRecv
);
break
;
case
eCmd_ProgramVerification
:
TCUProgramVerificationHandle
(
&
pPgnRecv
);
break
;
case
eCmd_reset
:
TCUResetHandle
(
&
pPgnRecv
);
break
;
default:
break
;
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论