VWED_server/docs/sc/库位相关.md

266 lines
5.9 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.

```markdown
## 其他
### 创建唯一的 ID 编号
* 方法说明
创建唯一的 ID 编号。
```python
def create_uuid() -> str
```
* 输入参数
无。
* 输出参数
* 表示一个唯一 ID 编号的字符串。
* 异常
本方法会抛出异常。
### 发送邮件
* 方法说明
向目标收件方发送简单邮件。
```python
def send_mail(param: str) -> None
```
* 输入参数
* paramstring 类型,表示邮件的详情,反序列化后的示例如下:
```json
{
"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
```
* 输入参数
* levelstring 类型表示消息提醒的等级有ERRORWARNINFO三种等级。
* message_titlestring 类型,表示用户消息的标题。
* message_bodystring 类型,表示用户消息的内容。
* 输出参数
无。
* 异常
本方法不会抛出异常。
### JSON字符串转化为XML字符串
* 方法说明
将json字符串转化为xml字符串
```python
def json_to_xml(param: str) -> str
```
* 输入参数
* paramstring 类型表示传入的json字符串
* 输出参数
* xml字符串
* 异常
本方法不会抛出异常。
### MD5字符串加密
* 方法说明
将字符串进行加密后返回
```python
def md5_encode(param: str) -> str
```
* 输入参数
* paramstring 类型,表示传入的字符串
* 输出参数
* 32位小写字符串
* 异常
本方法会抛出异常。
### Base64字符串重编码
* 方法说明
将字符串进行重编码后返回
```python
def base64_encode(param: str) -> str
```
* 输入参数
* paramstring 类型,表示传入的字符串
* 输出参数
* 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, string 类型,表示当前页的数据
* 输出参数
* 转换后的分页对象字符串
* 异常
本方法不会抛出异常。
* 请求示例
```python
def trans_to_page_obj_example():
# 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
def get_script_value(key: str) -> str
```
* 输入参数
* key变量表达式。
* 输出参数
天风任务中参数key的值的字符串。
* 异常
本方法不会抛出异常。该方法如果获取一个不存在的值时将会返回None。
* 请求示例
```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_ids字符串列表类型需放行的机器人Id。
* 输出参数
* True放行成功。
* False放行失败
* 异常
本方法不会抛出异常。
* 请求示例
```python
def release_wait_pass_example():
agv_ids = [] # 注意参数是列表
agv_ids.append("AMB-150J") # 放行一个就只用append一个
agv_ids.append("sim_01")
jj.release_wait_pass(agv_ids)
```
### 脚本公平锁
* 方法说明
根据锁名称,获取不同的锁,并发情况下串行执行一段代码
```python
def with_fairness_lock(lock_name: str, fair: bool, action: Callable[[], None]) -> None
```
* 输入参数
* lock_name字符串锁的名称
* fairTrue: 公平锁更具时间先后顺序获取False: 非公平锁,随机获取锁
* action: 执行的代码块(可调用对象)
* 输出参数
* 异常
本方法不会抛出异常。
* 请求示例
```python
def fairness_lock_example():
jj.with_fairness_lock("kk", True, lambda:
# 代码块
jj.script_log("INFO", "test", "test")
)
```
进程已结束,退出代码为 0
```