API 参考
EventCallback
事件回调: Fn(event_json: String)
LogCallback
日志回调: Fn(log_line: String)
TinCore
打印服务客户端。
接口形状与 C API tijet_core.h 保持一致。
所有方法均通过 gRPC 调用服务端;错误以 TiJetError 形式返回。
new
创建客户端实例(对应 tijet_client_create())。
is_connected
检查是否已连接。
connect
连接到打印服务(对应 tijet_client_connect())。
address: 服务地址。None / 空字符串 → 默认 UDS;"host:port" → TCP;其他 → UDS。
gRPC 1.62.2 兼容性
tonic 使用纯 Rust HTTP/2 栈(h2 crate),与 gRPC C++ 1.62.2 的线协议完全兼容。
以下配置对齐 C++ 服务端的参数:
| tonic 参数 | gRPC C++ 对应参数 | 值 |
|---|---|---|
http2_keep_alive_interval | GRPC_ARG_KEEPALIVE_TIME_MS | 30 s |
keep_alive_timeout | GRPC_ARG_KEEPALIVE_TIMEOUT_MS | 10 s |
keep_alive_while_idle | GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS | true |
max_decoding_message_size | GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH | 64 MiB |
max_encoding_message_size | GRPC_ARG_MAX_SEND_MESSAGE_LENGTH | 64 MiB |
注意:tonic 的 keepalive 基于 HTTP/2 PING 帧(RFC 7540 §6.7), 而 gRPC C++ 使用自定义的 GRPC_ARG_KEEPALIVE_* 机制。 两者在 HTTP/2 层面等价,服务端无法区分客户端实现。
disconnect
断开连接(对应 tijet_client_disconnect())。
close
释放资源(对应 tijet_client_destroy())。
network_config
配置设备网络(对应 tijet_client_network_config())。
set_int
设置 int32 参数
get_int
获取 int32 参数
set_double
设置 double 参数
get_double
获取 double 参数
set_bool
设置 bool 参数
get_bool
获取 bool 参数
set_parameter
设置参数(对应 tijet_client_set_parameter())。
通过 Key 命名约定区分全局参数与驱动板参数。
get_parameter
获取参数(对应 tijet_client_get_parameter())。
通过 Key 命名约定区分全局参数与驱动板参数。
set_print_data
发送打印数据(对应 tijet_client_set_print_data())。
返回 SHA-256 校验和(64 字符十六进制字符串)。
set_event_callback
注册事件回调(对应 tijet_client_set_event_callback())。
start_event_subscription
启动事件订阅(对应 tijet_client_start_event_subscription())。
stop_event_subscription
停止事件订阅(对应 tijet_client_stop_event_subscription())。
set_log_callback
注册日志回调(对应 tijet_client_set_log_callback())。
start_log_subscription
启动日志订阅(对应 tijet_client_start_log_subscription())。
**注意:**当前 proto 尚无 WatchLogs RPC 定义,本方法为存根。
stop_log_subscription
停止日志订阅(对应 tijet_client_stop_log_subscription())。
last_error
最近一次错误信息(对应 tijet_client_last_error())。
parse_board_key
解析 Key 命名约定。
返回 Some((board_number, sub_key)) 若匹配 "board.N.xxx";
否则 None(全局参数)。
parse_target
将用户输入地址解析为 gRPC target。
json_str_to_proto_value
将 JSON 字符串转为 protobuf Value。
serde_json_to_proto_value
将 serde_json::Value 递归转为 protobuf Value。
proto_value_to_json_str
将 protobuf Value 转为 JSON 字符串。
proto_value_to_serde_json
将 protobuf Value 转为 serde_json::Value。