16 KiB
服务器交互函数
checkConnected()
声明:function
检查是否和服务器已连接。已连接返回 true,否则返回 false
返回:boolean
示例
范例01:确认断开连接后的状态
先主动断开连接,使结果不依赖脚本启动前的连接状态。
disconnectServer();
return checkConnected();
// 输出:false
checkLogined()
声明:function
检查是否已经登录上服务器。已登录返回 true,否则返回 false
返回:boolean
示例
范例01:确认断开连接后的登录状态
先主动断开连接,使结果不依赖脚本启动前的登录状态。
disconnectServer();
return checkLogined();
// 输出:false
connectServer(address, port[, proxy_info])
声明:function
连接服务器。成功返回 0,否则返回错误代码
| 参数 | 类型 | 说明 |
|---|---|---|
address |
string | 服务器地址。 |
port |
integer | 服务器端口。 |
proxy_info |
array | 可选。省略时不使用代理服务器;代理服务器信息使用字符串下标数组。 |
proxy_info 支持以下字符串下标:
| 下标 | 类型 | 说明 |
|---|---|---|
Address |
string | 代理服务器地址。 |
Port |
integer | 代理服务器端口。 |
User |
string | 代理服务器用户名。 |
Password |
string | 代理服务器密码。 |
AuthMode |
integer | 代理模式:0 为 HTTP,5 为 SOCKS5。 |
返回:integer
示例
范例01:直接连接服务器
以下示例要求目标服务器可连接;连接成功时返回 0。
connect_result := connectServer("tsl.tinysoft.com.cn", 443);
if connect_result = 0 then
disconnectServer();
return connect_result;
// 输出:0
范例02:通过 HTTP 代理连接
将代理地址和端口替换为可用配置;连接成功时返回 0。
connect_result := connectServer("tsl.tinysoft.com.cn", 443,
array("Address": "192.168.0.250", "Port": 808, "AuthMode": 0));
if connect_result = 0 then
disconnectServer();
return connect_result;
// 输出:0
defaultConnectAndLogin(alias[, err_msg])
声明:function
连接并登录服务器。成功返回 0,否则返回错误代码
| 参数 | 类型 | 说明 |
|---|---|---|
alias |
string | 服务器别名,其相应的配置在INI中。配置可参考:INI文件配置登陆信息 |
err_msg |
string | 可选。登录失败时接收错误信息。 |
返回:integer
示例
范例01:使用 INI 别名连接并登录
以下示例要求在 tslclient.ini 中配置可用的 test 别名。
login_result := defaultConnectAndLogin("test", err_msg);
if login_result = 0 then
disconnectServer();
return login_result;
// 输出:0
disconnectServer()
声明:function
断开服务器。成功断开返回 0
返回:integer
示例
范例01:断开当前连接
return disconnectServer();
// 输出:0
endExecute(exec_handle)
声明:function
终止异步执行或者订阅。有效异步句柄成功终止返回 0;无效句柄返回 0
| 参数 | 类型 | 说明 |
|---|---|---|
exec_handle |
integer | 由SendExecute返回的执行句柄。 |
返回:integer
示例
范例01:终止异步执行
以下示例要求脚本已登录服务器,以便取得有效的异步执行句柄。
remote_exec := "program ServerExample; begin end.";
callback_code := "echo 'server_example_done';";
exec_handle := sendExecute(remote_exec, getSysParams(), callback_code, true);
stop_result := -1;
if exec_handle <> 0 then
stop_result := endExecute(exec_handle);
return stop_result;
// 输出:0
getComputebitsOption()
声明:function
获取使用的计算的位选项。0 表示自动选择,1 表示 32 位服务器,2 表示 64 位服务器
返回:byte
示例
范例01:读取计算位选项
old_option := getComputebitsOption();
setComputebitsOption(1);
current_option := getComputebitsOption();
setComputebitsOption(old_option);
return current_option;
// 输出:1
getComputeService()
声明:function
获取计算的服务群选择。空字符串表示默认服务,'auto' 表示自动选择,否则为指定的服务群名
返回:string
示例
范例01:读取计算服务群
old_service := getComputeService();
setComputeService("auto");
current_service := getComputeService();
setComputeService(old_service);
return current_service;
// 输出:"auto"
loginedUser()
声明:function
获取登录的用户名。未登录时返回空字符串
返回:string
示例
范例01:读取断开连接后的登录用户名
先主动断开连接,使返回值固定为空字符串。
disconnectServer();
return loginedUser();
// 输出:""
loginServer(user_name, password[, var err_msg])
声明:function
登录服务器。成功返回 0,否则返回错误代码
| 参数 | 类型 | 说明 |
|---|---|---|
user_name |
string | 字符串类型,登录用户名。 |
password |
string | 字符串类型,登录密码。 |
err_msg |
string | 可选。登录失败时接收错误信息。 |
返回:integer
示例
范例01:使用脚本参数登录
以下示例要求将有效的用户名和密码作为前两个脚本参数传入。
login_result := -2;
if sysParamcount() >= 2 then
begin
connect_result := connectServer("tsl.tinysoft.com.cn", 443);
if connect_result = 0 then
begin
login_result := loginServer(sysParamStr(1), sysParamStr(2), err_msg);
disconnectServer();
end
else
login_result := connect_result;
end
return login_result;
// 输出:0
remoteAddress()
声明:function
第三方交互中得到远程登录的地址。未连接时返回空字符串
返回:string
示例
范例01:在 TSL 中读取断开连接后的服务器地址
先主动断开连接,使返回值固定为空字符串。
disconnectServer();
return remoteAddress();
// 输出:""
范例02:Python 交互
import sys
sys.path.append('D:\\tinysoft\\Analyse.NET\\')
import TSLPy3 as ts
login_result = ts.DefaultConnectAndLogin("test")
print(ts.Logined())
print("远程登录地址", ts.RemoteAddress())
print("服务器设置:", ts.GetService())
ts.SetComputeBitsOption(64) # 设置计算单位
print("计算位数设置:", ts.GetComputeBitsOption())
ts.Disconnect() # 断开连接
打印内容取决于 test 别名配置和服务器状态。
remotePort()
声明:function
获取远程端口
返回:integer
示例
范例01:读取断开连接后的服务器端口
先主动断开连接,使返回值固定为 0。
disconnectServer();
return remotePort();
// 输出:0
sendExecute(remote_exec, sys_param, call_back[, online = true])
声明:function
递交请求给服务器异步执行;成功返回和服务器通讯的句柄,0 表示错误
| 参数 | 类型 | 说明 |
|---|---|---|
remote_exec |
string | 递交远程的执行串,Program 开始 end结束。 |
sys_param |
array | 缺省的服务器系统环境参数。 |
call_back |
string | 当执行结束或者出错等等回调的TSL语言代码。 |
online |
boolean | 可选。默认 true,在线执行;为 false 时委托执行,结果存入 sys_param 中 resultname 指定的用户数据表。 |
返回:integer
实时行情订阅调用形式为 sendExecute("", order_param, call_back, false)。
| 参数 | 类型 | 说明 |
|---|---|---|
order_param |
array | 订阅请求参数,使用下表所列的字符串下标。 |
call_back |
string | 实时数据到达、订阅结束或出错时执行的 TSL 回调代码;信息位于系统参数。 |
order_param 的下标:
| 下标 | 类型 | 说明 |
|---|---|---|
Type |
integer | 必需。订阅类型,1 表示行情订阅。 |
IDs |
array | 必需。订阅 ID 数组;行情订阅时为股票列表。 |
SUBs |
array | 行情订阅必需。指定订阅字段。 |
普通行情支持的 SUBs 字段:StockID、StockName、date、price、open、close、high、low、vol、amount、cjbs、yclose、syl1、syl2、lb、buy1 至 buy5、sale1 至 sale5、bc1 至 bc5、sc1 至 sc5。
Level2 行情还支持:buy6 至 buy10、sale6 至 sale10、bc6 至 bc10、sc6 至 sc10。
示例
范例01:异步提交远程脚本
以下示例要求脚本已登录服务器;成功取得句柄时返回 true。
remote_exec := "program ServerExample; begin end.";
callback_code := "echo 'server_example_done';";
exec_handle := sendExecute(remote_exec, getSysParams(), callback_code, true);
submitted := exec_handle > 0;
if submitted then
endExecute(exec_handle);
return submitted;
// 输出:true
范例02:订阅实时行情后立即结束
以下示例要求脚本已登录服务器并具备行情权限;成功取得句柄时返回 true。
order_param := array(
"Type": 1,
"IDs": array("SH000001"),
"SUBs": array("StockID", "price"));
callback_code := "echo 'server_quote_update';";
exec_handle := sendExecute("", order_param, callback_code, false);
subscribed := exec_handle > 0;
if subscribed then
endExecute(exec_handle);
return subscribed;
// 输出:true
sendExecuteAndWait(remote_exec, sys_param, var exec_result, var env_or_err[, online = true])
声明:function
递交请求给服务器执行。成功返回 0,否则返回错误代码
| 参数 | 类型 | 说明 |
|---|---|---|
remote_exec |
string | 递交远程的执行串,以 Program 开始、end. 结束。 |
sys_param |
array | 服务器系统环境参数。 |
exec_result |
any | 接收远程执行结果。 |
env_or_err |
any | 执行成功时接收辅助结果;执行失败时接收错误信息。辅助结果由模型通过 env_return 系统参数设置。 |
online |
boolean | 可选。默认 true,在线执行;为 false 时委托执行,结果存入 sys_param 中 resultname 指定的用户数据表。 |
返回:integer
示例
范例01:同步执行远程脚本
以下示例要求脚本已登录服务器。
remote_exec := "program ServerExample; begin return 7; end.";
status := sendExecuteAndWait(
remote_exec, getSysParams(), exec_result, env_or_err, true);
if status = 0 then
example_result := exec_result;
else
example_result := env_or_err;
echo example_result;
// 输出:7
setComputebitsOption(v)
声明:function
设置使用的计算的位选项。返回修改前的设置选项
| 参数 | 类型 | 说明 |
|---|---|---|
v |
byte | 整数。0表示自动选择,1表示32位服务器计算 2表示64位服务器计算 |
返回:byte
示例
范例01:设置计算位数并恢复原值
old_option := getComputebitsOption();
setComputebitsOption(1);
current_option := getComputebitsOption();
setComputebitsOption(old_option);
return current_option;
// 输出:1
setComputeService(service)
声明:function
设置使用的计算的服务群。设置成功返回 0
| 参数 | 类型 | 说明 |
|---|---|---|
service |
string | 服务群名。空字符串表示默认服务,'auto' 表示自动选择,否则为指定的服务群名。 |
返回:integer
示例
范例01:设置自动选择并恢复原值
old_service := getComputeService();
setComputeService("auto");
current_service := getComputeService();
setComputeService(old_service);
return current_service;
// 输出:"auto"
tsTaskAdmin(command, var cmd_return, broad_cast_msg, err_msg[, wait_ms, data_recved_wait_ms])
声明:function
向天软平台发送管理命令。本地函数调用时需要加上 RDO2。成功返回 0,结果通过 cmd_return 和 broad_cast_msg 输出
| 参数 | 类型 | 说明 |
|---|---|---|
command |
string | 字符串类型,送入的命令串。更多任务管理命令查看:Q:任务管理说明 |
cmd_return |
string | 输出参数,接收命令执行结果。 |
broad_cast_msg |
string | 输出参数,接收命令期间收到的广播消息。 |
err_msg |
string | 输出参数,发生错误时接收错误信息。 |
wait_ms |
integer | 可选。等待信息的毫秒数。 |
data_recved_wait_ms |
integer | 可选。收到数据后继续等待多少毫秒再结束。 |
返回:integer
示例
范例01:发送任务管理命令
以下示例要求脚本已登录服务器。oa 命令无管理结果时,cmd_return 为 0。
rdo2 tsTaskAdmin("oa", cmd_return, broad_cast_msg, err_msg, 3000, 1000);
return cmd_return;
// 输出:0