Live-USB durch eigenständige Anwendung ersetzen
Some checks failed
Tests / test (push) Has been cancelled

This commit is contained in:
2026-10-15 10:26:33 +02:00
parent 692bbbb815
commit 1f91db25b5
23 changed files with 205 additions and 1228 deletions

View File

@@ -99,7 +99,7 @@ fn temps() -> Vec<(String, f64)> {
}
fn thermal(settings: &crate::workflow::Settings) -> (bool, String) {
if !available("stress-ng") {
return (false, "UNAVAILABLE: stress-ng fehlt im Live-System".into());
return (false, "UNAVAILABLE: stress-ng ist nicht installiert".into());
}
let baseline = temps();
let start = Instant::now();
@@ -186,7 +186,7 @@ fn stability(settings: &crate::workflow::Settings) -> (bool, String) {
.and_then(|v| v.parse::<u64>().ok())
})
.unwrap_or(0);
// Conservatively cap test allocation; never allocate all free RAM in a live USB GUI.
// Conservatively cap test allocation; never allocate all free RAM in the GUI.
if mem_kib < 256 * 1024 {
return (
false,

View File

@@ -90,7 +90,7 @@ fn scanner_path() -> PathBuf {
if let Some(p) = std::env::var_os("CSR_SCANNER") {
return PathBuf::from(p);
}
// Prefer the scanner beside this build, then the installed live-system scanner.
// Prefer the scanner bundled beside this executable, then a system installation.
if let Ok(exe) = std::env::current_exe() {
if let Some(parent) = exe.parent() {
let sibling = parent.join("pc-intake");
@@ -782,7 +782,7 @@ impl App {
}
ui.add_space(16.0);
if !self.station_ready || self.inspection_upload_pending || self.intake_upload_pending || self.flush_pending {
ui.colored_label(ORANGE,tr(en,"Noch nicht vollständig synchronisiert. Ergebnisse bleiben auf diesem USB gespeichert.","Not fully synced yet. Results remain saved on this USB."));
ui.colored_label(ORANGE,tr(en,"Noch nicht vollständig synchronisiert. Ergebnisse bleiben lokal gespeichert.","Not fully synced yet. Results remain saved locally."));
if ui.add_enabled(!self.busy(),egui::Button::new(tr(en,"Offline speichern und herunterfahren","Save offline and shut down"))).clicked() && self.persist() {
let data=self.data.clone();
let inspection=self.inspection.as_ref().filter(|s|!s.sync_phase.is_empty()).map(|s|data.join("inspections").join(format!("{}.json",s.asset)));
@@ -821,8 +821,8 @@ impl App {
ORANGE,
tr(
en,
"Keine gültige Hardware-Kennung. Aktuellen USB neu starten.",
"No valid hardware identity. Reboot the updated USB.",
"Keine gültige Hardware-Kennung. Anwendung neu starten und erneut erfassen.",
"No valid hardware identity. Restart the application and scan again.",
),
);
}
@@ -1488,8 +1488,8 @@ impl App {
});
ui.small(tr(
en,
"Die Tastaturbelegung wird beim nächsten Start des USB-Systems angewendet.",
"The keyboard layout is applied on the next USB-system boot.",
"Die Tastaturbelegung wird beim nächsten Start der Anwendung angewendet.",
"The keyboard layout is applied on the next application start.",
));
ui.label(tr(en, "WLAN-Testserver", "Wi-Fi test server"));
ui.text_edit_singleline(&mut self.settings_draft.test_url);

View File

@@ -549,7 +549,7 @@ impl Wifi {
ui.small(crate::tr(en, "Leer lassen, wenn das Passwort bereits in NetworkManager gespeichert ist.", "Leave blank to use a password already saved in NetworkManager."));
} else { ui.label(crate::tr(en, "Offenes Netzwerk – kein Passwort nötig.", "Open network — no password needed.")); }
if self.saved_path.is_some() {
ui.checkbox(&mut self.remember, crate::tr(en, "Werkstatt-WLAN auf USB merken", "Remember workshop Wi-Fi on USB"));
ui.checkbox(&mut self.remember, crate::tr(en, "Werkstatt-WLAN speichern", "Remember workshop Wi-Fi"));
}
if ui.button(crate::tr(en, "Mit WLAN verbinden", "Connect to Wi-Fi")).clicked() {
let password = self.password.clone(); self.show_password = false;
@@ -558,7 +558,7 @@ impl Wifi {
thread::spawn(move || {
let result = connect(&n, &password).and_then(|_| {
if let Some(path) = save {
if n.secured() && !n.security.contains("OWE") && password.is_empty() { return Err("Connected, but enter password once to save it on USB / Verbunden; Passwort zum Speichern einmal eingeben.".into()); }
if n.secured() && !n.security.contains("OWE") && password.is_empty() { return Err("Connected, but enter password once to save it / Verbunden; Passwort zum Speichern einmal eingeben.".into()); }
save_network(&path, &n.ssid, &password)?;
}
Ok(())