Programmers Guide

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

Reference

SVN

svn co https://symbtelm.svn.sourceforge.net/svnroot/symbtelm symbtelm

Structure of SymBtElm

General

  • default.py: a wrapper for SIS to allow start of symbtelm
  • symbtelm: directory for symbtelm files
    • symbtelm.py
      • contains creation of classes:
        • Application: from sym_windows.py, the GUI
        • SymElmObd?: to access Bt Elm and Obd communication: keep Symbian code here
    • obd.py: the main I/O, no symbian code
    • sym_window.py: GUI base, symbian code
    • sym_dialog.py: 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
sys.path.append("e:\python\symbtelm")
from symbtelm import *
app = MyApp()
app.run()

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 ensymble_python2.5-0.28.py py2sis --version=1.0.38 --textfile=symbtelm\trunk\symbtelm\sis.txt --appname=SymBtElm --caps="LocalServices" symbtelm\trunk

ensymble_python2.5-0.28.py: warning: no UID given, using auto-generated test-range UID 0xe99fe305
ensymble_python2.5-0.28.py: 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

Porting

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 :)

Windows

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

Mac

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

Linux

Currently using Ubuntu ... Work in progress

Attachments

Comments