mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
fix: web connect on GUI resolves device Kind/URI (Pluto vs HPSDR)
SyncWebConnect (web-коннект на десктопной GUI) собирал устройство сам только из IP+BoardType, оставляя Kind=0 (=bkHPSDR) и пустые URI/Serial. Из-за этого сохранённый Pluto подключался как openHPSDR → UDP discovery → Hardware Timeout (web при этом оптимистично показывал connected / Unknown Board). Десктоп-путь и демон уже шли через ResolveDevice. Теперь SyncWebConnect тоже зовёт FController.ResolveDevice(IP) — единый резолв (восстанавливает Kind/URI/Serial/BoardType/MAC из стора по IP или URI) для всех трёх входов. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+5
-16
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user