Skip to content

Commit b9e831b

Browse files
committed
rename to DetumbleManager
1 parent 86238b2 commit b9e831b

File tree

10 files changed

+166
-101
lines changed

10 files changed

+166
-101
lines changed

.github/copilot-instructions.md

Lines changed: 62 additions & 1 deletion
Large diffs are not rendered by default.

FprimeZephyrReference/Components/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Drv/")
44
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/ComDelay/")
55
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/FatalHandler")
6-
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/ImuManager/")
6+
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/DetumbleManager/")
77
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/NullPrmDb/")
88
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Watchdog")
99
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Burnwire/")

FprimeZephyrReference/Components/ImuManager/CMakeLists.txt renamed to FprimeZephyrReference/Components/DetumbleManager/CMakeLists.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@
1616

1717
register_fprime_library(
1818
AUTOCODER_INPUTS
19-
"${CMAKE_CURRENT_LIST_DIR}/ImuManager.fpp"
19+
"${CMAKE_CURRENT_LIST_DIR}/DetumbleManager.fpp"
2020
SOURCES
21-
"${CMAKE_CURRENT_LIST_DIR}/ImuManager.cpp"
21+
"${CMAKE_CURRENT_LIST_DIR}/DetumbleManager.cpp"
2222
# DEPENDS
2323
# MyPackage_MyOtherModule
2424
)
2525

2626
### Unit Tests ###
2727
# register_fprime_ut(
2828
# AUTOCODER_INPUTS
29-
# "${CMAKE_CURRENT_LIST_DIR}/ImuManager.fpp"
29+
# "${CMAKE_CURRENT_LIST_DIR}/DetumbleManager.fpp"
3030
# SOURCES
31-
# "${CMAKE_CURRENT_LIST_DIR}/test/ut/ImuManagerTestMain.cpp"
32-
# "${CMAKE_CURRENT_LIST_DIR}/test/ut/ImuManagerTester.cpp"
31+
# "${CMAKE_CURRENT_LIST_DIR}/test/ut/DetumbleManagerTestMain.cpp"
32+
# "${CMAKE_CURRENT_LIST_DIR}/test/ut/DetumbleManagerTester.cpp"
3333
# DEPENDS
3434
# STest # For rules-based testing
3535
# UT_AUTO_HELPERS

FprimeZephyrReference/Components/ImuManager/ImuManager.cpp renamed to FprimeZephyrReference/Components/DetumbleManager/DetumbleManager.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// ======================================================================
2-
// \title ImuManager.cpp
3-
// \brief cpp file for ImuManager component implementation class
2+
// \title DetumbleManager.cpp
3+
// \brief cpp file for DetumbleManager component implementation class
44
// ======================================================================
55

6-
#include "FprimeZephyrReference/Components/ImuManager/ImuManager.hpp"
6+
#include "FprimeZephyrReference/Components/DetumbleManager/DetumbleManager.hpp"
77

88
#include <Fw/Types/Assert.hpp>
99

