指令管理 / 请求脚本 / 内置函数
内置函数通过 bittly
对象进行调用,例如 bittly.echo("hello")
。
Echo | echo()
<string> bittly.echo(content)
原样返回参数 content 的内容。
参数:
content
: [string] 用于返回的字符串
返回值:[string] 返回内容为参数 content 的内容。
示例:
let val = bittly.echo('hello');
// val = "hello"
获取时间戳 | timestamp()
<integer> bittly.timestamp()
获取当前时间戳
返回值:[integer] 调用该方法时的时间戳。
示例:
let val = bittly.timestamp();
// val = 1657028243
随机数 | random()
<integer> bittly.random(min, max)
获取在 min 和 max 之间的一个随机数。
参数:
min
:[integer] 最小值max
: [integer] 最大值
返回值:[integer] 返回在 min 和 max 之间的一个随机数。
示例:
let val = bittly.random(100, 999);
// val = 123
字节累加和 | bytesSum()
<integer> bittly.bytesSum(... values)
计算给定变量字节和
参数:
- values : 参与计算的数据对象列表。
返回:[integer] values 所有元素计算后的结果。
示例:
let val = bittly.bytesSum(
bittly.uint8('FF'),
bittly.string('0123456789'),
bittly.int8(123)
);
// val = 903
// 当参数为表单时,可直接获取计算量
let val2 = bittly.bytesSum(
$this.parameterFormItemGetByName('指令ID'),
$this.parameterFormItemGetByName('参数数量')
);
CRC 校验 | crc*()
<integer> bittly.crc*( ... values )
计算给定数据的CRC值,crc 校验函数有多个名称,不同的crc函数完成不同的计算方式。
支持的计算函数:crc32
, crc16modbus
, crc16ccitt
, crc1
, crc8
, crc81wire
, crc16
, crc16kermit
, crc16xmodem
, crc24
, crcjam
参数:
- values :参与CRC校验计算的变量列表。
返回:CRC 计算后的数值。
示例:
// 当参数为表单时,可直接获取计算量, 假设 指令ID 为十六进制 AA,参数数量 为十六进制 01
let val2 = bittly.crc32(
$this.parameterFormItemGetByName('指令ID'),
$this.parameterFormItemGetByName('参数数量')
);
// val2 = 1647736330
// val2 = 6236760A // in hex
let val = bittly.crc16modbus("1234567890");
// val = 0xC20A 十六进制
// val = 49674 十进制
格式化时间 | date()
<string> bittly.date(format, date=null)
根据给定的格式字符串格式化时间,并返回格式化之后的字符串
参数:
- format : [string] 输出时间格式,例如:
%Y-%m-%d
- date : [Date] [可选] 用于格式化的时间,默认为当前时间
返回:格式化后的时间字符串
支持的格式化操作符:
%d
: 带有前缀0的日期,例如: 01%j
: 无前缀0的日期,例如: 1%m
: 带有前缀0的月份,例如:06%n
:无前缀0的月份,例如:6%Y
:4位的年份,例如:2022%y
:两位的年份,例如:22%H
:带有前缀0的小时,例如:02%G
:不带前缀0的小时,例如:2%i
:带有前缀0的分钟,例如:03%s
:带有前缀0的秒数,例如:03%v
:带有前缀0的毫秒数,例如:001
示例:
// 指定时间
let date = new Date('2023-01-03 03:04:05.678');
let dateString = bittly.date('%Y-%m-%d %H:%i:%s', date);
// dateString = '2023-01-03 03:04:05'
// 当前时间
let dateString = bittly.date('%Y-%m-%d %H:%i:%s');
// dateString = '2023-01-03 03:04:05'
创建数据 | {datetype}()
<object> bittly.{datetype}(value)
<object> bittly.{datetype}(value, format)
<object> bittly.{datetype}(value, length)
创建指定数据类型变量用于参与其他函数操作。
支持的数据类型列表:
<object> bittly.uint8(<string|integer> value [, format=bittly.HEX])
<object> bittly.int8(<string|integer> value)
<object> bittly.char(<string> value)
<object> bittly.uchar(<string> value)
<object> bittly.uint16(<string|integer> value [, format=bittly.HEX)
<object> bittly.int16(<string|integer> value)
<object> bittly.uint32(<string|integer> value [, format=bittly.HEX)
<object> bittly.int32(<string|integer> value)
<object> bittly.uint64(<string|integer> value [, format=bittly.HEX)
<object> bittly.int64(<string|integer> value)
<object> bittly.float(<string|float> value)
<object> bittly.double(<string|double> value)
<object> bittly.string(value [, length=null])
<object> bittly.bytes(<string> value [, length=null] )
<object> bittly.bits(<string> value[, length=null] )
示例:
let val = bittly.uint8(255);
let val = bittly.uint8('255');
let val = bittly.uint8('FF', bittly.HEX);
let val = bittly.float(3.14);
let val = bittly.float('3.14');
let val = bittly.string("hello")
let val = bittly.bytes("AA 01 FF");
let val = bittly.bits("011000011")
数据长度计算 | lengthSum()
<integer> bittly.lengthSum(... items)
计算给定条目和数值的长度总和。 当参数为数值时,该参数直接作为长度数值参与计算。
参数:
... items
:[Object|Integer] 参与计算的条目列表
返回值:[integer] 返回参数计算条目长度总和
示例:
let len = bittly.lengthSum(
1,
$this.parameter.itemGetByIndex(1), // byte
$this.parameter.itemGetByIndex(2), // unsigned short int
);
// len = 3