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_intervalGRPC_ARG_KEEPALIVE_TIME_MS30 s
keep_alive_timeoutGRPC_ARG_KEEPALIVE_TIMEOUT_MS10 s
keep_alive_while_idleGRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLStrue
max_decoding_message_sizeGRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH64 MiB
max_encoding_message_sizeGRPC_ARG_MAX_SEND_MESSAGE_LENGTH64 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。