3 #include <libamb-client.h>
4 #include <libamb-objects.h>
6 static void test_get_object_list()
12 fprintf(stdout, "\n== %s ==\n", __func__);
14 ret = amb_get_object_list(&objlist);
16 printf("Fail to amb_get_object_list()\n");
20 fprintf(stdout, " - count: %u\n", g_list_length(objlist));
21 for (item = objlist; item != NULL; item = item->next) {
22 gchar *obj = item->data;
23 fprintf(stdout, "%s ", obj);
27 amb_release_object_list(objlist);
30 static void test_get_property_all(const char *obj_name)
36 fprintf(stdout, "\n== %s ==\n", __func__);
37 ret = amb_get_property_all(&retlist, obj_name);
39 printf("Fail to get_property_all()\n");
43 fprintf(stdout, " - count: %u\n", g_list_length(retlist));
44 for (item = retlist; item != NULL; item = item->next) {
45 GVariant *i = item->data;
46 gchar *s = g_variant_print(i, TRUE);
51 amb_release_property_all(retlist);
54 static void test_get_property_all_with_zone(const char *obj_name, int zone)
60 fprintf(stdout, "\n== %s ==\n", __func__);
61 r = amb_get_property_all_with_zone(&ret, obj_name, zone);
63 fprintf(stderr, "Fail to get_property_all_with_zone(): %s, %d\n", obj_name, zone);
67 s = g_variant_print(ret, TRUE);
72 amb_release_property_all_with_zone(ret);
75 static void test_set_property(const char *obj_name, const char *prop_name, int zone, GVariant *value)
81 fprintf(stdout, "== %s ==\n", __func__);
83 if (amb_set_property(obj_name, prop_name, zone, value) != 0) {
84 fprintf(stderr, "Fail to set_property()\nn");
88 r = amb_get_property_all_with_zone(&ret, obj_name, zone);
90 fprintf(stderr, "Fail to get_property_all_with_zone(): %s, %d\n", obj_name, zone);
94 s = g_variant_print(ret, TRUE);
98 amb_release_property_all_with_zone(ret);
101 static void signal_handler(const gchar *objname, gpointer data)
104 GVariant *gdata = (GVariant *)data;
109 s = g_variant_print(gdata, TRUE);
110 g_print("== signal_handler: %s\n", objname);
116 static gboolean timer_callback(gpointer d)
119 gchar *objname = (gchar *)d;
121 fprintf(stderr, "Enter %s(): %s\n", __func__, objname);
123 rc = amb_unregister_property_changed_handler(objname, 0);
125 fprintf(stderr, "Fail to amb_unregister_property_changed_handler(): %s\n", objname);
131 void test_signal_listen(gchar *objname, ZoneType zone)
136 rc = amb_register_property_changed_handler(objname, zone, (AMB_PROPERTY_CHANGED_CALLBACK)signal_handler);
138 fprintf(stderr, "Fail to amb_register_property_changed_handler(): %s\n", objname);
142 g_timeout_add_seconds(10, timer_callback, objname);
144 loop = g_main_loop_new(NULL, FALSE);
145 g_main_loop_run(loop);
147 g_main_loop_unref(loop);
150 static void VehicleOdometer_handler(const gchar *objname, gpointer data)
152 struct VehicleOdometerType retdata;
157 amb_convert_VehicleOdometerType(data, &retdata);
159 fprintf(stderr, " == VehicleOdometer ==\n");
160 fprintf(stderr, " Zone: %d\n", retdata.Zone);
161 fprintf(stderr, " Value: %d\n", retdata.Value);
162 fprintf(stderr, " ValueSequence: %d\n", retdata.ValueSequence);
163 fprintf(stderr, " Time: %f\n", retdata.Time);
166 static void test_VehicleOdometer_listen()
171 rc = amb_register_property_changed_handler("VehicleOdometer", 0,
172 (AMB_PROPERTY_CHANGED_CALLBACK)VehicleOdometer_handler);
174 fprintf(stderr, "Fail to amb_register_property_changed_handler(): %s\n", "VehicleOdometer");
178 g_timeout_add_seconds(10, timer_callback, "VehicleOdometer");
180 loop = g_main_loop_new(NULL, FALSE);
181 g_main_loop_run(loop);
183 g_main_loop_unref(loop);
186 static void test_samsungcan_GearboxPosition()
188 struct GearboxPositionDisplayType *p;
189 int ret = amb_get_GearboxPositionDisplay_with_zone(&p, None);
191 fprintf(stderr, "Fail to %s\n", __func__);
195 fprintf(stderr, " == GearboxPosition ==\n");
196 fprintf(stderr, " Time: %f\n", p->Time);
197 fprintf(stderr, " Zone: %d\n", p->Zone);
198 fprintf(stderr, " ValueSequence: %d\n", p->ValueSequence);
199 fprintf(stderr, " Value: ");
202 fprintf(stderr, "PARKING\n");
205 fprintf(stderr, "DRIVE\n");
208 fprintf(stderr, "NEUTRAL\n");
211 fprintf(stderr, "REVERSE\n");
214 fprintf(stderr, "%u (Error)\n", p->Value);
222 static void test_samsungcan_VehicleSpeed()
224 struct VehicleSpeedType *p;
225 int ret = amb_get_VehicleSpeed_with_zone(&p, None);
227 fprintf(stderr, "Fail to %s\n", __func__);
230 fprintf(stderr, " == VehicleSpeed ==\n");
231 fprintf(stderr, " Zone: %d\n", p->Zone);
232 fprintf(stderr, " Value: %d\n", p->Value);
233 fprintf(stderr, " ValueSequence: %d\n", p->ValueSequence);
234 fprintf(stderr, " Time: %f\n", p->Time);
240 static void test_samsungcan_VehicleOdometer()
242 struct VehicleOdometerType *p;
243 int ret = amb_get_VehicleOdometer_with_zone(&p, None);
245 fprintf(stderr, "Fail to %s\n", __func__);
248 fprintf(stderr, " == VehicleOdometer ==\n");
249 fprintf(stderr, " Zone: %d\n", p->Zone);
250 fprintf(stderr, " Value: %d\n", p->Value);
251 fprintf(stderr, " ValueSequence: %d\n", p->ValueSequence);
252 fprintf(stderr, " Time: %f\n", p->Time);
260 test_get_object_list();
262 test_samsungcan_VehicleOdometer();
263 test_samsungcan_VehicleSpeed();
264 test_samsungcan_GearboxPosition();
266 test_VehicleOdometer_listen();
268 #ifdef EXAMPLE_PLUGIN
269 test_get_property_all("ClimateControl");
270 test_get_property_all("VehicleSpeed");
272 test_get_property_all_with_zone("ClimateControl", 5);
274 test_set_property("ClimateControl", "AirConditioning", 5, g_variant_new("b", TRUE));
276 test_signal_listen("VehicleSpeed", 0);
278 test_samsungcan_GearboxPosition();