| #if 1 | 
 | #include "mbtk_type.h" | 
 | #include "mbtk_log.h" | 
 | #include "lynq_qser_thermal.h" | 
 | #include "mbtk_info_api.h" | 
 |  | 
 | /****************************DEFINE***************************************/ | 
 | #define QSER_RESULT_FAIL    -1 | 
 | #define QSER_RESULT_SUCCESS 0 | 
 | /****************************DEFINE***************************************/ | 
 |  | 
 | /****************************VARIABLE***************************************/ | 
 | extern mbtk_info_handle_t* qser_info_handle; | 
 | extern int qser_info_handle_num; | 
 | /****************************VARIABLE***************************************/ | 
 |  | 
 |  | 
 | /******************************FUNC*****************************************/ | 
 | static int qser_thermal_client_init(void) | 
 | { | 
 |     if(qser_info_handle == NULL) | 
 |     { | 
 |         qser_info_handle = mbtk_info_handle_get(); | 
 |         if(qser_info_handle) | 
 |         { | 
 |             qser_info_handle_num++; | 
 |         }  | 
 |         else | 
 |         { | 
 |             LOGE("[qser_thermal] mbtk_info_handle_get() fail."); | 
 |             return QSER_RESULT_FAIL; | 
 |         } | 
 |     } | 
 |     else | 
 |     { | 
 |         qser_info_handle_num++; | 
 |     } | 
 |  | 
 |     LOGE("[qser_thermal] mbtk_info_handle_get() success."); | 
 |     return QSER_RESULT_SUCCESS; | 
 | } | 
 |  | 
 | static int qser_thermal_client_deinit(void) | 
 | { | 
 |     if(qser_info_handle) | 
 |     { | 
 |         LOGE("[qser_thermal] qser_info_handle_num = %d", qser_info_handle_num); | 
 |         if(qser_info_handle_num == 1) | 
 |         { // 最后一个引用,可释放。 | 
 |             int ret = mbtk_info_handle_free(&qser_info_handle); | 
 |             if(ret) | 
 |             { | 
 |                 LOGE("[qser_thermal] mbtk_info_handle_free() fail."); | 
 |                 return QSER_RESULT_FAIL; | 
 |             } | 
 |             else | 
 |             { | 
 |                 qser_info_handle_num = 0; | 
 |                 qser_info_handle = NULL; | 
 |             } | 
 |         }  | 
 |         else | 
 |         { | 
 |             qser_info_handle_num--; | 
 |         } | 
 |     } | 
 |     else | 
 |     { | 
 |         LOGE("[qser_thermal] handle not inited."); | 
 |         return QSER_RESULT_FAIL; | 
 |     } | 
 |  | 
 |     return QSER_RESULT_SUCCESS; | 
 | } | 
 |  | 
 | /******************************FUNC*****************************************/ | 
 |  | 
 | /****************************API***************************************/ | 
 | int get_thermal_zone(int *numbers, int size) | 
 | { | 
 |     if(numbers == NULL || size < 6) | 
 |     { | 
 |         LOGE("[qser_thermal]: numbers is NULL!"); | 
 |         return QSER_RESULT_FAIL; | 
 |     } | 
 |      | 
 |     int ret = 0; | 
 |     int thermal = -1; | 
 |     int thermal_num = 0; | 
 |     mbtk_thermal_info_t temp; | 
 |     memset(&temp, 0, sizeof(mbtk_thermal_info_t)); | 
 |  | 
 |     ret = qser_thermal_client_init(); | 
 |     if(ret != QSER_RESULT_SUCCESS) | 
 |     { | 
 |         LOGE("[qser_thermal]qser_led_client_init fail."); | 
 |         return QSER_RESULT_FAIL; | 
 |     } | 
 |      | 
 |     ret = mbtk_temp_get(qser_info_handle, 0, &temp); | 
 |     thermal = temp.ther; | 
 |     if(ret != QSER_RESULT_SUCCESS) | 
 |     { | 
 |         LOGE("[qser_thermal]mbtk_temp_get fail."); | 
 |         qser_thermal_client_deinit(); | 
 |         return QSER_RESULT_FAIL; | 
 |     } | 
 |  | 
 |     qser_thermal_client_deinit(); | 
 |     numbers[thermal_num++] = thermal; | 
 |     for(; thermal_num < size; thermal_num++) | 
 |     { | 
 |         numbers[thermal_num] = 0; | 
 |     } | 
 |  | 
 |     return 6; | 
 | } | 
 | /****************************API***************************************/ | 
 |  | 
 | #endif |