@mytec: iter3.5.0 ready for testing
This commit is contained in:
@@ -212,6 +212,53 @@ class ApiService {
|
||||
if (!response.ok) throw new Error('Failed to get cache stats');
|
||||
return response.json();
|
||||
}
|
||||
|
||||
// === GPU API ===
|
||||
|
||||
async getGPUStatus(): Promise<GPUStatus> {
|
||||
const response = await fetch(`${API_BASE}/api/gpu/status`);
|
||||
if (!response.ok) throw new Error('Failed to get GPU status');
|
||||
return response.json();
|
||||
}
|
||||
|
||||
async getGPUDevices(): Promise<{ devices: GPUDevice[] }> {
|
||||
const response = await fetch(`${API_BASE}/api/gpu/devices`);
|
||||
if (!response.ok) throw new Error('Failed to get GPU devices');
|
||||
return response.json();
|
||||
}
|
||||
|
||||
async setGPUDevice(backend: string, index: number = 0): Promise<{ status: string; backend: string; device: string }> {
|
||||
const response = await fetch(`${API_BASE}/api/gpu/set`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ backend, index }),
|
||||
});
|
||||
if (!response.ok) {
|
||||
const err = await response.json().catch(() => ({ detail: 'Failed to set GPU device' }));
|
||||
throw new Error(err.detail || 'Failed to set GPU device');
|
||||
}
|
||||
return response.json();
|
||||
}
|
||||
|
||||
// === Terrain Profile API ===
|
||||
|
||||
async getTerrainProfile(
|
||||
lat1: number, lon1: number,
|
||||
lat2: number, lon2: number,
|
||||
points: number = 100,
|
||||
): Promise<TerrainProfilePoint[]> {
|
||||
const params = new URLSearchParams({
|
||||
lat1: lat1.toString(),
|
||||
lon1: lon1.toString(),
|
||||
lat2: lat2.toString(),
|
||||
lon2: lon2.toString(),
|
||||
points: points.toString(),
|
||||
});
|
||||
const response = await fetch(`${API_BASE}/api/terrain/profile?${params}`);
|
||||
if (!response.ok) throw new Error('Failed to get terrain profile');
|
||||
const data = await response.json();
|
||||
return data.profile ?? data;
|
||||
}
|
||||
}
|
||||
|
||||
// === Region types ===
|
||||
@@ -244,4 +291,29 @@ export interface CacheStats {
|
||||
vegetation_mb: number;
|
||||
}
|
||||
|
||||
// === GPU types ===
|
||||
|
||||
export interface GPUDevice {
|
||||
backend: string;
|
||||
index: number;
|
||||
name: string;
|
||||
memory_mb: number;
|
||||
}
|
||||
|
||||
export interface GPUStatus {
|
||||
active_backend: string;
|
||||
active_device: GPUDevice | null;
|
||||
gpu_available: boolean;
|
||||
available_devices: GPUDevice[];
|
||||
}
|
||||
|
||||
// === Terrain Profile types ===
|
||||
|
||||
export interface TerrainProfilePoint {
|
||||
lat: number;
|
||||
lon: number;
|
||||
elevation: number;
|
||||
distance: number;
|
||||
}
|
||||
|
||||
export const api = new ApiService();
|
||||
|
||||
Reference in New Issue
Block a user