/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.h * @brief : Header for main.c file. * This file contains the common defines of the application. ****************************************************************************** ** This notice applies to any and all portions of this file * that are not between comment pairs USER CODE BEGIN and * USER CODE END. Other portions of this file, whether * inserted by the user or by software development tools * are owned by their respective copyright owners. * * COPYRIGHT(c) 2019 STMicroelectronics * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. Neither the name of STMicroelectronics nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** */ /* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __MAIN_H #define __MAIN_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "stm32f1xx_hal.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include #include #include "sth30_crc.h" #include "SX1276.h" #include "RGB_Controller.h" /* USER CODE END Includes */ /* Exported types ------------------------------------------------------------*/ /* USER CODE BEGIN ET */ typedef enum{ //LIMIT SET enum bluecell_stx = 0, bluecell_type, bluecell_length, bluecell_srcid, bluecell_red_H, bluecell_red_L, bluecell_green_H, bluecell_green_L, bluecell_blue_H, bluecell_blue_L, bluecell_dstid, bluecell_crc, bluecell_etx, }RGB_Protocol_t; typedef enum{ //LIMIT SET enum Location_stx = 0, Location_type, Location_length, Location_srcid, Location_Data, }RGB_Location_Protocol_t; /* USER CODE END ET */ /* Exported constants --------------------------------------------------------*/ /* USER CODE BEGIN EC */ /* USER CODE END EC */ /* Exported macro ------------------------------------------------------------*/ /* USER CODE BEGIN EM */ extern void Uart3_Data_Send(uint8_t* data,uint8_t size); extern void RGB_SensorIDAutoSet(uint8_t set); extern uint8_t RGB_SensorIDAutoGet(void); extern void Flash_write(uint8_t*); extern void LoraDataSendSet(uint8_t val); extern uint8_t LoraDataSendGet(void); extern void Uart2_Data_Send(uint8_t* data,uint8_t size); extern void Uart1_Data_Send(uint8_t* data,uint8_t size); extern void Lora_Initialize(void); /* USER CODE END EM */ /* Exported functions prototypes ---------------------------------------------*/ void Error_Handler(void); /* USER CODE BEGIN EFP */ extern uint8_t MyControllerID; extern uint8_t SensorID; extern uint8_t Lora_Buf[100]; extern I2C_HandleTypeDef hi2c2; extern volatile uint32_t LedTimerCnt; typedef enum{ RGB_Status_Data_Request = 0x01, RGB_ControllerID_SET , //2 RGB_SensorID_SET , //3 RGB_SensorID_SET_Success, //4 RGB_Status_Data_Response , //5 RGB_ControllerLimitSet , //6 RGB_Sensor_Start , //7 RGB_Sensor_Check , //8 RGB_Sensor_Ack, //9 RGB_Reset, //10 RGB_BootStart, //11 RGB_ID_Allocate_Request, //12 RGB_Lora_ControllerIDAmount_Report, //13 /* ??? */ RGB_Location_Report, //14 RGB_Location_Response, //15 RGB_ControllerID_GET, //16 RGB_Controller_Update_Ack, //17 RGB_ControllerLimitGet , //18 RGB_Lora_Init_Request, //19 RGB_Lora_Init_Response, //20 RGB_Lora_DataRequest, //21 RGB_Lora_DataResponse, //22 RGB_Lora_ConfigSet, //23 RGB_Lora_ConfigGet, //24 RGB_Controller_Init_Start , // = 25; RGB_Controller_Init_End , //= 26; RGB_GUI_SensorDataRequest, //27 }RGB_CMD_T; typedef struct{ uint8_t Request_stx; uint8_t Request_type; uint8_t Request_length; uint8_t Request_srcid; uint8_t Request_dstid; uint8_t Request_crc; uint8_t Request_etx; }LoraDataRequest_t; #define RGB_ControllerID_SET_Length 10 #define RGB_SensorDataRequest_Length 7 #define RGB_SensorIDAutoSetRequest_Length 7 #define Lora_Max_Amount 5 #define LORA_MAX_DATA_CNT Lora_Max_Amount + 3 /*ID ? •λ³? */ #define MY_ID_ADDRESS 0x0000 /*?ƒ‰κΉ? ? œ?•œ ? •λ³? */ /*SENSOR 1 ADDRESS*/ #define RGB1_LIMIT_RED_H_ADDRESS 0x0001 #define RGB1_LIMIT_RED_L_ADDRESS 0x0002 #define RGB1_LIMIT_GREEN_H_ADDRESS 0x0003 #define RGB1_LIMIT_GREEN_L_ADDRESS 0x0004 #define RGB1_LIMIT_BLUE_H_ADDRESS 0x0005 #define RGB1_LIMIT_BLUE_L_ADDRESS 0x0006 /*SENSOR 2 ADDRESS*/ #define RGB2_LIMIT_RED_H_ADDRESS 0x0007 #define RGB2_LIMIT_RED_L_ADDRESS 0x0008 #define RGB2_LIMIT_GREEN_H_ADDRESS 0x0009 #define RGB2_LIMIT_GREEN_L_ADDRESS 0x000A #define RGB2_LIMIT_BLUE_H_ADDRESS 0x000B #define RGB2_LIMIT_BLUE_L_ADDRESS 0x000C /*SENSOR 3 ADDRESS*/ #define RGB3_LIMIT_RED_H_ADDRESS 0x000D #define RGB3_LIMIT_RED_L_ADDRESS 0x000E #define RGB3_LIMIT_GREEN_H_ADDRESS 0x000F #define RGB3_LIMIT_GREEN_L_ADDRESS 0x0010 #define RGB3_LIMIT_BLUE_H_ADDRESS 0x0011 #define RGB3_LIMIT_BLUE_L_ADDRESS 0x0012 /*SENSOR 4 ADDRESS*/ #define RGB4_LIMIT_RED_H_ADDRESS 0x0013 #define RGB4_LIMIT_RED_L_ADDRESS 0x0014 #define RGB4_LIMIT_GREEN_H_ADDRESS 0x0015 #define RGB4_LIMIT_GREEN_L_ADDRESS 0x0016 #define RGB4_LIMIT_BLUE_H_ADDRESS 0x0017 #define RGB4_LIMIT_BLUE_L_ADDRESS 0x0018 /*SENSOR 5 ADDRESS*/ #define RGB5_LIMIT_RED_H_ADDRESS 0x0019 #define RGB5_LIMIT_RED_L_ADDRESS 0x001A #define RGB5_LIMIT_GREEN_H_ADDRESS 0x001B #define RGB5_LIMIT_GREEN_L_ADDRESS 0x001C #define RGB5_LIMIT_BLUE_H_ADDRESS 0x001D #define RGB5_LIMIT_BLUE_L_ADDRESS 0x001E /*SENSOR 6 ADDRESS*/ #define RGB6_LIMIT_RED_H_ADDRESS 0x001F #define RGB6_LIMIT_RED_L_ADDRESS 0x0020 #define RGB6_LIMIT_GREEN_H_ADDRESS 0x0021 #define RGB6_LIMIT_GREEN_L_ADDRESS 0x0022 #define RGB6_LIMIT_BLUE_H_ADDRESS 0x0023 #define RGB6_LIMIT_BLUE_L_ADDRESS 0x0024 /*SENSOR 7 ADDRESS*/ #define RGB7_LIMIT_RED_H_ADDRESS 0x0025 #define RGB7_LIMIT_RED_L_ADDRESS 0x0036 #define RGB7_LIMIT_GREEN_H_ADDRESS 0x0027 #define RGB7_LIMIT_GREEN_L_ADDRESS 0x0028 #define RGB7_LIMIT_BLUE_H_ADDRESS 0x0029 #define RGB7_LIMIT_BLUE_L_ADDRESS 0x002A /*SENSOR 8 ADDRESS*/ #define RGB8_LIMIT_RED_H_ADDRESS 0x002B #define RGB8_LIMIT_RED_L_ADDRESS 0x002C #define RGB8_LIMIT_GREEN_H_ADDRESS 0x002D #define RGB8_LIMIT_GREEN_L_ADDRESS 0x002E #define RGB8_LIMIT_BLUE_H_ADDRESS 0x002F #define RGB8_LIMIT_BLUE_L_ADDRESS 0x0031 /*?œ„μΉ? ? •λ³? */ #define RGB1_LOCATION_ADDRESS 0x0032 #define RGB2_LOCATION_ADDRESS RGB1_LOCATION_ADDRESS + 50 #define RGB3_LOCATION_ADDRESS RGB2_LOCATION_ADDRESS + 50 #define RGB4_LOCATION_ADDRESS RGB3_LOCATION_ADDRESS + 50 #define RGB5_LOCATION_ADDRESS RGB4_LOCATION_ADDRESS + 50 #define RGB6_LOCATION_ADDRESS RGB5_LOCATION_ADDRESS + 50 #define RGB7_LOCATION_ADDRESS RGB6_LOCATION_ADDRESS + 50 #define RGB8_LOCATION_ADDRESS RGB7_LOCATION_ADDRESS + 50 /* Lora */ #define RGB_LORA_FREQ_ADDRESS RGB8_LOCATION_ADDRESS + 50 #define RGB_LORA_PABOOST_ADDRESS RGB_LORA_FREQ_ADDRESS + 1 #define RGB_LORA_SF_ADDRESS RGB_LORA_PABOOST_ADDRESS + 1 #define RGB_LORA_BANDWIDTH_ADDRESS RGB_LORA_SF_ADDRESS + 1 #define RGB_LORA_LNA_ADDRESS RGB_LORA_BANDWIDTH_ADDRESS + 1 #define Reserved_ADDRESS RGB_LORA_PABOOST_ADDRESS + 1 /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ #define BOOT_LED_Pin GPIO_PIN_15 #define BOOT_LED_GPIO_Port GPIOC #define IWDG_RESET_Pin GPIO_PIN_0 #define IWDG_RESET_GPIO_Port GPIOC #define IWDG_RESET_EXTI_IRQn EXTI0_IRQn #define SX1276_DIO0_Pin GPIO_PIN_4 #define SX1276_DIO0_GPIO_Port GPIOA #define SX1276_DIO1_Pin GPIO_PIN_5 #define SX1276_DIO1_GPIO_Port GPIOA #define SX1276_DIO2_Pin GPIO_PIN_6 #define SX1276_DIO2_GPIO_Port GPIOA #define SX1276_DIO3_Pin GPIO_PIN_7 #define SX1276_DIO3_GPIO_Port GPIOA #define SX1276_DIO4_Pin GPIO_PIN_4 #define SX1276_DIO4_GPIO_Port GPIOC #define SX1276_DIO5_Pin GPIO_PIN_5 #define SX1276_DIO5_GPIO_Port GPIOC #define SX1276_RESET_Pin GPIO_PIN_0 #define SX1276_RESET_GPIO_Port GPIOB #define LED_ALARM_Pin GPIO_PIN_12 #define LED_ALARM_GPIO_Port GPIOB #define SENSOR_EN1_Pin GPIO_PIN_13 #define SENSOR_EN1_GPIO_Port GPIOB #define SENSOR_EN2_Pin GPIO_PIN_14 #define SENSOR_EN2_GPIO_Port GPIOB #define SENSOR_EN3_Pin GPIO_PIN_15 #define SENSOR_EN3_GPIO_Port GPIOB #define SENSOR_EN4_Pin GPIO_PIN_6 #define SENSOR_EN4_GPIO_Port GPIOC #define SENSOR_EN5_Pin GPIO_PIN_7 #define SENSOR_EN5_GPIO_Port GPIOC #define SENSOR_EN6_Pin GPIO_PIN_8 #define SENSOR_EN6_GPIO_Port GPIOC #define SENSOR_EN7_Pin GPIO_PIN_9 #define SENSOR_EN7_GPIO_Port GPIOC #define SENSOR_EN8_Pin GPIO_PIN_8 #define SENSOR_EN8_GPIO_Port GPIOA #define SX1276_NSS_Pin GPIO_PIN_15 #define SX1276_NSS_GPIO_Port GPIOA #define LED_CH1_Pin GPIO_PIN_10 #define LED_CH1_GPIO_Port GPIOC #define LED_CH2_Pin GPIO_PIN_11 #define LED_CH2_GPIO_Port GPIOC #define LED_CH3_Pin GPIO_PIN_12 #define LED_CH3_GPIO_Port GPIOC #define LED_CH4_Pin GPIO_PIN_2 #define LED_CH4_GPIO_Port GPIOD #define SX1276_CLK_Pin GPIO_PIN_3 #define SX1276_CLK_GPIO_Port GPIOB #define SX1276_MISO_Pin GPIO_PIN_4 #define SX1276_MISO_GPIO_Port GPIOB #define SX1276_MOSI_Pin GPIO_PIN_5 #define SX1276_MOSI_GPIO_Port GPIOB #define LED_CH5_Pin GPIO_PIN_6 #define LED_CH5_GPIO_Port GPIOB #define LED_CH6_Pin GPIO_PIN_7 #define LED_CH6_GPIO_Port GPIOB #define LED_CH7_Pin GPIO_PIN_8 #define LED_CH7_GPIO_Port GPIOB #define LED_CH8_Pin GPIO_PIN_9 #define LED_CH8_GPIO_Port GPIOB /* USER CODE BEGIN Private defines */ #define buf_size 100 /* USER CODE END Private defines */ #ifdef __cplusplus } #endif #endif /* __MAIN_H */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/