diff --git a/Core/Inc/i2c.h b/Core/Inc/i2c.h
new file mode 100644
index 0000000..dcdd711
--- /dev/null
+++ b/Core/Inc/i2c.h
@@ -0,0 +1,51 @@
+/**
+ ******************************************************************************
+ * @file i2c.h
+ * @brief This file contains all the function prototypes for
+ * the i2c.c file
+ ******************************************************************************
+ * @attention
+ *
+ *
© Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software component is licensed by ST under BSD 3-Clause license,
+ * the "License"; You may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ * opensource.org/licenses/BSD-3-Clause
+ *
+ ******************************************************************************
+ */
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __I2C_H__
+#define __I2C_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+
+/* USER CODE BEGIN Private defines */
+
+/* USER CODE END Private defines */
+
+void MX_I2C2_Init(void);
+
+/* USER CODE BEGIN Prototypes */
+
+/* USER CODE END Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __I2C_H__ */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Core/Inc/main.h b/Core/Inc/main.h
index 645b59b..d91145d 100644
--- a/Core/Inc/main.h
+++ b/Core/Inc/main.h
@@ -85,7 +85,32 @@ void Error_Handler(void);
#define USARTx_TX_GPIO_Port GPIOA
/* USER CODE BEGIN Private defines */
+#define BUT1_Pin GPIO_PIN_0
+#define BUT1_GPIO_Port GPIOA
+#define BUT1_EXTI_IRQn EXTI0_IRQn
+#define VL53LX 1
+
+#ifdef VL53LX
+#define TOF_C_INT_Pin GPIO_PIN_3
+#define TOF_C_INT_GPIO_Port GPIOB
+#define TOF_C_INT_EXTI_IRQn EXTI3_IRQn
+
+#define TOF_C_XSHUT_Pin GPIO_PIN_5
+#define TOF_C_XSHUT_GPIO_Port GPIOB
+#endif
+#ifdef STM32WLE5xx
+#define I2C2_SCL_PIN GPIO_PIN_12
+#define I2C2_SDA_PIN GPIO_PIN_11
+#define I2C2_SCL_PORT GPIOA
+#define I2C2_SDA_PORT GPIOA
+
+// FOR STM32WLE5CCU6 UFQFPN48 PA12 PA11
+#define I2C2_STANDARD_100K 0x00000E14
+#define I2C2_FAST_400K 0x00000004
+#define I2C2_FAST_PLUS_1M 0x00000000
+
+#endif
/* USER CODE END Private defines */
#ifdef __cplusplus
diff --git a/Core/Inc/stm32wlxx_hal_conf.h b/Core/Inc/stm32wlxx_hal_conf.h
index 556c59f..199d4f6 100644
--- a/Core/Inc/stm32wlxx_hal_conf.h
+++ b/Core/Inc/stm32wlxx_hal_conf.h
@@ -41,7 +41,7 @@
/*#define HAL_DAC_MODULE_ENABLED */
/*#define HAL_GTZC_MODULE_ENABLED */
/*#define HAL_HSEM_MODULE_ENABLED */
-/*#define HAL_I2C_MODULE_ENABLED */
+#define HAL_I2C_MODULE_ENABLED
/*#define HAL_I2S_MODULE_ENABLED */
/*#define HAL_IPCC_MODULE_ENABLED */
/*#define HAL_IRDA_MODULE_ENABLED */
diff --git a/Core/Inc/sys_conf.h b/Core/Inc/sys_conf.h
index 1f15237..871fadc 100644
--- a/Core/Inc/sys_conf.h
+++ b/Core/Inc/sys_conf.h
@@ -75,13 +75,13 @@ extern "C" {
* @brief Enable/Disable MCU Debugger pins (dbg serial wires)
* @note by HW serial wires are ON by default, need to put them OFF to save power
*/
-#define DEBUGGER_ENABLED 0
+#define DEBUGGER_ENABLED 1
/**
* @brief Disable Low Power mode
* @note 0: LowPowerMode enabled. MCU enters stop2 mode, 1: LowPowerMode disabled. MCU enters sleep mode only
*/
-#define LOW_POWER_DISABLE 0
+#define LOW_POWER_DISABLE 1
/* USER CODE BEGIN EC */
diff --git a/Core/Src/dma.c b/Core/Src/dma.c
index 459b3fd..01f8918 100644
--- a/Core/Src/dma.c
+++ b/Core/Src/dma.c
@@ -44,6 +44,19 @@ void MX_DMA_Init(void)
__HAL_RCC_DMA1_CLK_ENABLE();
/* DMA interrupt init */
+
+ // I2C2
+#ifdef VL53LX
+ /* DMA1_Channel3_IRQn interrupt configuration */
+ /* I2C2 RX */
+ HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn);
+ /* DMA1_Channel4_IRQn interrupt configuration */
+ /* I2C2 TX */
+ HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(DMA1_Channel4_IRQn);
+#endif
+
/* DMA1_Channel5_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 2, 0);
HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c
index 7cda6a6..709910c 100644
--- a/Core/Src/gpio.c
+++ b/Core/Src/gpio.c
@@ -79,6 +79,24 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(BUT3_GPIO_Port, &GPIO_InitStruct);
+#ifdef VL53LX
+ /*Configure GPIO pins : TOF_C_INT_Pin TOF_R_INT_Pin */
+ GPIO_InitStruct.Pin = TOF_C_INT_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
+ GPIO_InitStruct.Pull = GPIO_PULLUP; //GPIO_NOPULL;
+ HAL_GPIO_Init(TOF_C_INT_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : TOF_C_XSHUT_Pin */
+ GPIO_InitStruct.Pin = TOF_C_XSHUT_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(TOF_C_XSHUT_GPIO_Port, &GPIO_InitStruct);
+
+ HAL_NVIC_SetPriority(TOF_C_INT_EXTI_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(TOF_C_INT_EXTI_IRQn);
+
+#endif
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
@@ -89,6 +107,7 @@ void MX_GPIO_Init(void)
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
+
}
/* USER CODE BEGIN 2 */
diff --git a/Core/Src/i2c.c b/Core/Src/i2c.c
new file mode 100644
index 0000000..0b6b321
--- /dev/null
+++ b/Core/Src/i2c.c
@@ -0,0 +1,197 @@
+/**
+ ******************************************************************************
+ * @file i2c.c
+ * @brief This file provides code for the configuration
+ * of the I2C instances.
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software component is licensed by ST under BSD 3-Clause license,
+ * the "License"; You may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ * opensource.org/licenses/BSD-3-Clause
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "i2c.h"
+#include "main.h"
+/* USER CODE BEGIN 0 */
+I2C_HandleTypeDef hi2c2;
+DMA_HandleTypeDef hdma_i2c2_rx;
+DMA_HandleTypeDef hdma_i2c2_tx;
+/* USER CODE END 0 */
+
+/* I2C2 init function */
+/**
+ * @brief I2C2 Initialization Function
+ * @param None
+ * @retval None
+ */
+void MX_I2C2_Init(void)
+{
+
+ /* USER CODE BEGIN I2C2_Init 0 */
+
+ /* USER CODE END I2C2_Init 0 */
+
+ /* USER CODE BEGIN I2C2_Init 1 */
+
+ /* USER CODE END I2C2_Init 1 */
+ hi2c2.Instance = I2C2;
+ hi2c2.Init.Timing = I2C2_FAST_400K;
+ hi2c2.Init.OwnAddress1 = 0;
+ hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c2.Init.OwnAddress2 = 0;
+ hi2c2.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
+ hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c2, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c2, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C2_Init 2 */
+
+ /* USER CODE END I2C2_Init 2 */
+
+}
+
+void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
+{
+
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+ if(i2cHandle->Instance==I2C2)
+ {
+ /* USER CODE BEGIN I2C2_MspInit 0 */
+
+ /* USER CODE END I2C2_MspInit 0 */
+
+ /** Initializes the peripherals clocks
+ */
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C2;
+ PeriphClkInitStruct.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ /**I2C2 GPIO Configuration
+ PA12 ------> I2C2_SCL
+ PA11 ------> I2C2_SDA
+ */
+ GPIO_InitStruct.Pin = I2C2_SCL_PIN|I2C2_SDA_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ GPIO_InitStruct.Pull = GPIO_NOPULL; //GPIO_PULLUP;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
+ HAL_GPIO_Init(I2C2_SCL_PORT, &GPIO_InitStruct);
+
+ /* I2C2 clock enable */
+ __HAL_RCC_I2C2_CLK_ENABLE();
+
+ /* I2C2 DMA Init */
+ /* I2C2_RX Init */
+ hdma_i2c2_rx.Instance = DMA1_Channel3;
+ hdma_i2c2_rx.Init.Request = DMA_REQUEST_I2C2_RX;
+ hdma_i2c2_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
+ hdma_i2c2_rx.Init.PeriphInc = DMA_PINC_DISABLE;
+ hdma_i2c2_rx.Init.MemInc = DMA_MINC_ENABLE;
+ hdma_i2c2_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ hdma_i2c2_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ hdma_i2c2_rx.Init.Mode = DMA_NORMAL;
+ hdma_i2c2_rx.Init.Priority = DMA_PRIORITY_LOW;
+ if (HAL_DMA_Init(&hdma_i2c2_rx) != HAL_OK)
+ {
+ Error_Handler();
+ }
+#ifdef STM32WL55xx
+ if (HAL_DMA_ConfigChannelAttributes(&hdma_i2c2_rx, DMA_CHANNEL_NPRIV) != HAL_OK)
+ {
+ Error_Handler();
+ }
+#endif
+ __HAL_LINKDMA(i2cHandle,hdmarx,hdma_i2c2_rx);
+
+ /* I2C2_TX Init */
+ hdma_i2c2_tx.Instance = DMA1_Channel4;
+ hdma_i2c2_tx.Init.Request = DMA_REQUEST_I2C2_TX;
+ hdma_i2c2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
+ hdma_i2c2_tx.Init.PeriphInc = DMA_PINC_DISABLE;
+ hdma_i2c2_tx.Init.MemInc = DMA_MINC_ENABLE;
+ hdma_i2c2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ hdma_i2c2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ hdma_i2c2_tx.Init.Mode = DMA_NORMAL;
+ hdma_i2c2_tx.Init.Priority = DMA_PRIORITY_LOW;
+ if (HAL_DMA_Init(&hdma_i2c2_tx) != HAL_OK)
+ {
+ Error_Handler();
+ }
+#ifdef STM32WL55xx
+ if (HAL_DMA_ConfigChannelAttributes(&hdma_i2c2_tx, DMA_CHANNEL_NPRIV) != HAL_OK)
+ {
+ Error_Handler();
+ }
+#endif
+ __HAL_LINKDMA(i2cHandle,hdmatx,hdma_i2c2_tx);
+
+ /* USER CODE BEGIN I2C2_MspInit 1 */
+
+ /* USER CODE END I2C2_MspInit 1 */
+ }
+}
+
+void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle)
+{
+
+ if(i2cHandle->Instance==I2C2)
+ {
+ /* USER CODE BEGIN I2C2_MspDeInit 0 */
+
+ /* USER CODE END I2C2_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_I2C2_CLK_DISABLE();
+
+ /**I2C2 GPIO Configuration
+ PA12 ------> I2C2_SCL
+ PA11 ------> I2C2_SDA
+ */
+ HAL_GPIO_DeInit(I2C2_SCL_PORT, I2C2_SCL_PIN);
+
+ HAL_GPIO_DeInit(I2C2_SCL_PORT, I2C2_SDA_PIN);
+
+ /* I2C2 DMA DeInit */
+ HAL_DMA_DeInit(i2cHandle->hdmarx);
+ HAL_DMA_DeInit(i2cHandle->hdmatx);
+
+ /* USER CODE BEGIN I2C2_MspDeInit 1 */
+
+ /* USER CODE END I2C2_MspDeInit 1 */
+ }
+}
+
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Core/Src/main.c b/Core/Src/main.c
index 54e48cd..3af2c74 100644
--- a/Core/Src/main.c
+++ b/Core/Src/main.c
@@ -23,6 +23,12 @@
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
+#include "i2c.h"
+#include "dma.h"
+#include "usart.h"
+#include "sys_app.h"
+#include "app_tof.h"
+#include "app_tof_peoplecount.h"
/* USER CODE END Includes */
@@ -54,7 +60,12 @@ void SystemClock_Config(void);
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
-
+int _write(int file, char *ptr, int len)
+{
+ (void) file;
+ HAL_UART_Transmit (&huart2, (uint8_t*)ptr, len, 0xFFFF);
+ return len;
+}
/* USER CODE END 0 */
/**
@@ -85,9 +96,14 @@ int main(void)
/* Initialize all configured peripherals */
MX_GPIO_Init();
+ MX_I2C2_Init();
+ MX_DMA_Init();
+
MX_LoRaWAN_Init();
/* USER CODE BEGIN 2 */
+
+
/* USER CODE END 2 */
/* Infinite loop */
diff --git a/Core/Src/stm32wlxx_it.c b/Core/Src/stm32wlxx_it.c
index 66231ac..01b9d94 100644
--- a/Core/Src/stm32wlxx_it.c
+++ b/Core/Src/stm32wlxx_it.c
@@ -60,7 +60,10 @@ extern SUBGHZ_HandleTypeDef hsubghz;
extern DMA_HandleTypeDef hdma_usart2_tx;
extern UART_HandleTypeDef huart2;
/* USER CODE BEGIN EV */
-
+#ifdef VL53LX
+extern DMA_HandleTypeDef hdma_i2c2_rx;
+extern DMA_HandleTypeDef hdma_i2c2_tx;
+#endif
/* USER CODE END EV */
/******************************************************************************/
@@ -242,6 +245,38 @@ void EXTI1_IRQHandler(void)
/* USER CODE END EXTI1_IRQn 1 */
}
+/* I2C2 */
+/**
+ * @brief This function handles DMA1 Channel 3 Interrupt.
+ */
+void DMA1_Channel3_IRQHandler(void)
+{
+ /* USER CODE BEGIN DMA1_Channel3_IRQn 0 */
+
+ /* USER CODE END DMA1_Channel3_IRQn 0 */
+ HAL_DMA_IRQHandler(&hdma_i2c2_rx);
+ /* USER CODE BEGIN DMA1_Channel3_IRQn 1 */
+
+ /* USER CODE END DMA1_Channel3_IRQn 1 */
+}
+
+
+/**
+ * @brief This function handles DMA1 Channel 4 Interrupt.
+ */
+void DMA1_Channel4_IRQHandler(void)
+{
+ /* USER CODE BEGIN DMA1_Channel4_IRQn 0 */
+
+ /* USER CODE END DMA1_Channel4_IRQn 0 */
+ HAL_DMA_IRQHandler(&hdma_i2c2_tx);
+ /* USER CODE BEGIN DMA1_Channel4_IRQn 1 */
+
+ /* USER CODE END DMA1_Channel4_IRQn 1 */
+}
+
+
+
/**
* @brief This function handles DMA1 Channel 5 Interrupt.
*/
diff --git a/Core/Src/sys_app.c b/Core/Src/sys_app.c
index 705ba80..2b66462 100644
--- a/Core/Src/sys_app.c
+++ b/Core/Src/sys_app.c
@@ -32,7 +32,7 @@
#include "sys_sensors.h"
/* USER CODE BEGIN Includes */
-
+#include "app_tof_peoplecount.h"
/* USER CODE END Includes */
/* External variables ---------------------------------------------------------*/
@@ -117,7 +117,7 @@ void SystemApp_Init(void)
/*Initialize the Sensors */
EnvSensors_Init();
-
+ STS_TOF_VL53LX_PeopleCounting_Process_Init();
/*Init low power manager*/
UTIL_LPM_Init();
/* Disable Stand-by mode */
diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c
index 0eabe19..e71810a 100644
--- a/LoRaWAN/App/lora_app.c
+++ b/LoRaWAN/App/lora_app.c
@@ -36,6 +36,8 @@
#include "flash_if.h"
/* USER CODE BEGIN Includes */
+#include "app_tof_pin_conf.h"
+#include "app_tof_peoplecount.h"
/* USER CODE END Includes */
@@ -297,6 +299,12 @@ static TxEventType_t EventType = TX_ON_TIMER;
*/
static UTIL_TIMER_Object_t TxTimer;
+/**
+ * @brief Timer to handle the application ToF Ranging Scan
+ */
+static UTIL_TIMER_Object_t WakeUpScanTimer;
+
+
/**
* @brief Tx Timer period
*/
@@ -342,7 +350,7 @@ static UTIL_TIMER_Object_t JoinLedTimer;
/* Exported functions ---------------------------------------------------------*/
/* USER CODE BEGIN EF */
-
+extern volatile uint8_t ToF_EventDetected;
/* USER CODE END EF */
void LoRaWAN_Init(void)
@@ -434,6 +442,8 @@ void LoRaWAN_Init(void)
}
/* USER CODE BEGIN LoRaWAN_Init_Last */
+ UTIL_TIMER_Create(&WakeUpScanTimer, 50, UTIL_TIMER_PERIODIC, (void*)STS_TOF_VL53LX_PeopleCounting_Process_Start, NULL);
+ UTIL_TIMER_Start(&WakeUpScanTimer);
/* USER CODE END LoRaWAN_Init_Last */
}
@@ -457,6 +467,10 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
case BUT3_Pin:
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaStoreContextEvent), CFG_SEQ_Prio_0);
break;
+ case TOF_INT_EXTI_PIN:
+ ToF_EventDetected = 1;
+ break;
+
default:
break;
}
@@ -556,6 +570,7 @@ static void SendTxData(void)
uint8_t batteryLevel = GetBatteryLevel();
sensor_t sensor_data;
UTIL_TIMER_Time_t nextTxIn = 0;
+ sts_people_count_sensor_data_t sts_p2_sensor_data;
if (LmHandlerIsBusy() == false)
{
@@ -572,12 +587,14 @@ static void SendTxData(void)
#endif /* CAYENNE_LPP */
EnvSensors_Read(&sensor_data);
-
+#ifdef VL53LX
+ STS_people_count_sensor_Read(&sts_p2_sensor_data);
+#endif
APP_LOG(TS_ON, VLEVEL_M, "VDDA: %d\r\n", batteryLevel);
APP_LOG(TS_ON, VLEVEL_M, "temp: %d\r\n", (int16_t)(sensor_data.temperature));
- AppData.Port = LORAWAN_USER_APP_PORT;
-
+ //AppData.Port = LORAWAN_USER_APP_PORT;
+ AppData.Port = 106; /* STS-P2 Data Port */
#ifdef CAYENNE_LPP
CayenneLppReset();
CayenneLppAddBarometricPressure(channel++, sensor_data.pressure);
@@ -628,7 +645,29 @@ static void SendTxData(void)
AppData.Buffer[i++] = (uint8_t)((altitudeGps >> 8) & 0xFF);
AppData.Buffer[i++] = (uint8_t)(altitudeGps & 0xFF);
}
+#ifdef VL53LX
+ AppData.Buffer[i++] = (uint8_t)((sts_p2_sensor_data.Walk_In_People_Count>>8) & 0xFF);
+ AppData.Buffer[i++] = (uint8_t)(sts_p2_sensor_data.Walk_In_People_Count & 0xFF);
+ AppData.Buffer[i++] = (uint8_t)((sts_p2_sensor_data.Walk_Out_People_Count>>8) & 0xFF);
+ AppData.Buffer[i++] = (uint8_t)(sts_p2_sensor_data.Walk_Out_People_Count & 0xFF);
+
+ AppData.Buffer[i++] = (uint8_t)((sts_p2_sensor_data.Walk_Around_People_Count>>8) & 0xFF);
+ AppData.Buffer[i++] = (uint8_t)(sts_p2_sensor_data.Walk_Around_People_Count & 0xFF);
+#endif
+#ifdef VL53LX
+ AppData.Buffer[i++] = (uint8_t)((sts_p2_sensor_data.Count_Period) & 0xFF);
+ AppData.Buffer[i++] = (uint8_t)((sts_p2_sensor_data.Count_Period_Unit) & 0xFF);
+
+ AppData.Buffer[i++] = (uint8_t)((sts_p2_sensor_data.Sum_Day_Walk_In_People_Count>>8) & 0xFF);
+ AppData.Buffer[i++] = (uint8_t)(sts_p2_sensor_data.Sum_Day_Walk_In_People_Count & 0xFF);
+
+ AppData.Buffer[i++] = (uint8_t)((sts_p2_sensor_data.Sum_Day_Walk_Out_People_Count>>8) & 0xFF);
+ AppData.Buffer[i++] = (uint8_t)(sts_p2_sensor_data.Sum_Day_Walk_Out_People_Count & 0xFF);
+
+ AppData.Buffer[i++] = (uint8_t)((sts_p2_sensor_data.Sum_Day_Walk_Around_People_Count>>8) & 0xFF);
+ AppData.Buffer[i++] = (uint8_t)(sts_p2_sensor_data.Sum_Day_Walk_Around_People_Count & 0xFF);
+#endif
AppData.BufferSize = i;
#endif /* CAYENNE_LPP */
@@ -743,6 +782,13 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams)
{
APP_LOG(TS_OFF, VLEVEL_M, "OTAA =====================\r\n");
}
+ AppData.Port = 1;
+ AppData.BufferSize = 2;
+ AppData.Buffer[0]=0x38;
+ AppData.Buffer[1]=0x38;
+ LmHandlerParams.IsTxConfirmed = true;
+ int status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false);
+ LmHandlerParams.IsTxConfirmed = false;
}
else
{
@@ -750,6 +796,7 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams)
}
APP_LOG(TS_OFF, VLEVEL_H, "###### U/L FRAME:JOIN | DR:%d | PWR:%d\r\n", joinParams->Datarate, joinParams->TxPower);
+
}
/* USER CODE END OnJoinRequest_1 */
}
diff --git a/README.md b/README.md
index e9407ef..f87cc99 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,2 @@
--- STS-P2 ---
-
+ 2024 09 11 START P2A
diff --git a/STM32CubeIDE/.cproject b/STM32CubeIDE/.cproject
index 8ba73e3..d38950e 100644
--- a/STM32CubeIDE/.cproject
+++ b/STM32CubeIDE/.cproject
@@ -42,6 +42,9 @@