fix(k1): harden BLE discovery and bridge recovery
This commit is contained in:
@@ -6,6 +6,7 @@ import {
|
||||
ApiError,
|
||||
xgridsK1Api,
|
||||
openEventSocket,
|
||||
type ConnectionVerifyRequest,
|
||||
type ConnectRequest,
|
||||
type EventSocketStatus,
|
||||
type OpenApplicationControlSessionRequest,
|
||||
@@ -34,6 +35,7 @@ import { selectMonotonicXgridsState } from "./stateOrdering";
|
||||
export type PendingAction =
|
||||
| "scan"
|
||||
| "connect"
|
||||
| "verify"
|
||||
| "control"
|
||||
| "live"
|
||||
| "replay"
|
||||
@@ -191,7 +193,7 @@ function messageFor(error: unknown): string {
|
||||
return "Запрос к локальному сервису устройства завершился ошибкой.";
|
||||
}
|
||||
|
||||
function networkProvisionFailureMessage(
|
||||
export function networkProvisionFailureMessage(
|
||||
operation: XgridsOperation | null | undefined,
|
||||
): string | null {
|
||||
if (!operation || operation.status !== "failed") return null;
|
||||
@@ -199,6 +201,8 @@ function networkProvisionFailureMessage(
|
||||
if (typeof code !== "string") return null;
|
||||
|
||||
const messages: Record<string, string> = {
|
||||
BleakGATTProtocolError:
|
||||
"Сканер отклонил запись сетевого профиля. Результат изменения сети неизвестен; автоматический повтор запрещён. Проверьте текущее состояние K1 или подхватите существующее подключение без изменения настроек Wi‑Fi.",
|
||||
"network-not-found":
|
||||
"Точка доступа выбранного K1 не найдена. Команда включения точки не повторялась; проверьте питание и состояние K1.",
|
||||
"credential-entry-cancelled":
|
||||
@@ -392,6 +396,12 @@ export function useXgridsK1Runtime(enabled: boolean) {
|
||||
[acceptState, run, state],
|
||||
);
|
||||
|
||||
const verifyConnection = useCallback(
|
||||
(request?: ConnectionVerifyRequest) =>
|
||||
run("verify", () => xgridsK1Api.verifyConnection(request)),
|
||||
[run],
|
||||
);
|
||||
|
||||
const openApplicationControlSession = useCallback(
|
||||
(request: OpenApplicationControlSessionRequest) =>
|
||||
run("control", () => xgridsK1Api.openApplicationControlSession(request)),
|
||||
@@ -773,6 +783,7 @@ export function useXgridsK1Runtime(enabled: boolean) {
|
||||
clearError: () => setError(null),
|
||||
scan,
|
||||
connect,
|
||||
verifyConnection,
|
||||
openApplicationControlSession,
|
||||
enterApplicationWorkspace,
|
||||
closeApplicationControlSession,
|
||||
|
||||
Reference in New Issue
Block a user