Skip to content

Conversation

@8ohamed
Copy link
Collaborator

@8ohamed 8ohamed commented Feb 24, 2025

No description provided.

Copy link
Contributor

@prasadtalasila prasadtalasila left a comment

Choose a reason for hiding this comment

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

@8ohamed Thanks for the PR. Please see the suggested changes.

else:
avg = {}
for ax in axis:
total = sum(sample.get("accel", {}).get(ax, 0) for sample in collected_samples)
Copy link
Contributor

Choose a reason for hiding this comment

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

why is it being averaged? Can you phrase the question properly and send a reply to our email conversation with Swarup?

@@ -0,0 +1,40 @@
import numpy as np #type: ignore
from pyoma2.setup.single import SingleSetup
from pyoma2.algorithms.ssi import SSIcov
Copy link
Contributor

Choose a reason for hiding this comment

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

The idea is to wrap some of pyoma code the one provided by Swarup. Please see issue #7

Copy link
Contributor

@prasadtalasila prasadtalasila left a comment

Choose a reason for hiding this comment

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

@8ohamed please see the comments

Returns:
dict: A dictionary containing a timestamp and an 'accel' dictionary with sensor data.
If more than one sample is collected, the values are averaged.
Copy link
Contributor

Choose a reason for hiding this comment

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

Does this mean that the dictionary being returned has only one value per axis irrespective of the number of samples collected?
If so, what happens to the accumulated samples? Are the old samples completely discarded at the end of read() fumction? If not, there is a possibility of growing data points inside Accelerator.

Copy link
Contributor

Choose a reason for hiding this comment

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

There need not be any copying. The idea is to write a thin wrapper around pyoma code to make the needed modifications.
Please identify the changes and write wrappers onlu for them.


# Simulate message arrival after a short delay.
def simulate_message():
time.sleep(0.1)
Copy link
Contributor

Choose a reason for hiding this comment

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

Why is there a 0.1 sec delay?

@prasadtalasila
Copy link
Contributor

@8ohamed please let me know when you are done. Thanks.

Copy link
Contributor

@prasadtalasila prasadtalasila left a comment

Choose a reason for hiding this comment

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

@8ohamed Thanks for the updates. Please see the suggestions.

Copy link
Contributor

Choose a reason for hiding this comment

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

please leave a short comment / doc strings for each of these constants.



class Accelerometer(IAccelerometer):
def __init__(self, mqtt_client, topic: str = "accelerometer/data", fifo_size: int = 10000, axis: list = ['x', 'y', 'z']):
Copy link
Contributor

Choose a reason for hiding this comment

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

Please add MAX_FIFO_SIZE as a constant in constants.py

Copy link
Contributor

@prasadtalasila prasadtalasila left a comment

Choose a reason for hiding this comment

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

@8ohamed thanks for the updates. Please check the comments.

"""Handles incoming MQTT messages."""
future = threading.Thread(target=self._process_message, args=(msg,), daemon=True)
future.start()
future.join() # Ensures proper handling of message processing
Copy link
Contributor

Choose a reason for hiding this comment

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

Error handling would be good. However, this statement would be blocking the main thread which might not be desirable. The lock forces safe access to the deque anyway.

@8ohamed
Copy link
Collaborator Author

8ohamed commented Mar 9, 2025

@prasadtalasila I have updated the test so they use real MQTT client. And I updated some parts of the code.
Now I am working on the experiment

@prasadtalasila
Copy link
Contributor

prasadtalasila commented Mar 14, 2025

Updates to pyproject.toml

[tool.poetry.scripts]
experiment_1 = "src.experiment_1:main"

@prasadtalasila
Copy link
Contributor

@8ohamed please see the pr-7-suggestions branch. It fixes the path imports issue.

@prasadtalasila
Copy link
Contributor

@8ohamed please use the following mqtt.json file

{
    "MQTT": {
        "host": "test.mosquitto.org",
        "port": 1883,
        "userId": "",
        "password": "",
        "ClientID": "test_client_id",
        "QoS": 1,
        "TopicsToSubscribe": ["topic"]
    }
}

@8ohamed
Copy link
Collaborator Author

8ohamed commented Mar 15, 2025

@prasadtalasila I have restructured the project, where I have removed the cp-sens file. Now, the absolute imports work for the tests and the experiment file.

I will send the sysid output to Swarup and let you know when he approves it.

@prasadtalasila
Copy link
Contributor

@8ohamed, please add the following text at the end of src/data/hbk/METADATA.md file.

## MQTT Configuration

The acceleration measurements are streamed via MQTT broker. The following
configuration needs to be placed in `config/mqtt.json` and
credentials modified.

