From 68c9ac6314fa35602277f0debb97dc51b9cef024 Mon Sep 17 00:00:00 2001 From: TheSomeMan Date: Thu, 9 Jan 2025 18:44:26 +0700 Subject: [PATCH 1/7] Add macro for RuuviAir history log format and commands LOG_MULTI_WRITE / LOG_MULTI_READ --- src/ruuvi_endpoints.h | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/ruuvi_endpoints.h b/src/ruuvi_endpoints.h index b10102d..eba40fa 100644 --- a/src/ruuvi_endpoints.h +++ b/src/ruuvi_endpoints.h @@ -88,6 +88,10 @@ typedef float re_float; //!< Ruuvi endpoint float type #define RE_STANDARD_LOG_VALUE_READ (RE_STANDARD_LOG_VALUE_WRITE | \ RE_STANDARD_OP_READ_BIT) +#define RE_STANDARD_LOG_MULTI_WRITE (0x20U) +#define RE_STANDARD_LOG_MULTI_READ (RE_STANDARD_LOG_MULTI_WRITE | \ + RE_STANDARD_OP_READ_BIT) + #define RE_SYS_CONFIG_WRITE_HEARTBEAT (0xF2U) #define RE_SYS_CONFIG_READ_HEARTBEAT (RE_SYS_CONFIG_WRITE_HEARTBEAT | \ RE_STANDARD_OP_READ_BIT) @@ -113,6 +117,29 @@ typedef float re_float; //!< Ruuvi endpoint float type #define RE_LOG_WRITE_VALUE_B3_IDX (9U) //!< B3 of value. #define RE_LOG_WRITE_VALUE_LSB_IDX (10U) //!< LSB of value. +#define RE_LOG_WRITE_MULTI__NUM_RECORDS_IDX (3U) //!< Number of records. +#define RE_LOG_WRITE_MULTI__RECORD_LEN_IDX (4U) //!< Length of record. +#define RE_LOG_WRITE_MULTI__PAYLOAD_IDX (5U) //!< Start of payload. + +#define RE_LOG_WRITE_AIR_TIMESTAMP_MSB_OFS (0U) //!< MSB offset of timestamp. +#define RE_LOG_WRITE_AIR_TEMPERATURE_MSB_OFS (4U) //!< MSB offset of temperature. +#define RE_LOG_WRITE_AIR_HUMIDITY_MSB_OFS (6U) //!< MSB offset of humidity. +#define RE_LOG_WRITE_AIR_PRESSURE_MSB_OFS (8U) //!< MSB offset of pressure. +#define RE_LOG_WRITE_AIR_PM1P0_MSB_OFS (10U) //!< MSB offset of pm1p0. +#define RE_LOG_WRITE_AIR_PM2P5_MSB_OFS (12U) //!< MSB offset of pm2p5. +#define RE_LOG_WRITE_AIR_PM4P0_MSB_OFS (14U) //!< MSB offset of pm4p0. +#define RE_LOG_WRITE_AIR_PM10P0_MSB_OFS (16U) //!< MSB offset of pm10p0. +#define RE_LOG_WRITE_AIR_CO2_MSB_OFS (18U) //!< MSB offset of CO2. +#define RE_LOG_WRITE_AIR_VOC_MSB_OFS (20U) //!< MSB offset of VOC index. +#define RE_LOG_WRITE_AIR_NOX_MSB_OFS (22U) //!< MSB offset of NOx index. +#define RE_LOG_WRITE_AIR_LUMINOSITY_MSB_OFS (24U) //!< MSB offset of luminosity. +#define RE_LOG_WRITE_AIR_SOUND_DBA_AVG_OFS (26U) //!< MSB offset of sound_dba_avg. +#define RE_LOG_WRITE_AIR_SOUND_DBA_PEAK_OFS (27U) //!< MSB offset of sound_dba_peak. +#define RE_LOG_WRITE_AIR_VOLTAGE_MSB_OFS (28U) //!< MSB offset of voltage. +#define RE_LOG_WRITE_AIR_FLAGS_MSB_OFS (30U) //!< MSB offset of flags. +#define RE_LOG_WRITE_AIR_RECORD_LEN (32U) //!< Length of record. + + #define RE_STANDARD_DESTINATION_ACCELERATION (0x4AU) //!< XYZ acceleration combined #define RE_STANDARD_DESTINATION_ACCELERATION_X (0x40U) //!< X acceleration #define RE_STANDARD_DESTINATION_ACCELERATION_Y (0x41U) //!< Y acceleration @@ -125,10 +152,11 @@ typedef float re_float; //!< Ruuvi endpoint float type #define RE_STANDARD_DESTINATION_HUMIDITY (0x31U) //!< Humidity #define RE_STANDARD_DESTINATION_PRESSURE (0x32U) //!< Pressure #define RE_STANDARD_DESTINATION_ENVIRONMENTAL (0x3AU) //!< Temp Humi Pres combined. +#define RE_STANDARD_DESTINATION_AIR (0x3BU) //!< All RuuviAir measurements combined. #define RE_STANDARD_DESTINATION_ADC_BATTERY (0x20U) //!< ADC battery vs GND #define RE_STANDARD_DESTINATION_RTC (0x21U) //!< RTC value #define RE_STANDARD_DESTINATION_PASSWORD (0x2AU) //!< Password endpoint. -#define RE_STANDARD_DESTINATION_SYS_CONFIG (0x22U) //!< Configuration of system settings +#define RE_STANDARD_DESTINATION_SYS_CONFIG (0x22U) //!< Configuration of system settings typedef enum { @@ -141,6 +169,7 @@ typedef enum RE_GYR_Y = RE_STANDARD_DESTINATION_GYRATION_Y, RE_GYR_Z = RE_STANDARD_DESTINATION_GYRATION_Z, RE_ENV_ALL = RE_STANDARD_DESTINATION_ENVIRONMENTAL, + RE_ENV_AIR = RE_STANDARD_DESTINATION_AIR, RE_ENV_TEMP = RE_STANDARD_DESTINATION_TEMPERATURE, RE_ENV_HUMI = RE_STANDARD_DESTINATION_HUMIDITY, RE_ENV_PRES = RE_STANDARD_DESTINATION_PRESSURE, @@ -161,7 +190,9 @@ typedef enum RE_SENSOR_CONFIG_W = RE_STANDARD_SENSOR_CONFIGURATION_WRITE, RE_SENSOR_CONFIG_R = RE_STANDARD_SENSOR_CONFIGURATION_READ, RE_LOG_W = RE_STANDARD_LOG_VALUE_WRITE, - RE_LOG_R = RE_STANDARD_LOG_VALUE_READ + RE_LOG_R = RE_STANDARD_LOG_VALUE_READ, + RE_LOG_W_MULTI = RE_STANDARD_LOG_MULTI_WRITE, + RE_LOG_R_MULTI = RE_STANDARD_LOG_MULTI_READ, } re_op_t; /** From d3e41940975185823f9832ee23277112d8d9dadb Mon Sep 17 00:00:00 2001 From: TheSomeMan Date: Thu, 9 Jan 2025 18:53:55 +0700 Subject: [PATCH 2/7] Update GitHub Actions - update ruby from v2.7 to v3.3 --- .github/workflows/astyle.yml | 2 +- .github/workflows/ceedling.yml | 6 +++--- .github/workflows/gh-pages-check.yml | 2 +- .github/workflows/gh-pages-push.yml | 2 +- .github/workflows/sonar-scan.yml | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/astyle.yml b/.github/workflows/astyle.yml index 1eccd60..9176a2e 100644 --- a/.github/workflows/astyle.yml +++ b/.github/workflows/astyle.yml @@ -20,7 +20,7 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 # Install Artistic Style - name: Install Astyle diff --git a/.github/workflows/ceedling.yml b/.github/workflows/ceedling.yml index e1a6ecb..011c8a5 100644 --- a/.github/workflows/ceedling.yml +++ b/.github/workflows/ceedling.yml @@ -20,12 +20,12 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: Set up Ruby 2.7 + - name: Set up Ruby 3.3 uses: ruby/setup-ruby@v1 with: - ruby-version: '2.7' + ruby-version: '3.3' # Runs a single command using the runners shell - name: Install Ceedling diff --git a/.github/workflows/gh-pages-check.yml b/.github/workflows/gh-pages-check.yml index 4bf4ae7..7364b8f 100644 --- a/.github/workflows/gh-pages-check.yml +++ b/.github/workflows/gh-pages-check.yml @@ -18,7 +18,7 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: recursive diff --git a/.github/workflows/gh-pages-push.yml b/.github/workflows/gh-pages-push.yml index 92f4719..c5d3646 100644 --- a/.github/workflows/gh-pages-push.yml +++ b/.github/workflows/gh-pages-push.yml @@ -18,7 +18,7 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: recursive diff --git a/.github/workflows/sonar-scan.yml b/.github/workflows/sonar-scan.yml index d671ef0..9d249a6 100644 --- a/.github/workflows/sonar-scan.yml +++ b/.github/workflows/sonar-scan.yml @@ -19,7 +19,7 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Checkout submodules run: git submodule update --init --recursive @@ -44,10 +44,10 @@ jobs: - name: Compile project run: build-wrapper-linux-x86-64 --out-dir bw-output make sonar - - name: Set up Ruby 2.7 + - name: Set up Ruby 3.3 uses: ruby/setup-ruby@v1 with: - ruby-version: '2.7' + ruby-version: '3.3' # Runs a single command using the runners shell - name: Install Ceedling and GCovr From a2cbad1162804360c999740a00a31e075ea24e0b Mon Sep 17 00:00:00 2001 From: TheSomeMan Date: Thu, 9 Jan 2025 18:56:03 +0700 Subject: [PATCH 3/7] Update GitHub Actions - update ruby from v3.3 to v3.0 --- .github/workflows/ceedling.yml | 4 ++-- .github/workflows/sonar-scan.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ceedling.yml b/.github/workflows/ceedling.yml index 011c8a5..f9b8dc4 100644 --- a/.github/workflows/ceedling.yml +++ b/.github/workflows/ceedling.yml @@ -22,10 +22,10 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v4 - - name: Set up Ruby 3.3 + - name: Set up Ruby 3.0 uses: ruby/setup-ruby@v1 with: - ruby-version: '3.3' + ruby-version: '3.0' # Runs a single command using the runners shell - name: Install Ceedling diff --git a/.github/workflows/sonar-scan.yml b/.github/workflows/sonar-scan.yml index 9d249a6..7aa4c0b 100644 --- a/.github/workflows/sonar-scan.yml +++ b/.github/workflows/sonar-scan.yml @@ -44,10 +44,10 @@ jobs: - name: Compile project run: build-wrapper-linux-x86-64 --out-dir bw-output make sonar - - name: Set up Ruby 3.3 + - name: Set up Ruby 3.0 uses: ruby/setup-ruby@v1 with: - ruby-version: '3.3' + ruby-version: '3.0' # Runs a single command using the runners shell - name: Install Ceedling and GCovr From 6ec4bceecee9f44604fe489a4e66c8f36e0de8ae Mon Sep 17 00:00:00 2001 From: TheSomeMan Date: Thu, 9 Jan 2025 19:04:49 +0700 Subject: [PATCH 4/7] Update GitHub Action - install rub gem ceedling v0.31.1 --- .github/workflows/ceedling.yml | 2 +- .github/workflows/sonar-scan.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ceedling.yml b/.github/workflows/ceedling.yml index f9b8dc4..bacdf3e 100644 --- a/.github/workflows/ceedling.yml +++ b/.github/workflows/ceedling.yml @@ -29,7 +29,7 @@ jobs: # Runs a single command using the runners shell - name: Install Ceedling - run: gem install ceedling + run: gem install ceedling -v 0.31.1 # Runs a set of commands using the runners shell - name: Run a multi-line script diff --git a/.github/workflows/sonar-scan.yml b/.github/workflows/sonar-scan.yml index 7aa4c0b..6031b5a 100644 --- a/.github/workflows/sonar-scan.yml +++ b/.github/workflows/sonar-scan.yml @@ -52,7 +52,7 @@ jobs: # Runs a single command using the runners shell - name: Install Ceedling and GCovr run: | - gem install ceedling + gem install ceedling -v 0.31.1 sudo pip install gcovr From dd33126d7a8669abfcb0d1345e47675bbb0ec84c Mon Sep 17 00:00:00 2001 From: TheSomeMan Date: Thu, 9 Jan 2025 19:09:03 +0700 Subject: [PATCH 5/7] Update sonal-scan GitHub action --- .github/workflows/sonar-scan.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/sonar-scan.yml b/.github/workflows/sonar-scan.yml index 6031b5a..64a59b6 100644 --- a/.github/workflows/sonar-scan.yml +++ b/.github/workflows/sonar-scan.yml @@ -40,10 +40,6 @@ jobs: unzip -q nRF5_SDK_15.3.0_59ac345.zip fi - # Runs a single command using the runners shell - - name: Compile project - run: build-wrapper-linux-x86-64 --out-dir bw-output make sonar - - name: Set up Ruby 3.0 uses: ruby/setup-ruby@v1 with: @@ -55,6 +51,9 @@ jobs: gem install ceedling -v 0.31.1 sudo pip install gcovr + # Runs a single command using the runners shell + - name: Compile project + run: build-wrapper-linux-x86-64 --out-dir bw-output make sonar # Runs a set of commands using the runners shell - name: Run Sonar scanner From 968aa69e5587d29604c36173e64aaedc36830b53 Mon Sep 17 00:00:00 2001 From: TheSomeMan Date: Fri, 10 Jan 2025 00:20:00 +0700 Subject: [PATCH 6/7] Rename macros --- src/ruuvi_endpoints.h | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/ruuvi_endpoints.h b/src/ruuvi_endpoints.h index eba40fa..0be1e5a 100644 --- a/src/ruuvi_endpoints.h +++ b/src/ruuvi_endpoints.h @@ -121,23 +121,23 @@ typedef float re_float; //!< Ruuvi endpoint float type #define RE_LOG_WRITE_MULTI__RECORD_LEN_IDX (4U) //!< Length of record. #define RE_LOG_WRITE_MULTI__PAYLOAD_IDX (5U) //!< Start of payload. -#define RE_LOG_WRITE_AIR_TIMESTAMP_MSB_OFS (0U) //!< MSB offset of timestamp. -#define RE_LOG_WRITE_AIR_TEMPERATURE_MSB_OFS (4U) //!< MSB offset of temperature. -#define RE_LOG_WRITE_AIR_HUMIDITY_MSB_OFS (6U) //!< MSB offset of humidity. -#define RE_LOG_WRITE_AIR_PRESSURE_MSB_OFS (8U) //!< MSB offset of pressure. -#define RE_LOG_WRITE_AIR_PM1P0_MSB_OFS (10U) //!< MSB offset of pm1p0. -#define RE_LOG_WRITE_AIR_PM2P5_MSB_OFS (12U) //!< MSB offset of pm2p5. -#define RE_LOG_WRITE_AIR_PM4P0_MSB_OFS (14U) //!< MSB offset of pm4p0. -#define RE_LOG_WRITE_AIR_PM10P0_MSB_OFS (16U) //!< MSB offset of pm10p0. -#define RE_LOG_WRITE_AIR_CO2_MSB_OFS (18U) //!< MSB offset of CO2. -#define RE_LOG_WRITE_AIR_VOC_MSB_OFS (20U) //!< MSB offset of VOC index. -#define RE_LOG_WRITE_AIR_NOX_MSB_OFS (22U) //!< MSB offset of NOx index. -#define RE_LOG_WRITE_AIR_LUMINOSITY_MSB_OFS (24U) //!< MSB offset of luminosity. -#define RE_LOG_WRITE_AIR_SOUND_DBA_AVG_OFS (26U) //!< MSB offset of sound_dba_avg. -#define RE_LOG_WRITE_AIR_SOUND_DBA_PEAK_OFS (27U) //!< MSB offset of sound_dba_peak. -#define RE_LOG_WRITE_AIR_VOLTAGE_MSB_OFS (28U) //!< MSB offset of voltage. -#define RE_LOG_WRITE_AIR_FLAGS_MSB_OFS (30U) //!< MSB offset of flags. -#define RE_LOG_WRITE_AIR_RECORD_LEN (32U) //!< Length of record. +#define RE_LOG_WRITE_AIRQ_TIMESTAMP_MSB_OFS (0U) //!< MSB offset of timestamp. +#define RE_LOG_WRITE_AIRQ_TEMPERATURE_MSB_OFS (4U) //!< MSB offset of temperature. +#define RE_LOG_WRITE_AIRQ_HUMIDITY_MSB_OFS (6U) //!< MSB offset of humidity. +#define RE_LOG_WRITE_AIRQ_PRESSURE_MSB_OFS (8U) //!< MSB offset of pressure. +#define RE_LOG_WRITE_AIRQ_PM1P0_MSB_OFS (10U) //!< MSB offset of pm1p0. +#define RE_LOG_WRITE_AIRQ_PM2P5_MSB_OFS (12U) //!< MSB offset of pm2p5. +#define RE_LOG_WRITE_AIRQ_PM4P0_MSB_OFS (14U) //!< MSB offset of pm4p0. +#define RE_LOG_WRITE_AIRQ_PM10P0_MSB_OFS (16U) //!< MSB offset of pm10p0. +#define RE_LOG_WRITE_AIRQ_CO2_MSB_OFS (18U) //!< MSB offset of CO2. +#define RE_LOG_WRITE_AIRQ_VOC_MSB_OFS (20U) //!< MSB offset of VOC index. +#define RE_LOG_WRITE_AIRQ_NOX_MSB_OFS (22U) //!< MSB offset of NOx index. +#define RE_LOG_WRITE_AIRQ_LUMINOSITY_MSB_OFS (24U) //!< MSB offset of luminosity. +#define RE_LOG_WRITE_AIRQ_SOUND_DBA_AVG_OFS (26U) //!< MSB offset of sound_dba_avg. +#define RE_LOG_WRITE_AIRQ_SOUND_DBA_PEAK_OFS (27U) //!< MSB offset of sound_dba_peak. +#define RE_LOG_WRITE_AIRQ_VOLTAGE_MSB_OFS (28U) //!< MSB offset of voltage. +#define RE_LOG_WRITE_AIRQ_FLAGS_MSB_OFS (30U) //!< MSB offset of flags. +#define RE_LOG_WRITE_AIRQ_RECORD_LEN (32U) //!< Length of record. #define RE_STANDARD_DESTINATION_ACCELERATION (0x4AU) //!< XYZ acceleration combined @@ -152,7 +152,7 @@ typedef float re_float; //!< Ruuvi endpoint float type #define RE_STANDARD_DESTINATION_HUMIDITY (0x31U) //!< Humidity #define RE_STANDARD_DESTINATION_PRESSURE (0x32U) //!< Pressure #define RE_STANDARD_DESTINATION_ENVIRONMENTAL (0x3AU) //!< Temp Humi Pres combined. -#define RE_STANDARD_DESTINATION_AIR (0x3BU) //!< All RuuviAir measurements combined. +#define RE_STANDARD_DESTINATION_AIRQ (0x3BU) //!< All AIRQ measurements combined. #define RE_STANDARD_DESTINATION_ADC_BATTERY (0x20U) //!< ADC battery vs GND #define RE_STANDARD_DESTINATION_RTC (0x21U) //!< RTC value #define RE_STANDARD_DESTINATION_PASSWORD (0x2AU) //!< Password endpoint. @@ -169,7 +169,7 @@ typedef enum RE_GYR_Y = RE_STANDARD_DESTINATION_GYRATION_Y, RE_GYR_Z = RE_STANDARD_DESTINATION_GYRATION_Z, RE_ENV_ALL = RE_STANDARD_DESTINATION_ENVIRONMENTAL, - RE_ENV_AIR = RE_STANDARD_DESTINATION_AIR, + RE_ENV_AIRQ = RE_STANDARD_DESTINATION_AIRQ, RE_ENV_TEMP = RE_STANDARD_DESTINATION_TEMPERATURE, RE_ENV_HUMI = RE_STANDARD_DESTINATION_HUMIDITY, RE_ENV_PRES = RE_STANDARD_DESTINATION_PRESSURE, From 986d7982e8074edd12fecad899f254973e7f558d Mon Sep 17 00:00:00 2001 From: TheSomeMan Date: Fri, 10 Jan 2025 11:10:11 +0700 Subject: [PATCH 7/7] Remove double underscores in macros --- src/ruuvi_endpoints.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ruuvi_endpoints.h b/src/ruuvi_endpoints.h index 0be1e5a..40341ba 100644 --- a/src/ruuvi_endpoints.h +++ b/src/ruuvi_endpoints.h @@ -117,9 +117,9 @@ typedef float re_float; //!< Ruuvi endpoint float type #define RE_LOG_WRITE_VALUE_B3_IDX (9U) //!< B3 of value. #define RE_LOG_WRITE_VALUE_LSB_IDX (10U) //!< LSB of value. -#define RE_LOG_WRITE_MULTI__NUM_RECORDS_IDX (3U) //!< Number of records. -#define RE_LOG_WRITE_MULTI__RECORD_LEN_IDX (4U) //!< Length of record. -#define RE_LOG_WRITE_MULTI__PAYLOAD_IDX (5U) //!< Start of payload. +#define RE_LOG_WRITE_MULTI_NUM_RECORDS_IDX (3U) //!< Number of records. +#define RE_LOG_WRITE_MULTI_RECORD_LEN_IDX (4U) //!< Length of record. +#define RE_LOG_WRITE_MULTI_PAYLOAD_IDX (5U) //!< Start of payload. #define RE_LOG_WRITE_AIRQ_TIMESTAMP_MSB_OFS (0U) //!< MSB offset of timestamp. #define RE_LOG_WRITE_AIRQ_TEMPERATURE_MSB_OFS (4U) //!< MSB offset of temperature.