Join Now

Attempt to create a CSY module

Carbider | 10 January, 2008 14:55

So yes.
I've stand on the way of creating my own CSY module.

It is some kind of a reckless scheme for me. I have no any assurance it will help me in my researches. Furthermore, the web-search on "create custom CSY module" brings me back to my own blog post about serial protocols. Cool.
I call this adventure as a crazy attempt because it demands to throw together a lot of components without strong hope it will bring to essential result.

But the rays of hope are:

1. When creating new IAP, one of the Data Base fields is: "MODEM_CSY_NAME".
Some previous adventurers used it to set as "BTCOMM". Hmm good.
2. It is possible to create new serial modules. How? The search returns me back to my posts. The discussion boards speak only about connecting to modules.
3. There is a framework on Symbian OS called "Ecom". Ecom provides interaction between clients and polymorphic DLLs, which CSY modules, at my sight, are.

The Ecom's (symbian.com/../v9.2docs/../EcomArch) so-called plug-ins are polymorphic DLLs. Those DLLs provide the interface, the implementation and the factory functions (which instantiate concrete classes).

As it is said here, Serial protocol modules also have Service providers (interface implementations), Protocol Factories (that are called to instantiate serial service provider) as well.

Looks pretty familiar to understand the serial modules are finally polymorphic DLLs too.

Thus let’s try to accommodate my own DLL instead of BTCOMM.CSY.

By these conditions I've imported the Ecom example from SDK to launch and explore.
The example is situated in SDK folder:
/Symbian/9.2/S60_3rd_FP1/Examples/SysLibs/ECom/

and has 3 sub-folders:
-» InterfaceClient
-» InterfaceDefinition
-» InterfaceImplementation

After unsuccessful build I’ve noticed the given project depends on extra sources at the 'examples' folder.
It was 'CommonFramework' situated at '/Symbian/9.2/S60_3rd_FP1/Examples/'.

So I’ve copied entire 'CommonFramework' inside ‘Ecom’ and modified some paths.

In '/InterfaceClient/InterfaceClient.mmp'
USERINCLUDE   ../..CommonFramework
to
USERINCLUDE   ../CommonFramework

The familiar change at file: 'Ecom/.cdtproject'

So to be exact with my creepy idea we need:
-» Create new IAP,
-» Go to CommDB database and change this IAP record field 'MODEM_CSY_NAME' to newly-fledged polymorphic DLL.
-» See if there is any way DLL can be launched after user picks hackneyed IAP.
-» Maybe to rename DLL to CSY as well.
-» Of course, the final goal is that DLL to start working as serial module plug-in.

Besides there is work to divine the appropriate entry point to serial module DLL.

Meanwhile the project was built successfully and I've got two DLLs as a result.
The 'ExampleResolver.dll' and the 'EComExample.dll'.
As expected, they are not extension ".csy" provided.
The 'ExampleResolver.dll' is an Interface Definition.
The 'EComExample.dll' is an Interface Implementation.

Putting their names to CommDB records didn’t bring any results.
Even giving them 'csy' extension wouldn't help.

Being on this stage I'm still wondering if anybody knows:
1. How to write a proper CSY module.
2. How to create a Bluetooth Access Point. Which tables and rows of CommDB should be affected for this purpose.

I'll appreciate any comments on this subjects.

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.

 

 
 
Powered by LifeType