Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
39e8b28b
提交
39e8b28b
authored
6月 02, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加中兴模块协议
上级
24b380b5
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
73 行增加
和
26 行删除
+73
-26
Drv_DcModule.h
DcPillar/Src/Drivers/Drv_DcModule.h
+3
-0
Drv_SmartAllocation.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
+0
-0
Drv_SmartAllocation.h
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.h
+4
-0
Drv_SmartAllocation_DcModule.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation_DcModule.c
+66
-26
没有找到文件。
DcPillar/Src/Drivers/Drv_DcModule.h
浏览文件 @
39e8b28b
...
...
@@ -4,6 +4,9 @@
#include "Global.h"
#define DcModule_ZhongXing 1
#define DcModule_BaudRate (250)
#define DcModule_Can eCan_1
...
...
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
浏览文件 @
39e8b28b
差异被折叠。
点击展开。
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.h
浏览文件 @
39e8b28b
...
...
@@ -44,4 +44,8 @@ typedef struct
extern
StructDcModuleGroup
DcModuleGroup
[];
extern
void
DcModuleGroupDateInit
(
void
);
#endif
/*__DRV_SMARTALLOCATION_H__*/
DcPillar/Src/SmartAllocation/Drv_SmartAllocation_DcModule.c
浏览文件 @
39e8b28b
...
...
@@ -39,6 +39,9 @@ void DcModeleRelayInit(void);
extern
void
GetNXRAcVolt
(
CanRxMsg
*
RxMsg
);
extern
void
GetNXRAcVoltMsg
(
u32
addr
);
void
DcModuleMsgReceive
(
CanRxMsg
*
RxMsg
);
static
s8
DcModleVoltChkCnt
=
0
;
...
...
@@ -62,7 +65,7 @@ void DcModuleRxIrqHandle(void)
if
((
CAN_ID_EXT
==
RxMsg
.
IDE
)
&&
(
CAN_RTR_DATA
==
RxMsg
.
RTR
))
{
if
((
0x1207C080
==
(
RxMsg
.
ExtId
&
0xFFFFFFC0
))
&&
(
0x01
==
RxMsg
.
Data
[
0
]))
//模块状态回复
/*
if ((0x1207C080 == (RxMsg.ExtId & 0xFFFFFFC0)) && (0x01 == RxMsg.Data[0])) //模块状态回复
{
Data.Id = RxMsg.ExtId & 0x0000003F;
DcModuleManage_All.OnlineFlag |= ((long long) 1 << Data.Id);
...
...
@@ -73,7 +76,8 @@ void DcModuleRxIrqHandle(void)
DcModuleStatus_ALL[Data.Id] = Data;
}
GetNXRAcVolt
(
&
RxMsg
);
GetNXRAcVolt(&RxMsg);*/
DcModuleMsgReceive
(
&
RxMsg
);
}
}
}
...
...
@@ -87,7 +91,7 @@ void DcModuleRxIrqHandle(void)
if
((
CAN_ID_EXT
==
RxMsg
.
IDE
)
&&
(
CAN_RTR_DATA
==
RxMsg
.
RTR
))
{
if
((
0x1207C080
==
(
RxMsg
.
ExtId
&
0xFFFFFFC0
))
&&
(
0x01
==
RxMsg
.
Data
[
0
]))
//模块状态回复
/*
if ((0x1207C080 == (RxMsg.ExtId & 0xFFFFFFC0)) && (0x01 == RxMsg.Data[0])) //模块状态回复
{
Data.Id = RxMsg.ExtId & 0x0000003F;
DcModuleManage_All.OnlineFlag |= ((long long) 1 << Data.Id);
...
...
@@ -98,7 +102,8 @@ void DcModuleRxIrqHandle(void)
DcModuleStatus_ALL[Data.Id] = Data;
}
GetNXRAcVolt
(
&
RxMsg
);
GetNXRAcVolt(&RxMsg);*/
DcModuleMsgReceive
(
&
RxMsg
);
}
}
}
...
...
@@ -722,32 +727,67 @@ void setDcMoudleVoltChkCnt(s8 val)
DcModleVoltChkCnt
=
0
;
}
void
DcModule_ZhongXing
(
void
)
void
DcModuleMsgReceive_ZhongXing
(
CanRxMsg
*
RxMsg
)
{
u32
addr_src
=
0x6f
;
u32
addr_dst
=
0xa0
;
u32
cmd
=
0
;
StructDcModuleSend
DataSend
=
u8
addr
=
0
;
if
((
0x1801A060
==
(
RxMsg
->
ExtId
&
0xFFFFA060
)))
//心跳应答
{
0
};
DataSend
.
Id
=
(
6
<<
26
)
|
(
cmd
<<
16
)
|
(
addr_dst
<<
8
)
|
(
addr_src
);
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x10
;
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
]
=
0x00
;
addr
=
(
u8
)(
RxMsg
->
ExtId
&
0x000000FF
);
DcModuleManage_All
.
OnlineFlag
|=
((
long
long
)
1
<<
(
addr
&
0x0f
));
}
else
if
((
0x1804A060
==
(
RxMsg
->
ExtId
&
0xFFFFA060
)))
//分组应答
{
addr
=
(
u8
)(
RxMsg
->
ExtId
&
0x000000FF
);
if
(
RxMsg
->
Data
[
0
]
==
0xA8
&&
RxMsg
->
Data
[
1
]
==
0x00
)
{
//分组成功
}
}
else
if
((
0x1810A060
==
(
RxMsg
->
ExtId
&
0xFFFFA060
)))
//遥信帧
{
addr
=
(
u8
)(
RxMsg
->
ExtId
&
0x000000FF
);
//RxMsg->Data[0]; //状态
//RxMsg->Data[1]; //告警故障
//RxMsg->Data[2]; //输出电压H 分辨率: 0.1V/位
//RxMsg->Data[3]; //输出电压L
//RxMsg->Data[4]; //输出电流H 分辨率: 0.01A/位
//RxMsg->Data[5]; //输出电流L
//RxMsg->Data[6]; //当前组号
StructDcModuleStatus
Data
;
Data
.
Id
=
addr
&
0x0F
;
DcModuleManage_All
.
OnlineFlag
|=
((
long
long
)
1
<<
(
addr
&
0x0f
));
Data
.
Currt
=
((
u16
)
RxMsg
->
Data
[
4
]
<<
8
)
+
RxMsg
->
Data
[
5
];
Data
.
Volt
=
((
u16
)
RxMsg
->
Data
[
2
]
<<
8
)
+
RxMsg
->
Data
[
3
];
Data
.
State
=
((
u16
)
RxMsg
->
Data
[
1
]
<<
8
)
+
RxMsg
->
Data
[
0
];
Data
.
RecvTime
=
GetSystemTick
();
Data
.
Temp
=
RxMsg
->
Data
[
6
];
//当前组号
DcModuleStatus_ALL
[
Data
.
Id
]
=
Data
;
}
}
if
(
pdTRUE
!=
xQueueSend
(
DcModeMsg
,
&
DataSend
,
0
))
void
DcModuleMsgReceive_Incre
(
CanRxMsg
*
RxMsg
)
{
StructDcModuleStatus
Data
;
if
((
0x1207C080
==
(
RxMsg
->
ExtId
&
0xFFFFFFC0
))
&&
(
0x01
==
RxMsg
->
Data
[
0
]))
//模块状态回复
{
//osDelay(10);
Data
.
Id
=
RxMsg
->
ExtId
&
0x0000003F
;
DcModuleManage_All
.
OnlineFlag
|=
((
long
long
)
1
<<
Data
.
Id
);
Data
.
Currt
=
((
u32
)
RxMsg
->
Data
[
2
]
<<
8
)
+
RxMsg
->
Data
[
3
];
Data
.
Volt
=
((
u32
)
RxMsg
->
Data
[
4
]
<<
8
)
+
RxMsg
->
Data
[
5
];
Data
.
State
=
((
u32
)
RxMsg
->
Data
[
6
]
<<
8
)
+
RxMsg
->
Data
[
7
];
Data
.
RecvTime
=
GetSystemTick
();
DcModuleStatus_ALL
[
Data
.
Id
]
=
Data
;
}
GetNXRAcVolt
(
RxMsg
);
}
void
DcModuleMsgReceive
(
CanRxMsg
*
RxMsg
)
{
#if DcModule_ZhongXing
DcModuleMsgReceive_ZhongXing
(
RxMsg
);
#else
DcModuleMsgReceive_Incre
(
RxMsg
);
#endif
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论