mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-11-30 02:58:26 +08:00
improve fscript
This commit is contained in:
parent
b901b67321
commit
4fa69ce0d9
@ -1,6 +1,7 @@
|
||||
# 最新动态
|
||||
|
||||
2020/12/10
|
||||
* 完善fscript,增加函数seq。
|
||||
* 增加函数fs\_file\_read\_line。
|
||||
* 优化融合算法针对目标位图为非 cache 的情况(感谢智明提供补丁)
|
||||
* 修改窗口设置字体管理器和图片管理器不正常的问题(感谢智明提供补丁)
|
||||
|
@ -196,6 +196,35 @@ print(join(",", a, b))
|
||||
noop()
|
||||
```
|
||||
|
||||
#### seq
|
||||
|
||||
> 把组合多条语句组合成一条语句。方便在if语句中执行多条语句。
|
||||
----------------------------
|
||||
|
||||
##### 原型
|
||||
|
||||
```
|
||||
seq(s1, s2, s3, ...)
|
||||
```
|
||||
|
||||
示例
|
||||
|
||||
```js
|
||||
if(
|
||||
msg.topic == "eof",
|
||||
seq(
|
||||
print(msg.topic),
|
||||
set(aborted, true),
|
||||
#("文件读取完毕,关闭定时器"),
|
||||
set(flow.timer.enable, false)
|
||||
),
|
||||
seq(
|
||||
print(str(msg.payload, true)),
|
||||
set(msg.payload, toupper(str(msg.payload, true)))
|
||||
)
|
||||
)
|
||||
```
|
||||
|
||||
#### if
|
||||
|
||||
> 条件执行。如果第一个参数为 true,执行第二个参数,否则执行第三个参数。
|
||||
@ -442,13 +471,16 @@ float("123")
|
||||
##### 原型
|
||||
|
||||
```
|
||||
str(var)
|
||||
str(var [,force_pointer_as_str])
|
||||
```
|
||||
|
||||
> force\_pointer\_as\_str 如果输入参数是POINTER类型,是否将强制转换成字符串。
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
str(int(123))
|
||||
str(msg.payload, true)
|
||||
```
|
||||
|
||||
#### iformat
|
||||
|
@ -1073,9 +1073,22 @@ static ret_t func_float(fscript_t* fscript, fscript_args_t* args, value_t* resul
|
||||
|
||||
static ret_t func_str(fscript_t* fscript, fscript_args_t* args, value_t* result) {
|
||||
str_t* str = &(fscript->str);
|
||||
return_value_if_fail(args->size == 1, RET_BAD_PARAMS);
|
||||
str_from_value(str, args->args);
|
||||
value_set_str(result, str->str);
|
||||
return_value_if_fail(args->size >= 1, RET_BAD_PARAMS);
|
||||
|
||||
if(args->args->type == VALUE_TYPE_POINTER) {
|
||||
bool_t force_pointer_as_str = args->size == 2 && value_bool(args->args+1);
|
||||
if(force_pointer_as_str) {
|
||||
value_set_str(result, (const char*)value_pointer(args->args));
|
||||
} else {
|
||||
char buff[16];
|
||||
tk_snprintf(buff, sizeof(buff)-1, "%p", value_pointer(args->args));
|
||||
str_set(str, buff);
|
||||
value_set_str(result, str->str);
|
||||
}
|
||||
} else {
|
||||
str_from_value(str, args->args);
|
||||
value_set_str(result, str->str);
|
||||
}
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
@ -1668,6 +1681,7 @@ static const func_entry_t s_builtin_funcs[] = {
|
||||
{"mul", func_mul, 2},
|
||||
{"#", func_noop, 0},
|
||||
{"noop", func_noop, 0},
|
||||
{"seq", func_noop, 4},
|
||||
{"not", func_not, 1},
|
||||
{"or", func_or, 2},
|
||||
{"random", func_random, 2},
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
BEGIN_C_DECLS
|
||||
|
||||
#define FSCRIPT_MAX_ARGS 8
|
||||
#define FSCRIPT_MAX_ARGS 32
|
||||
|
||||
/**
|
||||
* @class fscript_args_t
|
||||
|
Loading…
Reference in New Issue
Block a user