@@ -13,15 +13,15 @@ namespace Components {
1313
// Component construction and destruction
1414
// ----------------------------------------------------------------------
1515

16-
ImuManager ::ImuManager(const char* const compName) : ImuManagerComponentBase(compName) {}
16+
DetumbleManager ::DetumbleManager(const char* const compName) : DetumbleManagerComponentBase(compName) {}
1717

18-
ImuManager ::~ImuManager() {}
18+
DetumbleManager ::~DetumbleManager() {}
1919

2020
// ----------------------------------------------------------------------
2121
// Handler implementations for typed input ports
2222
// ----------------------------------------------------------------------
2323

24-
void ImuManager ::run_handler(FwIndexType portNum, U32 context) {
24+
void DetumbleManager ::run_handler(FwIndexType portNum, U32 context) {
2525
// Read from Lsm6dsoManager
2626
this->accelerationGet_out(0);
2727
this->angularVelocityGet_out(0);

FprimeZephyrReference/Components/ImuManager/ImuManager.fpp renamed to FprimeZephyrReference/Components/DetumbleManager/DetumbleManager.fpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module Components {
22
@ IMU Manager Component for F Prime FSW framework.
3-
passive component ImuManager {
3+
passive component DetumbleManager {
44
sync input port run: Svc.Sched
55

66
@ Port for sending accelerationGet calls to the LSM6DSO Driver

FprimeZephyrReference/Components/ImuManager/ImuManager.hpp renamed to FprimeZephyrReference/Components/DetumbleManager/DetumbleManager.hpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
// ======================================================================
2-
// \title ImuManager.hpp
3-
// \brief hpp file for ImuManager component implementation class
2+
// \title DetumbleManager.hpp
3+
// \brief hpp file for DetumbleManager component implementation class
44
// ======================================================================
55

6-
#ifndef Components_ImuManager_HPP
7-
#define Components_ImuManager_HPP
6+
#ifndef Components_DetumbleManager_HPP
7+
#define Components_DetumbleManager_HPP
88

9-
#include "FprimeZephyrReference/Components/ImuManager/ImuManagerComponentAc.hpp"
9+
#include "FprimeZephyrReference/Components/DetumbleManager/DetumbleManagerComponentAc.hpp"
1010

1111
namespace Components {
1212

13-
class ImuManager final : public ImuManagerComponentBase {
13+
class DetumbleManager final : public DetumbleManagerComponentBase {
1414
public:
1515
// ----------------------------------------------------------------------
1616
// Component construction and destruction
1717
// ----------------------------------------------------------------------
1818

19-
//! Construct ImuManager object
20-
ImuManager(const char* const compName);
19+
//! Construct DetumbleManager object
20+
DetumbleManager(const char* const compName);
2121

22-
//! Destroy ImuManager object
23-
~ImuManager();
22+
//! Destroy DetumbleManager object
23+
~DetumbleManager();
2424

2525
private:
2626
// ----------------------------------------------------------------------
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Components::DetumbleManager
2+
3+
The IMU Manager (Inertial Measurement Unit) component provides sensor data related to motion and orientation of the craft. It interfaces with two drivers: the LIS2MDL Manager and the LSM6DSO Driver which provide acceleration, angular velocity, magnetic field, and temperature measurements.
4+
5+
## Usage Examples
6+
7+
The IMU Manager component is designed to be scheduled periodically to trigger collection of sensor data and telemetering. It operates as a passive component that responds to scheduler calls.
8+
9+
### Typical Usage
10+
11+
1. The component is instantiated and initialized during system startup
12+
2. The scheduler calls the `run` port at regular intervals
13+
3. On each run call, the component:
14+
- Fetches sensor data from both the LIS2MDL Manager and LSM6DSO Driver
15+
- Outputs telemetry for acceleration, angular velocity, magnetic field, and temperature
16+
17+
## Class Diagram
18+
19+
```mermaid
20+
classDiagram
21+
namespace Components {
22+
class DetumbleManagerComponentBase {
23+
<<Auto-generated>>
24+
}
25+
class DetumbleManager {
26+
+ DetumbleManager(const char* compName)
27+
+ ~DetumbleManager()
28+
- run_handler(FwIndexType portNum, U32 context): void
29+
}
30+
}
31+
DetumbleManagerComponentBase <|-- DetumbleManager : inherits
32+
```
33+
34+
## Port Descriptions
35+
36+
| Name | Type | Description |
37+
| ------------------ | ---------- | ---------------------------------------------------------- |
38+
| run | sync input | Scheduler port that triggers sensor data collection |
39+
| accelerationGet | output | Port for calling accelerationGet on the LSM6DSO Manager |
40+
| angularVelocityGet | output | Port for calling angularVelocityGet on the LSM6DSO Manager |
41+
| magneticFieldGet | output | Port for calling magneticFieldGet on the LIS2MDL Manager |
42+
| temperatureGet | output | Port for calling temperatureGet on the LSM6DSO Manager |
43+
| timeCaller | time get | Port for requesting current system time |
44+
45+
## Sequence Diagrams
46+
47+
```mermaid
48+
sequenceDiagram
49+
participant Scheduler
50+
participant IMU Manager
51+
participant LIS2MDL Manager
52+
participant LSM6DSO Manager
53+
54+
Scheduler-->>IMU Manager: run
55+
IMU Manager->>LSM6DSO Manager: AccelerationGet
56+
IMU Manager->>LSM6DSO Manager: AngularVelocityGet
57+
IMU Manager->>LSM6DSO Manager: TemperatureGet
58+
IMU Manager->>LIS2MDL Manager: MagneticFieldGet
59+
```
60+
61+
## Requirements
62+
63+
| Name | Description | Validation |
64+
| ---------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
65+
| Sensor Data Collection | The component shall trigger data collection from both LSM6DSO and LIS2MDL sensors when run is called | Verify all sensor manager output ports are called |
66+
| Periodic Operation | The component shall operate as a scheduled component responding to scheduler calls | Verify component responds correctly to scheduler input |
67+
68+
## Change Log
69+
70+
| Date | Description |
71+
| --------- | --------------------------------------------------------------------- |
72+
| 2025-9-9 | Initial IMU Manager component |
73+
| 2025-9-18 | Extracted Zephyr calls to discrete LIS2MDL Manager and LSM6DSO Driver |

FprimeZephyrReference/Components/ImuManager/docs/sdd.md

Lines changed: 0 additions & 69 deletions
This file was deleted.

FprimeZephyrReference/ReferenceDeployment/Top/instances.fpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ module ReferenceDeployment {
6464

6565
instance rtcManager: Drv.RtcManager base id 0x10016000
6666

67-
instance imuManager: Components.ImuManager base id 0x10017000
67+
instance DetumbleManager: Components.DetumbleManager base id 0x10017000
6868

6969
instance lis2mdlManager: Drv.Lis2mdlManager base id 0x10018000
7070

FprimeZephyrReference/ReferenceDeployment/Top/topology.fpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ module ReferenceDeployment {
3232
instance watchdog
3333
instance prmDb
3434
instance rtcManager
35-
instance imuManager
35+
instance DetumbleManager
3636
instance lis2mdlManager
3737
instance lsm6dsoManager
3838
instance bootloaderTrigger
@@ -132,7 +132,7 @@ module ReferenceDeployment {
132132
rateGroup1Hz.RateGroupMemberOut[2] -> ComCcsds.commsBufferManager.schedIn
133133
rateGroup1Hz.RateGroupMemberOut[3] -> CdhCore.tlmSend.Run
134134
rateGroup1Hz.RateGroupMemberOut[4] -> watchdog.run
135-
rateGroup1Hz.RateGroupMemberOut[5] -> imuManager.run
135+
rateGroup1Hz.RateGroupMemberOut[5] -> DetumbleManager.run
136136
rateGroup1Hz.RateGroupMemberOut[6] -> comDelay.run
137137
rateGroup1Hz.RateGroupMemberOut[7] -> burnwire.schedIn
138138
rateGroup1Hz.RateGroupMemberOut[8] -> antennaDeployer.schedIn
@@ -155,11 +155,11 @@ module ReferenceDeployment {
155155
antennaDeployer.burnStop -> burnwire.burnStop
156156
}
157157

158-
connections imuManager {
159-
imuManager.accelerationGet -> lsm6dsoManager.accelerationGet
160-
imuManager.angularVelocityGet -> lsm6dsoManager.angularVelocityGet
161-
imuManager.magneticFieldGet -> lis2mdlManager.magneticFieldGet
162-
imuManager.temperatureGet -> lsm6dsoManager.temperatureGet
158+
connections DetumbleManager {
159+
DetumbleManager.accelerationGet -> lsm6dsoManager.accelerationGet
160+
DetumbleManager.angularVelocityGet -> lsm6dsoManager.angularVelocityGet
161+
DetumbleManager.magneticFieldGet -> lis2mdlManager.magneticFieldGet
162+
DetumbleManager.temperatureGet -> lsm6dsoManager.temperatureGet
163163
}
164164
}
165165
}

0 commit comments

Comments
 (0)