/*
 * includes.c
 *
 *  Created on: 2019. 7. 28.
 *      Author: parkyj
 */
#include "includes.h"

#define MACROSTR(k) #k


static char *Bluecell_Prot_IndexStr[] = {
    MACROSTR(INDEX_ATT_1_8G_DL1     ),
    MACROSTR(INDEX_ATT_1_8G_DL2     ),
    MACROSTR(INDEX_ATT_1_8G_UL1     ),
    MACROSTR(INDEX_ATT_1_8G_UL2     ),
    MACROSTR(INDEX_ATT_1_8G_UL3     ),
    MACROSTR(INDEX_ATT_1_8G_UL4     ),
    MACROSTR(INDEX_ATT_2_1G_DL1     ),
    MACROSTR(INDEX_ATT_2_1G_DL2     ),
    MACROSTR(INDEX_ATT_2_1G_UL1     ),
    MACROSTR(INDEX_ATT_2_1G_UL2     ),
    MACROSTR(INDEX_ATT_2_1G_UL3     ),
    MACROSTR(INDEX_ATT_2_1G_UL4     ),
    MACROSTR(INDEX_ATT_3_5G_DL      ),
    MACROSTR(INDEX_ATT_3_5G_UL      ),
    MACROSTR(INDEX_ATT_3_5G_COM1    ),
    MACROSTR(INDEX_ATT_3_5G_COM2    ),
    MACROSTR(INDEX_ATT_3_5G_COM3    ),
    MACROSTR(INDEX_PLL_1_8G_DL_H    ),
    MACROSTR(INDEX_PLL_1_8G_DL_L    ),
    MACROSTR(INDEX_PLL_1_8G_UL_H    ),
    MACROSTR(INDEX_PLL_1_8G_UL_L    ),
    MACROSTR(INDEX_PLL_2_1G_DL_H    ),
    MACROSTR(INDEX_PLL_2_1G_DL_L    ),
    MACROSTR(INDEX_PLL_2_1G_UL_H    ),
    MACROSTR(INDEX_PLL_2_1G_UL_L    ),
    MACROSTR(INDEX_PLL_3_5G_DL_H    ),
    MACROSTR(INDEX_PLL_3_5G_DL_L    ),
    MACROSTR(INDEX_PLL_3_5G_UL_H    ),
    MACROSTR(INDEX_PLL_3_5G_UL_L    ),
    MACROSTR(INDEX_PLL_LD_6_BIT     ),
    MACROSTR(INDEX_DET_1_8G_DL_IN_H ),
    MACROSTR(INDEX_DET_1_8G_DL_IN_L ),
    MACROSTR(INDEX_DET_1_8G_DL_OUT_H),
    MACROSTR(INDEX_DET_1_8G_DL_OUT_L),
    MACROSTR(INDEX_DET_1_8G_UL_IN_H ),
    MACROSTR(INDEX_DET_1_8G_UL_IN_L ),
    MACROSTR(INDEX_DET_1_8G_UL_OUT_H),
    MACROSTR(INDEX_DET_1_8G_UL_OUT_L),
    MACROSTR(INDEX_DET_2_1G_DL_IN_H ),
    MACROSTR(INDEX_DET_2_1G_DL_IN_L ),
    MACROSTR(INDEX_DET_2_1G_DL_OUT_H),
    MACROSTR(INDEX_DET_2_1G_DL_OUT_L),
    MACROSTR(INDEX_DET_2_1G_UL_IN_H ),
    MACROSTR(INDEX_DET_2_1G_UL_IN_L ),
    MACROSTR(INDEX_DET_2_1G_UL_OUT_H),
    MACROSTR(INDEX_DET_2_1G_UL_OUT_L),
    MACROSTR(INDEX_DET_3_5G_DL_IN_H ),
    MACROSTR(INDEX_DET_3_5G_DL_IN_L ),
    MACROSTR(INDEX_DET_3_5G_DL_OUT_L),
    MACROSTR(INDEX_DET_3_5G_DL_OUT_H),
    MACROSTR(INDEX_DET_3_5G_UL_IN_H ),
    MACROSTR(INDEX_DET_3_5G_UL_IN_L ),
    MACROSTR(INDEX_DET_3_5G_UL_OUT_H),
    MACROSTR(INDEX_DET_3_5G_UL_OUT_L),
    MACROSTR(INDEX_RFU_TEMP_H       ),
    MACROSTR(INDEX_RFU_TEMP_L       ),
    MACROSTR(INDEX__28V_DET_H       ),
    MACROSTR(INDEX__28V_DET_L       ),
    MACROSTR(INDEX_ALARM_AC         ),
    MACROSTR(INDEX_ALARM_DC         ),
    MACROSTR(INDEX_PATH_EN_1_8G_DL  ),
    MACROSTR(INDEX_PATH_EN_1_8G_UL  ),
    MACROSTR(INDEX_PATH_EN_2_1G_DL  ),
    MACROSTR(INDEX_PATH_EN_2_1G_UL  ),
    MACROSTR(INDEX_PATH_EN_3_5G_L   ),
    MACROSTR(INDEX_PATH_EN_3_5G_H   ),
    MACROSTR(INDEX_PATH_EN_3_5G_DL  ),
    MACROSTR(INDEX_PATH_EN_3_5G_UL  ),
    MACROSTR(INDEX_PLL_ON_OFF_3_5G_H),
    MACROSTR(INDEX_PLL_ON_OFF_3_5G_L),
    MACROSTR(INDEX_T_SYNC_DL        ),
    MACROSTR(INDEX__T_SYNC_DL       ),
    MACROSTR(INDEX_T_SYNC_UL        ),
    MACROSTR(INDEX__T_SYNC_UL       ),   
};

