Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
07212137
提交
07212137
authored
5月 07, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善智能分配
上级
257ed546
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
125 行增加
和
28 行删除
+125
-28
Drv_SmartAllocation.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
+117
-24
Drv_SmartAllocation_DcModule.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation_DcModule.c
+8
-4
没有找到文件。
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
浏览文件 @
07212137
...
@@ -57,6 +57,9 @@ extern void DcModuleCanInit(void);
...
@@ -57,6 +57,9 @@ extern void DcModuleCanInit(void);
extern
osMessageQId
DcModeMsg
;
extern
osMessageQId
DcModeMsg
;
void
SendCmdToDcModule
(
u8
addr
,
u8
cmd
);
void
SendDataToDcModule
(
u8
addr
,
u8
cmd
,
u32
volt
,
u32
current
);
void
DcModuleManageProcess_SmartAllocation
(
void
)
void
DcModuleManageProcess_SmartAllocation
(
void
)
{
{
...
@@ -286,15 +289,15 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -286,15 +289,15 @@ void DcModuleCtrlProcess_SmartAllocation(void)
Invalid
,
Invalid
,
Invalid
,
Invalid
Invalid
,
Invalid
,
Invalid
,
Invalid
};
};
StructDcModuleSend
DataSend
;
//
StructDcModuleSend DataSend;
u32
Temp
;
u32
Temp
;
u8
addr
;
u8
addr
;
u32
Volt
=
0
;
u32
Volt
=
0
;
u8
Cmd
=
0
;
u8
Cmd
=
0
;
u32
Value
=
0
;
//
u32 Value = 0;
Temp
=
0
;
Temp
=
0
;
//释放继电器
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
{
{
if
(
status
[
i
]
!=
DcModuleGroup
[
i
].
status
)
if
(
status
[
i
]
!=
DcModuleGroup
[
i
].
status
)
...
@@ -302,7 +305,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -302,7 +305,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
Temp
=
1
;
Temp
=
1
;
Volt
=
DcModuleAbility
.
MinVolt
*
100
;
Volt
=
DcModuleAbility
.
MinVolt
*
100
;
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
//释放模块和继电器
{
{
//关机
//关机
if
(
status
[
i
]
==
Hold_A
)
if
(
status
[
i
]
==
Hold_A
)
...
@@ -352,16 +355,33 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -352,16 +355,33 @@ void DcModuleCtrlProcess_SmartAllocation(void)
Cmd
=
0xAA
;
//关机
Cmd
=
0xAA
;
//关机
DcModuleGroup
[
i
].
flag
=
0
;
DcModuleGroup
[
i
].
flag
=
0
;
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
//分配到A枪的模块
{
{
if
(
i
!=
0
)
//升压
if
(
i
!=
0
)
//升压
{
{
Volt
=
DcModuleManage
.
SetVolt
;
Volt
=
DcModuleManage
.
SetVolt
;
}
}
else
if
(
status
[
i
]
==
Hold_B
)
/*if (status[i] == Hold_B) //释放连到B枪的继电器
{
{
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
if (i == 0)
}
{
GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else if (i == 1)
{
GPIO_ResetBits(RELAY_K7K8_Port, RELAY_K7K8_Pin);//不会走到这里
}
else if (i == 2)
{
//不会走到这里
}
else if (i == 3)
{
GPIO_ResetBits(RELAY_K9K10_Port, RELAY_K9K10_Pin);//不会走到这里
}
}*/
Cmd
=
0x55
;
//开机
Cmd
=
0x55
;
//开机
}
}
...
@@ -371,10 +391,27 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -371,10 +391,27 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
{
Volt
=
DcModuleManage_B
.
SetVolt
;
Volt
=
DcModuleManage_B
.
SetVolt
;
}
}
else
if
(
status
[
i
]
==
Hold_A
)
/*if (status[i] == Hold_A) //释放连到A枪的继电器
{
{
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
if (i == 0)
}
{
//不会走到这里
}
else if (i == 1)
{
GPIO_ResetBits(RELAY_K1K2_Port, RELAY_K1K2_Pin); //不会走到这里
}
else if (i == 2)
{
GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else if (i == 3)
{
GPIO_ResetBits(RELAY_K3K4_Port, RELAY_K3K4_Pin); //不会走到这里
}
}*/
Cmd
=
0x55
;
//开机
Cmd
=
0x55
;
//开机
}
}
...
@@ -387,7 +424,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -387,7 +424,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DataSend
.
Id
=
0x1307C080
+
addr
;
/*
DataSend.Id = 0x1307C080 + addr;
DataSend.Len = 8;
DataSend.Len = 8;
DataSend.Data[0] = 0x00;
DataSend.Data[0] = 0x00;
DataSend.Data[1] = 0x00;
DataSend.Data[1] = 0x00;
...
@@ -421,7 +458,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -421,7 +458,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
{
//osDelay(10);
//osDelay(10);
}
}*/
SendDataToDcModule
(
addr
,
Cmd
,
Volt
,
DcModuleAbility
.
MinCurrt
*
100
);
}
}
status
[
i
]
=
DcModuleGroup
[
i
].
status
;
status
[
i
]
=
DcModuleGroup
[
i
].
status
;
...
@@ -438,14 +477,14 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -438,14 +477,14 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
{
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
&&
i
!=
0
)
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
&&
i
!=
0
)
{
{
if
(
abs
((
s32
)(
DcModuleGroup
[
i
].
Voltage
*
100
)
-
(
s32
)
DcModuleManage
.
SetVolt
)
>
10000
)
if
(
abs
((
s32
)(
DcModuleGroup
[
i
].
Voltage
*
100
)
-
(
s32
)
DcModuleManage
.
SetVolt
)
>
10000
)
//差距在10V以内,升压完成
{
{
Temp
++
;
Temp
++
;
for
(
u8
j
=
0
;
j
<
DcModuleGroup
[
i
].
num
;
j
++
)
for
(
u8
j
=
0
;
j
<
DcModuleGroup
[
i
].
num
;
j
++
)
{
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DataSend
.
Id
=
0x1307C080
+
addr
;
/*
DataSend.Id = 0x1307C080 + addr;
DataSend.Len = 8;
DataSend.Len = 8;
DataSend.Data[0] = 0x00;
DataSend.Data[0] = 0x00;
DataSend.Data[1] = 0x00;
DataSend.Data[1] = 0x00;
...
@@ -481,7 +520,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -481,7 +520,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
{
//osDelay(10);
//osDelay(10);
}
}*/
DcModuleManage
.
Cmd
=
0x55
;
//开机
SendDataToDcModule
(
addr
,
DcModuleManage
.
Cmd
,
DcModuleManage
.
SetVolt
,
DcModuleAbility
.
MinCurrt
*
100
);
}
}
}
}
else
else
...
@@ -491,14 +532,14 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -491,14 +532,14 @@ void DcModuleCtrlProcess_SmartAllocation(void)
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
&&
i
!=
2
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
&&
i
!=
2
)
{
{
if
(
abs
((
s32
)(
DcModuleGroup
[
i
].
Voltage
*
100
)
-
(
s32
)
DcModuleManage_B
.
SetVolt
)
>
10000
)
if
(
abs
((
s32
)(
DcModuleGroup
[
i
].
Voltage
*
100
)
-
(
s32
)
DcModuleManage_B
.
SetVolt
)
>
10000
)
//差距在10V以内,升压完成
{
{
Temp
++
;
Temp
++
;
for
(
u8
j
=
0
;
j
<
DcModuleGroup
[
i
].
num
;
j
++
)
for
(
u8
j
=
0
;
j
<
DcModuleGroup
[
i
].
num
;
j
++
)
{
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DataSend
.
Id
=
0x1307C080
+
addr
;
/*
DataSend.Id = 0x1307C080 + addr;
DataSend.Len = 8;
DataSend.Len = 8;
DataSend.Data[0] = 0x00;
DataSend.Data[0] = 0x00;
DataSend.Data[1] = 0x00;
DataSend.Data[1] = 0x00;
...
@@ -534,7 +575,11 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -534,7 +575,11 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
{
//osDelay(10);
//osDelay(10);
}
}*/
DcModuleManage_B
.
Cmd
=
0x55
;
//开机
SendDataToDcModule
(
addr
,
DcModuleManage_B
.
Cmd
,
DcModuleManage_B
.
SetVolt
,
DcModuleAbility
.
MinCurrt
*
100
);
}
}
}
}
else
else
...
@@ -611,7 +656,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -611,7 +656,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
}
}
else
else
{
{
//切换继电器
}
}
...
@@ -692,7 +737,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -692,7 +737,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DataSend
.
Id
=
0x1307C080
+
addr
;
/*
DataSend.Id = 0x1307C080 + addr;
DataSend.Len = 8;
DataSend.Len = 8;
DataSend.Data[0] = 0x00;
DataSend.Data[0] = 0x00;
DataSend.Data[1] = 0x00;
DataSend.Data[1] = 0x00;
...
@@ -728,7 +773,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -728,7 +773,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
{
//osDelay(10);
//osDelay(10);
}
}*/
DcModuleManage
.
Cmd
=
0x55
;
//开机
SendDataToDcModule
(
addr
,
DcModuleManage
.
Cmd
,
DcModuleManage
.
SetVolt
,
DcModuleManage
.
SetCurrt
);
}
}
}
}
}
}
...
@@ -785,7 +832,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -785,7 +832,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DataSend
.
Id
=
0x1307C080
+
addr
;
/*
DataSend.Id = 0x1307C080 + addr;
DataSend.Len = 8;
DataSend.Len = 8;
DataSend.Data[0] = 0x00;
DataSend.Data[0] = 0x00;
DataSend.Data[1] = 0x00;
DataSend.Data[1] = 0x00;
...
@@ -821,7 +868,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -821,7 +868,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
{
//osDelay(10);
//osDelay(10);
}
}*/
DcModuleManage_B
.
Cmd
=
0x55
;
//开机
SendDataToDcModule
(
addr
,
DcModuleManage_B
.
Cmd
,
DcModuleManage_B
.
SetVolt
,
DcModuleManage_B
.
SetCurrt
);
}
}
}
}
...
@@ -858,3 +907,47 @@ void release_DcModule(u8 flag)
...
@@ -858,3 +907,47 @@ void release_DcModule(u8 flag)
}
}
}
}
void
SendDataToDcModule
(
u8
addr
,
u8
cmd
,
u32
volt
,
u32
current
)
{
StructDcModuleSend
DataSend
;
u32
Temp
;
DataSend
.
Id
=
0x1307C080
+
addr
;
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x00
;
DataSend
.
Data
[
1
]
=
0x00
;
Temp
=
current
;
DataSend
.
Data
[
2
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
3
]
=
(
u8
)
(
Temp
>>
0
);
Temp
=
volt
;
DataSend
.
Data
[
4
]
=
(
u8
)
(
Temp
>>
24
);
DataSend
.
Data
[
5
]
=
(
u8
)
(
Temp
>>
16
);
DataSend
.
Data
[
6
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
7
]
=
(
u8
)
(
Temp
>>
0
);
//放入队列
if
(
pdTRUE
!=
xQueueSend
(
DcModeMsg
,
&
DataSend
,
0
))
{
//osDelay(10);
}
DataSend
.
Id
=
0x1307C080
+
addr
;
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x02
;
DataSend
.
Data
[
1
]
=
0x00
;
DataSend
.
Data
[
2
]
=
0x00
;
DataSend
.
Data
[
3
]
=
0x00
;
DataSend
.
Data
[
4
]
=
0x00
;
DataSend
.
Data
[
5
]
=
0x00
;
DataSend
.
Data
[
6
]
=
0x00
;
DataSend
.
Data
[
7
]
=
cmd
;
//放入队列
if
(
pdTRUE
!=
xQueueSend
(
DcModeMsg
,
&
DataSend
,
0
))
{
//osDelay(10);
}
}
DcPillar/Src/SmartAllocation/Drv_SmartAllocation_DcModule.c
浏览文件 @
07212137
...
@@ -247,11 +247,12 @@ void DcModuleSet(EnumSwitchStatus Set, u16 Volt, u16 Currt)
...
@@ -247,11 +247,12 @@ void DcModuleSet(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleCtrl
.
NeedVolt
=
Volt
;
DcModuleCtrl
.
NeedVolt
=
Volt
;
DcModuleCtrl
.
NeedCurrt
=
Currt
;
DcModuleCtrl
.
NeedCurrt
=
Currt
;
if
(
DcModuleGroup
[
0
].
status
==
Hold_A
)
/*
if(DcModuleGroup[0].status == Hold_A)
{
{
DcModuleGroup[0].status = Valid;
DcModuleGroup[0].status = Valid;
DcModuleManage.ValidNum -= DcModuleGroup[0].ValidNum;
DcModuleManage.ValidNum -= DcModuleGroup[0].ValidNum;
}
}*/
release_DcModule
(
1
);
}
}
else
else
{
{
...
@@ -264,6 +265,7 @@ void DcModuleSet(EnumSwitchStatus Set, u16 Volt, u16 Currt)
...
@@ -264,6 +265,7 @@ void DcModuleSet(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleGroup
[
0
].
status
=
Hold_A
;
DcModuleGroup
[
0
].
status
=
Hold_A
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
0
].
ValidNum
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
0
].
ValidNum
;
DcModuleManage
.
ValidNum
+=
DcModuleGroup
[
0
].
ValidNum
;
DcModuleManage
.
ValidNum
+=
DcModuleGroup
[
0
].
ValidNum
;
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
}
else
if
(
DcModuleGroup
[
0
].
status
==
Valid
)
else
if
(
DcModuleGroup
[
0
].
status
==
Valid
)
{
{
...
@@ -367,11 +369,12 @@ void DcModuleSet_B(EnumSwitchStatus Set, u16 Volt, u16 Currt)
...
@@ -367,11 +369,12 @@ void DcModuleSet_B(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleCtrl_B
.
NeedVolt
=
Volt
;
DcModuleCtrl_B
.
NeedVolt
=
Volt
;
DcModuleCtrl_B
.
NeedCurrt
=
Currt
;
DcModuleCtrl_B
.
NeedCurrt
=
Currt
;
if
(
DcModuleGroup
[
2
].
status
==
Hold_B
)
/*
if(DcModuleGroup[2].status == Hold_B)
{
{
DcModuleGroup[2].status = Valid;
DcModuleGroup[2].status = Valid;
DcModuleManage_B.ValidNum -= DcModuleGroup[2].ValidNum;
DcModuleManage_B.ValidNum -= DcModuleGroup[2].ValidNum;
}
}*/
release_DcModule
(
2
);
}
}
else
else
{
{
...
@@ -383,6 +386,7 @@ void DcModuleSet_B(EnumSwitchStatus Set, u16 Volt, u16 Currt)
...
@@ -383,6 +386,7 @@ void DcModuleSet_B(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleGroup
[
2
].
status
=
Hold_B
;
DcModuleGroup
[
2
].
status
=
Hold_B
;
DcModuleManage
.
ValidNum
-=
DcModuleGroup
[
2
].
ValidNum
;
DcModuleManage
.
ValidNum
-=
DcModuleGroup
[
2
].
ValidNum
;
DcModuleManage_B
.
ValidNum
+=
DcModuleGroup
[
2
].
ValidNum
;
DcModuleManage_B
.
ValidNum
+=
DcModuleGroup
[
2
].
ValidNum
;
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
}
else
if
(
DcModuleGroup
[
2
].
status
==
Valid
)
else
if
(
DcModuleGroup
[
2
].
status
==
Valid
)
{
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论