SDCard version

Fork of gr-peach-opencv-project-sd-card by the do

Committer:
thedo
Date:
Fri Jul 21 01:26:54 2017 +0000
Revision:
167:2ee3e82cb6f5
Parent:
166:240bc5a0f42a
gr-peach-opencv-project-sd-card

Who changed what in which revision?

UserRevisionLine numberNew contents of line
thedo 166:240bc5a0f42a 1 #ifndef DEFINE_H
thedo 166:240bc5a0f42a 2 #define DEFINE_H
thedo 166:240bc5a0f42a 3
thedo 166:240bc5a0f42a 4 #define VIDEO_CVBS (0) /* Analog Video Signal */
thedo 166:240bc5a0f42a 5 #define VIDEO_CMOS_CAMERA (1) /* Digital Video Signal */
thedo 166:240bc5a0f42a 6 #define VIDEO_YCBCR422 (0)
thedo 166:240bc5a0f42a 7 #define VIDEO_RGB888 (1)
thedo 166:240bc5a0f42a 8 #define VIDEO_RGB565 (2)
thedo 166:240bc5a0f42a 9
thedo 166:240bc5a0f42a 10 /**** User Selection *********/
thedo 166:240bc5a0f42a 11 /** Camera setting **/
thedo 166:240bc5a0f42a 12 #define VIDEO_INPUT_METHOD (VIDEO_CMOS_CAMERA) /* Select VIDEO_CVBS or VIDEO_CMOS_CAMERA */
thedo 166:240bc5a0f42a 13 #define VIDEO_INPUT_FORMAT (VIDEO_RGB565 ) /* Select VIDEO_YCBCR422 or VIDEO_RGB888 or VIDEO_RGB565 */
thedo 166:240bc5a0f42a 14 #define USE_VIDEO_CH (0) /* Select 0 or 1 If selecting VIDEO_CMOS_CAMERA, should be 0.) */
thedo 166:240bc5a0f42a 15 #define VIDEO_PAL (0) /* Select 0(NTSC) or 1(PAL) If selecting VIDEO_CVBS, this parameter is not referenced.) */
thedo 166:240bc5a0f42a 16 /** LCD setting **/
thedo 166:240bc5a0f42a 17 #define LCD_TYPE (0) /* Select 0(4.3inch) or 1(7.1inch) */
thedo 166:240bc5a0f42a 18 /*****************************/
thedo 166:240bc5a0f42a 19
thedo 166:240bc5a0f42a 20 /** LCD shield config **/
thedo 166:240bc5a0f42a 21 #if (LCD_TYPE == 0)
thedo 166:240bc5a0f42a 22 #include "LCD_shield_config_4_3inch.h"
thedo 166:240bc5a0f42a 23 #else
thedo 166:240bc5a0f42a 24 #include "LCD_shield_config_7_1inch.h"
thedo 166:240bc5a0f42a 25 #endif
thedo 166:240bc5a0f42a 26
thedo 166:240bc5a0f42a 27 /** Video and Grapics (GRAPHICS_LAYER_0) parameter **/
thedo 166:240bc5a0f42a 28 /* video input */
thedo 166:240bc5a0f42a 29 #if USE_VIDEO_CH == (0)
thedo 166:240bc5a0f42a 30 #define VIDEO_INPUT_CH (DisplayBase::VIDEO_INPUT_CHANNEL_0)
thedo 166:240bc5a0f42a 31 #define VIDEO_INT_TYPE (DisplayBase::INT_TYPE_S0_VFIELD)
thedo 166:240bc5a0f42a 32 #else
thedo 166:240bc5a0f42a 33 #define VIDEO_INPUT_CH (DisplayBase::VIDEO_INPUT_CHANNEL_1)
thedo 166:240bc5a0f42a 34 #define VIDEO_INT_TYPE (DisplayBase::INT_TYPE_S1_VFIELD)
thedo 166:240bc5a0f42a 35 #endif
thedo 166:240bc5a0f42a 36
thedo 166:240bc5a0f42a 37 /* NTSC or PAL */
thedo 166:240bc5a0f42a 38 #if VIDEO_PAL == 0
thedo 166:240bc5a0f42a 39 #define COL_SYS (DisplayBase::COL_SYS_NTSC_358)
thedo 166:240bc5a0f42a 40 #else
thedo 166:240bc5a0f42a 41 #define COL_SYS (DisplayBase::COL_SYS_PAL_443)
thedo 166:240bc5a0f42a 42 #endif
thedo 166:240bc5a0f42a 43
thedo 166:240bc5a0f42a 44 /* Video input and LCD layer 0 output */
thedo 166:240bc5a0f42a 45 #if VIDEO_INPUT_FORMAT == VIDEO_YCBCR422
thedo 166:240bc5a0f42a 46 #define VIDEO_FORMAT (DisplayBase::VIDEO_FORMAT_YCBCR422)
thedo 166:240bc5a0f42a 47 #define GRAPHICS_FORMAT (DisplayBase::GRAPHICS_FORMAT_YCBCR422)
thedo 166:240bc5a0f42a 48 #define WR_RD_WRSWA (DisplayBase::WR_RD_WRSWA_NON)
thedo 166:240bc5a0f42a 49 #elif VIDEO_INPUT_FORMAT == VIDEO_RGB565
thedo 166:240bc5a0f42a 50 #define VIDEO_FORMAT (DisplayBase::VIDEO_FORMAT_RGB565)
thedo 166:240bc5a0f42a 51 #define GRAPHICS_FORMAT (DisplayBase::GRAPHICS_FORMAT_RGB565)
thedo 166:240bc5a0f42a 52 #define WR_RD_WRSWA (DisplayBase::WR_RD_WRSWA_32_16BIT)
thedo 166:240bc5a0f42a 53 #else
thedo 166:240bc5a0f42a 54 #define VIDEO_FORMAT (DisplayBase::VIDEO_FORMAT_RGB888)
thedo 166:240bc5a0f42a 55 #define GRAPHICS_FORMAT (DisplayBase::GRAPHICS_FORMAT_RGB888)
thedo 166:240bc5a0f42a 56 #define WR_RD_WRSWA (DisplayBase::WR_RD_WRSWA_32BIT)
thedo 166:240bc5a0f42a 57 #endif
thedo 166:240bc5a0f42a 58
thedo 166:240bc5a0f42a 59 /* The size of the video input is adjusted to the LCD size. */
thedo 166:240bc5a0f42a 60 #define VIDEO_PIXEL_HW LCD_PIXEL_WIDTH
thedo 166:240bc5a0f42a 61 #define VIDEO_PIXEL_VW LCD_PIXEL_HEIGHT
thedo 166:240bc5a0f42a 62
thedo 166:240bc5a0f42a 63 /*! Frame buffer stride: Frame buffer stride should be set to a multiple of 32 or 128
thedo 166:240bc5a0f42a 64 in accordance with the frame buffer burst transfer mode. */
thedo 166:240bc5a0f42a 65 /* FRAME BUFFER Parameter GRAPHICS_LAYER_0 */
thedo 166:240bc5a0f42a 66 #define FRAME_BUFFER_NUM (3u)
thedo 166:240bc5a0f42a 67 #if ( VIDEO_INPUT_FORMAT == VIDEO_YCBCR422 || VIDEO_INPUT_FORMAT == VIDEO_RGB565 )
thedo 166:240bc5a0f42a 68 #define FRAME_BUFFER_BYTE_PER_PIXEL (2u)
thedo 166:240bc5a0f42a 69 #else
thedo 166:240bc5a0f42a 70 #define FRAME_BUFFER_BYTE_PER_PIXEL (4u)
thedo 166:240bc5a0f42a 71 #endif
thedo 166:240bc5a0f42a 72 #define FRAME_BUFFER_STRIDE (((LCD_PIXEL_WIDTH * FRAME_BUFFER_BYTE_PER_PIXEL) + 31u) & ~31u)
thedo 166:240bc5a0f42a 73
thedo 166:240bc5a0f42a 74 /* DRAW BUFFER Parameter GRAPHICS_LAYER_1 */
thedo 166:240bc5a0f42a 75 #define DRAW_BUFFER_BYTE_PER_PIXEL (2u)
thedo 166:240bc5a0f42a 76 #define DRAW_BUFFER_STRIDE (((LCD_PIXEL_WIDTH * DRAW_BUFFER_BYTE_PER_PIXEL) + 31u) & ~31u)
thedo 166:240bc5a0f42a 77
thedo 166:240bc5a0f42a 78 /* Draw panel parameter */
thedo 166:240bc5a0f42a 79 #define DRAW_POINT (1u)
thedo 166:240bc5a0f42a 80
thedo 166:240bc5a0f42a 81 /* IMAGE DOWN SAMPLE*/
thedo 166:240bc5a0f42a 82 #define IMG_DOWN_SAMPLE (2u)
thedo 166:240bc5a0f42a 83
thedo 166:240bc5a0f42a 84 /* Touch number point */
thedo 166:240bc5a0f42a 85 #define TOUCH_NUM (1u)
thedo 166:240bc5a0f42a 86
thedo 166:240bc5a0f42a 87 #define SDCARD_NAME "SD"
thedo 166:240bc5a0f42a 88 #define SDCARD_PATH "/SD"
thedo 166:240bc5a0f42a 89
thedo 166:240bc5a0f42a 90 #define MODE_BTN_X 16
thedo 166:240bc5a0f42a 91 #define MODE_BTN_Y 235
thedo 166:240bc5a0f42a 92
thedo 166:240bc5a0f42a 93 #define REGIS_FACE_BTN_X 5
thedo 166:240bc5a0f42a 94 #define REGIS_FACE_BTN_Y 130
thedo 166:240bc5a0f42a 95
thedo 166:240bc5a0f42a 96 #define FACE_REG_ID_MENU_X 100
thedo 166:240bc5a0f42a 97 #define FACE_REG_ID_MENU_Y 50
thedo 166:240bc5a0f42a 98
thedo 166:240bc5a0f42a 99 #define FACE_REG_ACT_MENU_X 410
thedo 166:240bc5a0f42a 100 #define FACE_REG_ACT_MENU_Y 80
thedo 166:240bc5a0f42a 101
thedo 166:240bc5a0f42a 102 #define GESTURE_SAMPLING_BTN_X 410
thedo 166:240bc5a0f42a 103 #define GESTURE_SAMPLING_BTN_Y 110
thedo 166:240bc5a0f42a 104
thedo 166:240bc5a0f42a 105 #define M_PI (3.14159)
thedo 166:240bc5a0f42a 106
thedo 166:240bc5a0f42a 107
thedo 166:240bc5a0f42a 108
thedo 166:240bc5a0f42a 109 enum APP_MODE{
thedo 166:240bc5a0f42a 110 FACE_DETECTION = 0,
thedo 166:240bc5a0f42a 111 MOTION_DETECTION,
thedo 166:240bc5a0f42a 112 FACE_RECOGNITION,
thedo 166:240bc5a0f42a 113 GUESTURE_RECOGNITION,
thedo 166:240bc5a0f42a 114 MODE_UNKNOWN
thedo 166:240bc5a0f42a 115 };
thedo 166:240bc5a0f42a 116
thedo 166:240bc5a0f42a 117 /*enum FACE_REG_ACTION{
thedo 166:240bc5a0f42a 118 ACT_UNKNOWN,
thedo 166:240bc5a0f42a 119 ACT_CHANGE_ID,
thedo 166:240bc5a0f42a 120 ACT_ADD,
thedo 166:240bc5a0f42a 121 ACT_IGNORE,
thedo 166:240bc5a0f42a 122 ACT_DRAW_REGISTER,
thedo 166:240bc5a0f42a 123 ACT_REGISTING_FACE,
thedo 166:240bc5a0f42a 124 };*/
thedo 166:240bc5a0f42a 125
thedo 166:240bc5a0f42a 126 enum CLICKED_CODE
thedo 166:240bc5a0f42a 127 {
thedo 166:240bc5a0f42a 128 CLICKED_UNKNOWN = 0,
thedo 166:240bc5a0f42a 129 CLICKED_REGIS_FACE,
thedo 166:240bc5a0f42a 130 CLICKED_CHANGE_ID,
thedo 166:240bc5a0f42a 131 CLICKED_ADD,
thedo 166:240bc5a0f42a 132 CLICKED_IGNORE,
thedo 166:240bc5a0f42a 133 CLICKED_HAND_SAMPLING
thedo 166:240bc5a0f42a 134 };
thedo 166:240bc5a0f42a 135
thedo 166:240bc5a0f42a 136 #define MAX_COUNTOURS (500)
thedo 166:240bc5a0f42a 137
thedo 166:240bc5a0f42a 138 #if defined(__ICCARM__)
thedo 166:240bc5a0f42a 139 /* 32 bytes aligned */
thedo 166:240bc5a0f42a 140 #pragma data_alignment=32
thedo 166:240bc5a0f42a 141 static uint8_t user_frame_buffer0[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT];
thedo 166:240bc5a0f42a 142 #pragma data_alignment=32
thedo 166:240bc5a0f42a 143 static uint8_t user_frame_buffer1[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT];
thedo 166:240bc5a0f42a 144 #pragma data_alignment=32
thedo 166:240bc5a0f42a 145 static uint8_t user_frame_buffer2[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT];
thedo 166:240bc5a0f42a 146 #else
thedo 166:240bc5a0f42a 147 /* 32 bytes aligned */
thedo 166:240bc5a0f42a 148 static uint8_t user_frame_buffer0[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
thedo 166:240bc5a0f42a 149 static uint8_t user_frame_buffer1[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
thedo 166:240bc5a0f42a 150 static uint8_t user_frame_buffer2[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
thedo 166:240bc5a0f42a 151 static uint8_t user_frame_buffer_draw[DRAW_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
thedo 166:240bc5a0f42a 152 static uint8_t user_frame_buffer_draw_action[DRAW_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
thedo 166:240bc5a0f42a 153 static uint8_t user_frame_buffer_draw_button[DRAW_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
thedo 166:240bc5a0f42a 154 static uint8_t my_frame[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
thedo 166:240bc5a0f42a 155 #endif
thedo 166:240bc5a0f42a 156 static uint8_t * FrameBufferTbl[FRAME_BUFFER_NUM] = {user_frame_buffer0, user_frame_buffer1, user_frame_buffer2};
thedo 166:240bc5a0f42a 157 #if VIDEO_INPUT_METHOD == VIDEO_CVBS
thedo 166:240bc5a0f42a 158 static volatile int32_t vfield_count = 0;
thedo 166:240bc5a0f42a 159 #endif
thedo 166:240bc5a0f42a 160
thedo 166:240bc5a0f42a 161 #endif //DEFINE_H