Hi Santiago, On Mon, Sep 19, 2011 at 11:39 AM, Anderson Lizardo <anderson.lizardo@xxxxxxxxxxxxx> wrote: > Hi, > > On Mon, Sep 19, 2011 at 8:57 AM, Santiago Carot <sancane@xxxxxxxxx> wrote: >>>> static int thermometer_driver_probe(struct btd_device *device, GSList *uuids) >>>> { >>>> - return thermometer_register(connection, device); >>>> + struct att_primary *tattr; >>>> + GSList *l, *primaries; >>>> + >>>> + primaries = btd_device_get_primaries(device); >>>> + >>>> + l = g_slist_find_custom(primaries, HEALTH_THERMOMETER_SVC_UUID, >>>> + primary_uuid_cmp); >>> >>> I think this is incorrect. You should compare against the 128-bit >>> UUID, not the 16-bit one. I.e. use HEALTH_THERMOMETER_UUID here. >> >> Are you sure?. In my tests, the function btd_device_get_primaries only >> gives me 16-bit UUIDs. If I try the 128-bit ones it doesn't work. That >> the reason wich I did this. Do you have any idea for this? > > A bug maybe? See the proximity monitor manager.c, it uses 128-bit > string. Claudio, any comments? > > Regards, > -- > Anderson Lizardo > Instituto Nokia de Tecnologia - INdT > Manaus - Brazil Are you testing over Basic Rate? Looking quickly the code, the function which extract the primary service UUID from the service record doesn't convert the UUIDs to UUUID128 before converting to string. BTW: why are you checking again if the thermometer UUID is in the list? The driver will only be probed if at least one UUID matches. BR, Claudio. -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html