Merge pull request #263 from ftu62738-creator/workstation_dev_YB_260410

feat: cherry-pick dev branch updates + 新增东华电化学/SSE自动合成设备驱动
This commit is contained in:
Xie Qiming
2026-05-22 15:22:56 +08:00
committed by GitHub
696 changed files with 105499 additions and 506 deletions

View File

@@ -3,7 +3,7 @@
package: package:
name: unilabos name: unilabos
version: 0.10.19 version: 0.11.2
source: source:
path: ../../unilabos path: ../../unilabos
@@ -54,7 +54,7 @@ requirements:
- pymodbus - pymodbus
- matplotlib - matplotlib
- pylibftdi - pylibftdi
- uni-lab::unilabos-env ==0.10.19 - uni-lab::unilabos-env ==0.11.2
about: about:
repository: https://github.com/deepmodeling/Uni-Lab-OS repository: https://github.com/deepmodeling/Uni-Lab-OS

View File

@@ -2,7 +2,7 @@
package: package:
name: unilabos-env name: unilabos-env
version: 0.10.19 version: 0.11.2
build: build:
noarch: generic noarch: generic

View File

@@ -3,7 +3,7 @@
package: package:
name: unilabos-full name: unilabos-full
version: 0.10.19 version: 0.11.2
build: build:
noarch: generic noarch: generic
@@ -11,7 +11,7 @@ build:
requirements: requirements:
run: run:
# Base unilabos package (includes unilabos-env) # Base unilabos package (includes unilabos-env)
- uni-lab::unilabos ==0.10.19 - uni-lab::unilabos ==0.11.2
# Documentation tools # Documentation tools
- sphinx - sphinx
- sphinx_rtd_theme - sphinx_rtd_theme

View File

@@ -71,6 +71,22 @@ from unilabos.registry.decorators import action
- `_` 开头的方法 → 不扫描 - `_` 开头的方法 → 不扫描
- `@not_action` 标记的方法 → 排除 - `@not_action` 标记的方法 → 排除
### 参数文档 → JSON Schema 元数据
`__init__` 和 action 方法 docstring 的 `Args:` 小节里,使用以下格式生成入参 schema 的显示信息:
```python
"""
Args:
param[显示名称]: 参数说明,会写入 JSON Schema 的 description。
"""
```
- `param[显示名称]` 的显示名称会写入 goal property 的 `title`
- `:` 后面的说明会写入 goal property 的 `description`
- 如果只写 `param: 参数说明``title` 会兜底为字段名,`description` 使用参数说明。
- 如果没有写参数文档,生成器也会兜底补齐 `title=<字段名>``description=""`,但新设备应优先写清楚显示名和说明。
### @topic_config — 状态属性配置 ### @topic_config — 状态属性配置
```python ```python
@@ -105,13 +121,27 @@ import logging
from typing import Any, Dict, Optional from typing import Any, Dict, Optional
from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode
from unilabos.registry.decorators import device, action, topic_config, not_action from unilabos.registry.decorators import action, device, not_action, topic_config
@device(id="my_device", category=["my_category"], description="设备描述") @device(
id="my_device",
category=["my_category"],
description="设备描述",
display_name="设备显示名",
)
class MyDevice: class MyDevice:
"""设备类说明。"""
_ros_node: BaseROS2DeviceNode _ros_node: BaseROS2DeviceNode
def __init__(self, device_id: Optional[str] = None, config: Optional[Dict[str, Any]] = None, **kwargs): def __init__(self, device_id: Optional[str] = None, config: Optional[Dict[str, Any]] = None, **kwargs):
"""
初始化设备。
Args:
device_id[设备ID]: 设备实例 ID默认使用 my_device。
config[设备配置]: 设备启动配置。
"""
self.device_id = device_id or "my_device" self.device_id = device_id or "my_device"
self.config = config or {} self.config = config or {}
self.logger = logging.getLogger(f"MyDevice.{self.device_id}") self.logger = logging.getLogger(f"MyDevice.{self.device_id}")
@@ -133,7 +163,13 @@ class MyDevice:
@action(description="执行操作") @action(description="执行操作")
def my_action(self, param: float = 0.0, name: str = "") -> Dict[str, Any]: def my_action(self, param: float = 0.0, name: str = "") -> Dict[str, Any]:
"""带 @action 装饰器 → 注册为 'my_action' 动作""" """
带 @action 装饰器 → 注册为 'my_action' 动作。
Args:
param[操作数值]: 操作使用的数值参数。
name[操作名称]: 操作名称或备注。
"""
return {"success": True} return {"success": True}
def get_info(self) -> Dict[str, Any]: def get_info(self) -> Dict[str, Any]:

View File

