[hal] Reject duplicate apps connecting as main robot process to mrccomm (#9015)

This commit is contained in:
Thad House
2026-06-27 12:15:13 -07:00
committed by GitHub
parent fd25e8666f
commit 5b4a578dc0
4 changed files with 26 additions and 11 deletions

View File

@@ -315,8 +315,23 @@ MrcLibDsImpl::MrcLibDsImpl() {
std::terminate();
}
// Initialize control first, making sure its properly checked for errors
MRC_Status controlInitStatus = MRC_DsCommsControl_Initialize();
if (controlInitStatus == MRC_STATUS_MULTIPLE_USER_PROGRAMS) {
fmt::print(stderr,
"Warning: Multiple user programs detected. Restarting app and "
"retrying...\n");
std::terminate();
}
if (controlInitStatus != MRC_STATUS_SUCCESS) {
fmt::print(stderr,
"Error: MRC_DsCommsControl_Initialize failed with status {}. "
"Restarting app and retrying...\n",
controlInitStatus);
std::terminate();
}
MRC_DsComms_Initialize();
MRC_DsCommsControl_Initialize();
MRC_Console_Initialize();
// Wait for 10 seconds for the system server to be ready.

View File

@@ -157,7 +157,7 @@ def update_libssh():
def update_mrclib():
# Keep in sync with shared/libmrclib.gradle
version = "2027.1.0-alpha-1-65-g21f308e"
version = "2027.1.0-alpha-1-69-gc4dd18d"
has_headers = True
classifiers = [

View File

@@ -2,17 +2,17 @@ http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "ht
################################################################################
# Generated by shared/bazel/thirdparty/integrity_helper.py
url_pattern = "https://frcmaven.wpi.edu/artifactory/development-2027/org/wpilib/mrclib/mrclib-cpp/2027.1.0-alpha-1-65-g21f308e/mrclib-cpp-2027.1.0-alpha-1-65-g21f308e-%s.zip"
url_pattern = "https://frcmaven.wpi.edu/artifactory/development-2027/org/wpilib/mrclib/mrclib-cpp/2027.1.0-alpha-1-69-gc4dd18d/mrclib-cpp-2027.1.0-alpha-1-69-gc4dd18d-%s.zip"
headers_integrity = "a8b38a00d584b50c3bb84800121df1022ac1500f59e4ecac85068adca7c0ac49"
headers_integrity = "7e0d3efa8d0264c3dcd7088a94180986555a97860db512c516a4d8a228585169"
_LIB_ARTIFACTS = {
"linuxarm64": ("linux", "**/*.so*", "38009110f0deeaeaec08b59fe37ce7e87d3ee4f3d86bd70a7003b22a75bcb43e"),
"linuxx86-64": ("linux", "**/*.so*", "503b3107febd35d32d28e5a3135c48fbd8c09d49d0b1f404182bc9b3c6877d12"),
"osxuniversal": ("osx", "**/*.dylib", "422a52e4b5f859ef3afb7a97e66ba72572894a73abd88126e09647929b1701c1"),
"linuxsystemcore": ("linux", "**/*.so*", "f84d4a6852d52da5535c054944b45f6f0c3d98271756ebfa28103a6f45e073e5"),
"windowsarm64": ("windows", "**/*.dll", "8fd028fa1144c1c18adf9facf4dd690f6d888565c73498bfae01849d0400dad0"),
"windowsx86-64": ("windows", "**/*.dll", "6e905f298fd261e68abb2bfcad7d47334d57f8b6dd14046bf2b98f55c7a657d7"),
"linuxarm64": ("linux", "**/*.so*", "b87f7187afc1780422526d010f2b195f2f160175dcfbba2834eda8f27c647304"),
"linuxx86-64": ("linux", "**/*.so*", "510088cbb2b7ca3fbd47691debbe89d5d2dd022cd5472a723c95a6e1db1b9cd8"),
"osxuniversal": ("osx", "**/*.dylib", "35d6df2d76165b099d9592bb29e84b8edd365382d926a818bfe97902919d0d63"),
"linuxsystemcore": ("linux", "**/*.so*", "40a2f1e641bec88ea21794dacf6212e99cdf19c0e7dbcb777159b6134d2ee390"),
"windowsarm64": ("windows", "**/*.dll", "6bcc645f5af742613401e4e3a162cf72193c6fd67d1dd32a5cefad899013d13b"),
"windowsx86-64": ("windows", "**/*.dll", "b69c8567586d7b5499fe602758259435c79a4ee9e311669baaff0f9878028b14"),
}
# End auto-gen
################################################################################

View File

@@ -5,7 +5,7 @@ nativeUtils {
artifactId = "mrclib-cpp"
headerClassifier = "headers"
ext = "zip"
version = '2027.1.0-alpha-1-65-g21f308e'
version = '2027.1.0-alpha-1-69-gc4dd18d'
skipAtRuntimePlatforms.add(nativeUtils.wpi.platforms.systemcore)
targetPlatforms.addAll(nativeUtils.wpi.platforms.allPlatforms)
noDebugSplit = true