VWED_server/docs/sc/其他.md

245 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 其他模块文档 (Python版本)
## 实现状态说明
-**已实现**: 功能已完全实现并可正常使用
- ⚠️ **部分实现**: 基础框架已实现,但需要与外部系统集成
-**待实现**: 尚未实现,需要开发
## 访问方式
在脚本中通过 `VWED.other` 访问所有其他模块功能。
## 创建唯一的 ID 编号
* 方法说明
创建唯一的 ID 编号。
```python
def create_uuid() -> str
```
* 输入参数
无。
* 输出参数
* 表示一个唯一 ID 编号的字符串。
* 异常
本方法会抛出异常。
## 发送邮件 ⚠️
* 方法说明
向目标收件方发送简单邮件。
```python
def send_mail(param: str) -> None
```
* 输入参数
* paramstr 类型,表示邮件的详情,反序列化后的示例如下:
```python
{
"to": "yy@yy.com", # 接收方,必填
"subject": "Daily Meeting", # 主题,必填
"text": "xxx", # 内容,必填
"cc": "xxx@xxx.com,yyy@yyy.com", # 抄送,选填
"bcc": "zzz@zzz.com" # 秘密抄送,选填
}
```
* 输出参数
无。
* 异常
本方法会抛出异常。
## 发送用户消息 ⚠️
* 方法说明
发送用户消息不仅可以弹窗提醒还可以在RDS的消息管理界面进行查看。
```python
def send_user_message(level: str, message_title: str, message_body: str) -> None
```
* 输入参数
* levelstr 类型表示消息提醒的等级有ERRORWARNINFO三种等级。
* message_titlestr 类型,表示用户消息的标题。
* message_bodystr 类型,表示用户消息的内容。
* 输出参数
无。
* 异常
本方法不会抛出异常。
## JSON字符串转化为XML字符串
* 方法说明
将json字符串转化为xml字符串
```python
def json_to_xml(param: str) -> str
```
* 输入参数
* paramstr 类型表示传入的json字符串
* 输出参数
* xml字符串
* 异常
本方法不会抛出异常。
## MD5字符串加密
* 方法说明
将字符串进行加密后返回
```python
def md5_encode(param: str) -> str
```
* 输入参数
* paramstr 类型,表示传入的字符串
* 输出参数
* 32位小写字符串
* 异常
本方法会抛出异常。
## Base64字符串重编码
* 方法说明
将字符串进行重编码后返回
```python
def base64_encode(param: str) -> str
```
* 输入参数
* paramstr 类型,表示传入的字符串
* 输出参数
* UrlBase64 重编码后的字符串
* 异常
本方法会抛出异常。
## 转换成分页对象
* 方法说明
根据给定的参数和数据,转换成分页对象并进行返回。
```python
def trans_to_page_obj(total_count: int, current_page: int, page_size: int, total_page: int, page_list: str) -> str
```
* 输入参数
* total_count, int 类型,表示分页数据的总条数
* current_page, int 类型,表示当前是第几页
* page_size, int 类型,表示每页显示的数量
* total_page, int 类型,表示总页数
* page_list, str 类型,表示当前页的数据
* 输出参数
* 转换后的分页对象字符串
* 异常
本方法不会抛出异常。
* 请求示例
```python
def trans_to_page_obj():
# 1. 提供分页相关参数和源数据
# 当前是第几页最小值就是1
current_page = 2
# 每页的数据条数
page_size = 20
# 获取相关的数据,以实际情况为准进行修改
data = jj.find_sites_by_condition("{}", "ASC")
# 打印查询到的数据
jj.script_log("INFO", "trans_to_page_obj", data)
# 转换成对象,方便截取当页的数据
data_obj = json.loads(data)
# 截取指定页的数据
page_list_obj = data_obj[(current_page-1)*page_size : current_page*page_size]
# 将截取的数据转成字符串
page_list_str = json.dumps(page_list_obj)
# 2. 调用脚本方法,转换成分页对象
# 将数据转换成分页对象
res = jj.trans_to_page_obj(len(data_obj), current_page, page_size,
math.ceil(len(data_obj)/page_size), page_list_str)
# 打印转换后的结果
jj.script_log("INFO", "res=", res)
# 3. 拿着分页对象进行返回或其他操作
# TODO
```
## 获取天风任务参数 ⚠️
* 方法说明
在脚本中直接获取到天风任务参数。
```python
async def get_script_value(key: str) -> str
```
* 输入参数
* key变量表达式。
* 输出参数
天风任务中参数key的值的字符串。
* 异常
本方法不会抛出异常。该方法如果获取一个不存在的值时将会返回NULL。
* 请求示例
```python
def test():
# 获取任务变量status
jj.script_log("debug", "b1,agvid:", jj.get_script_value("task.variables.status"))
# 获取b4块选出的库位
jj.script_log("debug", "b1,agvid:", jj.get_script_value("blocks.b4.site_id"))
# 获取输入参数agvId
jj.script_log("debug", "b1,agvid:", jj.get_script_value("task_inputs.agv_id"))
```
## 批量放行 ⚠️
* 方法说明
批量放行机器人,与等待放行块结合使用。
```python
def release_wait_pass(agv_ids: List[str]) -> bool
```
* 输入参数
* agv_idsstr 列表类型需放行的机器人Id。
* 输出参数
* True放行成功。
* False放行失败
* 异常
本方法不会抛出异常。
* 请求示例
```python
def release_wait_pass():
agv_ids = [] # 注意参数是列表
agv_ids.append("AMB-150J") # 放行一个就只用append一个
agv_ids.append("sim_01")
jj.release_wait_pass(agv_ids)
```