```json
{
    "MQTT": {
        "host": "test.mosquitto.org",
        "port": 1883,
        "userId": "",
        "password": "",
        "ClientID": "test_client_id",
        "QoS": 1,
        "TopicsToSubscribe": [
            "cpsens/d8-3a-dd-f5-92-48/cpsns_Simulator/+/acc/raw/data",
            "cpsens/d8-3a-dd-f5-92-48/cpsns_Simulator/+/acc/raw/metadata",  

            "cpsens/d8-3a-dd-37-d3-08/3050-A-060_sn_106209/+/acc/raw/data",
            "cpsens/d8-3a-dd-37-d3-08/3050-A-060_sn_106209/+/acc/raw/metadata", 

            "cpsens/2c-cf-67-25-da-db/mcc172_21C2CCC/+/acc/raw/data",
            "cpsens/2c-cf-67-25-da-db/mcc172_21C2CCC/+/acc/raw/metadata", 

            "cpsens/d8-3a-dd-37-d2-7e/3160-A-042_sn_999998/+/acc/raw/data",
            "cpsens/d8-3a-dd-37-d2-7e/3160-A-042_sn_999998/+/acc/raw/metadata"  
        ]
    }
}

@prasadtalasila
Copy link
Contributor

@8ohamed the python src/experiment_1.py runs for a while and exits with the following exception.

FIFO contains 2000 samples.
Traceback (most recent call last):
  File "C:\Users\au598657\git\example-shm\src\experiment_1.py", line 82, in <module>
    main()
  File "C:\Users\au598657\git\example-shm\src\experiment_1.py", line 51, in main
    logging.basicConfig(filename=log_file_path, level=logging.INFO, format="%(asctime)s - %(message)s")
  File "C:\Python312\Lib\logging\__init__.py", line 2125, in basicConfig
    h = FileHandler(filename, mode,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python312\Lib\logging\__init__.py", line 1231, in __init__
    StreamHandler.__init__(self, self._open())
                                 ^^^^^^^^^^^^
  File "C:\Python312\Lib\logging\__init__.py", line 1263, in _open
    return open_func(self.baseFilename, self.mode,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\derki\\Desktop\\sysID_log.txt'

@prasadtalasila
Copy link
Contributor

In addition, the tests fail as well.

╰─ pytest
=================================================================== test session starts ===================================================================
platform win32 -- Python 3.12.2, pytest-8.3.4, pluggy-1.5.0
rootdir: C:\Users\au598657\git\example-shm
configfile: pytest.ini
testpaths: tests
plugins: anyio-4.8.0, cov-6.0.0
collected 12 items

tests/data/accel/hbk/test_accelerometer.py::test_accelerometer_read_full_fifo PASSED                                                                 [  8%]
tests/data/accel/hbk/test_accelerometer.py::test_accelerometer_read_partial_fifo on_subscribe: Subscription ID 102 with QoS levels [ReasonCode(Suback, 'Granted QoS 1')]
PASSED                                                              [ 16%]
tests/data/accel/hbk/test_accelerometer.py::test_accelerometer_read_insufficient_samples PASSED                                                      [ 25%]
tests/data/accel/hbk/test_accelerometer.py::test_accelerometer_appending_more_samples_than_max PASSED                                                [ 33%]
tests/data/accel/hbk/test_accelerometer.py::test_accelerometer_reordering_late_sample PASSED                                                         [ 41%]
tests/data/sources/test_mqtt.py::test_on_connect_callback_success PASSED                                                                             [ 50%]
tests/data/sources/test_mqtt.py::test_on_connect_callback_failure PASSED                                                                             [ 58%]
tests/data/sources/test_mqtt.py::test_on_subscribe_callback PASSED                                                                                   [ 66%]
tests/data/sources/test_mqtt.py::test_on_message_callback PASSED                                                                                     [ 75%]
tests/data/sources/test_mqtt.py::test_on_publish_callback PASSED                                                                                     [ 83%]
tests/data/sources/test_mqtt.py::test_setup_mqtt_client FAILED                                                                                       [ 91%]
tests/methods/test_sysID.py::test_sysid
---------------------------------------------------------------------- live log call ----------------------------------------------------------------------
2025-03-15 19:13:00 INFO Running SSIcovmm_mt...
2025-03-15 19:13:00 INFO Assembling Hankel matrix method: cov_mm...
2025-03-15 19:13:00 INFO ... uncertainty calculations...
2025-03-15 19:13:00 INFO SSI for increasing model order...
2025-03-15 19:13:00 INFO Calculating uncertainty...
2025-03-15 19:13:00 INFO Calculating modal parameters...
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
2025-03-15 19:13:00 DEBUG All-NaN slice encountered
PASSED                                                                                                                                               [100%]

======================================================================== FAILURES =========================================================================
_________________________________________________________________ test_setup_mqtt_client __________________________________________________________________

    def test_setup_mqtt_client():
        dummy_config = {
            "MQTT": {
                "ClientID": "test_client",
                "userId": "test_user",
                "password": "test_pass",
                "TopicsToSubscribe": ["test/topic1", "test/topic2"],
                "QoS": 1,
                "host": "localhost",
                "port": 1883
            }
        }
>       client = setup_mqtt_client(dummy_config)

tests\data\sources\test_mqtt.py:79:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

config = {'MQTT': {'ClientID': 'test_client', 'QoS': 1, 'TopicsToSubscribe': ['test/topic1', 'test/topic2'], 'host': 'localhost', ...}}, topic_index = 0

    def setup_mqtt_client(config, topic_index=0):
        """Initialize client using a specific topic index from the subscription list."""
        mqttc = MQTTClient(
>           client_id=config["ClientID"],  # Direct access to keys
            callback_api_version=CallbackAPIVersion.VERSION2,
            protocol=MQTTv5
        )
E       KeyError: 'ClientID'

src\data\sources\mqtt.py:58: KeyError
==================================================================== warnings summary =====================================================================
.venv\Lib\site-packages\_pytest\config\__init__.py:1441
  C:\Users\au598657\git\example-shm\.venv\Lib\site-packages\_pytest\config\__init__.py:1441: PytestConfigWarning: Unknown config option: timeout

    self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

---------- coverage: platform win32, python 3.12.2-final-0 -----------
Name                                  Stmts   Miss  Cover   Missing
-------------------------------------------------------------------
src\data\accel\accelerometer.py           7      1    86%   21
src\data\accel\constants.py               6      0   100%
src\data\accel\hbk\Accelerometer.py     112     48    57%   44-45, 52-57, 81-82, 93-98, 102-103, 127-133, 142-190
src\data\accel\random.py                 11     11     0%   1-25
src\data\sources\mqtt.py                 50      8    84%   20-25, 64, 69
src\experiment_1.py                      49     49     0%   1-78
src\main.py                               2      2     0%   2-3
src\methods\pyoma\genWrapper.py          66      3    95%   41, 106, 111
src\methods\pyoma\ssiWrapper.py         100     52    48%   57-58, 163-200, 223-263, 288-303, 328-339, 367-371
src\methods\sysID.py                     14      1    93%   26
-------------------------------------------------------------------
TOTAL                                   417    175    58%
Coverage HTML written to dir htmlcov

================================================================= short test summary info =================================================================
FAILED tests/data/sources/test_mqtt.py::test_setup_mqtt_client - KeyError: 'ClientID'

@prasadtalasila
Copy link
Contributor

@8ohamed, please fix the code quality issues.

$pylint src --rcfile=.pylintrc

pylint: Command line or configuration file:1: UserWarning: 'BaseException' is not a proper value for the 'overgeneral-exceptions' option. Use fully qualified name (maybe 'builtins.BaseException' ?) instead. This will cease to be checked at runtime when the configuration upgrader is released.
pylint: Command line or configuration file:1: UserWarning: 'Exception' is not a proper value for the 'overgeneral-exceptions' option. Use fully qualified name (maybe 'builtins.Exception' ?) instead. This will cease to be checked at runtime when the configuration upgrader is released.
************* Module src.experiment_1
src\experiment_1.py:18:19: C0303: Trailing whitespace (trailing-whitespace)
src\experiment_1.py:20:69: C0303: Trailing whitespace (trailing-whitespace)
src\experiment_1.py:43:0: C0301: Line too long (118/100) (line-too-long)
src\experiment_1.py:43:0: W0311: Bad indentation. Found 14 spaces, expected 12 (bad-indentation)
src\experiment_1.py:44:0: W0311: Bad indentation. Found 14 spaces, expected 12 (bad-indentation)
src\experiment_1.py:45:22: C0303: Trailing whitespace (trailing-whitespace)
src\experiment_1.py:45:0: W0311: Bad indentation. Found 14 spaces, expected 12 (bad-indentation)
src\experiment_1.py:48:0: C0303: Trailing whitespace (trailing-whitespace)
src\experiment_1.py:49:39: C0303: Trailing whitespace (trailing-whitespace)
src\experiment_1.py:51:0: C0301: Line too long (107/100) (line-too-long)
src\experiment_1.py:78:13: C0303: Trailing whitespace (trailing-whitespace)
src\experiment_1.py:82:0: C0304: Final newline missing (missing-final-newline)
src\experiment_1.py:1:0: C0114: Missing module docstring (missing-module-docstring)
src\experiment_1.py:1:0: C0103: Module name "experiment_1" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:14:0: C0116: Missing function or method docstring (missing-function-docstring)
src\experiment_1.py:14:0: R0914: Too many local variables (16/15) (too-many-locals)
src\experiment_1.py:16:4: C0103: Variable name "mqtt_config" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:18:4: C0103: Variable name "topic_index" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:19:4: C0103: Variable name "mqtt_client" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:19:17: C0103: Variable name "selected_topic" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:28:4: C0103: Variable name "Params" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:50:8: C0103: Variable name "log_file_path" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:58:8: C0103: Variable name "sysid_output" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:62:8: C0103: Variable name "cov_freq" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:63:8: C0103: Variable name "damping_ratios" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:64:8: C0103: Variable name "cov_damping" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:65:8: C0103: Variable name "mode_shapes" doesn't conform to camelCase naming style (invalid-name)
src\experiment_1.py:37:8: W0612: Unused variable 'status' (unused-variable)
src\experiment_1.py:3:0: C0411: standard import "time" should be placed before first party imports "data.accel.accelerometer.IAccelerometer", "data.accel.random.RandomSource"  (wrong-import-order)
src\experiment_1.py:8:0: C0411: third party import "numpy" should be placed before first party imports "data.accel.accelerometer.IAccelerometer", "data.accel.random.RandomSource", "data.accel.hbk.Accelerometer.Accelerometer", "data.accel.constants.MIN_SAMPLES_NEEDED", "data.sources.mqtt.setup_mqtt_client", "methods.sysID.sysid"  (wrong-import-order)
src\experiment_1.py:9:0: C0411: standard import "logging" should be placed before third party import "numpy" and first party imports "data.accel.accelerometer.IAccelerometer", "data.accel.random.RandomSource", "data.accel.hbk.Accelerometer.Accelerometer", "data.accel.constants.MIN_SAMPLES_NEEDED", "data.sources.mqtt.setup_mqtt_client", "methods.sysID.sysid"  (wrong-import-order)
src\experiment_1.py:1:0: W0611: Unused IAccelerometer imported from data.accel.accelerometer (unused-import)
src\experiment_1.py:2:0: W0611: Unused RandomSource imported from data.accel.random (unused-import)
src\experiment_1.py:8:0: W0611: Unused numpy imported as np (unused-import)
************* Module src.main
src\main.py:3:24: C0303: Trailing whitespace (trailing-whitespace)
src\main.py:1:0: C0114: Missing module docstring (missing-module-docstring)
src\main.py:2:0: C0116: Missing function or method docstring (missing-function-docstring)
************* Module src.data.accel.accelerometer
src\data\accel\accelerometer.py:22:0: C0305: Trailing newlines (trailing-newlines)
src\data\accel\accelerometer.py:1:0: C0114: Missing module docstring (missing-module-docstring)
src\data\accel\accelerometer.py:4:0: C0103: Constant name "us_multiplier" doesn't conform to UPPER_CASE naming style (invalid-name)
src\data\accel\accelerometer.py:6:0: C0115: Missing class docstring (missing-class-docstring)
src\data\accel\accelerometer.py:8:19: C0103: Argument name "requested_samples" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\accelerometer.py:21:8: W0107: Unnecessary pass statement (unnecessary-pass)
src\data\accel\accelerometer.py:6:0: R0903: Too few public methods (1/2) (too-few-public-methods)
************* Module src.data.accel.constants
src\data\accel\constants.py:2:67: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\constants.py:8:63: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\constants.py:12:0: C0304: Final newline missing (missing-final-newline)
src\data\accel\constants.py:1:0: C0114: Missing module docstring (missing-module-docstring)
************* Module src.data.accel.random
src\data\accel\random.py:1:0: C0114: Missing module docstring (missing-module-docstring)
src\data\accel\random.py:5:0: W0105: String statement has no effect (pointless-string-statement)
src\data\accel\random.py:9:0: C0115: Missing class docstring (missing-class-docstring)
src\data\accel\random.py:11:4: W0221: Number of parameters was 2 in 'IAccelerometer.read' and is now 1 in overriding 'RandomSource.read' method (arguments-differ)
src\data\accel\random.py:20:8: W0612: Unused variable 'key' (unused-variable)
src\data\accel\random.py:9:0: R0903: Too few public methods (1/2) (too-few-public-methods)
************* Module src.data.accel.hbk.Accelerometer
src\data\accel\hbk\Accelerometer.py:3:16: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:5:81: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:12:0: C0301: Line too long (134/100) (line-too-long)
src\data\accel\hbk\Accelerometer.py:24:25: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:25:35: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:34:0: C0301: Line too long (113/100) (line-too-long)
src\data\accel\hbk\Accelerometer.py:37:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:60:36: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:61:0: W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:80:0: W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:81:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:82:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:84:0: W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:85:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:86:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:87:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:88:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:89:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:91:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:92:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:93:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:94:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:95:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:96:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:97:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:98:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:101:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:102:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:103:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:106:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:109:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:111:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:113:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:115:0: W0311: Bad indentation. Found 28 spaces, expected 24 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:116:0: W0311: Bad indentation. Found 28 spaces, expected 24 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:117:0: C0301: Line too long (123/100) (line-too-long)
src\data\accel\hbk\Accelerometer.py:117:0: W0311: Bad indentation. Found 28 spaces, expected 24 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:120:52: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:120:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:122:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:124:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:125:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:127:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:128:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:131:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:132:85: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:132:0: W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:133:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:134:0: W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:135:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:138:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:139:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:140:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:141:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:142:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:145:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:146:0: C0301: Line too long (122/100) (line-too-long)
src\data\accel\hbk\Accelerometer.py:146:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:148:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:149:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:151:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:152:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:153:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:154:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:155:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:158:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:160:0: C0301: Line too long (113/100) (line-too-long)
src\data\accel\hbk\Accelerometer.py:160:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:161:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:164:58: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:164:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:165:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:167:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:168:0: W0311: Bad indentation. Found 20 spaces, expected 16 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:170:0: C0301: Line too long (107/100) (line-too-long)
src\data\accel\hbk\Accelerometer.py:170:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:173:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:175:0: W0311: Bad indentation. Found 28 spaces, expected 24 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:176:0: W0311: Bad indentation. Found 28 spaces, expected 24 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:177:0: C0301: Line too long (123/100) (line-too-long)
src\data\accel\hbk\Accelerometer.py:177:0: W0311: Bad indentation. Found 28 spaces, expected 24 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:180:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:181:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:183:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:184:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:186:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:187:0: W0311: Bad indentation. Found 24 spaces, expected 20 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:189:0: W0311: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:190:0: W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
src\data\accel\hbk\Accelerometer.py:191:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:195:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:207:0: C0301: Line too long (103/100) (line-too-long)
src\data\accel\hbk\Accelerometer.py:213:24: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:214:39: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:222:0: C0301: Line too long (102/100) (line-too-long)
src\data\accel\hbk\Accelerometer.py:224:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\accel\hbk\Accelerometer.py:226:0: C0305: Trailing newlines (trailing-newlines)
src\data\accel\hbk\Accelerometer.py:1:0: C0114: Missing module docstring (missing-module-docstring)
src\data\accel\hbk\Accelerometer.py:1:0: C0103: Module name "Accelerometer" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:11:0: C0115: Missing class docstring (missing-class-docstring)
src\data\accel\hbk\Accelerometer.py:22:8: C0103: Attribute name "mqtt_client" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:25:8: C0103: Attribute name "_fifo_size" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:34:8: C0103: Attribute name "_mqtt_thread" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:11:0: R0902: Too many instance attributes (9/7) (too-many-instance-attributes)
src\data\accel\hbk\Accelerometer.py:12:23: C0103: Argument name "mqtt_client" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:12:71: C0103: Argument name "fifo_size" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:12:4: W0102: Dangerous default value [] as argument (dangerous-default-value)
src\data\accel\hbk\Accelerometer.py:38:4: C0103: Method name "_on_message" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:41:8: C0103: Function name "safe_process" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:38:26: W0613: Unused argument 'client' (unused-argument)
src\data\accel\hbk\Accelerometer.py:38:34: W0613: Unused argument 'userdata' (unused-argument)
src\data\accel\hbk\Accelerometer.py:50:4: C0103: Method name "_process_metadata" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:53:12: C0103: Variable name "payload_str" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:60:4: C0103: Method name "_process_message" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:60:4: R0914: Too many local variables (27/15) (too-many-locals)
src\data\accel\hbk\Accelerometer.py:87:20: C0103: Variable name "payload_str" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:106:20: C0103: Variable name "data_array" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:115:28: C0103: Variable name "removed_timestamp" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:116:28: C0103: Variable name "removed_sample" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:120:20: C0103: Variable name "ts_list" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:135:16: C0103: Variable name "raw_payload" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:138:16: R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
src\data\accel\hbk\Accelerometer.py:146:16: C0103: Variable name "descriptor_length" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:146:35: C0103: Variable name "metadata_version" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:146:53: C0103: Variable name "seconds_since_epoch" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:146:87: C0103: Variable name "samples_from_daq_start" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:148:16: C0103: Variable name "accel_values" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:151:16: R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
src\data\accel\hbk\Accelerometer.py:158:16: C0103: Variable name "num_samples" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:160:16: C0103: Variable name "data_arrays" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:164:16: C0103: Variable name "sampling_rate" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:165:16: C0103: Variable name "time_increment" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:168:27: C0103: Variable name "data_array" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:170:24: C0103: Variable name "sample_timestamp" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:175:28: C0103: Variable name "removed_timestamp" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:176:28: C0103: Variable name "removed_sample" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:180:24: C0103: Variable name "ts_list" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:60:4: R0912: Too many branches (16/12) (too-many-branches)
src\data\accel\hbk\Accelerometer.py:60:4: R0915: Too many statements (61/50) (too-many-statements)
src\data\accel\hbk\Accelerometer.py:146:16: W0612: Unused variable 'descriptor_length' (unused-variable)
src\data\accel\hbk\Accelerometer.py:146:35: W0612: Unused variable 'metadata_version' (unused-variable)
src\data\accel\hbk\Accelerometer.py:146:87: W0612: Unused variable 'samples_from_daq_start' (unused-variable)
src\data\accel\hbk\Accelerometer.py:219:16: C0103: Variable name "ret_samples" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:222:16: C0103: Variable name "ret_samples" doesn't conform to camelCase naming style (invalid-name)
src\data\accel\hbk\Accelerometer.py:54:12: W0201: Attribute '_metadata' defined outside __init__ (attribute-defined-outside-init)
src\data\accel\hbk\Accelerometer.py:11:0: R0903: Too few public methods (1/2) (too-few-public-methods)
src\data\accel\hbk\Accelerometer.py:3:0: C0411: standard import "threading" should be placed before third party import "numpy" (wrong-import-order)
src\data\accel\hbk\Accelerometer.py:4:0: C0411: standard import "collections.deque" should be placed before third party import "numpy" (wrong-import-order)
src\data\accel\hbk\Accelerometer.py:8:0: C0411: standard import "struct" should be placed before third party import "numpy" and first party imports "data.accel.accelerometer.IAccelerometer", "data.sources.mqtt", "data.accel.constants.MAX_FIFO_SIZE"  (wrong-import-order)
src\data\accel\hbk\Accelerometer.py:9:0: C0411: standard import "bisect" should be placed before third party import "numpy" and first party imports "data.accel.accelerometer.IAccelerometer", "data.sources.mqtt", "data.accel.constants.MAX_FIFO_SIZE"  (wrong-import-order)
src\data\accel\hbk\Accelerometer.py:5:0: W0611: Unused us_multiplier imported from data.accel.accelerometer (unused-import)
src\data\accel\hbk\Accelerometer.py:6:0: W0611: Unused mqtt imported from data.sources (unused-import)
src\data\accel\hbk\Accelerometer.py:7:0: W0611: Unused MIN_LEN imported from data.accel.constants (unused-import)
************* Module src.data.sources.mqtt
src\data\sources\mqtt.py:42:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\sources\mqtt.py:60:23: C0303: Trailing whitespace (trailing-whitespace)
src\data\sources\mqtt.py:62:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\sources\mqtt.py:65:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\sources\mqtt.py:69:0: C0301: Line too long (106/100) (line-too-long)
src\data\sources\mqtt.py:77:0: C0303: Trailing whitespace (trailing-whitespace)
src\data\sources\mqtt.py:1:0: C0114: Missing module docstring (missing-module-docstring)
src\data\sources\mqtt.py:6:0: C0103: Function name "load_config" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:6:16: C0103: Argument name "config_path" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:16:13: W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
src\data\sources\mqtt.py:17:12: C0103: Variable name "json_config" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:21:8: W0707: Consider explicitly re-raising using 'except FileNotFoundError as exc' and 'raise FileNotFoundError(f'Error: The file {config_path} was not found.') from exc' (raise-missing-from)
src\data\sources\mqtt.py:23:8: W0707: Consider explicitly re-raising using 'except Exception as exc' and 'raise ValueError(f'Error: The file {config_path} could not be decoded as JSON.') from exc' (raise-missing-from)
src\data\sources\mqtt.py:25:8: W0707: Consider explicitly re-raising using 'raise Exception(f'An unexpected error occurred: {e}') from e' (raise-missing-from)
src\data\sources\mqtt.py:28:0: C0116: Missing function or method docstring (missing-function-docstring)
src\data\sources\mqtt.py:28:0: C0103: Function name "create_on_connect_callback" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:29:4: C0103: Function name "on_connect" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:29:27: W0613: Unused argument 'userdata' (unused-argument)
src\data\sources\mqtt.py:29:37: W0613: Unused argument 'flags' (unused-argument)
src\data\sources\mqtt.py:29:48: W0613: Unused argument 'properties' (unused-argument)
src\data\sources\mqtt.py:39:0: C0116: Missing function or method docstring (missing-function-docstring)
src\data\sources\mqtt.py:39:0: C0103: Function name "create_on_subscribe_callback" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:40:4: C0103: Function name "on_subscribe" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:40:44: C0103: Argument name "granted_qos" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:40:21: W0613: Unused argument 'client' (unused-argument)
src\data\sources\mqtt.py:40:29: W0613: Unused argument 'userdata' (unused-argument)
src\data\sources\mqtt.py:40:57: W0613: Unused argument 'properties' (unused-argument)
src\data\sources\mqtt.py:45:0: C0116: Missing function or method docstring (missing-function-docstring)
src\data\sources\mqtt.py:45:0: C0103: Function name "create_on_message_callback" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:46:4: C0103: Function name "on_message" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:46:19: W0613: Unused argument 'client' (unused-argument)
src\data\sources\mqtt.py:46:27: W0613: Unused argument 'userdata' (unused-argument)
src\data\sources\mqtt.py:50:0: C0116: Missing function or method docstring (missing-function-docstring)
src\data\sources\mqtt.py:50:0: C0103: Function name "create_on_publish_callback" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:51:4: C0103: Function name "on_publish" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:51:19: W0613: Unused argument 'client' (unused-argument)
src\data\sources\mqtt.py:51:27: W0613: Unused argument 'userdata' (unused-argument)
src\data\sources\mqtt.py:51:0: W0613: Unused argument 'args' (unused-argument)
src\data\sources\mqtt.py:51:0: W0613: Unused argument 'kwargs' (unused-argument)
src\data\sources\mqtt.py:55:0: C0103: Function name "setup_mqtt_client" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:55:30: C0103: Argument name "topic_index" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:67:4: C0103: Variable name "topics_list" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:71:4: C0103: Variable name "selected_topic" doesn't conform to camelCase naming style (invalid-name)
src\data\sources\mqtt.py:2:0: W0611: Unused import os (unused-import)
src\data\sources\mqtt.py:3:0: W0611: Unused import time (unused-import)
************* Module src.methods.sysID
src\methods\sysID.py:8:0: C0301: Line too long (113/100) (line-too-long)
src\methods\sysID.py:41:0: C0303: Trailing whitespace (trailing-whitespace)
src\methods\sysID.py:48:0: C0305: Trailing newlines (trailing-newlines)
src\methods\sysID.py:1:0: C0114: Missing module docstring (missing-module-docstring)
src\methods\sysID.py:6:16: C0103: Argument name "Params" doesn't conform to camelCase naming style (invalid-name)
src\methods\sysID.py:31:4: C0103: Variable name "ssi_mode_track" doesn't conform to camelCase naming style (invalid-name)
src\methods\sysID.py:42:4: C0103: Variable name "OUTPUT" doesn't conform to camelCase naming style (invalid-name)
src\methods\sysID.py:4:0: C0411: third party import "numpy" should be placed before first party import "methods.pyoma.ssiWrapper.SSIcov"  (wrong-import-order)
src\methods\sysID.py:4:0: W0611: Unused numpy imported as np (unused-import)
************* Module src.methods.pyoma.genWrapper
src\methods\pyoma\genWrapper.py:53:0: C0301: Line too long (116/100) (line-too-long)
src\methods\pyoma\genWrapper.py:63:0: C0301: Line too long (103/100) (line-too-long)
src\methods\pyoma\genWrapper.py:65:0: C0301: Line too long (133/100) (line-too-long)
src\methods\pyoma\genWrapper.py:97:0: C0301: Line too long (101/100) (line-too-long)
src\methods\pyoma\genWrapper.py:107:0: C0301: Line too long (105/100) (line-too-long)
src\methods\pyoma\genWrapper.py:142:0: C0301: Line too long (122/100) (line-too-long)
src\methods\pyoma\genWrapper.py:152:0: C0301: Line too long (103/100) (line-too-long)
src\methods\pyoma\genWrapper.py:154:0: C0301: Line too long (133/100) (line-too-long)
src\methods\pyoma\genWrapper.py:159:0: C0303: Trailing whitespace (trailing-whitespace)
src\methods\pyoma\genWrapper.py:167:0: C0301: Line too long (114/100) (line-too-long)
src\methods\pyoma\genWrapper.py:1:0: C0114: Missing module docstring (missing-module-docstring)
src\methods\pyoma\genWrapper.py:10:14: C0103: Argument name "list_arr" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:10:30: C0103: Argument name "len_phi" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:38:4: C0103: Variable name "list_filt_arr" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:51:0: C0103: Function name "HC_realEigen" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:51:17: C0103: Argument name "Lambds" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:69:4: C0103: Variable name "filt_lambd" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:77:0: C0103: Function name "MAC" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:77:8: C0103: Argument name "phi_X" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:77:27: C0103: Argument name "phi_A" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:121:4: W0621: Redefining name 'MAC' from outer scope (line 77) (redefined-outer-name)
src\methods\pyoma\genWrapper.py:121:4: C0103: Variable name "MAC" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:122:4: C0103: Variable name "MAC" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:130:8: C0103: Variable name "MAC" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:140:0: C0103: Function name "HC_removeZeroImg" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:140:21: C0103: Argument name "Lambds" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:161:4: C0103: Variable name "filt_lambd" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:165:0: C0103: Function name "SC_apply" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:165:13: C0103: Argument name "Fn" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:165:17: C0103: Argument name "Xi" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:165:21: C0103: Argument name "Phi" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:165:48: C0103: Argument name "err_fn" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:165:56: C0103: Argument name "err_xi" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:165:64: C0103: Argument name "err_phi" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:165:0: R0913: Too many arguments (9/5) (too-many-arguments)
src\methods\pyoma\genWrapper.py:165:0: R0917: Too many positional arguments (9/5) (too-many-positional-arguments)
src\methods\pyoma\genWrapper.py:165:0: R0914: Too many local variables (24/15) (too-many-locals)
src\methods\pyoma\genWrapper.py:196:4: C0103: Variable name "Lab" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:203:8: C0103: Variable name "f_n" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:204:8: C0103: Variable name "xi_n" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:205:8: C0103: Variable name "phi_n" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:207:8: C0103: Variable name "f_n1" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:208:8: C0103: Variable name "xi_n1" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:209:8: C0103: Variable name "phi_n1" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\genWrapper.py:215:8: C0200: Consider using enumerate instead of iterating with range and len (consider-using-enumerate)
************* Module src.methods.pyoma.ssiWrapper
src\methods\pyoma\ssiWrapper.py:92:0: C0303: Trailing whitespace (trailing-whitespace)
src\methods\pyoma\ssiWrapper.py:93:0: C0303: Trailing whitespace (trailing-whitespace)
src\methods\pyoma\ssiWrapper.py:101:0: C0303: Trailing whitespace (trailing-whitespace)
src\methods\pyoma\ssiWrapper.py:109:0: C0303: Trailing whitespace (trailing-whitespace)
src\methods\pyoma\ssiWrapper.py:110:0: C0303: Trailing whitespace (trailing-whitespace)
src\methods\pyoma\ssiWrapper.py:161:0: C0301: Line too long (108/100) (line-too-long)
src\methods\pyoma\ssiWrapper.py:213:0: C0301: Line too long (105/100) (line-too-long)
src\methods\pyoma\ssiWrapper.py:220:0: C0301: Line too long (101/100) (line-too-long)
src\methods\pyoma\ssiWrapper.py:279:0: C0301: Line too long (105/100) (line-too-long)
src\methods\pyoma\ssiWrapper.py:319:0: C0301: Line too long (105/100) (line-too-long)
src\methods\pyoma\ssiWrapper.py:409:0: C0305: Trailing newlines (trailing-newlines)
src\methods\pyoma\ssiWrapper.py:1:0: C0114: Missing module docstring (missing-module-docstring)
src\methods\pyoma\ssiWrapper.py:33:4: R0914: Too many local variables (38/15) (too-many-locals)
src\methods\pyoma\ssiWrapper.py:45:8: C0103: Variable name "Y" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:47:8: C0103: Variable name "method_hank" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:53:8: C0103: Variable name "calc_unc" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:57:12: C0103: Variable name "ref_ind" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:58:12: C0103: Variable name "Yref" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:60:12: C0103: Variable name "Yref" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:63:8: C0103: Variable name "H" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:63:11: C0103: Variable name "T" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:67:8: C0103: Variable name "Obs" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:67:13: C0103: Variable name "A" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:67:16: C0103: Variable name "C" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:67:19: C0103: Variable name "Q1" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:67:23: C0103: Variable name "Q2" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:67:27: C0103: Variable name "Q3" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:67:31: C0103: Variable name "Q4" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:72:8: C0103: Variable name "Fns" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:72:13: C0103: Variable name "Xis" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:72:18: C0103: Variable name "Phis" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:72:24: C0103: Variable name "Lambds" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:72:32: C0103: Variable name "Fn_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:72:40: C0103: Variable name "Xi_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:72:48: C0103: Variable name "Phi_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:86:8: C0103: Variable name "hc_conj" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:87:8: C0103: Variable name "hc_xi_max" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:89:8: C0103: Variable name "hc_mpc_lim" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:90:8: C0103: Variable name "hc_mpd_lim" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:91:8: C0103: Variable name "hc_cov_max" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:96:8: C0103: Variable name "Lambds" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:98:8: C0103: Variable name "Fns" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:98:13: C0103: Variable name "Xis" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:98:18: C0103: Variable name "Phis" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:98:24: C0103: Variable name "Fn_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:98:32: C0103: Variable name "Xi_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:98:40: C0103: Variable name "Phi_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:104:8: C0103: Variable name "Lambds" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:106:8: C0103: Variable name "Fns" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:106:13: C0103: Variable name "Xis" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:106:18: C0103: Variable name "Phis" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:106:24: C0103: Variable name "Fn_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:106:32: C0103: Variable name "Xi_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:106:40: C0103: Variable name "Phi_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:112:8: C0103: Variable name "Lab" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:86:8: W0612: Unused variable 'hc_conj' (unused-variable)
src\methods\pyoma\ssiWrapper.py:87:8: W0612: Unused variable 'hc_xi_max' (unused-variable)
src\methods\pyoma\ssiWrapper.py:89:8: W0612: Unused variable 'hc_mpc_lim' (unused-variable)
src\methods\pyoma\ssiWrapper.py:90:8: W0612: Unused variable 'hc_mpd_lim' (unused-variable)
src\methods\pyoma\ssiWrapper.py:91:8: W0612: Unused variable 'hc_cov_max' (unused-variable)
src\methods\pyoma\ssiWrapper.py:139:4: W0221: Number of parameters was 3 in 'BaseAlgorithm.mpe' and is now 4 in overriding 'SSIdat.mpe' method (arguments-differ)
src\methods\pyoma\ssiWrapper.py:139:4: W0221: Variadics removed in overriding 'SSIdat.mpe' method (arguments-differ)
src\methods\pyoma\ssiWrapper.py:139:4: R0914: Too many local variables (18/15) (too-many-locals)
src\methods\pyoma\ssiWrapper.py:171:8: C0103: Variable name "Fn_pol" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:172:8: C0103: Variable name "Xi_pol" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:173:8: C0103: Variable name "Phi_pol" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:174:8: C0103: Variable name "Lab" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:176:8: C0103: Variable name "Fn_pol_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:177:8: C0103: Variable name "Xi_pol_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:178:8: C0103: Variable name "Phi_pol_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:180:8: C0103: Variable name "Fn" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:180:12: C0103: Variable name "Xi" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:180:16: C0103: Variable name "Phi" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:180:21: C0103: Variable name "order_out" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:180:32: C0103: Variable name "Fn_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:180:40: C0103: Variable name "Xi_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:180:48: C0103: Variable name "Phi_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:202:4: W0221: Variadics removed in overriding 'SSIdat.mpe_from_plot' method (arguments-differ)
src\methods\pyoma\ssiWrapper.py:202:4: R0914: Too many local variables (19/15) (too-many-locals)
src\methods\pyoma\ssiWrapper.py:229:8: C0103: Variable name "Fn_pol" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:230:8: C0103: Variable name "Xi_pol" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:231:8: C0103: Variable name "Phi_pol" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:233:8: C0103: Variable name "Fn_pol_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:234:8: C0103: Variable name "Xi_pol_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:235:8: C0103: Variable name "Phi_pol_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:238:8: C0103: Variable name "SFP" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:239:8: C0103: Variable name "sel_freq" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:243:8: C0103: Variable name "Fn" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:243:12: C0103: Variable name "Xi" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:243:16: C0103: Variable name "Phi" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:243:21: C0103: Variable name "order_out" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:243:32: C0103: Variable name "Fn_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:243:40: C0103: Variable name "Xi_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:243:48: C0103: Variable name "Phi_cov" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:265:4: C0103: Method name "plot_stab" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:268:8: C0103: Argument name "hide_poles" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:305:4: C0103: Method name "plot_cluster" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:308:8: C0103: Argument name "hide_poles" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:341:4: C0103: Method name "plot_svalH" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:343:8: C0103: Argument name "iter_n" doesn't conform to camelCase naming style (invalid-name)
src\methods\pyoma\ssiWrapper.py:2:0: W0611: Unused import logging (unused-import)

------------------------------------------------------------------
Your code has been rated at 0.31/10 (previous run: 0.85/10, -0.54)

Copy link
Contributor

@prasadtalasila prasadtalasila left a comment

Choose a reason for hiding this comment

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

@8ohamed , thanks for the updates. Please see the comments.

Copy link
Contributor

Choose a reason for hiding this comment

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

please move this file to test/input_files and use it in a test. Please put a small test/input_files/README.md mentioning the purpose of this directory.

Copy link
Contributor

Choose a reason for hiding this comment

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

please change the project name to example-shm

Copy link
Contributor

Choose a reason for hiding this comment

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

please use the mqtt.json file from PR-7-suggestions branch and update the code accordingly.

@8ohamed
Copy link
Collaborator Author

8ohamed commented Mar 16, 2025

@prasadtalasila
The test were failing because of a small bug.
The experiment stopped because there were a line that logs sysid output to my Desktop, I have removed that.
I have fixed some of the quality issues, but most of the issues comes from the pyoma functions in the wrappers, could you maybe exclude the pyoma folder from the quality test. I do not want to change the syntax/style to not mess it up.

For the mqtt.json in PR-7-suggestions branch it is the same one.
Thanks for the review

@prasadtalasila
Copy link
Contributor

@8ohamed I pushed some changes directly to this PR branch. The changes are for ignoring pyoma files for linting purposes and minor updates to poetry setup.

Please go ahead anf make changes in the mqtt.json file. Do not wait for the change on the "pr-7-suggestions* branch. Thanks.

@8ohamed
Copy link
Collaborator Author

8ohamed commented Mar 23, 2025

Hi @prasadtalasilaI have updated the process message logic. Now, we append the samples collected from each message to a map, where the key is samples_from_daq_start. It is not being hashed.
When we receive a new data batch and the map is full, we remove the oldest entry from the map.

Now I am working on a new branch where I am writing alligner code, where we can use it for multiple channels/topics for the requested amount.

@prasadtalasila
Copy link
Contributor

@8ohamed please create new PR with just the code for the Accelerometer without pyoma. Do keep the experiment_1.py to show the results.
Let us finalise the acceleration data processing part and merge it first. Thanks.

@8ohamed 8ohamed closed this Apr 16, 2025
@prasadtalasila prasadtalasila deleted the sysid-with-hbk-accelerometers branch May 4, 2025 18:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants