/********************************************************************* * @fn Batt_GetParameter * * @brief Get a Battery Service parameter. * * @param param - Profile parameter ID * @param value - pointer to data to get. This is dependent on * the parameter ID and WILL be cast to the appropriate * data type (example: data type of uint16 will be cast to * uint16 pointer). * * @return bStatus_t */ bStatus_t Batt_GetParameter( uint8 param, void *value ) { bStatus_t ret = SUCCESS; switch ( param ) { case BATT_PARAM_LEVEL: *((uint8*)value) = battLevel; break; case BATT_PARAM_CRITICAL_LEVEL: *((uint8*)value) = battCriticalLevel; break; case BATT_PARAM_SERVICE_HANDLE: *((uint16*)value) = GATT_SERVICE_HANDLE( battAttrTbl ); break; case BATT_PARAM_BATT_LEVEL_IN_REPORT: { hidRptMap_t *pRpt = (hidRptMap_t *)value; pRpt->id = hidReportRefBattLevel[0]; pRpt->type = hidReportRefBattLevel[1]; pRpt->handle = battAttrTbl[BATT_LEVEL_VALUE_IDX].handle; pRpt->cccdHandle = battAttrTbl[BATT_LEVEL_VALUE_CCCD_IDX].handle; pRpt->mode = HID_PROTOCOL_MODE_REPORT; } break; default: ret = INVALIDPARAMETER; break; } return ( ret ); }
/** * @fn Batt_GetParameter * * @brief Get a Battery Service parameter. * * @param param - Profile parameter ID * @param value - pointer to data to get. This is dependent on * the parameter ID and WILL be cast to the appropriate * data type (example: data type of uint16 will be cast to * uint16 pointer). * * @return bStatus_t */ bStatus_t Batt_GetParameter(uint8 param, void *value) { bStatus_t ret = SUCCESS; switch (param) { case BATT_PARAM_LEVEL: *((uint8*) value) = battLevel; break; case BATT_PARAM_CRITICAL_LEVEL: *((uint8*) value) = battCriticalLevel; break; case BATT_PARAM_SERVICE_HANDLE: *((uint16*) value) = GATT_SERVICE_HANDLE(battAttrTbl); break; default: ret = INVALIDPARAMETER; break; } return (ret); }