static void kConstPrinter(Bluecell_Prot_Index k)
{
#ifdef DEBUG_PRINT
    printf("%s", Bluecell_Prot_IndexStr[k]);
#endif /* DEBUG_PRINT */
}
void Path_Init(void){
    Prev_data[INDEX_PATH_EN_1_8G_DL]   = HAL_GPIO_ReadPin(PATH_EN_1_8G_DL_GPIO_Port,PATH_EN_1_8G_DL_Pin);
    Prev_data[INDEX_PATH_EN_1_8G_UL]   = HAL_GPIO_ReadPin(PATH_EN_1_8G_UL_GPIO_Port,PATH_EN_1_8G_UL_Pin);
    Prev_data[INDEX_PATH_EN_2_1G_DL]   = HAL_GPIO_ReadPin(PATH_EN_2_1G_DL_GPIO_Port,PATH_EN_2_1G_DL_Pin);
    Prev_data[INDEX_PATH_EN_2_1G_UL]   = HAL_GPIO_ReadPin(PATH_EN_2_1G_UL_GPIO_Port,PATH_EN_2_1G_UL_Pin);
    Prev_data[INDEX_PATH_EN_3_5G_L]    = HAL_GPIO_ReadPin(PATH_EN_3_5G_L_GPIO_Port,PATH_EN_3_5G_L_Pin);
    Prev_data[INDEX_PATH_EN_3_5G_H]    = HAL_GPIO_ReadPin(PATH_EN_3_5G_H_GPIO_Port,PATH_EN_3_5G_H_Pin);
    Prev_data[INDEX_PATH_EN_3_5G_DL]   = HAL_GPIO_ReadPin(PATH_EN_3_5G_DL_GPIO_Port,PATH_EN_3_5G_DL_Pin);
    Prev_data[INDEX_PATH_EN_3_5G_UL]   = HAL_GPIO_ReadPin(PATH_EN_3_5G_UL_GPIO_Port,PATH_EN_3_5G_UL_Pin);
    Prev_data[INDEX_PLL_ON_OFF_3_5G_H] = HAL_GPIO_ReadPin(PLL_ON_OFF_3_5G_H_GPIO_Port,PLL_ON_OFF_3_5G_H_Pin);
    Prev_data[INDEX_PLL_ON_OFF_3_5G_L] = HAL_GPIO_ReadPin(PLL_ON_OFF_3_5G_L_GPIO_Port,PLL_ON_OFF_3_5G_L_Pin);
}
void Power_ON_OFF_Ctrl(uint8_t type,uint8_t cmd){
    printf("\r\ntype : %s cmd : %d\r\n",Bluecell_Prot_IndexStr[type - 4],cmd);
    switch(type){
        case INDEX_PATH_EN_1_8G_DL  : 
#if 0 // PYJ.2019.07.29_BEGIN -- 
            printf("\r\n LINE %d\r\n",__LINE__);
#endif // PYJ.2019.07.29_END -- 
            if(cmd)
                HAL_GPIO_WritePin(PATH_EN_1_8G_DL_GPIO_Port,PATH_EN_1_8G_DL_Pin, GPIO_PIN_SET);
            else
                HAL_GPIO_WritePin(PATH_EN_1_8G_DL_GPIO_Port,PATH_EN_1_8G_DL_Pin, GPIO_PIN_RESET);
            break; 
        case INDEX_PATH_EN_1_8G_UL  : 
#if 0 // PYJ.2019.07.29_BEGIN -- 
            printf("\r\n LINE %d\r\n",__LINE__);
#endif // PYJ.2019.07.29_END -- 
            if(cmd)
                HAL_GPIO_WritePin(PATH_EN_1_8G_UL_GPIO_Port,PATH_EN_1_8G_UL_Pin, GPIO_PIN_SET);
            else
                HAL_GPIO_WritePin(PATH_EN_1_8G_UL_GPIO_Port,PATH_EN_1_8G_UL_Pin, GPIO_PIN_RESET);
                
            break;
        case INDEX_PATH_EN_2_1G_DL  : 
#ifdef DEBUG_PRINT
            printf("\r\n LINE %d\r\n",__LINE__);
#endif /* DEBUG_PRINT */
            if(cmd)
                HAL_GPIO_WritePin(PATH_EN_2_1G_DL_GPIO_Port,PATH_EN_2_1G_DL_Pin, GPIO_PIN_SET);
            else
                HAL_GPIO_WritePin(PATH_EN_2_1G_DL_GPIO_Port,PATH_EN_2_1G_DL_Pin, GPIO_PIN_RESET);                
            break;
        case INDEX_PATH_EN_2_1G_UL  : 
#ifdef DEBUG_PRINT
            printf("\r\n LINE %d\r\n",__LINE__);
#endif /* DEBUG_PRINT */
            if(cmd)
                HAL_GPIO_WritePin(PATH_EN_2_1G_UL_GPIO_Port,PATH_EN_2_1G_UL_Pin, GPIO_PIN_SET);
            else
                HAL_GPIO_WritePin(PATH_EN_2_1G_UL_GPIO_Port,PATH_EN_2_1G_UL_Pin, GPIO_PIN_RESET);                
            break;
        case INDEX_PATH_EN_3_5G_L   : 
            if(cmd){
                HAL_GPIO_WritePin(PATH_EN_3_5G_L_GPIO_Port,PATH_EN_3_5G_L_Pin, GPIO_PIN_SET);
                printf("\r\n LINE %d\r\n",__LINE__);
            }
            else{
                HAL_GPIO_WritePin(PATH_EN_3_5G_L_GPIO_Port,PATH_EN_3_5G_L_Pin, GPIO_PIN_RESET);
                printf("\r\n LINE %d\r\n",__LINE__);
            }
            break;
        case INDEX_PATH_EN_3_5G_H   : 
            if(cmd){
                HAL_GPIO_WritePin(PATH_EN_3_5G_H_GPIO_Port,PATH_EN_3_5G_H_Pin, GPIO_PIN_SET);
                            printf("\r\n LINE %d\r\n",__LINE__);
            }
            else{
                HAL_GPIO_WritePin(PATH_EN_3_5G_H_GPIO_Port,PATH_EN_3_5G_H_Pin, GPIO_PIN_RESET);
                            printf("\r\n LINE %d\r\n",__LINE__);
            }
            break;
        case INDEX_PATH_EN_3_5G_DL  : 
#ifdef DEBUG_PRINT
            printf("\r\n LINE %d\r\n",__LINE__);
#endif /* DEBUG_PRINT */
            if(cmd)
                HAL_GPIO_WritePin(PATH_EN_3_5G_DL_GPIO_Port,PATH_EN_3_5G_DL_Pin, GPIO_PIN_SET);
            else
                HAL_GPIO_WritePin(PATH_EN_3_5G_DL_GPIO_Port,PATH_EN_3_5G_DL_Pin, GPIO_PIN_RESET);
            break;
        case INDEX_PATH_EN_3_5G_UL  : 
#ifdef DEBUG_PRINT
            printf("\r\n LINE %d\r\n",__LINE__);
#endif /* DEBUG_PRINT */
            if(cmd)
                HAL_GPIO_WritePin(PATH_EN_3_5G_UL_GPIO_Port,PATH_EN_3_5G_UL_Pin, GPIO_PIN_SET);
            else
                HAL_GPIO_WritePin(PATH_EN_3_5G_UL_GPIO_Port,PATH_EN_3_5G_UL_Pin, GPIO_PIN_RESET);
            break;
        case INDEX_PLL_ON_OFF_3_5G_H: 
            printf("\r\n LINE %d\r\n",__LINE__);
            if(cmd)
                HAL_GPIO_WritePin(PLL_ON_OFF_3_5G_H_GPIO_Port,PLL_ON_OFF_3_5G_H_Pin, GPIO_PIN_SET);
            else
                HAL_GPIO_WritePin(PLL_ON_OFF_3_5G_H_GPIO_Port,PLL_ON_OFF_3_5G_H_Pin, GPIO_PIN_RESET);
            break;
        case INDEX_PLL_ON_OFF_3_5G_L: 
            printf("\r\n LINE %d\r\n",__LINE__);
            if(cmd)
                HAL_GPIO_WritePin(PLL_ON_OFF_3_5G_L_GPIO_Port,PLL_ON_OFF_3_5G_L_Pin, GPIO_PIN_SET);  
            else
                HAL_GPIO_WritePin(PLL_ON_OFF_3_5G_L_GPIO_Port,PLL_ON_OFF_3_5G_L_Pin, GPIO_PIN_RESET);
            break;
        case INDEX_T_SYNC_DL:
        case INDEX__T_SYNC_UL:
        case INDEX_T_SYNC_UL:
        case INDEX__T_SYNC_DL:
            if(cmd){
                HAL_GPIO_WritePin(_T_SYNC_UL_GPIO_Port,_T_SYNC_UL_Pin, GPIO_PIN_RESET);
                HAL_GPIO_WritePin(T_SYNC_UL_GPIO_Port,T_SYNC_UL_Pin, GPIO_PIN_RESET);
                HAL_GPIO_WritePin(_T_SYNC_DL_GPIO_Port,_T_SYNC_DL_Pin, GPIO_PIN_SET);
                HAL_GPIO_WritePin(T_SYNC_DL_GPIO_Port,T_SYNC_DL_Pin, GPIO_PIN_SET);                
            }
            else{
                HAL_GPIO_WritePin(_T_SYNC_UL_GPIO_Port,_T_SYNC_UL_Pin, GPIO_PIN_SET);
                HAL_GPIO_WritePin(T_SYNC_UL_GPIO_Port,T_SYNC_UL_Pin, GPIO_PIN_SET);
                HAL_GPIO_WritePin(_T_SYNC_DL_GPIO_Port,_T_SYNC_DL_Pin, GPIO_PIN_RESET);
                HAL_GPIO_WritePin(T_SYNC_DL_GPIO_Port,T_SYNC_DL_Pin, GPIO_PIN_RESET);                
            }
#ifdef DEBUG_PRINT
            printf("TDD SYNC OPERATE ; %d\r\n",cmd);
#endif /* DEBUG_PRINT */
            break;
        default :
#ifdef DEBUG_PRINT
        printf("Function : %s LINE : %d   ERROR \r\n",__func__,__LINE__);
#endif /* DEBUG_PRINT */
    break;

    }

}

