Gå til innhold

bluetooth programering socket


Anbefalte innlegg

Hei, jeg skulle gjerne hatt litt hjelp til og lage en kode som lette etter blåtann enheter og viste de til meg i commando vinduet. Har forstått at jeg må bruke sockets i c++ og der er jeg ikke så stødig, har vært i MSDN:

 

http://msdn2.microsoft.com/en-us/library/ms740148.aspx

http://msdn2.microsoft.com/en-us/library/ms887909.aspx

 

Og funnet litt av hvert, men er usikker på hvordan jeg skal bruke dette...

Hvis noen kunne forklart meg dette hadde jeg blitt utrolig glad. Takk for hjelpen. :)

Lenke til kommentar
Videoannonse
Annonse

Jeg ville nok ikke valgt winsock til å finne utstyr, men til å sende og mota data.

 

Windows har et eget API for BT som holder til å finnen utstyr og informasjon om utstyret.

 

windows BT api

Bluetooth Functions

 

Disse burde du ser nøye på

BluetoothFindFirstRadio,

BluetoothFindNextRadio,

BluetoothFindRadioClose

 

BLUETOOTH_DEVICE_INFO

 

koden under et ikke tester og ikke engang testet for syntaks feil (mangler headeren), men det burde gi det et veldig godt utgangspunk.

 

alt du trenger burde være der, men du må bare skjekke for småfeil og lignende

 

kode

Klikk for å se/fjerne innholdet nedenfor
header

#pragma once
#include "windows.h"
#include "BluetoothAPIs.h"
#include <list>

class CBT_Finder
{
public:
CBT_Finder(void);
~CBT_Finder(void);
void QueryDevices();
std::list <HANDLE*> Radios;

};

source

#include "BT_Finder.h"

CBT_Finder::CBT_Finder(void)
{
}

CBT_Finder::~CBT_Finder(void)
{
}

void CBT_Finder::QueryDevices()
{
BLUETOOTH_FIND_RADIO_PARAMS RadioParam;
RadioParam.dwSize = sizeof(BLUETOOTH_FIND_RADIO_PARAMS);

BLUETOOTH_FIND_RADIO_PARAMS* FindParam;

HANDLE* hRadio;
returnParam = BluetoothFindFirstRadio(&RadioParam, hRadio);


BOOL MoreDevices;
do
{
 Radios.push_back(hRadio);


MoreDevices = BluetoothFindNextRadio(returnParam,hRadio);

returnParam
}while (MoreDevices == TRUE);

BluetoothFindRadioClose(FindParam);

for(std::list <HANDLE*>::iterator i = Radios.begin(); i != Radios.end(); i++ )
{
 BLUETOOTH_DEVICE_INFO RadioData;
 BluetoothGetDeviceInfo(*i,&RadioData);
 printf("%s",RadioData->szName);
}
}

 

lykke til

Lenke til kommentar

Koden din funket ikke noe særlig så jeg har brukt den som en oversikt hvordan jeg kan gjøre det og slikt. Det kom en del feilmelinger som feil plasseringer og slikt men det ble fikset. Ellers så har jeg prøvd og programere det med socket noe som ikke er så lett.

 

Men koden du la opp har hjulpet en del og tusen takk for det. :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...