| 1 | /** |
|---|
| 2 | UIOTest.c |
|---|
| 3 | |
|---|
| 4 | ÀÌ ¸ðµâÀº UIO API Test ¸¦ À§ÇÑ ·çƾÀÌ´Ù. |
|---|
| 5 | |
|---|
| 6 | */ |
|---|
| 7 | |
|---|
| 8 | |
|---|
| 9 | #include "DHL_OSAL.h" |
|---|
| 10 | #include "DHL_UIO.h" |
|---|
| 11 | |
|---|
| 12 | //#include "DHL_APITest.h" |
|---|
| 13 | |
|---|
| 14 | |
|---|
| 15 | #if COMMENT |
|---|
| 16 | ____Test___(){} |
|---|
| 17 | #endif |
|---|
| 18 | |
|---|
| 19 | /* |
|---|
| 20 | UIOTest ¸ðµâ Å×½ºÆ® µ¿ÀÛ. |
|---|
| 21 | |
|---|
| 22 | 0. ±âº» µ¿ÀÛ. |
|---|
| 23 | |
|---|
| 24 | UIOTest_init() ¸¸ ºÎ¸£°í ³ª¼ ¸®¸ðÄÁ ÀÔ·ÂÀ» Çϸé log ¸Þ½ÃÁö·Î È®ÀÎ °¡´ÉÇÏ´Ù. |
|---|
| 25 | ÀÌ »óȲ¿¡¼´Â all-pass·Î µ¿ÀÛÇϹǷÎ, NEC ¹æ½ÄÀÇ ¾î¶² ¸®¸ðÄÁµµ Å×½ºÆ® °¡´É. |
|---|
| 26 | |
|---|
| 27 | Shell> UIOTest_init |
|---|
| 28 | |
|---|
| 29 | // Ű ÀÔ·Â.. |
|---|
| 30 | IR key input => Code : 0xec130204, Repeat : |
|---|
| 31 | ... |
|---|
| 32 | |
|---|
| 33 | |
|---|
| 34 | 1. Vendor key filtering test |
|---|
| 35 | |
|---|
| 36 | Shell> UIOTest_setfilter 0x3412 // ¿ìÁø ¸®¸ðÄÁ. |
|---|
| 37 | Shell> UIOTest_setfilter 0x0204 // µ¹ÇÉ ¸®¸ðÄÁ. |
|---|
| 38 | |
|---|
| 39 | ÁÖÀÇ. À§ ÇÔ¼ö¸¦ Çѹøµµ È£ÃâÇÏÁö ¾ÊÀº °æ¿ì´Â all-pass ·Î µ¿ÀÛÇÑ´Ù. |
|---|
| 40 | ÀÏ´Ü À§ ÇÔ¼ö·Î filter¸¦ ¼³Á¤ÇÏ¸é °³°³ filter¸¦ reset ÇÏ´Â ¹æ¹ýÀº ¾ø°í, |
|---|
| 41 | Àüü ÇÊÅÍ ¸®¼Â¸¸ °¡´ÉÇÔ. |
|---|
| 42 | |
|---|
| 43 | Shell> UIOTest_resetirfilter |
|---|
| 44 | |
|---|
| 45 | |
|---|
| 46 | 2. global key repeat ó¸® Å×½ºÆ® |
|---|
| 47 | |
|---|
| 48 | Shell> UIOTest_setrepeat 2000 1000 |
|---|
| 49 | |
|---|
| 50 | ÀÌ·¸°Ô Çϸé ÀÓÀÇ Å°¸¦ °è¼Ó ´©¸£°í ÀÖÀ¸¸é ´ÙÀ½°ú °°ÀÌ ¹ÝÀÀÇÑ´Ù. |
|---|
| 51 | ¹ÝÀÀÀº ·Î±× ¸Þ½ÃÁö·Î È®ÀÎÇÏ¸é µÈ´Ù. |
|---|
| 52 | |
|---|
| 53 | 2 sec 1 sec 1 sec 1 sec 1 sec |
|---|
| 54 | +------------+------+------+------+---... |
|---|
| 55 | 1st 2nd 3rd 4th 5th |
|---|
| 56 | |
|---|
| 57 | ¼ýÀÚ¸¦ º¯°æÇØ °¡¸é¼ Å×½ºÆ® ÇØ º¼ °Í.. |
|---|
| 58 | |
|---|
| 59 | |
|---|
| 60 | 3. °³º° Ű repeat ó¸® Å×½ºÆ® |
|---|
| 61 | |
|---|
| 62 | |
|---|
| 63 | Shell> UIOTest_setrepeat2 1 0x02 1000 500 |
|---|
| 64 | |
|---|
| 65 | // IR ÀÔ·Â Áß key 0x02 ¿¡ ´ëÇØ¼¸¸ first 1000, next 500 ÀÇ repeat ÆÄ¶ó¹ÌÅÍ ¼³Á¤. |
|---|
| 66 | // Âü°í·Î woojin ¸®¸ðÄÁÀÇ UP ۰¡ 0x02 ÀÌ´Ù. |
|---|
| 67 | // ±× ¿Ü ´Ù¸¥ Ű´Â global repeat ¼³Á¤ °ªÀ» µû¸¥´Ù. |
|---|
| 68 | |
|---|
| 69 | Shell> UIOTest_resetrepeat |
|---|
| 70 | |
|---|
| 71 | // UIOTest_setrepeat2 À» ¼³Á¤À» ÇØÁ¦.. |
|---|
| 72 | // global repeatÀº º°µµÀÇ api·Î ¼³Á¤ÇϹǷΠ¿©ÀüÈ÷ À¯È¿ÇÔ. |
|---|
| 73 | |
|---|
| 74 | |
|---|
| 75 | */ |
|---|
| 76 | |
|---|
| 77 | |
|---|
| 78 | |
|---|
| 79 | |
|---|
| 80 | |
|---|
| 81 | #if COMMENT |
|---|
| 82 | ____Function___(){} |
|---|
| 83 | #endif |
|---|
| 84 | |
|---|
| 85 | |
|---|
| 86 | void UIO_input_process(tDHL_UIO_Type source, UINT32 data, tDHL_UIO_Flag flag) |
|---|
| 87 | { |
|---|
| 88 | |
|---|
| 89 | if(source == eDHL_UIO_INPUT_IR) |
|---|
| 90 | DHL_OS_Printf("IR key input => Code : 0x%08x, flag: %s\n", |
|---|
| 91 | data, (flag & DHL_UIO_FLAG_IsRepeat)?"Repeat":""); |
|---|
| 92 | else if(source == eDHL_UIO_INPUT_GPIO) |
|---|
| 93 | DHL_OS_Printf("GPIO key input => index : %d, flag: %s\n", |
|---|
| 94 | data, (flag & DHL_UIO_FLAG_IsRepeat)?"Repeat":""); |
|---|
| 95 | |
|---|
| 96 | } |
|---|
| 97 | |
|---|
| 98 | |
|---|
| 99 | |
|---|
| 100 | #if COMMENT |
|---|
| 101 | ____UIO_Test___(){} |
|---|
| 102 | #endif |
|---|
| 103 | |
|---|
| 104 | |
|---|
| 105 | |
|---|
| 106 | /* |
|---|
| 107 | UIO ÃʱâÈ µ¿ÀÛ test ÇÔ¼ö. |
|---|
| 108 | |
|---|
| 109 | Á¤»óµ¿ÀÛ ¼öÇà½Ã IR ÀÔ·Â ¹× GPB(gpio ·Î ¿¬°áµÈ keypad) ÀÔ·ÂÀÌ enable µÇ¸ç ½Ã¸®¾ó ¸Þ¼¼Áö·Î Ãâ·ÂµÈ´Ù. |
|---|
| 110 | |
|---|
| 111 | */ |
|---|
| 112 | void UIOTest_init(void) |
|---|
| 113 | { |
|---|
| 114 | |
|---|
| 115 | DHL_UIO_Init(); |
|---|
| 116 | DHL_UIO_RegisterCallback(UIO_input_process); |
|---|
| 117 | |
|---|
| 118 | } |
|---|
| 119 | |
|---|
| 120 | /* |
|---|
| 121 | IR filtering ó¸® µ¿ÀÛ test ¸¦ À§ÇÑ ÇÔ¼ö. |
|---|
| 122 | |
|---|
| 123 | Á¤»óµ¿ÀÛ ¼öÇà½Ã ÁöÁ¤ÇÑ Custom code ¿¡ ´ëÇØ¼¸¸ µ¥ÀÌÅÍ ¼ö½Å. |
|---|
| 124 | |
|---|
| 125 | value : ÇÊÅ͸µ(Åë°ú½ÃÅ´) ÇÒ ¸®¸ðÄÜÀÇ Custom ÄÚµå °ª. |
|---|
| 126 | |
|---|
| 127 | */ |
|---|
| 128 | void UIOTest_setfilter(int value) |
|---|
| 129 | { |
|---|
| 130 | tDHL_UIO_InputDataFilter param; |
|---|
| 131 | |
|---|
| 132 | param.numFilter = 1; |
|---|
| 133 | param.filters[0].mask = 0xFFFF; |
|---|
| 134 | param.filters[0].data = (UINT32)value & 0xFFFF; |
|---|
| 135 | |
|---|
| 136 | DHL_UIO_Config(eDHL_UIO_Cfg_InputDataFilter, ¶m); |
|---|
| 137 | } |
|---|
| 138 | |
|---|
| 139 | void UIOTest_resetfilter(void) |
|---|
| 140 | { |
|---|
| 141 | tDHL_UIO_InputDataFilter param; |
|---|
| 142 | param.numFilter = 0; |
|---|
| 143 | DHL_UIO_Config(eDHL_UIO_Cfg_InputDataFilter, ¶m); |
|---|
| 144 | } |
|---|
| 145 | |
|---|
| 146 | |
|---|
| 147 | |
|---|
| 148 | static struct |
|---|
| 149 | { |
|---|
| 150 | tDHL_UIO_Type input; |
|---|
| 151 | |
|---|
| 152 | UINT32 g_first, g_next; // global param |
|---|
| 153 | |
|---|
| 154 | UINT8 key; |
|---|
| 155 | UINT32 first, next; // interval |
|---|
| 156 | |
|---|
| 157 | } _repeat_param; |
|---|
| 158 | |
|---|
| 159 | /* |
|---|
| 160 | key ÀÔ·Â(IR, keypadµî) ÀÇ Repeat ó¸® ½Ã°£ ¼ÂÆÃ µ¿ÀÛ test ¸¦ À§ÇÑ ÇÔ¼ö. |
|---|
| 161 | |
|---|
| 162 | Á¤»ó µ¿ÀÛ ¼öÇà½Ã ÁöÁ¤µÈ ½Ã°£À¸·Î repeat ۰¡ 󸮵ȴÙ. |
|---|
| 163 | |
|---|
| 164 | first : Ű ÀÔ·ÂÈÄ ÃÖÃÊ repeat key ·Î ÀÎ½Ä ÇÏ´Â ½Ã°£ (ms) |
|---|
| 165 | next : ù¹øÂ° repeat key ÀÎ½Ä ÈÄÅÍ repeat ·Î ÀÎ½Ä ÇÏ´Â ½Ã°£(ms) |
|---|
| 166 | |
|---|
| 167 | */ |
|---|
| 168 | void UIOTest_setrepeat(int first, int next) |
|---|
| 169 | { |
|---|
| 170 | |
|---|
| 171 | tDHL_UIO_RepeatSetting param; |
|---|
| 172 | |
|---|
| 173 | param.msIntervalFirst = (UINT32)first; |
|---|
| 174 | param.msIntervalNext = (UINT32)next; |
|---|
| 175 | |
|---|
| 176 | _repeat_param.g_first = first; |
|---|
| 177 | _repeat_param.g_next = next; |
|---|
| 178 | |
|---|
| 179 | DHL_UIO_Config(eDHL_UIO_Cfg_RepeatSetting, ¶m); |
|---|
| 180 | |
|---|
| 181 | } |
|---|
| 182 | |
|---|
| 183 | |
|---|
| 184 | static void _chk_repeat_cb(tDHL_UIO_Type source, UINT32 data, tDHL_UIO_RepeatSetting *settings) |
|---|
| 185 | { |
|---|
| 186 | if (source != _repeat_param.input) |
|---|
| 187 | goto label_default; |
|---|
| 188 | |
|---|
| 189 | if (source == eDHL_UIO_INPUT_IR) { |
|---|
| 190 | UINT8 key = (data >> 16) & 0xff; |
|---|
| 191 | if (key != _repeat_param.key) |
|---|
| 192 | goto label_default; |
|---|
| 193 | |
|---|
| 194 | settings->msIntervalFirst = _repeat_param.first; |
|---|
| 195 | settings->msIntervalNext = _repeat_param.next; |
|---|
| 196 | return; |
|---|
| 197 | } |
|---|
| 198 | else if (source == eDHL_UIO_INPUT_GPIO) { |
|---|
| 199 | if (data != _repeat_param.key) |
|---|
| 200 | goto label_default; |
|---|
| 201 | |
|---|
| 202 | settings->msIntervalFirst = _repeat_param.first; |
|---|
| 203 | settings->msIntervalNext = _repeat_param.next; |
|---|
| 204 | return; |
|---|
| 205 | } |
|---|
| 206 | |
|---|
| 207 | label_default: |
|---|
| 208 | { |
|---|
| 209 | settings->msIntervalFirst = _repeat_param.g_first; |
|---|
| 210 | settings->msIntervalNext = _repeat_param.g_next; |
|---|
| 211 | } |
|---|
| 212 | } |
|---|
| 213 | |
|---|
| 214 | |
|---|
| 215 | void UIOTest_setrepeat2(tDHL_UIO_Type source, UINT32 data, UINT32 first, UINT32 next) |
|---|
| 216 | { |
|---|
| 217 | _repeat_param.input = source; |
|---|
| 218 | _repeat_param.key = data; |
|---|
| 219 | _repeat_param.first = first; |
|---|
| 220 | _repeat_param.next = next; |
|---|
| 221 | |
|---|
| 222 | DHL_UIO_Config(eDHL_UIO_Cfg_CheckRepeatCb, _chk_repeat_cb); |
|---|
| 223 | } |
|---|
| 224 | |
|---|
| 225 | void UIOTest_resetrepeat(void) |
|---|
| 226 | { |
|---|
| 227 | DHL_UIO_Config(eDHL_UIO_Cfg_CheckRepeatCb, NULL); |
|---|
| 228 | } |
|---|
| 229 | |
|---|
| 230 | |
|---|
| 231 | |
|---|
| 232 | /* |
|---|
| 233 | |
|---|
| 234 | UIO ÀÇ output(User ¿¡°Ô º¸¿©Áö´Â Displayµî) ÄÁÆ®·Ñ µ¿ÀÛ test ÇÔ¼ö. |
|---|
| 235 | |
|---|
| 236 | Á¤»ó µ¿ÀÛ ¼öÇà½Ã ÇØ´ç output ¿¡ ¿øÇÏ´Â display °¡ Ãâ·ÂµÈ´Ù. |
|---|
| 237 | |
|---|
| 238 | type º°·Î id ¹× param Çü½ÄÀÌ ´Ù¸£´Ù. |
|---|
| 239 | |
|---|
| 240 | 1. eDHL_UIO_CT_LED |
|---|
| 241 | |
|---|
| 242 | UIO LED ÄÁÆ®·Ñ. |
|---|
| 243 | id : GPIO number |
|---|
| 244 | param : 0 (Off), 1 (On) |
|---|
| 245 | |
|---|
| 246 | 2. eDHL_UIO_CT_Indicator |
|---|
| 247 | |
|---|
| 248 | UIO Indicator ÄÁÆ®·Ñ. |
|---|
| 249 | id : tDHL_UIO_IndicatorType Áß Çϳª°¡ µÈ´Ù. |
|---|
| 250 | |
|---|
| 251 | (1) id : 0 |
|---|
| 252 | eDHL_UIO_IT_Power |
|---|
| 253 | Power key µ¿ÀÛ¿¡ µû¸¥ Indicator Ç¥½Ã »óÅ ÄÁÆ®·Ñ. |
|---|
| 254 | param : 0 (all off), 1 (standby mode »óÅÂÇ¥½Ã), 2 (operation mode »óÅÂÇ¥½Ã) |
|---|
| 255 | |
|---|
| 256 | (2) ³ª¸ÓÁö¿¡ ´ëÇØ¼´Â ÇöÀç º¸µå¿¡¼´Â ¹Ì±¸Çö. |
|---|
| 257 | |
|---|
| 258 | 3. ³ª¸ÓÁö¿¡ ´ëÇØ¼´Â ÇöÀç º¸µå¿¡¼´Â ¹Ì±¸Çö. |
|---|
| 259 | |
|---|
| 260 | |
|---|
| 261 | */ |
|---|
| 262 | void UIOTest_control(int type, int id, int param) |
|---|
| 263 | { |
|---|
| 264 | |
|---|
| 265 | DHL_RESULT dhr = DHL_OK; |
|---|
| 266 | |
|---|
| 267 | dhr = DHL_UIO_Control((tDHL_UIO_ControlType)type, (UINT32)id, (UINT32)param); |
|---|
| 268 | if(dhr != DHL_OK) |
|---|
| 269 | { |
|---|
| 270 | if(dhr == DHL_FAIL_INVALID_PARAM) |
|---|
| 271 | DHL_OS_Printf("Invalid param (DHL_AV_init) \n"); |
|---|
| 272 | else |
|---|
| 273 | DHL_OS_Printf("Error (DHL_UIO_Control) \n"); |
|---|
| 274 | } |
|---|
| 275 | |
|---|
| 276 | } |
|---|
| 277 | |
|---|
| 278 | /* |
|---|
| 279 | UIO Uninit µ¿ÀÛ Test ¸¦ À§ÇÑ ÇÔ¼ö. |
|---|
| 280 | |
|---|
| 281 | Á¤»ó µ¿ÀÛ ¼öÇà½Ã IR ¹× Gpio keyµîÀÇ ÀÔ·ÂÀÌ Â÷´ÜµÈ´Ù. |
|---|
| 282 | |
|---|
| 283 | */ |
|---|
| 284 | void UIOTest_uninit(void) |
|---|
| 285 | { |
|---|
| 286 | DHL_UIO_Uninit(); |
|---|
| 287 | } |
|---|
| 288 | |
|---|
| 289 | |
|---|