Commit 9cd16d09 by dongshufeng

增加注释

parent a44fe942
...@@ -6,12 +6,13 @@ ...@@ -6,12 +6,13 @@
## 2. 拓扑分析 ## 2. 拓扑分析
### 2.1 静态拓扑分析 ### 2.1 静态拓扑分析
输入: #### 输入
1. 电气岛 1. 电气岛
2. 属性定义 2. 属性定义
3. 资源定义 3. 资源定义
输出: #### 输出
- 默认输出下面六列 - 默认输出下面六列
<table> <table>
...@@ -23,7 +24,7 @@ ...@@ -23,7 +24,7 @@
<th>name</th> <th>name</th>
</table> </table>
- terminal_cn_dev,如果输出的边是该名称,则输出下面 - terminal_cn_dev,如果输出的边是该名称,则输出下面
<table> <table>
<th>terminal</th> <th>terminal</th>
<th>cn</th> <th>cn</th>
...@@ -31,7 +32,7 @@ ...@@ -31,7 +32,7 @@
<th>type</th> <th>type</th>
</table> </table>
- point_terminal_phase: 如果输出的边是该名称,则输出下面 - point_terminal_phase: 如果输出的边是该名称,则输出下面
<table> <table>
<th>point</th> <th>point</th>
<th>terminal</th> <th>terminal</th>
...@@ -40,11 +41,27 @@ ...@@ -40,11 +41,27 @@
### 2.2 动态拓扑分析 ### 2.2 动态拓扑分析
输入: #### 输入
1. 电气岛
2. 属性定义 - 电气岛
3. 资源定义 - 量测
- 静态拓扑:上述输出的三个表格
#### 输出
- 默认输出下面六列
<table>
<th>cn</th>
<th>tn</th>
</table>
- dev_topo: 如果输出的边是该名称,则输出下面几列
<table>
<th>terminal</th>
<th>cn</th>
<th>tn</th>
<th>dev</th>
</table>
## 3. 输入参数准备 ## 3. 输入参数准备
### 3.1 设备电气参数计算 ### 3.1 设备电气参数计算
......
...@@ -159,6 +159,7 @@ pub unsafe fn run(ptr: i32, len: u32) -> u64 { ...@@ -159,6 +159,7 @@ pub unsafe fn run(ptr: i32, len: u32) -> u64 {
} }
let mut csv_bytes = Vec::with_capacity(2); let mut csv_bytes = Vec::with_capacity(2);
let mut schema = Vec::with_capacity(2); let mut schema = Vec::with_capacity(2);
// 默认或者指定名称
if outgoing.is_empty() || outgoing.contains(&DYN_TOPO_DF_NAME.to_string()) || if outgoing.is_empty() || outgoing.contains(&DYN_TOPO_DF_NAME.to_string()) ||
(!outgoing.contains(&DYN_TOPO_DF_NAME.to_string()) && !outgoing.contains(&DEV_TOPO_DF_NAME.to_string())) { (!outgoing.contains(&DYN_TOPO_DF_NAME.to_string()) && !outgoing.contains(&DEV_TOPO_DF_NAME.to_string())) {
// build topology // build topology
...@@ -173,8 +174,7 @@ pub unsafe fn run(ptr: i32, len: u32) -> u64 { ...@@ -173,8 +174,7 @@ pub unsafe fn run(ptr: i32, len: u32) -> u64 {
]); ]);
csv_bytes.push((DYN_TOPO_DF_NAME.to_string(), topo_csv.into_bytes())); csv_bytes.push((DYN_TOPO_DF_NAME.to_string(), topo_csv.into_bytes()));
schema.push(topo_schema); schema.push(topo_schema);
} } else if outgoing.contains(&DEV_TOPO_DF_NAME.to_string()) {
if outgoing.contains(&DEV_TOPO_DF_NAME.to_string()) {
// build dev connection // build dev connection
let mut dev_csv = String::from("terminal,cn,tn,dev\n"); let mut dev_csv = String::from("terminal,cn,tn,dev\n");
for (terminal, dev) in terminal_dev { for (terminal, dev) in terminal_dev {
......
...@@ -57,14 +57,11 @@ pub unsafe fn run(ptr: i32, len: u32) -> u64 { ...@@ -57,14 +57,11 @@ pub unsafe fn run(ptr: i32, len: u32) -> u64 {
// .open(&base) // .open(&base)
// .expect("Could not create file"); // .expect("Could not create file");
// write graph // write graph
let mut is_matched = false; // 根据输出名称来确定形成不同的data frame
if outgoing.is_empty() || outgoing.contains(&STATIC_TOPO_DF_NAME.to_string()) { if outgoing.is_empty() || outgoing.contains(&STATIC_TOPO_DF_NAME.to_string()) {
is_matched = true;
create_static_topo(&island, &prop_defs, &defines, &mut csv_bytes, &mut schema); create_static_topo(&island, &prop_defs, &defines, &mut csv_bytes, &mut schema);
} }
// 根据输出名称来确定形成不同的data frame else if outgoing.contains(&TERMINAL_DF_NAME.to_string()) {
if outgoing.contains(&TERMINAL_DF_NAME.to_string()) {
is_matched = true;
let mut terminal_csv_str = String::from("terminal,cn,dev,type\n"); let mut terminal_csv_str = String::from("terminal,cn,dev,type\n");
let mut terminal_to_cn = HashMap::with_capacity(2 * island.cns.len()); let mut terminal_to_cn = HashMap::with_capacity(2 * island.cns.len());
// 先建立CN对应的节点 // 先建立CN对应的节点
...@@ -100,8 +97,7 @@ pub unsafe fn run(ptr: i32, len: u32) -> u64 { ...@@ -100,8 +97,7 @@ pub unsafe fn run(ptr: i32, len: u32) -> u64 {
// let _ = file.sync_all(); // let _ = file.sync_all();
// } // }
if outgoing.contains(&POINT_DF_NAME.to_string()) { else if outgoing.contains(&POINT_DF_NAME.to_string()) {
is_matched = true;
let mut point_csv_str = String::from("point,terminal,phase\n"); let mut point_csv_str = String::from("point,terminal,phase\n");
for (_, defines) in &island.measures { for (_, defines) in &island.measures {
for def in defines { for def in defines {
...@@ -118,10 +114,6 @@ pub unsafe fn run(ptr: i32, len: u32) -> u64 { ...@@ -118,10 +114,6 @@ pub unsafe fn run(ptr: i32, len: u32) -> u64 {
Field::new("phase", DataType::Utf8, false), Field::new("phase", DataType::Utf8, false),
])); ]));
} }
// if not matched, default is used
if !is_matched {
create_static_topo(&island, &prop_defs, &defines, &mut csv_bytes, &mut schema);
}
PluginOutput { PluginOutput {
error_msg: None, error_msg: None,
schema: Some(schema), schema: Some(schema),
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论