Programmers Guide

This is the page where I will try and do the programmers guide to SymBtELM and the ELM.



svn co symbtelm

Structure of SymBtElm


  • a wrapper for SIS to allow start of symbtelm
  • symbtelm: directory for symbtelm files
      • contains creation of classes:
        • Application: from, the GUI
        • SymElmObd?: to access Bt Elm and Obd communication: keep Symbian code here
    • the main I/O, no symbian code
    • GUI base, symbian code
    • contains "dialogs" to the program that are Symbian so that easier porting is possible.
    • others ...

Debuging with Bluetooth console on Symbian

Start the bluetooth console so one can see problems on the PC (use putty which listens to a BT com port)

import sys
from symbtelm import *
app = MyApp()

And now the application is running on the Symbian Nokia with debug to putty ...

Creating the SIS

It is not at all hard to create the SIS installation package, here is an example:

C:\Python25>python.exe py2sis --version=1.0.38 --textfile=symbtelm\trunk\symbtelm\sis.txt --appname=SymBtElm --caps="LocalServices" symbtelm\trunk warning: no UID given, using auto-generated test-range UID 0xe99fe305 warning: no certificate given, using insecure built-in one

NOTE: there is an option called heap size. Currently, on 1.9.2, it needs to be set to 2M/2M to avoid memory error


Well it's possible: so I'm doing it as it speeds up developement.

Of course, there are small problems, but now SymBtElm is multi-platform :)


For Windows ( or get the Bundle which contains these and other tools I use):

  • python25
  • wxPython
  • pySerial for serial communication
    • pywin32 extensions on Windows to support pySerial on Windows


On Mac, things look like they are already there:

Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>> import serial


Currently using Ubuntu ... Work in progress