[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [bluetooth-dev] using axis stack for emulation purposes



Hi,  
> Has anybody already used it? Does it work properly? And what 
> does it do
> exactly? 

Currently, it works only for one master and a slave.

> I am working on a research project on bluetooth and 
> I would like to
> have different hosts on a lan emulating a bluetooth piconet. 
> Would it be
> possible to use the stack to do something like this, or I 
> could just emulate
> a single master-slave connection?  Could it be possible to improve the
> software and make it do what I need?
> 

Sure, but then I think you need to separate the hci emulation
code from the stack and make it a standalone app which has a 
number of 'hci_handle ports'. 

If you want to run e.g 7 client (usermode) stacks towards 
one server on one computer to simulate a piconet you can 
start with creating a hci emul app that creates e.g 7 
unix sockets (see below). Each socket interface will act 
similar as the current hci emulation but the hci emul app 
will also keep track of the different connected hci 
handles (if more than one connection) and routes the data 
streams to the corresponding socket.

Later on this could be done dynamically like a real BT module 
e.g you have one server socket where you send a connect request and 
then you get back a hci handle nbr which you then use to open 
e.g hci_emul_xx where xx is the handle number.

> 
> I read in a note that the HCI emulation simply converts some 
> hci commands to
> the corrisponding events and simply forwards all acl/sco 
> data. What does it
> mean exactly? 

If the hci emulator receives a connect request it translates this to
a connect indication event. If it receives a connect response it translates
this to a connect complete event with a fictive hci handle . 
If it receives data it just forwards it.
Look in the code yourself, it is pretty straith forward (hci.c). 

Finally, what does "using a unix socket on one 
> computer" mean?

It is like a UDP/TCP socket but you use it locally to connect
two processes instead of two computers, in short... :) 
Have a look on e.g http://www.ecst.csuchico.edu/~beej/guide/net/

> Thanks a lot.
> 
> Tommaso Melodia
> 

brgds
Mattias

> 
> -
> To unsubscribe from this list: send the line "unsubscribe 
> bluetooth-dev" in
> the body of a message to majordomo@xxxxxxx.com
> 
-
To unsubscribe from this list: send the line "unsubscribe bluetooth-dev" in
the body of a message to majordomo@xxxxxxx.com