Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
7c6a81bb
提交
7c6a81bb
authored
5月 08, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
准备完善充电模块监测
上级
869ca7fe
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
44 行增加
和
19 行删除
+44
-19
Drv_SmartAllocation.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
+42
-19
Drv_SmartAllocation.h
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.h
+2
-0
没有找到文件。
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
浏览文件 @
7c6a81bb
...
...
@@ -11,28 +11,28 @@ StructDcModuleGroup DcModuleGroup[] =
{
2
,
0
,
{
1
,
0
,
0
,
0
,
2
,
0
,
0
,
0
1
,
0
,
0
,
0
,
0
,
0
,
2
,
0
,
0
,
0
,
0
,
0
},
Invalid
,
0
,
0
,
0
},
{
1
,
0
,
{
3
,
0
,
0
,
0
,
0
,
0
,
0
,
0
3
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
Invalid
,
0
,
0
,
0
},
{
2
,
0
,
{
4
,
0
,
0
,
0
,
5
,
0
,
0
,
0
4
,
0
,
0
,
0
,
0
,
0
,
5
,
0
,
0
,
0
,
0
,
0
},
Invalid
,
0
,
0
,
0
},
{
1
,
0
,
{
6
,
0
,
0
,
0
,
0
,
0
,
0
,
0
6
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
Invalid
,
0
,
0
,
0
},
...
...
@@ -152,30 +152,32 @@ void DcModuleManageProcess_SmartAllocation(void)
Currt
=
0
;
Volt
=
0
;
Count
=
0
;
status
=
DcModuleGroup
[
i
].
modules
[
0
].
status
;
status
=
DcModuleGroup
[
i
].
modules
[
0
].
online
;
for
(
j
=
0
;
j
<
DcModuleGroup
[
i
].
num
;
j
++
)
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
Flag
=
addr
<<
1
;
DcModuleGroup
[
i
].
modules
[
j
].
status
=
DcModuleStatus_ALL
[
addr
].
State
;
if
(
Flag
&
DcModuleManage_All
.
ValidFlag
)
{
Currt
+=
DcModuleStatus_ALL
[
addr
].
Currt
;
Volt
+=
DcModuleStatus_ALL
[
addr
].
Volt
;
Count
++
;
DcModuleGroup
[
i
].
modules
[
j
].
status
=
Valid
;
DcModuleGroup
[
i
].
modules
[
j
].
online
=
Valid
;
DcModuleGroup
[
i
].
modules
[
j
].
Voltage
=
DcModuleStatus_ALL
[
addr
].
Volt
;
DcModuleGroup
[
i
].
modules
[
j
].
Current
=
DcModuleStatus_ALL
[
addr
].
Currt
;
}
else
{
DcModuleGroup
[
i
].
modules
[
j
].
status
=
Invalid
;
DcModuleGroup
[
i
].
modules
[
j
].
online
=
Invalid
;
}
status
=
status
|
DcModuleGroup
[
i
].
modules
[
j
].
status
;
status
=
status
|
DcModuleGroup
[
i
].
modules
[
j
].
online
;
}
DcModuleGroup
[
i
].
ValidNum
=
Count
;
...
...
@@ -304,7 +306,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
u32
Volt
=
0
;
u8
Cmd
=
0
;
//u32 Value
= 0;
u32
Current
=
0
;
Temp
=
0
;
...
...
@@ -314,7 +316,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
Temp
=
1
;
Volt
=
DcModuleAbility
.
MinVolt
*
100
;
Current
=
DcModuleAbility
.
MinCurrt
*
100
;
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
//释放模块,模块关机
{
//关机, 检测电流, 释放继电器
...
...
@@ -326,6 +328,11 @@ void DcModuleCtrlProcess_SmartAllocation(void)
DcModuleManage
.
SetCurrt
=
DcModuleAbility
.
MinCurrt
*
100
;
DcModuleManage
.
Cmd
=
0xAA
;
//关机
}
else
{
//关机降流
Current
=
0
;
}
}
else
if
(
status
[
i
]
==
Hold_B
)
{
...
...
@@ -335,6 +342,11 @@ void DcModuleCtrlProcess_SmartAllocation(void)
DcModuleManage_B
.
SetCurrt
=
DcModuleAbility
.
MinCurrt
*
100
;
DcModuleManage_B
.
Cmd
=
0xAA
;
//关机
}
else
{
//关机降流
Current
=
0
;
}
}
Cmd
=
0xAA
;
//关机
...
...
@@ -372,14 +384,15 @@ void DcModuleCtrlProcess_SmartAllocation(void)
}
else
{
status
[
i
]
=
DcModuleGroup
[
i
].
status
;
continue
;
}
for
(
u8
j
=
0
;
j
<
DcModuleGroup
[
i
].
num
;
j
++
)
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
Send
CmdToDcModule
(
addr
,
Cmd
);
DcModuleGroup
[
i
].
modules
[
j
].
cmd
=
Cmd
;
Send
DataToDcModule
(
addr
,
Cmd
,
Volt
,
Current
);
}
status
[
i
]
=
DcModuleGroup
[
i
].
status
;
...
...
@@ -389,7 +402,6 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if
(
Temp
)
return
;
Temp
=
0
;
//检测升压 或者 降流
...
...
@@ -407,6 +419,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DcModuleManage
.
Cmd
=
0x55
;
//开机
DcModuleGroup
[
i
].
modules
[
j
].
cmd
=
0x55
;
SendDataToDcModule
(
addr
,
DcModuleManage
.
Cmd
,
DcModuleManage
.
SetVolt
,
DcModuleAbility
.
MinCurrt
*
100
);
}
...
...
@@ -421,7 +434,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
&&
i
!=
2
)
{
if
(
abs
((
s32
)
(
DcModuleGroup
[
i
].
Voltage
)
-
(
s32
)
(
DcModuleManage_B
.
SetVolt
/
100
))
>
100
)
//差距在10V以内,升压完成
if
(
abs
((
s32
)
(
DcModuleGroup
[
i
].
Voltage
)
-
(
s32
)
(
DcModuleManage_B
.
SetVolt
/
100
))
>
100
)
//差距在10V以内,升压完成
,可以切换继电器
{
Temp
++
;
...
...
@@ -430,6 +443,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DcModuleManage_B
.
Cmd
=
0x55
;
//开机
DcModuleGroup
[
i
].
modules
[
j
].
cmd
=
0x55
;
SendDataToDcModule
(
addr
,
DcModuleManage_B
.
Cmd
,
DcModuleManage_B
.
SetVolt
,
DcModuleAbility
.
MinCurrt
*
100
);
}
...
...
@@ -441,19 +455,24 @@ void DcModuleCtrlProcess_SmartAllocation(void)
}
else
if
(
DcModuleGroup
[
i
].
status
==
Valid
&&
i
!=
2
&&
i
!=
0
)
{
if
(
DcModuleGroup
[
i
].
Current
>
50
)
//
大于5A
if
(
DcModuleGroup
[
i
].
Current
>
50
)
//
电流小于5A,将降流完成, 可以释放继电器
{
Temp
++
;
for
(
u8
j
=
0
;
j
<
DcModuleGroup
[
i
].
num
;
j
++
)
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DcModuleGroup
[
i
].
modules
[
j
].
cmd
=
0xAA
;
SendCmdToDcModule
(
addr
,
0xAA
);
//关机
}
}
}
}
if
(
Temp
)
return
;
Temp
=
0
;
//切换继电器
输出
//切换继电器
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
{
if
(
status1
[
i
]
!=
DcModuleGroup
[
i
].
status
)
...
...
@@ -626,6 +645,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DcModuleManage
.
Cmd
=
0x55
;
//开机
DcModuleGroup
[
i
].
modules
[
j
].
cmd
=
0x55
;
SendDataToDcModule
(
addr
,
DcModuleManage
.
Cmd
,
DcModuleManage
.
SetVolt
,
DcModuleManage
.
SetCurrt
);
}
}
...
...
@@ -684,6 +704,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DcModuleManage_B
.
Cmd
=
0x55
;
//开机
DcModuleGroup
[
i
].
modules
[
j
].
cmd
=
0x55
;
SendDataToDcModule
(
addr
,
DcModuleManage_B
.
Cmd
,
DcModuleManage_B
.
SetVolt
,
DcModuleManage_B
.
SetCurrt
);
}
...
...
@@ -735,7 +756,8 @@ void SendDataToDcModule(u8 addr, u8 cmd, u32 volt, u32 current)
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x00
;
DataSend
.
Data
[
1
]
=
0x00
;
if
(
current
!=
0
)
{
Temp
=
current
;
DataSend
.
Data
[
2
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
3
]
=
(
u8
)
(
Temp
>>
0
);
...
...
@@ -750,6 +772,7 @@ void SendDataToDcModule(u8 addr, u8 cmd, u32 volt, u32 current)
{
//osDelay(10);
}
}
DataSend
.
Id
=
0x1307C080
+
addr
;
DataSend
.
Len
=
8
;
...
...
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.h
浏览文件 @
7c6a81bb
...
...
@@ -14,7 +14,9 @@ typedef enum
typedef
struct
{
u8
addr
;
u8
online
;
u8
status
;
u8
cmd
;
u32
Voltage
;
u32
Current
;
}
StructDcModule
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论