@@ -0,0 +1,450 @@
---
name: filter-workflow-by-tags
description: Query backend workflow list, aggregate all tags, and filter workflows by domain/scenario requirements using tags. Use when the user wants to search workflows, find workflows by tags, list available workflow tags, filter workflows by category/domain/scenario, or mentions 工作流筛选/标签查询/workflow tags/按领域查找工作流.
---
# Uni-Lab 工作流标签筛选指南
通过 Uni-Lab 云端 API 查询工作流列表汇总所有可用标签tags并根据领域和场景要求筛选工作流。
> **重要**:本指南中的 `Authorization: Lab <token>` 是 **Uni-Lab 平台专用的认证方式**`Lab` 是 Uni-Lab 的 auth scheme 关键字,**不是** HTTP Basic 认证。请勿将其替换为 `Basic`。
## 使用模式识别
**用户可能一开始就给出场景目标**(如"我要做有机合成实验"、"找柱层析相关的 protocol")。此时:
1. **识别场景关键词** → 映射到可能的 tags如 synthesis、organic、chromatography、purification
2. **直接执行完整流程**(获取 ak/sk/addr → 拉取所有工作流 → 汇总 tags → 按场景筛选)
3. **展示筛选结果** → 引导用户从候选 workflow 中**选择明确的实验 protocol**
4. **如果用户确认某个 workflow** → 记录 `workflow_uuid`,准备对接“与其他 Skill 的协作”
**如果用户未给场景目标**,则按标准 checklist 询问筛选条件。
---
## 前置条件
使用本指南前,**必须**先确认以下信息。如果缺少任何一项,**立即向用户询问并终止**,等补齐后再继续。
### 1. ak / sk → AUTH
询问用户的启动参数,从 `--ak` `--sk` 或 config.py 中获取。
生成 AUTH token
```bash
python -c "import base64,sys; print('Authorization: Lab ' + base64.b64encode(f'{sys.argv[1]}:{sys.argv[2]}'.encode()).decode())" <ak> <sk>
```
### 2. --addr → BASE URL
| `--addr` 值 | BASE |
| ------------- | ------------------------------------- |
| `test` | `https://leap-lab.test.bohrium.com` |
| `uat` | `https://leap-lab.uat.bohrium.com` |
| `local` | `http://127.0.0.1:48197` |
| 不传(默认) | `https://leap-lab.bohrium.com` |
确认后设置:
```bash
BASE="<根据 addr 确定的 URL>"
AUTH="Authorization: Lab <上面命令输出的 token>"
```
### 3. lab_uuid实验室 UUID
如果用户未提供 `lab_uuid`,通过以下 API 自动获取:
```bash
curl -s -X GET "$BASE/api/v1/edge/lab/info" -H "$AUTH"
```
返回 `data.uuid` 即为 `lab_uuid`
**三项全部就绪后才可开始。**
## Session State
在整个对话过程中agent 需要记住以下状态:
- `lab_uuid` — 实验室 UUID
- `all_workflows` — 完整工作流列表(分页获取后缓存到内存或临时文件)
- `all_tags` — 所有工作流的标签汇总
---
## API 端点
### 查询工作流列表(支持分页)
```
GET $BASE/api/v1/lab/workflow/owner/list?page=<page>&page_size=<page_size>&lab_uuid=$lab_uuid
```
**参数:**
- `page` — 页码,从 1 开始
- `page_size` — 每页数量,建议 1000
- `lab_uuid` — 实验室 UUID
**返回结构:**
```json
{
"code": 0,
"data": {
"has_more": true,
"data": [
{
"uuid": "9661bba2-1b9f-4687-a63d-910245df174b",
"name": "Untitled",
"description": "",
"user_id": "114211",
"published": false,
"tags": null
},
{
"uuid": "e0436638-190b-46bc-b1a1-2711d9602f6a",
"name": "Synthesis v2",
"user_id": "114211",
"published": true,
"tags": ["synthesis", "organic"]
}
]
}
}
```
**字段说明:**
- `has_more` — 若为 `true`,需要继续请求 `page+1`
- `tags` — 可能为 `null`、空数组或字符串数组;聚合时必须容忍 `null`
### 启动工作流(直接运行)
```
POST $BASE/api/v1/lab/workflow/<workflow_uuid>/run
```
**用途:** 直接启动一个 workflow 的默认执行(使用模板中预设的参数),无需创建 notebook。适用于快速测试或无参数变化的重复执行。
**请求体:** 空 JSON `{}` 或省略
**返回:**
```json
{
"code": 0,
"data": "<run_uuid>"
}
```
- `run_uuid` — 本次执行的唯一标识(不是 notebook UUID
**注意:**
- 该接口会使用 workflow 模板中保存的默认参数直接执行
- 如果 workflow 需要动态参数(如 CSV 路径、样品 UUID应使用 `POST /lab/notebook` 创建 notebook 并传入 `node_params`
- 返回的 `run_uuid` 可直接传入下方「查询任务状态」接口查询实时进度
### 查询任务状态
```
GET $BASE/api/v1/lab/mcp/task/<task_uuid>
```
**用途:** 查询由 `POST /lab/workflow/<uuid>/run` 返回的 `run_uuid`(即 task_uuid的实时执行状态包括整体状态和每个节点JOSJob On Station的执行详情。
**路径参数:**
- `task_uuid` — 等同于启动工作流接口返回的 `run_uuid`
**返回:**
```json
{
"code": 0,
"data": {
"status": "running",
"jos_status": [
{
"uuid": "d0e24bfe-8d99-450e-b19d-f25849dfbaad",
"node_name": "PRCXI_BioER_96_wellplate_slot_1",
"action_name": "create_resource",
"status": "success",
"return_info": {
"suc": true,
"error": "",
"return_value": { ... }
}
},
{
"uuid": "...",
"node_name": "...",
"action_name": "transfer_liquid",
"status": "pending",
"return_info": null
}
]
}
}
```
**字段说明:**
- `data.status` — 整体任务状态
- `running` — 正在执行(至少一个节点 pending 或 running
- `success` — 全部节点成功
- `failed` — 有节点失败
- `data.jos_status[]` — 节点级执行列表(按执行顺序)
- `uuid` — 节点执行实例 UUID
- `node_name` — 节点名称(资源/设备名或工位名)
- `action_name` — 动作类型(`create_resource``transfer_liquid``centrifuge`、等)
- `status` — 节点状态:`success``pending``running``failed`
- `return_info` — 执行返回,失败时 `suc=false``error` 有错误信息
**注意:**
- 此接口的 `task_uuid` **是** `POST /lab/workflow/<uuid>/run` 返回的 `run_uuid`,二者为同一个 ID 的不同称呼
- **不要**把 notebook UUID`POST /lab/notebook` 返回)传进来——那条路径用 `GET /lab/notebook/status` 查询
- `jos_status` 数组按节点执行顺序给出;从 pending 数量可以估算剩余进度
- 返回体可能较大(`return_info.return_value` 中可能包含完整 resource tree可在脚本中只提取 `status` + `node_name` + `action_name` 做摘要
**状态轮询示例:**
```bash
# 每 5 秒轮询一次直至完成
TASK="b183d97e-d2b5-4b24-b14b-820df04d87c0"
while :; do
st=$(curl -s -X GET "$BASE/api/v1/lab/mcp/task/$TASK" -H "$AUTH" \
| python3 -c "import json,sys; d=json.load(sys.stdin)['data']; \
print(d['status'], '|', sum(1 for j in d['jos_status'] if j['status']=='success'), '/', len(d['jos_status']))")
echo "$(date +%H:%M:%S) $st"
[[ "$st" == success* || "$st" == failed* ]] && break
sleep 5
done
```
---
## 完整工作流 Checklist
```
Task Progress:
- [ ] Step 0: 识别用户是否已给出场景目标(如"有机合成"、"柱层析"
- 若已给出 → 记录场景关键词,自动进入后续步骤
- 若未给出 → 在 Step 6 询问用户
- [ ] Step 1: 确认 ak/sk → 生成 AUTH token
- [ ] Step 2: 确认 --addr → 设置 BASE URL
- [ ] Step 3: GET /edge/lab/info → 获取 lab_uuid如用户未提供
- [ ] Step 4: 分页获取所有工作流(从 page=1 开始直到 has_more=false
- [ ] Step 5: 汇总所有非空 tags → 生成 all_tags去重、排序、附出现次数
- [ ] Step 6: 根据场景关键词Step 0 或新询问)在 all_tags 中做语义映射 → 确定候选 tags
- 若语义映射不唯一,列出候选 tags 让用户确认
- [ ] Step 7: 按候选 tags 筛选工作流(默认 any 模式,召回优先)
- [ ] Step 8: 展示筛选结果uuid、name、description、tags、published
- [ ] Step 9: 引导用户从结果中选择**明确的实验 protocol**
- 若结果只有 1 条 → 直接确认该 workflow_uuid
- 若结果 210 条 → 让用户按编号选择
- 若结果过多 → 提示收紧条件(加 tag、切换 all 模式、仅 published
- 若结果为空 → 放宽条件(去掉最稀有 tag或提示用户换关键词
- [ ] Step 10: 记录用户选中的 workflow_uuid并提示提交实验或查看详情
```
---
## 推荐路径:使用脚本
同目录下提供 `scripts/filter_workflows.py`,一次完成分页抓取、标签聚合与筛选:
```bash
# 1. 仅汇总标签(不筛选)
python scripts/filter_workflows.py \
--auth "<Lab base64token>" \
--base "$BASE" \
--lab-uuid "$lab_uuid" \
--summary-only
# 2. 按标签筛选ANY 模式:包含任一)
python scripts/filter_workflows.py \
--auth "<Lab base64token>" \
--base "$BASE" \
--lab-uuid "$lab_uuid" \
--tags synthesis organic \
--mode any
# 3. 按标签筛选ALL 模式:必须同时包含)
python scripts/filter_workflows.py \
--auth "<Lab base64token>" \
--base "$BASE" \
--lab-uuid "$lab_uuid" \
--tags synthesis organic \
--mode all \
--output filtered.json
# 4. 仅筛选已发布
python scripts/filter_workflows.py \
--auth "<Lab base64token>" \
--base "$BASE" \
--lab-uuid "$lab_uuid" \
--tags synthesis \
--published-only
```
**`--auth` 参数说明**:传入 `Authorization` 头中 `Lab` 之后的 base64 token不带 `Lab ` 前缀),脚本内部会自动补上 scheme。
**输出结构:**
```json
{
"total_workflows": 150,
"tag_counts": {"synthesis": 12, "organic": 8, "analysis": 5},
"all_tags": ["analysis", "organic", "synthesis"],
"filter": {"tags": ["synthesis", "organic"], "mode": "any"},
"filtered_workflows": [
{"uuid": "...", "name": "...", "description": "...", "tags": [...], "published": true}
]
}
```
---
## 手动路径curl + jq
如果脚本不可用或环境缺少 Python可用 shell 实现。
### 1. 分页抓取(写入 `all_workflows.json`
```bash
page=1
echo "[]" > all_workflows.json
while :; do
resp=$(curl -s -X GET \
"$BASE/api/v1/lab/workflow/owner/list?page=$page&page_size=1000&lab_uuid=$lab_uuid" \
-H "$AUTH")
page_data=$(echo "$resp" | jq -c '.data.data // []')
jq -c --argjson p "$page_data" '. + $p' all_workflows.json > _tmp.json && mv _tmp.json all_workflows.json
has_more=$(echo "$resp" | jq -r '.data.has_more')
[ "$has_more" != "true" ] && break
page=$((page + 1))
done
echo "Total: $(jq 'length' all_workflows.json)"
```
### 2. 汇总所有标签(含出现次数)
```bash
jq '[.[].tags // [] | .[]] | group_by(.) | map({tag: .[0], count: length}) | sort_by(-.count)' \
all_workflows.json
```
### 3. 按标签筛选
```bash
# ANY包含任一指定标签
jq --argjson want '["synthesis","organic"]' \
'[.[] | select((.tags // []) | any(. as $t | $want | index($t)))]' \
all_workflows.json
# ALL同时包含所有指定标签
jq --argjson want '["synthesis","organic"]' \
'[.[] | select(($want | all(. as $w | (.tags // []) | index($w))))]' \
all_workflows.json
```
---
## 筛选策略
agent 拿到用户的「领域 + 场景」自然语言描述时,按如下顺序选择 tag
1. **优先用户显式指定的 tags**:若用户明确给出标签词,直接精确匹配。
2. **从 all_tags 中做语义映射**:若用户描述是自然语言(如"有机合成、柱层析"),在 all_tags 中找语义相关项(如 `synthesis``organic``chromatography`)。必要时展示候选 tag 让用户确认。
3. **模式选择**
- 默认 `any`(更多召回),给出 tag 集合的并集匹配
- 用户强调"必须同时满足"时用 `all`
4. **空结果兜底**:如果筛选为空,放宽条件(去掉最稀有 tag、切换 any 模式),并提醒用户。
---
## 引导到明确的 Protocol
筛选完成后,**最终目标是让用户确认一个具体的 workflow_uuid**,而不是停留在"一堆候选"上。按结果数量采取不同策略:
| 结果数量 | 策略 |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| 0 条 | 放宽筛选(去掉最稀有 tag → 切换 any 模式 → 去掉 `--published-only`)。仍为空则提示换关键词,或列出 `all_tags` 让用户重新选。 |
| 1 条 | 直接确认:"找到唯一匹配:`<name>` (uuid `<uuid>`),是否用它?"用户确认后记录 `workflow_uuid`。 |
| 210 条 | 编号列表展示,让用户选编号。每项给出 name、tags、description 摘要、published 状态。 |
| 1030 条 | 先展示 tag 分布帮助用户进一步收紧:列出匹配结果中最常见的子标签,提示"加一个 tag 可将结果缩小到 N 条"。 |
| >30 条 | 强制要求用户补充条件:仅 published、指定具体 tag 组合、或按名称关键词过滤。 |
**确认 workflow 后**
1.`workflow_uuid` 写入 session state
2. 提示用户下一步可用的 skill
- 提交实验 → 引导到“与其他 Skill 的协作”
- 查看 workflow 详细节点 → `GET /api/v1/lab/workflow/template/detail/<workflow_uuid>`
3. 若用户想换一个,回到筛选步骤。
---
## 展示结果
推荐格式(表格 + 汇总统计):
```
共 150 个工作流,其中 32 个匹配筛选条件 [tags: synthesis OR organic]
| UUID (短) | 名称 | Tags | 已发布 |
|-----------|--------------------------|------------------------------|--------|
| e0436638 | Synthesis v2 | synthesis, organic | ✓ |
| 5b60dbb8 | Grignard Protocol | synthesis, organometallic | ✓ |
| ... | ... | ... | ... |
所有可用标签(按频次):
synthesis (12), organic (8), analysis (5), purification (4), ...
```
如果用户下一步想执行某工作流 → 引导到“与其他 Skill 的协作”。
---
## 常见问题
### Q: tags 为 null 的工作流要不要展示?
默认**不展示**在筛选结果中(因为无法按 tag 匹配)。但在 `--summary-only` 或无筛选条件时,这些工作流仍会计入总数,并在输出中单独列出"未打标签"计数。
### Q: 如何按名称/描述做模糊匹配?
脚本未内置,但可在 jq 中组合:
```bash
jq '[.[] | select((.name + " " + (.description // "")) | test("organic"; "i"))]' all_workflows.json
```
### Q: `page_size=1000` 是否会被服务端限制?
接口通常允许最大 1000如果返回量少于 1000 且 `has_more=false`,说明已到末页。极端情况下若服务端返回错误,可降到 200 或 500 再试。
### Q: 工作流数量极大(>10k怎么办
1. 先跑 `--summary-only` 了解 tag 分布
2. 提示用户先限定 `--published-only` 或指定 tag
3. 考虑将 `all_workflows.json` 缓存到本地,下次直接复用
---
## 与其他 Skill 的协作
- 正常情况下,找到 workflow 之后可以直接用它提交实验(启动工作流的 api 端点 POST $BASE/api/v1/lab/workflow/<workflow_uuid>/run不用别的 skill
- **仅当需要进行多次实验时,使用 batch-submit-experiment** — 筛选到目标工作流后,`workflow_uuid` 直接用于实验提交
## 脚本依赖
`scripts/filter_workflows.py` 仅使用 Python 标准库(`urllib``json``argparse`),无需额外安装。

View File

@@ -0,0 +1,191 @@
#!/usr/bin/env python3
"""分页拉取 Uni-Lab 工作流列表,汇总 tags 并按 tag 筛选。
使用示例:
python filter_workflows.py \
--auth <base64token> \
--base https://leap-lab.test.bohrium.com \
--lab-uuid a9059772-... \
--tags synthesis organic --mode any
仅依赖 Python 标准库。
"""
from __future__ import annotations
import argparse
import json
import sys
import urllib.error
import urllib.parse
import urllib.request
from collections import Counter
def fetch_all_workflows(base: str, auth_token: str, lab_uuid: str, page_size: int = 1000) -> list[dict]:
"""分页拉取所有 owner 工作流,直到 has_more=false。"""
workflows: list[dict] = []
page = 1
while True:
query = urllib.parse.urlencode(
{"page": page, "page_size": page_size, "lab_uuid": lab_uuid}
)
url = f"{base.rstrip('/')}/api/v1/lab/workflow/owner/list?{query}"
req = urllib.request.Request(
url,
headers={
"Authorization": f"Lab {auth_token}",
"Accept": "application/json",
},
)
try:
with urllib.request.urlopen(req, timeout=30) as resp:
payload = json.loads(resp.read().decode("utf-8"))
except urllib.error.HTTPError as e:
sys.exit(f"[ERROR] HTTP {e.code} on page {page}: {e.read().decode('utf-8', 'ignore')}")
except urllib.error.URLError as e:
sys.exit(f"[ERROR] URL error on page {page}: {e.reason}")
if payload.get("code") != 0:
sys.exit(f"[ERROR] API returned non-zero code: {payload}")
data = payload.get("data") or {}
page_items = data.get("data") or []
workflows.extend(page_items)
if not data.get("has_more"):
break
page += 1
# 防御性兜底,避免接口异常导致无限循环
if page > 1000:
print(f"[WARN] page count exceeded 1000, stopping early", file=sys.stderr)
break
return workflows
def aggregate_tags(workflows: list[dict]) -> tuple[list[str], dict[str, int], int]:
"""返回 (sorted_tags, tag_counts, untagged_count)。"""
counter: Counter[str] = Counter()
untagged = 0
for wf in workflows:
tags = wf.get("tags")
if not tags:
untagged += 1
continue
for t in tags:
if isinstance(t, str) and t.strip():
counter[t.strip()] += 1
return sorted(counter.keys()), dict(counter), untagged
def filter_workflows(
workflows: list[dict],
want_tags: list[str],
mode: str,
published_only: bool,
) -> list[dict]:
"""按 tag 筛选。mode 取值 any / all。"""
want_set = {t.strip() for t in want_tags if t.strip()}
out: list[dict] = []
for wf in workflows:
if published_only and not wf.get("published"):
continue
if not want_set:
out.append(wf)
continue
tags = wf.get("tags") or []
tag_set = {t for t in tags if isinstance(t, str)}
if mode == "all":
if want_set.issubset(tag_set):
out.append(wf)
else: # any
if want_set & tag_set:
out.append(wf)
return out
def project_workflow(wf: dict) -> dict:
"""精简输出字段。"""
return {
"uuid": wf.get("uuid"),
"name": wf.get("name"),
"description": wf.get("description", ""),
"tags": wf.get("tags") or [],
"published": bool(wf.get("published")),
"user_id": wf.get("user_id"),
}
def parse_args() -> argparse.Namespace:
p = argparse.ArgumentParser(description="Fetch & filter Uni-Lab workflows by tags.")
p.add_argument("--auth", required=True, help="Base64 token (the part after `Lab `).")
p.add_argument("--base", required=True, help="Base URL, e.g. https://leap-lab.test.bohrium.com")
p.add_argument("--lab-uuid", required=True, help="Lab UUID.")
p.add_argument("--tags", nargs="*", default=[], help="Tags to filter by (space separated).")
p.add_argument(
"--mode",
choices=["any", "all"],
default="any",
help="any: workflow contains at least one tag; all: workflow contains every tag.",
)
p.add_argument("--published-only", action="store_true", help="Only include published workflows.")
p.add_argument("--page-size", type=int, default=1000, help="Page size, default 1000.")
p.add_argument(
"--summary-only",
action="store_true",
help="Print tag summary without applying filter (still fetches everything).",
)
p.add_argument("--output", help="Write JSON result to this path. If omitted, print to stdout.")
return p.parse_args()
def main() -> None:
args = parse_args()
workflows = fetch_all_workflows(
base=args.base,
auth_token=args.auth,
lab_uuid=args.lab_uuid,
page_size=args.page_size,
)
sorted_tags, tag_counts, untagged = aggregate_tags(workflows)
if args.summary_only:
result = {
"total_workflows": len(workflows),
"untagged_count": untagged,
"tag_counts": tag_counts,
"all_tags": sorted_tags,
}
else:
filtered = filter_workflows(
workflows,
want_tags=args.tags,
mode=args.mode,
published_only=args.published_only,
)
result = {
"total_workflows": len(workflows),
"untagged_count": untagged,
"tag_counts": tag_counts,
"all_tags": sorted_tags,
"filter": {
"tags": args.tags,
"mode": args.mode,
"published_only": args.published_only,
},
"matched_count": len(filtered),
"filtered_workflows": [project_workflow(wf) for wf in filtered],
}
payload = json.dumps(result, ensure_ascii=False, indent=2)
if args.output:
with open(args.output, "w", encoding="utf-8") as f:
f.write(payload)
print(f"Wrote {len(workflows)} workflows summary → {args.output}", file=sys.stderr)
else:
print(payload)
if __name__ == "__main__":
main()

View File

@@ -38,7 +38,7 @@ jobs:
- name: Install ROS dependencies, uv and unilabos-msgs - name: Install ROS dependencies, uv and unilabos-msgs
run: | run: |
echo Installing ROS dependencies... echo Installing ROS dependencies...
mamba install -n check-env conda-forge::uv conda-forge::opencv robostack-staging::ros-humble-ros-core robostack-staging::ros-humble-action-msgs robostack-staging::ros-humble-std-msgs robostack-staging::ros-humble-geometry-msgs robostack-staging::ros-humble-control-msgs robostack-staging::ros-humble-nav2-msgs uni-lab::ros-humble-unilabos-msgs robostack-staging::ros-humble-cv-bridge robostack-staging::ros-humble-vision-opencv robostack-staging::ros-humble-tf-transformations robostack-staging::ros-humble-moveit-msgs robostack-staging::ros-humble-tf2-ros robostack-staging::ros-humble-tf2-ros-py conda-forge::transforms3d -c robostack-staging -c conda-forge -c uni-lab -y mamba install -n check-env --override-channels -c robostack-staging -c conda-forge -c uni-lab conda-forge::uv conda-forge::opencv robostack-staging::ros-humble-ros-core robostack-staging::ros-humble-action-msgs robostack-staging::ros-humble-std-msgs robostack-staging::ros-humble-geometry-msgs robostack-staging::ros-humble-control-msgs robostack-staging::ros-humble-nav2-msgs uni-lab::ros-humble-unilabos-msgs robostack-staging::ros-humble-cv-bridge robostack-staging::ros-humble-vision-opencv robostack-staging::ros-humble-tf-transformations robostack-staging::ros-humble-moveit-msgs robostack-staging::ros-humble-tf2-ros robostack-staging::ros-humble-tf2-ros-py conda-forge::transforms3d -y
- name: Install pip dependencies and unilabos - name: Install pip dependencies and unilabos
run: | run: |

View File

@@ -1,6 +1,10 @@
name: Build Conda-Pack Environment name: Build Conda-Pack Environment
on: on:
# 在 UniLabOS Conda Build 成功上传后自动构建非全量 conda-pack
workflow_run:
workflows: ["UniLabOS Conda Build"]
types: [completed]
workflow_dispatch: workflow_dispatch:
inputs: inputs:
branch: branch:
@@ -21,6 +25,16 @@ on:
jobs: jobs:
build-conda-pack: build-conda-pack:
if: |
github.event_name == 'workflow_dispatch' ||
(
github.event_name == 'workflow_run' &&
github.event.workflow_run.conclusion == 'success' &&
github.event.workflow_run.event == 'workflow_run'
)
env:
BUILD_FULL: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.build_full == 'true' }}
PACKAGE_REF: ${{ github.event.inputs.branch || github.event.workflow_run.head_sha || github.ref_name }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@@ -54,7 +68,9 @@ jobs:
id: should_build id: should_build
shell: bash shell: bash
run: | run: |
if [[ -z "${{ github.event.inputs.platforms }}" ]]; then if [[ "${{ github.event_name }}" != "workflow_dispatch" ]]; then
echo "should_build=true" >> $GITHUB_OUTPUT
elif [[ -z "${{ github.event.inputs.platforms }}" ]]; then
echo "should_build=true" >> $GITHUB_OUTPUT echo "should_build=true" >> $GITHUB_OUTPUT
elif [[ "${{ github.event.inputs.platforms }}" == *"${{ matrix.platform }}"* ]]; then elif [[ "${{ github.event.inputs.platforms }}" == *"${{ matrix.platform }}"* ]]; then
echo "should_build=true" >> $GITHUB_OUTPUT echo "should_build=true" >> $GITHUB_OUTPUT
@@ -65,7 +81,7 @@ jobs:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
if: steps.should_build.outputs.should_build == 'true' if: steps.should_build.outputs.should_build == 'true'
with: with:
ref: ${{ github.event.inputs.branch }} ref: ${{ github.event.inputs.branch || github.event.workflow_run.head_sha || github.ref }}
fetch-depth: 0 fetch-depth: 0
- name: Setup Miniforge (with mamba) - name: Setup Miniforge (with mamba)
@@ -75,7 +91,7 @@ jobs:
miniforge-version: latest miniforge-version: latest
use-mamba: true use-mamba: true
python-version: '3.11.14' python-version: '3.11.14'
channels: conda-forge,robostack-staging,uni-lab,defaults channels: conda-forge,robostack-staging,uni-lab
channel-priority: flexible channel-priority: flexible
activate-environment: unilab activate-environment: unilab
auto-update-conda: false auto-update-conda: false
@@ -86,13 +102,13 @@ jobs:
run: | run: |
echo Installing unilabos and dependencies to unilab environment... echo Installing unilabos and dependencies to unilab environment...
echo Using mamba for faster and more reliable dependency resolution... echo Using mamba for faster and more reliable dependency resolution...
echo Build full: ${{ github.event.inputs.build_full }} echo Build full: ${{ env.BUILD_FULL }}
if "${{ github.event.inputs.build_full }}"=="true" ( if "${{ env.BUILD_FULL }}"=="true" (
echo Installing unilabos-full ^(complete package^)... echo Installing unilabos-full ^(complete package^)...
mamba install -n unilab uni-lab::unilabos-full conda-pack -c uni-lab -c robostack-staging -c conda-forge -y mamba install -n unilab --override-channels -c uni-lab -c robostack-staging -c conda-forge uni-lab::unilabos-full conda-pack zstandard -y
) else ( ) else (
echo Installing unilabos ^(minimal package^)... echo Installing unilabos ^(minimal package^)...
mamba install -n unilab uni-lab::unilabos conda-pack -c uni-lab -c robostack-staging -c conda-forge -y mamba install -n unilab --override-channels -c uni-lab -c robostack-staging -c conda-forge uni-lab::unilabos conda-pack zstandard -y
) )
- name: Install conda-pack, unilabos and dependencies (Unix) - name: Install conda-pack, unilabos and dependencies (Unix)
@@ -101,13 +117,13 @@ jobs:
run: | run: |
echo "Installing unilabos and dependencies to unilab environment..." echo "Installing unilabos and dependencies to unilab environment..."
echo "Using mamba for faster and more reliable dependency resolution..." echo "Using mamba for faster and more reliable dependency resolution..."
echo "Build full: ${{ github.event.inputs.build_full }}" echo "Build full: ${{ env.BUILD_FULL }}"
if [[ "${{ github.event.inputs.build_full }}" == "true" ]]; then if [[ "${{ env.BUILD_FULL }}" == "true" ]]; then
echo "Installing unilabos-full (complete package)..." echo "Installing unilabos-full (complete package)..."
mamba install -n unilab uni-lab::unilabos-full conda-pack -c uni-lab -c robostack-staging -c conda-forge -y mamba install -n unilab --override-channels -c uni-lab -c robostack-staging -c conda-forge uni-lab::unilabos-full conda-pack zstandard -y
else else
echo "Installing unilabos (minimal package)..." echo "Installing unilabos (minimal package)..."
mamba install -n unilab uni-lab::unilabos conda-pack -c uni-lab -c robostack-staging -c conda-forge -y mamba install -n unilab --override-channels -c uni-lab -c robostack-staging -c conda-forge uni-lab::unilabos conda-pack zstandard -y
fi fi
- name: Get latest ros-humble-unilabos-msgs version (Windows) - name: Get latest ros-humble-unilabos-msgs version (Windows)
@@ -134,27 +150,27 @@ jobs:
if: steps.should_build.outputs.should_build == 'true' && matrix.platform == 'win-64' if: steps.should_build.outputs.should_build == 'true' && matrix.platform == 'win-64'
run: | run: |
echo Checking for available ros-humble-unilabos-msgs versions... echo Checking for available ros-humble-unilabos-msgs versions...
mamba search ros-humble-unilabos-msgs -c uni-lab -c robostack-staging -c conda-forge || echo Search completed mamba search --override-channels -c uni-lab -c robostack-staging -c conda-forge ros-humble-unilabos-msgs || echo Search completed
echo. echo.
echo Updating ros-humble-unilabos-msgs to latest version... echo Updating ros-humble-unilabos-msgs to latest version...
mamba update -n unilab ros-humble-unilabos-msgs -c uni-lab -c robostack-staging -c conda-forge -y || echo Already at latest version mamba update -n unilab --override-channels -c uni-lab -c robostack-staging -c conda-forge ros-humble-unilabos-msgs -y || echo Already at latest version
- name: Check for newer ros-humble-unilabos-msgs (Unix) - name: Check for newer ros-humble-unilabos-msgs (Unix)
if: steps.should_build.outputs.should_build == 'true' && matrix.platform != 'win-64' if: steps.should_build.outputs.should_build == 'true' && matrix.platform != 'win-64'
shell: bash shell: bash
run: | run: |
echo "Checking for available ros-humble-unilabos-msgs versions..." echo "Checking for available ros-humble-unilabos-msgs versions..."
mamba search ros-humble-unilabos-msgs -c uni-lab -c robostack-staging -c conda-forge || echo "Search completed" mamba search --override-channels -c uni-lab -c robostack-staging -c conda-forge ros-humble-unilabos-msgs || echo "Search completed"
echo "" echo ""
echo "Updating ros-humble-unilabos-msgs to latest version..." echo "Updating ros-humble-unilabos-msgs to latest version..."
mamba update -n unilab ros-humble-unilabos-msgs -c uni-lab -c robostack-staging -c conda-forge -y || echo "Already at latest version" mamba update -n unilab --override-channels -c uni-lab -c robostack-staging -c conda-forge ros-humble-unilabos-msgs -y || echo "Already at latest version"
- name: Install latest unilabos from source (Windows) - name: Install latest unilabos from source (Windows)
if: steps.should_build.outputs.should_build == 'true' && matrix.platform == 'win-64' if: steps.should_build.outputs.should_build == 'true' && matrix.platform == 'win-64'
run: | run: |
echo Uninstalling existing unilabos... echo Uninstalling existing unilabos...
mamba run -n unilab pip uninstall unilabos -y || echo unilabos not installed via pip mamba run -n unilab pip uninstall unilabos -y || echo unilabos not installed via pip
echo Installing unilabos from source (branch: ${{ github.event.inputs.branch }})... echo Installing unilabos from source (ref: ${{ env.PACKAGE_REF }})...
mamba run -n unilab pip install . mamba run -n unilab pip install .
echo Verifying installation... echo Verifying installation...
mamba run -n unilab pip show unilabos mamba run -n unilab pip show unilabos
@@ -165,7 +181,7 @@ jobs:
run: | run: |
echo "Uninstalling existing unilabos..." echo "Uninstalling existing unilabos..."
mamba run -n unilab pip uninstall unilabos -y || echo "unilabos not installed via pip" mamba run -n unilab pip uninstall unilabos -y || echo "unilabos not installed via pip"
echo "Installing unilabos from source (branch: ${{ github.event.inputs.branch }})..." echo "Installing unilabos from source (ref: ${{ env.PACKAGE_REF }})..."
mamba run -n unilab pip install . mamba run -n unilab pip install .
echo "Verifying installation..." echo "Verifying installation..."
mamba run -n unilab pip show unilabos mamba run -n unilab pip show unilabos
@@ -226,7 +242,9 @@ jobs:
if: steps.should_build.outputs.should_build == 'true' && matrix.platform == 'win-64' if: steps.should_build.outputs.should_build == 'true' && matrix.platform == 'win-64'
run: | run: |
echo Packing unilab environment with conda-pack... echo Packing unilab environment with conda-pack...
mamba activate unilab && conda pack -n unilab -o unilab-env-${{ matrix.platform }}.tar.gz --ignore-missing-files for /f "delims=" %%i in ('mamba run -n unilab python -c "import os; print(os.environ['CONDA_PREFIX'])"') do set "UNILAB_PREFIX=%%i"
echo Packing environment at: %UNILAB_PREFIX%
mamba run -n unilab conda-pack -p "%UNILAB_PREFIX%" -o unilab-env-${{ matrix.platform }}.tar.gz --ignore-missing-files
echo Pack file created: echo Pack file created:
dir unilab-env-${{ matrix.platform }}.tar.gz dir unilab-env-${{ matrix.platform }}.tar.gz
@@ -235,8 +253,9 @@ jobs:
shell: bash shell: bash
run: | run: |
echo "Packing unilab environment with conda-pack..." echo "Packing unilab environment with conda-pack..."
mamba install conda-pack -c conda-forge -y UNILAB_PREFIX="$(mamba run -n unilab python -c 'import os; print(os.environ["CONDA_PREFIX"])')"
conda pack -n unilab -o unilab-env-${{ matrix.platform }}.tar.gz --ignore-missing-files echo "Packing environment at: $UNILAB_PREFIX"
mamba run -n unilab conda-pack -p "$UNILAB_PREFIX" -o unilab-env-${{ matrix.platform }}.tar.gz --ignore-missing-files
echo "Pack file created:" echo "Pack file created:"
ls -lh unilab-env-${{ matrix.platform }}.tar.gz ls -lh unilab-env-${{ matrix.platform }}.tar.gz
@@ -267,7 +286,7 @@ jobs:
rem Create README using Python script rem Create README using Python script
echo Creating: README.txt echo Creating: README.txt
python scripts\create_readme.py ${{ matrix.platform }} ${{ github.event.inputs.branch }} dist-package\README.txt python scripts\create_readme.py ${{ matrix.platform }} ${{ env.PACKAGE_REF }} dist-package\README.txt
echo. echo.
echo Distribution package contents: echo Distribution package contents:
@@ -303,7 +322,7 @@ jobs:
# Create README using Python script # Create README using Python script
echo "Creating: README.txt" echo "Creating: README.txt"
python scripts/create_readme.py ${{ matrix.platform }} ${{ github.event.inputs.branch }} dist-package/README.txt python scripts/create_readme.py ${{ matrix.platform }} ${{ env.PACKAGE_REF }} dist-package/README.txt
echo "" echo ""
echo "Distribution package contents:" echo "Distribution package contents:"
@@ -314,7 +333,7 @@ jobs:
if: steps.should_build.outputs.should_build == 'true' if: steps.should_build.outputs.should_build == 'true'
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: unilab-pack-${{ matrix.platform }}-${{ github.event.inputs.branch }} name: unilab-pack-${{ matrix.platform }}-${{ env.PACKAGE_REF }}
path: dist-package/ path: dist-package/
retention-days: 90 retention-days: 90
if-no-files-found: error if-no-files-found: error
@@ -326,9 +345,9 @@ jobs:
echo Build Summary echo Build Summary
echo ========================================== echo ==========================================
echo Platform: ${{ matrix.platform }} echo Platform: ${{ matrix.platform }}
echo Branch: ${{ github.event.inputs.branch }} echo Branch: ${{ env.PACKAGE_REF }}
echo Python version: 3.11.14 echo Python version: 3.11.14
if "${{ github.event.inputs.build_full }}"=="true" ( if "${{ env.BUILD_FULL }}"=="true" (
echo Package: unilabos-full ^(complete^) echo Package: unilabos-full ^(complete^)
) else ( ) else (
echo Package: unilabos ^(minimal^) echo Package: unilabos ^(minimal^)
@@ -337,7 +356,7 @@ jobs:
echo Distribution package contents: echo Distribution package contents:
dir dist-package dir dist-package
echo. echo.
echo Artifact name: unilab-pack-${{ matrix.platform }}-${{ github.event.inputs.branch }} echo Artifact name: unilab-pack-${{ matrix.platform }}-${{ env.PACKAGE_REF }}
echo. echo.
echo After download, extract the ZIP and run: echo After download, extract the ZIP and run:
echo install_unilab.bat echo install_unilab.bat
@@ -351,9 +370,9 @@ jobs:
echo "Build Summary" echo "Build Summary"
echo "==========================================" echo "=========================================="
echo "Platform: ${{ matrix.platform }}" echo "Platform: ${{ matrix.platform }}"
echo "Branch: ${{ github.event.inputs.branch }}" echo "Branch: ${{ env.PACKAGE_REF }}"
echo "Python version: 3.11.14" echo "Python version: 3.11.14"
if [[ "${{ github.event.inputs.build_full }}" == "true" ]]; then if [[ "${{ env.BUILD_FULL }}" == "true" ]]; then
echo "Package: unilabos-full (complete)" echo "Package: unilabos-full (complete)"
else else
echo "Package: unilabos (minimal)" echo "Package: unilabos (minimal)"
@@ -362,7 +381,7 @@ jobs:
echo "Distribution package contents:" echo "Distribution package contents:"
ls -lh dist-package/ ls -lh dist-package/
echo "" echo ""
echo "Artifact name: unilab-pack-${{ matrix.platform }}-${{ github.event.inputs.branch }}" echo "Artifact name: unilab-pack-${{ matrix.platform }}-${{ env.PACKAGE_REF }}"
echo "" echo ""
echo "After download:" echo "After download:"
echo " install_unilab.sh" echo " install_unilab.sh"

View File

@@ -56,7 +56,7 @@ jobs:
miniforge-version: latest miniforge-version: latest
use-mamba: true use-mamba: true
python-version: '3.11.14' python-version: '3.11.14'
channels: conda-forge,robostack-staging,uni-lab,defaults channels: conda-forge,robostack-staging,uni-lab
channel-priority: flexible channel-priority: flexible
activate-environment: unilab activate-environment: unilab
auto-update-conda: false auto-update-conda: false
@@ -66,7 +66,7 @@ jobs:
run: | run: |
echo "Installing unilabos and dependencies to unilab environment..." echo "Installing unilabos and dependencies to unilab environment..."
echo "Using mamba for faster and more reliable dependency resolution..." echo "Using mamba for faster and more reliable dependency resolution..."
mamba install -n unilab uni-lab::unilabos -c uni-lab -c robostack-staging -c conda-forge -y mamba install -n unilab --override-channels -c uni-lab -c robostack-staging -c conda-forge uni-lab::unilabos -y
- name: Install latest unilabos from source - name: Install latest unilabos from source
run: | run: |

View File

@@ -10,6 +10,9 @@ on:
# 支持 tag 推送(不依赖 CI Check # 支持 tag 推送(不依赖 CI Check
push: push:
tags: ['v*'] tags: ['v*']
# GitHub Release 发布时自动构建并上传
release:
types: [published]
# 手动触发 # 手动触发
workflow_dispatch: workflow_dispatch:
inputs: inputs:
@@ -80,7 +83,7 @@ jobs:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
with: with:
# 如果是 workflow_run 触发,使用触发 CI Check 的 commit # 如果是 workflow_run 触发,使用触发 CI Check 的 commit
ref: ${{ github.event.workflow_run.head_sha || github.ref }} ref: ${{ github.event.workflow_run.head_sha || github.event.release.tag_name || github.ref }}
fetch-depth: 0 fetch-depth: 0
- name: Check if platform should be built - name: Check if platform should be built
@@ -96,12 +99,14 @@ jobs:
echo "should_build=false" >> $GITHUB_OUTPUT echo "should_build=false" >> $GITHUB_OUTPUT
fi fi
- name: Setup Miniconda - name: Setup Miniforge
if: steps.should_build.outputs.should_build == 'true' if: steps.should_build.outputs.should_build == 'true'
uses: conda-incubator/setup-miniconda@v3 uses: conda-incubator/setup-miniconda@v3
with: with:
miniconda-version: 'latest' miniforge-version: latest
channels: conda-forge,robostack-staging,defaults use-mamba: true
python-version: '3.11.14'
channels: conda-forge,robostack-staging
channel-priority: strict channel-priority: strict
activate-environment: build-env activate-environment: build-env
auto-update-conda: false auto-update-conda: false
@@ -110,13 +115,15 @@ jobs:
- name: Install rattler-build and anaconda-client - name: Install rattler-build and anaconda-client
if: steps.should_build.outputs.should_build == 'true' if: steps.should_build.outputs.should_build == 'true'
run: | run: |
conda install -c conda-forge rattler-build anaconda-client mamba install -n build-env --override-channels -c conda-forge rattler-build anaconda-client -y
- name: Show environment info - name: Show environment info
if: steps.should_build.outputs.should_build == 'true' if: steps.should_build.outputs.should_build == 'true'
run: | run: |
conda info conda info
conda list | grep -E "(rattler-build|anaconda-client)" conda list -n build-env | grep -E "(rattler-build|anaconda-client)"
conda run -n build-env rattler-build --version
conda run -n build-env anaconda --version
echo "Platform: ${{ matrix.platform }}" echo "Platform: ${{ matrix.platform }}"
echo "OS: ${{ matrix.os }}" echo "OS: ${{ matrix.os }}"
@@ -124,9 +131,9 @@ jobs:
if: steps.should_build.outputs.should_build == 'true' if: steps.should_build.outputs.should_build == 'true'
run: | run: |
if [[ "${{ matrix.platform }}" == "osx-arm64" ]]; then if [[ "${{ matrix.platform }}" == "osx-arm64" ]]; then
rattler-build build -r ./recipes/msgs/recipe.yaml -c robostack -c robostack-staging -c conda-forge conda run -n build-env rattler-build build -r ./recipes/msgs/recipe.yaml -c robostack -c robostack-staging -c conda-forge
else else
rattler-build build -r ./recipes/msgs/recipe.yaml -c robostack -c robostack-staging -c conda-forge conda run -n build-env rattler-build build -r ./recipes/msgs/recipe.yaml -c robostack -c robostack-staging -c conda-forge
fi fi
- name: List built packages - name: List built packages
@@ -157,9 +164,15 @@ jobs:
retention-days: 30 retention-days: 30
- name: Upload to Anaconda.org (unilab organization) - name: Upload to Anaconda.org (unilab organization)
if: steps.should_build.outputs.should_build == 'true' && github.event.inputs.upload_to_anaconda == 'true' if: |
steps.should_build.outputs.should_build == 'true' &&
(
github.event_name == 'release' ||
startsWith(github.ref, 'refs/tags/') ||
github.event.inputs.upload_to_anaconda == 'true'
)
run: | run: |
for package in $(find ./output -name "*.conda"); do for package in $(find ./output -name "*.conda"); do
echo "Uploading $package to unilab organization..." echo "Uploading $package to unilab organization..."
anaconda -t ${{ secrets.ANACONDA_API_TOKEN }} upload --user uni-lab --force "$package" conda run -n build-env anaconda -t ${{ secrets.ANACONDA_API_TOKEN }} upload --user uni-lab --force "$package"
done done

View File

@@ -1,14 +1,10 @@
name: UniLabOS Conda Build name: UniLabOS Conda Build
on: on:
# 在 CI Check 成功后自动触发 # 在 Multi-Platform Conda Build 成功上传 msgs 后自动触发
workflow_run: workflow_run:
workflows: ["CI Check"] workflows: ["Multi-Platform Conda Build"]
types: [completed] types: [completed]
branches: [main, dev]
# 标签推送时直接触发(发布版本)
push:
tags: ['v*']
# 手动触发 # 手动触发
workflow_dispatch: workflow_dispatch:
inputs: inputs:
@@ -33,30 +29,30 @@ on:
type: boolean type: boolean
jobs: jobs:
# 等待 CI Check 完成的 job (仅用于 workflow_run 触发) # 等待上游 msgs 构建完成的 job (仅用于 workflow_run 触发)
wait-for-ci: wait-for-upstream:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event_name == 'workflow_run' if: github.event_name == 'workflow_run'
outputs: outputs:
should_continue: ${{ steps.check.outputs.should_continue }} should_continue: ${{ steps.check.outputs.should_continue }}
steps: steps:
- name: Check CI status - name: Check upstream workflow status
id: check id: check
run: | run: |
if [[ "${{ github.event.workflow_run.conclusion }}" == "success" ]]; then if [[ "${{ github.event.workflow_run.conclusion }}" == "success" && ( "${{ github.event.workflow_run.event }}" == "release" || "${{ github.event.workflow_run.event }}" == "push" ) ]]; then
echo "should_continue=true" >> $GITHUB_OUTPUT echo "should_continue=true" >> $GITHUB_OUTPUT
echo "CI Check passed, proceeding with build" echo "Multi-Platform Conda Build passed for release/tag, proceeding with UniLabOS build"
else else
echo "should_continue=false" >> $GITHUB_OUTPUT echo "should_continue=false" >> $GITHUB_OUTPUT
echo "CI Check did not succeed (status: ${{ github.event.workflow_run.conclusion }}), skipping build" echo "Upstream workflow is not a successful release/tag build (status: ${{ github.event.workflow_run.conclusion }}, event: ${{ github.event.workflow_run.event }}), skipping build"
fi fi
build: build:
needs: [wait-for-ci] needs: [wait-for-upstream]
# 运行条件workflow_run 触发且 CI 成功,或者其他触发方式 # 运行条件workflow_run 触发且上游成功,或者手动触发
if: | if: |
always() && always() &&
(needs.wait-for-ci.result == 'skipped' || needs.wait-for-ci.outputs.should_continue == 'true') (needs.wait-for-upstream.result == 'skipped' || needs.wait-for-upstream.outputs.should_continue == 'true')
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@@ -79,7 +75,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
with: with:
# 如果是 workflow_run 触发,使用触发 CI Check 的 commit # 如果是 workflow_run 触发,使用上游 conda 包构建的 commit
ref: ${{ github.event.workflow_run.head_sha || github.ref }} ref: ${{ github.event.workflow_run.head_sha || github.ref }}
fetch-depth: 0 fetch-depth: 0
@@ -96,12 +92,14 @@ jobs:
echo "should_build=false" >> $GITHUB_OUTPUT echo "should_build=false" >> $GITHUB_OUTPUT
fi fi
- name: Setup Miniconda - name: Setup Miniforge
if: steps.should_build.outputs.should_build == 'true' if: steps.should_build.outputs.should_build == 'true'
uses: conda-incubator/setup-miniconda@v3 uses: conda-incubator/setup-miniconda@v3
with: with:
miniconda-version: 'latest' miniforge-version: latest
channels: conda-forge,robostack-staging,uni-lab,defaults use-mamba: true
python-version: '3.11.14'
channels: conda-forge,robostack-staging,uni-lab
channel-priority: strict channel-priority: strict
activate-environment: build-env activate-environment: build-env
auto-update-conda: false auto-update-conda: false
@@ -110,20 +108,22 @@ jobs:
- name: Install rattler-build and anaconda-client - name: Install rattler-build and anaconda-client
if: steps.should_build.outputs.should_build == 'true' if: steps.should_build.outputs.should_build == 'true'
run: | run: |
conda install -c conda-forge rattler-build anaconda-client mamba install -n build-env --override-channels -c conda-forge rattler-build anaconda-client -y
- name: Show environment info - name: Show environment info
if: steps.should_build.outputs.should_build == 'true' if: steps.should_build.outputs.should_build == 'true'
run: | run: |
conda info conda info
conda list | grep -E "(rattler-build|anaconda-client)" conda list -n build-env | grep -E "(rattler-build|anaconda-client)"
conda run -n build-env rattler-build --version
conda run -n build-env anaconda --version
echo "Platform: ${{ matrix.platform }}" echo "Platform: ${{ matrix.platform }}"
echo "OS: ${{ matrix.os }}" echo "OS: ${{ matrix.os }}"
echo "Build full package: ${{ github.event.inputs.build_full || 'false' }}" echo "Build full package: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.build_full == 'true' }}"
echo "Building packages:" echo "Building packages:"
echo " - unilabos-env (environment dependencies)" echo " - unilabos-env (environment dependencies)"
echo " - unilabos (with pip package)" echo " - unilabos (with pip package)"
if [[ "${{ github.event.inputs.build_full }}" == "true" ]]; then if [[ "${{ github.event_name == 'workflow_dispatch' && github.event.inputs.build_full == 'true' }}" == "true" ]]; then
echo " - unilabos-full (complete package)" echo " - unilabos-full (complete package)"
fi fi
@@ -131,14 +131,19 @@ jobs:
if: steps.should_build.outputs.should_build == 'true' if: steps.should_build.outputs.should_build == 'true'
run: | run: |
echo "Building unilabos-env (conda environment dependencies)..." echo "Building unilabos-env (conda environment dependencies)..."
rattler-build build -r .conda/environment/recipe.yaml -c uni-lab -c robostack-staging -c conda-forge conda run -n build-env rattler-build build -r .conda/environment/recipe.yaml -c uni-lab -c robostack-staging -c conda-forge
- name: Upload unilabos-env to Anaconda.org (if enabled) - name: Upload unilabos-env to Anaconda.org (if enabled)
if: steps.should_build.outputs.should_build == 'true' && github.event.inputs.upload_to_anaconda == 'true' if: |
steps.should_build.outputs.should_build == 'true' &&
(
github.event_name == 'workflow_run' ||
github.event.inputs.upload_to_anaconda == 'true'
)
run: | run: |
echo "Uploading unilabos-env to uni-lab organization..." echo "Uploading unilabos-env to uni-lab organization..."
for package in $(find ./output -name "unilabos-env*.conda"); do for package in $(find ./output -name "unilabos-env*.conda"); do
anaconda -t ${{ secrets.ANACONDA_API_TOKEN }} upload --user uni-lab --force "$package" conda run -n build-env anaconda -t ${{ secrets.ANACONDA_API_TOKEN }} upload --user uni-lab --force "$package"
done done
- name: Build unilabos (with pip package) - name: Build unilabos (with pip package)
@@ -146,33 +151,40 @@ jobs:
run: | run: |
echo "Building unilabos package..." echo "Building unilabos package..."
# 如果已上传到 Anaconda从 uni-lab channel 获取 unilabos-env否则从本地 output 获取 # 如果已上传到 Anaconda从 uni-lab channel 获取 unilabos-env否则从本地 output 获取
rattler-build build -r .conda/base/recipe.yaml -c uni-lab -c robostack-staging -c conda-forge --channel ./output conda run -n build-env rattler-build build -r .conda/base/recipe.yaml -c uni-lab -c robostack-staging -c conda-forge --channel ./output
- name: Upload unilabos to Anaconda.org (if enabled) - name: Upload unilabos to Anaconda.org (if enabled)
if: steps.should_build.outputs.should_build == 'true' && github.event.inputs.upload_to_anaconda == 'true' if: |
steps.should_build.outputs.should_build == 'true' &&
(
github.event_name == 'workflow_run' ||
github.event.inputs.upload_to_anaconda == 'true'
)
run: | run: |
echo "Uploading unilabos to uni-lab organization..." echo "Uploading unilabos to uni-lab organization..."
for package in $(find ./output -name "unilabos-0*.conda" -o -name "unilabos-[0-9]*.conda"); do for package in $(find ./output -name "unilabos-0*.conda" -o -name "unilabos-[0-9]*.conda"); do
anaconda -t ${{ secrets.ANACONDA_API_TOKEN }} upload --user uni-lab --force "$package" conda run -n build-env anaconda -t ${{ secrets.ANACONDA_API_TOKEN }} upload --user uni-lab --force "$package"
done done
- name: Build unilabos-full - Only when explicitly requested - name: Build unilabos-full - Only when explicitly requested
if: | if: |
steps.should_build.outputs.should_build == 'true' && steps.should_build.outputs.should_build == 'true' &&
github.event_name == 'workflow_dispatch' &&
github.event.inputs.build_full == 'true' github.event.inputs.build_full == 'true'
run: | run: |
echo "Building unilabos-full package on ${{ matrix.platform }}..." echo "Building unilabos-full package on ${{ matrix.platform }}..."
rattler-build build -r .conda/full/recipe.yaml -c uni-lab -c robostack-staging -c conda-forge --channel ./output conda run -n build-env rattler-build build -r .conda/full/recipe.yaml -c uni-lab -c robostack-staging -c conda-forge --channel ./output
- name: Upload unilabos-full to Anaconda.org (if enabled) - name: Upload unilabos-full to Anaconda.org (if enabled)
if: | if: |
steps.should_build.outputs.should_build == 'true' && steps.should_build.outputs.should_build == 'true' &&
github.event_name == 'workflow_dispatch' &&
github.event.inputs.build_full == 'true' && github.event.inputs.build_full == 'true' &&
github.event.inputs.upload_to_anaconda == 'true' github.event.inputs.upload_to_anaconda == 'true'
run: | run: |
echo "Uploading unilabos-full to uni-lab organization..." echo "Uploading unilabos-full to uni-lab organization..."
for package in $(find ./output -name "unilabos-full*.conda"); do for package in $(find ./output -name "unilabos-full*.conda"); do
anaconda -t ${{ secrets.ANACONDA_API_TOKEN }} upload --user uni-lab --force "$package" conda run -n build-env anaconda -t ${{ secrets.ANACONDA_API_TOKEN }} upload --user uni-lab --force "$package"
done done
- name: List built packages - name: List built packages

View File

@@ -1,5 +1,5 @@
channel_sources: channel_sources:
- robostack,robostack-staging,conda-forge,defaults - robostack,robostack-staging,conda-forge
gazebo: gazebo:
- '11' - '11'

View File

@@ -1,6 +1,6 @@
package: package:
name: ros-humble-unilabos-msgs name: ros-humble-unilabos-msgs
version: 0.10.19 version: 0.11.2
source: source:
path: ../../unilabos_msgs path: ../../unilabos_msgs
target_directory: src target_directory: src

View File

@@ -1,6 +1,6 @@
package: package:
name: unilabos name: unilabos
version: "0.10.19" version: "0.11.2"
source: source:
path: ../.. path: ../..

View File

@@ -4,7 +4,7 @@ package_name = 'unilabos'
setup( setup(
name=package_name, name=package_name,
version='0.10.19', version='0.11.2',
packages=find_packages(), packages=find_packages(),
include_package_data=True, include_package_data=True,
install_requires=['setuptools'], install_requires=['setuptools'],

View File

@@ -1 +1 @@
__version__ = "0.10.19" __version__ = "0.11.2"

View File

@@ -12,6 +12,15 @@ from typing import Dict, Any, List
import networkx as nx import networkx as nx
import yaml import yaml
# Windows 中文系统 stdout 默认 GBK无法编码 banner / emoji 日志中的 Unicode 字符
# 强制 stdout/stderr 用 UTF-8避免 print 触发 UnicodeEncodeError 导致进程崩溃
if sys.platform == "win32":
for _stream in (sys.stdout, sys.stderr):
try:
_stream.reconfigure(encoding="utf-8", errors="replace") # type: ignore[attr-defined]
except (AttributeError, OSError):
pass
# 首先添加项目根目录到路径 # 首先添加项目根目录到路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
unilabos_dir = os.path.dirname(os.path.dirname(current_dir)) unilabos_dir = os.path.dirname(os.path.dirname(current_dir))

View File

@@ -59,6 +59,7 @@ class JobAddReq(BaseModel):
task_id: str = Field(examples=["task_id"], description="task uuid (auto-generated if empty)", default="") task_id: str = Field(examples=["task_id"], description="task uuid (auto-generated if empty)", default="")
job_id: str = Field(examples=["job_id"], description="goal uuid (auto-generated if empty)", default="") job_id: str = Field(examples=["job_id"], description="goal uuid (auto-generated if empty)", default="")
node_id: str = Field(examples=["node_id"], description="node uuid", default="") node_id: str = Field(examples=["node_id"], description="node uuid", default="")
notebook_id: str = Field(examples=["notebook_id"], description="notebook uuid", default="")
server_info: dict = Field( server_info: dict = Field(
examples=[{"send_timestamp": 1717000000.0}], examples=[{"send_timestamp": 1717000000.0}],
description="server info (auto-generated if empty)", description="server info (auto-generated if empty)",

View File

@@ -10,29 +10,170 @@ import shutil
import sys import sys
_PATCH_MARKER = "# UniLabOS DLL Patch"
_PATCH_END_MARKER = "# End UniLabOS DLL Patch"
# 75 = EX_TEMPFAIL: 临时失败、重试即可,避免与业务退出码冲突
_RESTART_EXIT_CODE = 75
def _build_dll_patch(lib_bin: str, preload_pyd: str = "") -> str:
"""生成一段加在目标文件顶部的 DLL 加载补丁源码。
- 始终把 ``lib_bin`` 加入 DLL 搜索路径,并把 handle 挂在模块属性上,
防止 GC 清掉搜索路径(``os.add_dll_directory`` 的句柄被回收时
目录会被移除)。
- 可选地用 ``ctypes.CDLL`` 预加载一个 .pyd把它的依赖 DLL 提前装入
进程内存,作为 ``rclpy._rclpy_pybind11`` 这类首次加载点的兜底。
"""
# 用 repr() 序列化路径Python 解析 repr 的结果会还原成原始字符串,
# 不需要也不能再叠加 raw-string 前缀(叠了反而会让 \\ 变成两个反斜杠)。
lines = [
_PATCH_MARKER,
"import os as _ulab_os",
f"_ulab_p = {lib_bin!r}",
'if hasattr(_ulab_os, "add_dll_directory") and _ulab_os.path.isdir(_ulab_p):',
" try: _UNILAB_DLL_HANDLE = _ulab_os.add_dll_directory(_ulab_p)",
" except Exception: _UNILAB_DLL_HANDLE = None",
]
if preload_pyd:
lines.extend(
[
"import ctypes as _ulab_ctypes",
f"try: _ulab_ctypes.CDLL({preload_pyd!r})",
"except Exception: pass",
]
)
lines.append(_PATCH_END_MARKER)
return "\n".join(lines) + "\n"
def _apply_dll_patch(file_path: str, lib_bin: str, preload_pyd: str = "") -> bool:
"""把 DLL 补丁前置到 ``file_path``。文件不存在或已打过补丁则返回 False。"""
if not os.path.isfile(file_path):
return False
with open(file_path, "r", encoding="utf-8") as f:
content = f.read()
if _PATCH_MARKER in content:
return False
shutil.copy2(file_path, file_path + ".bak")
with open(file_path, "w", encoding="utf-8") as f:
f.write(_build_dll_patch(lib_bin, preload_pyd) + content)
return True
def _print_restart_banner(patched_files):
"""打印重启提示并以 EX_TEMPFAIL 退出。
- 不使用 ANSI 颜色码Windows 旧版 cmd / PowerShell 5 默认不开 VT 处理,
会把 ``\\033[1;33m`` 当做字面字符显示,反而让用户看不到正文。
- 同时写入 stderr 与 stdout某些上层 launcher / supervisor 只重定向
其中一路,写两遍能保证用户至少看到一份。
- 写入前防御性把流切到 UTF-8 with replace``main.py`` 里已经做过一次,
但本模块也可能被绕过 ``main.py`` 的代码路径直接 importreconfigure
失败也只是退回 errors=replace不影响整体流程。
"""
if sys.platform == "win32":
for _stream in (sys.stdout, sys.stderr):
try:
_stream.reconfigure(encoding="utf-8", errors="replace") # type: ignore[attr-defined]
except (AttributeError, OSError):
pass
bar = "#" * 78
files_lines = [f"[UniLabOS] - {p}" for p in patched_files]
body = "\n".join(
[
"",
bar,
bar,
"##",
"## [UniLabOS] Windows + conda 下检测到 DLL 加载失败,已自动打补丁。",
"## [UniLabOS] DLL load failure detected on Windows + conda;",
"## [UniLabOS] the following files have been auto-patched:",
"##",
*[f"## {line}" for line in files_lines],
"##",
"## [UniLabOS] 当前进程的 rclpy 状态已损坏,补丁需要在新进程才生效。",
"## [UniLabOS] The current process is unusable; the patch only takes",
"## [UniLabOS] effect on a fresh process.",
"##",
"## >>> 请重新运行刚才的命令 / Please re-run the same command. <<<",
"##",
bar,
bar,
"",
]
)
for stream in (sys.stderr, sys.stdout):
try:
stream.write(body)
stream.flush()
except Exception:
try:
print(body, file=stream)
except Exception:
pass
sys.exit(_RESTART_EXIT_CODE)
def patch_rclpy_dll_windows(): def patch_rclpy_dll_windows():
"""在 Windows + conda 环境下 rclpy 打 DLL 加载补丁""" """在 Windows + conda 环境下修复 rclpy / rosidl typesupport 的 DLL 加载。
背景conda 安装的 ros 系列包,其原生扩展依赖 ``$CONDA_PREFIX/Library/bin``
下的 DLL只有 conda 环境被正确激活、且 PATH 中含 ``Library/bin`` 时,
``os.add_dll_directory`` 才能找到它们。当从快捷方式 / IDE / 子进程 /
没激活的 shell 启动 ``unilab`` 时,会出现 ``DLL load failed``。
本函数会:
1) 修补 ``rclpy/impl/implementation_singleton.py`` —— rclpy 自身的 C 扩展入口;
2) 修补 ``rpyutils/add_dll_directories.py`` —— 所有 ``*_s__rosidl_typesupport_c.pyd``
``geometry_msgs`` / ``std_msgs`` / ``sensor_msgs`` 等)的统一加载入口。
打完补丁后**必须重启进程**才能生效(当前进程的 rclpy 已经发生过
``ImportError``,子模块仍处于损坏状态)。因此函数会主动退出,并在
stdout/stderr 同时打印明显的重启提示,避免用户被后续报错淹没。
"""
if sys.platform != "win32" or not os.environ.get("CONDA_PREFIX"): if sys.platform != "win32" or not os.environ.get("CONDA_PREFIX"):
return return
try: try:
import rclpy import rclpy # noqa: F401
return return
except ImportError as e: except ImportError as e:
if not str(e).startswith("DLL load failed"): if not str(e).startswith("DLL load failed"):
return return
cp = os.environ["CONDA_PREFIX"] cp = os.environ["CONDA_PREFIX"]
impl = os.path.join(cp, "Lib", "site-packages", "rclpy", "impl", "implementation_singleton.py") lib_bin = os.path.join(cp, "Library", "bin")
pyd = glob.glob(os.path.join(cp, "Lib", "site-packages", "rclpy", "_rclpy_pybind11*.pyd")) site_packages = os.path.join(cp, "Lib", "site-packages")
if not os.path.exists(impl) or not pyd: if not os.path.isdir(lib_bin):
return return
with open(impl, "r", encoding="utf-8") as f:
content = f.read() patched = []
lib_bin = os.path.join(cp, "Library", "bin").replace("\\", "/")
patch = f'# UniLabOS DLL Patch\nimport os,ctypes\nos.add_dll_directory("{lib_bin}") if hasattr(os,"add_dll_directory") else None\ntry: ctypes.CDLL("{pyd[0].replace(chr(92),"/")}")\nexcept: pass\n# End Patch\n' # 1) rclpy 自身的入口
shutil.copy2(impl, impl + ".bak") rclpy_impl = os.path.join(site_packages, "rclpy", "impl", "implementation_singleton.py")
with open(impl, "w", encoding="utf-8") as f: rclpy_pyd_matches = glob.glob(os.path.join(site_packages, "rclpy", "_rclpy_pybind11*.pyd"))
f.write(patch + content) rclpy_pyd = rclpy_pyd_matches[0] if rclpy_pyd_matches else ""
if rclpy_pyd and _apply_dll_patch(rclpy_impl, lib_bin, preload_pyd=rclpy_pyd):
patched.append(rclpy_impl)
# 2) rpyutils —— 所有 rosidl typesupport pyd 的加载点;放在 rclpy 之后
# 例geometry_msgs/geometry_msgs_s__rosidl_typesupport_c.pyd
rpyutils_dll = os.path.join(site_packages, "rpyutils", "add_dll_directories.py")
if _apply_dll_patch(rpyutils_dll, lib_bin):
patched.append(rpyutils_dll)
if not patched:
# 已经打过补丁但 rclpy 仍然加载失败:原因不是缺 DLL 搜索路径,
# 不要再次打补丁污染文件,让上层看到真实的 ImportError。
return
_print_restart_banner(patched)
patch_rclpy_dll_windows() patch_rclpy_dll_windows()

View File

@@ -320,6 +320,7 @@ def job_add(req: JobAddReq) -> JobData:
action_name=action_name, action_name=action_name,
task_id=task_id, task_id=task_id,
job_id=job_id, job_id=job_id,
notebook_id=req.notebook_id,
device_action_key=device_action_key, device_action_key=device_action_key,
) )

View File

@@ -59,6 +59,7 @@ class QueueItem:
action_name: str action_name: str
task_id: str task_id: str
job_id: str job_id: str
notebook_id: str
device_action_key: str device_action_key: str
next_run_time: float = 0 # 下次执行时间戳 next_run_time: float = 0 # 下次执行时间戳
retry_count: int = 0 # 重试次数 retry_count: int = 0 # 重试次数
@@ -71,6 +72,7 @@ class JobInfo:
job_id: str job_id: str
task_id: str task_id: str
device_id: str device_id: str
notebook_id: str
action_name: str action_name: str
device_action_key: str device_action_key: str
status: JobStatus status: JobStatus
@@ -539,7 +541,10 @@ class MessageProcessor:
self.reconnect_count += 1 self.reconnect_count += 1
backoff = WSConfig.reconnect_interval backoff = WSConfig.reconnect_interval
logger.info( logger.info(
f"[MessageProcessor] 即将在 {backoff} 秒后重连 (已尝试 {self.reconnect_count}/{WSConfig.max_reconnect_attempts})" "[MessageProcessor] 即将在 %s 秒后重连 (已尝试 %s/%s)",
backoff,
self.reconnect_count,
WSConfig.max_reconnect_attempts,
) )
await asyncio.sleep(backoff) await asyncio.sleep(backoff)
else: else:
@@ -703,6 +708,7 @@ class MessageProcessor:
action_name = data.get("action_name", "") action_name = data.get("action_name", "")
task_id = data.get("task_id", "") task_id = data.get("task_id", "")
job_id = data.get("job_id", "") job_id = data.get("job_id", "")
notebook_id = data.get("notebook_id", "")
if not all([device_id, action_name, task_id, job_id]): if not all([device_id, action_name, task_id, job_id]):
logger.error("[MessageProcessor] Missing required fields in query_action_state") logger.error("[MessageProcessor] Missing required fields in query_action_state")
@@ -718,6 +724,7 @@ class MessageProcessor:
job_id=job_id, job_id=job_id,
task_id=task_id, task_id=task_id,
device_id=device_id, device_id=device_id,
notebook_id=notebook_id,
action_name=action_name, action_name=action_name,
device_action_key=device_action_key, device_action_key=device_action_key,
status=JobStatus.QUEUE, status=JobStatus.QUEUE,
@@ -732,13 +739,27 @@ class MessageProcessor:
if can_start_immediately: if can_start_immediately:
# 可以立即开始 # 可以立即开始
await self._send_action_state_response( await self._send_action_state_response(
device_id, action_name, task_id, job_id, "query_action_status", True, 0 device_id,
action_name,
task_id,
job_id,
"query_action_status",
True,
0,
notebook_id=notebook_id,
) )
logger.trace(f"[MessageProcessor] Job {job_log} can start immediately") logger.trace(f"[MessageProcessor] Job {job_log} can start immediately")
else: else:
# 需要排队 # 需要排队
await self._send_action_state_response( await self._send_action_state_response(
device_id, action_name, task_id, job_id, "query_action_status", False, 10 device_id,
action_name,
task_id,
job_id,
"query_action_status",
False,
10,
notebook_id=notebook_id,
) )
logger.trace(f"[MessageProcessor] Job {job_log} queued") logger.trace(f"[MessageProcessor] Job {job_log} queued")
@@ -768,6 +789,7 @@ class MessageProcessor:
job_id=req.job_id, job_id=req.job_id,
task_id=req.task_id, task_id=req.task_id,
device_id=req.device_id, device_id=req.device_id,
notebook_id=req.notebook_id,
action_name=action_name, action_name=action_name,
device_action_key=device_action_key, device_action_key=device_action_key,
status=JobStatus.QUEUE, status=JobStatus.QUEUE,
@@ -775,11 +797,16 @@ class MessageProcessor:
always_free=True, always_free=True,
) )
self.device_manager.add_queue_request(job_info) self.device_manager.add_queue_request(job_info)
existing_job = job_info
logger.info(f"[MessageProcessor] Job {job_log} always_free, auto-registered from direct job_start") logger.info(f"[MessageProcessor] Job {job_log} always_free, auto-registered from direct job_start")
else: else:
logger.error(f"[MessageProcessor] Job {job_log} not registered (missing query_action_state)") logger.error(f"[MessageProcessor] Job {job_log} not registered (missing query_action_state)")
return return
if existing_job and req.notebook_id and not existing_job.notebook_id:
existing_job.notebook_id = req.notebook_id
notebook_id = req.notebook_id or (existing_job.notebook_id if existing_job else "")
success = self.device_manager.start_job(req.job_id) success = self.device_manager.start_job(req.job_id)
if not success: if not success:
logger.error(f"[MessageProcessor] Failed to start job {job_log}") logger.error(f"[MessageProcessor] Failed to start job {job_log}")
@@ -795,6 +822,7 @@ class MessageProcessor:
action_name=req.action, action_name=req.action,
task_id=req.task_id, task_id=req.task_id,
job_id=req.job_id, job_id=req.job_id,
notebook_id=notebook_id,
device_action_key=device_action_key, device_action_key=device_action_key,
) )
@@ -834,6 +862,7 @@ class MessageProcessor:
"job_id": req.job_id, "job_id": req.job_id,
"task_id": req.task_id, "task_id": req.task_id,
"device_id": req.device_id, "device_id": req.device_id,
"notebook_id": queue_item.notebook_id,
"action_name": req.action, "action_name": req.action,
"status": "failed", "status": "failed",
"feedback_data": {}, "feedback_data": {},
@@ -855,6 +884,7 @@ class MessageProcessor:
"query_action_status", "query_action_status",
True, True,
0, 0,
notebook_id=next_job.notebook_id,
) )
next_job_log = format_job_log( next_job_log = format_job_log(
next_job.job_id, next_job.task_id, next_job.device_id, next_job.action_name next_job.job_id, next_job.task_id, next_job.device_id, next_job.action_name
@@ -1101,7 +1131,15 @@ class MessageProcessor:
logger.info(f"[MessageProcessor] Restart cleanup scheduled") logger.info(f"[MessageProcessor] Restart cleanup scheduled")
async def _send_action_state_response( async def _send_action_state_response(
self, device_id: str, action_name: str, task_id: str, job_id: str, typ: str, free: bool, need_more: int self,
device_id: str,
action_name: str,
task_id: str,
job_id: str,
typ: str,
free: bool,
need_more: int,
notebook_id: str = "",
): ):
"""发送动作状态响应""" """发送动作状态响应"""
message = { message = {
@@ -1112,6 +1150,7 @@ class MessageProcessor:
"action_name": action_name, "action_name": action_name,
"task_id": task_id, "task_id": task_id,
"job_id": job_id, "job_id": job_id,
"notebook_id": notebook_id,
"free": free, "free": free,
"need_more": need_more + 1, "need_more": need_more + 1,
}, },
@@ -1194,6 +1233,7 @@ class QueueProcessor:
action_name=timeout_job.action_name, action_name=timeout_job.action_name,
task_id=timeout_job.task_id, task_id=timeout_job.task_id,
job_id=timeout_job.job_id, job_id=timeout_job.job_id,
notebook_id=timeout_job.notebook_id,
device_action_key=timeout_job.device_action_key, device_action_key=timeout_job.device_action_key,
) )
# 发布超时失败状态这会触发正常的job完成流程 # 发布超时失败状态这会触发正常的job完成流程
@@ -1252,6 +1292,7 @@ class QueueProcessor:
"action_name": job_info.action_name, "action_name": job_info.action_name,
"task_id": job_info.task_id, "task_id": job_info.task_id,
"job_id": job_info.job_id, "job_id": job_info.job_id,
"notebook_id": job_info.notebook_id,
"free": False, "free": False,
"need_more": 10 + 1, "need_more": 10 + 1,
}, },
@@ -1291,6 +1332,7 @@ class QueueProcessor:
"action_name": job_info.action_name, "action_name": job_info.action_name,
"task_id": job_info.task_id, "task_id": job_info.task_id,
"job_id": job_info.job_id, "job_id": job_info.job_id,
"notebook_id": job_info.notebook_id,
"free": False, "free": False,
"need_more": 10 + 1, "need_more": 10 + 1,
}, },
@@ -1336,12 +1378,15 @@ class QueueProcessor:
"action_name": next_job.action_name, "action_name": next_job.action_name,
"task_id": next_job.task_id, "task_id": next_job.task_id,
"job_id": next_job.job_id, "job_id": next_job.job_id,
"notebook_id": next_job.notebook_id,
"free": True, "free": True,
"need_more": 0, "need_more": 0,
}, },
} }
self.message_processor.send_message(message) self.message_processor.send_message(message)
# next_job_log = format_job_log(next_job.job_id, next_job.task_id, next_job.device_id, next_job.action_name) # next_job_log = format_job_log(
# next_job.job_id, next_job.task_id, next_job.device_id, next_job.action_name
# )
# logger.debug(f"[QueueProcessor] Notified next job {next_job_log} can start") # logger.debug(f"[QueueProcessor] Notified next job {next_job_log} can start")
# 立即触发下一轮状态检查 # 立即触发下一轮状态检查
@@ -1510,6 +1555,7 @@ class WebSocketClient(BaseCommunicationClient):
"job_id": item.job_id, "job_id": item.job_id,
"task_id": item.task_id, "task_id": item.task_id,
"device_id": item.device_id, "device_id": item.device_id,
"notebook_id": item.notebook_id,
"action_name": item.action_name, "action_name": item.action_name,
"status": status, "status": status,
"feedback_data": feedback_data, "feedback_data": feedback_data,

