This repository was archived by the owner on Apr 9, 2026. It is now read-only.

Stripped code - #4

Open
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code
Open

Stripped code#4
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code

Conversation

@alexanderlindquis

@alexanderlindquisalexanderlindquis commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Removed Features

    • Fingerprint identification functionality removed
    • Motion sensor (PIR) support removed
    • Fingerprint error tracking removed
  • New Features

    • Added light sensor subscription support
    • Added lidar sensor subscription support
  • Changes

    • Simplified sensor data transmission (excludes PIR and fingerprint data)
    • Error reporting now excludes fingerprint-related errors

@coderabbitai

coderabbitaiBot commented Nov 14, 2025

Copy link
Copy Markdown

Walkthrough

Fingerprint and PIR sensor modules are completely removed from the codebase, including header and implementation files. The microROS integration layer is updated to remove associated parameters, publishers, and data fields. The main control loop is refactored to eliminate initialization and data gathering for both sensors, resulting in a simplified transmission payload.

Changes

Cohort / File(s)Summary
Fingerprint Module Removal
MicrocontrollerCode/include/FingerprintFunctions.h, MicrocontrollerCode/src/FingerprintFunctions.cpp
Deleted entire fingerprint sensor module including public API declarations and implementation (setupFingerprint, getFingerprintID, loopFingerprint) and global Adafruit_Fingerprint instance.
PIR Module Removal
MicrocontrollerCode/include/PIRFunctions.h, MicrocontrollerCode/src/PIRFunctions.cpp
Removed PIR sensor driver module including pin constants (PIR_0–PIR_3), PIRSensors struct definition, and public functions (setupPIR, readPIRSingle, readAllPIR).
microROS Integration Updates
MicrocontrollerCode/include/microRosFunctions.h, MicrocontrollerCode/src/microRosFunctions.cpp
Updated API signatures to remove fingerprint and PIR parameters; deleted fingerprintPublisher and publishFingerprint function; simplified publishError to exclude fingerprint_error; added light and lidar subscription callbacks; removed PIR sensor fields from sensorMsg.
Main Control Loop Refactoring
MicrocontrollerCode/src/main.cpp
Removed fingerprint and PIR initialization, timing variables (lastFingerprintTime), error tracking (fingerprint_error), and sensor data gathering; updated transmitMsg call to exclude PIR and fingerprint data.
Debug Enhancement
MicrocontrollerCode/src/JoystickFunctions.cpp
Added Serial debug output for forward and sideways joystick values in joystickToDisplacement.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Verify all function calls to removed fingerprint and PIR functions (setupFingerprint, loopFingerprint, getFingerprintID, setupPIR, readAllPIR, readPIRSingle) have been completely eliminated from main.cpp and other call sites.
  • Confirm transmitMsg call signature in main.cpp matches the updated header (no PIRSensors parameter).
  • Ensure microRosSetup calls use the correct parameter list across all configurations (with/without ROS_DEBUG).
  • Validate that publishError calls no longer pass fingerprint_error parameter.
  • Check that removed #include statements for FingerprintFunctions.h and PIRFunctions.h don't cause compilation issues elsewhere.

Poem

🐰 Fingerprints fade and sensors depart,
The PIR lights dim in our code's heart,
Simpler transmissions hop through the wire,
Light and lidar dance ever higher! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe title 'Stripped code' is extremely vague and does not clearly convey what was actually removed or modified. While technically related to the changeset (code removal), it lacks specificity about the fingerprint/PIR sensor removal.Use a more specific title such as 'Remove fingerprint and PIR sensor functionality' or 'Strip fingerprint and PIR sensor modules from microcontroller code' to clearly communicate the primary changes.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch stripped-code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
MicrocontrollerCode/include/microRosFunctions.h (1)

15-22: Remove outdated parameter documentation.

Line 20 still references fingerprintTopicName in the comment, but this parameter has been removed from the function signature at Line 22.

Apply this diff to fix the documentation:

 /**
* Sets up microROS communication
* @param timerValue The transmission period
* @param nodeName The name of the node
* @param sensorTopicName The name of the topic
- * @param fingerprintTopicName
*/
boolean microRosSetup(unsigned int timerValue, const char *nodeName, const char *sensorTopicName);
🧹 Nitpick comments (2)
MicrocontrollerCode/src/JoystickFunctions.cpp (1)

15-15: Consider guarding debug output.

The Serial.println statement will execute on every call to joystickToDisplacement, which may impact performance. Consider wrapping it with #ifdef DEBUG to conditionally compile it only for debug builds.

Apply this diff to guard the debug output:

+#ifdef DEBUG
Serial.println("Joystick longitudinal displacement: " + String(forwardJoystick) + " latitudinal displacement: " + String(sidewaysJoystick));
+#endif
MicrocontrollerCode/src/microRosFunctions.cpp (1)

222-225: Clarify incomplete conditional compilation design rather than fix build failure.

The empty #ifdef ROS block is not causing a build failure—the code compiles in both configurations because function calls and definitions are paired within the same conditional blocks (both in #elif ROS_DEBUG). However, the structure reflects incomplete refactoring, as indicated by the TODO comment.

To improve clarity and prevent future confusion, either:

  1. Remove the empty #ifdef ROS block and TODOs if the ROS path doesn't require microRosSetup, or
  2. Implement the ROS path version of microRosSetup if intended.

Consider which path applies:

 //TODO add the fan subscriber
