source: svn/trunk/newcon3bcm2_21bu/dst/dhl/api/test/UIOTest.c @ 2

Last change on this file since 2 was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 5.9 KB
Line 
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
220. ±âº» µ¿ÀÛ.
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
341. 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
462. 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
603. °³º° Ű 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
86void 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*/
112void 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*/
128void 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, &param);
137}
138
139void UIOTest_resetfilter(void)
140{
141        tDHL_UIO_InputDataFilter param;
142        param.numFilter = 0;
143        DHL_UIO_Config(eDHL_UIO_Cfg_InputDataFilter, &param);
144}
145
146
147
148static 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*/
168void 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, &param);
180
181}
182
183
184static 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
207label_default:
208        {
209                settings->msIntervalFirst = _repeat_param.g_first;
210                settings->msIntervalNext = _repeat_param.g_next;
211        }
212}
213
214
215void 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
225void 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*/
262void 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*/
284void UIOTest_uninit(void)
285{
286        DHL_UIO_Uninit();
287}
288
289
Note: See TracBrowser for help on using the repository browser.