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

5.9 KiB
Raw Blame History

## 其他

### 创建唯一的 ID 编号

* 方法说明

  创建唯一的 ID 编号。

```python
def create_uuid() -> str
  • 输入参数

    无。

  • 输出参数

  • 表示一个唯一 ID 编号的字符串。

  • 异常

    本方法会抛出异常。

发送邮件

  • 方法说明

    向目标收件方发送简单邮件。

def send_mail(param: str) -> None
  • 输入参数

  • paramstring 类型,表示邮件的详情,反序列化后的示例如下:

    {
        "to": "yy@yy.com",                     // 接收方,必填
        "subject": "Daily Meeting",         // 主题,必填
        "text": "xxx",                       // 内容,必填
        "cc": "xxx@xxx.com,yyy@yyy.com",    // 抄送,选填
        "bcc": "zzz@zzz.com"                  // 秘密抄送,选填
    }
    
  • 输出参数

    无。

  • 异常

    本方法会抛出异常。

发送用户消息

  • 方法说明

    发送用户消息不仅可以弹窗提醒还可以在RDS的消息管理界面进行查看。

def send_user_message(level: str, message_title: str, message_body: str) -> None
  • 输入参数

  • levelstring 类型表示消息提醒的等级有ERRORWARNINFO三种等级。

  • message_titlestring 类型,表示用户消息的标题。

  • message_bodystring 类型,表示用户消息的内容。

  • 输出参数

    无。

  • 异常

    本方法不会抛出异常。

JSON字符串转化为XML字符串

  • 方法说明

    将json字符串转化为xml字符串

def json_to_xml(param: str) -> str
  • 输入参数

  • paramstring 类型表示传入的json字符串

  • 输出参数

  • xml字符串

  • 异常

    本方法不会抛出异常。

MD5字符串加密

  • 方法说明

    将字符串进行加密后返回

def md5_encode(param: str) -> str
  • 输入参数

  • paramstring 类型,表示传入的字符串

  • 输出参数

  • 32位小写字符串

  • 异常

    本方法会抛出异常。

Base64字符串重编码

  • 方法说明

    将字符串进行重编码后返回

def base64_encode(param: str) -> str
  • 输入参数

  • paramstring 类型,表示传入的字符串

  • 输出参数

  • UrlBase64 重编码后的字符串

  • 异常

    本方法会抛出异常。

转换成分页对象

  • 方法说明

    根据给定的参数和数据,转换成分页对象并进行返回。

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 类型,表示当前页的数据

  • 输出参数

  • 转换后的分页对象字符串

  • 异常

    本方法不会抛出异常。

  • 请求示例

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

获取天风任务参数

  • 方法说明

    在脚本中直接获取到天风任务参数。

def get_script_value(key: str) -> str
  • 输入参数

  • key变量表达式。

  • 输出参数

    天风任务中参数key的值的字符串。

  • 异常 本方法不会抛出异常。该方法如果获取一个不存在的值时将会返回None。

  • 请求示例

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"))

批量放行

  • 方法说明

    批量放行机器人,与等待放行块结合使用。

def release_wait_pass(agv_ids: List[str]) -> bool
  • 输入参数
  • agv_ids字符串列表类型需放行的机器人Id。
  • 输出参数
  • True放行成功。
  • False放行失败
  • 异常 本方法不会抛出异常。
  • 请求示例
def release_wait_pass_example():
    agv_ids = []  # 注意参数是列表
    agv_ids.append("AMB-150J")  # 放行一个就只用append一个
    agv_ids.append("sim_01")
    jj.release_wait_pass(agv_ids)

脚本公平锁

  • 方法说明

    根据锁名称,获取不同的锁,并发情况下串行执行一段代码

def with_fairness_lock(lock_name: str, fair: bool, action: Callable[[], None]) -> None
  • 输入参数

  • lock_name字符串锁的名称

  • fairTrue: 公平锁更具时间先后顺序获取False: 非公平锁,随机获取锁

  • action: 执行的代码块(可调用对象)

  • 输出参数

  • 异常 本方法不会抛出异常。

  • 请求示例

def fairness_lock_example():
    jj.with_fairness_lock("kk", True, lambda: 
        # 代码块
        jj.script_log("INFO", "test", "test")
    )

进程已结束,退出代码为 0