/********************************************************************* * @fn OnBoard_KeyCallback * * @brief Callback service for keys * * @param keys - keys that were pressed * state - shifted * * @return void *********************************************************************/ void OnBoard_KeyCallback ( uint8 keys, uint8 state ) { uint8 shift; (void)state; shift = (keys & HAL_KEY_SW_6) ? true : false; if ( OnBoard_SendKeys( keys, shift ) != ZSuccess ) { // Process SW1 here if ( keys & HAL_KEY_SW_1 ) // Switch 1 { } // Process SW2 here if ( keys & HAL_KEY_SW_2 ) // Switch 2 { } // Process SW3 here if ( keys & HAL_KEY_SW_3 ) // Switch 3 { } // Process SW4 here if ( keys & HAL_KEY_SW_4 ) // Switch 4 { } // Process SW5 here if ( keys & HAL_KEY_SW_5 ) // Switch 5 { } // Process SW6 here if ( keys & HAL_KEY_SW_6 ) // Switch 6 { } } }
/********************************************************************* * @fn OnBoard_KeyCallback * * @brief Callback service for keys * * @param keys - keys that were pressed * state - shifted * * @return void *********************************************************************/ void OnBoard_KeyCallback ( uint8 keys, uint8 state ) { uint8 shift; (void)state; // shift key (S1) is used to generate key interrupt // applications should not use S1 when key interrupt is enabled shift = (OnboardKeyIntEnable == HAL_KEY_INTERRUPT_ENABLE) ? false : ((keys & HAL_KEY_SW_6) ? true : false); if ( OnBoard_SendKeys( keys, shift ) != SUCCESS ) { // Process SW1 here if ( keys & HAL_KEY_SW_1 ) // Switch 1 { } // Process SW2 here if ( keys & HAL_KEY_SW_2 ) // Switch 2 { } // Process SW3 here if ( keys & HAL_KEY_SW_3 ) // Switch 3 { } // Process SW4 here if ( keys & HAL_KEY_SW_4 ) // Switch 4 { } // Process SW5 here if ( keys & HAL_KEY_SW_5 ) // Switch 5 { } // Process SW6 here if ( keys & HAL_KEY_SW_6 ) // Switch 6 { } } /* If any key is currently pressed down and interrupt is still enabled, disable interrupt and switch to polling */ if( keys != 0 ) { if( OnboardKeyIntEnable == HAL_KEY_INTERRUPT_ENABLE ) { OnboardKeyIntEnable = HAL_KEY_INTERRUPT_DISABLE; HalKeyConfig( OnboardKeyIntEnable, OnBoard_KeyCallback); } } /* If no key is currently pressed down and interrupt is disabled, enable interrupt and turn off polling */ else { if( OnboardKeyIntEnable == HAL_KEY_INTERRUPT_DISABLE ) { OnboardKeyIntEnable = HAL_KEY_INTERRUPT_ENABLE; HalKeyConfig( OnboardKeyIntEnable, OnBoard_KeyCallback); } } }
/*************************************************************************************************** * @fn MT_UtilKeyEvent * * @brief Process Key Event * * @param pBuf - pointer to the data * * @return void ***************************************************************************************************/ void MT_UtilKeyEvent(uint8 *pBuf) { uint8 x = 0; uint8 retValue = ZFailure; uint8 cmdId; /* parse header */ cmdId = pBuf[MT_RPC_POS_CMD1]; pBuf += MT_RPC_FRAME_HDR_SZ; /* Translate between SPI values to device values */ if ( *pBuf & 0x01 ) x |= HAL_KEY_SW_1; if ( *pBuf & 0x02 ) x |= HAL_KEY_SW_2; if ( *pBuf & 0x04 ) x |= HAL_KEY_SW_3; if ( *pBuf & 0x08 ) x |= HAL_KEY_SW_4; #if defined ( HAL_KEY_SW_5 ) if ( *pBuf & 0x10 ) x |= HAL_KEY_SW_5; #endif #if defined ( HAL_KEY_SW_6 ) if ( *pBuf & 0x20 ) x |= HAL_KEY_SW_6; #endif #if defined ( HAL_KEY_SW_7 ) if ( *pBuf & 0x40 ) x |= HAL_KEY_SW_7; #endif #if defined ( HAL_KEY_SW_8 ) if ( *pBuf & 0x80 ) x |= HAL_KEY_SW_8; #endif pBuf++; retValue = OnBoard_SendKeys(x, *pBuf); /* Build and send back the response */ MT_BuildAndSendZToolResponse(((uint8)MT_RPC_CMD_SRSP | (uint8)MT_RPC_SYS_UTIL), cmdId, 1, &retValue ); }
/********************************************************************* * @fn OnBoard_KeyCallback * * @brief Callback service for keys * * @param keys - keys that were pressed * state - shifted * * @return void *********************************************************************/ void OnBoard_KeyCallback ( uint8 keys, uint8 state ) { uint8 shift; (void)state; // shift key (S1) is used to generate key interrupt // applications should not use S1 when key interrupt is enabled shift = (OnboardKeyIntEnable == BSP_KEY_MODE_ISR) ? false : ((keys & HAL_KEY_SW_6) ? true : false); //TODO is this necessary? if ( OnBoard_SendKeys( keys, shift ) != SUCCESS ) { // Process SW1 here if ( keys & HAL_KEY_SW_1 ) // Switch 1 { } // Process SW2 here if ( keys & HAL_KEY_SW_2 ) // Switch 2 { } // Process SW3 here if ( keys & HAL_KEY_SW_3 ) // Switch 3 { } // Process SW4 here if ( keys & HAL_KEY_SW_4 ) // Switch 4 { } // Process SW5 here if ( keys & HAL_KEY_SW_5 ) // Switch 5 { } // Process SW6 here if ( keys & HAL_KEY_SW_6 ) // Switch 6 { } } }
/********************************************************************* * @fn OnBoard_KeyCallback * * @brief Callback service for keys * * @param keys - keys that were pressed * state - shifted * * @return void *********************************************************************/ void OnBoard_KeyCallback ( uint8 keys, uint8 state ) { uint8 shift; (void)state; shift = state; //shift = (keys & /HAL_KEY_SW_6) ? true : false; if ( OnBoard_SendKeys( keys, shift ) != ZSuccess ) { // Process SW1 here if ( keys & HAL_KEY_INC ) // Switch 1 { } // Process SW2 here if ( keys & HAL_KEY_DEC ) // Switch 2 { } // Process SW3 here if ( keys & HAL_KEY_PWR ) // Switch 3 { } // Process SW4 here if ( keys & HAL_KEY_FLR ) // Switch 4 { } // Process SW5 here if ( keys & HAL_KEY_AIR ) // Switch 5 { } // Process SW6 here } }