help on a{sv} passing by dbus-glib
Yi Hui Fan
yihuifan at cn.ibm.com
Wed Mar 23 01:53:58 PDT 2011
Dears
I made a sample program to call methods published by bluez. Here is the
api description.
object CreateApplication(dict config)
Returns the path of the new registered application.
Dict is defined as bellow:
{
"DataType": uint16, (mandatory)
"Role" : ("Source" or "Sink"), (mandatory)
"Description" : string, (optional)
"ChannelType" : ("Reliable" or "Streaming")
(just for Sources,
optional)
}
Application will be closed by the call or implicitly when
the
programs leaves the bus.
Possible errors: org.bluez.Error.InvalidArguments
Now, I create a sample by using dbus-glib as following, I get an error
message.
Caught remote method exception org.bluez.Error.InvalidArguments: Invalid
arguments in method call
Maybe it's a problem about send a{sv} data as parameters of method call.
Is there any one help me to resolve the problem?
here is the code:
dbus_g_proxy_call(proxy, "CreateApplication", &err,
get_hdp_properties_type(), create_hdp_properties,
G_TYPE_INVALID,
G_TYPE_STRING, &app_path, G_TYPE_INVALID)
GHashTable *create_hdp_properties()
{
GHashTable *hash;
GValue *val;
//GVariant *val_data_type, *val_role;
hash = g_hash_table_new_full(g_str_hash, NULL, NULL, release_val);
val = g_new0(GValue, 1);
g_value_init (val, G_TYPE_UINT);
g_value_set_uint(val, 4100);
g_hash_table_insert(hash, "DataType", val);
/*
val_data_type = g_variant_new_uint32(4100);
g_hash_table_insert(hash, "DataType", val_data_type);
*/
val = g_new0(GValue, 1);
g_value_init(val, G_TYPE_STRING);
g_value_set_string(val, "Sink");
g_hash_table_insert(hash, "Role", val);
/*
val_role = g_variant_new_string("Sink");
g_hash_table_insert(hash, "Role", val_role);
*/
return hash;
}
GType get_hdp_properties_type()
{
return dbus_g_type_get_map("GHashTable", G_TYPE_STRING,
G_TYPE_VALUE);
}
Thanks &
Best regards,
Yihui,Fan (范益辉)
Associate IT Architect
Healthcare Standards
Emerging Technology Institute(ETI)
IBM China Software Development Lab
Tel: (8610) 82454982 | Fax: (8610) 82453600
Mobile: 86-13911564003| Email: yihuifan at cn.ibm.com
Address: Tower B, Diamond Building, Zhongguancun Software Park, Haidian
District, Beijing 100193, P.R.China
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dbus/attachments/20110323/01177455/attachment.htm>
More information about the dbus
mailing list