1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright (c) 2017 Rockchip Electronics Co. Ltd. 3*4882a593Smuzhiyun * Author: Bin Yang <yangbin@rock-chips.com> 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Licensed under the Apache License, Version 2.0 (the "License"); 6*4882a593Smuzhiyun * you may not use this file except in compliance with the License. 7*4882a593Smuzhiyun * You may obtain a copy of the License at 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * http://www.apache.org/licenses/LICENSE-2.0 10*4882a593Smuzhiyun * 11*4882a593Smuzhiyun * Unless required by applicable law or agreed to in writing, software 12*4882a593Smuzhiyun * distributed under the License is distributed on an "AS IS" BASIS, 13*4882a593Smuzhiyun * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*4882a593Smuzhiyun * See the License for the specific language governing permissions and 15*4882a593Smuzhiyun * limitations under the License. 16*4882a593Smuzhiyun */ 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #ifndef __COMMON_H__ 19*4882a593Smuzhiyun #define __COMMON_H__ 20*4882a593Smuzhiyun #include <stdio.h> 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun #ifdef PCBA_PX3SE 23*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "PX3SE" 24*4882a593Smuzhiyun #endif 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun #ifdef PCBA_ECHO 27*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "ECHO" 28*4882a593Smuzhiyun #endif 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #ifdef PCBA_CVR 31*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "CVR" 32*4882a593Smuzhiyun #endif 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun #ifdef PCBA_3308 35*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "3308" 36*4882a593Smuzhiyun #endif 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun #ifdef PCBA_3229GVA 39*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "GVA" 40*4882a593Smuzhiyun #endif 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun #ifdef PCBA_1808 43*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "1808" 44*4882a593Smuzhiyun #endif 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun #ifdef PCBA_3326 47*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "3326" 48*4882a593Smuzhiyun #endif 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun #ifdef PCBA_PX30 51*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "PX30" 52*4882a593Smuzhiyun #endif 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun #ifdef PCBA_3288 55*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "3288" 56*4882a593Smuzhiyun #endif 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun #ifdef PCBA_312X 59*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "312X" 60*4882a593Smuzhiyun #endif 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun #ifdef PCBA_3328 63*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "3328" 64*4882a593Smuzhiyun #endif 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun #ifdef PCBA_3399 67*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "3399" 68*4882a593Smuzhiyun #endif 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun #ifdef PCBA_3399PRO 71*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "3399PRO" 72*4882a593Smuzhiyun #endif 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun #ifdef PCBA_1126_1109 75*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "1126_1109" 76*4882a593Smuzhiyun #endif 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun #ifdef PCBA_356X 79*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "356X" 80*4882a593Smuzhiyun #endif 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun #ifdef PCBA_3588 83*4882a593Smuzhiyun #define PCBA_TEST_PLATFORM "3588" 84*4882a593Smuzhiyun #endif 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun #define PCBA_VERSION "1.2.0" 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun typedef enum { 90*4882a593Smuzhiyun /* format parse*/ 91*4882a593Smuzhiyun CMD_CHK_OK = 0, 92*4882a593Smuzhiyun CMD_TYPE_ERR = -1, 93*4882a593Smuzhiyun TEST_ITEM_ERR = -2, 94*4882a593Smuzhiyun CMD_ERR = -3, 95*4882a593Smuzhiyun MSG_ERR = -4, 96*4882a593Smuzhiyun SEND_FORMAT_ERR = -5, 97*4882a593Smuzhiyun TCP_SEND_ERR = -6, 98*4882a593Smuzhiyun QUERY_RESULT_ERR = -7, 99*4882a593Smuzhiyun RECV_FORMAT_ERR = -8, 100*4882a593Smuzhiyun CMD_OVERLONG = -9, 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun /* process parse */ 103*4882a593Smuzhiyun TEST_MODE_ERR = -10, 104*4882a593Smuzhiyun ENTER_TEST_ERR = -11, 105*4882a593Smuzhiyun EXIT_TEST_ERR = -12, 106*4882a593Smuzhiyun TEST_ITEM_BUSY = -13, 107*4882a593Smuzhiyun STOP_TEST_ERR = -14, 108*4882a593Smuzhiyun SAVE_RESULE_ERR = -15, 109*4882a593Smuzhiyun TEST_FORK_ERR = -16, 110*4882a593Smuzhiyun TEST_RESULT_EXIST = -17, 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun /* write storage */ 113*4882a593Smuzhiyun WRITE_VENDOR_ERR = -20, 114*4882a593Smuzhiyun READ_VENDOR_ERR = -21, 115*4882a593Smuzhiyun /* ptz test */ 116*4882a593Smuzhiyun PTZ_TEST_ERR = -30, 117*4882a593Smuzhiyun /* key test */ 118*4882a593Smuzhiyun KEY_OPEN_FAIL = -40, 119*4882a593Smuzhiyun KEY_EVENT_TIMEOUT = -41, 120*4882a593Smuzhiyun KEY_PROC_ERR = -42, 121*4882a593Smuzhiyun KEY_QUERY_FAIL = -43, 122*4882a593Smuzhiyun /* ROTARY test */ 123*4882a593Smuzhiyun ROTARY_OPEN_FAIL = -50, 124*4882a593Smuzhiyun ROTARY_EVENT_TIMEOUT = -51, 125*4882a593Smuzhiyun ROTARY_QUERY_FAIL = -52, 126*4882a593Smuzhiyun ROTARY_PROC_ERR = -53, 127*4882a593Smuzhiyun // /* light test */ 128*4882a593Smuzhiyun // LIGHT_PATH_ERR = -50, 129*4882a593Smuzhiyun // LIGHT_DEV_ERR = -51, 130*4882a593Smuzhiyun // /* ircut test */ 131*4882a593Smuzhiyun // IRCUT_STATE_ERR = -60, 132*4882a593Smuzhiyun // IRCUT_OPEN_ERR = -61, 133*4882a593Smuzhiyun // IRCUT_SET_ERR = -62, 134*4882a593Smuzhiyun /* sdcard test */ 135*4882a593Smuzhiyun SDCARD_SIZE_ERR = -70, 136*4882a593Smuzhiyun SDCARD_WRITE_ERR = -71, 137*4882a593Smuzhiyun SDCARD_READ_ERR = -72, 138*4882a593Smuzhiyun SDCARD_UNKNOWN_ERR = -73, 139*4882a593Smuzhiyun SDCARD_TIMEOUT_ERR = -74, 140*4882a593Smuzhiyun SDCARD_MOUNT_ERR = -75, 141*4882a593Smuzhiyun /* audio test */ 142*4882a593Smuzhiyun AUDIO_PLAY_ERR = -80, 143*4882a593Smuzhiyun AUDIO_RECORD_ERR = -81, 144*4882a593Smuzhiyun AUDIO_TYPE_ERR = -82, 145*4882a593Smuzhiyun /* wifi test */ 146*4882a593Smuzhiyun WIFI_RES_FILE_ERR = -90, 147*4882a593Smuzhiyun WIFI_RUN_ERR = -91, 148*4882a593Smuzhiyun WIFI_PROC_ERR = -92, 149*4882a593Smuzhiyun WIFI_UNKNOWN_ERR = -93, 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun /* ddr test */ 152*4882a593Smuzhiyun DDR_PROC_ERR = -100, 153*4882a593Smuzhiyun /* emmc test*/ 154*4882a593Smuzhiyun EMMC_PROC_ERR = -110, 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun /*usb host test*/ 157*4882a593Smuzhiyun USBHOST_UNKNOWN_ERR = -120, 158*4882a593Smuzhiyun USBHOST_TIMEOUT_ERR = -121, 159*4882a593Smuzhiyun USBHOST_MOUNT_ERR = -122, 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun /*infrard ray test*/ 162*4882a593Smuzhiyun IR_OPEN_FAIL = -130, 163*4882a593Smuzhiyun IR_EVENT_TIMEOUT = -131, 164*4882a593Smuzhiyun IR_QUERY_FAIL = -132, 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun /* camera test */ 167*4882a593Smuzhiyun CAMERA_PROC_ERR = -200, 168*4882a593Smuzhiyun CAMERA_DATA_ERR = -201, 169*4882a593Smuzhiyun } RET_STA; 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun typedef enum _SDCARD_EVENT_ID { 172*4882a593Smuzhiyun SDCARD_NOT_EVENT = 0, 173*4882a593Smuzhiyun SDCARD_UNMOUNT_EVENT = 1, 174*4882a593Smuzhiyun SDCARD_MOUNT_EVENT = 2, 175*4882a593Smuzhiyun SDCARD_MOUNT_NOTFIT = 3, 176*4882a593Smuzhiyun SDCARD_MOUNT_FAIL = 4, 177*4882a593Smuzhiyun }SDCARD_EVENT_ID; 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun typedef enum _HDMI_EVENT_ID { 180*4882a593Smuzhiyun HDMI_NOT_EVENT = 0, 181*4882a593Smuzhiyun HDMI_IN_EVENT = 1, 182*4882a593Smuzhiyun HDMI_OUT_EVENT = 2, 183*4882a593Smuzhiyun }HDMI_EVENT_ID; 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun #define COMMAND_NAMESIZE 20 186*4882a593Smuzhiyun #define COMMAND_VALUESIZE 100 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun #define SDCARD_PATH "/mnt/sdcard" 189*4882a593Smuzhiyun #define TEST_RESULT_SAVE_PATH "/tmp" 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun //#define TEST_RESULT_SAVE_PATH "/data/cfg/rk_pcba_test" 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun //#define PCBA_TEST_PATH "/tmp" 195*4882a593Smuzhiyun //#define PCBA_TEST_PATH "/data/cfg/rk_pcba_test" 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun #define PCBA_TEST_PATH "/data/" 198*4882a593Smuzhiyun #define MANUAL_TEST_TIMEOUT 60000000 199*4882a593Smuzhiyun #define RESULT_TESTING "TESTING" 200*4882a593Smuzhiyun #define RESULT_PASS "PASS" 201*4882a593Smuzhiyun #define RESULT_FAIL "FAIL" 202*4882a593Smuzhiyun #define RESULT_VERIFY "VERIFY" 203*4882a593Smuzhiyun #define RESULT_KEY_PRESS "PRESS" 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun #define TESTITEM_SEND_PARSE "%*[^<]<%[^>]>,<%[^>]>,<%d>" 206*4882a593Smuzhiyun #define TESTITEM_SEND_PARSE_NOMSG "%*[^<]<>,<%[^>]>,<%d>" 207*4882a593Smuzhiyun #define TESTITEM_SEND_HEAD "[tcp_server]" 208*4882a593Smuzhiyun #define TESTITEM_SEND_FORMAT "%s<%s>,<%s>,<%d>\n" 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun #define send_msg_to_server(msg, result, err_code) \ 211*4882a593Smuzhiyun printf(TESTITEM_SEND_FORMAT, TESTITEM_SEND_HEAD, msg, result, err_code) 212*4882a593Smuzhiyun #define send_msg_to_buf(buf, msg, result, err_code) \ 213*4882a593Smuzhiyun snprintf(buf, COMMAND_VALUESIZE, TESTITEM_SEND_FORMAT, TESTITEM_SEND_HEAD, msg, result, err_code) 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun #define LOG_DEBUG_LEVEL (1) 217*4882a593Smuzhiyun #define LOG_ERROR_FLAG (4) 218*4882a593Smuzhiyun #define LOG_WARING_FLAG (3) 219*4882a593Smuzhiyun #define LOG_INFO_FLAG (2) 220*4882a593Smuzhiyun #define LOG_DEBUG_FLAG (1) 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun #define LOG_PRINTF(level, format, ...) \ 223*4882a593Smuzhiyun do { \ 224*4882a593Smuzhiyun if (level > LOG_DEBUG_LEVEL) { \ 225*4882a593Smuzhiyun printf("[%s]: "format, LOG_TAG, ##__VA_ARGS__); \ 226*4882a593Smuzhiyun } \ 227*4882a593Smuzhiyun } while(0) 228*4882a593Smuzhiyun #define log_info(format, ...) LOG_PRINTF(LOG_INFO_FLAG, format, ##__VA_ARGS__) 229*4882a593Smuzhiyun #define log_dbg(format, ...) LOG_PRINTF(LOG_DEBUG_FLAG, format, ##__VA_ARGS__) 230*4882a593Smuzhiyun #define log_warn(format, ...) LOG_PRINTF(LOG_WARING_FLAG, format, ##__VA_ARGS__) 231*4882a593Smuzhiyun #define log_err(format, ...) LOG_PRINTF(LOG_ERROR_FLAG, format, ##__VA_ARGS__) 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun #endif 234