-#ifdef ROS-#elif ROS_DEBUG+#ifdef ROS_DEBUG
boolean microRosSetup(unsigned int timer_timeout, const char* nodeName, const char* topicName){
#endif
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f262cc2 and 8c83224.

📒 Files selected for processing (8)
  • MicrocontrollerCode/include/FingerprintFunctions.h (0 hunks)
  • MicrocontrollerCode/include/PIRFunctions.h (0 hunks)
  • MicrocontrollerCode/include/microRosFunctions.h (2 hunks)
  • MicrocontrollerCode/src/FingerprintFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/JoystickFunctions.cpp (1 hunks)
  • MicrocontrollerCode/src/PIRFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/main.cpp (2 hunks)
  • MicrocontrollerCode/src/microRosFunctions.cpp (2 hunks)
💤 Files with no reviewable changes (4)
  • MicrocontrollerCode/include/FingerprintFunctions.h
  • MicrocontrollerCode/src/FingerprintFunctions.cpp
  • MicrocontrollerCode/src/PIRFunctions.cpp
  • MicrocontrollerCode/include/PIRFunctions.h
🧰 Additional context used
🧬 Code graph analysis (2)
MicrocontrollerCode/src/main.cpp (1)
MicrocontrollerCode/src/microRosFunctions.cpp (6)
  • publishError (318-324)
  • publishError (318-318)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
MicrocontrollerCode/include/microRosFunctions.h (1)
MicrocontrollerCode/src/microRosFunctions.cpp (14)
  • microRosSetup (224-315)
  • microRosSetup (224-224)
  • create_entities (89-177)
  • create_entities (89-89)
  • destroy_entities (179-191)
  • destroy_entities (179-179)
  • microRosTick (193-219)
  • microRosTick (193-193)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
  • publishError (318-324)
  • publishError (318-318)
🪛 GitHub Actions: PlatformIO CI
MicrocontrollerCode/src/microRosFunctions.cpp

[error] 226-315: ROS target build failed. Syntax errors and macro misuse in microRosFunctions.cpp (e.g., 'set_microros_serial_transports(Serial);' produced 'expected constructor, destructor, or type conversion before '(' token'; 'allocator' undefined; RCCHECK macro expansion causing multiple compile errors).

🔇 Additional comments (6)
MicrocontrollerCode/include/microRosFunctions.h (1)

30-38: LGTM!

The function signatures have been correctly updated to remove PIR and fingerprint parameters. The subscription callback declarations are properly defined.

MicrocontrollerCode/src/main.cpp (3)

71-76: LGTM!

The error publishing logic has been correctly updated to remove fingerprint error handling while maintaining the existing error reporting for joystick ADC, ultrasonic ADC, and IMU sensors.


79-81: LGTM!

The Serial debug output correctly prints all three error states being tracked.


118-122: LGTM!

The function calls have been correctly updated to match the new signatures, removing PIR sensor data from transmitMsg and fingerprint error from publishError.

MicrocontrollerCode/src/microRosFunctions.cpp (2)

318-324: LGTM!

The publishError function has been correctly updated to handle only the three remaining error types, removing fingerprint error handling.


351-377: LGTM!

The transmitMsg function has been correctly updated to remove PIR sensor data from the transmission payload while maintaining all other sensor data.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@alexanderlindquis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Apr 9, 2026. It is now read-only.

Stripped code - #4

Open
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code
Open

Stripped code#4
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code

Conversation

@alexanderlindquis

@alexanderlindquisalexanderlindquis commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Removed Features

    • Fingerprint identification functionality removed
    • Motion sensor (PIR) support removed
    • Fingerprint error tracking removed
  • New Features

    • Added light sensor subscription support
    • Added lidar sensor subscription support
  • Changes

    • Simplified sensor data transmission (excludes PIR and fingerprint data)
    • Error reporting now excludes fingerprint-related errors

@coderabbitai

coderabbitaiBot commented Nov 14, 2025

Copy link
Copy Markdown

Walkthrough

Fingerprint and PIR sensor modules are completely removed from the codebase, including header and implementation files. The microROS integration layer is updated to remove associated parameters, publishers, and data fields. The main control loop is refactored to eliminate initialization and data gathering for both sensors, resulting in a simplified transmission payload.

Changes

Cohort / File(s)Summary
Fingerprint Module Removal
MicrocontrollerCode/include/FingerprintFunctions.h, MicrocontrollerCode/src/FingerprintFunctions.cpp
Deleted entire fingerprint sensor module including public API declarations and implementation (setupFingerprint, getFingerprintID, loopFingerprint) and global Adafruit_Fingerprint instance.
PIR Module Removal
MicrocontrollerCode/include/PIRFunctions.h, MicrocontrollerCode/src/PIRFunctions.cpp
Removed PIR sensor driver module including pin constants (PIR_0–PIR_3), PIRSensors struct definition, and public functions (setupPIR, readPIRSingle, readAllPIR).
microROS Integration Updates
MicrocontrollerCode/include/microRosFunctions.h, MicrocontrollerCode/src/microRosFunctions.cpp
Updated API signatures to remove fingerprint and PIR parameters; deleted fingerprintPublisher and publishFingerprint function; simplified publishError to exclude fingerprint_error; added light and lidar subscription callbacks; removed PIR sensor fields from sensorMsg.
Main Control Loop Refactoring
MicrocontrollerCode/src/main.cpp
Removed fingerprint and PIR initialization, timing variables (lastFingerprintTime), error tracking (fingerprint_error), and sensor data gathering; updated transmitMsg call to exclude PIR and fingerprint data.
Debug Enhancement
MicrocontrollerCode/src/JoystickFunctions.cpp
Added Serial debug output for forward and sideways joystick values in joystickToDisplacement.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Verify all function calls to removed fingerprint and PIR functions (setupFingerprint, loopFingerprint, getFingerprintID, setupPIR, readAllPIR, readPIRSingle) have been completely eliminated from main.cpp and other call sites.
  • Confirm transmitMsg call signature in main.cpp matches the updated header (no PIRSensors parameter).
  • Ensure microRosSetup calls use the correct parameter list across all configurations (with/without ROS_DEBUG).
  • Validate that publishError calls no longer pass fingerprint_error parameter.
  • Check that removed #include statements for FingerprintFunctions.h and PIRFunctions.h don't cause compilation issues elsewhere.

Poem

🐰 Fingerprints fade and sensors depart,
The PIR lights dim in our code's heart,
Simpler transmissions hop through the wire,
Light and lidar dance ever higher! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe title 'Stripped code' is extremely vague and does not clearly convey what was actually removed or modified. While technically related to the changeset (code removal), it lacks specificity about the fingerprint/PIR sensor removal.Use a more specific title such as 'Remove fingerprint and PIR sensor functionality' or 'Strip fingerprint and PIR sensor modules from microcontroller code' to clearly communicate the primary changes.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch stripped-code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
MicrocontrollerCode/include/microRosFunctions.h (1)

15-22: Remove outdated parameter documentation.

Line 20 still references fingerprintTopicName in the comment, but this parameter has been removed from the function signature at Line 22.

Apply this diff to fix the documentation:

 /**
* Sets up microROS communication
* @param timerValue The transmission period
* @param nodeName The name of the node
* @param sensorTopicName The name of the topic
- * @param fingerprintTopicName
*/
boolean microRosSetup(unsigned int timerValue, const char *nodeName, const char *sensorTopicName);
🧹 Nitpick comments (2)
MicrocontrollerCode/src/JoystickFunctions.cpp (1)

15-15: Consider guarding debug output.

The Serial.println statement will execute on every call to joystickToDisplacement, which may impact performance. Consider wrapping it with #ifdef DEBUG to conditionally compile it only for debug builds.

Apply this diff to guard the debug output:

+#ifdef DEBUG
Serial.println("Joystick longitudinal displacement: " + String(forwardJoystick) + " latitudinal displacement: " + String(sidewaysJoystick));
+#endif
MicrocontrollerCode/src/microRosFunctions.cpp (1)

222-225: Clarify incomplete conditional compilation design rather than fix build failure.

The empty #ifdef ROS block is not causing a build failure—the code compiles in both configurations because function calls and definitions are paired within the same conditional blocks (both in #elif ROS_DEBUG). However, the structure reflects incomplete refactoring, as indicated by the TODO comment.

To improve clarity and prevent future confusion, either:

  1. Remove the empty #ifdef ROS block and TODOs if the ROS path doesn't require microRosSetup, or
  2. Implement the ROS path version of microRosSetup if intended.

Consider which path applies:

 //TODO add the fan subscriber
-#ifdef ROS-#elif ROS_DEBUG+#ifdef ROS_DEBUG
boolean microRosSetup(unsigned int timer_timeout, const char* nodeName, const char* topicName){
#endif
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f262cc2 and 8c83224.

📒 Files selected for processing (8)
  • MicrocontrollerCode/include/FingerprintFunctions.h (0 hunks)
  • MicrocontrollerCode/include/PIRFunctions.h (0 hunks)
  • MicrocontrollerCode/include/microRosFunctions.h (2 hunks)
  • MicrocontrollerCode/src/FingerprintFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/JoystickFunctions.cpp (1 hunks)
  • MicrocontrollerCode/src/PIRFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/main.cpp (2 hunks)
  • MicrocontrollerCode/src/microRosFunctions.cpp (2 hunks)
💤 Files with no reviewable changes (4)
  • MicrocontrollerCode/include/FingerprintFunctions.h
  • MicrocontrollerCode/src/FingerprintFunctions.cpp
  • MicrocontrollerCode/src/PIRFunctions.cpp
  • MicrocontrollerCode/include/PIRFunctions.h
🧰 Additional context used
🧬 Code graph analysis (2)
MicrocontrollerCode/src/main.cpp (1)
MicrocontrollerCode/src/microRosFunctions.cpp (6)
  • publishError (318-324)
  • publishError (318-318)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
MicrocontrollerCode/include/microRosFunctions.h (1)
MicrocontrollerCode/src/microRosFunctions.cpp (14)
  • microRosSetup (224-315)
  • microRosSetup (224-224)
  • create_entities (89-177)
  • create_entities (89-89)
  • destroy_entities (179-191)
  • destroy_entities (179-179)
  • microRosTick (193-219)
  • microRosTick (193-193)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
  • publishError (318-324)
  • publishError (318-318)
🪛 GitHub Actions: PlatformIO CI
MicrocontrollerCode/src/microRosFunctions.cpp

[error] 226-315: ROS target build failed. Syntax errors and macro misuse in microRosFunctions.cpp (e.g., 'set_microros_serial_transports(Serial);' produced 'expected constructor, destructor, or type conversion before '(' token'; 'allocator' undefined; RCCHECK macro expansion causing multiple compile errors).

🔇 Additional comments (6)
MicrocontrollerCode/include/microRosFunctions.h (1)

30-38: LGTM!

The function signatures have been correctly updated to remove PIR and fingerprint parameters. The subscription callback declarations are properly defined.

MicrocontrollerCode/src/main.cpp (3)

71-76: LGTM!

The error publishing logic has been correctly updated to remove fingerprint error handling while maintaining the existing error reporting for joystick ADC, ultrasonic ADC, and IMU sensors.


79-81: LGTM!

The Serial debug output correctly prints all three error states being tracked.


118-122: LGTM!

The function calls have been correctly updated to match the new signatures, removing PIR sensor data from transmitMsg and fingerprint error from publishError.

MicrocontrollerCode/src/microRosFunctions.cpp (2)

318-324: LGTM!

The publishError function has been correctly updated to handle only the three remaining error types, removing fingerprint error handling.


351-377: LGTM!

The transmitMsg function has been correctly updated to remove PIR sensor data from the transmission payload while maintaining all other sensor data.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@alexanderlindquis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Apr 9, 2026. It is now read-only.

Stripped code - #4

Open
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code
Open

Stripped code#4
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code

Conversation

@alexanderlindquis

@alexanderlindquisalexanderlindquis commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Removed Features

    • Fingerprint identification functionality removed
    • Motion sensor (PIR) support removed
    • Fingerprint error tracking removed
  • New Features

    • Added light sensor subscription support
    • Added lidar sensor subscription support
  • Changes

    • Simplified sensor data transmission (excludes PIR and fingerprint data)
    • Error reporting now excludes fingerprint-related errors

@coderabbitai

coderabbitaiBot commented Nov 14, 2025

Copy link
Copy Markdown

Walkthrough

Fingerprint and PIR sensor modules are completely removed from the codebase, including header and implementation files. The microROS integration layer is updated to remove associated parameters, publishers, and data fields. The main control loop is refactored to eliminate initialization and data gathering for both sensors, resulting in a simplified transmission payload.

Changes

Cohort / File(s)Summary
Fingerprint Module Removal
MicrocontrollerCode/include/FingerprintFunctions.h, MicrocontrollerCode/src/FingerprintFunctions.cpp
Deleted entire fingerprint sensor module including public API declarations and implementation (setupFingerprint, getFingerprintID, loopFingerprint) and global Adafruit_Fingerprint instance.
PIR Module Removal
MicrocontrollerCode/include/PIRFunctions.h, MicrocontrollerCode/src/PIRFunctions.cpp
Removed PIR sensor driver module including pin constants (PIR_0–PIR_3), PIRSensors struct definition, and public functions (setupPIR, readPIRSingle, readAllPIR).
microROS Integration Updates
MicrocontrollerCode/include/microRosFunctions.h, MicrocontrollerCode/src/microRosFunctions.cpp
Updated API signatures to remove fingerprint and PIR parameters; deleted fingerprintPublisher and publishFingerprint function; simplified publishError to exclude fingerprint_error; added light and lidar subscription callbacks; removed PIR sensor fields from sensorMsg.
Main Control Loop Refactoring
MicrocontrollerCode/src/main.cpp
Removed fingerprint and PIR initialization, timing variables (lastFingerprintTime), error tracking (fingerprint_error), and sensor data gathering; updated transmitMsg call to exclude PIR and fingerprint data.
Debug Enhancement
MicrocontrollerCode/src/JoystickFunctions.cpp
Added Serial debug output for forward and sideways joystick values in joystickToDisplacement.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Verify all function calls to removed fingerprint and PIR functions (setupFingerprint, loopFingerprint, getFingerprintID, setupPIR, readAllPIR, readPIRSingle) have been completely eliminated from main.cpp and other call sites.
  • Confirm transmitMsg call signature in main.cpp matches the updated header (no PIRSensors parameter).
  • Ensure microRosSetup calls use the correct parameter list across all configurations (with/without ROS_DEBUG).
  • Validate that publishError calls no longer pass fingerprint_error parameter.
  • Check that removed #include statements for FingerprintFunctions.h and PIRFunctions.h don't cause compilation issues elsewhere.

Poem

🐰 Fingerprints fade and sensors depart,
The PIR lights dim in our code's heart,
Simpler transmissions hop through the wire,
Light and lidar dance ever higher! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe title 'Stripped code' is extremely vague and does not clearly convey what was actually removed or modified. While technically related to the changeset (code removal), it lacks specificity about the fingerprint/PIR sensor removal.Use a more specific title such as 'Remove fingerprint and PIR sensor functionality' or 'Strip fingerprint and PIR sensor modules from microcontroller code' to clearly communicate the primary changes.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch stripped-code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
MicrocontrollerCode/include/microRosFunctions.h (1)

15-22: Remove outdated parameter documentation.

Line 20 still references fingerprintTopicName in the comment, but this parameter has been removed from the function signature at Line 22.

Apply this diff to fix the documentation:

 /**
* Sets up microROS communication
* @param timerValue The transmission period
* @param nodeName The name of the node
* @param sensorTopicName The name of the topic
- * @param fingerprintTopicName
*/
boolean microRosSetup(unsigned int timerValue, const char *nodeName, const char *sensorTopicName);
🧹 Nitpick comments (2)
MicrocontrollerCode/src/JoystickFunctions.cpp (1)

15-15: Consider guarding debug output.

The Serial.println statement will execute on every call to joystickToDisplacement, which may impact performance. Consider wrapping it with #ifdef DEBUG to conditionally compile it only for debug builds.

Apply this diff to guard the debug output:

+#ifdef DEBUG
Serial.println("Joystick longitudinal displacement: " + String(forwardJoystick) + " latitudinal displacement: " + String(sidewaysJoystick));
+#endif
MicrocontrollerCode/src/microRosFunctions.cpp (1)

222-225: Clarify incomplete conditional compilation design rather than fix build failure.

The empty #ifdef ROS block is not causing a build failure—the code compiles in both configurations because function calls and definitions are paired within the same conditional blocks (both in #elif ROS_DEBUG). However, the structure reflects incomplete refactoring, as indicated by the TODO comment.

To improve clarity and prevent future confusion, either:

  1. Remove the empty #ifdef ROS block and TODOs if the ROS path doesn't require microRosSetup, or
  2. Implement the ROS path version of microRosSetup if intended.

Consider which path applies:

 //TODO add the fan subscriber
-#ifdef ROS-#elif ROS_DEBUG+#ifdef ROS_DEBUG
boolean microRosSetup(unsigned int timer_timeout, const char* nodeName, const char* topicName){
#endif
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f262cc2 and 8c83224.

📒 Files selected for processing (8)
  • MicrocontrollerCode/include/FingerprintFunctions.h (0 hunks)
  • MicrocontrollerCode/include/PIRFunctions.h (0 hunks)
  • MicrocontrollerCode/include/microRosFunctions.h (2 hunks)
  • MicrocontrollerCode/src/FingerprintFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/JoystickFunctions.cpp (1 hunks)
  • MicrocontrollerCode/src/PIRFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/main.cpp (2 hunks)
  • MicrocontrollerCode/src/microRosFunctions.cpp (2 hunks)
💤 Files with no reviewable changes (4)
  • MicrocontrollerCode/include/FingerprintFunctions.h
  • MicrocontrollerCode/src/FingerprintFunctions.cpp
  • MicrocontrollerCode/src/PIRFunctions.cpp
  • MicrocontrollerCode/include/PIRFunctions.h
🧰 Additional context used
🧬 Code graph analysis (2)
MicrocontrollerCode/src/main.cpp (1)
MicrocontrollerCode/src/microRosFunctions.cpp (6)
  • publishError (318-324)
  • publishError (318-318)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
MicrocontrollerCode/include/microRosFunctions.h (1)
MicrocontrollerCode/src/microRosFunctions.cpp (14)
  • microRosSetup (224-315)
  • microRosSetup (224-224)
  • create_entities (89-177)
  • create_entities (89-89)
  • destroy_entities (179-191)
  • destroy_entities (179-179)
  • microRosTick (193-219)
  • microRosTick (193-193)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
  • publishError (318-324)
  • publishError (318-318)
🪛 GitHub Actions: PlatformIO CI
MicrocontrollerCode/src/microRosFunctions.cpp

[error] 226-315: ROS target build failed. Syntax errors and macro misuse in microRosFunctions.cpp (e.g., 'set_microros_serial_transports(Serial);' produced 'expected constructor, destructor, or type conversion before '(' token'; 'allocator' undefined; RCCHECK macro expansion causing multiple compile errors).

🔇 Additional comments (6)
MicrocontrollerCode/include/microRosFunctions.h (1)

30-38: LGTM!

The function signatures have been correctly updated to remove PIR and fingerprint parameters. The subscription callback declarations are properly defined.

MicrocontrollerCode/src/main.cpp (3)

71-76: LGTM!

The error publishing logic has been correctly updated to remove fingerprint error handling while maintaining the existing error reporting for joystick ADC, ultrasonic ADC, and IMU sensors.


79-81: LGTM!

The Serial debug output correctly prints all three error states being tracked.


118-122: LGTM!

The function calls have been correctly updated to match the new signatures, removing PIR sensor data from transmitMsg and fingerprint error from publishError.

MicrocontrollerCode/src/microRosFunctions.cpp (2)

318-324: LGTM!

The publishError function has been correctly updated to handle only the three remaining error types, removing fingerprint error handling.


351-377: LGTM!

The transmitMsg function has been correctly updated to remove PIR sensor data from the transmission payload while maintaining all other sensor data.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@alexanderlindquis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Apr 9, 2026. It is now read-only.

Stripped code - #4

Open
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code
Open

Stripped code#4
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code

Conversation

@alexanderlindquis

@alexanderlindquisalexanderlindquis commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Removed Features

    • Fingerprint identification functionality removed
    • Motion sensor (PIR) support removed
    • Fingerprint error tracking removed
  • New Features

    • Added light sensor subscription support
    • Added lidar sensor subscription support
  • Changes

    • Simplified sensor data transmission (excludes PIR and fingerprint data)
    • Error reporting now excludes fingerprint-related errors

@coderabbitai

coderabbitaiBot commented Nov 14, 2025

Copy link
Copy Markdown

Walkthrough

Fingerprint and PIR sensor modules are completely removed from the codebase, including header and implementation files. The microROS integration layer is updated to remove associated parameters, publishers, and data fields. The main control loop is refactored to eliminate initialization and data gathering for both sensors, resulting in a simplified transmission payload.

Changes

Cohort / File(s)Summary
Fingerprint Module Removal
MicrocontrollerCode/include/FingerprintFunctions.h, MicrocontrollerCode/src/FingerprintFunctions.cpp
Deleted entire fingerprint sensor module including public API declarations and implementation (setupFingerprint, getFingerprintID, loopFingerprint) and global Adafruit_Fingerprint instance.
PIR Module Removal
MicrocontrollerCode/include/PIRFunctions.h, MicrocontrollerCode/src/PIRFunctions.cpp
Removed PIR sensor driver module including pin constants (PIR_0–PIR_3), PIRSensors struct definition, and public functions (setupPIR, readPIRSingle, readAllPIR).
microROS Integration Updates
MicrocontrollerCode/include/microRosFunctions.h, MicrocontrollerCode/src/microRosFunctions.cpp
Updated API signatures to remove fingerprint and PIR parameters; deleted fingerprintPublisher and publishFingerprint function; simplified publishError to exclude fingerprint_error; added light and lidar subscription callbacks; removed PIR sensor fields from sensorMsg.
Main Control Loop Refactoring
MicrocontrollerCode/src/main.cpp
Removed fingerprint and PIR initialization, timing variables (lastFingerprintTime), error tracking (fingerprint_error), and sensor data gathering; updated transmitMsg call to exclude PIR and fingerprint data.
Debug Enhancement
MicrocontrollerCode/src/JoystickFunctions.cpp
Added Serial debug output for forward and sideways joystick values in joystickToDisplacement.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Verify all function calls to removed fingerprint and PIR functions (setupFingerprint, loopFingerprint, getFingerprintID, setupPIR, readAllPIR, readPIRSingle) have been completely eliminated from main.cpp and other call sites.
  • Confirm transmitMsg call signature in main.cpp matches the updated header (no PIRSensors parameter).
  • Ensure microRosSetup calls use the correct parameter list across all configurations (with/without ROS_DEBUG).
  • Validate that publishError calls no longer pass fingerprint_error parameter.
  • Check that removed #include statements for FingerprintFunctions.h and PIRFunctions.h don't cause compilation issues elsewhere.

Poem

🐰 Fingerprints fade and sensors depart,
The PIR lights dim in our code's heart,
Simpler transmissions hop through the wire,
Light and lidar dance ever higher! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe title 'Stripped code' is extremely vague and does not clearly convey what was actually removed or modified. While technically related to the changeset (code removal), it lacks specificity about the fingerprint/PIR sensor removal.Use a more specific title such as 'Remove fingerprint and PIR sensor functionality' or 'Strip fingerprint and PIR sensor modules from microcontroller code' to clearly communicate the primary changes.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch stripped-code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
MicrocontrollerCode/include/microRosFunctions.h (1)

15-22: Remove outdated parameter documentation.

Line 20 still references fingerprintTopicName in the comment, but this parameter has been removed from the function signature at Line 22.

Apply this diff to fix the documentation:

 /**
* Sets up microROS communication
* @param timerValue The transmission period
* @param nodeName The name of the node
* @param sensorTopicName The name of the topic
- * @param fingerprintTopicName
*/
boolean microRosSetup(unsigned int timerValue, const char *nodeName, const char *sensorTopicName);
🧹 Nitpick comments (2)
MicrocontrollerCode/src/JoystickFunctions.cpp (1)

15-15: Consider guarding debug output.

The Serial.println statement will execute on every call to joystickToDisplacement, which may impact performance. Consider wrapping it with #ifdef DEBUG to conditionally compile it only for debug builds.

Apply this diff to guard the debug output:

+#ifdef DEBUG
Serial.println("Joystick longitudinal displacement: " + String(forwardJoystick) + " latitudinal displacement: " + String(sidewaysJoystick));
+#endif
MicrocontrollerCode/src/microRosFunctions.cpp (1)

222-225: Clarify incomplete conditional compilation design rather than fix build failure.

The empty #ifdef ROS block is not causing a build failure—the code compiles in both configurations because function calls and definitions are paired within the same conditional blocks (both in #elif ROS_DEBUG). However, the structure reflects incomplete refactoring, as indicated by the TODO comment.

To improve clarity and prevent future confusion, either:

  1. Remove the empty #ifdef ROS block and TODOs if the ROS path doesn't require microRosSetup, or
  2. Implement the ROS path version of microRosSetup if intended.

Consider which path applies:

 //TODO add the fan subscriber
-#ifdef ROS-#elif ROS_DEBUG+#ifdef ROS_DEBUG
boolean microRosSetup(unsigned int timer_timeout, const char* nodeName, const char* topicName){
#endif
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f262cc2 and 8c83224.

📒 Files selected for processing (8)
  • MicrocontrollerCode/include/FingerprintFunctions.h (0 hunks)
  • MicrocontrollerCode/include/PIRFunctions.h (0 hunks)
  • MicrocontrollerCode/include/microRosFunctions.h (2 hunks)
  • MicrocontrollerCode/src/FingerprintFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/JoystickFunctions.cpp (1 hunks)
  • MicrocontrollerCode/src/PIRFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/main.cpp (2 hunks)
  • MicrocontrollerCode/src/microRosFunctions.cpp (2 hunks)
💤 Files with no reviewable changes (4)
  • MicrocontrollerCode/include/FingerprintFunctions.h
  • MicrocontrollerCode/src/FingerprintFunctions.cpp
  • MicrocontrollerCode/src/PIRFunctions.cpp
  • MicrocontrollerCode/include/PIRFunctions.h
🧰 Additional context used
🧬 Code graph analysis (2)
MicrocontrollerCode/src/main.cpp (1)
MicrocontrollerCode/src/microRosFunctions.cpp (6)
  • publishError (318-324)
  • publishError (318-318)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
MicrocontrollerCode/include/microRosFunctions.h (1)
MicrocontrollerCode/src/microRosFunctions.cpp (14)
  • microRosSetup (224-315)
  • microRosSetup (224-224)
  • create_entities (89-177)
  • create_entities (89-89)
  • destroy_entities (179-191)
  • destroy_entities (179-179)
  • microRosTick (193-219)
  • microRosTick (193-193)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
  • publishError (318-324)
  • publishError (318-318)
🪛 GitHub Actions: PlatformIO CI
MicrocontrollerCode/src/microRosFunctions.cpp

[error] 226-315: ROS target build failed. Syntax errors and macro misuse in microRosFunctions.cpp (e.g., 'set_microros_serial_transports(Serial);' produced 'expected constructor, destructor, or type conversion before '(' token'; 'allocator' undefined; RCCHECK macro expansion causing multiple compile errors).

🔇 Additional comments (6)
MicrocontrollerCode/include/microRosFunctions.h (1)

30-38: LGTM!

The function signatures have been correctly updated to remove PIR and fingerprint parameters. The subscription callback declarations are properly defined.

MicrocontrollerCode/src/main.cpp (3)

71-76: LGTM!

The error publishing logic has been correctly updated to remove fingerprint error handling while maintaining the existing error reporting for joystick ADC, ultrasonic ADC, and IMU sensors.


79-81: LGTM!

The Serial debug output correctly prints all three error states being tracked.


118-122: LGTM!

The function calls have been correctly updated to match the new signatures, removing PIR sensor data from transmitMsg and fingerprint error from publishError.

MicrocontrollerCode/src/microRosFunctions.cpp (2)

318-324: LGTM!

The publishError function has been correctly updated to handle only the three remaining error types, removing fingerprint error handling.


351-377: LGTM!

The transmitMsg function has been correctly updated to remove PIR sensor data from the transmission payload while maintaining all other sensor data.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@alexanderlindquis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Apr 9, 2026. It is now read-only.

Stripped code - #4

Open
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code
Open

Stripped code#4
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code

Conversation

@alexanderlindquis

@alexanderlindquisalexanderlindquis commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Removed Features

    • Fingerprint identification functionality removed
    • Motion sensor (PIR) support removed
    • Fingerprint error tracking removed
  • New Features

    • Added light sensor subscription support
    • Added lidar sensor subscription support
  • Changes

    • Simplified sensor data transmission (excludes PIR and fingerprint data)
    • Error reporting now excludes fingerprint-related errors

@coderabbitai

coderabbitaiBot commented Nov 14, 2025

Copy link
Copy Markdown

Walkthrough

Fingerprint and PIR sensor modules are completely removed from the codebase, including header and implementation files. The microROS integration layer is updated to remove associated parameters, publishers, and data fields. The main control loop is refactored to eliminate initialization and data gathering for both sensors, resulting in a simplified transmission payload.

Changes

Cohort / File(s)Summary
Fingerprint Module Removal
MicrocontrollerCode/include/FingerprintFunctions.h, MicrocontrollerCode/src/FingerprintFunctions.cpp
Deleted entire fingerprint sensor module including public API declarations and implementation (setupFingerprint, getFingerprintID, loopFingerprint) and global Adafruit_Fingerprint instance.
PIR Module Removal
MicrocontrollerCode/include/PIRFunctions.h, MicrocontrollerCode/src/PIRFunctions.cpp
Removed PIR sensor driver module including pin constants (PIR_0–PIR_3), PIRSensors struct definition, and public functions (setupPIR, readPIRSingle, readAllPIR).
microROS Integration Updates
MicrocontrollerCode/include/microRosFunctions.h, MicrocontrollerCode/src/microRosFunctions.cpp
Updated API signatures to remove fingerprint and PIR parameters; deleted fingerprintPublisher and publishFingerprint function; simplified publishError to exclude fingerprint_error; added light and lidar subscription callbacks; removed PIR sensor fields from sensorMsg.
Main Control Loop Refactoring
MicrocontrollerCode/src/main.cpp
Removed fingerprint and PIR initialization, timing variables (lastFingerprintTime), error tracking (fingerprint_error), and sensor data gathering; updated transmitMsg call to exclude PIR and fingerprint data.
Debug Enhancement
MicrocontrollerCode/src/JoystickFunctions.cpp
Added Serial debug output for forward and sideways joystick values in joystickToDisplacement.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Verify all function calls to removed fingerprint and PIR functions (setupFingerprint, loopFingerprint, getFingerprintID, setupPIR, readAllPIR, readPIRSingle) have been completely eliminated from main.cpp and other call sites.
  • Confirm transmitMsg call signature in main.cpp matches the updated header (no PIRSensors parameter).
  • Ensure microRosSetup calls use the correct parameter list across all configurations (with/without ROS_DEBUG).
  • Validate that publishError calls no longer pass fingerprint_error parameter.
  • Check that removed #include statements for FingerprintFunctions.h and PIRFunctions.h don't cause compilation issues elsewhere.

Poem

🐰 Fingerprints fade and sensors depart,
The PIR lights dim in our code's heart,
Simpler transmissions hop through the wire,
Light and lidar dance ever higher! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe title 'Stripped code' is extremely vague and does not clearly convey what was actually removed or modified. While technically related to the changeset (code removal), it lacks specificity about the fingerprint/PIR sensor removal.Use a more specific title such as 'Remove fingerprint and PIR sensor functionality' or 'Strip fingerprint and PIR sensor modules from microcontroller code' to clearly communicate the primary changes.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch stripped-code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
MicrocontrollerCode/include/microRosFunctions.h (1)

15-22: Remove outdated parameter documentation.

Line 20 still references fingerprintTopicName in the comment, but this parameter has been removed from the function signature at Line 22.

Apply this diff to fix the documentation:

 /**
* Sets up microROS communication
* @param timerValue The transmission period
* @param nodeName The name of the node
* @param sensorTopicName The name of the topic
- * @param fingerprintTopicName
*/
boolean microRosSetup(unsigned int timerValue, const char *nodeName, const char *sensorTopicName);
🧹 Nitpick comments (2)
MicrocontrollerCode/src/JoystickFunctions.cpp (1)

15-15: Consider guarding debug output.

The Serial.println statement will execute on every call to joystickToDisplacement, which may impact performance. Consider wrapping it with #ifdef DEBUG to conditionally compile it only for debug builds.

Apply this diff to guard the debug output:

+#ifdef DEBUG
Serial.println("Joystick longitudinal displacement: " + String(forwardJoystick) + " latitudinal displacement: " + String(sidewaysJoystick));
+#endif
MicrocontrollerCode/src/microRosFunctions.cpp (1)

222-225: Clarify incomplete conditional compilation design rather than fix build failure.

The empty #ifdef ROS block is not causing a build failure—the code compiles in both configurations because function calls and definitions are paired within the same conditional blocks (both in #elif ROS_DEBUG). However, the structure reflects incomplete refactoring, as indicated by the TODO comment.

To improve clarity and prevent future confusion, either:

  1. Remove the empty #ifdef ROS block and TODOs if the ROS path doesn't require microRosSetup, or
  2. Implement the ROS path version of microRosSetup if intended.

Consider which path applies:

 //TODO add the fan subscriber
-#ifdef ROS-#elif ROS_DEBUG+#ifdef ROS_DEBUG
boolean microRosSetup(unsigned int timer_timeout, const char* nodeName, const char* topicName){
#endif
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f262cc2 and 8c83224.

📒 Files selected for processing (8)
  • MicrocontrollerCode/include/FingerprintFunctions.h (0 hunks)
  • MicrocontrollerCode/include/PIRFunctions.h (0 hunks)
  • MicrocontrollerCode/include/microRosFunctions.h (2 hunks)
  • MicrocontrollerCode/src/FingerprintFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/JoystickFunctions.cpp (1 hunks)
  • MicrocontrollerCode/src/PIRFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/main.cpp (2 hunks)
  • MicrocontrollerCode/src/microRosFunctions.cpp (2 hunks)
💤 Files with no reviewable changes (4)
  • MicrocontrollerCode/include/FingerprintFunctions.h
  • MicrocontrollerCode/src/FingerprintFunctions.cpp
  • MicrocontrollerCode/src/PIRFunctions.cpp
  • MicrocontrollerCode/include/PIRFunctions.h
🧰 Additional context used
🧬 Code graph analysis (2)
MicrocontrollerCode/src/main.cpp (1)
MicrocontrollerCode/src/microRosFunctions.cpp (6)
  • publishError (318-324)
  • publishError (318-318)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
MicrocontrollerCode/include/microRosFunctions.h (1)
MicrocontrollerCode/src/microRosFunctions.cpp (14)
  • microRosSetup (224-315)
  • microRosSetup (224-224)
  • create_entities (89-177)
  • create_entities (89-89)
  • destroy_entities (179-191)
  • destroy_entities (179-179)
  • microRosTick (193-219)
  • microRosTick (193-193)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
  • publishError (318-324)
  • publishError (318-318)
🪛 GitHub Actions: PlatformIO CI
MicrocontrollerCode/src/microRosFunctions.cpp

[error] 226-315: ROS target build failed. Syntax errors and macro misuse in microRosFunctions.cpp (e.g., 'set_microros_serial_transports(Serial);' produced 'expected constructor, destructor, or type conversion before '(' token'; 'allocator' undefined; RCCHECK macro expansion causing multiple compile errors).

🔇 Additional comments (6)
MicrocontrollerCode/include/microRosFunctions.h (1)

30-38: LGTM!

The function signatures have been correctly updated to remove PIR and fingerprint parameters. The subscription callback declarations are properly defined.

MicrocontrollerCode/src/main.cpp (3)

71-76: LGTM!

The error publishing logic has been correctly updated to remove fingerprint error handling while maintaining the existing error reporting for joystick ADC, ultrasonic ADC, and IMU sensors.


79-81: LGTM!

The Serial debug output correctly prints all three error states being tracked.


118-122: LGTM!

The function calls have been correctly updated to match the new signatures, removing PIR sensor data from transmitMsg and fingerprint error from publishError.

MicrocontrollerCode/src/microRosFunctions.cpp (2)

318-324: LGTM!

The publishError function has been correctly updated to handle only the three remaining error types, removing fingerprint error handling.


351-377: LGTM!

The transmitMsg function has been correctly updated to remove PIR sensor data from the transmission payload while maintaining all other sensor data.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@alexanderlindquis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Apr 9, 2026. It is now read-only.

Stripped code - #4

Open
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code
Open

Stripped code#4
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code

Conversation

@alexanderlindquis

@alexanderlindquisalexanderlindquis commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Removed Features

    • Fingerprint identification functionality removed
    • Motion sensor (PIR) support removed
    • Fingerprint error tracking removed
  • New Features

    • Added light sensor subscription support
    • Added lidar sensor subscription support
  • Changes

    • Simplified sensor data transmission (excludes PIR and fingerprint data)
    • Error reporting now excludes fingerprint-related errors

@coderabbitai

coderabbitaiBot commented Nov 14, 2025

Copy link
Copy Markdown

Walkthrough

Fingerprint and PIR sensor modules are completely removed from the codebase, including header and implementation files. The microROS integration layer is updated to remove associated parameters, publishers, and data fields. The main control loop is refactored to eliminate initialization and data gathering for both sensors, resulting in a simplified transmission payload.

Changes

Cohort / File(s)Summary
Fingerprint Module Removal
MicrocontrollerCode/include/FingerprintFunctions.h, MicrocontrollerCode/src/FingerprintFunctions.cpp
Deleted entire fingerprint sensor module including public API declarations and implementation (setupFingerprint, getFingerprintID, loopFingerprint) and global Adafruit_Fingerprint instance.
PIR Module Removal
MicrocontrollerCode/include/PIRFunctions.h, MicrocontrollerCode/src/PIRFunctions.cpp
Removed PIR sensor driver module including pin constants (PIR_0–PIR_3), PIRSensors struct definition, and public functions (setupPIR, readPIRSingle, readAllPIR).
microROS Integration Updates
MicrocontrollerCode/include/microRosFunctions.h, MicrocontrollerCode/src/microRosFunctions.cpp
Updated API signatures to remove fingerprint and PIR parameters; deleted fingerprintPublisher and publishFingerprint function; simplified publishError to exclude fingerprint_error; added light and lidar subscription callbacks; removed PIR sensor fields from sensorMsg.
Main Control Loop Refactoring
MicrocontrollerCode/src/main.cpp
Removed fingerprint and PIR initialization, timing variables (lastFingerprintTime), error tracking (fingerprint_error), and sensor data gathering; updated transmitMsg call to exclude PIR and fingerprint data.
Debug Enhancement
MicrocontrollerCode/src/JoystickFunctions.cpp
Added Serial debug output for forward and sideways joystick values in joystickToDisplacement.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Verify all function calls to removed fingerprint and PIR functions (setupFingerprint, loopFingerprint, getFingerprintID, setupPIR, readAllPIR, readPIRSingle) have been completely eliminated from main.cpp and other call sites.
  • Confirm transmitMsg call signature in main.cpp matches the updated header (no PIRSensors parameter).
  • Ensure microRosSetup calls use the correct parameter list across all configurations (with/without ROS_DEBUG).
  • Validate that publishError calls no longer pass fingerprint_error parameter.
  • Check that removed #include statements for FingerprintFunctions.h and PIRFunctions.h don't cause compilation issues elsewhere.

Poem

🐰 Fingerprints fade and sensors depart,
The PIR lights dim in our code's heart,
Simpler transmissions hop through the wire,
Light and lidar dance ever higher! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe title 'Stripped code' is extremely vague and does not clearly convey what was actually removed or modified. While technically related to the changeset (code removal), it lacks specificity about the fingerprint/PIR sensor removal.Use a more specific title such as 'Remove fingerprint and PIR sensor functionality' or 'Strip fingerprint and PIR sensor modules from microcontroller code' to clearly communicate the primary changes.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch stripped-code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
MicrocontrollerCode/include/microRosFunctions.h (1)

15-22: Remove outdated parameter documentation.

Line 20 still references fingerprintTopicName in the comment, but this parameter has been removed from the function signature at Line 22.

Apply this diff to fix the documentation:

 /**
* Sets up microROS communication
* @param timerValue The transmission period
* @param nodeName The name of the node
* @param sensorTopicName The name of the topic
- * @param fingerprintTopicName
*/
boolean microRosSetup(unsigned int timerValue, const char *nodeName, const char *sensorTopicName);
🧹 Nitpick comments (2)
MicrocontrollerCode/src/JoystickFunctions.cpp (1)

15-15: Consider guarding debug output.

The Serial.println statement will execute on every call to joystickToDisplacement, which may impact performance. Consider wrapping it with #ifdef DEBUG to conditionally compile it only for debug builds.

Apply this diff to guard the debug output:

+#ifdef DEBUG
Serial.println("Joystick longitudinal displacement: " + String(forwardJoystick) + " latitudinal displacement: " + String(sidewaysJoystick));
+#endif
MicrocontrollerCode/src/microRosFunctions.cpp (1)

222-225: Clarify incomplete conditional compilation design rather than fix build failure.

The empty #ifdef ROS block is not causing a build failure—the code compiles in both configurations because function calls and definitions are paired within the same conditional blocks (both in #elif ROS_DEBUG). However, the structure reflects incomplete refactoring, as indicated by the TODO comment.

To improve clarity and prevent future confusion, either:

  1. Remove the empty #ifdef ROS block and TODOs if the ROS path doesn't require microRosSetup, or
  2. Implement the ROS path version of microRosSetup if intended.

Consider which path applies:

 //TODO add the fan subscriber
-#ifdef ROS-#elif ROS_DEBUG+#ifdef ROS_DEBUG
boolean microRosSetup(unsigned int timer_timeout, const char* nodeName, const char* topicName){
#endif
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f262cc2 and 8c83224.

📒 Files selected for processing (8)
  • MicrocontrollerCode/include/FingerprintFunctions.h (0 hunks)
  • MicrocontrollerCode/include/PIRFunctions.h (0 hunks)
  • MicrocontrollerCode/include/microRosFunctions.h (2 hunks)
  • MicrocontrollerCode/src/FingerprintFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/JoystickFunctions.cpp (1 hunks)
  • MicrocontrollerCode/src/PIRFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/main.cpp (2 hunks)
  • MicrocontrollerCode/src/microRosFunctions.cpp (2 hunks)
💤 Files with no reviewable changes (4)
  • MicrocontrollerCode/include/FingerprintFunctions.h
  • MicrocontrollerCode/src/FingerprintFunctions.cpp
  • MicrocontrollerCode/src/PIRFunctions.cpp
  • MicrocontrollerCode/include/PIRFunctions.h
🧰 Additional context used
🧬 Code graph analysis (2)
MicrocontrollerCode/src/main.cpp (1)
MicrocontrollerCode/src/microRosFunctions.cpp (6)
  • publishError (318-324)
  • publishError (318-318)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
MicrocontrollerCode/include/microRosFunctions.h (1)
MicrocontrollerCode/src/microRosFunctions.cpp (14)
  • microRosSetup (224-315)
  • microRosSetup (224-224)
  • create_entities (89-177)
  • create_entities (89-89)
  • destroy_entities (179-191)
  • destroy_entities (179-179)
  • microRosTick (193-219)
  • microRosTick (193-193)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
  • publishError (318-324)
  • publishError (318-318)
🪛 GitHub Actions: PlatformIO CI
MicrocontrollerCode/src/microRosFunctions.cpp

[error] 226-315: ROS target build failed. Syntax errors and macro misuse in microRosFunctions.cpp (e.g., 'set_microros_serial_transports(Serial);' produced 'expected constructor, destructor, or type conversion before '(' token'; 'allocator' undefined; RCCHECK macro expansion causing multiple compile errors).

🔇 Additional comments (6)
MicrocontrollerCode/include/microRosFunctions.h (1)

30-38: LGTM!

The function signatures have been correctly updated to remove PIR and fingerprint parameters. The subscription callback declarations are properly defined.

MicrocontrollerCode/src/main.cpp (3)

71-76: LGTM!

The error publishing logic has been correctly updated to remove fingerprint error handling while maintaining the existing error reporting for joystick ADC, ultrasonic ADC, and IMU sensors.


79-81: LGTM!

The Serial debug output correctly prints all three error states being tracked.


118-122: LGTM!

The function calls have been correctly updated to match the new signatures, removing PIR sensor data from transmitMsg and fingerprint error from publishError.

MicrocontrollerCode/src/microRosFunctions.cpp (2)

318-324: LGTM!

The publishError function has been correctly updated to handle only the three remaining error types, removing fingerprint error handling.


351-377: LGTM!

The transmitMsg function has been correctly updated to remove PIR sensor data from the transmission payload while maintaining all other sensor data.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@alexanderlindquis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Apr 9, 2026. It is now read-only.

Stripped code - #4

Open
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code
Open

Stripped code#4
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code

Conversation

@alexanderlindquis

@alexanderlindquisalexanderlindquis commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Removed Features

    • Fingerprint identification functionality removed
    • Motion sensor (PIR) support removed
    • Fingerprint error tracking removed
  • New Features

    • Added light sensor subscription support
    • Added lidar sensor subscription support
  • Changes

    • Simplified sensor data transmission (excludes PIR and fingerprint data)
    • Error reporting now excludes fingerprint-related errors

@coderabbitai

coderabbitaiBot commented Nov 14, 2025

Copy link
Copy Markdown

Walkthrough

Fingerprint and PIR sensor modules are completely removed from the codebase, including header and implementation files. The microROS integration layer is updated to remove associated parameters, publishers, and data fields. The main control loop is refactored to eliminate initialization and data gathering for both sensors, resulting in a simplified transmission payload.

Changes

Cohort / File(s)Summary
Fingerprint Module Removal
MicrocontrollerCode/include/FingerprintFunctions.h, MicrocontrollerCode/src/FingerprintFunctions.cpp
Deleted entire fingerprint sensor module including public API declarations and implementation (setupFingerprint, getFingerprintID, loopFingerprint) and global Adafruit_Fingerprint instance.
PIR Module Removal
MicrocontrollerCode/include/PIRFunctions.h, MicrocontrollerCode/src/PIRFunctions.cpp
Removed PIR sensor driver module including pin constants (PIR_0–PIR_3), PIRSensors struct definition, and public functions (setupPIR, readPIRSingle, readAllPIR).
microROS Integration Updates
MicrocontrollerCode/include/microRosFunctions.h, MicrocontrollerCode/src/microRosFunctions.cpp
Updated API signatures to remove fingerprint and PIR parameters; deleted fingerprintPublisher and publishFingerprint function; simplified publishError to exclude fingerprint_error; added light and lidar subscription callbacks; removed PIR sensor fields from sensorMsg.
Main Control Loop Refactoring
MicrocontrollerCode/src/main.cpp
Removed fingerprint and PIR initialization, timing variables (lastFingerprintTime), error tracking (fingerprint_error), and sensor data gathering; updated transmitMsg call to exclude PIR and fingerprint data.
Debug Enhancement
MicrocontrollerCode/src/JoystickFunctions.cpp
Added Serial debug output for forward and sideways joystick values in joystickToDisplacement.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Verify all function calls to removed fingerprint and PIR functions (setupFingerprint, loopFingerprint, getFingerprintID, setupPIR, readAllPIR, readPIRSingle) have been completely eliminated from main.cpp and other call sites.
  • Confirm transmitMsg call signature in main.cpp matches the updated header (no PIRSensors parameter).
  • Ensure microRosSetup calls use the correct parameter list across all configurations (with/without ROS_DEBUG).
  • Validate that publishError calls no longer pass fingerprint_error parameter.
  • Check that removed #include statements for FingerprintFunctions.h and PIRFunctions.h don't cause compilation issues elsewhere.

Poem

🐰 Fingerprints fade and sensors depart,
The PIR lights dim in our code's heart,
Simpler transmissions hop through the wire,
Light and lidar dance ever higher! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe title 'Stripped code' is extremely vague and does not clearly convey what was actually removed or modified. While technically related to the changeset (code removal), it lacks specificity about the fingerprint/PIR sensor removal.Use a more specific title such as 'Remove fingerprint and PIR sensor functionality' or 'Strip fingerprint and PIR sensor modules from microcontroller code' to clearly communicate the primary changes.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch stripped-code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
MicrocontrollerCode/include/microRosFunctions.h (1)

15-22: Remove outdated parameter documentation.

Line 20 still references fingerprintTopicName in the comment, but this parameter has been removed from the function signature at Line 22.

Apply this diff to fix the documentation:

 /**
* Sets up microROS communication
* @param timerValue The transmission period
* @param nodeName The name of the node
* @param sensorTopicName The name of the topic
- * @param fingerprintTopicName
*/
boolean microRosSetup(unsigned int timerValue, const char *nodeName, const char *sensorTopicName);
🧹 Nitpick comments (2)
MicrocontrollerCode/src/JoystickFunctions.cpp (1)

15-15: Consider guarding debug output.

The Serial.println statement will execute on every call to joystickToDisplacement, which may impact performance. Consider wrapping it with #ifdef DEBUG to conditionally compile it only for debug builds.

Apply this diff to guard the debug output:

+#ifdef DEBUG
Serial.println("Joystick longitudinal displacement: " + String(forwardJoystick) + " latitudinal displacement: " + String(sidewaysJoystick));
+#endif
MicrocontrollerCode/src/microRosFunctions.cpp (1)

222-225: Clarify incomplete conditional compilation design rather than fix build failure.

The empty #ifdef ROS block is not causing a build failure—the code compiles in both configurations because function calls and definitions are paired within the same conditional blocks (both in #elif ROS_DEBUG). However, the structure reflects incomplete refactoring, as indicated by the TODO comment.

To improve clarity and prevent future confusion, either:

  1. Remove the empty #ifdef ROS block and TODOs if the ROS path doesn't require microRosSetup, or
  2. Implement the ROS path version of microRosSetup if intended.

Consider which path applies:

 //TODO add the fan subscriber
-#ifdef ROS-#elif ROS_DEBUG+#ifdef ROS_DEBUG
boolean microRosSetup(unsigned int timer_timeout, const char* nodeName, const char* topicName){
#endif
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f262cc2 and 8c83224.

📒 Files selected for processing (8)
  • MicrocontrollerCode/include/FingerprintFunctions.h (0 hunks)
  • MicrocontrollerCode/include/PIRFunctions.h (0 hunks)
  • MicrocontrollerCode/include/microRosFunctions.h (2 hunks)
  • MicrocontrollerCode/src/FingerprintFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/JoystickFunctions.cpp (1 hunks)
  • MicrocontrollerCode/src/PIRFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/main.cpp (2 hunks)
  • MicrocontrollerCode/src/microRosFunctions.cpp (2 hunks)
💤 Files with no reviewable changes (4)
  • MicrocontrollerCode/include/FingerprintFunctions.h
  • MicrocontrollerCode/src/FingerprintFunctions.cpp
  • MicrocontrollerCode/src/PIRFunctions.cpp
  • MicrocontrollerCode/include/PIRFunctions.h
🧰 Additional context used
🧬 Code graph analysis (2)
MicrocontrollerCode/src/main.cpp (1)
MicrocontrollerCode/src/microRosFunctions.cpp (6)
  • publishError (318-324)
  • publishError (318-318)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
MicrocontrollerCode/include/microRosFunctions.h (1)
MicrocontrollerCode/src/microRosFunctions.cpp (14)
  • microRosSetup (224-315)
  • microRosSetup (224-224)
  • create_entities (89-177)
  • create_entities (89-89)
  • destroy_entities (179-191)
  • destroy_entities (179-179)
  • microRosTick (193-219)
  • microRosTick (193-193)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
  • publishError (318-324)
  • publishError (318-318)
🪛 GitHub Actions: PlatformIO CI
MicrocontrollerCode/src/microRosFunctions.cpp

[error] 226-315: ROS target build failed. Syntax errors and macro misuse in microRosFunctions.cpp (e.g., 'set_microros_serial_transports(Serial);' produced 'expected constructor, destructor, or type conversion before '(' token'; 'allocator' undefined; RCCHECK macro expansion causing multiple compile errors).

🔇 Additional comments (6)
MicrocontrollerCode/include/microRosFunctions.h (1)

30-38: LGTM!

The function signatures have been correctly updated to remove PIR and fingerprint parameters. The subscription callback declarations are properly defined.

MicrocontrollerCode/src/main.cpp (3)

71-76: LGTM!

The error publishing logic has been correctly updated to remove fingerprint error handling while maintaining the existing error reporting for joystick ADC, ultrasonic ADC, and IMU sensors.


79-81: LGTM!

The Serial debug output correctly prints all three error states being tracked.


118-122: LGTM!

The function calls have been correctly updated to match the new signatures, removing PIR sensor data from transmitMsg and fingerprint error from publishError.

MicrocontrollerCode/src/microRosFunctions.cpp (2)

318-324: LGTM!

The publishError function has been correctly updated to handle only the three remaining error types, removing fingerprint error handling.


351-377: LGTM!

The transmitMsg function has been correctly updated to remove PIR sensor data from the transmission payload while maintaining all other sensor data.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@alexanderlindquis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Apr 9, 2026. It is now read-only.

Stripped code - #4

Open
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code
Open

Stripped code#4
alexanderlindquis wants to merge 3 commits into
mainfrom
stripped-code

Conversation

@alexanderlindquis

@alexanderlindquisalexanderlindquis commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Removed Features

    • Fingerprint identification functionality removed
    • Motion sensor (PIR) support removed
    • Fingerprint error tracking removed
  • New Features

    • Added light sensor subscription support
    • Added lidar sensor subscription support
  • Changes

    • Simplified sensor data transmission (excludes PIR and fingerprint data)
    • Error reporting now excludes fingerprint-related errors

@coderabbitai

coderabbitaiBot commented Nov 14, 2025

Copy link
Copy Markdown

Walkthrough

Fingerprint and PIR sensor modules are completely removed from the codebase, including header and implementation files. The microROS integration layer is updated to remove associated parameters, publishers, and data fields. The main control loop is refactored to eliminate initialization and data gathering for both sensors, resulting in a simplified transmission payload.

Changes

Cohort / File(s)Summary
Fingerprint Module Removal
MicrocontrollerCode/include/FingerprintFunctions.h, MicrocontrollerCode/src/FingerprintFunctions.cpp
Deleted entire fingerprint sensor module including public API declarations and implementation (setupFingerprint, getFingerprintID, loopFingerprint) and global Adafruit_Fingerprint instance.
PIR Module Removal
MicrocontrollerCode/include/PIRFunctions.h, MicrocontrollerCode/src/PIRFunctions.cpp
Removed PIR sensor driver module including pin constants (PIR_0–PIR_3), PIRSensors struct definition, and public functions (setupPIR, readPIRSingle, readAllPIR).
microROS Integration Updates
MicrocontrollerCode/include/microRosFunctions.h, MicrocontrollerCode/src/microRosFunctions.cpp
Updated API signatures to remove fingerprint and PIR parameters; deleted fingerprintPublisher and publishFingerprint function; simplified publishError to exclude fingerprint_error; added light and lidar subscription callbacks; removed PIR sensor fields from sensorMsg.
Main Control Loop Refactoring
MicrocontrollerCode/src/main.cpp
Removed fingerprint and PIR initialization, timing variables (lastFingerprintTime), error tracking (fingerprint_error), and sensor data gathering; updated transmitMsg call to exclude PIR and fingerprint data.
Debug Enhancement
MicrocontrollerCode/src/JoystickFunctions.cpp
Added Serial debug output for forward and sideways joystick values in joystickToDisplacement.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Verify all function calls to removed fingerprint and PIR functions (setupFingerprint, loopFingerprint, getFingerprintID, setupPIR, readAllPIR, readPIRSingle) have been completely eliminated from main.cpp and other call sites.
  • Confirm transmitMsg call signature in main.cpp matches the updated header (no PIRSensors parameter).
  • Ensure microRosSetup calls use the correct parameter list across all configurations (with/without ROS_DEBUG).
  • Validate that publishError calls no longer pass fingerprint_error parameter.
  • Check that removed #include statements for FingerprintFunctions.h and PIRFunctions.h don't cause compilation issues elsewhere.

Poem

🐰 Fingerprints fade and sensors depart,
The PIR lights dim in our code's heart,
Simpler transmissions hop through the wire,
Light and lidar dance ever higher! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check❓ InconclusiveThe title 'Stripped code' is extremely vague and does not clearly convey what was actually removed or modified. While technically related to the changeset (code removal), it lacks specificity about the fingerprint/PIR sensor removal.Use a more specific title such as 'Remove fingerprint and PIR sensor functionality' or 'Strip fingerprint and PIR sensor modules from microcontroller code' to clearly communicate the primary changes.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch stripped-code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
MicrocontrollerCode/include/microRosFunctions.h (1)

15-22: Remove outdated parameter documentation.

Line 20 still references fingerprintTopicName in the comment, but this parameter has been removed from the function signature at Line 22.

Apply this diff to fix the documentation:

 /**
* Sets up microROS communication
* @param timerValue The transmission period
* @param nodeName The name of the node
* @param sensorTopicName The name of the topic
- * @param fingerprintTopicName
*/
boolean microRosSetup(unsigned int timerValue, const char *nodeName, const char *sensorTopicName);
🧹 Nitpick comments (2)
MicrocontrollerCode/src/JoystickFunctions.cpp (1)

15-15: Consider guarding debug output.

The Serial.println statement will execute on every call to joystickToDisplacement, which may impact performance. Consider wrapping it with #ifdef DEBUG to conditionally compile it only for debug builds.

Apply this diff to guard the debug output:

+#ifdef DEBUG
Serial.println("Joystick longitudinal displacement: " + String(forwardJoystick) + " latitudinal displacement: " + String(sidewaysJoystick));
+#endif
MicrocontrollerCode/src/microRosFunctions.cpp (1)

222-225: Clarify incomplete conditional compilation design rather than fix build failure.

The empty #ifdef ROS block is not causing a build failure—the code compiles in both configurations because function calls and definitions are paired within the same conditional blocks (both in #elif ROS_DEBUG). However, the structure reflects incomplete refactoring, as indicated by the TODO comment.

To improve clarity and prevent future confusion, either:

  1. Remove the empty #ifdef ROS block and TODOs if the ROS path doesn't require microRosSetup, or
  2. Implement the ROS path version of microRosSetup if intended.

Consider which path applies:

 //TODO add the fan subscriber
-#ifdef ROS-#elif ROS_DEBUG+#ifdef ROS_DEBUG
boolean microRosSetup(unsigned int timer_timeout, const char* nodeName, const char* topicName){
#endif
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f262cc2 and 8c83224.

📒 Files selected for processing (8)
  • MicrocontrollerCode/include/FingerprintFunctions.h (0 hunks)
  • MicrocontrollerCode/include/PIRFunctions.h (0 hunks)
  • MicrocontrollerCode/include/microRosFunctions.h (2 hunks)
  • MicrocontrollerCode/src/FingerprintFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/JoystickFunctions.cpp (1 hunks)
  • MicrocontrollerCode/src/PIRFunctions.cpp (0 hunks)
  • MicrocontrollerCode/src/main.cpp (2 hunks)
  • MicrocontrollerCode/src/microRosFunctions.cpp (2 hunks)
💤 Files with no reviewable changes (4)
  • MicrocontrollerCode/include/FingerprintFunctions.h
  • MicrocontrollerCode/src/FingerprintFunctions.cpp
  • MicrocontrollerCode/src/PIRFunctions.cpp
  • MicrocontrollerCode/include/PIRFunctions.h
🧰 Additional context used
🧬 Code graph analysis (2)
MicrocontrollerCode/src/main.cpp (1)
MicrocontrollerCode/src/microRosFunctions.cpp (6)
  • publishError (318-324)
  • publishError (318-318)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
MicrocontrollerCode/include/microRosFunctions.h (1)
MicrocontrollerCode/src/microRosFunctions.cpp (14)
  • microRosSetup (224-315)
  • microRosSetup (224-224)
  • create_entities (89-177)
  • create_entities (89-89)
  • destroy_entities (179-191)
  • destroy_entities (179-179)
  • microRosTick (193-219)
  • microRosTick (193-193)
  • transmitMsg (352-377)
  • transmitMsg (352-352)
  • transmitMsg (383-390)
  • transmitMsg (383-383)
  • publishError (318-324)
  • publishError (318-318)
🪛 GitHub Actions: PlatformIO CI
MicrocontrollerCode/src/microRosFunctions.cpp

[error] 226-315: ROS target build failed. Syntax errors and macro misuse in microRosFunctions.cpp (e.g., 'set_microros_serial_transports(Serial);' produced 'expected constructor, destructor, or type conversion before '(' token'; 'allocator' undefined; RCCHECK macro expansion causing multiple compile errors).

🔇 Additional comments (6)
MicrocontrollerCode/include/microRosFunctions.h (1)

30-38: LGTM!

The function signatures have been correctly updated to remove PIR and fingerprint parameters. The subscription callback declarations are properly defined.

MicrocontrollerCode/src/main.cpp (3)

71-76: LGTM!

The error publishing logic has been correctly updated to remove fingerprint error handling while maintaining the existing error reporting for joystick ADC, ultrasonic ADC, and IMU sensors.


79-81: LGTM!

The Serial debug output correctly prints all three error states being tracked.


118-122: LGTM!

The function calls have been correctly updated to match the new signatures, removing PIR sensor data from transmitMsg and fingerprint error from publishError.

MicrocontrollerCode/src/microRosFunctions.cpp (2)

318-324: LGTM!

The publishError function has been correctly updated to handle only the three remaining error types, removing fingerprint error handling.


351-377: LGTM!

The transmitMsg function has been correctly updated to remove PIR sensor data from the transmission payload while maintaining all other sensor data.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@alexanderlindquis