Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
b398fc44
提交
b398fc44
authored
5月 08, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善智能分配
上级
e74c2db3
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
119 行增加
和
276 行删除
+119
-276
Drv_SmartAllocation.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
+119
-276
没有找到文件。
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
浏览文件 @
b398fc44
...
@@ -58,7 +58,7 @@ extern void DcModuleCanInit(void);
...
@@ -58,7 +58,7 @@ extern void DcModuleCanInit(void);
extern
osMessageQId
DcModeMsg
;
extern
osMessageQId
DcModeMsg
;
void
SendCmdToDcModule
(
u8
addr
,
u8
cmd
);
void
SendCmdToDcModule
(
u8
addr
,
u8
cmd
);
void
SendDataToDcModule
(
u8
addr
,
u8
cmd
,
u32
volt
,
u32
current
);
void
SendDataToDcModule
(
u8
addr
,
u8
cmd
,
u32
volt
,
u32
current
);
void
DcModuleManageProcess_SmartAllocation
(
void
)
void
DcModuleManageProcess_SmartAllocation
(
void
)
...
@@ -113,7 +113,8 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -113,7 +113,8 @@ void DcModuleManageProcess_SmartAllocation(void)
}
}
}
}
if
(
CheckTick
==
0
)
CheckTick
=
GetSystemTick
();
if
(
CheckTick
==
0
)
CheckTick
=
GetSystemTick
();
if
((
GetSystemTick
()
-
CheckTick
)
<
100
)
if
((
GetSystemTick
()
-
CheckTick
)
<
100
)
return
;
return
;
...
@@ -215,7 +216,9 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -215,7 +216,9 @@ void DcModuleManageProcess_SmartAllocation(void)
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
{
{
if
(
DcModuleGroup
[
i
].
flag
)
continue
;
if
(
DcModuleGroup
[
i
].
flag
)
continue
;
Volt_A
+=
DcModuleGroup
[
i
].
Voltage
;
Volt_A
+=
DcModuleGroup
[
i
].
Voltage
;
Currt_A
+=
DcModuleGroup
[
i
].
Current
;
Currt_A
+=
DcModuleGroup
[
i
].
Current
;
Count_A
+=
DcModuleGroup
[
i
].
ValidNum
;
Count_A
+=
DcModuleGroup
[
i
].
ValidNum
;
...
@@ -223,7 +226,9 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -223,7 +226,9 @@ void DcModuleManageProcess_SmartAllocation(void)
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
{
{
if
(
DcModuleGroup
[
i
].
flag
)
continue
;
if
(
DcModuleGroup
[
i
].
flag
)
continue
;
Volt_B
+=
DcModuleGroup
[
i
].
Voltage
;
Volt_B
+=
DcModuleGroup
[
i
].
Voltage
;
Currt_B
+=
DcModuleGroup
[
i
].
Current
;
Currt_B
+=
DcModuleGroup
[
i
].
Current
;
Count_B
+=
DcModuleGroup
[
i
].
ValidNum
;
Count_B
+=
DcModuleGroup
[
i
].
ValidNum
;
...
@@ -271,13 +276,17 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -271,13 +276,17 @@ void DcModuleCtrlProcess_SmartAllocation(void)
static
u8
LastFlag_A
=
0
;
static
u8
LastFlag_A
=
0
;
static
u8
LastFlag_B
=
0
;
static
u8
LastFlag_B
=
0
;
static
u32
Tick
=
0
;
//
static
u32
Tick
=
0
;
//
if
(
Tick
==
0
)
Tick
=
GetSystemTick
();
if
(
Tick
==
0
)
Tick
=
GetSystemTick
();
if
((
GetSystemTick
()
-
Tick
)
<
100
)
if
((
GetSystemTick
()
-
Tick
)
<
100
)
{
{
return
;
return
;
}
}
Tick
=
GetSystemTick
();
Tick
=
GetSystemTick
();
static
StructDcModuleUsedStatus
status
[
4
]
=
static
StructDcModuleUsedStatus
status
[
4
]
=
...
@@ -294,6 +303,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -294,6 +303,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
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
;
...
@@ -305,9 +315,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -305,9 +315,9 @@ 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
)
{
{
if
(
i
==
0
)
if
(
i
==
0
)
...
@@ -316,18 +326,6 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -316,18 +326,6 @@ void DcModuleCtrlProcess_SmartAllocation(void)
DcModuleManage
.
SetCurrt
=
DcModuleAbility
.
MinCurrt
*
100
;
DcModuleManage
.
SetCurrt
=
DcModuleAbility
.
MinCurrt
*
100
;
DcModuleManage
.
Cmd
=
0xAA
;
//关机
DcModuleManage
.
Cmd
=
0xAA
;
//关机
}
}
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
);
}
}
}
else
if
(
status
[
i
]
==
Hold_B
)
else
if
(
status
[
i
]
==
Hold_B
)
{
{
...
@@ -337,81 +335,38 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -337,81 +335,38 @@ void DcModuleCtrlProcess_SmartAllocation(void)
DcModuleManage_B
.
SetCurrt
=
DcModuleAbility
.
MinCurrt
*
100
;
DcModuleManage_B
.
SetCurrt
=
DcModuleAbility
.
MinCurrt
*
100
;
DcModuleManage_B
.
Cmd
=
0xAA
;
//关机
DcModuleManage_B
.
Cmd
=
0xAA
;
//关机
}
}
else
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 == 3)
{
GPIO_ResetBits
(
RELAY_K9K10_Port
,
RELAY_K9K10_Pin
);
}
}
}
//Volt = DcModuleAbility.MinVolt * 100;
Cmd
=
0xAA
;
//关机
Cmd
=
0xAA
;
//关机
DcModuleGroup
[
i
].
flag
=
0
;
DcModuleGroup
[
i
].
flag
=
0
;
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
//分配到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枪的继电器
{
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);//不会走到这里
//处理模块0组被B枪占用
//GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
}
}*/
Cmd
=
0x55
;
//开机
Cmd
=
0x55
;
//开机
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
{
{
// 开机, 升压, 切换继电器
if
(
i
!=
2
)
//升压
if
(
i
!=
2
)
//升压
{
{
Volt
=
DcModuleManage_B
.
SetVolt
;
Volt
=
DcModuleManage_B
.
SetVolt
;
}
}
else
if
(
status
[
i
]
==
Hold_A
)
/*if (status[i] == Hold_A) //释放连到A枪的继电器
{
{
if (i == 0)
//处理模块组 2 被A枪占用
{
//GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
//不会走到这里
}
}
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
;
//开机
}
}
...
@@ -424,43 +379,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -424,43 +379,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
/*DataSend.Id = 0x1307C080 + addr;
SendCmdToDcModule
(
addr
,
Cmd
);
DataSend.Len = 8;
DataSend.Data[0] = 0x00;
DataSend.Data[1] = 0x00;
Value = DcModuleAbility.MinCurrt * 100;
DataSend.Data[2] = (u8) (Value >> 8);
DataSend.Data[3] = (u8) (Value >> 0);
Value = Volt; //DcModuleAbility.MinVolt * 100;
DataSend.Data[4] = (u8) (Value >> 24);
DataSend.Data[5] = (u8) (Value >> 16);
DataSend.Data[6] = (u8) (Value >> 8);
DataSend.Data[7] = (u8) (Value >> 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);
}*/
SendDataToDcModule
(
addr
,
Cmd
,
Volt
,
DcModuleAbility
.
MinCurrt
*
100
);
}
}
status
[
i
]
=
DcModuleGroup
[
i
].
status
;
status
[
i
]
=
DcModuleGroup
[
i
].
status
;
...
@@ -470,116 +389,49 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -470,116 +389,49 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if
(
Temp
)
if
(
Temp
)
return
;
return
;
Temp
=
0
;
Temp
=
0
;
//检测升压完成
//检测升压 或者 降流
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
{
{
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
)
//差距在10V以内,升压完成
if
(
abs
((
s16
)
(
DcModuleGroup
[
i
].
Voltage
)
-
(
s16
)
(
DcModuleManage
.
SetVolt
/
100
))
>
100
)
//差距在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.Len = 8;
DataSend.Data[0] = 0x00;
DataSend.Data[1] = 0x00;
Value = DcModuleAbility.MinCurrt * 100;
DataSend.Data[2] = (u8) (Value >> 8);
DataSend.Data[3] = (u8) (Value >> 0);
Value = DcModuleManage.SetVolt;
DataSend.Data[4] = (u8) (Value >> 24);
DataSend.Data[5] = (u8) (Value >> 16);
DataSend.Data[6] = (u8) (Value >> 8);
DataSend.Data[7] = (u8) (Value >> 0);
//放入队列
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
//osDelay(10);
}
DcModuleManage
.
Cmd
=
0x55
;
//开机
DcModuleManage
.
Cmd
=
0x55
;
//开机
DataSend.Id = 0x1307C080 + addr;
SendDataToDcModule
(
addr
,
DcModuleManage
.
Cmd
,
DcModuleManage
.
SetVolt
,
DataSend.Len = 8;
DcModuleAbility
.
MinCurrt
*
100
);
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] = DcModuleManage.Cmd;
//放入队列
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
//osDelay(10);
}*/
DcModuleManage
.
Cmd
=
0x55
;
//开机
SendDataToDcModule
(
addr
,
DcModuleManage
.
Cmd
,
DcModuleManage
.
SetVolt
,
DcModuleAbility
.
MinCurrt
*
100
);
}
}
}
}
else
else
{
{
DcModuleGroup
[
i
].
flag
=
0
;
DcModuleGroup
[
i
].
flag
=
0
;
}
}
}
}
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
)
//差距在10V以内,升压完成
if
(
abs
((
s32
)
(
DcModuleGroup
[
i
].
Voltage
)
-
(
s32
)
(
DcModuleManage_B
.
SetVolt
/
100
))
>
100
)
//差距在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.Len = 8;
DataSend.Data[0] = 0x00;
DataSend.Data[1] = 0x00;
Value = DcModuleAbility.MinCurrt * 100;
DataSend.Data[2] = (u8) (Value >> 8);
DataSend.Data[3] = (u8) (Value >> 0);
Value = DcModuleManage_B.SetVolt;
DataSend.Data[4] = (u8) (Value >> 24);
DataSend.Data[5] = (u8) (Value >> 16);
DataSend.Data[6] = (u8) (Value >> 8);
DataSend.Data[7] = (u8) (Value >> 0);
//放入队列
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
//osDelay(10);
}
DcModuleManage_B.Cmd = 0x55; //开机
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] = DcModuleManage_B.Cmd;
//放入队列
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
//osDelay(10);
}*/
DcModuleManage_B
.
Cmd
=
0x55
;
//开机
DcModuleManage_B
.
Cmd
=
0x55
;
//开机
SendDataToDcModule
(
addr
,
DcModuleManage_B
.
Cmd
,
DcModuleManage_B
.
SetVolt
,
DcModuleAbility
.
MinCurrt
*
100
);
SendDataToDcModule
(
addr
,
DcModuleManage_B
.
Cmd
,
DcModuleManage_B
.
SetVolt
,
DcModuleAbility
.
MinCurrt
*
100
);
}
}
}
}
else
else
...
@@ -587,10 +439,18 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -587,10 +439,18 @@ void DcModuleCtrlProcess_SmartAllocation(void)
DcModuleGroup
[
i
].
flag
=
0
;
DcModuleGroup
[
i
].
flag
=
0
;
}
}
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Valid
&&
i
!=
2
&&
i
!=
0
)
{
if
(
DcModuleGroup
[
i
].
Current
>
50
)
//大于5A
{
Temp
++
;
}
}
}
}
if
(
Temp
)
if
(
Temp
)
return
;
return
;
Temp
=
0
;
Temp
=
0
;
//切换继电器输出
//切换继电器输出
...
@@ -603,17 +463,45 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -603,17 +463,45 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
{
{
//切换继电器
//切换继电器
if
(
status
[
i
]
==
Hold_A
)
if
(
status1
[
i
]
==
Hold_A
)
{
if
(
i
==
0
)
{
{
}
}
else
if
(
status
[
i
]
==
Hold_B
)
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
);
}
}
else
if
(
status1
[
i
]
==
Hold_B
)
{
if
(
i
==
2
)
{
}
}
else
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
==
3
)
{
GPIO_ResetBits
(
RELAY_K9K10_Port
,
RELAY_K9K10_Pin
);
}
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
{
{
//切换继电器
//切换继电器
...
@@ -659,11 +547,12 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -659,11 +547,12 @@ void DcModuleCtrlProcess_SmartAllocation(void)
}
}
}
status1
[
i
]
=
DcModuleGroup
[
i
].
status
;
status1
[
i
]
=
DcModuleGroup
[
i
].
status
;
}
}
}
if
(
Temp
)
if
(
Temp
)
return
;
return
;
...
@@ -736,46 +625,8 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -736,46 +625,8 @@ void DcModuleCtrlProcess_SmartAllocation(void)
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.Len = 8;
DataSend.Data[0] = 0x00;
DataSend.Data[1] = 0x00;
Temp = DcModuleManage.SetCurrt;
DataSend.Data[2] = (u8) (Temp >> 8);
DataSend.Data[3] = (u8) (Temp >> 0);
Temp = DcModuleManage.SetVolt;
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);
}
DcModuleManage
.
Cmd
=
0x55
;
//开机
DcModuleManage
.
Cmd
=
0x55
;
//开机
DataSend.Id = 0x1307C080 + addr;
SendDataToDcModule
(
addr
,
DcModuleManage
.
Cmd
,
DcModuleManage
.
SetVolt
,
DcModuleManage
.
SetCurrt
);
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] = DcModuleManage.Cmd;
//放入队列
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
//osDelay(10);
}*/
DcModuleManage
.
Cmd
=
0x55
;
//开机
SendDataToDcModule
(
addr
,
DcModuleManage
.
Cmd
,
DcModuleManage
.
SetVolt
,
DcModuleManage
.
SetCurrt
);
}
}
}
}
}
}
...
@@ -832,45 +683,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -832,45 +683,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
{
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
/*DataSend.Id = 0x1307C080 + addr;
DataSend.Len = 8;
DataSend.Data[0] = 0x00;
DataSend.Data[1] = 0x00;
Temp = DcModuleManage_B.SetCurrt;
DataSend.Data[2] = (u8) (Temp >> 8);
DataSend.Data[3] = (u8) (Temp >> 0);
Temp = DcModuleManage_B.SetVolt;
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);
}
DcModuleManage_B
.
Cmd
=
0x55
;
//开机
DcModuleManage_B
.
Cmd
=
0x55
;
//开机
DataSend.Id = 0x1307C080 + addr;
SendDataToDcModule
(
addr
,
DcModuleManage_B
.
Cmd
,
DcModuleManage_B
.
SetVolt
,
DataSend.Len = 8;
DcModuleManage_B
.
SetCurrt
);
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] = DcModuleManage_B.Cmd;
//放入队列
if (pdTRUE != xQueueSend(DcModeMsg, &DataSend, 0))
{
//osDelay(10);
}*/
DcModuleManage_B
.
Cmd
=
0x55
;
//开机
SendDataToDcModule
(
addr
,
DcModuleManage_B
.
Cmd
,
DcModuleManage_B
.
SetVolt
,
DcModuleManage_B
.
SetCurrt
);
}
}
}
}
...
@@ -880,24 +695,26 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -880,24 +695,26 @@ void DcModuleCtrlProcess_SmartAllocation(void)
}
}
}
}
void
release_DcModule
(
u8
flag
)
void
release_DcModule
(
u8
flag
)
{
{
for
(
u8
i
=
0
;
i
<
4
;
i
++
)
for
(
u8
i
=
0
;
i
<
4
;
i
++
)
{
{
if
(
flag
==
1
)
if
(
flag
==
1
)
{
{
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
{
{
DcModuleGroup
[
i
].
status
=
Valid
;
DcModuleGroup
[
i
].
status
=
Valid
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
i
].
ValidNum
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
i
].
ValidNum
;
DcModuleGroup
[
i
].
flag
=
0
;
DcModuleGroup
[
i
].
flag
=
0
;
}
}
}
}
else
if
(
flag
==
2
)
else
if
(
flag
==
2
)
{
{
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
{
{
DcModuleGroup
[
i
].
status
=
Valid
;
DcModuleGroup
[
i
].
status
=
Valid
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
i
].
ValidNum
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
i
].
ValidNum
;
...
@@ -907,11 +724,13 @@ void release_DcModule(u8 flag)
...
@@ -907,11 +724,13 @@ void release_DcModule(u8 flag)
}
}
}
}
void
SendDataToDcModule
(
u8
addr
,
u8
cmd
,
u32
volt
,
u32
current
)
void
SendDataToDcModule
(
u8
addr
,
u8
cmd
,
u32
volt
,
u32
current
)
{
{
StructDcModuleSend
DataSend
;
StructDcModuleSend
DataSend
;
u32
Temp
;
u32
Temp
;
DataSend
.
Id
=
0x1307C080
+
addr
;
DataSend
.
Id
=
0x1307C080
+
addr
;
DataSend
.
Len
=
8
;
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x00
;
DataSend
.
Data
[
0
]
=
0x00
;
...
@@ -951,3 +770,27 @@ void SendDataToDcModule(u8 addr, u8 cmd, u32 volt,u32 current)
...
@@ -951,3 +770,27 @@ void SendDataToDcModule(u8 addr, u8 cmd, u32 volt,u32 current)
}
}
void
SendCmdToDcModule
(
u8
addr
,
u8
cmd
)
{
StructDcModuleSend
DataSend
;
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);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论