View File

@@ -0,0 +1,78 @@
# Donghua EC 用户指南UniLab 接入版)
## 概述
- 提供两套使用方式:
- 测试封装动作:一条指令完成“启动实验 → 实时采样写文件 → 导出数据”,可选自动停止。
- 基础启动动作:按需组合“启动实验、实时输出、停止、导出”,更灵活可编排。
## 设备配置
- `interface_dir`DHInterface 目录(包含 `ECCore.dll` 与配置文件),示例:`d:\Uni-Lab-OS\Uni-Lab-OS\unilabos\devices\donghua_ec\x64release\DHInterface`(注册见 `unilabos/registry/devices/donghua_ec.yaml:1940`)。
- `dll_path`(可选):若与 `interface_dir` 不一致,可直接指定 `ECCore.dll` 完整路径(`donghua_ec.yaml:1936`)。
- 默认通道:`machine_id``donghua_ec.yaml:1944`)。
## 初始化
- 后端自动:设备注册后会自动调用 `auto-initialize`(加载 DLL`auto-post_init`(注入),无需前端干预(`donghua_ec.yaml:27``donghua_ec.yaml:48`)。
- 手动(可选):
- 调用 `auto-initialize``{"device_id":"<设备ID>","action":"auto-initialize"}`
- 调用 `auto-post_init``{"device_id":"<设备ID>","action":"auto-post_init"}`
## 动作总览
- 测试封装动作(均要求传入 `output_dir`
- `test_open_circuit_energy`(默认 `stop_after=true`,使用轮询检测实验结束后再停止与导出,不再使用 `wait_seconds`
- `test_eis`(默认 `stop_after=false`,避免提前结束,`donghua_ec.yaml:1480`
- `test_gitt`(默认 `stop_after=false``donghua_ec.yaml:1627`
- `test_linear_scan_voltammetry`(默认 `stop_after=false`,必填 `output_dir`,参考 `donghua_ec.yaml:1750` 及后续)
- 基础启动与组合:
- `start_open_circuit_energy``start_eis``start_gitt``start_linear_scan_voltammetry`
- 实时输出:`start_realtime_output` / `stop_realtime_output``donghua_ec.yaml:1068``donghua_ec.yaml:1155`
- 停止实验:`stop_experiment``donghua_ec.yaml:1118`
- 导出数据:`export_*_data`(如 `export_eis_data``export_gitt_data` 等,均要求 `output_dir/dest_dir`
## 快速测试流程(推荐)
- 开路电位:
- 请求:
```json
{"device_id":"<设备ID>","action":"test_open_circuit_energy","action_args":{"output_dir":"d:/data/oc","interval":0.5,"stop_after":true}}
```
- 返回包含:`success`、`realtime_file`、`export_files`、`export_dest`。
- 阻抗EIS
- 请求(只需给导出目录,其他用默认即可):
```json
{"device_id":"<设备ID>","action":"test_eis","action_args":{"output_dir":"d:/data/eis","start_freq":10000,"end_freq":0.1,"amplitude":0.01,"point_count":10,"interval":0.5}}
```
- 默认不自动停止(`stop_after=false`),可在完成采样后继续扫频;若需自动停,传 `stop_after=true`。
- GITT
- 请求:
```json
{"device_id":"<设备ID>","action":"test_gitt","action_args":{"output_dir":"d:/data/gitt","current":1.0,"time_per_point_cc":0.1,"continue_time_cc":60,"time_per_point_oc":0.1,"continue_time_oc":60,"is_voltage_trig":true,"voltage_or_current_trig_direction":0,"voltage_or_current_trig_value":0,"interval":0.5}}
```
## 基础启动与组合(灵活编排)
- 启动 EIS
- `{"device_id":"<设备ID>","action":"start_eis","action_args":{"start_freq":10000,"end_freq":0.1,"amplitude":0.01,"point_count":10}}`
- 开启实时输出:
- `{"device_id":"<设备ID>","action":"start_realtime_output","action_args":{"interval":0.5}}`
- 关闭实时输出并获取文件:
- `{"device_id":"<设备ID>","action":"stop_realtime_output"}`
- 导出数据到目录:
- `{"device_id":"<设备ID>","action":"export_eis_data","action_args":{"output_dir":"d:/data/eis"}}`
- 停止实验(可选):
- `{"device_id":"<设备ID>","action":"stop_experiment"}`
## 重要说明
- 必填导出目录:所有 `test_*` 和 `export_*` 动作需要提供 `output_dir`(或 `dest_dir`),否则不会复制数据到目标位置(`donghua_ec.yaml:1545`、`donghua_ec.yaml:1710`)。
- 关于提前结束:非开路的测试封装动作默认 `stop_after=false`,避免在实时采样后调用 `stop_experiment`,从而导致频率扫描未达到 `end_freq` 就停止(修复见 `donghua_ec.yaml:1480`、`donghua_ec.yaml:1627`)。
- 实时文件位置:若未指定 `dest_dir`,实时输出会写入 `interface_dir/SourceData/<日期>/<实验子目录>`(实现参考 `unilabos/devices/donghua_ec/donghua_ec.py:1042`)。
## 数据字段(参考)
- EIS 拆分:`time/zre/zim/z/freq/phase/edc`(实现参考 `unilabos/devices/donghua_ec/donghua_ec.py:1109`)。
- 线性扫描与循环伏安:`time/potential/current` 等(实现参考 `donghua_ec.py:1111`、`donghua_ec.py:1114`)。
- 开路电位:写入时间序列与电位(`donghua_ec.py:1045`)。

View File

@@ -0,0 +1,3 @@
from .donghua_ec import DonghuaEC
__all__ = ["DonghuaEC"]

View File

@@ -0,0 +1,24 @@
{
"nodes": [
{
"id": "donghua_ec_device",
"name": "Donghua_EC",
"parent": null,
"type": "device",
"class": "donghua_ec",
"position": {
"x": 620.6111111111111,
"y": 171,
"z": 0
},
"config": {
"interface_dir": "D:/Uni-Lab-OS/Uni-Lab-OS/unilabos/devices/donghua_ec/x64release/DHInterface",
"dll_path": "",
"machine_id": 0
},
"data": {},
"children": []
}
],
"links": []
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,358 @@
Time(s) E(mV) I(mA) Q(mC) Capacity(mAh) Energy(Wh) P(W)
0.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Time(s) E(mV) I(mA) Q(mC) Capacity(mAh) Energy(Wh) P(W)
0.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

View File

@@ -0,0 +1,398 @@
Time(s) E(mV) I(mA) Q(mC) Capacity(mAh) Energy(Wh) P(W)
0.100000 1992.742065 0.000000 0.000000 0.000000 0.000000 0.000000
0.200000 1992.826050 0.000000 0.000000 0.000000 0.000000 0.000000
0.300000 1993.161743 0.000000 0.000000 0.000000 0.000000 0.000000
0.400000 1993.245605 0.000000 0.000000 0.000000 0.000000 0.000000
0.500000 1993.077881 0.000000 0.000000 0.000000 0.000000 0.000000
0.600000 1992.154907 0.000000 0.000000 0.000000 0.000000 0.000000
0.700000 1992.909912 0.000000 0.000000 0.000000 0.000000 0.000000
0.800000 1993.245605 0.000000 0.000000 0.000000 0.000000 0.000000
0.900000 1993.077881 0.000000 0.000000 0.000000 0.000000 0.000000
1.000000 1993.161743 0.000000 0.000000 0.000000 0.000000 0.000000
1.100000 1992.826050 0.000000 0.000000 0.000000 0.000000 0.000000
1.200000 1993.245605 0.000000 0.000000 0.000000 0.000000 0.000000
1.300000 1993.161743 0.000000 0.000000 0.000000 0.000000 0.000000
1.400000 1992.742065 0.000000 0.000000 0.000000 0.000000 0.000000
1.500000 1992.993896 0.000000 0.000000 0.000000 0.000000 0.000000
1.600000 1992.742065 0.000000 0.000000 0.000000 0.000000 0.000000
1.700000 1992.909912 0.000000 0.000000 0.000000 0.000000 0.000000
1.800000 1993.245605 0.000000 0.000000 0.000000 0.000000 0.000000
1.900000 1993.245605 0.000000 0.000000 0.000000 0.000000 0.000000
2.000000 1993.245605 0.000000 0.000000 0.000000 0.000000 0.000000
2.100000 1993.077881 0.000000 0.000000 0.000000 0.000000 0.000000
2.200000 1993.245605 0.000000 0.000000 0.000000 0.000000 0.000000
2.300000 1993.665161 0.000000 0.000000 0.000000 0.000000 0.000000
2.400000 1993.665161 0.000000 0.000000 0.000000 0.000000 0.000000
2.500000 1993.665161 0.000000 0.000000 0.000000 0.000000 0.000000
2.600000 1993.916748 0.000000 0.000000 0.000000 0.000000 0.000000
2.700000 1994.000732 0.000000 0.000000 0.000000 0.000000 0.000000
2.800000 1993.413452 0.000000 0.000000 0.000000 0.000000 0.000000
2.900000 1992.993896 0.000000 0.000000 0.000000 0.000000 0.000000
3.000000 1993.665161 0.000000 0.000000 0.000000 0.000000 0.000000
3.100000 1993.581177 0.000000 0.000000 0.000000 0.000000 0.000000
3.200000 1993.665161 0.000000 0.000000 0.000000 0.000000 0.000000
3.300000 1993.413452 0.000000 0.000000 0.000000 0.000000 0.000000
3.400000 1993.497314 0.000000 0.000000 0.000000 0.000000 0.000000
3.500000 1993.161743 0.000000 0.000000 0.000000 0.000000 0.000000
3.600000 1993.916748 0.000000 0.000000 0.000000 0.000000 0.000000
3.700000 1993.749023 0.000000 0.000000 0.000000 0.000000 0.000000
3.800000 1994.000732 0.000000 0.000000 0.000000 0.000000 0.000000
3.900000 1994.084717 0.000000 0.000000 0.000000 0.000000 0.000000
4.000000 1993.749023 0.000000 0.000000 0.000000 0.000000 0.000000
4.100000 1993.916748 0.000000 0.000000 0.000000 0.000000 0.000000
4.200000 1993.497314 0.000000 0.000000 0.000000 0.000000 0.000000
4.300000 1993.749023 0.000000 0.000000 0.000000 0.000000 0.000000
4.400000 1993.665161 0.000000 0.000000 0.000000 0.000000 0.000000
4.500000 1993.413452 0.000000 0.000000 0.000000 0.000000 0.000000
4.600000 1993.749023 0.000000 0.000000 0.000000 0.000000 0.000000
4.700000 1994.168579 0.000000 0.000000 0.000000 0.000000 0.000000
4.800000 1993.916748 0.000000 0.000000 0.000000 0.000000 0.000000
4.900000 1993.497314 0.000000 0.000000 0.000000 0.000000 0.000000
5.000000 1993.665161 0.000000 0.000000 0.000000 0.000000 0.000000
5.100000 1994.084717 0.000000 0.000000 0.000000 0.000000 0.000000
5.200000 1994.084717 0.000000 0.000000 0.000000 0.000000 0.000000
5.300000 1994.420288 0.000000 0.000000 0.000000 0.000000 0.000000
5.400000 1994.504150 0.000000 0.000000 0.000000 0.000000 0.000000
5.500000 1994.755859 0.000000 0.000000 0.000000 0.000000 0.000000
5.600000 1994.168579 0.000000 0.000000 0.000000 0.000000 0.000000
5.700000 1995.259399 0.000000 0.000000 0.000000 0.000000 0.000000
5.800000 1995.175415 0.000000 0.000000 0.000000 0.000000 0.000000
5.900000 1994.336426 0.000000 0.000000 0.000000 0.000000 0.000000
6.000000 1995.511108 0.000000 0.000000 0.000000 0.000000 0.000000
6.100000 1995.091431 0.000000 0.000000 0.000000 0.000000 0.000000
6.200000 1994.671997 0.000000 0.000000 0.000000 0.000000 0.000000
6.300000 1994.504150 0.000000 0.000000 0.000000 0.000000 0.000000
6.400000 1994.923706 0.000000 0.000000 0.000000 0.000000 0.000000
6.500000 1995.511108 0.000000 0.000000 0.000000 0.000000 0.000000
6.600000 1995.427246 0.000000 0.000000 0.000000 0.000000 0.000000
6.700000 1994.923706 0.000000 0.000000 0.000000 0.000000 0.000000
6.800000 1995.678833 0.000000 0.000000 0.000000 0.000000 0.000000
6.900000 1995.762817 0.000000 0.000000 0.000000 0.000000 0.000000
7.000000 1995.511108 0.000000 0.000000 0.000000 0.000000 0.000000
7.100000 1995.511108 0.000000 0.000000 0.000000 0.000000 0.000000
7.200000 1995.259399 0.000000 0.000000 0.000000 0.000000 0.000000
7.300000 1994.755859 0.000000 0.000000 0.000000 0.000000 0.000000
7.400000 1994.671997 0.000000 0.000000 0.000000 0.000000 0.000000
7.500000 1994.755859 0.000000 0.000000 0.000000 0.000000 0.000000
7.600000 1995.175415 0.000000 0.000000 0.000000 0.000000 0.000000
7.700000 1995.007568 0.000000 0.000000 0.000000 0.000000 0.000000
7.800000 1995.091431 0.000000 0.000000 0.000000 0.000000 0.000000
7.900000 1994.923706 0.000000 0.000000 0.000000 0.000000 0.000000
8.000000 1995.007568 0.000000 0.000000 0.000000 0.000000 0.000000
8.100000 1996.685791 0.000000 0.000000 0.000000 0.000000 0.000000
8.200000 1995.762817 0.000000 0.000000 0.000000 0.000000 0.000000
8.300000 1995.259399 0.000000 0.000000 0.000000 0.000000 0.000000
8.400000 1994.420288 0.000000 0.000000 0.000000 0.000000 0.000000
8.500000 1993.329590 0.000000 0.000000 0.000000 0.000000 0.000000
8.600000 1993.077881 0.000000 0.000000 0.000000 0.000000 0.000000
8.700000 1992.742065 0.000000 0.000000 0.000000 0.000000 0.000000
8.800000 1993.245605 0.000000 0.000000 0.000000 0.000000 0.000000
8.900000 1993.329590 0.000000 0.000000 0.000000 0.000000 0.000000
9.000000 1993.665161 0.000000 0.000000 0.000000 0.000000 0.000000
9.100000 1994.336426 0.000000 0.000000 0.000000 0.000000 0.000000
9.200000 1995.091431 0.000000 0.000000 0.000000 0.000000 0.000000
9.300000 1995.259399 0.000000 0.000000 0.000000 0.000000 0.000000
9.400000 1995.175415 0.000000 0.000000 0.000000 0.000000 0.000000
9.500000 1995.343262 0.000000 0.000000 0.000000 0.000000 0.000000
9.600000 1995.175415 0.000000 0.000000 0.000000 0.000000 0.000000
9.700000 1995.091431 0.000000 0.000000 0.000000 0.000000 0.000000
9.800000 1995.427246 0.000000 0.000000 0.000000 0.000000 0.000000
9.900000 1995.594971 0.000000 0.000000 0.000000 0.000000 0.000000
10.000000 1995.091431 0.000000 0.000000 0.000000 0.000000 0.000000
10.100000 1994.504150 0.000000 0.000000 0.000000 0.000000 0.000000
10.200000 1994.336426 0.000000 0.000000 0.000000 0.000000 0.000000
10.300000 1994.000732 0.000000 0.000000 0.000000 0.000000 0.000000
10.400000 1993.665161 0.000000 0.000000 0.000000 0.000000 0.000000
10.500000 1993.329590 0.000000 0.000000 0.000000 0.000000 0.000000
10.600000 1994.000732 0.000000 0.000000 0.000000 0.000000 0.000000
10.700000 1994.671997 0.000000 0.000000 0.000000 0.000000 0.000000
10.800000 1994.755859 0.000000 0.000000 0.000000 0.000000 0.000000
10.900000 1994.671997 0.000000 0.000000 0.000000 0.000000 0.000000
11.000000 1994.755859 0.000000 0.000000 0.000000 0.000000 0.000000
11.100000 1994.923706 0.000000 0.000000 0.000000 0.000000 0.000000
11.200000 1995.091431 0.000000 0.000000 0.000000 0.000000 0.000000
11.300000 1996.014404 0.000000 0.000000 0.000000 0.000000 0.000000
11.400000 1995.091431 0.000000 0.000000 0.000000 0.000000 0.000000
11.500000 1995.259399 0.000000 0.000000 0.000000 0.000000 0.000000
11.600000 1995.007568 0.000000 0.000000 0.000000 0.000000 0.000000
11.700000 1995.343262 0.000000 0.000000 0.000000 0.000000 0.000000
11.800000 1996.014404 0.000000 0.000000 0.000000 0.000000 0.000000
11.900000 1995.762817 0.000000 0.000000 0.000000 0.000000 0.000000
12.000000 1995.678833 0.000000 0.000000 0.000000 0.000000 0.000000
12.100000 1996.434082 0.000000 0.000000 0.000000 0.000000 0.000000
12.200000 1996.098389 0.000000 0.000000 0.000000 0.000000 0.000000
12.300000 1995.343262 0.000000 0.000000 0.000000 0.000000 0.000000
12.400000 1995.511108 0.000000 0.000000 0.000000 0.000000 0.000000
12.500000 1995.511108 0.000000 0.000000 0.000000 0.000000 0.000000
12.600000 1995.511108 0.000000 0.000000 0.000000 0.000000 0.000000
12.700000 1995.511108 0.000000 0.000000 0.000000 0.000000 0.000000
12.800000 1995.678833 0.000000 0.000000 0.000000 0.000000 0.000000
12.900000 1995.511108 0.000000 0.000000 0.000000 0.000000 0.000000
13.000000 1995.259399 0.000000 0.000000 0.000000 0.000000 0.000000
13.100000 1995.511108 0.000000 0.000000 0.000000 0.000000 0.000000
13.200000 1995.007568 0.000000 0.000000 0.000000 0.000000 0.000000
13.300000 1995.175415 0.000000 0.000000 0.000000 0.000000 0.000000
13.400000 1995.259399 0.000000 0.000000 0.000000 0.000000 0.000000
13.500000 1995.762817 0.000000 0.000000 0.000000 0.000000 0.000000
13.600000 1995.930542 0.000000 0.000000 0.000000 0.000000 0.000000
13.700000 1995.343262 0.000000 0.000000 0.000000 0.000000 0.000000
13.800000 1995.175415 0.000000 0.000000 0.000000 0.000000 0.000000
13.900000 1995.175415 0.000000 0.000000 0.000000 0.000000 0.000000
14.000000 1995.678833 0.000000 0.000000 0.000000 0.000000 0.000000
14.100000 1996.182251 0.000000 0.000000 0.000000 0.000000 0.000000
14.200000 1996.434082 0.000000 0.000000 0.000000 0.000000 0.000000
14.300000 1995.846680 0.000000 0.000000 0.000000 0.000000 0.000000
14.400000 1996.350220 0.000000 0.000000 0.000000 0.000000 0.000000
14.500000 1996.098389 0.000000 0.000000 0.000000 0.000000 0.000000
14.600000 1995.343262 0.000000 0.000000 0.000000 0.000000 0.000000
14.700000 1995.427246 0.000000 0.000000 0.000000 0.000000 0.000000
14.800000 1995.427246 0.000000 0.000000 0.000000 0.000000 0.000000
14.900000 1995.511108 0.000000 0.000000 0.000000 0.000000 0.000000
15.000000 1995.678833 0.000000 0.000000 0.000000 0.000000 0.000000
15.100000 1995.343262 0.000000 0.000000 0.000000 0.000000 0.000000
15.200000 1995.007568 0.000000 0.000000 0.000000 0.000000 0.000000
15.300000 1995.175415 0.000000 0.000000 0.000000 0.000000 0.000000
15.400000 1995.427246 0.000000 0.000000 0.000000 0.000000 0.000000
15.500000 1995.259399 0.000000 0.000000 0.000000 0.000000 0.000000
15.600000 1995.175415 0.000000 0.000000 0.000000 0.000000 0.000000
15.700000 1995.091431 0.000000 0.000000 0.000000 0.000000 0.000000
15.800000 1994.671997 0.000000 0.000000 0.000000 0.000000 0.000000
15.900000 1993.665161 0.000000 0.000000 0.000000 0.000000 0.000000
16.000000 1994.084717 0.000000 0.000000 0.000000 0.000000 0.000000
16.100000 1994.168579 0.000000 0.000000 0.000000 0.000000 0.000000
16.200001 1994.252563 0.000000 0.000000 0.000000 0.000000 0.000000
16.299999 1994.839722 0.000000 0.000000 0.000000 0.000000 0.000000
16.400000 1996.350220 0.000000 0.000000 0.000000 0.000000 0.000000
16.500000 1995.091431 0.000000 0.000000 0.000000 0.000000 0.000000
16.600000 1994.588135 0.000000 0.000000 0.000000 0.000000 0.000000
16.700001 1994.671997 0.000000 0.000000 0.000000 0.000000 0.000000
16.799999 1995.259399 0.000000 0.000000 0.000000 0.000000 0.000000
16.900000 1995.427246 0.000000 0.000000 0.000000 0.000000 0.000000
17.000000 1995.427246 0.000000 0.000000 0.000000 0.000000 0.000000
17.100000 1995.091431 0.000000 0.000000 0.000000 0.000000 0.000000
17.200001 1994.839722 0.000000 0.000000 0.000000 0.000000 0.000000
17.299999 1994.755859 0.000000 0.000000 0.000000 0.000000 0.000000
17.400000 1995.007568 0.000000 0.000000 0.000000 0.000000 0.000000
17.500000 1994.588135 0.000000 0.000000 0.000000 0.000000 0.000000
17.600000 1994.755859 0.000000 0.000000 0.000000 0.000000 0.000000
17.700001 1994.755859 0.000000 0.000000 0.000000 0.000000 0.000000
17.799999 1994.420288 0.000000 0.000000 0.000000 0.000000 0.000000
17.900000 1994.336426 0.000000 0.000000 0.000000 0.000000 0.000000
18.000000 1994.420288 0.000000 0.000000 0.000000 0.000000 0.000000
18.100000 1994.755859 0.000000 0.000000 0.000000 0.000000 0.000000
18.200001 1994.671997 0.000000 0.000000 0.000000 0.000000 0.000000
18.299999 1994.923706 0.000000 0.000000 0.000000 0.000000 0.000000
18.400000 1995.007568 0.000000 0.000000 0.000000 0.000000 0.000000
18.500000 1994.839722 0.000000 0.000000 0.000000 0.000000 0.000000
18.600000 1993.832886 0.000000 0.000000 0.000000 0.000000 0.000000
18.700001 1994.588135 0.000000 0.000000 0.000000 0.000000 0.000000
18.799999 1994.839722 0.000000 0.000000 0.000000 0.000000 0.000000
18.900000 1994.839722 0.000000 0.000000 0.000000 0.000000 0.000000
19.000000 1994.671997 0.000000 0.000000 0.000000 0.000000 0.000000
19.100000 1994.671997 0.000000 0.000000 0.000000 0.000000 0.000000
19.200001 1994.588135 0.000000 0.000000 0.000000 0.000000 0.000000
19.299999 1994.420288 0.000000 0.000000 0.000000 0.000000 0.000000
19.400000 1994.336426 0.000000 0.000000 0.000000 0.000000 0.000000
19.500000 1994.336426 0.000000 0.000000 0.000000 0.000000 0.000000
19.600000 1994.671997 0.000000 0.000000 0.000000 0.000000 0.000000
19.700001 1994.755859 0.000000 0.000000 0.000000 0.000000 0.000000
19.799999 1995.007568 0.000000 0.000000 0.000000 0.000000 0.000000
Time(s) E(mV) I(mA) Q(mC) Capacity(mAh) Energy(Wh) P(W)
0.100000 2057.013672 0.000000 0.000000 0.000000 0.000000 0.000000
0.200000 2057.684814 0.000000 0.000000 0.000000 0.000000 0.000000
0.300000 2057.936523 0.000000 0.000000 0.000000 0.000000 0.000000
0.400000 2058.020508 0.000000 0.000000 0.000000 0.000000 0.000000
0.500000 2058.523682 0.000000 0.000000 0.000000 0.000000 0.000000
0.600000 2058.775635 0.000000 0.000000 0.000000 0.000000 0.000000
0.700000 2058.775635 0.000000 0.000000 0.000000 0.000000 0.000000
0.800000 2058.859619 0.000000 0.000000 0.000000 0.000000 0.000000
0.900000 2059.362793 0.000000 0.000000 0.000000 0.000000 0.000000
1.000000 2059.279053 0.000000 0.000000 0.000000 0.000000 0.000000
1.100000 2059.446777 0.000000 0.000000 0.000000 0.000000 0.000000
1.200000 2060.034180 0.000000 0.000000 0.000000 0.000000 0.000000
1.300000 2060.285889 0.000000 0.000000 0.000000 0.000000 0.000000
1.400000 2060.201904 0.000000 0.000000 0.000000 0.000000 0.000000
1.500000 2060.537598 0.000000 0.000000 0.000000 0.000000 0.000000
1.600000 2060.789307 0.000000 0.000000 0.000000 0.000000 0.000000
1.700000 2061.041016 0.000000 0.000000 0.000000 0.000000 0.000000
1.800000 2061.125000 0.000000 0.000000 0.000000 0.000000 0.000000
1.900000 2061.628418 0.000000 0.000000 0.000000 0.000000 0.000000
2.000000 2061.880127 0.000000 0.000000 0.000000 0.000000 0.000000
2.100000 2061.963867 0.000000 0.000000 0.000000 0.000000 0.000000
2.200000 2062.047852 0.000000 0.000000 0.000000 0.000000 0.000000
2.300000 2062.383545 0.000000 0.000000 0.000000 0.000000 0.000000
2.400000 2062.718994 0.000000 0.000000 0.000000 0.000000 0.000000
2.500000 2062.718994 0.000000 0.000000 0.000000 0.000000 0.000000
2.600000 2062.970703 0.000000 0.000000 0.000000 0.000000 0.000000
2.700000 2063.306396 0.000000 0.000000 0.000000 0.000000 0.000000
2.800000 2063.306396 0.000000 0.000000 0.000000 0.000000 0.000000
2.900000 2063.558105 0.000000 0.000000 0.000000 0.000000 0.000000
3.000000 2063.642090 0.000000 0.000000 0.000000 0.000000 0.000000
3.100000 2064.061523 0.000000 0.000000 0.000000 0.000000 0.000000
3.200000 2064.061523 0.000000 0.000000 0.000000 0.000000 0.000000
3.300000 2064.229248 0.000000 0.000000 0.000000 0.000000 0.000000
3.400000 2064.229248 0.000000 0.000000 0.000000 0.000000 0.000000
3.500000 2064.732910 0.000000 0.000000 0.000000 0.000000 0.000000
3.600000 2064.732910 0.000000 0.000000 0.000000 0.000000 0.000000
3.700000 2065.236328 0.000000 0.000000 0.000000 0.000000 0.000000
3.800000 2065.152344 0.000000 0.000000 0.000000 0.000000 0.000000
3.900000 2065.404053 0.000000 0.000000 0.000000 0.000000 0.000000
4.000000 2065.320068 0.000000 0.000000 0.000000 0.000000 0.000000
4.100000 2065.739746 0.000000 0.000000 0.000000 0.000000 0.000000
4.200000 2065.907471 0.000000 0.000000 0.000000 0.000000 0.000000
4.300000 2065.991455 0.000000 0.000000 0.000000 0.000000 0.000000
4.400000 2065.991455 0.000000 0.000000 0.000000 0.000000 0.000000
4.500000 2065.991455 0.000000 0.000000 0.000000 0.000000 0.000000
4.600000 2066.326904 0.000000 0.000000 0.000000 0.000000 0.000000
4.700000 2066.830566 0.000000 0.000000 0.000000 0.000000 0.000000
4.800000 2066.578613 0.000000 0.000000 0.000000 0.000000 0.000000
4.900000 2066.998291 0.000000 0.000000 0.000000 0.000000 0.000000
5.000000 2067.333984 0.000000 0.000000 0.000000 0.000000 0.000000
5.100000 2067.585449 0.000000 0.000000 0.000000 0.000000 0.000000
5.200000 2067.585449 0.000000 0.000000 0.000000 0.000000 0.000000
5.300000 2067.669434 0.000000 0.000000 0.000000 0.000000 0.000000
5.400000 2067.837402 0.000000 0.000000 0.000000 0.000000 0.000000
5.500000 2067.921387 0.000000 0.000000 0.000000 0.000000 0.000000
5.600000 2068.173096 0.000000 0.000000 0.000000 0.000000 0.000000
5.700000 2068.340820 0.000000 0.000000 0.000000 0.000000 0.000000
5.800000 2068.592529 0.000000 0.000000 0.000000 0.000000 0.000000
5.900000 2068.760254 0.000000 0.000000 0.000000 0.000000 0.000000
6.000000 2068.592529 0.000000 0.000000 0.000000 0.000000 0.000000
6.100000 2068.760254 0.000000 0.000000 0.000000 0.000000 0.000000
6.200000 2069.095947 0.000000 0.000000 0.000000 0.000000 0.000000
6.300000 2069.095947 0.000000 0.000000 0.000000 0.000000 0.000000
6.400000 2069.011963 0.000000 0.000000 0.000000 0.000000 0.000000
6.500000 2069.683105 0.000000 0.000000 0.000000 0.000000 0.000000
6.600000 2069.599365 0.000000 0.000000 0.000000 0.000000 0.000000
6.700000 2069.767090 0.000000 0.000000 0.000000 0.000000 0.000000
6.800000 2069.767090 0.000000 0.000000 0.000000 0.000000 0.000000
6.900000 2069.851074 0.000000 0.000000 0.000000 0.000000 0.000000
7.000000 2070.186768 0.000000 0.000000 0.000000 0.000000 0.000000
7.100000 2069.851074 0.000000 0.000000 0.000000 0.000000 0.000000
7.200000 2070.354492 0.000000 0.000000 0.000000 0.000000 0.000000
7.300000 2070.186768 0.000000 0.000000 0.000000 0.000000 0.000000
7.400000 2070.606201 0.000000 0.000000 0.000000 0.000000 0.000000
7.500000 2070.773926 0.000000 0.000000 0.000000 0.000000 0.000000
7.600000 2070.606201 0.000000 0.000000 0.000000 0.000000 0.000000
7.700000 2071.109619 0.000000 0.000000 0.000000 0.000000 0.000000
7.800000 2070.773926 0.000000 0.000000 0.000000 0.000000 0.000000
7.900000 2071.109619 0.000000 0.000000 0.000000 0.000000 0.000000
8.000000 2071.025635 0.000000 0.000000 0.000000 0.000000 0.000000
8.100000 2071.361328 0.000000 0.000000 0.000000 0.000000 0.000000
8.200000 2071.445312 0.000000 0.000000 0.000000 0.000000 0.000000
8.300000 2071.445312 0.000000 0.000000 0.000000 0.000000 0.000000
8.400000 2071.529297 0.000000 0.000000 0.000000 0.000000 0.000000
8.500000 2071.864746 0.000000 0.000000 0.000000 0.000000 0.000000
8.600000 2072.116455 0.000000 0.000000 0.000000 0.000000 0.000000
8.700000 2071.948730 0.000000 0.000000 0.000000 0.000000 0.000000
8.800000 2071.948730 0.000000 0.000000 0.000000 0.000000 0.000000
8.900000 2072.284424 0.000000 0.000000 0.000000 0.000000 0.000000
9.000000 2072.368164 0.000000 0.000000 0.000000 0.000000 0.000000
9.100000 2072.452148 0.000000 0.000000 0.000000 0.000000 0.000000
9.200000 2072.619873 0.000000 0.000000 0.000000 0.000000 0.000000
9.300000 2072.955566 0.000000 0.000000 0.000000 0.000000 0.000000
9.400000 2072.871582 0.000000 0.000000 0.000000 0.000000 0.000000
9.500000 2072.955566 0.000000 0.000000 0.000000 0.000000 0.000000
9.600000 2073.207275 0.000000 0.000000 0.000000 0.000000 0.000000
9.700000 2073.207275 0.000000 0.000000 0.000000 0.000000 0.000000
9.800000 2073.458984 0.000000 0.000000 0.000000 0.000000 0.000000
9.900000 2073.291016 0.000000 0.000000 0.000000 0.000000 0.000000
10.000000 2073.458984 0.000000 0.000000 0.000000 0.000000 0.000000
10.100000 2073.458984 0.000000 0.000000 0.000000 0.000000 0.000000
10.200000 2073.878418 0.000000 0.000000 0.000000 0.000000 0.000000
10.300000 2073.794678 0.000000 0.000000 0.000000 0.000000 0.000000
10.400000 2074.046387 0.000000 0.000000 0.000000 0.000000 0.000000
10.500000 2074.046387 0.000000 0.000000 0.000000 0.000000 0.000000
10.600000 2073.962402 0.000000 0.000000 0.000000 0.000000 0.000000
10.700000 2074.214111 0.000000 0.000000 0.000000 0.000000 0.000000
10.800000 2074.214111 0.000000 0.000000 0.000000 0.000000 0.000000
10.900000 2074.130127 0.000000 0.000000 0.000000 0.000000 0.000000
11.000000 2074.717529 0.000000 0.000000 0.000000 0.000000 0.000000
11.100000 2074.549805 0.000000 0.000000 0.000000 0.000000 0.000000
11.200000 2074.801514 0.000000 0.000000 0.000000 0.000000 0.000000
11.300000 2074.885498 0.000000 0.000000 0.000000 0.000000 0.000000
11.400000 2074.885498 0.000000 0.000000 0.000000 0.000000 0.000000
11.500000 2074.801514 0.000000 0.000000 0.000000 0.000000 0.000000
11.600000 2075.137207 0.000000 0.000000 0.000000 0.000000 0.000000
11.700000 2075.137207 0.000000 0.000000 0.000000 0.000000 0.000000
11.800000 2075.220947 0.000000 0.000000 0.000000 0.000000 0.000000
11.900000 2075.304932 0.000000 0.000000 0.000000 0.000000 0.000000
12.000000 2075.556641 0.000000 0.000000 0.000000 0.000000 0.000000
12.100000 2075.388672 0.000000 0.000000 0.000000 0.000000 0.000000
12.200000 2075.808350 0.000000 0.000000 0.000000 0.000000 0.000000
12.300000 2075.808350 0.000000 0.000000 0.000000 0.000000 0.000000
12.400000 2075.808350 0.000000 0.000000 0.000000 0.000000 0.000000
12.500000 2075.892334 0.000000 0.000000 0.000000 0.000000 0.000000
12.600000 2075.892334 0.000000 0.000000 0.000000 0.000000 0.000000
12.700000 2075.976074 0.000000 0.000000 0.000000 0.000000 0.000000
12.800000 2076.144043 0.000000 0.000000 0.000000 0.000000 0.000000
12.900000 2076.060059 0.000000 0.000000 0.000000 0.000000 0.000000
13.000000 2076.395752 0.000000 0.000000 0.000000 0.000000 0.000000
13.100000 2076.395752 0.000000 0.000000 0.000000 0.000000 0.000000
13.200000 2076.479492 0.000000 0.000000 0.000000 0.000000 0.000000
13.300000 2076.563477 0.000000 0.000000 0.000000 0.000000 0.000000
13.400000 2076.563477 0.000000 0.000000 0.000000 0.000000 0.000000
13.500000 2076.731201 0.000000 0.000000 0.000000 0.000000 0.000000
13.600000 2076.983154 0.000000 0.000000 0.000000 0.000000 0.000000
13.700000 2077.150879 0.000000 0.000000 0.000000 0.000000 0.000000
13.800000 2077.066895 0.000000 0.000000 0.000000 0.000000 0.000000
13.900000 2077.402588 0.000000 0.000000 0.000000 0.000000 0.000000
14.000000 2077.318604 0.000000 0.000000 0.000000 0.000000 0.000000
14.100000 2077.402588 0.000000 0.000000 0.000000 0.000000 0.000000
14.200000 2077.486328 0.000000 0.000000 0.000000 0.000000 0.000000
14.300000 2077.570312 0.000000 0.000000 0.000000 0.000000 0.000000
14.400000 2077.570312 0.000000 0.000000 0.000000 0.000000 0.000000
14.500000 2078.073730 0.000000 0.000000 0.000000 0.000000 0.000000
14.600000 2077.906006 0.000000 0.000000 0.000000 0.000000 0.000000
14.700000 2077.822021 0.000000 0.000000 0.000000 0.000000 0.000000
14.800000 2078.073730 0.000000 0.000000 0.000000 0.000000 0.000000
14.900000 2078.157715 0.000000 0.000000 0.000000 0.000000 0.000000
15.000000 2078.157715 0.000000 0.000000 0.000000 0.000000 0.000000
15.100000 2078.241699 0.000000 0.000000 0.000000 0.000000 0.000000
15.200000 2078.409424 0.000000 0.000000 0.000000 0.000000 0.000000
15.300000 2078.409424 0.000000 0.000000 0.000000 0.000000 0.000000
15.400000 2078.661133 0.000000 0.000000 0.000000 0.000000 0.000000
15.500000 2078.828857 0.000000 0.000000 0.000000 0.000000 0.000000
15.600000 2078.577148 0.000000 0.000000 0.000000 0.000000 0.000000
15.700000 2078.912842 0.000000 0.000000 0.000000 0.000000 0.000000
15.800000 2078.996582 0.000000 0.000000 0.000000 0.000000 0.000000
15.900000 2078.996582 0.000000 0.000000 0.000000 0.000000 0.000000
16.000000 2079.248535 0.000000 0.000000 0.000000 0.000000 0.000000
16.100000 2079.332275 0.000000 0.000000 0.000000 0.000000 0.000000
16.200001 2079.248535 0.000000 0.000000 0.000000 0.000000 0.000000
16.299999 2079.500244 0.000000 0.000000 0.000000 0.000000 0.000000
16.400000 2079.667969 0.000000 0.000000 0.000000 0.000000 0.000000
16.500000 2079.835693 0.000000 0.000000 0.000000 0.000000 0.000000
16.600000 2079.835693 0.000000 0.000000 0.000000 0.000000 0.000000
16.700001 2079.583984 0.000000 0.000000 0.000000 0.000000 0.000000
16.799999 2079.919678 0.000000 0.000000 0.000000 0.000000 0.000000
16.900000 2080.171387 0.000000 0.000000 0.000000 0.000000 0.000000
17.000000 2080.003662 0.000000 0.000000 0.000000 0.000000 0.000000
17.100000 2080.087402 0.000000 0.000000 0.000000 0.000000 0.000000
17.200001 2080.171387 0.000000 0.000000 0.000000 0.000000 0.000000
17.299999 2080.003662 0.000000 0.000000 0.000000 0.000000 0.000000
17.400000 2080.255371 0.000000 0.000000 0.000000 0.000000 0.000000
17.500000 2080.507080 0.000000 0.000000 0.000000 0.000000 0.000000
17.600000 2080.674805 0.000000 0.000000 0.000000 0.000000 0.000000
17.700001 2080.758789 0.000000 0.000000 0.000000 0.000000 0.000000
17.799999 2080.591064 0.000000 0.000000 0.000000 0.000000 0.000000
17.900000 2080.758789 0.000000 0.000000 0.000000 0.000000 0.000000
18.000000 2080.926514 0.000000 0.000000 0.000000 0.000000 0.000000
18.100000 2080.926514 0.000000 0.000000 0.000000 0.000000 0.000000
18.200001 2081.094238 0.000000 0.000000 0.000000 0.000000 0.000000
18.299999 2081.262207 0.000000 0.000000 0.000000 0.000000 0.000000
18.400000 2081.346191 0.000000 0.000000 0.000000 0.000000 0.000000
18.500000 2081.429932 0.000000 0.000000 0.000000 0.000000 0.000000
18.600000 2081.262207 0.000000 0.000000 0.000000 0.000000 0.000000
18.700001 2081.597900 0.000000 0.000000 0.000000 0.000000 0.000000
18.799999 2081.681641 0.000000 0.000000 0.000000 0.000000 0.000000
18.900000 2081.513916 0.000000 0.000000 0.000000 0.000000 0.000000
19.000000 2081.681641 0.000000 0.000000 0.000000 0.000000 0.000000
19.100000 2082.101318 0.000000 0.000000 0.000000 0.000000 0.000000
19.200001 2082.017334 0.000000 0.000000 0.000000 0.000000 0.000000
19.299999 2081.849609 0.000000 0.000000 0.000000 0.000000 0.000000
19.400000 2082.017334 0.000000 0.000000 0.000000 0.000000 0.000000
19.500000 2082.101318 0.000000 0.000000 0.000000 0.000000 0.000000
19.600000 2082.352783 0.000000 0.000000 0.000000 0.000000 0.000000
19.700001 2082.269043 0.000000 0.000000 0.000000 0.000000 0.000000
19.799999 2082.604736 0.000000 0.000000 0.000000 0.000000 0.000000

View File

@@ -0,0 +1,597 @@
Time(s) E(mV) I(mA) Q(mC) Capacity(mAh) Energy(Wh) P(W)
0.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Time(s) E(mV) I(mA) Q(mC) Capacity(mAh) Energy(Wh) P(W)
0.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Time(s) E(mV) I(mA) Q(mC) Capacity(mAh) Energy(Wh) P(W)
0.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
12.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
13.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
14.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
15.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
16.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.200001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.299999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.700001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19.799999 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

View File

@@ -0,0 +1,101 @@
Time(s) E(mV) I(mA) Q(mC) Capacity(mAh) Energy(Wh) P(W)
0.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
3.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
4.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
5.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
6.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
7.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
8.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.300000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.400000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.700000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.800000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9.900000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
10.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

View File

@@ -0,0 +1,981 @@
Time(s) E(mV) I(mA)
0.010000 -997.723450 -5.245421
0.020000 -996.045349 -5.010738
0.030000 -993.947693 -4.961776
0.040000 -991.682251 -4.928009
0.050000 -989.752441 -4.899306
0.060000 -987.990417 -5.074349
0.070000 -985.641052 -4.800336
0.080000 -983.879028 -4.896254
0.090000 -981.697510 -4.842570
0.100000 -979.935486 -4.868352
0.110000 -978.005676 -4.946120
0.120000 -975.656372 -4.801778
0.130000 -973.978271 -4.739869
0.140000 -971.880615 -4.706879
0.150000 -969.866882 -4.946629
0.160000 -967.769287 -4.942389
0.170000 -966.007263 -4.839263
0.180000 -963.657898 -4.812040
0.190000 -961.811951 -4.663457
0.200000 -959.798279 -4.709678
0.210000 -957.784485 -4.658539
0.220000 -955.938599 -4.624955
0.230000 -953.757080 -4.610198
0.240000 -951.995056 -4.587724
0.250000 -949.897400 -4.594509
0.260000 -947.883728 -4.307436
0.270000 -946.037842 -4.310320
0.280000 -943.940186 -4.356200
0.290000 -941.926453 -4.364511
0.300000 -939.661011 -4.595781
0.310000 -937.731201 -4.543455
0.320000 -935.717407 -4.559314
0.330000 -933.871521 -4.562452
0.340000 -931.606079 -4.427014
0.350000 -929.844116 -4.489263
0.360000 -927.662537 -4.452202
0.370000 -925.732788 -4.399452
0.380000 -923.886780 -4.405304
0.390000 -921.873108 -4.408611
0.400000 -919.691589 -4.333557
0.410000 -917.593933 -4.334066
0.420000 -915.831909 -4.386562
0.430000 -913.482544 -4.543200
0.440000 -913.146973 -4.722992
0.450000 -909.622925 -4.428881
0.460000 -907.777039 -4.410053
0.470000 -905.679382 -4.363664
0.480000 -903.581787 -4.374688
0.490000 -901.735840 -4.188112
0.500000 -899.973816 -3.465724
0.510000 -898.127930 -3.826409
0.520000 -895.694702 -3.733291
0.530000 -893.848755 -3.535859
0.540000 -891.751160 -3.213846
0.550000 -889.821289 -3.182298
0.560000 -888.059265 -2.966124
0.570000 -885.961731 -2.916851
0.580000 -883.360596 -3.444437
0.590000 -881.682495 -3.675622
0.600000 -880.004395 -3.014973
0.610000 -877.738953 -2.964597
0.620000 -875.893066 -2.955438
0.630000 -873.543701 -3.789857
0.640000 -871.781738 -2.904723
0.650000 -869.767944 -3.019892
0.660000 -867.838196 -2.876482
0.670000 -865.572754 -2.871055
0.680000 -863.894653 -2.873005
0.690000 -861.796997 -2.856468
0.700000 -859.699341 -2.857570
0.710000 -857.685669 -3.277282
0.720000 -855.755798 -3.240815
0.730000 -853.909912 -2.812538
0.740000 -851.812256 -2.800071
0.750000 -849.714661 -2.830602
0.760000 -847.617004 -2.861980
0.770000 -845.687134 -2.828651
0.780000 -843.673462 -2.989106
0.790000 -841.575806 -3.356577
0.800000 -839.981567 -3.497866
0.810000 -837.212769 -3.823356
0.820000 -835.534668 -3.269310
0.830000 -833.437012 -3.710393
0.840000 -831.842834 -2.778360
0.850000 -829.829041 -2.802276
0.860000 -827.815369 -2.759279
0.870000 -825.717712 -2.751392
0.880000 -823.787903 -2.733328
0.890000 -821.942017 -2.720352
0.900000 -819.844360 -2.750289
0.910000 -817.830627 -2.919310
0.920000 -815.733032 -2.894377
0.930000 -813.803162 -2.898023
0.940000 -811.789490 -2.866390
0.950000 -809.859619 -2.864864
0.960000 -807.510315 -3.323078
0.970000 -805.916077 -2.828821
0.980000 -803.566772 -2.821018
0.990000 -801.888611 -2.812368
1.000000 -799.874939 -2.779124
1.010000 -797.777283 -2.807873
1.020000 -795.847534 -2.797611
1.030000 -793.498108 -2.787180
1.040000 -791.903992 -2.775138
1.050000 -789.974121 -2.762417
1.060000 -787.792542 -2.723151
1.070000 -785.694946 -2.718826
1.080000 -784.016846 -2.685411
1.090000 -782.003113 -2.675913
1.100000 -779.653748 -2.651997
1.110000 -777.807861 -2.652761
1.120000 -775.877991 -2.638598
1.130000 -773.864319 -2.628506
1.140000 -771.682800 -2.617651
1.150000 -769.501221 -2.629269
1.160000 -767.907043 -2.609424
1.170000 -765.809387 -2.601622
1.180000 -763.879578 -2.593480
1.190000 -761.698059 -2.583049
1.200000 -759.600464 -2.560490
1.210000 -757.586731 -2.555995
1.220000 -755.740784 -2.563713
1.230000 -753.894836 -2.534794
1.240000 -752.048950 -2.521224
1.250000 -749.699585 -2.530044
1.260000 -747.685913 -2.603827
1.270000 -745.672180 -2.536320
1.280000 -743.658386 -2.561847
1.290000 -741.728638 -2.517239
1.300000 -739.798828 -2.482468
1.310000 -737.868958 -2.469068
1.320000 -736.023071 -2.464319
1.330000 -733.925415 -2.457025
1.340000 -731.659973 -2.449054
1.350000 -729.981873 -2.444898
1.360000 -727.800293 -2.441421
1.370000 -725.618835 -2.437435
1.380000 -723.688965 -2.433025
1.390000 -721.759216 -2.430905
1.400000 -719.661560 -2.424205
1.410000 -717.899536 -2.414367
1.420000 -715.718018 -2.416233
1.430000 -713.788208 -2.403003
1.440000 -711.522766 -2.391639
1.450000 -709.760742 -2.383328
1.460000 -707.998657 -2.383158
1.470000 -705.984985 -2.372218
1.480000 -703.635681 -2.377137
1.490000 -701.705811 -2.377391
1.500000 -699.776001 -2.370183
1.510000 -697.846252 -2.365434
1.520000 -695.748596 -2.726034
1.530000 -693.734802 -2.722727
1.540000 -691.888916 -2.729681
1.550000 -689.707397 -2.716281
1.560000 -687.777588 -2.697030
1.570000 -685.763794 -2.677355
1.580000 -684.001831 -2.668111
1.590000 -681.652466 -2.662683
1.600000 -679.890503 -2.646909
1.610000 -677.625061 -2.631474
1.620000 -675.611267 -2.621382
1.630000 -673.849304 -3.134382
1.640000 -671.919495 -2.953148
1.650000 -669.905762 -2.917614
1.660000 -667.975952 -2.634273
1.670000 -665.710510 -2.670146
1.680000 -663.864624 -2.665312
1.690000 -661.431335 -2.793032
1.700000 -659.753174 -2.684648
1.710000 -657.655640 -2.447781
1.720000 -655.809631 -2.459400
1.730000 -653.795959 -2.214307
1.740000 -651.782227 -2.323878
1.750000 -649.852417 -2.461605
1.760000 -648.174316 -2.134334
1.770000 -645.741089 -2.281559
1.780000 -643.727356 -2.102955
1.790000 -641.881409 -2.146970
1.800000 -639.615967 -2.266039
1.810000 -637.518311 -2.363737
1.820000 -635.924133 -2.080481
1.830000 -633.742554 -2.538271
1.840000 -631.812805 -2.472121
1.850000 -630.218567 -2.064707
1.860000 -627.869263 -2.240512
1.870000 -625.687683 -2.340161
1.880000 -623.925720 -2.479245
1.890000 -621.911987 -2.518935
1.900000 -619.898254 -2.519359
1.910000 -617.716675 -2.306577
1.920000 -615.786865 -2.513168
1.930000 -613.689270 -2.541833
1.940000 -611.675537 -2.324556
1.950000 -609.745728 -2.314549
1.960000 -607.815857 -2.303355
1.970000 -605.634399 -2.315228
1.980000 -603.704529 -2.314719
1.990000 -601.858643 -2.302506
2.000000 -599.593201 -2.500277
2.010000 -597.663391 -2.252131
2.020000 -595.817444 -2.413774
2.030000 -593.803711 -2.275283
2.040000 -591.622192 -2.237290
2.050000 -589.608459 -2.236442
2.060000 -587.510864 -2.239834
2.070000 -585.832764 -2.233049
2.080000 -583.567322 -2.228130
2.090000 -581.805298 -2.237968
2.100000 -579.791565 -2.244583
2.110000 -577.777832 -2.200483
2.120000 -575.848022 -2.377306
2.130000 -573.666504 -2.203367
2.140000 -571.820557 -2.181995
2.150000 -569.639038 -2.179366
2.160000 -567.960938 -2.190815
2.170000 -565.779419 -2.180808
2.180000 -563.513977 -2.163507
2.190000 -561.835815 -2.375780
2.200000 -559.654297 -2.135267
2.210000 -557.808411 -2.128567
2.220000 -555.542969 -2.308697
2.230000 -553.613159 -2.307595
2.240000 -551.767212 -2.303100
2.250000 -549.417847 -2.100495
2.260000 -548.075439 -2.131026
2.270000 -545.642151 -2.087011
2.280000 -543.880127 -2.080057
2.290000 -541.614685 -2.073527
2.300000 -539.768738 -2.067590
2.310000 -537.755066 -2.068438
2.320000 -535.657410 -2.062162
2.330000 -533.727600 -2.055802
2.340000 -531.546082 -2.048509
2.350000 -530.035767 -2.043674
2.360000 -527.854248 -2.043081
2.370000 -525.756592 -2.047661
2.380000 -523.658936 -2.039265
2.390000 -521.813049 -2.032904
2.400000 -519.715393 -2.150956
2.410000 -517.953430 -1.847176
2.420000 -515.771851 -1.889410
2.430000 -513.842102 -1.841409
2.440000 -511.492706 -1.839289
2.450000 -509.730713 -1.833098
2.460000 -507.633087 -1.832844
2.470000 -505.787170 -1.824787
2.480000 -503.689545 -1.819614
2.490000 -501.843597 -1.815373
2.500000 -499.829895 -1.807317
2.510000 -497.816162 -1.817493
2.520000 -495.802460 -1.808674
2.530000 -493.872620 -1.803670
2.540000 -491.691071 -1.797394
2.550000 -489.845184 -1.784334
2.560000 -487.915344 -1.786624
2.570000 -485.733795 -1.790440
2.580000 -483.804016 -1.777719
2.590000 -481.706360 -1.768560
2.600000 -479.524841 -2.182335
2.610000 -477.595032 -2.161981
2.620000 -475.749084 -2.157316
2.630000 -473.819275 -2.149853
2.640000 -471.721649 -2.136030
2.650000 -469.875763 -2.134334
2.660000 -467.862000 -1.757959
2.670000 -465.512665 -1.756602
2.680000 -463.582825 -1.761521
2.690000 -461.736938 -1.756008
2.700000 -459.723206 -1.751344
2.710000 -457.793396 -1.748715
2.720000 -455.611847 -1.743117
2.730000 -453.849854 -1.735146
2.740000 -451.668304 -1.734976
2.750000 -449.654572 -1.741337
2.760000 -447.808685 -1.721067
2.770000 -445.627136 -1.710212
2.780000 -443.697296 -1.699527
2.790000 -442.019196 -1.702495
2.800000 -439.585968 -1.699611
2.810000 -437.823944 -1.703173
2.820000 -435.726318 -1.711060
2.830000 -433.544769 -1.708092
2.840000 -431.866669 -1.703852
2.850000 -429.852936 -1.702749
2.860000 -427.671417 -1.695032
2.870000 -425.825500 -1.695286
2.880000 -423.560059 -2.050544
2.890000 -421.546326 -1.687653
2.900000 -419.868225 -1.682735
2.910000 -417.518890 -2.099732
2.920000 -415.672974 -1.665688
2.930000 -413.659241 -1.658904
2.940000 -411.813354 -1.656784
2.950000 -409.463989 -1.658225
2.960000 -407.618073 -1.653815
2.970000 -405.856079 -1.647285
2.980000 -403.758423 -1.653815
2.990000 -401.576874 -1.646013
3.000000 -399.814880 -1.641349
3.010000 -397.801147 -1.643723
3.020000 -395.619598 -1.639144
3.030000 -393.857605 -1.638720
3.040000 -392.011719 -1.634055
3.050000 -389.578461 -1.647116
3.060000 -387.732544 -1.625490
3.070000 -385.634888 -1.627779
3.080000 -383.705078 -1.600980
3.090000 -381.859161 -1.595637
3.100000 -379.845459 -1.591312
3.110000 -377.747803 -1.587496
3.120000 -375.650177 -1.584782
3.130000 -373.804260 -1.583595
3.140000 -371.538818 -1.574605
3.150000 -369.525085 -1.561799
3.160000 -367.846985 -1.559086
3.170000 -365.917206 -1.556626
3.180000 -363.735657 -1.562902
3.190000 -361.889709 -1.554676
3.200000 -359.792114 -1.550605
3.210000 -357.694489 -1.556541
3.220000 -355.596832 -1.542887
3.230000 -353.834839 -1.540089
3.240000 -351.569397 -1.535000
3.250000 -349.807404 -1.529233
3.260000 -347.625854 -1.527198
3.270000 -345.528229 -1.526265
3.280000 -343.682281 -1.525671
3.290000 -341.416870 -1.520837
3.300000 -339.570953 -1.515410
3.310000 -337.389404 -1.511678
3.320000 -335.963013 -1.508201
3.330000 -333.613678 -1.503197
3.340000 -331.599945 -1.501247
3.350000 -329.754028 -1.499296
3.360000 -327.656433 -1.494971
3.370000 -325.558777 -1.491240
3.380000 -323.712860 -1.487339
3.390000 -321.783051 -1.486660
3.400000 -320.021057 -1.483437
3.410000 -317.671661 -1.479536
3.420000 -315.741852 -1.478603
3.430000 -313.812042 -1.473854
3.440000 -311.462708 -1.471734
3.450000 -309.868500 -1.466306
3.460000 -307.770874 -1.463169
3.470000 -305.673248 -1.458334
3.480000 -303.491699 -1.455366
3.490000 -301.729706 -1.451465
3.500000 -299.799866 -1.449260
3.510000 -297.702240 -1.449175
3.520000 -295.604614 -1.445444
3.530000 -293.674805 -1.441712
3.540000 -291.744995 -1.438829
3.550000 -289.563446 -1.436030
3.560000 -287.633636 -1.432723
3.570000 -285.619873 -1.430602
3.580000 -283.690094 -1.427719
3.590000 -281.844177 -1.422800
3.600000 -279.662628 -1.423055
3.610000 -277.816711 -1.418051
3.620000 -275.802979 -1.414659
3.630000 -273.705353 -1.413387
3.640000 -271.523834 -1.409825
3.650000 -269.761810 -1.407111
3.660000 -267.915894 -1.406348
3.670000 -265.650452 -1.401344
3.680000 -263.636719 -1.399054
3.690000 -261.790802 -1.394899
3.700000 -259.273651 -1.391591
3.710000 -257.595551 -1.389556
3.720000 -255.665741 -1.385231
3.730000 -253.652008 -1.383195
3.740000 -251.722183 -1.377852
3.750000 -249.540665 -1.376156
3.760000 -247.778641 -1.371661
3.770000 -245.681000 -1.368608
3.780000 -243.415573 -1.366064
3.790000 -241.821365 -1.364877
3.800000 -239.807648 -1.362248
3.810000 -237.626129 -1.359449
3.820000 -235.612381 -1.355378
3.830000 -233.514771 -1.354361
3.840000 -231.668854 -1.349357
3.850000 -229.655121 -1.345541
3.860000 -227.557480 -1.344269
3.870000 -225.543762 -1.340961
3.880000 -223.613953 -1.337993
3.890000 -221.600204 -1.335449
3.900000 -219.586487 -1.332904
3.910000 -217.572769 -1.329258
3.920000 -215.726852 -1.328325
3.930000 -213.713135 -1.323576
3.940000 -211.867218 -1.321201
3.950000 -209.769592 -1.318318
3.960000 -207.588058 -1.316876
3.970000 -205.658234 -1.314586
3.980000 -203.644516 -1.310091
3.990000 -201.714691 -1.307717
4.000000 -199.700958 -1.304155
4.010000 -197.603333 -1.301695
4.020000 -195.757416 -1.298473
4.030000 -193.491974 -1.295504
4.040000 -191.729965 -1.293130
4.050000 -189.716232 -1.291518
4.060000 -187.702515 -1.289568
4.070000 -185.688797 -1.284649
4.080000 -183.675064 -1.283801
4.090000 -181.745239 -1.278967
4.100000 -179.647614 -1.278458
4.110000 -177.633896 -1.277356
4.120000 -175.620163 -1.272691
4.130000 -173.690338 -1.268451
4.140000 -171.676620 -1.267094
4.150000 -169.662903 -1.263702
4.160000 -167.900879 -1.262005
4.170000 -165.719345 -1.259461
4.180000 -163.537827 -1.256154
4.190000 -161.608002 -1.254373
4.200000 -159.845993 -1.249115
4.210000 -157.748367 -1.248606
4.220000 -155.482910 -1.245129
4.230000 -153.888718 -1.243348
4.240000 -151.707184 -1.239871
4.250000 -149.693451 -1.238090
4.260000 -147.847549 -1.234274
4.270000 -145.749908 -1.232069
4.280000 -143.736191 -1.229609
4.290000 -141.554657 -1.227998
4.300000 -139.708740 -1.224521
4.310000 -137.946732 -1.222740
4.320000 -135.597382 -1.219178
4.330000 -133.919281 -1.217058
4.340000 -131.737732 -1.214344
4.350000 -129.640106 -1.212648
4.360000 -127.458580 -1.209255
4.370000 -125.612663 -1.205693
4.380000 -123.766747 -1.202810
4.390000 -121.669113 -1.200351
4.400000 -119.823204 -1.198485
4.410000 -117.725563 -1.195516
4.420000 -115.711845 -1.192209
4.430000 -113.698128 -1.190428
4.440000 -111.600487 -1.187460
4.450000 -109.586761 -1.185764
4.460000 -107.740845 -1.184068
4.470000 -105.643219 -1.180082
4.480000 -103.629494 -1.178385
4.490000 -101.615768 -1.174739
4.500000 -99.602043 -1.172534
4.510000 -97.504417 -1.170753
4.520000 -95.574600 -1.167445
4.530000 -93.644768 -1.163459
4.540000 -91.966675 -1.161848
4.550000 -89.701233 -1.162272
4.560000 -87.603600 -1.159473
4.570000 -85.925491 -1.154724
4.580000 -83.660049 -1.153876
4.590000 -81.730232 -1.149551
4.600000 -79.716515 -1.149890
4.610000 -77.534973 -1.146074
4.620000 -75.605156 -1.142003
4.630000 -73.591431 -1.140985
4.640000 -71.661606 -1.138865
4.650000 -69.731789 -1.136999
4.660000 -67.718063 -1.134540
4.670000 -65.452621 -1.131572
4.680000 -63.690613 -1.129621
4.690000 -61.676888 -1.126144
4.700000 -59.579258 -1.123430
4.710000 -57.649437 -1.121225
4.720000 -55.635715 -1.119614
4.730000 -53.538082 -1.116985
4.740000 -51.776077 -1.115543
4.750000 -49.594540 -1.115798
4.760000 -47.664719 -1.147431
4.770000 -45.567089 -1.146667
4.780000 -43.469460 -1.141240
4.790000 -41.539642 -1.135727
4.800000 -39.525917 -1.134540
4.810000 -37.680000 -1.132081
4.820000 -35.834084 -1.127671
4.830000 -33.904266 -1.125635
4.840000 -31.806633 -1.123345
4.850000 -29.709005 -1.122582
4.860000 -27.611376 -1.120547
4.870000 -25.513744 -1.115628
4.880000 -23.583923 -1.113678
4.890000 -21.486296 -1.112914
4.900000 -19.808189 -1.109352
4.910000 -17.458843 -1.107487
4.920000 -15.529024 -1.105536
4.930000 -13.431395 -1.103077
4.940000 -11.501575 -1.099091
4.950000 -9.403944 -1.095020
4.960000 -7.474124 -1.092645
4.970000 -5.879925 -1.090016
4.980000 -3.698390 -1.088914
4.990000 -1.684664 -1.086709
5.000000 0.412966 -1.084080
5.010000 2.510596 -1.081620
5.020000 4.524321 -1.077804
5.030000 6.538046 -1.077550
5.040000 8.635676 -1.074581
5.050000 10.145969 -1.070765
5.060000 12.327506 -1.068984
5.070000 14.341230 -1.064404
5.080000 16.438860 -1.065168
5.090000 18.536491 -1.062454
5.100000 20.466312 -1.057959
5.110000 22.563942 -1.056857
5.120000 24.493761 -1.054228
5.130000 26.423580 -1.052871
5.140000 28.353401 -1.052023
5.150000 30.451031 -1.048376
5.160000 32.464756 -1.046510
5.170000 34.562386 -1.044644
5.180000 36.408302 -1.042185
5.190000 38.422028 -1.042354
5.200000 40.435749 -1.040658
5.210000 42.197762 -1.037181
5.220000 44.295391 -1.035061
5.230000 46.393021 -1.032178
5.240000 48.155029 -1.032008
5.250000 50.420471 -1.028361
5.260000 52.685913 -1.025139
5.270000 54.447922 -1.024291
5.280000 56.293835 -1.022425
5.290000 58.307560 -1.022001
5.300000 60.321289 -1.017082
5.310000 62.502819 -1.015640
5.320000 64.516548 -1.013944
5.330000 66.698082 -1.009873
5.340000 68.376183 -1.006651
5.350000 70.389908 -1.005463
5.360000 72.571442 -1.003174
5.370000 74.669075 -1.001562
5.380000 76.514992 -0.999696
5.390000 78.528709 -0.997831
5.400000 80.626350 -0.995287
5.410000 82.640068 -0.993675
5.420000 84.485985 -0.992149
5.430000 86.499710 -0.990028
5.440000 88.513435 -0.987060
5.450000 90.443260 -0.984686
5.460000 92.205261 -0.982141
5.470000 94.302895 -0.980869
5.480000 96.316620 -0.977731
5.490000 98.330345 -0.975102
5.500000 100.427979 -0.975017
5.510000 102.525604 -0.972558
5.520000 104.455421 -0.970692
5.530000 106.636963 -0.967300
5.540000 108.231163 -0.966961
5.550000 110.412689 -0.965180
5.560000 112.510323 -0.963484
5.570000 114.524055 -0.961024
5.580000 116.705582 -0.958226
5.590000 118.383690 -0.956869
5.600000 120.397415 -0.954070
5.610000 122.327240 -0.952374
5.620000 124.508766 -0.950169
5.630000 126.354691 -0.946861
5.640000 128.620132 -0.946268
5.650000 130.466049 -0.942706
5.660000 132.395859 -0.941858
5.670000 134.241776 -0.939568
5.680000 136.507217 -0.937363
5.690000 138.520935 -0.936006
5.700000 140.534668 -0.932953
5.710000 142.464493 -0.931172
5.720000 144.646027 -0.930409
5.730000 145.988510 -0.926932
5.740000 148.421753 -0.926847
5.750000 150.603287 -0.923200
5.760000 152.617020 -0.922098
5.770000 154.546844 -0.919469
5.780000 156.392761 -0.917857
5.790000 158.406479 -0.914974
5.800000 160.336304 -0.912345
5.810000 162.517838 -0.911412
5.820000 164.363739 -0.910055
5.830000 166.461380 -0.906663
5.840000 168.475098 -0.903949
5.850000 170.404922 -0.901235
5.860000 172.502563 -0.899624
5.870000 174.516281 -0.899115
5.880000 176.613922 -0.899285
5.890000 178.459824 -0.894705
5.900000 180.725266 -0.892585
5.910000 182.235550 -0.890889
5.920000 184.500992 -0.888684
5.930000 186.598633 -0.886055
5.940000 188.612350 -0.885461
5.950000 190.542175 -0.883426
5.960000 192.304169 -0.880118
5.970000 194.317917 -0.879694
5.980000 196.499435 -0.876641
5.990000 198.429276 -0.874182
6.000000 200.442993 -0.874351
6.010000 202.624512 -0.869517
6.020000 204.470428 -0.869432
6.030000 206.484146 -0.866803
6.040000 208.413986 -0.864938
6.050000 210.679428 -0.864005
6.060000 212.525330 -0.863326
6.070000 214.371246 -0.860188
6.080000 216.384964 -0.860188
6.090000 218.398712 -0.856796
6.100000 220.412430 -0.854676
6.110000 222.426147 -0.852217
6.120000 224.355972 -0.850520
6.130000 226.537506 -0.849672
6.140000 228.299515 -0.848061
6.150000 230.397141 -0.845347
6.160000 232.578690 -0.843397
6.170000 234.676300 -0.841785
6.180000 236.270523 -0.840768
6.190000 238.368134 -0.839750
6.200000 240.381866 -0.836866
6.210000 242.311676 -0.835764
6.220000 244.577118 -0.833389
6.230000 246.506943 -0.831693
6.240000 248.520676 -0.830167
6.250000 250.198776 -0.827538
6.260000 252.380310 -0.825587
6.270000 254.561844 -0.823212
6.280000 256.407776 -0.821347
6.290000 258.673218 -0.819905
6.300000 260.351318 -0.816173
6.310000 262.365021 -0.814986
6.320000 264.462677 -0.814986
6.330000 266.224670 -0.813205
6.340000 268.574036 -0.810661
6.350000 270.503845 -0.807269
6.360000 272.433655 -0.805827
6.370000 274.615173 -0.804809
6.380000 276.712830 -0.804724
6.390000 278.558746 -0.801841
6.400000 280.488556 -0.799806
6.410000 282.334473 -0.798364
6.420000 284.683807 -0.796837
6.430000 286.529724 -0.794802
6.440000 288.543457 -0.792173
6.450000 290.305450 -0.791749
6.460000 292.487000 -0.787848
6.470000 294.416809 -0.786321
6.480000 296.430542 -0.784795
6.490000 298.695984 -0.783183
6.500000 300.290192 -0.781233
6.510000 302.387817 -0.779452
6.520000 304.401550 -0.778858
6.530000 306.499176 -0.775975
6.540000 308.680725 -0.774618
6.550000 310.526611 -0.773346
6.560000 312.288635 -0.771056
6.570000 314.470184 -0.769275
6.580000 316.735626 -0.767409
6.590000 318.413727 -0.766561
6.600000 320.343536 -0.765119
6.610000 322.441162 -0.764695
6.620000 324.538788 -0.762575
6.630000 326.384705 -0.760540
6.640000 328.482330 -0.759946
6.650000 330.663879 -0.759353
6.660000 332.425873 -0.756215
6.670000 334.439606 -0.753586
6.680000 336.621155 -0.752398
6.690000 338.550964 -0.750448
6.700000 340.564697 -0.748667
6.710000 342.662292 -0.746886
6.720000 344.424347 -0.744681
6.730000 346.438049 -0.742900
6.740000 348.535675 -0.740356
6.750000 350.549408 -0.739084
6.760000 352.647064 -0.739084
6.770000 354.576843 -0.735691
6.780000 356.674500 -0.734080
6.790000 358.436493 -0.731451
6.800000 360.534119 -0.729924
6.810000 362.547882 -0.729331
6.820000 364.477661 -0.727889
6.830000 366.407471 -0.725854
6.840000 368.589020 -0.724666
6.850000 370.518860 -0.722292
6.860000 372.532593 -0.734334
6.870000 374.462402 -0.732045
6.880000 376.560028 -0.729585
6.890000 378.573730 -0.728737
6.900000 380.419678 -0.728059
6.910000 382.517303 -0.726447
6.920000 384.531006 -0.724158
6.930000 386.544739 -0.726278
6.940000 388.558441 -0.723564
6.950000 390.739990 -0.720596
6.960000 392.585938 -0.717712
6.970000 394.599640 -0.714659
6.980000 396.361664 -0.715507
6.990000 398.375366 -0.701344
7.000000 400.305206 -0.699479
7.010000 402.570648 -0.696680
7.020000 404.668274 -0.698631
7.030000 406.262482 -0.695832
7.040000 408.444031 -0.695153
7.050000 410.457733 -0.692864
7.060000 412.555359 -0.691337
7.070000 414.485168 -0.689471
7.080000 416.582794 -0.688199
7.090000 418.344788 -0.685231
7.100000 420.442444 -0.685231
7.110000 422.372284 -0.683365
7.120000 424.637726 -0.681584
7.130000 426.567505 -0.679464
7.140000 428.581268 -0.678701
7.150000 430.678894 -0.677259
7.160000 432.608704 -0.674206
7.170000 434.454590 -0.672764
7.180000 436.720032 -0.671831
7.190000 438.649872 -0.669796
7.200000 440.579712 -0.670135
7.210000 442.677307 -0.666913
7.220000 444.607147 -0.665895
7.230000 446.788696 -0.663775
7.240000 448.550690 -0.662079
7.250000 450.648315 -0.659534
7.260000 452.745941 -0.658347
7.270000 454.591858 -0.655972
7.280000 456.437775 -0.653937
7.290000 458.535400 -0.653598
7.300000 460.465240 -0.651986
7.310000 462.562866 -0.650460
7.320000 464.492676 -0.648933
7.330000 466.506378 -0.647237
7.340000 468.687927 -0.644015
7.350000 470.533875 -0.642234
7.360000 472.379761 -0.642149
7.370000 474.645203 -0.640113
7.380000 476.407196 -0.637654
7.390000 478.588745 -0.636297
7.400000 480.518585 -0.634177
7.410000 482.364471 -0.632226
7.420000 484.462128 -0.630869
7.430000 486.475861 -0.629173
7.440000 488.573456 -0.627477
7.450000 490.671112 -0.625272
7.460000 492.768738 -0.625272
7.470000 494.530731 -0.624509
7.480000 496.628387 -0.622134
7.490000 498.642120 -0.620523
7.500000 500.571930 -0.618742
7.510000 502.501709 -0.616113
7.520000 504.767151 -0.614841
7.530000 506.780914 -0.613654
7.540000 508.626831 -0.612466
7.550000 510.472748 -0.610940
7.560000 512.318665 -0.609752
7.570000 514.500183 -0.608226
7.580000 516.346069 -0.607039
7.590000 518.359802 -0.605427
7.600000 520.373596 -0.602629
7.610000 522.471191 -0.601441
7.620000 524.568787 -0.600254
7.630000 526.750366 -0.598812
7.640000 528.764038 -0.597286
7.650000 530.609985 -0.595844
7.660000 532.623718 -0.593639
7.670000 534.553528 -0.593215
7.680000 536.567261 -0.591688
7.690000 538.664856 -0.590332
7.700000 540.510803 -0.588805
7.710000 542.440613 -0.586685
7.720000 544.538269 -0.585667
7.730000 546.468079 -0.584904
7.740000 548.565674 -0.583971
7.750000 550.327698 -0.581427
7.760000 552.677063 -0.581088
7.770000 554.522949 -0.578374
7.780000 556.620605 -0.577017
7.790000 558.550415 -0.575066
7.800000 560.648071 -0.574727
7.810000 562.577881 -0.572776
7.820000 564.507690 -0.570656
7.830000 566.353638 -0.568790
7.840000 568.283447 -0.569384
7.850000 570.464966 -0.566077
7.860000 572.478699 -0.564720
7.870000 574.492432 -0.563108
7.880000 576.673950 -0.562006
7.890000 578.435974 -0.560055
7.900000 580.617493 -0.558359
7.910000 582.463440 -0.557172
7.920000 584.728882 -0.555730
7.930000 586.574768 -0.553186
7.940000 588.672424 -0.552253
7.950000 590.434387 -0.550811
7.960000 592.364258 -0.548776
7.970000 594.461853 -0.546401
7.980000 596.727295 -0.546147
7.990000 598.741028 -0.544536
8.000000 600.502991 -0.542755
8.010000 602.432861 -0.543263
8.020000 604.446533 -0.540295
8.030000 606.628113 -0.540465
8.040000 608.641846 -0.538514
8.050000 610.487732 -0.536818
8.060000 612.585388 -0.535546
8.070000 614.682983 -0.533171
8.080000 616.361084 -0.531136
8.090000 618.542664 -0.529864
8.100000 620.388550 -0.529610
8.110000 622.570068 -0.528592
8.120000 624.583801 -0.526387
8.130000 626.597595 -0.526013
8.140000 628.527344 -0.524972
8.150000 630.625000 -0.523219
8.160000 632.722656 -0.521918
8.170000 634.484680 -0.519963
8.180000 636.414429 -0.519291
8.190000 638.679871 -0.517773
8.200000 640.525757 -0.516850
8.210000 642.455627 -0.514760
8.220000 644.553223 -0.513535
8.230000 646.399170 -0.512100
8.240000 648.580750 -0.511270
8.250000 650.510559 -0.509365
8.260000 652.356445 -0.508333
8.270000 654.537964 -0.507527
8.280000 656.803406 -0.505253
8.290000 658.733215 -0.504330
8.300000 660.579163 -0.502526
8.310000 662.592834 -0.501083
8.320000 664.606628 -0.499715
8.330000 666.620300 -0.498524
8.340000 668.466248 -0.497433
8.350000 670.563843 -0.496761
8.360000 672.409851 -0.494529
8.370000 674.423523 -0.492885
8.380000 676.521179 -0.492138
8.390000 678.702698 -0.495855
8.400000 680.548584 -0.494278
8.410000 682.562378 -0.493279
8.420000 684.995605 -0.492364
8.430000 686.589783 -0.489847
8.440000 688.435669 -0.489058
8.450000 690.533325 -0.487422
8.460000 692.463135 -0.485920
8.470000 694.476868 -0.484552
8.480000 696.490601 -0.483747
8.490000 698.336487 -0.481993
8.500000 700.518005 -0.480189
8.510000 702.363892 -0.479224
8.520000 704.629333 -0.477932
8.530000 706.643127 -0.477109
8.540000 708.740784 -0.475498
8.550000 710.670532 -0.474760
8.560000 712.768188 -0.473249
8.570000 714.614136 -0.471731
8.580000 716.627869 -0.469322
8.590000 718.725464 -0.467460
8.600000 720.823120 -0.466318
8.610000 722.417297 -0.464917
8.620000 724.682739 -0.463969
8.630000 726.528625 -0.463516
8.640000 728.542419 -0.461443
8.650000 730.472168 -0.460713
8.660000 732.569824 -0.458523
8.670000 734.667419 -0.457449
8.680000 736.597290 -0.455796
8.690000 738.443176 -0.454688
8.700000 740.624756 -0.453447
8.710000 742.470642 -0.451945
8.720000 744.568298 -0.451013
8.730000 746.414185 -0.449645
8.740000 748.595703 -0.448353
8.750000 750.609497 -0.447036
8.760000 752.707031 -0.446490
8.770000 754.804688 -0.444829
8.780000 756.734497 -0.443377
8.790000 758.580444 -0.442093
8.800000 760.510254 -0.440885
8.810000 762.859619 -0.439828
8.820000 764.621582 -0.438158
8.830000 766.551453 -0.437436
8.840000 768.481262 -0.435917
8.850000 770.662781 -0.435145
8.860000 772.676575 -0.433669
8.870000 774.522461 -0.433845
8.880000 776.703979 -0.432024
8.890000 778.382080 -0.430631
8.900000 780.731445 -0.428542
8.910000 782.577332 -0.427124
8.920000 784.423218 -0.425924
8.930000 786.604797 -0.424363
8.940000 788.534607 -0.423171
8.950000 790.380554 -0.421418
8.960000 792.645996 -0.420973
8.970000 794.407959 -0.420042
8.980000 796.505615 -0.418514
8.990000 798.435425 -0.417541
9.000000 800.616943 -0.416870
9.010000 802.798523 -0.415947
9.020000 804.644409 -0.416182
9.030000 806.574219 -0.413958
9.040000 808.587952 -0.415066
9.050000 810.685608 -0.416735
9.060000 812.699280 -0.413194
9.070000 814.964722 -0.410753
9.080000 816.642822 -0.411155
9.090000 818.740479 -0.408739
9.100000 820.670288 -0.408059
9.110000 822.516174 -0.408218
9.120000 824.446045 -0.407153
9.130000 826.627563 -0.403654
9.140000 828.557373 -0.404342
9.150000 830.571106 -0.402345
9.160000 832.584839 -0.401296
9.170000 834.514709 -0.399777
9.180000 836.528381 -0.398879
9.190000 838.458252 -0.398309
9.200000 840.639709 -0.398300
9.210000 842.569580 -0.396538
9.220000 844.583252 -0.397914
9.230000 846.596985 -0.393895
9.240000 848.526794 -0.392938
9.250000 850.624451 -0.392552
9.260000 852.638184 -0.424145
9.270000 854.567993 -0.424052
9.280000 856.581726 -0.420788
9.290000 858.511536 -0.420042
9.300000 860.860901 -0.421015
9.310000 862.622864 -0.420092
9.320000 864.636658 -0.418338
9.330000 866.482544 -0.417247
9.340000 868.412354 -0.416299
9.350000 870.258301 -0.413538
9.360000 872.439819 -0.413211
9.370000 874.537415 -0.412473
9.380000 876.299438 -0.410610
9.390000 878.564880 -0.410249
9.400000 880.578613 -0.407363
9.410000 882.844055 -0.406339
9.420000 884.438293 -0.405542
9.430000 886.535828 -0.404040
9.440000 888.633484 -0.402722
9.450000 890.647278 -0.402638
9.460000 892.744812 -0.401296
9.470000 894.758606 -0.398409
9.480000 896.604492 -0.397897
9.490000 898.450378 -0.396622
9.500000 900.715820 -0.396286
9.510000 902.310059 -0.394558
9.520000 904.659363 -0.392762
9.530000 906.673157 -0.390757
9.540000 908.519043 -0.390027
9.550000 910.784485 -0.387694
9.560000 912.630432 -0.387434
9.570000 914.560242 -0.385839
9.580000 916.406128 -0.384572
9.590000 918.755493 -0.382970
9.600000 920.937012 -0.382651
9.610000 922.531250 -0.381283
9.620000 924.544983 -0.381224
9.630000 926.642578 -0.378833
9.640000 928.656311 -0.376651
9.650000 930.502197 -0.376148
9.660000 932.767639 -0.374620
9.670000 934.529663 -0.374931
9.680000 936.375549 -0.373823
9.690000 938.724976 -0.372539
9.700000 940.654724 -0.370668
9.710000 942.584534 -0.369754
9.720000 944.598267 -0.367992
9.730000 946.528076 -0.366305
9.740000 948.877441 -0.364803
9.750000 950.471619 -0.363611
9.760000 952.485413 -0.362269
9.770000 954.666931 -0.361220
9.780000 956.764526 -0.359802
9.790000 958.610474 -0.358510
9.800000 960.624146 -0.356764

View File

@@ -0,0 +1,199 @@
Time(s) E(mV) I(mA)
0.100000 1.763577 -0.029101
0.200000 2.762724 -0.028610
0.300000 3.770268 -0.028559
0.400000 4.786208 -0.028826
0.500000 5.768563 -0.028349
0.600000 6.792899 -0.028234
0.700000 7.775254 -0.028022
0.800000 8.782798 -0.028118
0.900000 9.765153 -0.028299
1.000000 10.789489 -0.028453
1.100000 11.780240 -0.028453
1.200000 12.821369 -0.028657
1.300000 13.770139 -0.028915
1.400000 14.777682 -0.028546
1.500000 15.776831 -0.029188
1.600000 16.767582 -0.028683
1.700000 17.783520 -0.028601
1.800000 18.782669 -0.028970
1.900000 19.807005 -0.028870
2.000000 20.797756 -0.028791
2.100000 21.805300 -0.028462
2.200000 22.737278 -0.028364
2.300000 23.778406 -0.028617
2.400000 24.752365 -0.028738
2.500000 25.793493 -0.029199
2.600000 26.767452 -0.028708
2.700000 27.783392 -0.028065
2.800000 28.799332 -0.027991
2.900000 29.806875 -0.028424
3.000000 30.780836 -0.028417
3.100000 31.796772 -0.028475
3.200000 32.787525 -0.028331
3.300000 33.778278 -0.028108
3.400000 34.769028 -0.028230
3.500000 35.784969 -0.027984
3.600000 36.784115 -0.027942
3.700000 37.766468 -0.028032
3.800000 38.790806 -0.028286
3.900000 39.789955 -0.028354
4.000000 40.763912 -0.028207
4.100000 41.754665 -0.028099
4.200000 42.770603 -0.028197
4.300000 43.786545 -0.028176
4.400000 44.777294 -0.028192
4.500000 45.784836 -0.028307
4.600000 46.775589 -0.028396
4.700000 47.774738 -0.028483
4.800000 48.773884 -0.028376
4.900000 49.781429 -0.028730
5.000000 50.780575 -0.029071
5.100000 51.788116 -0.029210
5.200000 52.770473 -0.028525
5.300000 53.752831 -0.028479
5.400000 54.768772 -0.029232
5.500000 55.793106 -0.029103
5.600000 56.800652 -0.029043
5.700000 57.766212 -0.029321
5.800000 58.765362 -0.029204
5.900000 59.789696 -0.029369
6.000000 60.797237 -0.029143
6.100000 61.787991 -0.028959
6.200000 62.803932 -0.028818
6.300000 63.769493 -0.029102
6.400000 64.768639 -0.029005
6.500000 65.759392 -0.028507
6.600000 66.783730 -0.029151
6.700000 67.774475 -0.028881
6.800000 68.790421 -0.028720
6.900000 69.789566 -0.028786
7.000000 70.797112 -0.028745
7.100000 71.813049 -0.028627
7.200000 72.795403 -0.028186
7.300000 73.802956 -0.028823
7.400000 74.793701 -0.028599
7.500000 75.776054 -0.028958
7.600000 76.800392 -0.029110
7.700000 77.791145 -0.029458
7.800000 78.781891 -0.029195
7.900000 79.797829 -0.029496
8.000000 80.796974 -0.029733
8.100000 81.796127 -0.029937
8.200000 82.795273 -0.029791
8.300000 83.777634 -0.029210
8.400000 84.801971 -0.029492
8.500000 85.792717 -0.029031
8.600000 86.775070 -0.029057
8.700000 87.816200 -0.029236
8.800000 88.790161 -0.028967
8.900000 89.772514 -0.029038
9.000000 90.796852 -0.028881
9.100000 91.795998 -0.029188
9.200000 92.803543 -0.029207
9.300000 93.760704 -0.029310
9.400000 94.810234 -0.029037
9.500000 95.784195 -0.029098
9.600000 96.800133 -0.029167
9.700000 97.807678 -0.029221
9.800000 98.790031 -0.029132
9.900000 99.797577 -0.028941
10.000000 100.796722 -0.029081
10.100000 101.804268 -0.029024
10.200000 102.803413 -0.028922
10.300000 103.802567 -0.028957
10.400000 104.801712 -0.028903
10.500000 105.800858 -0.029129
10.600000 106.783211 -0.029139
10.700000 107.807549 -0.029148
10.800000 108.815094 -0.029216
10.900000 109.805840 -0.028921
11.000000 110.813385 -0.028742
11.100000 111.804138 -0.028889
11.200000 112.769699 -0.028884
11.300000 113.802429 -0.028933
11.400000 114.809982 -0.028740
11.500000 115.809128 -0.028485
11.600000 116.816666 -0.029093
11.700000 117.807419 -0.028899
11.800000 118.814964 -0.029117
11.900000 119.797318 -0.029162
12.000000 120.788063 -0.029299
12.100000 121.787216 -0.029617
12.200000 122.794762 -0.029564
12.300000 123.785507 -0.029263
12.400000 124.809845 -0.028942
12.500000 125.800598 -0.029249
12.600000 126.799744 -0.029054
12.700000 127.815689 -0.029312
12.800000 128.823242 -0.029264
12.900000 129.813980 -0.029597
13.000000 130.813126 -0.029762
13.100000 131.803879 -0.029987
13.200000 132.803024 -0.029859
13.300000 133.793777 -0.029861
13.400000 134.792923 -0.029838
13.500000 135.808868 -0.029612
13.600000 136.791214 -0.029442
13.700000 137.790359 -0.029729
13.800000 138.806320 -0.029585
13.900000 139.805466 -0.029730
14.000000 140.829788 -0.029783
14.100000 141.812134 -0.029521
14.200000 142.802902 -0.029773
14.300000 143.802048 -0.029522
14.400000 144.801193 -0.029461
14.500000 145.775146 -0.029776
14.600000 146.816284 -0.029446
14.700000 147.807022 -0.029666
14.800000 148.822968 -0.029733
14.900000 149.805328 -0.029659
15.000000 150.796066 -0.029416
15.100000 151.812012 -0.029498
15.200000 152.819565 -0.029405
15.300000 153.801910 -0.029533
15.400000 154.809464 -0.029788
15.500000 155.817001 -0.029578
15.600000 156.790955 -0.029868
15.700000 157.815308 -0.029453
15.800000 158.814453 -0.029587
15.900000 159.821991 -0.029697
16.000000 160.795944 -0.029583
16.100000 161.795090 -0.029541
16.200001 162.794235 -0.029603
16.299999 163.826965 -0.029526
16.400000 164.800934 -0.029500
16.500000 165.833664 -0.029578
16.600000 166.824417 -0.029656
16.700001 167.798370 -0.029669
16.799999 168.814316 -0.029662
16.900000 169.805069 -0.029525
17.000000 170.812607 -0.029632
17.100000 171.803375 -0.029763
17.200001 172.827698 -0.029450
17.299999 173.818451 -0.029243
17.400000 174.809189 -0.029499
17.500000 175.799957 -0.029474
17.600000 176.799103 -0.029973
17.700001 177.823441 -0.029679
17.799999 178.805786 -0.029621
17.900000 179.813339 -0.029742
18.000000 180.829285 -0.029791
18.100000 181.786438 -0.029615
18.200001 182.810776 -0.029776
18.299999 183.826721 -0.029699
18.400000 184.809067 -0.029858
18.500000 185.799820 -0.029694
18.600000 186.782181 -0.029660
18.700001 187.814911 -0.029505
18.799999 188.822464 -0.029578
18.900000 189.813202 -0.029569
19.000000 190.812363 -0.029655
19.100000 191.811508 -0.029725
19.200001 192.810654 -0.029956
19.299999 193.809799 -0.029307
19.400000 194.808945 -0.029470
19.500000 195.799698 -0.029415
19.600000 196.807236 -0.029424
19.700001 197.856766 -0.029606
19.799999 198.813934 -0.029029

View File

@@ -0,0 +1,89 @@
Time(s) E(mV) I(mA)
0.100000 1100.313599 0.099854
0.200000 1100.313599 0.099846
0.300000 1100.313599 0.099829
0.400000 1100.313599 0.099829
0.500000 1100.313599 0.099821
0.600000 1100.313599 0.099829
0.700000 1100.313599 0.099846
0.800000 1100.313599 0.099812
0.900000 1100.313599 0.099812
1.000000 1100.313599 0.099829
1.100000 1100.313599 0.099812
1.200000 1100.313599 0.099804
1.300000 1100.313599 0.099796
1.400000 1100.313599 0.099804
1.500000 1100.313599 0.099804
1.600000 1100.313599 0.099787
1.700000 1100.313599 0.099796
1.800000 1100.313599 0.099796
1.900000 1100.313599 0.099787
2.000000 1100.313599 0.099821
2.100000 1100.313599 0.099821
2.200000 1100.313599 0.099812
2.300000 1100.313599 0.099829
2.400000 1100.313599 0.099829
2.500000 1100.313599 0.099838
2.600000 1100.313599 0.099854
2.700000 1100.313599 0.099863
2.800000 1100.313599 0.099854
2.900000 1100.313599 0.099846
3.000000 1100.313599 0.099863
3.100000 1100.313599 0.099871
3.200000 1100.313599 0.099879
3.300000 1100.313599 0.099888
3.400000 1100.313599 0.099896
3.500000 1100.313599 0.099913
3.600000 1100.313599 0.099930
3.700000 1100.313599 0.099938
3.800000 1100.313599 0.099930
3.900000 1100.313599 0.099947
4.000000 1100.313599 0.099963
4.100000 1100.313599 0.099947
4.200000 1100.313599 0.099980
4.300000 1100.313599 0.099997
4.400000 1100.313599 0.099972
4.500000 1100.313599 0.099947
4.600000 1100.313599 0.099947
4.700000 1100.313599 0.099955
4.800000 1100.313599 0.099955
4.900000 1100.313599 0.099989
5.000000 1100.313599 0.099997
5.100000 1100.313599 0.099980
5.200000 1100.313599 0.099989
5.300000 1100.313599 0.099963
5.400000 1100.313599 0.099980
5.500000 1100.313599 0.099989
5.600000 1100.313599 0.100005
5.700000 1100.313599 0.099963
5.800000 1100.313599 0.099980
5.900000 1100.313599 0.099980
6.000000 1100.313599 0.099980
6.100000 1100.313599 0.099972
6.200000 1100.313599 0.099997
6.300000 1100.313599 0.099972
6.400000 1100.313599 0.099955
6.500000 1100.313599 0.099972
6.600000 1100.313599 0.099963
6.700000 1100.313599 0.099980
6.800000 1100.313599 0.099963
6.900000 1100.313599 0.099955
7.000000 1100.313599 0.099989
7.100000 1100.313599 0.099989
7.200000 1100.313599 0.099980
7.300000 1100.313599 0.099980
7.400000 1100.313599 0.099980
7.500000 1100.313599 0.099963
7.600000 1100.313599 0.099980
7.700000 1100.313599 0.099955
7.800000 1100.313599 0.099980
7.900000 1100.313599 0.099963
8.000000 1100.313599 0.099989
8.100000 1100.313599 0.099980
8.200000 1100.313599 0.099989
8.300000 1100.313599 0.099989
8.400000 1100.313599 0.099972
8.500000 1100.313599 0.100005
8.600000 1100.313599 0.099980
8.700000 1100.313599 0.100005
8.800000 1100.313599 0.099997

View File

@@ -0,0 +1,49 @@
Time(s) Zre(Ohm) Zim(Ohm) Z(Ohm) Freq(Hz) Phase(deg) EDC(mV)
0.128000 6755.462891 3996.161133 7848.922363 10000.000000 -30.606230 0.000000
0.272000 6824.638672 3994.455811 7907.677734 8888.900391 -30.340406 0.000000
0.436571 7059.030762 4099.418457 8163.035156 7777.799805 -30.145187 0.000000
0.628570 7516.110840 4371.320312 8694.846680 6666.700195 -30.181999 0.000000
Time(s) Zre(Ohm) Zim(Ohm) Z(Ohm) Freq(Hz) Phase(deg) EDC(mV)
0.128000 4004.078857 1725.499268 4360.045410 10000.000000 -23.312920 0.000000
0.272000 3751.894043 1407.421021 4007.186523 8888.900391 -20.562214 0.000000
0.436571 3795.918457 1347.885742 4028.125244 7777.799805 -19.549349 0.000000
0.628570 3988.254883 1406.353516 4228.948730 6666.700195 -19.423862 0.000000
0.858968 4340.244629 1560.648071 4612.303711 5555.600098 -19.777370 0.000000
1.146964 4953.287598 1795.551514 5268.687012 4444.500000 -19.925425 0.000000
1.530957 5583.770020 2229.389648 6012.375977 3333.399902 -21.764971 0.000000
2.106936 6545.107422 2367.948486 6960.288086 2222.300049 -19.889572 0.000000
3.258844 7567.829590 1800.241089 7779.004395 1111.199951 -13.380868 0.000000
23.258844 7841.500488 363.667908 7849.928711 0.100000 -2.655323 0.000000
Time(s) Zre(Ohm) Zim(Ohm) Z(Ohm) Freq(Hz) Phase(deg) EDC(mV)
0.128000 4585.909668 1983.974854 4996.671387 10000.000000 -23.394470 0.000000
0.272000 4468.743652 1882.592163 4849.105469 8888.900391 -22.844717 0.000000
0.436571 4585.427246 1862.162964 4949.120605 7777.799805 -22.102295 0.000000
0.628570 4762.757812 1835.767822 5104.302734 6666.700195 -21.078768 0.000000
0.858968 5040.085449 1868.267578 5375.210449 5555.600098 -20.338821 0.000000
1.146964 5369.222168 2009.491211 5732.939941 4444.500000 -20.518923 0.000000
1.530957 5790.665039 2128.829590 6169.580078 3333.399902 -20.185007 0.000000
2.106936 6104.018066 1879.055054 6386.695801 2222.300049 -17.110409 0.000000
3.258844 6228.028809 1268.160278 6355.830078 1111.199951 -11.509306 0.000000
23.258844 6003.355957 413.043579 6017.548340 0.100000 -3.935868 0.000000
Time(s) Zre(Ohm) Zim(Ohm) Z(Ohm) Freq(Hz) Phase(deg) EDC(mV)
0.128000 3572.804688 1110.373413 3741.371826 10000.000000 -17.264450 0.000000
0.272000 3733.689209 1029.676392 3873.069580 8888.900391 -15.417786 0.000000
0.436571 3814.144043 1035.226807 3952.137207 7777.799805 -15.185266 0.000000
0.628570 3763.235596 993.421204 3892.149414 6666.700195 -14.787639 0.000000
0.858968 3746.752197 922.539612 3858.656738 5555.600098 -13.832431 0.000000
1.146964 3835.638184 876.370972 3934.481689 4444.500000 -12.870085 0.000000
1.530957 3879.458496 808.279602 3962.765869 3333.399902 -11.769126 0.000000
2.106936 4037.450439 756.480225 4107.708496 2222.300049 -10.612228 0.000000
3.258844 4497.190430 741.943848 4557.982422 1111.199951 -9.368237 0.000000
23.258844 5525.440430 743.580078 5575.249023 0.100000 -7.664470 0.000000
Time(s) Zre(Ohm) Zim(Ohm) Z(Ohm) Freq(Hz) Phase(deg) EDC(mV)
0.128000 4508.749023 1480.736694 4745.671387 10000.000000 -18.180910 0.000000
0.272000 4432.497070 1333.723267 4628.806152 8888.900391 -16.746363 0.000000
0.436571 4782.034668 1541.624512 5024.386719 7777.799805 -17.868198 0.000000
0.628570 5205.424805 1835.522095 5519.563965 6666.700195 -19.423525 0.000000
0.858968 5297.061035 1830.112549 5604.298828 5555.600098 -19.059818 0.000000
1.146964 5442.899414 1763.836304 5721.562012 4444.500000 -17.955534 0.000000
1.530957 5554.852051 1871.875732 5861.766113 3333.399902 -18.622803 0.000000
2.106936 5667.162598 1750.656982 5931.402344 2222.300049 -17.166569 0.000000
3.258844 5834.244629 1325.616577 5982.948242 1111.199951 -12.801015 0.000000
23.258844 5939.145508 584.428345 5967.831055 0.100000 -5.619970 0.000000

View File

@@ -0,0 +1,55 @@
Time(s) Zre(Ω) Zim(Ω) Z(Ω) Freq(Hz) Phase(°) EDC(V)
0.128000 8836.014648 4088.676270 9736.140625 10000.000000 -24.831327 0.000000
0.289142 8947.045898 3906.468262 9762.690430 7943.282227 -23.587093 0.000000
0.492009 9445.424805 4166.807129 10323.678711 6309.573242 -23.804461 0.000000
0.747402 10144.289062 4494.853516 11095.508789 5011.872070 -23.897749 0.000000
1.068924 10604.609375 4514.041992 11525.376953 3981.071533 -23.057899 0.000000
1.473696 11142.434570 4558.653809 12038.902344 3162.277588 -22.250721 0.000000
1.983273 11883.416016 4958.137695 12876.284180 2511.886230 -22.647444 0.000000
2.624793 12497.970703 5309.595215 13579.067383 1995.262329 -23.017561 0.000000
3.432418 13203.150391 5649.524414 14361.069336 1584.893188 -23.165701 0.000000
4.449158 14128.726562 6126.426270 15399.805664 1258.925293 -23.442274 0.000000
4.481158 14911.369141 6479.161133 16258.181641 1000.000000 -23.485498 0.000000
4.521444 15656.686523 6829.202637 17081.271484 794.328247 -23.566080 0.000000
4.572160 16835.632812 7643.918945 18489.673828 630.957336 -24.419577 0.000000
4.636009 18222.216797 8657.716797 20174.371094 501.187225 -25.413269 0.000000
4.716389 22157.533203 11829.420898 25117.552734 398.107178 -28.096781 0.000000
4.817582 23357.978516 11746.929688 26145.468750 316.227753 -26.698219 0.000000
4.944976 24984.910156 12806.191406 28075.687500 251.188629 -27.137728 0.000000
4.716389 20656.267578 10043.393555 22968.482422 398.107178 -25.929729 0.000000
4.817582 23355.941406 11758.861328 26149.011719 316.227753 -26.723581 0.000000
4.944976 24946.281250 12709.506836 27997.294922 251.188629 -26.997705 0.000000
5.105356 25699.732422 12844.353516 28730.708984 199.526230 -26.555218 0.000000
5.307262 28007.763672 13781.557617 31214.837891 158.489319 -26.200048 0.000000
5.561448 32278.408203 15294.345703 35718.519531 125.892532 -25.352806 0.000000
5.601448 36631.953125 16377.120117 40126.175781 100.000000 -24.088081 0.000000
5.651804 36212.464844 14175.981445 38888.316406 79.432823 -21.378698 0.000000
5.715200 31005.900391 10025.936523 32586.580078 63.095734 -17.918913 0.000000
5.795011 27789.210938 7751.479004 28850.054688 50.118721 -15.585830 0.000000
5.895486 35634.070312 9420.209961 36858.207031 39.810719 -14.807939 0.000000
6.021977 42739.617188 10889.406250 44105.035156 31.622778 -14.293976 0.000000
6.181220 41334.429688 12303.883789 43126.796875 25.118862 -16.576517 0.000000
6.381695 44635.375000 13761.085938 46708.503906 19.952623 -17.134529 0.000000
6.634078 47430.500000 9581.280273 48388.566406 15.848931 -11.420444 0.000000
6.951809 47006.734375 6501.482910 47454.214844 12.589253 -7.874598 0.000000
7.351809 47260.820312 5934.597168 47631.968750 10.000000 -7.157238 0.000000
7.855379 51975.855469 140.047073 51976.042969 7.943282 -0.154381 0.000000
8.489336 58372.769531 2538.466309 58427.937500 6.309573 -2.490062 0.000000
9.287441 59285.113281 8795.745117 59934.046875 5.011872 -8.439040 0.000000
10.292196 55917.351562 9934.631836 56793.019531 3.981072 -10.074409 0.000000
11.557107 51669.527344 1365.285522 51687.562500 3.162278 -1.513598 0.000000
13.149536 nan nan nan 2.511886 2.248806 0.000000
15.154285 nan nan nan 1.995262 4.537589 0.000000
17.678116 nan nan nan 1.584893 1.901186 0.000000
20.855431 nan nan nan 1.258925 -14.520571 0.000000
22.855431 nan nan nan 1.000000 -21.347967 0.000000
25.373281 nan nan nan 0.794328 -16.286789 0.000000
28.543070 43693.843750 2706.736816 43777.601562 0.630957 -3.544817 0.000000
32.533596 34982.421875 -4359.896973 35253.062500 0.501187 7.104203 0.000000
37.557373 30128.955078 -116.846642 30129.181641 0.398107 0.222204 0.000000
43.881924 32771.234375 6115.649902 33336.992188 0.316228 -10.570740 0.000000
51.844055 18206.365234 -7035.584961 19518.482422 0.251189 21.128300 0.000000
61.867813 -1157.350342 -5457.016602 5578.395020 0.199526 101.974136 0.000000
74.486984 -7572.944336 -5757.060547 9512.792969 0.158489 142.757385 0.000000
90.373489 -6719.222656 -12092.010742 13833.461914 0.125893 119.059814 0.000000
110.373489 2759.366699 -3812.787109 4706.532715 0.100000 54.106220 0.000000

View File

@@ -0,0 +1,5 @@
Time(s) Zre(Ohm) Zim(Ohm) Z(Ohm) Freq(Hz) Phase(deg) EDC(mV)
0.128000 5301.714355 1606.345947 5539.722168 10000.000000 -16.856081 0.000000
0.272000 5303.290527 1594.772095 5537.886719 8888.900391 -16.736752 0.000000
0.436571 5347.800781 1595.693970 5580.789551 7777.799805 -16.614220 0.000000
0.628570 5478.396973 1635.483032 5717.310547 6666.700195 -16.622107 0.000000

View File

@@ -0,0 +1,70 @@
initialize: True
get_machine_ids: {'success': True, 'machine_ids': [1, 3, 2]}
version: reflect_linear_scan_signature
linear_scan_related_methods:
Add_ConstantPotential:['System.String', 'System.Single', 'System.Int32', 'System.Boolean', 'System.Boolean', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['parentTag', 'Voltage', 'VoltageVSType', 'IsAccrueQ', 'isVoltageTrig', 'VoltageOrCurrentTrigDirection', 'VoltageOrCurrentTrigValue', 'capacityTrigDirection', 'capacityTrigValue', 'timePerPoint', 'continueTime', 'IsUseResolution', 'Resolution', 'isUseDeltaI', 'deltaI', 'isUseDeltaQ', 'deltaQ', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'machineId']
Start_Circle_Voltammetry_Multi:['System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['IsUseInitialPotential', 'InitialPotential', 'InitialPotentialVSType', 'TopPotential1', 'TopPotential1VSType', 'TopPotential2', 'TopPotential2VSType', 'IsUseFinallyPotential', 'FinallyPotential', 'FinallyPotentialVSType', 'ScanRate', 'cycleCount', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
Start_Staircase_Cyclic_Voltammetry_MultipleCycles:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'TopPotential1', 'TopPotential1VSType', 'TopPotential2', 'TopPotential2VSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'cycleCount', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Linear_Scan_Voltammetry:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'ScanRate', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
Start_Linear_Scan_Voltammetry_New:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'ScanRate', 'voltageInterval', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
Start_Circle_Voltammetry_Single:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['InitialPotential', 'InitialPotentialVSType', 'TopPotential', 'TopPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'ScanRate', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
Start_Staircase_Linear_Scan:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Potentiodynamic:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Staircase_Cyclic_Voltammetry_Single:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'TopPotential', 'TopPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_ChronoamperonetryParam:['System.Single', 'System.Single', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['timePerPoint', 'continueTime', 'InitialPotential', 'InitialPotentialVSType', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_ChronopotentiometryParam:['System.Single', 'System.Single', 'System.Single', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['timePerPoint', 'continueTime', 'current', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_ChronocoulometryParam:['System.Single', 'System.Single', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['timePerPoint', 'continueTime', 'potential', 'potentialotentialVSType', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_ConstantPotential:['System.Single', 'System.Int32', 'System.Boolean', 'System.Boolean', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['Voltage', 'VoltageVSType', 'IsAccrueQ', 'isVoltageTrig', 'VoltageOrCurrentTrigDirection', 'VoltageOrCurrentTrigValue', 'capacityTrigDirection', 'capacityTrigValue', 'timePerPoint', 'continueTime', 'IsUseResolution', 'Resolution', 'isUseDeltaI', 'deltaI', 'isUseDeltaQ', 'deltaQ', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'machineId']
Start_Potentiostatic_Staircase:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['OutputValue1', 'vsType1', 'OutputValue2', 'vsType2', 'OutputValue3', 'vsType3', 'timePerPoint', 'stepCount', 'measureDelay', 'plusTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Fast_Potential_Pulses:['System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['plusCount', 'OutputValue1', 'ContinueTime1', 'vsType1', 'OutputValue2', 'ContinueTime2', 'vsType2', 'OutputValue3', 'ContinueTime3', 'vsType3', 'OutputValue4', 'ContinueTime4', 'vsType4', 'OutputValue5', 'ContinueTime5', 'vsType5', 'timePerPoint', 'cycleCount', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
StartConstantPotential_LineScan:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StaticTime', 'CycleCount', 'TimePerPoint', 'ContinueTime', 'StepHeight', 'SweptRate', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Circle_Voltammetry_Multi_New:['System.Single', 'System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['voltageInterval', 'IsUseInitialPotential', 'InitialPotential', 'InitialPotentialVSType', 'TopPotential1', 'TopPotential1VSType', 'TopPotential2', 'TopPotential2VSType', 'IsUseFinallyPotential', 'FinallyPotential', 'FinallyPotentialVSType', 'ScanRate', 'cycleCount', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
Start_Staircase_Cyclic_Voltammetry_MultipleCycles_New:['System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['IsUseInitialPotential', 'InitialPotential', 'InitialPotentialVSType', 'TopPotential1', 'TopPotential1VSType', 'TopPotential2', 'TopPotential2VSType', 'IsUseFinallyPotential', 'FinallyPotential', 'FinallyPotentialVSType', 'stepHeight', 'stepTime', 'cycleCount', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
all_start_methods:
Start_Circle_Voltammetry_Multi:['System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['IsUseInitialPotential', 'InitialPotential', 'InitialPotentialVSType', 'TopPotential1', 'TopPotential1VSType', 'TopPotential2', 'TopPotential2VSType', 'IsUseFinallyPotential', 'FinallyPotential', 'FinallyPotentialVSType', 'ScanRate', 'cycleCount', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
Start_Staircase_Cyclic_Voltammetry_MultipleCycles:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'TopPotential1', 'TopPotential1VSType', 'TopPotential2', 'TopPotential2VSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'cycleCount', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_SplitLPR:['System.Single', 'System.Single', 'ECCore.VSType', 'System.Single', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['aNodeVoltage', 'cathodeVoltage', 'aNodeVSTye', 'stepHeight', 'stepTime', 'continueTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_OpenCircuit:['System.Single', 'System.Single', 'System.Int32'] | names=['timePerPoint', 'continueTime', 'machineId']
Start_Galvanic_Corrosion:['System.Single', 'System.Single', 'System.Int32'] | names=['timePerPoint', 'continueTime', 'machineId']
Start_Electrochemical_Noise_En:['System.Single', 'System.Single', 'System.Int32', 'System.Int32'] | names=['timePerPoint', 'timePerSegment', 'segmentCount', 'machineId']
Start_Linear_Scan_Voltammetry:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'ScanRate', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
Start_Linear_Scan_Voltammetry_New:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'ScanRate', 'voltageInterval', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
Start_Circle_Voltammetry_Single:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['InitialPotential', 'InitialPotentialVSType', 'TopPotential', 'TopPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'ScanRate', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
Start_Staircase_Linear_Scan:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Potentiodynamic:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Galvanodynamic:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Staircase_Cyclic_Voltammetry_Single:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'TopPotential', 'TopPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Cyclic_Polarization:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.String', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'TopPotential', 'TopPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'voltageTrigValue', 'currentTrigValue', 'machineId']
Start_ChronoamperonetryParam:['System.Single', 'System.Single', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['timePerPoint', 'continueTime', 'InitialPotential', 'InitialPotentialVSType', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_ChronopotentiometryParam:['System.Single', 'System.Single', 'System.Single', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['timePerPoint', 'continueTime', 'current', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_ChronocoulometryParam:['System.Single', 'System.Single', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['timePerPoint', 'continueTime', 'potential', 'potentialotentialVSType', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_SquareWare:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['initialPotential', 'initialPotentialVSType', 'finallyPotential', 'finallyPotentialVSType', 'stepHeight', 'pluseHeight', 'startFreq', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_DifferentialPulse:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['initialPotential', 'initialPotentialVSType', 'finallyPotential', 'finallyPotentialVSType', 'stepHeight', 'pluseHeight', 'pluseWidth', 'stepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_NormalPulse:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['initialPotential', 'initialPotentialVSType', 'finallyPotential', 'finallyPotentialVSType', 'stepHeight', 'pluseWidth', 'stepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_EIS:['System.Boolean', 'System.Double', 'System.Double', 'System.Single', 'System.Int32', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single', 'System.Int32'] | names=['isVolEIS', 'StartFreq', 'EndFreq', 'Amplitude', 'IntervalType', 'PointCount', 'Voltage', 'VoltageVSType', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime', 'dataQuality']
Start_EnergyOpenCircuit:['System.Boolean', 'System.Single', 'System.Boolean', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['isUseExcursionRate', 'excursionRate', 'isVoltageTrig', 'VoltageOrCurrentTrigDirection', 'VoltageOrCurrentTrigValue', 'capacityTrigDirection', 'capacityTrigValue', 'timePerPoint', 'continueTime', 'IsUseResolution', 'Resolution', 'isUseDeltaI', 'deltaI', 'isUseDeltaQ', 'deltaQ', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'machineId']
Start_ConstantPotential:['System.Single', 'System.Int32', 'System.Boolean', 'System.Boolean', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['Voltage', 'VoltageVSType', 'IsAccrueQ', 'isVoltageTrig', 'VoltageOrCurrentTrigDirection', 'VoltageOrCurrentTrigValue', 'capacityTrigDirection', 'capacityTrigValue', 'timePerPoint', 'continueTime', 'IsUseResolution', 'Resolution', 'isUseDeltaI', 'deltaI', 'isUseDeltaQ', 'deltaQ', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'machineId']
Start_ConstantContent:['System.Single', 'System.Boolean', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['current', 'isVoltageTrig', 'VoltageOrCurrentTrigDirection', 'VoltageOrCurrentTrigValue', 'capacityTrigDirection', 'capacityTrigValue', 'timePerPoint', 'continueTime', 'IsUseResolution', 'Resolution', 'isUseDeltaI', 'deltaI', 'isUseDeltaQ', 'deltaQ', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'machineId']
Start_CurrentChargeDisCharge:['System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Int32', 'ECCore.SwithPriority', 'ECCore.TimeType', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['CurrentValue1', 'TimeLimitValue1', 'Vol1LimitValue1', 'CurrentValue2', 'TimeLimitValue2', 'Vol1LimitValue2', 'timePerPoint', 'CycleCount', 'CurrentSwithPriority', 'timeType', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'machineId']
Start_ConstantPower:['System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['power', 'isCharge', 'currentUpLimit', 'isVoltageTrig', 'VoltageOrCurrentTrigDirection', 'VoltageOrCurrentTrigValue', 'capacityTrigDirection', 'capacityTrigValue', 'timePerPoint', 'continueTime', 'IsUseResolution', 'Resolution', 'isUseDeltaI', 'deltaI', 'isUseDeltaQ', 'deltaQ', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'machineId']
Start_ConstantResistance:['System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Boolean', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['resistance', 'isCharge', 'currentUpLimit', 'isVoltageTrig', 'VoltageOrCurrentTrigDirection', 'VoltageOrCurrentTrigValue', 'capacityTrigDirection', 'capacityTrigValue', 'timePerPoint', 'continueTime', 'IsUseResolution', 'Resolution', 'isUseDeltaI', 'deltaI', 'isUseDeltaQ', 'deltaQ', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'machineId']
Start_Tafel:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_LPR:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['InitialPotential', 'InitialPotentialVSType', 'FinallyPotential', 'FinallyPotentialVSType', 'StepHeight', 'StepTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Zra:['System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['timePerPoint', 'continueTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Potentiostatic_Staircase:['System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['OutputValue1', 'vsType1', 'OutputValue2', 'vsType2', 'OutputValue3', 'vsType3', 'timePerPoint', 'stepCount', 'measureDelay', 'plusTime', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Fast_Potential_Pulses:['System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['plusCount', 'OutputValue1', 'ContinueTime1', 'vsType1', 'OutputValue2', 'ContinueTime2', 'vsType2', 'OutputValue3', 'ContinueTime3', 'vsType3', 'OutputValue4', 'ContinueTime4', 'vsType4', 'OutputValue5', 'ContinueTime5', 'vsType5', 'timePerPoint', 'cycleCount', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Fast_Galvanic_Pulses:['System.Int32', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32'] | names=['plusCount', 'OutputValue1', 'ContinueTime1', 'OutputValue2', 'ContinueTime2', 'OutputValue3', 'ContinueTime3', 'OutputValue4', 'ContinueTime4', 'OutputValue5', 'ContinueTime5', 'timePerPoint', 'cycleCount', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId']
Start_Circle_Voltammetry_Multi_New:['System.Single', 'System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['voltageInterval', 'IsUseInitialPotential', 'InitialPotential', 'InitialPotentialVSType', 'TopPotential1', 'TopPotential1VSType', 'TopPotential2', 'TopPotential2VSType', 'IsUseFinallyPotential', 'FinallyPotential', 'FinallyPotentialVSType', 'ScanRate', 'cycleCount', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
Start_Staircase_Cyclic_Voltammetry_MultipleCycles_New:['System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Single', 'System.Int32', 'System.Boolean', 'System.Single', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.Single'] | names=['IsUseInitialPotential', 'InitialPotential', 'InitialPotentialVSType', 'TopPotential1', 'TopPotential1VSType', 'TopPotential2', 'TopPotential2VSType', 'IsUseFinallyPotential', 'FinallyPotential', 'FinallyPotentialVSType', 'stepHeight', 'stepTime', 'cycleCount', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'machineId', 'delayTime']
Start_OpenCircuit_All:['System.Single', 'System.Single'] | names=['timePerPoint', 'continueTime']
Start_EIS_All:['System.Boolean', 'System.Double', 'System.Double', 'System.Single', 'System.Int32', 'System.Int32', 'System.Single', 'System.Single', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Int32', 'System.String', 'System.Single', 'System.Int32'] | names=['isVolEIS', 'StartFreq', 'EndFreq', 'Amplitude', 'IntervalType', 'PointCount', 'Voltage', 'VoltageVSType', 'isVoltageRandAuto', 'VoltageRand', 'isCurrentRandAuto', 'currentRand', 'isVoltageFilterAuto', 'VoltageFilter', 'isCurrentFilterAuto', 'currentFilter', 'delayTime', 'dataQuality']
version: lsv_v1
version: lsv_v1
start_cv_params: {'is_use_initial_potential': True, 'initial_potential': -1.0, 'initial_potential_vs_type': 0, 'top_potential1': 1.0, 'top_potential1_vs_type': 0, 'top_potential2': -2.0, 'top_potential2_vs_type': 0, 'is_use_finally_potential': True, 'finally_potential': -1.0, 'finally_potential_vs_type': 0, 'scan_rate': 0.2, 'cycle_count': 2, 'is_voltage_rand_auto': 1, 'voltage_rand': '1000', 'is_current_rand_auto': 1, 'current_rand': '1000', 'is_voltage_filter_auto': 1, 'voltage_filter': '10Hz', 'is_current_filter_auto': 1, 'current_filter': '10Hz', 'machine_id': 2}
start_cv: {'success': True, 'return_info': 'ok', 'machine_id': 2}
start_realtime_output_cv: {'success': True, 'running': True, 'machine_id': 2, 'file': 'D:\\Uni-Lab-OS\\Uni-Lab-OS\\unilabos\\devices\\donghua_ec\\x64release\\DHInterface\\SourceData\\2025-12-12\\循环伏安\\2号机(循环伏安(多循环)).txt'}
result_types: [0]
data_details: [{'cand': 0, 'len': 0, 'd3': (0, 0, 0), 'd4': (0, 0, 0, 0), 'd7': (0, 0, 0, 0, 0, 0, 0)}]
stop_realtime_output_cv: {'success': True, 'machine_id': 2, 'file': 'D:\\Uni-Lab-OS\\Uni-Lab-OS\\unilabos\\devices\\donghua_ec\\x64release\\DHInterface\\SourceData\\2025-12-12\\循环伏安\\2号机(循环伏安(多循环)).txt'}
export_cyclic_voltammetry: {'success': True, 'files': ['D:\\Uni-Lab-OS\\Uni-Lab-OS\\unilabos\\devices\\donghua_ec\\exports\\循环伏安\\2号机(循环伏安(多循环)).txt'], 'dest': 'D:\\Uni-Lab-OS\\Uni-Lab-OS\\unilabos\\devices\\donghua_ec\\exports\\循环伏安'}
stop_experiment_cv: {'success': True, 'machine_id': 2}

View File

@@ -0,0 +1,176 @@
import os
import sys
import asyncio
import logging
from pathlib import Path
# Ensure repository is on PYTHONPATH
repo_root = Path(__file__).resolve().parents[3]
sys.path.append(str(repo_root))
from unilabos.devices.donghua_ec.donghua_ec import DonghuaEC
logging.basicConfig(level=logging.INFO)
async def main():
iface_dir = Path(__file__).resolve().parent / "x64release" / "DHInterface"
drv = DonghuaEC(config={"interface_dir": str(iface_dir)})
ok = await drv.initialize()
res = drv.get_machine_ids()
import time as _t
out = Path(__file__).resolve().parent / "init_output.txt"
try:
if out.exists():
out.unlink()
except Exception:
pass
with open(out, "w", encoding="utf-8") as f:
f.write(f"initialize: {ok}\n")
f.write(f"get_machine_ids: {res}\n")
f.write("version: reflect_linear_scan_signature\n")
try:
import System
elec = drv._elec
t = elec.GetType()
sig_lines = []
for m in t.GetMethods():
name = m.Name
if ("Linear" in name) or ("Scan" in name) or ("Volt" in name) or ("Chrono" in name) or ("Potent" in name):
ps_types = [str(p.ParameterType.FullName) for p in m.GetParameters()]
ps_names = [str(p.Name) for p in m.GetParameters()]
sig_lines.append(name + ":" + str(ps_types) + " | names=" + str(ps_names))
f.write("linear_scan_related_methods:\n")
for ln in sig_lines:
f.write(ln + "\n")
# dump all Start_* signatures for debugging
all_start = []
for m in t.GetMethods():
name = m.Name
if name.startswith("Start_"):
ps_types = [str(p.ParameterType.FullName) for p in m.GetParameters()]
ps_names = [str(p.Name) for p in m.GetParameters()]
all_start.append(name + ":" + str(ps_types) + " | names=" + str(ps_names))
f.write("all_start_methods:\n")
for ln in all_start:
f.write(ln + "\n")
except Exception as e:
f.write(f"reflect_error: {e}\n")
f.write("version: lsv_v1\n")
with open(out, "a", encoding="utf-8") as f:
f.write("version: lsv_v1\n")
# Cyclic Voltammetry (Multi)
cv_params = dict(
is_use_initial_potential=True,
initial_potential=-1.0,
initial_potential_vs_type=0,
top_potential1=1.0,
top_potential1_vs_type=0,
top_potential2=-2.0,
top_potential2_vs_type=0,
is_use_finally_potential=True,
finally_potential=-1.0,
finally_potential_vs_type=0,
scan_rate=0.2,
cycle_count=2,
is_voltage_rand_auto=1,
voltage_rand="1000",
is_current_rand_auto=1,
current_rand="1000",
is_voltage_filter_auto=1,
voltage_filter="10Hz",
is_current_filter_auto=1,
current_filter="10Hz",
machine_id=2,
)
with open(out, "a", encoding="utf-8") as f:
f.write(f"start_cv_params: {cv_params}\n")
try:
start_cv = drv.start_cyclic_voltammetry_multi(**cv_params)
except Exception as e:
start_cv = {"success": False, "return_info": str(e), "machine_id": 2}
try:
if not start_cv.get("success"):
drv.data["last_result_type"] = "cyclic_voltammetry"
except Exception:
pass
with open(out, "a", encoding="utf-8") as f:
f.write(f"start_cv: {start_cv}\n")
try:
rt4 = drv.start_realtime_output(machine_id=2, interval=0.5)
except Exception as e:
rt4 = {"success": False, "error": str(e)}
with open(out, "a", encoding="utf-8") as f:
f.write(f"start_realtime_output_cv: {rt4}\n")
try:
import System
elec = drv._elec
rts = []
try:
rts = list(elec.GetResultDataType(2))
except Exception:
rts = []
with open(out, "a", encoding="utf-8") as f:
f.write(f"result_types: {rts}\n")
print("result_types:", rts)
details = []
for cand in rts:
try:
s = elec.GetData(cand, 2)
except Exception:
s = None
d = {"cand": cand, "len": 0, "d3": (), "d4": (), "d7": ()}
try:
it = list(s)
d["len"] = len(it)
except Exception:
pass
try:
a0 = list(elec.SplitData(s, 3, 0)); a1 = list(elec.SplitData(s, 3, 1)); a2 = list(elec.SplitData(s, 3, 2))
d["d3"] = (len(a0), len(a1), len(a2))
except Exception:
pass
try:
b0 = list(elec.SplitData(s, 4, 0)); b1 = list(elec.SplitData(s, 4, 1)); b2 = list(elec.SplitData(s, 4, 2)); b3 = list(elec.SplitData(s, 4, 3))
d["d4"] = (len(b0), len(b1), len(b2), len(b3))
except Exception:
pass
try:
c0 = list(elec.SplitData(s, 7, 0)); c1 = list(elec.SplitData(s, 7, 1)); c2 = list(elec.SplitData(s, 7, 2)); c3 = list(elec.SplitData(s, 7, 3)); c4 = list(elec.SplitData(s, 7, 4)); c5 = list(elec.SplitData(s, 7, 5)); c6 = list(elec.SplitData(s, 7, 6))
d["d7"] = (len(c0), len(c1), len(c2), len(c3), len(c4), len(c5), len(c6))
except Exception:
pass
details.append(d)
with open(out, "a", encoding="utf-8") as f:
f.write(f"data_details: {details}\n")
print("data_details:", details)
except Exception:
pass
try:
import time as _t
_t.sleep(10.0)
except Exception:
pass
try:
stop_rt4 = drv.stop_realtime_output(machine_id=2)
except Exception as e:
stop_rt4 = {"success": False, "error": str(e)}
with open(out, "a", encoding="utf-8") as f:
f.write(f"stop_realtime_output_cv: {stop_rt4}\n")
try:
exp_cv = drv.export_cyclic_voltammetry_data(machine_id=2, dest_dir=str(Path(__file__).resolve().parent / "exports" / "循环伏安"))
except Exception as e:
exp_cv = {"success": False, "error": str(e)}
with open(out, "a", encoding="utf-8") as f:
f.write(f"export_cyclic_voltammetry: {exp_cv}\n")
try:
stop_cv = drv.stop_experiment(machine_id=2)
except Exception as e:
stop_cv = {"success": False, "error": str(e)}
with open(out, "a", encoding="utf-8") as f:
f.write(f"stop_experiment_cv: {stop_cv}\n")
if __name__ == "__main__":
try:
asyncio.run(main())
except Exception as e:
print("error:", e)

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More