2 * Copyright (c) 2012, 2013 Samsung Electronics Co., Ltd.
4 * Licensed under the Flora License, Version 1.1 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://floralicense.org/license/
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include "net_nfc_debug_internal.h"
18 #include "net_nfc_util_gdbus_internal.h"
19 #include "net_nfc_gdbus.h"
20 #include "net_nfc_client.h"
21 #include "net_nfc_client_util_internal.h"
22 #include "net_nfc_client_manager.h"
23 #include "net_nfc_client_test.h"
25 #ifndef NET_NFC_EXPORT_API
26 #define NET_NFC_EXPORT_API __attribute__((visibility("default")))
31 static void test_call_sim_test_callback(GObject *source_object,
35 static void test_call_prbs_test_callback(GObject *source_object,
39 static void test_call_get_firmware_version_callback(GObject *source_object,
43 static void test_call_set_ee_data_callback(GObject *source_object,
47 static void test_call_ese_test_callback(GObject *source_object,
51 static NetNfcGDbusTest *test_proxy = NULL;
54 static void test_call_sim_test_callback(GObject *source_object,
58 NetNfcCallback *func_data = (NetNfcCallback *)user_data;
59 net_nfc_error_e out_result;
62 g_assert(user_data != NULL);
64 if (net_nfc_gdbus_test_call_sim_test_finish(
65 NET_NFC_GDBUS_TEST(source_object),
69 DEBUG_ERR_MSG("Can not finish sim_test: %s",
71 out_result = NET_NFC_IPC_FAIL;
76 if (func_data->callback != NULL) {
77 net_nfc_client_test_sim_test_completed callback =
78 (net_nfc_client_test_sim_test_completed)func_data->callback;
80 callback(out_result, func_data->user_data);
86 static void test_call_prbs_test_callback(GObject *source_object,
90 NetNfcCallback *func_data = (NetNfcCallback *)user_data;
91 net_nfc_error_e out_result;
94 g_assert(user_data != NULL);
96 if (net_nfc_gdbus_test_call_prbs_test_finish(
97 NET_NFC_GDBUS_TEST(source_object),
101 DEBUG_ERR_MSG("Can not finish prbs test: %s",
103 out_result = NET_NFC_IPC_FAIL;
108 if (func_data->callback != NULL) {
109 net_nfc_client_test_prbs_test_completed callback =
110 (net_nfc_client_test_prbs_test_completed)func_data->callback;
112 callback(out_result, func_data->user_data);
118 static void test_call_get_firmware_version_callback(GObject *source_object,
122 NetNfcCallback *func_data = (NetNfcCallback *)user_data;
123 net_nfc_error_e out_result;
124 gchar *out_version = NULL;
125 GError *error = NULL;
127 g_assert(user_data != NULL);
129 if (net_nfc_gdbus_test_call_get_firmware_version_finish(
130 NET_NFC_GDBUS_TEST(source_object),
135 DEBUG_ERR_MSG("Can not finish get_firmware_version: %s",
137 out_result = NET_NFC_IPC_FAIL;
142 if (func_data->callback != NULL) {
143 net_nfc_client_test_get_firmware_version_completed callback =
144 (net_nfc_client_test_get_firmware_version_completed)func_data->callback;
146 callback(out_result, out_version, func_data->user_data);
153 static void test_call_set_ee_data_callback(GObject *source_object,
157 NetNfcCallback *func_data = (NetNfcCallback *)user_data;
158 net_nfc_error_e out_result;
159 GError *error = NULL;
161 g_assert(user_data != NULL);
163 if (net_nfc_gdbus_test_call_set_ee_data_finish(
164 NET_NFC_GDBUS_TEST(source_object),
168 DEBUG_ERR_MSG("Can not finish set_ee_data: %s",
170 out_result = NET_NFC_IPC_FAIL;
175 if (func_data->callback != NULL) {
176 net_nfc_client_test_set_ee_data_completed callback =
177 (net_nfc_client_test_set_ee_data_completed)func_data->callback;
179 callback(out_result, func_data->user_data);
185 static void test_call_ese_test_callback(GObject *source_object,
189 NetNfcCallback *func_data = (NetNfcCallback *)user_data;
190 net_nfc_error_e out_result;
191 GError *error = NULL;
193 g_assert(user_data != NULL);
195 if (net_nfc_gdbus_test_call_ese_test_finish(
196 NET_NFC_GDBUS_TEST(source_object),
200 DEBUG_ERR_MSG("Can not finish sim_test: %s",
202 out_result = NET_NFC_IPC_FAIL;
207 if (func_data->callback != NULL) {
208 net_nfc_client_test_ese_test_completed callback =
209 (net_nfc_client_test_ese_test_completed)func_data->callback;
211 callback(out_result, func_data->user_data);
219 net_nfc_error_e net_nfc_client_test_sim_test(
220 net_nfc_client_test_sim_test_completed callback,
223 NetNfcCallback *func_data;
225 if (test_proxy == NULL) {
226 if (net_nfc_client_test_init() != NET_NFC_OK) {
227 DEBUG_ERR_MSG("test_proxy fail");
228 return NET_NFC_NOT_INITIALIZED;
232 /* prevent executing daemon when nfc is off */
233 if (net_nfc_client_manager_is_activated() == false)
234 return NET_NFC_NOT_ACTIVATED;
236 func_data = g_try_new0(NetNfcCallback, 1);
237 if (func_data == NULL)
238 return NET_NFC_ALLOC_FAIL;
240 func_data->callback = (gpointer)callback;
241 func_data->user_data = user_data;
243 net_nfc_gdbus_test_call_sim_test(test_proxy,
245 test_call_sim_test_callback,
252 net_nfc_error_e net_nfc_client_test_sim_test_sync(void)
254 net_nfc_error_e out_result = NET_NFC_OK;
255 GError *error = NULL;
257 if (test_proxy == NULL) {
258 if (net_nfc_client_test_init() != NET_NFC_OK) {
259 DEBUG_ERR_MSG("test_proxy fail");
260 return NET_NFC_NOT_INITIALIZED;
264 /* prevent executing daemon when nfc is off */
265 if (net_nfc_client_manager_is_activated() == false)
266 return NET_NFC_NOT_ACTIVATED;
268 if (net_nfc_gdbus_test_call_sim_test_sync(test_proxy,
272 DEBUG_ERR_MSG("can not call SimTest: %s",
274 out_result = NET_NFC_IPC_FAIL;
283 net_nfc_error_e net_nfc_client_test_prbs_test(uint32_t tech,
285 net_nfc_client_test_prbs_test_completed callback,
288 NetNfcCallback *func_data;
290 if (test_proxy == NULL) {
291 if (net_nfc_client_test_init() != NET_NFC_OK) {
292 DEBUG_ERR_MSG("test_proxy fail");
293 return NET_NFC_NOT_INITIALIZED;
297 /* prevent executing daemon when nfc is off */
298 if (net_nfc_client_manager_is_activated() == false)
299 return NET_NFC_NOT_ACTIVATED;
301 func_data = g_try_new0(NetNfcCallback, 1);
302 if (func_data == NULL)
303 return NET_NFC_ALLOC_FAIL;
305 func_data->callback = (gpointer)callback;
306 func_data->user_data = user_data;
308 net_nfc_gdbus_test_call_prbs_test(test_proxy,
312 test_call_prbs_test_callback,
319 net_nfc_error_e net_nfc_client_test_prbs_test_sync(uint32_t tech,
322 net_nfc_error_e out_result = NET_NFC_OK;
323 GError *error = NULL;
325 if (test_proxy == NULL) {
326 if (net_nfc_client_test_init() != NET_NFC_OK) {
327 DEBUG_ERR_MSG("test_proxy fail");
328 return NET_NFC_NOT_INITIALIZED;
332 /* prevent executing daemon when nfc is off */
333 if (net_nfc_client_manager_is_activated() == false)
334 return NET_NFC_NOT_ACTIVATED;
336 if (net_nfc_gdbus_test_call_prbs_test_sync(test_proxy,
342 DEBUG_ERR_MSG("can not call PrbsTest: %s",
344 out_result = NET_NFC_IPC_FAIL;
353 net_nfc_error_e net_nfc_client_test_get_firmware_version(
354 net_nfc_client_test_get_firmware_version_completed callback,
357 NetNfcCallback *func_data;
359 if (test_proxy == NULL) {
360 if (net_nfc_client_test_init() != NET_NFC_OK) {
361 DEBUG_ERR_MSG("test_proxy fail");
362 return NET_NFC_NOT_INITIALIZED;
366 /* prevent executing daemon when nfc is off */
367 if (net_nfc_client_manager_is_activated() == false)
368 return NET_NFC_NOT_ACTIVATED;
370 func_data = g_try_new0(NetNfcCallback, 1);
371 if (func_data == NULL)
372 return NET_NFC_ALLOC_FAIL;
374 func_data->callback = (gpointer)callback;
375 func_data->user_data = user_data;
377 net_nfc_gdbus_test_call_get_firmware_version(test_proxy,
379 test_call_get_firmware_version_callback,
386 net_nfc_error_e net_nfc_client_test_get_firmware_version_sync(char **version)
388 net_nfc_error_e out_result = NET_NFC_OK;
389 gchar *out_version = NULL;
390 GError *error = NULL;
393 return NET_NFC_NULL_PARAMETER;
397 if (test_proxy == NULL) {
398 if (net_nfc_client_test_init() != NET_NFC_OK) {
399 DEBUG_ERR_MSG("test_proxy fail");
400 return NET_NFC_NOT_INITIALIZED;
404 /* prevent executing daemon when nfc is off */
405 if (net_nfc_client_manager_is_activated() == false)
406 return NET_NFC_NOT_ACTIVATED;
408 if (net_nfc_gdbus_test_call_get_firmware_version_sync(test_proxy,
413 *version = out_version;
415 DEBUG_ERR_MSG("can not call Get Firmware version: %s",
417 out_result = NET_NFC_IPC_FAIL;
426 net_nfc_error_e net_nfc_client_test_set_ee_data(int mode,
429 net_nfc_client_test_set_ee_data_completed callback,
432 NetNfcCallback *func_data;
435 if (test_proxy == NULL) {
436 if (net_nfc_client_test_init() != NET_NFC_OK) {
437 DEBUG_ERR_MSG("test_proxy fail");
438 return NET_NFC_NOT_INITIALIZED;
442 /* prevent executing daemon when nfc is off */
443 if (net_nfc_client_manager_is_activated() == false)
444 return NET_NFC_NOT_ACTIVATED;
446 func_data = g_try_new0(NetNfcCallback, 1);
447 if (func_data == NULL)
448 return NET_NFC_ALLOC_FAIL;
450 func_data->callback = (gpointer)callback;
451 func_data->user_data = user_data;
453 variant = net_nfc_util_gdbus_data_to_variant((data_s *)data);
455 net_nfc_gdbus_test_call_set_ee_data(test_proxy,
460 test_call_set_ee_data_callback,
467 net_nfc_error_e net_nfc_client_test_set_ee_data_sync(int mode,
471 net_nfc_error_e out_result = NET_NFC_OK;
472 GVariant *variant = NULL;
473 GError *error = NULL;
475 if (test_proxy == NULL) {
476 if (net_nfc_client_test_init() != NET_NFC_OK) {
477 DEBUG_ERR_MSG("test_proxy fail");
478 return NET_NFC_NOT_INITIALIZED;
482 /* prevent executing daemon when nfc is off */
483 if (net_nfc_client_manager_is_activated() == false)
484 return NET_NFC_NOT_ACTIVATED;
486 variant = net_nfc_util_gdbus_data_to_variant((data_s *)data);
488 if (net_nfc_gdbus_test_call_set_ee_data_sync(test_proxy,
495 DEBUG_ERR_MSG("can not call SetEeTest: %s",
497 out_result = NET_NFC_IPC_FAIL;
506 net_nfc_error_e net_nfc_client_test_ese_test(
507 net_nfc_client_test_ese_test_completed callback,
510 NetNfcCallback *func_data;
512 DEBUG_CLIENT_MSG("NFC ESE Test!!!!");
514 if (test_proxy == NULL) {
515 if (net_nfc_client_test_init() != NET_NFC_OK) {
516 DEBUG_ERR_MSG("test_proxy fail");
517 return NET_NFC_NOT_INITIALIZED;
521 /* prevent executing daemon when nfc is off */
522 if (net_nfc_client_manager_is_activated() == false)
523 return NET_NFC_NOT_ACTIVATED;
525 func_data = g_try_new0(NetNfcCallback, 1);
526 if (func_data == NULL)
527 return NET_NFC_ALLOC_FAIL;
529 func_data->callback = (gpointer)callback;
530 func_data->user_data = user_data;
532 net_nfc_gdbus_test_call_ese_test(test_proxy,
534 test_call_ese_test_callback,
541 net_nfc_error_e net_nfc_client_test_ese_test_sync(void)
543 net_nfc_error_e out_result = NET_NFC_OK;
544 GError *error = NULL;
546 DEBUG_CLIENT_MSG("NFC ESE Test SYNC!!!!");
548 if (test_proxy == NULL) {
549 if (net_nfc_client_test_init() != NET_NFC_OK) {
550 DEBUG_ERR_MSG("test_proxy fail");
551 return NET_NFC_NOT_INITIALIZED;
555 /* prevent executing daemon when nfc is off */
556 if (net_nfc_client_manager_is_activated() == false)
557 return NET_NFC_NOT_ACTIVATED;
559 if (net_nfc_gdbus_test_call_ese_test_sync(test_proxy,
563 DEBUG_ERR_MSG("can not call ESE Test: %s",
565 out_result = NET_NFC_IPC_FAIL;
574 net_nfc_error_e net_nfc_client_test_set_se_tech_type_sync(
575 net_nfc_se_type_e type, int tech)
577 net_nfc_error_e out_result = NET_NFC_OK;
578 GError *error = NULL;
580 if (test_proxy == NULL) {
581 if (net_nfc_client_test_init() != NET_NFC_OK) {
582 DEBUG_ERR_MSG("test_proxy fail");
583 return NET_NFC_NOT_INITIALIZED;
587 /* prevent executing daemon when nfc is off */
588 if (net_nfc_client_manager_is_activated() == false)
589 return NET_NFC_NOT_ACTIVATED;
591 if (net_nfc_gdbus_test_call_set_se_tech_type_sync(test_proxy,
597 DEBUG_ERR_MSG("can not call SetSeTechType: %s",
599 out_result = NET_NFC_IPC_FAIL;
608 net_nfc_error_e net_nfc_client_test_set_listen_tech_mask_sync(uint32_t tech)
610 net_nfc_error_e result = NET_NFC_OK;
611 GError *error = NULL;
613 DEBUG_CLIENT_MSG("net_nfc_client_test_set_listen_tech_mask_sync start");
615 if (test_proxy == NULL) {
616 if (net_nfc_client_test_init() != NET_NFC_OK) {
617 DEBUG_ERR_MSG("test_proxy fail");
618 return NET_NFC_NOT_INITIALIZED;
622 /* prevent executing daemon when nfc is off */
623 if (net_nfc_client_manager_is_activated() == false)
624 return NET_NFC_NOT_ACTIVATED;
626 if (net_nfc_gdbus_test_call_set_listen_tech_mask_sync(test_proxy,
631 DEBUG_ERR_MSG("can not call listen tech mask: %s",
633 result = NET_NFC_IPC_FAIL;
642 net_nfc_error_e net_nfc_client_test_init(void)
644 GError *error = NULL;
647 DEBUG_CLIENT_MSG("Already initialized");
652 test_proxy = net_nfc_gdbus_test_proxy_new_for_bus_sync(
654 G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
655 "org.tizen.NetNfcService",
656 "/org/tizen/NetNfcService/Test",
659 if (test_proxy == NULL) {
660 DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
663 return NET_NFC_UNKNOWN_ERROR;
669 void net_nfc_client_test_deinit(void)
672 g_object_unref(test_proxy);