Join Now

Reset S60-3rd emulator defaults

Carbider | 23 January, 2008 10:35

 

While pushing more and more Internet Access Points on the emulator, the CommDB database appeared to malfunction.

First of all, when deleted temporary IAP, some others have disappeared too.
Next, when creating new entry, those which were gone can suddenly appear.
In conclusion, after system attempts to retrieve connection data, it returns “General error -19” and “General error -20”

Undoubtedly the reason was in wrong DB’s records manipulation. During debug, some tables could be filled in, while the rest are untouched if the debug is stopped.

While searching for a method to reset the CommDB on emulator I’ve looked through an amount of posts and articles:

symbian-freak.com/...
newlc.com/topic-7653
developer.sonyericsson.com/...
discussion.forum.nokia.com/...
simplysymbian.com/...

One can reset a real phone softly by combination: #*7870#
And hardly (full) by combination: #*7370#
Also one can go to main menu, select settings, general, factory settings.

After all this methods fail to function at win emulator, I was ready (with a heavy heart) to reinstall the SDK.

Mine is S60 3rd FP1 (Symbian 9.2).

But fortunately I’ve remembered that I have a backup copy of “Epoc32” folder stored when migrated from one machine to another. From one of the articles above I’ve learned that someone have installed the SDK to a different folder, then replaced old “Ecpoc32” with the fresh one.

So did I with backup’ed one.

With a sinking heart I was waiting while the emulator is starting again. After that I’ve unexpectedly found out former “cold” blue theme.

That was good. Emulator can start.


All previously installed apps were not there. But CommDB database works fine now and the whole behavior is quite adequate.

 

Lost in the dark

Carbider | 21 February, 2008 12:32

As you know, I've worked a lot to figure out a way of how to realize the BNEP protocol on Symbian platform.

The simple idea of catching and processing all the TCP stream with help of IP hook is impossible until purchase non-publick API.
Also, the idea to create a networking interface or serial protocol modules (this blog entries:attempt-to-create-a-csy-module, serial-protocol-modules, symbian-networking-interface) failed to due to lack of examples.

Now, I'm moving like in a dark. And can't find a way to realize the BNEP.
Boss said me to try for 2 more weeks, to find out.
I do not see much sense if this blog ends with purchasing a non-publick API.

If anyone can provide an idea, let me know.

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.

«Previous   1 2 3 4 5 6 7
 
 
Powered by LifeType