launchPanelHarness function
Launches the existing panel self-drive harness script.
Implementation
Future<HarnessProcess> launchPanelHarness(HarnessLaunchRequest request) async {
final Process process = await Process.start(
'bash',
<String>['tool/run_panel_selfdrive.sh', request.device],
workingDirectory: request.repoRoot,
environment: <String, String>{
...request.env,
'PANEL_SELFDRIVE_ARTIFACT_DIR': request.artifactDir,
},
);
final Stream<String> diagnostics = process.stderr
.transform(const SystemEncoding().decoder)
.transform(const LineSplitter())
.asBroadcastStream();
return HarnessProcess(
diagnostics: diagnostics,
exitCode: process.exitCode,
kill: () async {
process.kill(ProcessSignal.sigterm);
await process.exitCode;
},
);
}