4798 lines
123 KiB
Markdown
4798 lines
123 KiB
Markdown
|
|
# RDS 脚本方法字典
|
|||
|
|
|
|||
|
|
## 脚本方法使用示例
|
|||
|
|
|
|||
|
|
以下以[异步创建并运行一个任务](#%E5%BC%82%E6%AD%A5%E5%88%9B%E5%BB%BA%E5%B9%B6%E8%BF%90%E8%A1%8C%E4%B8%80%E4%B8%AA%E4%BB%BB%E5%8A%A1)的脚本方法为例进行演示:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
// 构建createWindTask脚本方法所需要的输入参数
|
|||
|
|
var inputParams = {"fromSite": "PS-01"};// 天风任务的输入参数
|
|||
|
|
var taskParam = {
|
|||
|
|
// 任务类型 id
|
|||
|
|
"taskId": "12345",
|
|||
|
|
// 任务名称
|
|||
|
|
"taskLabel": "Ps2Ws",
|
|||
|
|
// 指定创建的任务实例的id
|
|||
|
|
"taskRecordId": "04d11f4f-d17c-4a41-9cf7-67de468035f9",
|
|||
|
|
//任务优先级(天风任务的参数:task.priority)
|
|||
|
|
"priority": 10
|
|||
|
|
// 在天风任务中定义的参数
|
|||
|
|
"inputParams": JSON.stringify(inputParams)
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 调用createWinTask方法,传入上面的输入参数
|
|||
|
|
jj.createWindTask(JSON.stringify(taskParam));
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 任务相关
|
|||
|
|
|
|||
|
|
#### 校验任务参数
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
校验输入参数中的 taskId 和 taskLabel 字段,如果同时为空,则返回 false,否则则返回 true。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function checkTaskParam(param: string): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
其参数 `param` 是 JSON 字符串,结构如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
// 任务类型 id
|
|||
|
|
"taskId": "12345",
|
|||
|
|
// 任务名称
|
|||
|
|
"taskLabel": "Ps2Ws"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输出参数
|
|||
|
|
* true,taskId 和 taskLabel 字段不是都为空字符串。
|
|||
|
|
* false,taskId 和 taskLabel 字段同时为空字符串。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 异步创建并运行一个任务
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是非阻塞方法,将在脚本中创建一个线程,来执行天风任务的实例。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function createWindTask(param: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
其参数 `param` 是 JSON 字符串,结构如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
// 任务类型 id
|
|||
|
|
"taskId": "12345",
|
|||
|
|
// 任务名称
|
|||
|
|
"taskLabel": "Ps2Ws",
|
|||
|
|
// 指定创建的任务实例的id
|
|||
|
|
"taskRecordId": "04d11f4f-d17c-4a41-9cf7-67de468035f9",
|
|||
|
|
// 在天风任务中定义的参数
|
|||
|
|
"inputParams": "{\"fromSite\":\"PS-01\"}"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**注意**:`taskId` 和 `taskLabel` 两者必选其一。如果同时存在,将首选使用 `taskId` 字段。
|
|||
|
|
|
|||
|
|
**注意,inputParam 字段,是个 JSON 字符串。需要在脚本里将任务参数序列化为 JSON。**
|
|||
|
|
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
JSON字符串
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"code":200, //200表示成功 -1表示失败
|
|||
|
|
"msg":"" //提示信息
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 根据任务实例 ID 查询任务实例
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据任务实例 ID 查询任务数据。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getTaskRecordById(taskRecordId: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
taskRecordId,string 类型,是任务实例的唯一 ID。
|
|||
|
|
* 输出参数
|
|||
|
|
* 如存在指定 ID 的任务实例,返回 JSON 格式的字符串。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
// 任务实例id
|
|||
|
|
"id":"123",
|
|||
|
|
// 天风任务id
|
|||
|
|
"defId":"6743",
|
|||
|
|
// 天风任务名
|
|||
|
|
defLabel:"agvMove",
|
|||
|
|
// 任务实例状态(1000:运行中,1001:终止,1002:暂停,1003:结束,1004:异常结束,1005:重启异常,1006:异常中断)
|
|||
|
|
"status":1000,
|
|||
|
|
// 任务创建时间
|
|||
|
|
"createdOn":"2022-02-12 11:23:12.0",
|
|||
|
|
// 任务结束时间
|
|||
|
|
"endedOn":"2022-02-12 11:26:12.0",
|
|||
|
|
// 任务状态描述
|
|||
|
|
"stateDescription":"物料搬运中",
|
|||
|
|
// 外部订单号
|
|||
|
|
“outOrderNo”:"D6567812",
|
|||
|
|
// 机器人Id
|
|||
|
|
"agvId":""
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
* 如果不存在指定 ID 的任务实例,返回 “null”。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 根据外部单号查询任务实例列表
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据外部单号查询任务实例列表。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getTaskRecordListByOutOrderNo(outOrderNo: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
outOrderNo,string 类型,是外部单号 ID。
|
|||
|
|
* 输出参数(JSON 格式的字符串):
|
|||
|
|
|
|||
|
|
是 JSON 数组,包含查询到的任务实例数据。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[{
|
|||
|
|
// 任务实例id
|
|||
|
|
"id":"123",
|
|||
|
|
// 天风任务id
|
|||
|
|
"defId":"6743",
|
|||
|
|
// 天风任务名
|
|||
|
|
defLabel:"agvMove",
|
|||
|
|
// 任务实例状态(1000:运行中,1001:终止,1002:暂停,1003:结束,1004:异常结束,1005:重启异常,1006:异常中断)
|
|||
|
|
"status":1000,
|
|||
|
|
// 任务创建时间
|
|||
|
|
"createdOn":"2022-02-12 11:23:12",
|
|||
|
|
// 结束原因
|
|||
|
|
"endedReason":"运行结束",
|
|||
|
|
// 任务结束时间
|
|||
|
|
"endedOn":"2022-02-12 11:26:12",
|
|||
|
|
// 任务状态描述
|
|||
|
|
"stateDescription":"物料搬运中",
|
|||
|
|
// 外部订单号
|
|||
|
|
“outOrderNo”:"D6567812"
|
|||
|
|
}]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果不存在指定外部单号的任务实例,返回 "[]"。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 根据机器人 ID 查询任务实例列表
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据机器人ID查询任务实例列表。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getTaskRecordByAgvId(agvId: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
agvId,string 类型,是机器人 ID。
|
|||
|
|
* 输出参数(JSON 格式的字符串):
|
|||
|
|
|
|||
|
|
是 JSON 数组,包含查询到的任务实例数据。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[{
|
|||
|
|
// 任务实例id
|
|||
|
|
"id":"123",
|
|||
|
|
// 天风任务id
|
|||
|
|
"defId":"6743",
|
|||
|
|
// 天风任务名
|
|||
|
|
defLabel:"agvMove",
|
|||
|
|
// 任务实例状态(1000:运行中,1001:终止,1002:暂停,1003:结束,1004:异常结束, 1005:重启异常, 1006:异常中断)
|
|||
|
|
"status":1000,
|
|||
|
|
// 任务创建时间
|
|||
|
|
"createdOn":"2022-02-12 11:23:12",
|
|||
|
|
// 结束原因
|
|||
|
|
"endedReason":"运行结束",
|
|||
|
|
// 任务结束时间
|
|||
|
|
"endedOn":"2022-02-12 11:26:12",
|
|||
|
|
// 任务状态描述
|
|||
|
|
"stateDescription":"物料搬运中",
|
|||
|
|
// 外部订单号
|
|||
|
|
“outOrderNo”:"D6567812"
|
|||
|
|
}]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果不存在对应机器人的任务实例数据,返回 "[]"。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### Core 运单封口
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
将 Core 中指定 ID 的运单封口。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function markComplete(orderId: string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
orderId,string 类型,Core 运单执行 ID。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 校验任务实例ID是否存在
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
校验任务实例id是否存在。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function isTaskRecordIdExist(taskRecordId: string): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
taskRecordId,string 类型,任务实例id。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,存在。
|
|||
|
|
* false,不存在。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 校验任务名称是否存在
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
校验任务名称是否存在。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function isTaskLabelExist(taskName: string): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
taskName,string 类型,任务名称。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,存在。
|
|||
|
|
* false,不存在。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 根据查询条件获取任务实例
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据参数的条件查询任务实例。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function queryTaskRecord(param: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
其参数 `param` 是 JSON 字符串,结构如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
// 任务类型 id
|
|||
|
|
"taskId":"",
|
|||
|
|
// 任务名
|
|||
|
|
"taskLabel":"",
|
|||
|
|
// 任务实例 id
|
|||
|
|
"taskRecordId":"",
|
|||
|
|
// 任务实例状态(1000:运行中,1001:终止,1002:暂停,1003:结束,1004:异常结束,1005:重启异常,1006:异常中断)
|
|||
|
|
"status":"",
|
|||
|
|
// 执行任务的机器人 id
|
|||
|
|
"agvId":"",
|
|||
|
|
// 开始时间,需满足‘yyyy-MM-dd HH:mm:ss’格式。如果该值非空,则返回创建日期大于该时间的任务实例
|
|||
|
|
"startDate":"",
|
|||
|
|
// 结束时间,需满足‘yyyy-MM-dd HH:mm:ss’格式。如果该值非空,则返回创建日期小于该时间的任务实例
|
|||
|
|
"endDate":""
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
是 JSON 数组,包含查询到的任务实例数据。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[{
|
|||
|
|
// 任务实例id
|
|||
|
|
"id":"123",
|
|||
|
|
// 天风任务id
|
|||
|
|
"defId":"6743",
|
|||
|
|
// 天风任务名
|
|||
|
|
defLabel:"agvMove",
|
|||
|
|
// 任务实例状态(1000:运行中,1001:终止,1002:暂停,1003:结束,1004:异常结束,1005:重启异常,1006:异常中断)
|
|||
|
|
"status":1000,
|
|||
|
|
// 任务创建时间
|
|||
|
|
"createdOn":"2022-02-12 11:23:12",
|
|||
|
|
// 结束原因
|
|||
|
|
"endedReason":"运行结束",
|
|||
|
|
// 任务结束时间
|
|||
|
|
"endedOn":"2022-02-12 11:26:12",
|
|||
|
|
// 任务状态描述
|
|||
|
|
"stateDescription":"物料搬运中",
|
|||
|
|
// 外部订单号
|
|||
|
|
“outOrderNo”:"D6567812"
|
|||
|
|
}]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果不存在满足条件的任务实例数据,返回 "[]"。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 接收并持久化第三方系统任务请求
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function receiveThirdOrder(orderParam: string): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
接收第三方系统发送的任务请求,并存入数据库(此时未必创建任务)。表结构如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
CREATE TABLE `t_windthirdorder` (
|
|||
|
|
`id` varchar(255) NOT NULL,
|
|||
|
|
`create_date` datetime(6) DEFAULT NULL,
|
|||
|
|
`params` longtext,
|
|||
|
|
`status` int DEFAULT '0',
|
|||
|
|
PRIMARY KEY (`id`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
其参数 `orderParam` 是 JSON 字符串,示例如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"name": "运单名",
|
|||
|
|
"type": "任务名称taskLabel"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
注:数据表为通用第三方请求数据表,orderParam 存入表 params 字段,orderParam 字段可自定义结构。
|
|||
|
|
|
|||
|
|
* 输出参数
|
|||
|
|
* true,调用方法成功。
|
|||
|
|
* false,调用方法失败。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 保存任务运行时日志
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
新增RDS任务实例的运行日志,该日志将显示在任务实例的监控界面中。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function saveTaskLog(logParam: string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
其参数 `param` 是 JSON 字符串,结构如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
// 任务类型 id
|
|||
|
|
"taskId": "402883a27cda555f017cda6f55ad01b6",
|
|||
|
|
// 任务实例 id
|
|||
|
|
"taskRecordId": "04d11f4f-d17c-4a41-9cf7-67de468035f9",
|
|||
|
|
// 任务块 id
|
|||
|
|
"blockId": 2,
|
|||
|
|
// 日志信息
|
|||
|
|
"message": "[RootBp]任务开始运行:taskId=402883a27cda555f017cda6f55ad01b6",
|
|||
|
|
// 日志级别:1,正常运行;2,正常停止;3,异常中断。
|
|||
|
|
"level": 1
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 创建并运行一个任务
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是阻塞方法,可以在脚本中创建一个天风任务的实例,并在任务执行结束后返回。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function syncCreateWindTask(taskParam: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
其参数 `param` 是 JSON 字符串,结构如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
// 任务类型 id
|
|||
|
|
"taskId": "12345",
|
|||
|
|
// 任务名称
|
|||
|
|
"taskLabel": "Ps2Ws",
|
|||
|
|
// 指定创建的任务实例的id
|
|||
|
|
"taskRecordId": "04d11f4f-d17c-4a41-9cf7-67de468035f9",
|
|||
|
|
// 在天风任务中定义的参数
|
|||
|
|
"inputParams": "{\"fromSite\":\"PS-01\"}"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**注意**,`taskId` 和 `taskLabel` 两者必选其一。如果同时存在,将首选使用 `taskId` 字段。
|
|||
|
|
|
|||
|
|
**注意,inputParam 字段,是个 JSON 字符串。需要在脚本里将任务参数序列化为 JSON。**
|
|||
|
|
|
|||
|
|
* 输出参数
|
|||
|
|
* "9013",任务正常结束。
|
|||
|
|
* "9014",任务异常结束。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 终止任务
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是非阻塞方法,可用于终止多个正在运行的天风任务实例。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function terminateTasks(param: string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
其参数 `param` 是 JSON 字符串,结构如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[
|
|||
|
|
{
|
|||
|
|
// 指定创建的任务实例的id
|
|||
|
|
"taskRecordId": "04d11f4f-d17c-4a41-9cf7-67de468035f9"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
// 指定创建的任务实例的id
|
|||
|
|
"taskRecordId": "04d11f4f-d17c-4a41-9cf7-67de468035fe"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 查询子任务的任务id列表
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是非阻塞方法,可根据父任务的id查询所有子任务的id。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getChildrenTaskRecordId(recordId: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
recordId,父任务的recordId。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
包含子任务id的 JSON 字符串,转换成 JSON 对象之后的示例数据如下所示:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[
|
|||
|
|
"child-58d549a4-6d4c-4e01-a327-269e3d4c1863",
|
|||
|
|
"child-sdsdfvsd-qrwe-4e02-a327-269eqwcfs863"
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果不存在满足条件的子任务,返回 "[]"。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 设置任务优先级
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是非阻塞方法,可根据设置任务的优先级。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function setTaskPriority(taskRecordId: string,priority: number): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
taskRecordId,任务的实例id。
|
|||
|
|
|
|||
|
|
priority, 任务的优先级
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
|
|||
|
|
## 机器人相关
|
|||
|
|
|
|||
|
|
#### 校验机器人是否存在
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
校验机器人是否存在。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function isRobotExist(robotName: string): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
robotName,string 类型,机器人名称。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,存在。
|
|||
|
|
* false,不存在。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 获取机器人基本信息
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取机器人基本信息。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getLiteRobotsStatus(): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[
|
|||
|
|
{
|
|||
|
|
"battery_level": 1, #机器人电池电量, 范围 [0, 1]
|
|||
|
|
"confidence": 1, #机器人的定位置信度, 范围 [0, 1]
|
|||
|
|
"currentGroup": "unnamed", #机器人当前所在机器人组
|
|||
|
|
"current_map": "newCHACHECPD-15_1", #当前地图
|
|||
|
|
"current_map_invalid": false, #机器人当前地图不在场景中
|
|||
|
|
"dI": [], #输入信号
|
|||
|
|
"dO": [], #输出信号
|
|||
|
|
"disconnect": false, #与机器人网络断连
|
|||
|
|
"dispatchable": true, #机器人可接单状态
|
|||
|
|
"dispatchable_status": 0, #可接单状态 = api 设置可接单,1 = api 设置不可接单(小车占用资源), 2 = api 设置不可接单(小车不占用资源)
|
|||
|
|
"errors": [], #报警码
|
|||
|
|
"ip": "", #机器人ip
|
|||
|
|
"low_battery": false, #低电量
|
|||
|
|
"reloc_status": 1, #0 = FAILED(定位失败), 1 = SUCCESS(定位正确), 2 = RELOCING(正在重定位), 3=COMPLETED(定位完成)
|
|||
|
|
"task_status": 0, #机器人当前的导航状态:0 = NONE, 1 = WAITING(目前不可能出现该状态), 2 = RUNNING, 3 = SUSPENDED, 4 = COMPLETED, 5 = FAILED, 6 = CANCELED
|
|||
|
|
"unconfirmed_reloc": false, #未确认定位
|
|||
|
|
"unlock": 0, #0: 控制权在 RDSCore 手上 1: 控制权被其他人抢走; 2: 控制权没有被抢占
|
|||
|
|
"uuid": "sim_01" #机器人名
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"battery_level": 1,
|
|||
|
|
"confidence": 1,
|
|||
|
|
"currentGroup": "RobotGroup-01",
|
|||
|
|
"current_map": "newCHACHECPD-15_1",
|
|||
|
|
"current_map_invalid": false,
|
|||
|
|
"dI": [],
|
|||
|
|
"dO": [],
|
|||
|
|
"disconnect": false,
|
|||
|
|
"dispatchable": true,
|
|||
|
|
"dispatchable_status": 0,
|
|||
|
|
"errors": [],
|
|||
|
|
"ip": "",
|
|||
|
|
"low_battery": false,
|
|||
|
|
"orderId": "ab913f4b-9a35-4cdf-a4e5-07928897e0d2",
|
|||
|
|
"reloc_status": 1,
|
|||
|
|
"state": "FINISHED",
|
|||
|
|
"task_status": 4,
|
|||
|
|
"unconfirmed_reloc": false,
|
|||
|
|
"unlock": 0,
|
|||
|
|
"uuid": "sim_02"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 根据Id获取机器人基本信息
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据Id获取机器人基本信息。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getLiteRobotsStatuById(agvId:string):string;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
agvId,string 类型,机器人Id。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"battery_level": 1, #机器人电池电量, 范围 [0, 1]
|
|||
|
|
"confidence": 1, #机器人的定位置信度, 范围 [0, 1]
|
|||
|
|
"currentGroup": "unnamed", #机器人当前所在机器人组
|
|||
|
|
"current_map": "newCHACHECPD-15_1", #当前地图
|
|||
|
|
"current_map_invalid": false, #机器人当前地图不在场景中
|
|||
|
|
"dI": [], #输入信号
|
|||
|
|
"dO": [], #输出信号
|
|||
|
|
"disconnect": false, #与机器人网络断连
|
|||
|
|
"dispatchable": true, #机器人可接单状态
|
|||
|
|
"dispatchable_status": 0, #可接单状态 = api 设置可接单,1 = api 设置不可接单(小车占用资源), 2 = api 设置不可接单(小车不占用资源)
|
|||
|
|
"errors": [], #报警码
|
|||
|
|
"ip": "", #机器人ip
|
|||
|
|
"low_battery": false, #低电量
|
|||
|
|
"reloc_status": 1, #0 = FAILED(定位失败), 1 = SUCCESS(定位正确), 2 = RELOCING(正在重定位), 3=COMPLETED(定位完成)
|
|||
|
|
"task_status": 0, #机器人当前的导航状态:0 = NONE, 1 = WAITING(目前不可能出现该状态), 2 = RUNNING, 3 = SUSPENDED, 4 = COMPLETED, 5 = FAILED, 6 = CANCELED
|
|||
|
|
"unconfirmed_reloc": false, #未确认定位
|
|||
|
|
"unlock": 0, #0: 控制权在 RDSCore 手上 1: 控制权被其他人抢走; 2: 控制权没有被抢占
|
|||
|
|
"uuid": "sim_01" #机器人名
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 根据Id获取机器人位置
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据机器人id获取机器人的位置
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
getVehicleStation(agvId:string):string;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
agvId,string 类型,机器人Id。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"lastStation": "LM32", //上次位置 可能是空
|
|||
|
|
"station": "AP25" //当前位置 可能是空
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果与调度断连返回空对象 {}。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 获取Core报错信息
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取Core报错信息。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getCoreAlarms():string;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"errors": [{
|
|||
|
|
"code": 52106,
|
|||
|
|
"desc": "(AMB-01: blocked by chengpin-02 in occupy path. blocked by chengpin-02 in block group's edge BlockGroup102)(AMB-02: blocked by AMB-05 in occupy path. blocked by AMB-05 in block group's edge BlockGroup94)(AMB-03: blocked by AMB-05 in block group's lm BlockGroup94)(AMB-05: blocked by AMB-03 in block group's lm BlockGroup105)(chengpin-02: blocked by AMB-01 in occupy path. blocked by AMB-01 in block group's edge BlockGroup102)",
|
|||
|
|
"times": 5,
|
|||
|
|
"timestamp": 1681110467
|
|||
|
|
}, {
|
|||
|
|
"code": 52201,
|
|||
|
|
"desc": "(AMB-01,chengpin-02, in BlockGroup102, whose max number is 1 ), The number of robots in same block group is over max number.",
|
|||
|
|
"times": 1,
|
|||
|
|
"timestamp": 1681110452
|
|||
|
|
}],
|
|||
|
|
"warnings": [{
|
|||
|
|
"code": 54000,
|
|||
|
|
"desc": "AMB-02,AMB-05,chengpin-03,chengpin-08, unable to reach park point.",
|
|||
|
|
"times": 1,
|
|||
|
|
"timestamp":
|
|||
|
|
1681110462
|
|||
|
|
}]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
当与调度断连时,本方法会返回 null。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
|
|||
|
|
#### 根据Id获取Core报错信息
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据Id获取Core报错信息。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getCoreAlarms(code:int):string;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
code,int类型,错误码。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"errors": [{
|
|||
|
|
"code": 52201,
|
|||
|
|
"desc": "(AMB-01,chengpin-02, in BlockGroup102, whose max number is 1 ), The number of robots in same block group is over max number.",
|
|||
|
|
"times": 1,
|
|||
|
|
"timestamp": 1681110452
|
|||
|
|
}]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
当与调度断连时,本方法会返回 null。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
|
|||
|
|
#### 获取Rbk报错信息
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取Rbk报错信息。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getRbkAlarms():string;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"errors": [{
|
|||
|
|
"code": 52200,
|
|||
|
|
"desc": "Blocked by : chengpin-02",
|
|||
|
|
"times": 1,
|
|||
|
|
"timestamp": 1681116822857
|
|||
|
|
}, {
|
|||
|
|
"code": 52200,
|
|||
|
|
"desc": "Blocked by : AMB-01",
|
|||
|
|
"times": 1,
|
|||
|
|
"timestamp": 1681116822858
|
|||
|
|
}]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
当与调度断连时,本方法会返回 null。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
|
|||
|
|
#### 根据Id获取Rbk报错信息
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据Id获取Rbk报错信息。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getRbkAlarms(code:int):string;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
code,int类型,错误码。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"errors": [{
|
|||
|
|
"code": 52200,
|
|||
|
|
"desc": "Blocked by : chengpin-02",
|
|||
|
|
"times": 1,
|
|||
|
|
"timestamp": 1681117052956
|
|||
|
|
}, {
|
|||
|
|
"code": 52200,
|
|||
|
|
"desc": "Blocked by : AMB-01",
|
|||
|
|
"times": 1,
|
|||
|
|
"timestamp": 1681117052956
|
|||
|
|
}]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
当与调度断连时,本方法会返回 null。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
|
|||
|
|
#### 设置机器人软急停
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
设置机器人软急停。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function setSoftStop(vehicleId: string,status: boolean): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
vehicleId,string 类型,机器人名称。
|
|||
|
|
|
|||
|
|
status,boolean类型,true:设置机器人软急停 。false:取消机器人软急停
|
|||
|
|
* 输出参数
|
|||
|
|
* true,成功。
|
|||
|
|
* false,失败。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 获取机器人所有信息
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取机器人所有信息。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getRobotsStatus(): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"dynamic_obstacle": {},
|
|||
|
|
"errors": [
|
|||
|
|
{
|
|||
|
|
"52101": 1634020173,
|
|||
|
|
"desc": "hu-test-1,hu-test-3, have no charge point in map.",
|
|||
|
|
"times": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"52103": 1634020173,
|
|||
|
|
"desc": "hu-test-1,hu-test-3, have no park point in map.",
|
|||
|
|
"times": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"53200": 1634020174,
|
|||
|
|
"desc": "[{\"error_msg\":\"old: hu-test-1, now: AMB-01, please change back!\",\"ip\":\"106.14.198.1\"}]",
|
|||
|
|
"times": 1
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"fatals": [],
|
|||
|
|
"notices": [],
|
|||
|
|
"report": [
|
|||
|
|
{
|
|||
|
|
"area_resources_occupied": [
|
|||
|
|
{
|
|||
|
|
"area_name": "new",
|
|||
|
|
"avoidObs_area_occupied": {
|
|||
|
|
"radius": -1,
|
|||
|
|
"x": 0,
|
|||
|
|
"y": 0
|
|||
|
|
},
|
|||
|
|
"blocks_occupied": [],
|
|||
|
|
"path_occupied": [
|
|||
|
|
{
|
|||
|
|
"end_id": "AP1",
|
|||
|
|
"end_percentage": 0.7882161028093827,
|
|||
|
|
"source_id": "AP61",
|
|||
|
|
"start_percentage": 0.7882161028093827
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"basic_info": {
|
|||
|
|
"current_map": "20200529150233136",
|
|||
|
|
"dsp_version": "simulation",
|
|||
|
|
"ip": "106.14.198.1",
|
|||
|
|
"model": "AMB-150",
|
|||
|
|
"robot_note": "",
|
|||
|
|
"version": "v3.3.4.51"
|
|||
|
|
},
|
|||
|
|
"changes": {
|
|||
|
|
"maps": [
|
|||
|
|
"20200529150233136.smap",
|
|||
|
|
"default.smap",
|
|||
|
|
"wwww(1).smap"
|
|||
|
|
],
|
|||
|
|
"model": true
|
|||
|
|
},
|
|||
|
|
"chassis": {
|
|||
|
|
"goods_region": {
|
|||
|
|
"name": "",
|
|||
|
|
"point": []
|
|||
|
|
},
|
|||
|
|
"head": 0.42,
|
|||
|
|
"radius": 0.0,
|
|||
|
|
"shape": 1,
|
|||
|
|
"tail": 0.38,
|
|||
|
|
"width": 0.56
|
|||
|
|
},
|
|||
|
|
"connection_status": 1,
|
|||
|
|
"current_order": {},
|
|||
|
|
"dispatchable": false,
|
|||
|
|
"is_error": false,
|
|||
|
|
"lock_info": {
|
|||
|
|
"desc": "",
|
|||
|
|
"ip": "58.34.135.130",
|
|||
|
|
"locked": true,
|
|||
|
|
"nick_name": "DESKTOP-27FKEEM(0d50b)",
|
|||
|
|
"port": 54733,
|
|||
|
|
"time_t": "1634023715",
|
|||
|
|
"type": 2
|
|||
|
|
},
|
|||
|
|
"network_delay": 100,
|
|||
|
|
"rbk_report": {
|
|||
|
|
"DI": [],
|
|||
|
|
"DO": [],
|
|||
|
|
"angle": -1.5626,
|
|||
|
|
"battery_level": 1.0,
|
|||
|
|
"blocked": false,
|
|||
|
|
"brake": false,
|
|||
|
|
"charging": false,
|
|||
|
|
"confidence": 0.996,
|
|||
|
|
"current": -1.0,
|
|||
|
|
"current_map": "20200529150233136",
|
|||
|
|
"current_map_md5": "72a91de898406e10b9cedfed51a3a5f9",
|
|||
|
|
"current_station": "LM1",
|
|||
|
|
"emergency": false,
|
|||
|
|
"errors": [],
|
|||
|
|
"fatals": [],
|
|||
|
|
"fork": {
|
|||
|
|
"fork_auto_flag": true,
|
|||
|
|
"fork_height": -0.0,
|
|||
|
|
"fork_height_in_place": false,
|
|||
|
|
"forward_in_place": false,
|
|||
|
|
"forward_val": 0.0
|
|||
|
|
},
|
|||
|
|
"info": {},
|
|||
|
|
"jack": {
|
|||
|
|
"jack_emc": false,
|
|||
|
|
"jack_enable": false,
|
|||
|
|
"jack_error_code": 0,
|
|||
|
|
"jack_height": 0.0,
|
|||
|
|
"jack_isFull": false,
|
|||
|
|
"jack_load_times": 0,
|
|||
|
|
"jack_mode": false,
|
|||
|
|
"jack_speed": 0,
|
|||
|
|
"jack_state": 0
|
|||
|
|
},
|
|||
|
|
"last_station": "CP2",
|
|||
|
|
"lock_info": {
|
|||
|
|
"desc": "",
|
|||
|
|
"ip": "58.34.135.130",
|
|||
|
|
"locked": true,
|
|||
|
|
"nick_name": "DESKTOP-27FKEEM(0d50b)",
|
|||
|
|
"port": 54733,
|
|||
|
|
"time_t": "1634023715",
|
|||
|
|
"type": 2
|
|||
|
|
},
|
|||
|
|
"notices": [],
|
|||
|
|
"odo": 24.771,
|
|||
|
|
"received_on": {
|
|||
|
|
"data_nsec": "1110998989197957",
|
|||
|
|
"frame_id": "",
|
|||
|
|
"pub_nsec": "1110998989197957",
|
|||
|
|
"seq": "0"
|
|||
|
|
},
|
|||
|
|
"reloc_status": 1,
|
|||
|
|
"requestCurrent": -0.0,
|
|||
|
|
"requestVoltage": -0.0,
|
|||
|
|
"roller": {
|
|||
|
|
"roller_emc": false,
|
|||
|
|
"roller_enable": false,
|
|||
|
|
"roller_error_code": 0,
|
|||
|
|
"roller_isFull": false,
|
|||
|
|
"roller_mode": false,
|
|||
|
|
"roller_speed": 0,
|
|||
|
|
"roller_state": 0
|
|||
|
|
},
|
|||
|
|
"soft_emc": false,
|
|||
|
|
"steer": -0.0,
|
|||
|
|
"time": 104303118,
|
|||
|
|
"today_odo": 15.812,
|
|||
|
|
"total_time": 444534615,
|
|||
|
|
"voltage": 1.0,
|
|||
|
|
"vx": -0.0,
|
|||
|
|
"vy": -0.0,
|
|||
|
|
"w": -0.0,
|
|||
|
|
"warnings": [
|
|||
|
|
{
|
|||
|
|
"55001": 1634020734,
|
|||
|
|
"desc": "The robot is in the dispatching state. If you need to control, please regain control and go offline during dispatching.",
|
|||
|
|
"times": 1
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"x": -0.3316,
|
|||
|
|
"y": -1.4711
|
|||
|
|
},
|
|||
|
|
"undispatchable_reason": {
|
|||
|
|
"current_map_invalid": false,
|
|||
|
|
"disconnect": false,
|
|||
|
|
"dispatchable_status": 0,
|
|||
|
|
"low_battery": false,
|
|||
|
|
"unconfirmed_reloc": false,
|
|||
|
|
"unlock": 1
|
|||
|
|
},
|
|||
|
|
"uuid": "hu-test-1",
|
|||
|
|
"vehicle_id": "AMB-01"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area_resources_occupied": [
|
|||
|
|
{
|
|||
|
|
"area_name": "new",
|
|||
|
|
"avoidObs_area_occupied": {
|
|||
|
|
"radius": -1,
|
|||
|
|
"x": 0,
|
|||
|
|
"y": 0
|
|||
|
|
},
|
|||
|
|
"blocks_occupied": [],
|
|||
|
|
"path_occupied": [
|
|||
|
|
{
|
|||
|
|
"end_id": "AP33",
|
|||
|
|
"end_percentage": 1,
|
|||
|
|
"source_id": "AP32",
|
|||
|
|
"start_percentage": 1
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"basic_info": {
|
|||
|
|
"current_map": "zhihuichufang-Area-1ss-sim",
|
|||
|
|
"dsp_version": "simulation",
|
|||
|
|
"ip": "106.14.190.57",
|
|||
|
|
"model": "AMB-300-D",
|
|||
|
|
"robot_note": "",
|
|||
|
|
"version": "v3.3.4.51"
|
|||
|
|
},
|
|||
|
|
"changes": {
|
|||
|
|
"maps": [
|
|||
|
|
"20210107101108218.smap",
|
|||
|
|
"20210915133008125.smap",
|
|||
|
|
"WEIYI-2L.smap",
|
|||
|
|
"default-old.smap",
|
|||
|
|
"default.smap",
|
|||
|
|
"default123.smap",
|
|||
|
|
"jiaxing-fork2.smap",
|
|||
|
|
"seer-pda-20211011-132546.smap",
|
|||
|
|
"seer-pda-20211011-132611.smap",
|
|||
|
|
"seer-pda-20211011-132635.smap",
|
|||
|
|
"seer-pda-2021930-175116(1).smap",
|
|||
|
|
"wwww(1).smap",
|
|||
|
|
"zhacai-sim.smap"
|
|||
|
|
],
|
|||
|
|
"model": true
|
|||
|
|
},
|
|||
|
|
"chassis": {
|
|||
|
|
"goods_region": {
|
|||
|
|
"name": "",
|
|||
|
|
"point": []
|
|||
|
|
},
|
|||
|
|
"head": 0.52,
|
|||
|
|
"radius": 0.0,
|
|||
|
|
"shape": 1,
|
|||
|
|
"tail": 0.48,
|
|||
|
|
"width": 0.7
|
|||
|
|
},
|
|||
|
|
"connection_status": 1,
|
|||
|
|
"current_order": {},
|
|||
|
|
"dispatchable": false,
|
|||
|
|
"is_error": false,
|
|||
|
|
"lock_info": {
|
|||
|
|
"desc": "",
|
|||
|
|
"ip": "58.34.135.130",
|
|||
|
|
"locked": true,
|
|||
|
|
"nick_name": "8e06e130-a2fa-4681-8473-bc6f3f9d76fd",
|
|||
|
|
"port": 58088,
|
|||
|
|
"time_t": "1634025655",
|
|||
|
|
"type": 255
|
|||
|
|
},
|
|||
|
|
"network_delay": 85,
|
|||
|
|
"rbk_report": {
|
|||
|
|
"DI": [],
|
|||
|
|
"DO": [],
|
|||
|
|
"angle": -2.9679,
|
|||
|
|
"battery_level": 1.0,
|
|||
|
|
"blocked": false,
|
|||
|
|
"brake": false,
|
|||
|
|
"charging": false,
|
|||
|
|
"confidence": 0.9949,
|
|||
|
|
"current": -1.0,
|
|||
|
|
"current_map": "zhihuichufang-Area-1ss-sim",
|
|||
|
|
"current_map_md5": "7a239eb7d76c4cdb1a4edac9524a15c5",
|
|||
|
|
"current_station": "",
|
|||
|
|
"emergency": false,
|
|||
|
|
"errors": [],
|
|||
|
|
"fatals": [],
|
|||
|
|
"fork": {
|
|||
|
|
"fork_auto_flag": true,
|
|||
|
|
"fork_height": -0.0,
|
|||
|
|
"fork_height_in_place": false,
|
|||
|
|
"forward_in_place": false,
|
|||
|
|
"forward_val": 0.0
|
|||
|
|
},
|
|||
|
|
"info": {},
|
|||
|
|
"jack": {
|
|||
|
|
"jack_emc": false,
|
|||
|
|
"jack_enable": false,
|
|||
|
|
"jack_error_code": 0,
|
|||
|
|
"jack_height": 0.0,
|
|||
|
|
"jack_isFull": false,
|
|||
|
|
"jack_load_times": 0,
|
|||
|
|
"jack_mode": false,
|
|||
|
|
"jack_speed": 0,
|
|||
|
|
"jack_state": 0
|
|||
|
|
},
|
|||
|
|
"last_station": "",
|
|||
|
|
"lock_info": {
|
|||
|
|
"desc": "",
|
|||
|
|
"ip": "58.34.135.130",
|
|||
|
|
"locked": true,
|
|||
|
|
"nick_name": "8e06e130-a2fa-4681-8473-bc6f3f9d76fd",
|
|||
|
|
"port": 58088,
|
|||
|
|
"time_t": "1634025655",
|
|||
|
|
"type": 255
|
|||
|
|
},
|
|||
|
|
"notices": [
|
|||
|
|
{
|
|||
|
|
"57005": 1634021893,
|
|||
|
|
"desc": "json conversion error",
|
|||
|
|
"times": 21
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"odo": 35984.386,
|
|||
|
|
"received_on": {
|
|||
|
|
"data_nsec": "1110998932407317",
|
|||
|
|
"frame_id": "",
|
|||
|
|
"pub_nsec": "1110998932407317",
|
|||
|
|
"seq": "0"
|
|||
|
|
},
|
|||
|
|
"reloc_status": 1,
|
|||
|
|
"requestCurrent": -0.0,
|
|||
|
|
"requestVoltage": -0.0,
|
|||
|
|
"roller": {
|
|||
|
|
"roller_emc": false,
|
|||
|
|
"roller_enable": false,
|
|||
|
|
"roller_error_code": 0,
|
|||
|
|
"roller_isFull": false,
|
|||
|
|
"roller_mode": false,
|
|||
|
|
"roller_speed": 0,
|
|||
|
|
"roller_state": 0
|
|||
|
|
},
|
|||
|
|
"soft_emc": false,
|
|||
|
|
"steer": -0.0,
|
|||
|
|
"time": 444682933,
|
|||
|
|
"today_odo": 17.77,
|
|||
|
|
"total_time": 26574775786,
|
|||
|
|
"voltage": 1.0,
|
|||
|
|
"vx": -0.0,
|
|||
|
|
"vy": -0.0,
|
|||
|
|
"w": -0.0,
|
|||
|
|
"warnings": [
|
|||
|
|
{
|
|||
|
|
"55001": 1633952368,
|
|||
|
|
"desc": "The robot is in the dispatching state. If you need to control, please regain control and go offline during dispatching.",
|
|||
|
|
"times": 1
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"x": -15.8727,
|
|||
|
|
"y": 11.6028
|
|||
|
|
},
|
|||
|
|
"undispatchable_reason": {
|
|||
|
|
"current_map_invalid": false,
|
|||
|
|
"disconnect": false,
|
|||
|
|
"dispatchable_status": 0,
|
|||
|
|
"low_battery": false,
|
|||
|
|
"unconfirmed_reloc": false,
|
|||
|
|
"unlock": 1
|
|||
|
|
},
|
|||
|
|
"uuid": "hu-test-3",
|
|||
|
|
"vehicle_id": "hu-test-3"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"scene_md5": "b481893504019cd71c03484f4b2419e1",
|
|||
|
|
"warnings": []
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
当与调度断连时,本方法会返回 null。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 查询所有机器人充电阈值
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取所有机器人充电阈值信息。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function queryChargeParam(): string;
|
|||
|
|
```
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[
|
|||
|
|
{
|
|||
|
|
"vehicle": "AMB-01",
|
|||
|
|
"params": {
|
|||
|
|
"chargeNeed": 40.0,
|
|||
|
|
"chargeOnly": 30.0,
|
|||
|
|
"chargedOK": 50.0,
|
|||
|
|
"chargedFull": 90.0
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"vehicle": "AMB-02",
|
|||
|
|
"params": {
|
|||
|
|
"chargeNeed": 50.0,
|
|||
|
|
"chargeOnly": 20.0,
|
|||
|
|
"chargedOK": 60.0,
|
|||
|
|
"chargedFull": 80.0
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
当与调度断连时,本方法会返回 null。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 查询机器人充电阈值
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据机器人名称获取机器人充电阈值信息。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function queryChargeParam(vehicles: string): string;
|
|||
|
|
```
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
vehicles: JSON 格式的字符串(将数组转成字符串格式),查询指定数量的机器人充电阈值信息。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[
|
|||
|
|
{
|
|||
|
|
"vehicle": "AMB-01",
|
|||
|
|
"params": {
|
|||
|
|
"chargeNeed": 40.0,
|
|||
|
|
"chargeOnly": 30.0,
|
|||
|
|
"chargedOK": 50.0,
|
|||
|
|
"chargedFull": 90.0
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"vehicle": "AMB-02",
|
|||
|
|
"params": {
|
|||
|
|
"chargeNeed": 50.0,
|
|||
|
|
"chargeOnly": 20.0,
|
|||
|
|
"chargedOK": 60.0,
|
|||
|
|
"chargedFull": 80.0
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 修改机器人充电阈值
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据机器人名称修改机器人充电阈值信息。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function modifyChargeParam(param: string): boolean;
|
|||
|
|
```
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
vehicles: JSON 格式的字符串(将数组转成字符串格式),查询指定数量的机器人充电阈值信息。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
+ true: 修改成功。
|
|||
|
|
+ false: 修改失败。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
* 示例:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function boot() {
|
|||
|
|
// 指定要修改的机器人名称,以及对应的阈值
|
|||
|
|
const req = {
|
|||
|
|
"vehicles": ["sim_01"],
|
|||
|
|
"params": {
|
|||
|
|
"chargeNeed": 30
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
// 查询修改前的阈值信息
|
|||
|
|
const before = jj.queryChargeParam(JSON.stringify(["sim_01"]));
|
|||
|
|
// 使用 modifyChargeParam 修改阈值
|
|||
|
|
const data = jj.modifyChargeParam(JSON.stringify(req));
|
|||
|
|
// 查询修改后的阈值信息
|
|||
|
|
const after = jj.queryChargeParam(JSON.stringify(["sim_01"]));
|
|||
|
|
// 打印结果
|
|||
|
|
jj.scriptLog("info", "Charge", "query = " + before);
|
|||
|
|
jj.scriptLog("info", "Charge", "modify = " + data);
|
|||
|
|
jj.scriptLog("info", "Charge", "query = " + after);
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
得到以下打印信息,表示修改 chargeNeed 参数成功:
|
|||
|
|
|
|||
|
|

|
|||
|
|
|
|||
|
|
## 库位相关
|
|||
|
|
|
|||
|
|
#### 检查站点是否存在
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
检查站点是否存在。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function isPointExist(pointName: string):boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
pointName,站点名。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,该站点存在。
|
|||
|
|
* false,该站点不存在。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 检查库位是否存在
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
检查库位名是否存在
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function checkSiteExistedBySiteId(siteId: string): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* siteId,库位名称。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,该库位存在。
|
|||
|
|
* false,该库位不存在。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 检查库区是否存在
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
检查库区名是否存在
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function checkSiteGroupExistedByGroupName(groupName: string): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* groupName,库区名称。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,该库区存在。
|
|||
|
|
* false,该库区不存在。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 根据条件获取库位
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据条件获取库位
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function findSitesByCondition(conditions: string,sort:string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* conditions,查询条件,模糊查询用'%'标记
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"area": "area01", //区域名
|
|||
|
|
"colNum": ["abc","'%bc'","'%b%'","'ab%'"],//列,带'%'表示模糊查询
|
|||
|
|
"content": ["abc","'%bc'","'%b%'","'ab%'"],//货物
|
|||
|
|
"depth": ["abc","'%bc'","'%b%'","'ab%'"],//深
|
|||
|
|
"filled": true, //是否有货
|
|||
|
|
"groupNames": ["abc","'%bc'","'%b%'","'ab%'"],//库区名
|
|||
|
|
"level": ["abc","'%bc'","'%b%'","'ab%'"],//货架层数
|
|||
|
|
"locked": true, //是否已锁定
|
|||
|
|
"lockedBy": "12345", //锁定的任务实例id
|
|||
|
|
"no": ["abc","'%bc'","'%b%'","'ab%'"],//库位编号
|
|||
|
|
"rowNum": ["abc","'%bc'","'%b%'","'ab%'"], //货架行
|
|||
|
|
"siteIds": ["abc","'%bc'","'%b%'","'ab%'"], //库位id
|
|||
|
|
"tags": ["abc","'%bc'","'%b%'","'ab%'"],//库位标签
|
|||
|
|
"type": 1 //库位类别,1物理库位,0逻辑库位
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
* sort,根据siteId排序:"ASC"顺序排序,"DESC"倒序排序
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
库位列表json
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[{
|
|||
|
|
"area": "area01", //区域
|
|||
|
|
"colNum": "abc-1",//列
|
|||
|
|
"content": "abc-1", //货物
|
|||
|
|
"depth": "abc-1",//深
|
|||
|
|
"disabled": true,//禁用
|
|||
|
|
"filled": 1,//占用
|
|||
|
|
"groupNames": "abc",//库区名
|
|||
|
|
"level": "abc-1",//层
|
|||
|
|
"locked": 1,//锁定
|
|||
|
|
"lockedBy": "123456",//锁定的任务id
|
|||
|
|
"no": "abc-1",//编号
|
|||
|
|
"preparing": true,//准备中
|
|||
|
|
"rowNum": "abc-1",//列
|
|||
|
|
"siteId": "abc-1",//库位id
|
|||
|
|
"tags": "abc-1",//标签
|
|||
|
|
"type": 1,//库位类型
|
|||
|
|
"working": true//工作中
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "area01",
|
|||
|
|
"colNum": "abc-2",
|
|||
|
|
"content": "abc-2",
|
|||
|
|
"depth": "abc-2",
|
|||
|
|
"disabled": true,
|
|||
|
|
"filled": 1,
|
|||
|
|
"groupNames": "abc",
|
|||
|
|
"level": "abc-2",
|
|||
|
|
"locked": 1,
|
|||
|
|
"lockedBy": "123456",
|
|||
|
|
"no": "abc-2",
|
|||
|
|
"preparing": true,
|
|||
|
|
"rowNum": "abc-2",
|
|||
|
|
"siteId": "abc-2",
|
|||
|
|
"tags": "abc-2",
|
|||
|
|
"type": 1,
|
|||
|
|
"working": true
|
|||
|
|
}]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果输出值没有满足条件的库位,方法将返回字符串"null"。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
* 例子
|
|||
|
|
|
|||
|
|
1.根据库位id查询库位是否有货
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function test(){
|
|||
|
|
var condition = {
|
|||
|
|
"siteIds": ["E1-1"],
|
|||
|
|
"filled": true
|
|||
|
|
}
|
|||
|
|
var site = jj.findSitesByCondition(JSON.stringify(condition),"ASC")
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2.查询某一库区内的所有库位
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function test(){
|
|||
|
|
var condition = {
|
|||
|
|
"groupNames": ["E1"]
|
|||
|
|
}
|
|||
|
|
var site = jj.findSitesByCondition(JSON.stringify(condition),"ASC")
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 根据条件获取有效库位
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据条件获取有效库位,即未禁用(disabled=0)并且同步成功(syncFailed=0)的库位。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function findAvailableSitesByCondition(conditions: string,sort:string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* conditions,查询条件,模糊查询用'%'标记
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"area": "area01", //区域名
|
|||
|
|
"colNum": ["abc","'%bc'","'%b%'","'ab%'"],//列,带'%'表示模糊查询
|
|||
|
|
"content": ["abc","'%bc'","'%b%'","'ab%'"],//货物
|
|||
|
|
"depth": ["abc","'%bc'","'%b%'","'ab%'"],//深
|
|||
|
|
"filled": true, //是否有货
|
|||
|
|
"groupNames": ["abc","'%bc'","'%b%'","'ab%'"],//库区名
|
|||
|
|
"level": ["abc","'%bc'","'%b%'","'ab%'"],//货架层数
|
|||
|
|
"locked": true, //是否已锁定
|
|||
|
|
"lockedBy": "12345", //锁定的任务实例id
|
|||
|
|
"no": ["abc","'%bc'","'%b%'","'ab%'"],//库位编号
|
|||
|
|
"rowNum": ["abc","'%bc'","'%b%'","'ab%'"], //货架行
|
|||
|
|
"siteIds": ["abc","'%bc'","'%b%'","'ab%'"], //库位id
|
|||
|
|
"tags": ["abc","'%bc'","'%b%'","'ab%'"],//库位标签
|
|||
|
|
"type": 1 //库位类别,1物理库位,0逻辑库位
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
* sort,根据siteId排序:"ASC"顺序排序,"DESC"倒序排序
|
|||
|
|
* 输出参数
|
|||
|
|
* 包含库位列表的 JSON 字符串,转换成 JSON 对象之后的示例数据如下所示:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[{
|
|||
|
|
"area": "area01", //区域
|
|||
|
|
"colNum": "abc-1",//列
|
|||
|
|
"content": "abc-1", //货物
|
|||
|
|
"depth": "abc-1",//深
|
|||
|
|
"disabled": true,//禁用
|
|||
|
|
"filled": 1,//占用
|
|||
|
|
"groupNames": "abc",//库区名
|
|||
|
|
"level": "abc-1",//层
|
|||
|
|
"locked": 1,//锁定
|
|||
|
|
"lockedBy": "123456",//锁定的任务id
|
|||
|
|
"no": "abc-1",//编号
|
|||
|
|
"preparing": true,//准备中
|
|||
|
|
"rowNum": "abc-1",//列
|
|||
|
|
"siteId": "abc-1",//库位id
|
|||
|
|
"tags": "abc-1",//标签
|
|||
|
|
"type": 1,//是否物理库位
|
|||
|
|
"working": true//工作中
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "area01",
|
|||
|
|
"colNum": "abc-2",
|
|||
|
|
"content": "abc-2",
|
|||
|
|
"depth": "abc-2",
|
|||
|
|
"disabled": true,
|
|||
|
|
"filled": 1,
|
|||
|
|
"groupNames": "abc",
|
|||
|
|
"level": "abc-2",
|
|||
|
|
"locked": 1,
|
|||
|
|
"lockedBy": "123456",
|
|||
|
|
"no": "abc-2",
|
|||
|
|
"preparing": true,
|
|||
|
|
"rowNum": "abc-2",
|
|||
|
|
"siteId": "abc-2",
|
|||
|
|
"tags": "abc-2",
|
|||
|
|
"type": 1,
|
|||
|
|
"working": true
|
|||
|
|
}]
|
|||
|
|
```
|
|||
|
|
* 如果没有符合条件的库位,则返回值为 `"null"` ,而不是 `[]` 。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 根据扩展字段获取有效库位
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据扩展字段获取有效库位,即未禁用(disabled=0)并且同步成功(syncFailed=0)的库位。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function findAvailableSitesByExtFields(conditions: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* conditions,查询条件,模糊查询用'%'标记
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[
|
|||
|
|
{
|
|||
|
|
"attributeName": "ext5",
|
|||
|
|
"attributeValue": "ex%"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"attributeName": "ext10",
|
|||
|
|
"attributeValue": "%ex"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"attributeName": "ex100",
|
|||
|
|
"attributeValue": "ex3"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"attributeName": "ex101",
|
|||
|
|
"attributeValue": "%ex"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"attributeName": "filled", // 是否占用
|
|||
|
|
"attributeValue": "0"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"attributeName": "locked", // 是否锁定
|
|||
|
|
"attributeValue": "0"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"attributeName": "area", // 区域
|
|||
|
|
"attributeValue": "new"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"attributeName": "groupName", // 库区名
|
|||
|
|
"attributeValue": "CYJ-IN-UP"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"attributeName": "siteId", // 库位id
|
|||
|
|
"attributeValue": "CYJ-IN-01"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
* 请求示例
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
var conditions = [{"attributeName":"ext5", "attributeValue":"ex%"},{"attributeName":"ext10", "attributeValue":"%ex"},{"attributeName":"ex100", "attributeValue":"ex3"},{"attributeName":"ex101", "attributeValue":"%ex"},{"attributeName":"filled", "attributeValue":"0"},{"attributeName":"locked", "attributeValue":"0"},{"attributeName":"area", "attributeValue":"new"},{"attributeName":"groupName", "attributeValue":"CYJ-IN-UP"},{"attributeName":"siteId", "attributeValue":"CYJ-IN-01"}];
|
|||
|
|
var data = jj.findAvailableSitesByExtFields(JSON.stringify(conditions));
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 库位列表json
|
|||
|
|
* 包含库位列表的 JSON 字符串,转换成 JSON 对象之后的示例数据如下所示:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[
|
|||
|
|
{
|
|||
|
|
"area": "new",
|
|||
|
|
"content": null,
|
|||
|
|
"filled": 1,
|
|||
|
|
"groupName": null,
|
|||
|
|
"locked": 0,
|
|||
|
|
"lockedBy": null,
|
|||
|
|
"siteId": "CYJ-IN-01",
|
|||
|
|
"siteName": null,
|
|||
|
|
"tags": "CYJ-IN-UP",
|
|||
|
|
"type": null
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
* 如果没有符合条件的库位,则返回值为 `"null"` ,而不是 `[]` 。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 根据条件更新库位
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据条件更新库位
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function updateSitesByCondition(conditions: string,values:string): number
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* conditions,更新条件,模糊查询用'%'标记
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"area": "area01", //区域名
|
|||
|
|
"colNum": ["abc","'%bc'","'%b%'","'ab%'"],//列,带'%'表示模糊查询
|
|||
|
|
"content": ["abc","'%bc'","'%b%'","'ab%'"],//货物
|
|||
|
|
"depth": ["abc","'%bc'","'%b%'","'ab%'"],//深
|
|||
|
|
"filled": true, //是否有货
|
|||
|
|
"groupNames": ["abc","'%bc'","'%b%'","'ab%'"],//库区名
|
|||
|
|
"level": ["abc","'%bc'","'%b%'","'ab%'"],//货架层数
|
|||
|
|
"locked": true, //是否已锁定
|
|||
|
|
"lockedBy": "12345", //锁定的任务实例id
|
|||
|
|
"no": ["abc","'%bc'","'%b%'","'ab%'"],//库位编号
|
|||
|
|
"rowNum": ["abc","'%bc'","'%b%'","'ab%'"], //货架行
|
|||
|
|
"siteIds": ["abc","'%bc'","'%b%'","'ab%'"], //库位id
|
|||
|
|
"tags": ["abc","'%bc'","'%b%'","'ab%'"],//库位标签
|
|||
|
|
"type": 1 //库位类别,1物理库位,0逻辑库位
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
* values,修改的字段
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"area": "abc", //区域
|
|||
|
|
"colNum": "4", //列
|
|||
|
|
"content": "abc", //货物
|
|||
|
|
"depth": "2", //深
|
|||
|
|
"disabled": true, //禁用
|
|||
|
|
"filled": true, //有货
|
|||
|
|
"groupName": "abc", //库区名
|
|||
|
|
"level": "3", //层
|
|||
|
|
"locked": true, //锁定
|
|||
|
|
"lockedBy": "12345", //锁定的任务id
|
|||
|
|
"no": "10", //编号
|
|||
|
|
"preparing": true, //准备中
|
|||
|
|
"rowNum": "5", //行
|
|||
|
|
"siteId": "site_01", //库位名
|
|||
|
|
"tags": "abc", //标签
|
|||
|
|
"type": 1, //是否物理库位
|
|||
|
|
"working": true //工作中
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
* 输出参数
|
|||
|
|
* 更新成功的数据库记录行数
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
* 例子
|
|||
|
|
|
|||
|
|
1.根据库位id查询有货未加锁的库位并进行加锁
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function test(){
|
|||
|
|
var taskId = jj.currentTimeMillis()
|
|||
|
|
var condition = {
|
|||
|
|
"siteIds": ["E1-1"],
|
|||
|
|
"filled": true,
|
|||
|
|
"disabled": false,
|
|||
|
|
"locked": false
|
|||
|
|
}
|
|||
|
|
var value = {
|
|||
|
|
"siteIds": ["E1-1"],
|
|||
|
|
"filled": true,
|
|||
|
|
"locked": true,
|
|||
|
|
"lockedBy": taskId+""
|
|||
|
|
}
|
|||
|
|
var site = jj.updateSitesByCondition(JSON.stringify(condition),JSON.stringify(value))
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2.更新库区内的有货未加锁的所有库位并进行加锁
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function test(){
|
|||
|
|
var taskId = jj.currentTimeMillis()
|
|||
|
|
var condition = {
|
|||
|
|
"groupName": ["E1"],
|
|||
|
|
"filled": true,
|
|||
|
|
"disabled": false,
|
|||
|
|
"locked": false
|
|||
|
|
}
|
|||
|
|
var value = {
|
|||
|
|
"groupName": ["E1"],
|
|||
|
|
"filled": true,
|
|||
|
|
"locked": true,
|
|||
|
|
"lockedBy": taskId+""
|
|||
|
|
}
|
|||
|
|
var site = jj.updateSitesByCondition(JSON.stringify(condition),JSON.stringify(value))
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 根据条件更新库位扩展字段值
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据库位id和扩展字段名更新扩展字段的值
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function updateSiteExtFieldByIdAndExtFieldName(conditions: string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* conditions,库位id、扩展字段名和更新值
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[
|
|||
|
|
{
|
|||
|
|
siteId: "Loc-01",
|
|||
|
|
extFieldName: "test",
|
|||
|
|
updateValue: "111"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
siteId: "Loc-02",
|
|||
|
|
extFieldName: "test",
|
|||
|
|
updateValue: "222"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
siteId: "Loc-03",
|
|||
|
|
extFieldName: "test",
|
|||
|
|
updateValue: "333"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常
|
|||
|
|
* 例子
|
|||
|
|
* 更新Loc-01、Loc-02、Loc-03的扩展字段test的值分别为111、222、333
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function test(){
|
|||
|
|
var conditions = [
|
|||
|
|
{
|
|||
|
|
siteId: "Loc-01",
|
|||
|
|
extFieldName: "test",
|
|||
|
|
updateValue: "111"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
siteId: "Loc-02",
|
|||
|
|
extFieldName: "test",
|
|||
|
|
updateValue: "222"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
siteId: "Loc-03",
|
|||
|
|
extFieldName: "test",
|
|||
|
|
updateValue: "333"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
|
|||
|
|
jj.updateSiteExtFieldByIdAndExtFieldName(JSON.stringify(conditions));
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 全局缓存数据
|
|||
|
|
|
|||
|
|
#### 获取缓存数据
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
**由于 RDS 的脚本里,无法使用全局变量,我们推荐如下方式缓存变量值。**
|
|||
|
|
|
|||
|
|
根据已缓存的 key 获取缓存数据。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getCacheParam(key: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* key,缓存键。
|
|||
|
|
* 输出参数
|
|||
|
|
* string,JSON 格式。如果数据不存在,将返回 null。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 缓存数据
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
将参数中的 key 和 value 键值对在系统中进行缓存,缓存的数据将持久化,之后可通过 getCacheParam 方法根据 key 获取对应的 value。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function putCacheParam(key: string, value: string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* key,缓存键。
|
|||
|
|
* value,缓存值。如果要缓存一个对象,需要先序列化为 JSON 字符串。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 异常
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
|
|||
|
|
#### 删除缓存数据
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
删除缓存数据。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function clearCacheParam(key: string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* key,缓存键。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
本方法无输出参数。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 获取所有的缓存数据
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取缓存块的全部缓存数据,并以 JSON 格式返回。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getAllCacheParams(): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 输出参数
|
|||
|
|
* string,JSON 格式。如果数据不存在,将返回空串。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
## 手持端相关
|
|||
|
|
|
|||
|
|
#### 通知手持端(工位/岗位)
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
可以给手持端的指定工位或者岗位发送弹框通知。该弹框可以人工确认。如无人工确认,可配置保持时间,超过保持时间,弹框自动消失。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function noticeOperator(workTypes: string, workStations: string, content: string, needConfirm: boolean, keepTime: number): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* workTypes,string 类型,要通知的岗位。多岗位间逗号分隔。
|
|||
|
|
* workStations,string 类型,要通知的工位。多工位间逗号分隔。
|
|||
|
|
* content,string 类型,通知的内容。
|
|||
|
|
* needConfirm,boolean类型,表示是否需要手持端用户点击确认后,通知弹框才会消失。
|
|||
|
|
* keepTime,number类型,表示通知弹框在手持端的保持时间,单位秒,超过这个时间弹框将消失。
|
|||
|
|
|
|||
|
|
**注意**:本方法采用异步的方式发送群发通知。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
本方法输出参数为空。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 通知手持端用户
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
可以给手持端的指定用户发送弹框通知。该弹框可以人工确认。如无人工确认,可配置保持时间,超过保持时间,弹框自动消失。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function noticeOperatorByUser(userNames: string, content: string, needConfirm: boolean, keepTime: number): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* userNames,string 类型,要通知的用户。多用户间逗号分隔。
|
|||
|
|
* content,string 类型,通知的内容。
|
|||
|
|
* needConfirm,boolean类型,表示是否需要手持端用户点击确认后,通知弹框才会消失。
|
|||
|
|
* keepTime,number类型,表示通知弹框在手持端的保持时间,单位秒,超过这个时间弹框将消失。
|
|||
|
|
|
|||
|
|
**注意**:本方法采用异步的方式发送群发通知。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
本方法输出参数为空。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 通过menuId修改手持端按钮的label
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
通过menuId定位修改手持端对应按钮的label(重启之后会失效,恢复到初始状态)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function setPadLabelByMenuId(menuId: String, label: String):void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* menuId,string 类型,要更改的手持端任务按钮的menuId
|
|||
|
|
* label,string 类型,将手持端按钮上标签的内容修改为label中的内容
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
本方法输出参数为空。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 通过menuId修改手持端按钮的背景色
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
通过menuId修改手持端按钮的背景色(重启之后会失效,恢复到初始状态)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function setPadBackgroundByMenuId(menuId: String, background: String):void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* menuId,string 类型,要更改的手持端任务按钮的menuId
|
|||
|
|
* background,string 类型,将手持端按钮上标签的背景色修改为background中的颜色(16进制的RGB格式)
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
本方法输出参数为空。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
#### 通过menuId设置手持端按钮是否禁用
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
通过menuId设置手持端按钮是否禁用(重启之后会失效,恢复到初始状态)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function setPadDisableByMenuId(menuId: String, disable: boolean):void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* menuId,string 类型,要更改的手持端任务按钮的menuId
|
|||
|
|
* disable,布尔类型,手持端按钮是否设置为禁用
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
本方法输出参数为空。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法抛出异常。
|
|||
|
|
|
|||
|
|
## 多线程及时间
|
|||
|
|
|
|||
|
|
#### 休眠指定时间
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是阻塞方法,使当前线程休眠指定时间。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function sleep(ms: number): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ms,number 类型,休眠的时间,单位毫秒。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
本方法输出参数为空。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 获取当前系统时间戳
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取当前的系统时间戳。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function currentTimeMillis(): number
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
无
|
|||
|
|
* 输出参数
|
|||
|
|
number 类型,当前系统的毫秒时间戳。
|
|||
|
|
|
|||
|
|
#### 获取当前时间
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取当前系统的格式化时间。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function nowDate(): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
字符串:按照 `yyyy-MM-dd HH:mm:ss` 格式。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 将时间戳转为日期格式
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
将时间戳转为格式化的日期时间。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function timeMillisFormat(time: number): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* time,number 类型,当前毫秒时间戳。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
字符串:按照 `yyyy-MM-dd HH:mm:ss` 格式。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
## HTTP 请求
|
|||
|
|
|
|||
|
|
#### 发送 POST 请求,参数为 JSON 格式
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是阻塞方法,发送 POST 请求,参数为 JSON 格式。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function requestPost(url: string, param: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* url,string 类型,请求的 URL。
|
|||
|
|
* param,string 类型,JSON 字符串,请求的参数。
|
|||
|
|
* 输出参数
|
|||
|
|
* 若请求成功:返回响应的 JSON 字符串。
|
|||
|
|
* 若请求失败:null。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会不抛出异常。
|
|||
|
|
|
|||
|
|
#### 发送 POST 请求,参数为 XML 格式
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是阻塞方法,发送 POST 请求,参数为 XML格式。在本方法中会自动将传入的 JSON 格式字符串转化为 XML 格式
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function requestPostXml(url: string, param: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* url,string 类型,请求的 URL。
|
|||
|
|
* param,string 类型,JSON 字符串,请求的参数。
|
|||
|
|
* 输出参数
|
|||
|
|
* 若请求成功:将响应的 XML 格式 字符串 转化为 JSON 格式并返回。
|
|||
|
|
* 若请求失败:null。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会不抛出异常。
|
|||
|
|
|
|||
|
|
#### 发送 PUT请求,参数为 JSON 格式
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是阻塞方法,发送 PUT请求,参数为 JSON 格式。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function requestPutJson(url: string, param: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* url,string 类型,请求的 URL。
|
|||
|
|
* param,string 类型,JSON 字符串,请求的参数。
|
|||
|
|
* 输出参数
|
|||
|
|
* 若请求成功:返回响应的 JSON 字符串。
|
|||
|
|
* 若请求失败:null。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会不抛出异常。
|
|||
|
|
|
|||
|
|
#### 发送 GET 请求
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是阻塞方法,发送 GET 请求。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function requestGet(url: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
url,string 类型,请求的 URL。
|
|||
|
|
* 输出参数
|
|||
|
|
* 若请求成功:请求返回的字符串。
|
|||
|
|
* 若请求失败:null。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会不抛出异常。
|
|||
|
|
|
|||
|
|
#### 设置请求头
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是阻塞方法,设置请求头,设置一次之后,对所有请求都有效。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function setHeader(key: string, value: string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
key,string 类型,请求头的key。
|
|||
|
|
|
|||
|
|
value,string 类型,请求头的value。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
|
|||
|
|
#### 发送 POST 请求
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是阻塞方法,发送 `POST` 请求,参数为 `JSON` 格式。可设置请求媒体(`MediaType`),可设置请求头
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function requestHttpPost(url: String, param: String, headParam: String, mediaType: String):String
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
url: 请求的 URL
|
|||
|
|
|
|||
|
|
param: 请求的入参 json 字符串
|
|||
|
|
|
|||
|
|
headParam: 请求头,如有传 json 字符串,无传空字符串
|
|||
|
|
|
|||
|
|
mediaType:请求类型默认 application/json,可有如下选择 `JSON`、`JAVASCRIPT`、`HTML`、`XML`、`XWWWFORMURLENCODED` 分别表示:`application/json`、`application/javascript`、`text/html`、`application/xml`、`application/x-www-form-urlencoded`
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
成功返回 json 字符串,失败返回 null
|
|||
|
|
|
|||
|
|
注意:setHeader 设置对此方法也有效
|
|||
|
|
|
|||
|
|
#### 发送 GET 请求
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是阻塞方法,发送 `GET` 请求,参数为 `JSON` 格式。可设置请求头
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function requestHttpGet(url: String, headParam: String):String
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
url: 请求的 URL
|
|||
|
|
|
|||
|
|
headParam: 请求头,如有传 json 字符串,无传空字符串
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
成功返回 json 字符串,失败返回 null
|
|||
|
|
|
|||
|
|
注意:setHeader 设置对此方法也有效
|
|||
|
|
|
|||
|
|
#### 发送 PUT 请求
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法是阻塞方法,发送 `PUT` 请求,参数为 `JSON` 格式。可设置请求媒体(`MediaType`),可设置请求头
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function requestHttpPut(url: String, headParam: String, mediaType: String, param: String)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
url: 请求的 URL
|
|||
|
|
|
|||
|
|
headParam: 请求头,如有传 json 字符串,无传空字符串
|
|||
|
|
|
|||
|
|
mediaType:请求类型默认 application/json,可有如下选择 `JSON`、`JAVASCRIPT`、`HTML`、`XML`、`XWWWFORMURLENCODED` 分别表示:`application/json`、`application/javascript`、`text/html`、`application/xml`、`application/x-www-form-urlencoded`
|
|||
|
|
|
|||
|
|
param: 请求的入参 json 字符串
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
成功返回 json 字符串,失败返回 null
|
|||
|
|
|
|||
|
|
注意:setHeader 设置对此方法也有效
|
|||
|
|
|
|||
|
|
## 日志记录
|
|||
|
|
|
|||
|
|
#### 获取日志打印对象
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取日志打印对象,可用于将指定信息打印进日志文件。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getLogger(): Logger
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
* 输出参数是日志对象,定义如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
interface Logger {
|
|||
|
|
info: (message: string) => void;
|
|||
|
|
debug: (message: string) => void;
|
|||
|
|
warn: (message: string) => void;
|
|||
|
|
error: (message: string, e: any) => void;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
调用方法:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
jj.getLogger().info("hello world");
|
|||
|
|
jj.getLogger().error("there is an error.", "");
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
使用以上方法,可在日志文件中打印指定记录。
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 在脚本页面下打印日志
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
在 RDS 脚本页面下,打印日志信息。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function scriptLog(level: string, functionName: string, content: any): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* level,string 类型,日志等级,可选 “INFO”,“ERROR”。
|
|||
|
|
* functionName,string 类型,一般填入所在函数的签名,用于快速定位信息。
|
|||
|
|
* content,any 类型,日志信息。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
## 注册方法
|
|||
|
|
|
|||
|
|
**以下方法,需要在 boot() 函数中调用。**
|
|||
|
|
|
|||
|
|
#### 定时执行脚本方法
|
|||
|
|
|
|||
|
|
*需求:脚本方法能传参。*
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
将脚本方法设置为定时执行。
|
|||
|
|
|
|||
|
|
**注意,该方法需要在 boot() 方法中调用。**
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function defineScheduledFunctions(isParallel: boolean, delay: number, period: number, functionName: string, args: any[]): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* isParallel:boolean 类型,是否并行。
|
|||
|
|
* delay:number 类型,启动延迟执行的时间,单位毫秒。
|
|||
|
|
* period:number类型,脚本方法的周期,单位毫秒。
|
|||
|
|
* functionName:string 类型,周期执行的方法名。
|
|||
|
|
* args:周期执行的方法的参数。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 注册系统启动初始化方法
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
注册系统启动即执行的初始化方法。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function defineInitDataFunctions(functionName:string):void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
functionName:注册的方法名。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 注册按钮
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
向rds注册管理后台可见的按钮。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function registerButton(label: string, remark: string, scriptFunction: string, level: string, type: Number): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* label,string 类型,按钮名。
|
|||
|
|
* remark,string 类型,按钮备注。
|
|||
|
|
* scriptFunction,string 类型,点击按钮触发的方法名,**注意该方法不能带参数**。
|
|||
|
|
* level,string 类型,按钮等级,用颜色区分。blue:蓝色,yellow:黄色 ,red:红色。
|
|||
|
|
* type,Number类型,0: 普通按钮 1: 导出按钮,可选
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 注册 Web 接口方法
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
在脚本中注册接口方法。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function registerHandler(method: string, path: string, callback: string, auth: boolean): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* method:HTTP 请求方式,支持 POST,GET。
|
|||
|
|
* path:接口的 URL 路径。
|
|||
|
|
* callback:处理接口的脚本方法名。
|
|||
|
|
* auth:调用此接口是否需要登录。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
#### 注册事件处理器
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
注册事件处理器,可处理天风任务“触发任务事件”块所抛出的事件。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function registerTaskEventFunction(functionName: string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* functionName:注册的方法名。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
|
|||
|
|
* **注意事项**
|
|||
|
|
|
|||
|
|
**若希望处理“触发任务事件”块抛出的事件,需要:**
|
|||
|
|
* **在脚本中实现与“触发任务事件”块的“事件名”参数同名的函数。**
|
|||
|
|
* **脚本函数的签名为:**
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function functionName(param: string): void
|
|||
|
|
```
|
|||
|
|
* **在 boot() 方法中,调用 registerTaskEventFunction 方法将脚本函数注册为事件处理器。**
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
## 业务配置
|
|||
|
|
|
|||
|
|
#### 获取 application-biz.yml 的配置
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取 application-biz.yml 的配置。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getApplicationBusinessConfigValue(key: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
key,string 类型,是 application-biz.yml 中所要获取配置的字段名。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
JSON 字符串。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
|
|||
|
|
## 数据库
|
|||
|
|
|
|||
|
|
#### 执行 SQL 语句
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
通过 SQL 命令操作 RDS 系统数据库,可用于创建自定义数据表。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function jdbcExecuteSql(sql: string): Boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
sql:string 类型,创建表的 SQL 语句。示例如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
CREATE TABLE `test` (`id` bigint NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8mb4
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输出参数:
|
|||
|
|
* true, SQL 命令执行成功。
|
|||
|
|
* false, SQL 命令执行失败。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常,方法内捕获到异常后,按执行失败的信息返回处理。
|
|||
|
|
|
|||
|
|
#### 使用 SQL 查询数据
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
本方法可以使用自定义的 SQL 查询数据,并返回指定字段。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function jdbcQuery(sql: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
sql:string 类型,SQL 语句。
|
|||
|
|
* 输出参数是 JSON 格式的字符串。
|
|||
|
|
|
|||
|
|
假设查询 sql 参数为:sql="select id, name, age from person\_table"
|
|||
|
|
|
|||
|
|
则返回的结果,经 JSON 反序列化后,数据如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[
|
|||
|
|
{
|
|||
|
|
"id": "1",
|
|||
|
|
"name": "lilei",
|
|||
|
|
"age": 14
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
#### 更新数据
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
更新数据记录。更新内容和目标条件,都支持动态扩展,即可执行动态拼接的 SQL 语句。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function jdbcInsertOrUpdate(sql: string, ...sqlParams: any): number
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* sql,string 类型,SQL 语句字符串。
|
|||
|
|
* sqlParams,any 类型,可动态扩展的参数。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
number 类型:0 表示更新失败,大于 0 的数字表示更新的记录数目。
|
|||
|
|
* 使用示例:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
const sql = "update employee set age = 25 where name = ? and id = ?"
|
|||
|
|
jj.jdbcInsertOrUpdate(sql, "bob", 123)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### 查询数据数量
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
执行一条自定义 SQL 语句,以查询满足条件数据的数量。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function jdbcQueryCount(sql: string): number | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* sql,string 类型,SQL 语句字符串。**注意,只能使用 select count 语句。**
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
select count(1) from person where age = 20
|
|||
|
|
```
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
number 类型,null 表示查询失败,其他数字表示查询到的记录数目。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
## Modbus Tcp
|
|||
|
|
|
|||
|
|
#### Func01 读取线圈量
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取线圈量,功能码 01。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readCoilStatus(ip: string, port: number, slaveId: number, offset: number): boolean | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 地址。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* boolean,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Func02 读取线圈量
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取线圈量,功能码 02。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readInputStatus(ip: string, port: number, slaveId: number, offset: number): boolean | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 地址。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* boolean,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Func03 读取保持寄存器
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取保持寄存器,功能码 03。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readHoldingRegister(ip: string, port: number, slaveId: number, offset: number, dataType: number): number | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 地址。
|
|||
|
|
* dataType,number 类型,2:无符号整形,3:有符号整形。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* number,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Func04 读取输入寄存器
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取只读输入寄存器,功能码 04。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readInputRegister(ip: string, port: number, slaveId: number, offset: number, dataType: number): number | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 地址。
|
|||
|
|
* dataType,number 类型,2:无符号整形,3:有符号整形。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* number,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Func01 批量读取线圈量
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取线圈量多个连续地址值,并以数组的形式返回其中的值,功能码 01。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function batchReadCoilStatus(ip: string, port: number, slaveId: number, offset: number, len: number): Array<boolean> | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 首地址。
|
|||
|
|
* len,number 类型,Modbus 地址数量。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* Array,读取成功后,返回结果数组。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Func02 批量读取离散输入
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取离散输入多个连续地址值,并以数组的形式返回其中的值,功能码 02。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function batchReadInputStatus(ip: string, port: number, slaveId: number, offset: number, len: number): Array<boolean> | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 首地址。
|
|||
|
|
* len,number 类型,Modbus 地址数量。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* Array,读取成功后,返回结果数组。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Func03 批量读取保持寄存器
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取保持寄存器多个连续地址值,并以数组的形式返回其中的值,功能码 03。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function batchReadHoldingRegisters(ip: string, port: number, slaveId: number, offset: number, len: number): Array<number> | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 首地址。
|
|||
|
|
* len,number 类型,Modbus 地址数量。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* Array,读取成功后,返回结果数组。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Func04 批量读取输入寄存器
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取输入寄存器多个连续地址值,并以数组的形式返回其中的值,功能码 04。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function batchReadInputRegisters(ip: string, port: number, slaveId: number, offset: number, len: number): Array<number> | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 首地址。
|
|||
|
|
* len,number 类型,Modbus 地址数量。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* Array,读取成功后,返回结果数组。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Func05 写入线圈量
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 写入线圈量,功能码 05。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeCoilStatus(ip: string, port: number, slaveId: number, offset: number, value: boolean): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 地址。
|
|||
|
|
* value,boolean 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,写入成功。
|
|||
|
|
* false,写入失败。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Func06 写入保持寄存器
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 写入保持寄存器,功能码 06。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeHoldingRegister(ip: string, port: number, slaveId: number, offset: number, dataType: number, value: number): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 地址。
|
|||
|
|
* dataType,number 类型,2:无符号整形,3:有符号整形。
|
|||
|
|
* value,number 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,写入成功。
|
|||
|
|
* false,写入失败。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Func0f 批量写入线圈量
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 写入线圈量多个连续地址,功能码 0f。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function batchWriteCoilStatus(ip: string, port: number, slaveId: number, offset: number, value: Array<boolean>): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 地址。
|
|||
|
|
* value,boolean 数组类型,多个需写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,写入成功。
|
|||
|
|
* false,写入失败。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Func10 批量写入保持寄存器
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 写入保持寄存器多个连续地址,功能码 10。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function batchWriteHoldingRegister(ip: string, port: number, slaveId: number, offset: number, value: Array<number>): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* offset,number 类型,Modbus 地址。
|
|||
|
|
* value,number 数组类型,多个需写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,写入成功。
|
|||
|
|
* false,写入失败。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### 通用写入单个地址
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 写入单个地址,通过参数 type 指定读取的地址类型。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeSingleModbusValue(ip: string, port: number, slaveId: number, type: string, offset: number, value: number): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* type,string类型,表示地址类型,可选择‘0x’,‘1x’,‘3x’,‘4x’,和功能码的对应关系如下:
|
|||
|
|
|
|||
|
|
0x:对应功能码0x01,表示读线圈。
|
|||
|
|
1x:对应功能码0x02,表示读离散输入。
|
|||
|
|
3x:对应功能码0x04,表示读输入寄存器。
|
|||
|
|
4x:对应功能码0x03,表示读保持寄存器。
|
|||
|
|
* offset,number 类型,表示Modbus 地址。
|
|||
|
|
* value,number 类型,表示写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,写入成功。
|
|||
|
|
* false,写入失败。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### 通用写入多个地址
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 写入单个地址,通过参数 type 指定读取的地址类型。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeBatchModbusValue(ip: string, port: number, slaveId: number, type: string, offset: number, values: number[]): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* type,string类型,表示地址类型,可选择‘0x’,‘1x’,‘3x’,‘4x’,和功能码的对应关系如下:
|
|||
|
|
|
|||
|
|
0x:对应功能码0x01,表示读线圈。
|
|||
|
|
1x:对应功能码0x02,表示读离散输入。
|
|||
|
|
3x:对应功能码0x04,表示读输入寄存器。
|
|||
|
|
4x:对应功能码0x03,表示读保持寄存器。
|
|||
|
|
* offset,number 类型,表示Modbus 地址。
|
|||
|
|
* values,number 数组类型,表示写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,写入成功。
|
|||
|
|
* false,写入失败。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### 通过实例名称写入单个地址
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 写入单个地址,通过参数 name 指定已经配置的实例名称。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeSingleModbusValueByInstanceName(name: string, offset: number, value: number): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* name,string 类型,已经配置的实例名称。
|
|||
|
|
* offset,number 类型,表示 Modbus 地址。
|
|||
|
|
* value,number 类型,表示写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,写入成功。
|
|||
|
|
* false,写入失败。
|
|||
|
|
* 异常
|
|||
|
|
如果没有配置 modbus 实例,则会抛出初始化异常。
|
|||
|
|
|
|||
|
|
#### 通过实例名称写入多个地址
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 写入多个地址,通过参数 name 指定已经配置的实例名称。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeBatchModbusValueByInstanceName(name: string, offset: number, values: number[]): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* name,string 类型,已经配置的实例名称。
|
|||
|
|
* offset,number 类型,表示 Modbus 地址。
|
|||
|
|
* values,number 数组类型,表示写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,写入成功。
|
|||
|
|
* false,写入失败。
|
|||
|
|
* 异常
|
|||
|
|
如果没有配置 modbus 实例,则会抛出初始化异常。
|
|||
|
|
|
|||
|
|
#### 通用读取单个地址
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取单个地址,通过参数 type 指定读取的地址类型。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readSingleModbusValue(ip: string, port: number, slaveId: number, type: string, offset: number): number | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* slaveId,number 类型,从机 slave ID。
|
|||
|
|
* type,string类型,表示地址类型,可选择‘0x’,‘1x’,‘3x’,‘4x’,和功能码的对应关系如下:
|
|||
|
|
|
|||
|
|
0x:对应功能码0x01,表示读线圈。
|
|||
|
|
1x:对应功能码0x02,表示读离散输入。
|
|||
|
|
3x:对应功能码0x04,表示读输入寄存器。
|
|||
|
|
4x:对应功能码0x03,表示读保持寄存器。
|
|||
|
|
* offset,number 类型,Modbus 地址。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* number,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### 通用读取多个地址
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取多个地址,通过参数 name 指定已经配置的实例名称。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readBatchModbusValue(ip: string, port: number, slaveId: number, type: string, offset: number, length: number): number[] | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip: string 类型,从机 IP。
|
|||
|
|
* port: number 类型,从机端口。
|
|||
|
|
* slaveId: number 类型,从机 slave ID。
|
|||
|
|
* type: string类型,表示地址类型,可选择‘0x’,‘1x’,‘3x’,‘4x’,和功能码的对应关系如下:
|
|||
|
|
|
|||
|
|
0x:对应功能码0x01,表示读线圈。
|
|||
|
|
1x:对应功能码0x02,表示读离散输入。
|
|||
|
|
3x:对应功能码0x04,表示读输入寄存器。
|
|||
|
|
4x:对应功能码0x03,表示读保持寄存器。
|
|||
|
|
* offset: number 类型,Modbus 地址。
|
|||
|
|
* length: number 类型,读取的数据长度。
|
|||
|
|
* 输出参数
|
|||
|
|
* null: 读取失败。
|
|||
|
|
* number[]: 读取成功的返回值数组。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### 通过实例名称读取单个地址
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取单个地址,通过参数 name 指定已经配置的实例名称。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readSingleModbusValueByInstanceName(name: string, offset: number): number | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* name: string 类型,配置的唯一实例名称。
|
|||
|
|
* offset: number 类型,Modbus 地址。
|
|||
|
|
* 输出参数
|
|||
|
|
* null: 读取失败。
|
|||
|
|
* number: 读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
如果没有配置 modbus 实例,则会抛出初始化异常。
|
|||
|
|
|
|||
|
|
#### 通过实例名称读取多个地址
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Modbus 读取多个地址,通过参数 name 指定已经配置的实例名称。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readBatchModbusValueByInstanceName(name: string, offset: number, length: number): number[] | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* name: string 类型,配置的唯一实例名称。
|
|||
|
|
* offset: number 类型,Modbus 地址。
|
|||
|
|
* length: number 类型,读取的数据长度。
|
|||
|
|
* 输出参数
|
|||
|
|
* null: 读取失败。
|
|||
|
|
* number[]: 读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
如果没有配置 modbus 实例,则会抛出初始化异常。
|
|||
|
|
|
|||
|
|
## OPC-UA
|
|||
|
|
|
|||
|
|
#### OPC 读取数值
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
读取 OPC server 中的某个地址位的值。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readOpcValue(address: string | number): any
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* address,string 类型,读取的地址位。
|
|||
|
|
* 输出参数
|
|||
|
|
* 读到的值。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
读取失败会抛出 RuntimeException 异常 “readOpcValue error”。
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readOpcValue(namespaceIndex:number, address: string | number): any
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* namespaceIndex, number类型,命名空间索引
|
|||
|
|
* address,string 类型,读取的地址位。地址类型 g=550e8400-e29b-41d4-a716-446655440000: g= 表示地址类型是 UUID;i=1008: i= 表示地址类型是 number;b=EAk=: b= 表示地址类型是 Opaque;s=1009: s= 表示地址类型是字符串
|
|||
|
|
* 输出参数
|
|||
|
|
* 读到的值。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
读取失败会抛出 RuntimeException 异常 “readOpcValue error”。
|
|||
|
|
|
|||
|
|
#### OPC 订阅方式读取数值
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
通过订阅的方式,读取 OPC server 中的某个地址位的值。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readOpcValueBySubscription(namespaceIndex: number, address: string): any
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* namespaceIndex,number 类型,命名空间索引。
|
|||
|
|
* address,string 类型,读取的地址位。地址类型 g=550e8400-e29b-41d4-a716-446655440000: g= 表示地址类型是 UUID;i=1008: i= 表示地址类型是 number;b=EAk=: b= 表示地址类型是 Opaque;s=1009: s= 表示地址类型是字符串
|
|||
|
|
* 输出参数
|
|||
|
|
* 读到的值。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
读取失败会抛出 RuntimeException 异常 “readOpcValue error”。
|
|||
|
|
|
|||
|
|
#### OPC 写入数值
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
读取 OPC server 中的某个地址位的值。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeOpcValue(address: string | number, value: any): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* address,string 类型,表示写入的地址。
|
|||
|
|
* value,any 类型, 写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
读取 OPC server 中的某个地址位的值。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeOpcValue(namespaceIndex: number,address: string | number, value: any): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* number类型,命名空间索引
|
|||
|
|
* address,string 类型,表示写入的地址。地址类型 g=550e8400-e29b-41d4-a716-446655440000: g= 表示地址类型是 UUID;i=1008: i= 表示地址类型是 number;b=EAk=: b= 表示地址类型是 Opaque;s=1009: s= 表示地址类型是字符串
|
|||
|
|
* value,any 类型, 写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常。
|
|||
|
|
|
|||
|
|
## Melsec
|
|||
|
|
|
|||
|
|
#### Melsec 读取 boolean
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Melsec 读取 boolean。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readMelsecBoolean(ip: string, port: string, address: string): boolean | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* address,string 类型,读取的地址位。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* boolean,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Melsec 读取 number
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Melsec 读取 number。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readMelsecNumber(ip: string, port: string, address: string): number | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* address,string 类型,读取的地址位。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* number,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Melsec 读取 string
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Melsec 读取 string。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readMelsecString(ip: string, port: string, address: string, length: number) : string | null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* address,string 类型,读取的地址位。
|
|||
|
|
* length,number 类型,读取的长度。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* string,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Melsec 写入 boolean
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Melsec 写入 boolean。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeMelsecBoolean(ip: string, port: string, address: string, value: boolean): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* address,string 类型,写入的地址位。
|
|||
|
|
* value,boolean 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Melsec 写入 number
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Melsec 写入 number。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeMelsecNumber(ip: string, port: string, address: string, value: number) : void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* address,string 类型,写入的地址位。
|
|||
|
|
* value,number 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Melsec 写入 string
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Melsec 写入 string。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeMelsecString(ip: string, port: string, address: string, value: string) : void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* address,string 类型,写入的地址位。
|
|||
|
|
* value,string 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
## Fins
|
|||
|
|
|
|||
|
|
#### Fins 读取 string
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Fins 读取 string。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readFinsString(ip: string, port: number, area: number, finsIoAddr: number, bitOffset: number, wordLength: number) : string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* area,number 类型,读取的存储区域代码,16进制值如:(0x82) 。
|
|||
|
|
* finsIoAddr,number 类型,读取的地址位 。
|
|||
|
|
* bitOffset,number 类型,读取的偏移量 。
|
|||
|
|
* wordLength,number 类型,读取的长度 。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* string,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Fins 读取 word
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Fins 读取 word。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readFinsWord(ip: string, port: number, area: number, finsIoAddr: number, bitOffset: number) : number
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* area,number 类型,读取的存储区域代码,16进制值如:(0x82) 。
|
|||
|
|
* finsIoAddr,number 类型,读取的地址位 。
|
|||
|
|
* bitOffset,number 类型,读取的偏移量 。
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* number,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Fins 读取 bit
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Fins 读取 bit。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readFinsBit(ip: string, port: number, area: number, finsIoAddr: number, bitOffset: number) : number
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* area,number 类型,读取的存储区域代码,16进制值如:(0x82) 。
|
|||
|
|
* finsIoAddr,number 类型,读取的地址位 。
|
|||
|
|
* bitOffset,number 类型,读取的偏移量
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* number,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Fins 写入 word
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Fins 写入 word。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeFinsWord(ip: string, port: number, area: number, finsIoAddr: number, bitOffset: number, value: number) : void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* area,number 类型,写入的存储区域代码,16进制值如:(0x82) 。
|
|||
|
|
* finsIoAddr,number 类型,写入的地址位 。
|
|||
|
|
* bitOffset,number 类型,写入的偏移量 。
|
|||
|
|
* value,number 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* 该方法无输出参数。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### Fins 写入 bit
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
Melsec 写入 string。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeFinsBit(ip: string, port: number, area: number, finsIoAddr: number, bitOffset: number, value: boolean) : void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* ip,string 类型,从机 IP。
|
|||
|
|
* port,number 类型,从机端口。
|
|||
|
|
* area,number 类型,写入的存储区域代码,16进制值如:(0x82) 。
|
|||
|
|
* finsIoAddr,number 类型,写入的地址位 。
|
|||
|
|
* bitOffset,number 类型,写入的偏移量 。
|
|||
|
|
* value,boolean类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* 该方法无输出参数。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
## S7
|
|||
|
|
|
|||
|
|
#### S7 读取 Int
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 读取 Int。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readS7Int(type: string, ip: string, blockAndOffset: string): number;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* number,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 读取 DInt
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 读取 DInt。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readS7DInt(type: string, ip: string, blockAndOffset: string): number;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* number,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 读取 Word
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 读取 Word。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readS7Word(type: string, ip: string, blockAndOffset: string): number;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* number,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 读取 DWord
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 读取 DWord。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readS7DWord(type: string, ip: string, blockAndOffset: string): number;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* number,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 读取 String
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 读取 String。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readS7String(type: string, ip: string, blockAndOffset: string): string;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* string,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 读取 Bool
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 读取 Bool。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readS7Boolean(type: string, ip: string, blockAndOffset: string): boolean;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* boolean,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 写入 Int
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 写入 Int。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeS7Int(type: string, ip: string, blockAndOffset: string, value: number): boolean;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* value,number 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 写入 DInt
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 写入 DInt。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeS7DInt(type: string, ip: string, blockAndOffset: string, value: number): boolean;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* value,number 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 写入 Word
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 写入 Word。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeS7Word(type: string, ip: string, blockAndOffset: string, value: number): boolean;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* value,number 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 写入 DWord
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 写入 DWord。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeS7DWord(type: string, ip: string, blockAndOffset: string, value: number): boolean;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* value,number 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 写入 String
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 写入 String。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeS7String(type: string, ip: string, blockAndOffset: string, value: string): boolean;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* value,string 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 写入 Bool
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 写入 Bool。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeS7Boolean(type: string, ip: string, blockAndOffset: string, value: boolean): boolean;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type,string 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
|||
|
|
* ip,string 类型,PLC IP。
|
|||
|
|
* blockAndOffset,string 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
|||
|
|
|
|||
|
|
| 地址名称 | 地址代号 | 示例 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 中间寄存器 | M | M100,M200 |
|
|||
|
|
| 输入寄存器 | I | I100,I200 |
|
|||
|
|
| 输出寄存器 | Q | Q100,Q200 |
|
|||
|
|
| DB块寄存器 | DB | DB1.100,DB1.200.7 |
|
|||
|
|
| V寄存器 | V | V100,V200 |
|
|||
|
|
| 定时器的值 | T | T100,T200 |
|
|||
|
|
| 计数器的值 | C | C100,C200 |
|
|||
|
|
| 智能输入寄存器 | AI | AI100,AI200 |
|
|||
|
|
| 智能输出寄存器 | AQ | AQ100,AQ200 |
|
|||
|
|
* value,boolean 类型,写入的值。
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 写入
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 写入 Int、DInt、Word、DWord、String、Bool.
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function writeS7(type String, ip String, slot int, rack int, dataType String, blockAndOffset String, value Any):Bool;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type:同上
|
|||
|
|
* ip:同上
|
|||
|
|
* slot:CPU 模块的插槽号
|
|||
|
|
* rack:中央机架
|
|||
|
|
* dataType:在 Int,DInt,Word,String,Bool 中可选
|
|||
|
|
* blockAndOffset:同上
|
|||
|
|
* value: 与 dataType 类型匹配
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
成功返回 true,失败返回 false。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
#### S7 读取
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
S7 读取 Int、DInt、Word、DWord、String、Bool,类型地址位的值。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readS7(type String, ip String, slot int, rack int, dataType String, blockAndOffset String):Any
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* type:同上
|
|||
|
|
* ip:同上
|
|||
|
|
* slot:CPU 模块的插槽号
|
|||
|
|
* rack:中央机架
|
|||
|
|
* dataType:在 Int,DInt,Word,String,Bool 中可选
|
|||
|
|
* blockAndOffset:同上
|
|||
|
|
* 输出参数
|
|||
|
|
* null,读取失败。
|
|||
|
|
* Any,读取成功的返回值。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不抛出异常,异常捕获后只作日志记录。
|
|||
|
|
|
|||
|
|
## MQTT
|
|||
|
|
|
|||
|
|
### MQTT 订阅信息(使用传入的topic)
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
向指定的 topic 订阅信息 ,适用于订阅多个topic的场景。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function MQTTSubscribe(topic: string): string;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* topic,string 类型,订阅的 topic。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
订阅到的信息。
|
|||
|
|
|
|||
|
|
如果订阅失败返回 null。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
* 使用示例
|
|||
|
|
* 1. 在 application-biz.yml 里面开启MQTT,并完成相应的配置,如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
# 是否开启 MQTT 服务
|
|||
|
|
mqttConfigView:
|
|||
|
|
enable: true
|
|||
|
|
pubConfig:
|
|||
|
|
# 服务器端点url
|
|||
|
|
broker: tcp://broker.emqx.io:1883
|
|||
|
|
# 订阅的主题,MQTT允许使用通配符订阅主题,不允许使用通配符pub发布消息
|
|||
|
|
topics:
|
|||
|
|
- Examples/1/123
|
|||
|
|
# 设置message的服务质量(0:消息最多传递一次(零次或一次)1:至少传递一次(一次或多次)。2:只传递一次)
|
|||
|
|
qos: 2
|
|||
|
|
# 客户端唯一标识
|
|||
|
|
clientId: RDS-Pub
|
|||
|
|
# 连接的用户名,不需要就填 null
|
|||
|
|
username: null
|
|||
|
|
# 连接的密码,不需要就填 null
|
|||
|
|
password: null
|
|||
|
|
# 设置是否清空session,false表示服务器会保留客户端的连接记录,true每次都以新的身份连接服务器
|
|||
|
|
cleanSession: false
|
|||
|
|
# 超时时间(seconds)
|
|||
|
|
connectionTimeout: 30
|
|||
|
|
# 设置会话心跳时间(seconds)
|
|||
|
|
keepAliveInterval: 60
|
|||
|
|
# 设置断开后重新连接
|
|||
|
|
automaticReconnect: true
|
|||
|
|
# 表示发送的消息需要一直持久保存(不受服务器重启影响),不但要发送给当前的订阅者,并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
|
|||
|
|
retained: false
|
|||
|
|
# 作为publish的遗嘱消息,会存到服务器,在publish端非正常断连的情况下,发送给所有订阅的客户端
|
|||
|
|
# 不需要就填 null
|
|||
|
|
willMsg: null
|
|||
|
|
# 遗嘱消息发布的topic
|
|||
|
|
willTopic: Examples1
|
|||
|
|
subConfig:
|
|||
|
|
# 服务器端点url
|
|||
|
|
broker: tcp://broker.emqx.io:1883
|
|||
|
|
# MQTT允许使用通配符sub订阅主题,但不允许使用通配符pub发布消息
|
|||
|
|
topics:
|
|||
|
|
- Examples/1/123
|
|||
|
|
# 设置message的服务质量(0:消息最多传递一次(零次或一次)1:至少传递一次(一次或多次)。2:只传递一次)
|
|||
|
|
qos: 1
|
|||
|
|
# 客户端唯一标识
|
|||
|
|
clientId: RDS-Sub
|
|||
|
|
# 连接的用户名,不需要就填 null
|
|||
|
|
username: null
|
|||
|
|
# 连接的密码,不需要就填 null
|
|||
|
|
password: null
|
|||
|
|
# 设置是否清空session,false表示服务器会保留客户端的连接记录,true每次都以新的身份连接服务器
|
|||
|
|
cleanSession: false
|
|||
|
|
# 超时时间(seconds)
|
|||
|
|
connectionTimeout: 30
|
|||
|
|
# 设置会话心跳时间(seconds)
|
|||
|
|
keepAliveInterval: 60
|
|||
|
|
# 设置断开后重新连接
|
|||
|
|
automaticReconnect: true
|
|||
|
|
# 表示发送的消息需要一直持久保存(不受服务器重启影响),不但要发送给当前的订阅者,并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
|
|||
|
|
retained: false
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 2. 编写脚本方法
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
var data = jj.MQTTSubscribe("testTopic");
|
|||
|
|
jj.scriptLog("info","sub1",data);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### MQTT 订阅信息(使用配置文件的topic)
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
向 application-biz.yml 配置的 topic 订阅信息 ,适用于只订阅一个topic的场景。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function MQTTSubscribe(): string;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
订阅到的信息。
|
|||
|
|
|
|||
|
|
如果订阅失败返回 null。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
* 使用示例
|
|||
|
|
* 1. 在 application-biz.yml 里面开启MQTT,并完成相应的配置,如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
# 是否开启 MQTT 服务
|
|||
|
|
mqttConfigView:
|
|||
|
|
enable: true
|
|||
|
|
pubConfig:
|
|||
|
|
# 服务器端点url
|
|||
|
|
broker: tcp://broker.emqx.io:1883
|
|||
|
|
# 订阅的主题,MQTT允许使用通配符订阅主题,不允许使用通配符pub发布消息
|
|||
|
|
topics:
|
|||
|
|
- Examples/1/123
|
|||
|
|
# 设置message的服务质量(0:消息最多传递一次(零次或一次)1:至少传递一次(一次或多次)。2:只传递一次)
|
|||
|
|
qos: 2
|
|||
|
|
# 客户端唯一标识
|
|||
|
|
clientId: RDS-Pub
|
|||
|
|
# 连接的用户名,不需要就填 null
|
|||
|
|
username: null
|
|||
|
|
# 连接的密码,不需要就填 null
|
|||
|
|
password: null
|
|||
|
|
# 设置是否清空session,false表示服务器会保留客户端的连接记录,true每次都以新的身份连接服务器
|
|||
|
|
cleanSession: false
|
|||
|
|
# 超时时间(seconds)
|
|||
|
|
connectionTimeout: 30
|
|||
|
|
# 设置会话心跳时间(seconds)
|
|||
|
|
keepAliveInterval: 60
|
|||
|
|
# 设置断开后重新连接
|
|||
|
|
automaticReconnect: true
|
|||
|
|
# 表示发送的消息需要一直持久保存(不受服务器重启影响),不但要发送给当前的订阅者,并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
|
|||
|
|
retained: false
|
|||
|
|
# 作为publish的遗嘱消息,会存到服务器,在publish端非正常断连的情况下,发送给所有订阅的客户端
|
|||
|
|
# 不需要就填 null
|
|||
|
|
willMsg: null
|
|||
|
|
# 遗嘱消息发布的topic
|
|||
|
|
willTopic: Examples1
|
|||
|
|
subConfig:
|
|||
|
|
# 服务器端点url
|
|||
|
|
broker: tcp://broker.emqx.io:1883
|
|||
|
|
# MQTT允许使用通配符sub订阅主题,但不允许使用通配符pub发布消息
|
|||
|
|
topics:
|
|||
|
|
- Examples/1/123
|
|||
|
|
# 设置message的服务质量(0:消息最多传递一次(零次或一次)1:至少传递一次(一次或多次)。2:只传递一次)
|
|||
|
|
qos: 1
|
|||
|
|
# 客户端唯一标识
|
|||
|
|
clientId: RDS-Sub
|
|||
|
|
# 连接的用户名,不需要就填 null
|
|||
|
|
username: null
|
|||
|
|
# 连接的密码,不需要就填 null
|
|||
|
|
password: null
|
|||
|
|
# 设置是否清空session,false表示服务器会保留客户端的连接记录,true每次都以新的身份连接服务器
|
|||
|
|
cleanSession: false
|
|||
|
|
# 超时时间(seconds)
|
|||
|
|
connectionTimeout: 30
|
|||
|
|
# 设置会话心跳时间(seconds)
|
|||
|
|
keepAliveInterval: 60
|
|||
|
|
# 设置断开后重新连接
|
|||
|
|
automaticReconnect: true
|
|||
|
|
# 表示发送的消息需要一直持久保存(不受服务器重启影响),不但要发送给当前的订阅者,并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
|
|||
|
|
retained: false
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 2. 编写脚本方法
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
var data = jj.MQTTSubscribe();
|
|||
|
|
jj.scriptLog("info","sub",data);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### MQTT 发布信息(使用传入的topic)
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
向输入的 topic 发布信息 。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function MQTTPublish(topic: string, message: string): void;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* topic,string 类型,订阅的 topic。
|
|||
|
|
* message,string 类型,需要发布的信息。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
* 使用示例
|
|||
|
|
* 1. 在 application-biz.yml 里面开启MQTT,并完成相应的配置,如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
# 是否开启 MQTT 服务
|
|||
|
|
mqttConfigView:
|
|||
|
|
enable: true
|
|||
|
|
pubConfig:
|
|||
|
|
# 服务器端点url
|
|||
|
|
broker: tcp://broker.emqx.io:1883
|
|||
|
|
# 订阅的主题,MQTT允许使用通配符订阅主题,不允许使用通配符pub发布消息
|
|||
|
|
topics:
|
|||
|
|
- Examples/1/123
|
|||
|
|
# 设置message的服务质量(0:消息最多传递一次(零次或一次)1:至少传递一次(一次或多次)。2:只传递一次)
|
|||
|
|
qos: 2
|
|||
|
|
# 客户端唯一标识
|
|||
|
|
clientId: RDS-Pub
|
|||
|
|
# 连接的用户名,不需要就填 null
|
|||
|
|
username: null
|
|||
|
|
# 连接的密码,不需要就填 null
|
|||
|
|
password: null
|
|||
|
|
# 设置是否清空session,false表示服务器会保留客户端的连接记录,true每次都以新的身份连接服务器
|
|||
|
|
cleanSession: false
|
|||
|
|
# 超时时间(seconds)
|
|||
|
|
connectionTimeout: 30
|
|||
|
|
# 设置会话心跳时间(seconds)
|
|||
|
|
keepAliveInterval: 60
|
|||
|
|
# 设置断开后重新连接
|
|||
|
|
automaticReconnect: true
|
|||
|
|
# 表示发送的消息需要一直持久保存(不受服务器重启影响),不但要发送给当前的订阅者,并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
|
|||
|
|
retained: false
|
|||
|
|
# 作为publish的遗嘱消息,会存到服务器,在publish端非正常断连的情况下,发送给所有订阅的客户端
|
|||
|
|
# 不需要就填 null
|
|||
|
|
willMsg: null
|
|||
|
|
# 遗嘱消息发布的topic
|
|||
|
|
willTopic: Examples1
|
|||
|
|
subConfig:
|
|||
|
|
# 服务器端点url
|
|||
|
|
broker: tcp://broker.emqx.io:1883
|
|||
|
|
# MQTT允许使用通配符sub订阅主题,但不允许使用通配符pub发布消息
|
|||
|
|
topics:
|
|||
|
|
- Examples/1/123
|
|||
|
|
# 设置message的服务质量(0:消息最多传递一次(零次或一次)1:至少传递一次(一次或多次)。2:只传递一次)
|
|||
|
|
qos: 1
|
|||
|
|
# 客户端唯一标识
|
|||
|
|
clientId: RDS-Sub
|
|||
|
|
# 连接的用户名,不需要就填 null
|
|||
|
|
username: null
|
|||
|
|
# 连接的密码,不需要就填 null
|
|||
|
|
password: null
|
|||
|
|
# 设置是否清空session,false表示服务器会保留客户端的连接记录,true每次都以新的身份连接服务器
|
|||
|
|
cleanSession: false
|
|||
|
|
# 超时时间(seconds)
|
|||
|
|
connectionTimeout: 30
|
|||
|
|
# 设置会话心跳时间(seconds)
|
|||
|
|
keepAliveInterval: 60
|
|||
|
|
# 设置断开后重新连接
|
|||
|
|
automaticReconnect: true
|
|||
|
|
# 表示发送的消息需要一直持久保存(不受服务器重启影响),不但要发送给当前的订阅者,并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
|
|||
|
|
retained: false
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 2. 编写脚本方法
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
jj.MQTTPublish("testTopic","RDS-Script sub message.");
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### MQTT 发布信息(使用配置文件的topic)
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
向配置的 topic 发布信息 。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function MQTTPublish(message: string): void;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* message,string 类型,需要发布的信息
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
* 使用示例
|
|||
|
|
* 1. 在 application-biz.yml 里面开启MQTT,并完成相应的配置,如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
# 是否开启 MQTT 服务
|
|||
|
|
mqttConfigView:
|
|||
|
|
enable: true
|
|||
|
|
pubConfig:
|
|||
|
|
# 服务器端点url
|
|||
|
|
broker: tcp://broker.emqx.io:1883
|
|||
|
|
# 订阅的主题,MQTT允许使用通配符订阅主题,不允许使用通配符pub发布消息
|
|||
|
|
topics:
|
|||
|
|
- Examples/1/123
|
|||
|
|
# 设置message的服务质量(0:消息最多传递一次(零次或一次)1:至少传递一次(一次或多次)。2:只传递一次)
|
|||
|
|
qos: 2
|
|||
|
|
# 客户端唯一标识
|
|||
|
|
clientId: RDS-Pub
|
|||
|
|
# 连接的用户名,不需要就填 null
|
|||
|
|
username: null
|
|||
|
|
# 连接的密码,不需要就填 null
|
|||
|
|
password: null
|
|||
|
|
# 设置是否清空session,false表示服务器会保留客户端的连接记录,true每次都以新的身份连接服务器
|
|||
|
|
cleanSession: false
|
|||
|
|
# 超时时间(seconds)
|
|||
|
|
connectionTimeout: 30
|
|||
|
|
# 设置会话心跳时间(seconds)
|
|||
|
|
keepAliveInterval: 60
|
|||
|
|
# 设置断开后重新连接
|
|||
|
|
automaticReconnect: true
|
|||
|
|
# 表示发送的消息需要一直持久保存(不受服务器重启影响),不但要发送给当前的订阅者,并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
|
|||
|
|
retained: false
|
|||
|
|
# 作为publish的遗嘱消息,会存到服务器,在publish端非正常断连的情况下,发送给所有订阅的客户端
|
|||
|
|
# 不需要就填 null
|
|||
|
|
willMsg: null
|
|||
|
|
# 遗嘱消息发布的topic
|
|||
|
|
willTopic: Examples1
|
|||
|
|
subConfig:
|
|||
|
|
# 服务器端点url
|
|||
|
|
broker: tcp://broker.emqx.io:1883
|
|||
|
|
# MQTT允许使用通配符sub订阅主题,但不允许使用通配符pub发布消息
|
|||
|
|
topics:
|
|||
|
|
- Examples/1/123
|
|||
|
|
# 设置message的服务质量(0:消息最多传递一次(零次或一次)1:至少传递一次(一次或多次)。2:只传递一次)
|
|||
|
|
qos: 1
|
|||
|
|
# 客户端唯一标识
|
|||
|
|
clientId: RDS-Sub
|
|||
|
|
# 连接的用户名,不需要就填 null
|
|||
|
|
username: null
|
|||
|
|
# 连接的密码,不需要就填 null
|
|||
|
|
password: null
|
|||
|
|
# 设置是否清空session,false表示服务器会保留客户端的连接记录,true每次都以新的身份连接服务器
|
|||
|
|
cleanSession: false
|
|||
|
|
# 超时时间(seconds)
|
|||
|
|
connectionTimeout: 30
|
|||
|
|
# 设置会话心跳时间(seconds)
|
|||
|
|
keepAliveInterval: 60
|
|||
|
|
# 设置断开后重新连接
|
|||
|
|
automaticReconnect: true
|
|||
|
|
# 表示发送的消息需要一直持久保存(不受服务器重启影响),不但要发送给当前的订阅者,并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
|
|||
|
|
retained: false
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 2. 编写脚本方法
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
jj.MQTTPublish("RDS-Script sub message.");
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 需求单
|
|||
|
|
|
|||
|
|
### 创建需求单
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据指定的参数创建新的需求单。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function addDemand(demandJson: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* demandJson,string 类型,表示需求单的详情,反序列化后的示例如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"defLabel": "", // 需求单的名称
|
|||
|
|
"content": "", // 需求内容,序列化之后的 JSON 数据
|
|||
|
|
"createdBy": "", // 当前需求单的创建者
|
|||
|
|
"description": "", // 需求单的描述
|
|||
|
|
"menuId": "", // 补充需求菜单id
|
|||
|
|
"workTypes": "", // 可操作当前需求单的岗位
|
|||
|
|
"workStations": "", // 可操作当前需求单的工位
|
|||
|
|
"attrList": [ // 需求单的扩展字段值,不需要可以不传此参数
|
|||
|
|
{
|
|||
|
|
"attributeName": "ExtendedField1",
|
|||
|
|
"attributeValue": "value1"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"attributeName": "ExtendedField2",
|
|||
|
|
"attributeValue": "value2"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
成功时,返回需求单的 ID。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
### 根据 ID 更新需求单状态为完成
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据 ID 将指定的需求单的状态,更新为完成。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function updateDemandFinishedById(demandId: string, supplementContent: string, handler: string): number
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* demandId,string 类型,表示需求单的 ID。
|
|||
|
|
* supplementContent,string 类型,表示补充需求内容,为序列化之后的 JSON 数据。
|
|||
|
|
* handler,string 类型,表示处理人。
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功时,返回值为 1。
|
|||
|
|
* 失败时,返回值为 0。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
### 根据 createBy 更新需求单状态为完成
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据 createBy 将指定的需求单的状态,更新为完成。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function updateDemandFinishedByCreateBy(createBy: string, supplementContent: string, handler: string): number
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* createBy,string 类型,表示当前需求单的创建者。
|
|||
|
|
* supplementContent,string 类型,表示补充需求内容,为序列化之后的 JSON 数据。
|
|||
|
|
* handler,string 类型,表示处理人。
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功时,返回值为 1。
|
|||
|
|
* 失败时,返回值为 0。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
## 文件操作
|
|||
|
|
|
|||
|
|
### 根据文件名读取脚本目录下的文件内容
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据文件名,读取脚本目录下的文件内容。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function readFileToString(fileName: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* fileName,string 类型,表示目标文件的名称(带后缀,例如 a.txt )。
|
|||
|
|
* 输出参数
|
|||
|
|
* 读取文件成功时,返回值为表示文件内容的字符串。
|
|||
|
|
* 读取文件失败时,返回值为 null 。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
|
|||
|
|
## 分拨单
|
|||
|
|
|
|||
|
|
### 标记分拨点满
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
标记分拨点货满,不需要放货
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function distributeMarkFull(loc:string)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* loc,string类型,表示库位的id
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功时,返回true
|
|||
|
|
* 失败时,返回false
|
|||
|
|
|
|||
|
|
### 标记分拨点缺货
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
标记分拨点缺货,可以放货
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function distributeMarkNotFull(loc:string)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* loc,string类型,表示库位的id
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功时,返回true
|
|||
|
|
* 失败时,返回false
|
|||
|
|
|
|||
|
|
### 报告放货完成
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
报告当前库位放货完成,可离开
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function distributeTaskDone(vehicleId:string)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* vehicleId,string类型,表示机器人的id
|
|||
|
|
* 输出参数
|
|||
|
|
* 成功时,返回true
|
|||
|
|
* 失败时,返回false
|
|||
|
|
|
|||
|
|
### 增加分拨点
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
向正在运行的分拨任务,添加分拨点
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function appendToLocList(taskRecordId:String, toLocList:String, blockNo:String): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* taskRecordId,String类型,必填,任务实例的Id
|
|||
|
|
* toLocList,添加分拨点的参数,字符串,数据格式如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[
|
|||
|
|
{
|
|||
|
|
"toLoc": "LM7", //必填分拨点
|
|||
|
|
"postAction":"" //非必填,分拨点完成的回调
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
* blockNo,天风任务块编号("`b8`"),可不填,默认对应任务下正在运行的分拨单,如果涉及多个需要指定块编号
|
|||
|
|
* 返回值,成功`true`,失败`false`
|
|||
|
|
* 案例
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
let loc = [{
|
|||
|
|
"toLoc": "LM7"
|
|||
|
|
}]
|
|||
|
|
jj.appendToLocList("6e32d7f2-99fa-42d4-8c4d-cd267190d694",JSON.stringify(loc),"b8")
|
|||
|
|
#说明:向在天风任务块编号是b8的任务id为6e32d7f2-99fa-42d4-8c4d-cd267190d694的分拨单添加一个分拨点LM7
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 删除分拨点
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
向正在运行的分拨任务,删除分拨点
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function deleteToLocList(taskRecordId:String, toLocs:String, blockNo:String): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* taskRecordId,String类型,必填,任务实例的Id
|
|||
|
|
* toLocs, 删除分拨点的参数,字符串,数据格式如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
["LM41"]
|
|||
|
|
```
|
|||
|
|
* blockNo,天风任务块编号("`b8`"),可不填,默认对应任务下正在运行的分拨单,如果涉及多个需要指定块编号
|
|||
|
|
* 返回值,成功`true`,失败`false`
|
|||
|
|
* 案例
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
let delLoc = ["LM41"];
|
|||
|
|
jj.deleteToLocList("276ccf58-c429-4e33-ad7b-4bcbe9d56e27", JSON.stringify(delLoc),"b8"))
|
|||
|
|
#说明:向在天风任务块编号是b8的任务id为6e32d7f2-99fa-42d4-8c4d-cd267190d694的分拨单删除一个分拨点LM41
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Websocket
|
|||
|
|
|
|||
|
|
### 根据ip向客户端发送消息
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据ip向客户端发送消息
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function sendMsgToWscByClientIp(msg:string,ip:string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* msg,string类型,表示要发送的消息
|
|||
|
|
* ip,string类型,表示接收消息的客户端ip
|
|||
|
|
* 输出参数
|
|||
|
|
* 无。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
### 根据客户端名称向客户端发送消息
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据客户端名向客户端发送消息
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function sendMsgToWscByClientName(msg:string,clientName:string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* msg,string类型,表示要发送的消息
|
|||
|
|
* clientName,string类型,表示接收消息的客户端名
|
|||
|
|
* 输出参数
|
|||
|
|
* 无。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
### 获取所有客户端ip
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取所有websocket客户端的ip
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getWebsocketClientIp(): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* 无。
|
|||
|
|
* 输出参数
|
|||
|
|
* 所有客户端的ip
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
### 获取所有客户端名
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
获取所有websocket客户端名
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getWebsocketClientName(): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* 无。
|
|||
|
|
* 输出参数
|
|||
|
|
* 所有客户端名
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
## 其他
|
|||
|
|
|
|||
|
|
### 创建唯一的 ID 编号
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
创建唯一的 ID 编号。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function createUuid(): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 输出参数
|
|||
|
|
* 表示一个唯一 ID 编号的字符串。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
### 发送邮件
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
向目标收件方发送简单邮件。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function sendMail(param: string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* param,string 类型,表示邮件的详情,反序列化后的示例如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{
|
|||
|
|
"to": "yy@yy.com", // 接收方,必填
|
|||
|
|
"subject": "Daily Meeting", // 主题,必填
|
|||
|
|
"text": "xxx", // 内容,必填
|
|||
|
|
"cc": "xxx@xxx.com,yyy@yyy.com", // 抄送,选填
|
|||
|
|
"bcc": "zzz@zzz.com" // 秘密抄送,选填
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
### 发送用户消息
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
发送用户消息,不仅可以弹窗提醒,还可以在RDS的消息管理界面进行查看。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function sendUserMessage(level: string, messageTitle: string, messageBody: string): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* level,string 类型,表示消息提醒的等级,有ERROR,WARN,INFO三种等级。
|
|||
|
|
* messageTitle,string 类型,表示用户消息的标题。
|
|||
|
|
* messageBody,string 类型,表示用户消息的内容。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无。
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
|
|||
|
|
### JSON字符串转化为XML字符串
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
将json字符串转化为xml字符串
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function jsonToXml(param: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* param,string 类型,表示传入的json字符串
|
|||
|
|
* 输出参数
|
|||
|
|
* xml字符串
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会不抛出异常。
|
|||
|
|
|
|||
|
|
### MD5字符串加密
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
将字符串进行加密后返回
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function md5Encode(param: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* param,string 类型,表示传入的字符串
|
|||
|
|
* 输出参数
|
|||
|
|
* 32位小写字符串
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
### Base64字符串重编码
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
将字符串进行重编码后返回
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function base64Encode(param: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* param,string 类型,表示传入的字符串
|
|||
|
|
* 输出参数
|
|||
|
|
* UrlBase64 重编码后的字符串
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法会抛出异常。
|
|||
|
|
|
|||
|
|
### 转换成分页对象
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据给定的参数和数据,转换成分页对象并进行返回。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function transToPageObj(totalCount: number, currentPage: number, pageSize: number, totalPage: number, pageList: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* totalCount, number 类型,表示分页数据的总条数
|
|||
|
|
* currentPage, number 类型,表示当前是第几页
|
|||
|
|
* pageSize, number 类型,表示每页显示的数量
|
|||
|
|
* totalPage, number 类型,表示总页数
|
|||
|
|
* pageList, string 类型,表示当前页的数据
|
|||
|
|
* 输出参数
|
|||
|
|
* 转换后的分页对象字符串
|
|||
|
|
* 异常
|
|||
|
|
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
* 请求示例
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function transToPageObj() {
|
|||
|
|
|
|||
|
|
// 1. 提供分页相关参数和源数据
|
|||
|
|
|
|||
|
|
// 当前是第几页,最小值就是1!
|
|||
|
|
var currentPage = 2;
|
|||
|
|
// 每页的数据条数
|
|||
|
|
var pageSize = 20;
|
|||
|
|
// 获取相关的数据,以实际情况为准进行修改
|
|||
|
|
var data = jj.findSitesByCondition("{}","ASC");
|
|||
|
|
// 打印查询到的数据
|
|||
|
|
jj.scriptLog("INFO", "transToPageObj", data);
|
|||
|
|
// 转换成对象,方便截取当页的数据
|
|||
|
|
var dataObj = JSON.parse(data);
|
|||
|
|
// 截取指定页的数据
|
|||
|
|
var pageListObj = dataObj.slice((currentPage-1)*pageSize, currentPage*pageSize);
|
|||
|
|
// 将截取的数据转成字符串
|
|||
|
|
var pageListStr = JSON.stringify(pageListObj);
|
|||
|
|
|
|||
|
|
// 2. 调用脚本方法,转换成分页对象
|
|||
|
|
|
|||
|
|
// 将数据转换成分页对象
|
|||
|
|
var res = jj.transToPageObj(dataObj.length, currentPage, pageSize, Math.ceil(dataObj.length/pageSize), pageListStr);
|
|||
|
|
// 打印转换后的结果
|
|||
|
|
jj.scriptLog("INFO", "res=", res);
|
|||
|
|
|
|||
|
|
// 3. 拿着分页对象进行返回或其他操作
|
|||
|
|
// TODO
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 获取天风任务参数
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
在脚本中直接获取到天风任务参数。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function getScriptValue(key: string): string
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* key,变量表达式。
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
天风任务中参数key的值的字符串。
|
|||
|
|
* 异常
|
|||
|
|
本方法不会抛出异常。该方法如果获取一个不存在的值时将会返回NULL。
|
|||
|
|
* 请求示例
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function test() {
|
|||
|
|
//获取任务变量status
|
|||
|
|
jj.scriptLog("debug","b1,agvid:",jj.getScriptValue("task.variables.status"))
|
|||
|
|
//获取b4块选出的库位
|
|||
|
|
jj.scriptLog("debug","b1,agvid:",jj.getScriptValue("blocks.b4.siteId"))
|
|||
|
|
//获取输入参数agvId
|
|||
|
|
jj.scriptLog("debug","b1,agvid:",jj.getScriptValue("taskInputs.agvId"))
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 批量放行
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
批量放行机器人,与等待放行块结合使用。
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function releaseWaitPass(agvIds: Array<String>): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* agvIds,String 数组类型,需放行的机器人Id。
|
|||
|
|
* 输出参数
|
|||
|
|
* true,放行成功。
|
|||
|
|
* false,放行失败
|
|||
|
|
* 异常
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
* 请求示例
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function releaseWaitPass(){
|
|||
|
|
let agvIds = []//注意参数是数组
|
|||
|
|
agvIds.push("AMB-150J")//放行一个就只用push一个
|
|||
|
|
agvIds.push("sim_01")
|
|||
|
|
jj.releaseWaitPass(agvIds)
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 脚本公平锁
|
|||
|
|
|
|||
|
|
* 方法说明
|
|||
|
|
|
|||
|
|
根据锁名称,获取不同的锁,并发情况下串行执行一段代码
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
function withFairnessLock(lockName: string, fair: boolean, action: () => void): void;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
* 输入参数
|
|||
|
|
* lockName:String 锁的名称
|
|||
|
|
* fair:true: 公平锁更具时间先后顺序获取,false: 非公平锁,随机获取锁
|
|||
|
|
* action: 执行的代码块
|
|||
|
|
* 输出参数
|
|||
|
|
|
|||
|
|
无
|
|||
|
|
* 异常
|
|||
|
|
本方法不会抛出异常。
|
|||
|
|
* 请求示例
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
jj.withFairnessLock("kk", true, () => {
|
|||
|
|
// 代码块
|
|||
|
|
jj.scriptLog("INFO", "test", "test")
|
|||
|
|
})
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
进程已结束,退出代码为 0
|