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

@alexanderlindquis alexanderlindquis 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

coderabbitai Bot 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 name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring 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 ❓ Inconclusive The 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 name Status Explanation
Description Check ✅ Passed Check 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.

@coderabbitai coderabbitai Bot 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 free to 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