diff --git a/MainForm.pas b/MainForm.pas index 525c042..43dc0e4 100644 --- a/MainForm.pas +++ b/MainForm.pas @@ -4992,24 +4992,13 @@ end; procedure TMainForm.SyncWebConnect; var Dev: THPSDRDevice; - i: Integer; begin if FController.FNetwork.Connected then Exit; // уже подключены - FillChar(Dev, SizeOf(Dev), 0); - Dev.IPAddress := FWebSyncStr1; - // BoardType (тип платы не определяется при Connect — только из discovery/saved): - // сначала найденное устройство (есть и MAC для preload), иначе сохранённое по IP - // — как десктоп берёт FPendingBoardType из GetSavedBoardType. - i := FController.FDeviceStore.FindDiscoveredByIP(FWebSyncStr1); - if i >= 0 then - Dev.BoardType := FController.FDeviceStore.Discovered(i).BoardType - else - for i := 0 to FController.FDeviceStore.SavedCount - 1 do - if FController.FDeviceStore.Saved(i).IPAddress = FWebSyncStr1 then - begin - Dev.BoardType := FController.FDeviceStore.Saved(i).BoardType; - Break; - end; + // Восстанавливаем Kind/URI/Serial/BoardType/MAC из стора (discovered/saved) по + // IP или URI — как десктоп-путь и демон (ConnectTo(ResolveDevice(...))). Без этого + // saved Pluto коннектился с Kind=0 (=bkHPSDR) → UDP discovery → Hardware Timeout, + // хотя web оптимистично показывал "connected / Unknown Board". + Dev := FController.ResolveDevice(FWebSyncStr1); StartWithDevice(Dev); end;