You Are Here:

Community: Blogs

Open Source Bluetooth PAN's Forum Nokia Blog

PAN service advertise

Carbider | 28 May, 2008 14:47


It is interesting the PAN (Bluetooth Personal Area Networking) profile is listed at Symbian 9.2 abilities.
The PAN overview is here:
...symbian.com/developer/techlib/v9.2docs/...

And a small API mention is here:
...symbian.com/developer/techlib/v9.2docs/...

Despite the fact that there is no completely ready PAN API in S60 3rd there are some type definitions and constants related to the deal. They are defined at btsdp.h header file here:
...symbian.com/developer/techlib/v9.2docs/...

Here are some constants that seem to be tempting for my Bluetooth inquisitive mind:

Listing - 1
/** PAN Service Class UUID */
static const TInt KPanUUUID = 0x1115;
/** PAN NAP Service Class UUID */
static const TInt KPanNapUUID = 0x1116;
/** PAN GN Service Class UUID */
static const TInt KPanGnUUID = 0x1117;


These values represent identifiers of Bluetooth(c) services that could be advertised by device.

There is a Chat example that advertises the Serial Port service. I decided to try one's luck with PAN.

const TInt KServiceClass = 0x1101;    //  SerialPort

Chat example supplies the service's identifier constant by returning this value from function below:

Listing - 2
TInt CChatServiceAdvertiser::ServiceClass()
{
    return KServiceClass;
}

The KServiceClass constant is assigned to '0x1101' by default. I've changed the function to this manner:

Listing - 3
TInt CChatServiceAdvertiser::ServiceClass(TInt aAttemptNumber)
{
    switch(aAttemptNumber) {
     case 0 :
        return 0x1115; // PAN
        break;
     case 1 :
     return 0x1116; // PAN NAP
     break;
     case 2 :
     return 0x1117; // PAN GN
     break;
    }
}


This gives me a possibility to supply the AttemptNumber parameter to the function - so to test all 3 service classes by turns.

In the similar manner I had rewritten the function that returns the service's symbolic name.

Listing - 4
const TDesC& CChatServiceAdvertiser::ServiceName(TInt aAttemptNumber)
{
 switch(aAttemptNumber) {
 
  case 0 :
     return _L("PAN"    );  //  PAN
     break;
  case 1 :
     return _L("PAN NAP");  //  PAN NAP
     break;
  case 2 :
     return _L("PAN GN" );  //  PAN GN
     break;
 
     
 }
}

Each time I've started the chat server I’ve outputted the qualifying message in this way:

iLog.LogL( _L("Attempt#"), iAttemptNumber );


After building the application under Phone release (GCCE) I had signed it myself and sent to my device.

As a Contributor of the Month I have got one. It's a Nokia N95 8GB.
With that one I can test a lot. It really helps in development. And also that multimedia computer is cool one ;)

Then I started the app on the phone and turned on the PAN search service on the WinXP SP2 machine.
However after all three service classes were advertised one by one, the XP machine did not detect any.

 
 

Rate This

 
 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZidentifierQSxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fblogE2fpaulE2dcoultonsE2dforumE2dnokiaE2dblogE2farchivesE2f2009E2f04E2fX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZBlogContentQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qfnZtypeQUqfntypeZBlogContentQ qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZBlogContentQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