Bluetooth -yhteydet ohjelmoinnissa ?

Bluetooth -sovellus?

Mitenkähän käytännössä sujuu bluetooth -yhteyden luonti ja käyttö omatekoisessa ohjelmassa ?

Kokeilin esim. tätä:

http://people.csail.mit.edu/albert/bluez-intro/c404.html

Tuo esimerkkiohjelma tosiaan listaa ympäristössä olevat bluetooth -laitteet, eli näyttää jokaiselle 48 -bittisen koodin (vastaava kuin verkkokorttien MAC -osoite, joka on myös 48 -bittinen), sekä kullekin laitteelle myös ns. selväkielinen nimi (tämän voi usein asettaa itse laitteesta.

Mutta sitten, kun olisi tarkoitus luoda toimiva bluetooth -yhteys, niin tuota ei saakaan ihan helposti toimimaan!

Kokeilin fedorassa olevaa valmisohjelmaa rfcomm bluetooth -yhteyden luontiin, vastaparina Sony Ericsson K600i, jossa bluetooth kytketty päälle ja julkiseksi (ko. puhelimessa on myös vaihtoehto sille, että bluetooth on toiminnassa, mutta puhelin on piilotettu, eli näkyy vain niille laitteille, jotka on etukäteen hyväksytty ko. puhelimen pariksi).

K600i toi näytölle tällaisen "tuntematon laite yrittää ottaa bluetooth -yhteyttä. Hyväksy / hylkää ?".

Valitettavasti en löytänyt keinoa, jolla rfcomm saataisiin ilmoittamaan itse asettamani laitenimi bluetoothin kautta puhelimelle, jotta puhelin näyttäisi kyselyssään itse asettamani laitenimen tuon "tuntematon laite" -sijaan.

Ja vaikka tuon hyväksyisi, en silti saanut yhteyttä syntymään.

No, tuo rfcomm oli lähinnä kokeilu, joka osoittaa, että yhteyden fyysinen puoli on ilmeisesti kunnossa, vaikka en silti saanutkaan toimivaa yhteyttä syntymään.

Tuon lisäksi siis olen kokeillut myös lähdekoodista kääntämiäni:

hcitool.c
simplescan.c

mutta vaikka simplescan näyttää puhelimen nimen ja 48 -bittisen koodin, muuta se ei sitten osaakaan tehdä.

hcitool.c en saanut edes kääntymään:

hcitool.c:46:22: vakava virhe: textfile.h: Tiedostoa tai hakemistoa ei ole
compilation terminated.

tuota simplescan.c vastaavan toiminnallisuuden sain rakennettua itse myös freepascal lazarus -yhdistelmällä.

Mutta lazarukseen tuleva bluetooth -paketti on hieman outo, siellä on joku wiimote -niminen systeemi !? Olisiko ko. paketin tekijä halunnut yhteyden bluetooth -Nintendo Wiihin ?

wiimote -modulin lähdekoodia tutkimalla ja siitä kopioimalla sain tosiaan myös freepascal -ohjelmasta bluetooth -laitteet listatuksi, mutta yhteydenotto ei olekaan ihan niin helppo.

Yhteys ilmeisesti luodaan funktiolla hci_create_connection(...)

Mutta löytyykö jostain ymmärrettävässä muodossa selitys siitä, mitä parametreja tuolle hci_create_connection(...) -funktiolle tulee antaa, jotta yhteys saataisiin muodostumaan ?

Ilmeisesti, jos funktiolle osaisi antaa oikeat parametrit, niin yhteys muodostuisi, ja sen jälkeen funktion palauttamaa arvoa voisi kohdella kuten socket -kahvaa, eli siitä eteepäin ohjelmointi sujuisi samoin kuin esim tcp -sockettien yhteydessä on totuttu.

Jotain dokumenttia löytyy täältä:

http://people.csail.mit.edu/albert/bluez-intro/

mutta tuolla olevasta dokumentoinnnista en saanut selvää, mitä parametreja

hci_create_connection(...) -funktiolle tulee antaa.

Ilmeisesti ainakin nämä tiedot tulisi oikeassa muodossa antaa:

1. 48 -bittinen laiteosoite bluetooth -laitteelle, johon yhteys halutaan ottaa.
2. se laitenimi, joka halutaan näkyvän laitteelle, johon yhteys halutaan ottaa. esim. "oma tietokone (tuotemerkki ja malli)".

3. bluetooth -turvakoodi "pin" (laitoin sulkuihin, koska kyseessä on eri PIN -koodi kuin esim. SIM -kortin PIN.) Ideana siis se, että puhelimelle voi ilmeisesti määrittää bluetooth pin -koodin, ja jos se on määritetty, tulee tietokoneelta tulevassa bluetooth -yhtedenottopyynnössä olla sama pin kuin puhelimeen on määritetty, muuten yhteys epäonnistuu (turvallisuussyistä).

AConn := hci_create_connection(device_sock, @scan_info[i].bdaddr, ...

tuossa on nyt 2 ensimmäistä parametria ilmeisesti oikein.

Mutta hci_create_connection on freepascal / lazarus -yhdistelmässä määritelty näin:

function hci_create_connection(

dd: cint;
bdaddr: Pbdaddr_t;
ptype: cuint16;
clkoffset: cuint16;
rswitch: cuint8;
handle: pcuint16;
to_: cint

): cint; cdecl; external;

Eli yhteensä 7 parametria, joista 2 ensimmäistä uskon ymmärtäneeni oikein. Mutta mitä noihin loppuihin 5:een laitetaan ?

0

128

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000

      Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

      Luetuimmat keskustelut

      1. Valkeakosken 15-v tapauksessa ihmettelen ??

        On sääli, että pahoja ihmisiä liikkuu aina vapaana eri puolilla Suomea, mutta minkä ihmeen takia 15-vuotiaan nuoren täyt
        Maailman menoa
        622
        19045
      2. Valkeakosken tappo

        "Tyttö löytyi poliisin mukaan kuolleena läheisestä metsästä muutaman sadan metrin päässä kotoaan. Uhrin löysivät hänen k
        Henkirikokset
        69
        15970
      3. Nyt ahdistaa

        Joku nuori tyttö on surmattu Valkeakoskella. En tunne ihmistä, mutta silti se koskettaa. Uutisissa oli hiljattain, että
        Valkeakoski
        394
        9509
      4. Kuka oli tekijä?

        Jos tekijä oli suomalainen, onko hänen vanhempiaan jo tavoitettu? Mitä mieltä ovat aikamiespoikansa teosta? Entä puoliso
        Valkeakoski
        83
        6665
      5. 15-vuotiaan ruumis valkeakoskella

        Nuoria tyttöjä tappavat miessaalistajat ja toiset nuoret. Miessaalistajille ruumiin kätkeminen tai tuhoaminen ei ole on
        Poliisi
        19
        4934
      6. Valkeakosken murhaaja-raiskaaja on kantasuomalainen mies tiedottaa poliisi

        Some- ja palstapersut ehtivät jo moneen kertaan julistaa tekijän maahanmuuttajaksi. Miten meni niin kuin omasta mielestä
        Maailman menoa
        209
        3921
      7. Kantasuomalainen mies pidätetty - ulkomaalaiset syyttömiä tekoon

        Verityöstä on pidätetty vuonna 2005 syntynyt mieshenkilö. Ulkomaalaisilla ei mitään yhteyttä tekoon.
        Valkeakoski
        127
        2202
      8. Mitä hänellä oli päällään kun viimeksi näit hänet?

        Avoimia vastauksia saa kirjoitella... Ehkä joku saattaa tunnistaa itsensä kommenttien joukosta :)
        Ikävä
        62
        1475
      9. Meidän tarinako on ohi?

        Ootko niin päättänyt?
        Ikävä
        110
        1430
      10. Miksi kaupunki toivoo nuorilta malttia?

        https://www.hs.fi/suomi/art-2000010453236.html "Älkää suunnitelko kostoa" Mistä on kyse? ”Toivomme, että nuorten taho
        Valkeakoski
        41
        1287
      Aihe