Want to help with LG Cosmos

View: New views
5 Messages — Rating Filter:   Alert me  

Want to help with LG Cosmos

by Runner Dev :: Rate this Message:

| View Threaded | Show Only this Message

Hi,

I've used BitPim for several years with my LG VX8300.  I recently bought an LG Comsos that does not appear to be compatible with BitPim.  I've searched around and I couldn't find any information about work on this phone model.  I'm interested in helping to contribute to make this phone work and am looking for pointers on getting starting with the contribution process.  My development experience is mainly with client-side Java (14 years).  I've installed all of the components described on the BitPim developer page, as well as the Pydev.

Thanks,
-Ryan

------------------------------------------------------------------------------


_______________________________________________
BitPim-devel mailing list
BitPim-devel@...
https://lists.sourceforge.net/lists/listinfo/bitpim-devel

Re: [bitpim-devel] want to help with lg cosmos

by Nathan Hjelm-2 :: Rate this Message:

| View Threaded | Show Only this Message

To get started follow this link: http://www.bitpim.org/developerhtml

Once the development environment is set up I recommend taking a look at com_lgvx11000.py and p_lgvx11000.p . You will probably want to subclass com_lgvx11000. If you need any help let me know

Also, I am working on Accolade support which, in all likelihood, is similar to the Cosmos (same generation phone). I will let you know when that is complete.

-Nathan


On May 23, 2010, at 04:35 PM, Runner Dev <runnerdev@...> wrote:

Hi,

I've used BitPim for several years with my LG VX8300.  I recently bought an LG Comsos that does not appear to be compatible with BitPim.  I've searched around and I couldn't find any information about work on this phone model.  I'm interested in helping to contribute to make this phone work and am looking for pointers on getting starting with the contribution process.  My development experience is mainly with client-side Java (14 years).  I've installed all of the components described on the BitPim developer page, as well as the Pydev.

Thanks,
-Ryan
------------------------------------------------------------------------------

_______________________________________________
BitPim-devel mailing list
BitPim-devel@...
https://lists.sourceforge.net/lists/listinfo/bitpim-devel

------------------------------------------------------------------------------


_______________________________________________
BitPim-devel mailing list
BitPim-devel@...
https://lists.sourceforge.net/lists/listinfo/bitpim-devel

Re: [bitpim-devel] want to help with lg cosmos

by Seth Randall-2 :: Rate this Message:

| View Threaded | Show Only this Message

Nathan,
I've attached some preliminary support for the Accolade (VX5600) that I
was able to use for my address book. I haven't gotten SMS working yet
though.

I haven't had time to work on it, but I figure I might as well make it
available for someone else to look at.

On 05/24/2010 10:29 AM, hjelmn wrote:

> To get started follow this link: http://www.bitpim.org/developerhtml
>
> Once the development environment is set up I recommend taking a look at
> com_lgvx11000.py and p_lgvx11000.p . You will probably want to subclass
> com_lgvx11000. If you need any help let me know
>
> Also, I am working on Accolade support which, in all likelihood, is
> similar to the Cosmos (same generation phone). I will let you know when
> that is complete.
>
> -Nathan

[com_lgvx5600.py]

#!/usr/bin/env python

### BITPIM
###
### Copyright (C) 2007-2008 Nathan Hjelm <hjelmn@...>
###
### This program is free software; you can redistribute it and/or modify
### it under the terms of the BitPim license as detailed in the LICENSE file.
### $Id$


"""
Communicate with the LG VX5600 cell phone.
"""

# BitPim modules
import common
import com_brew
import bpcalendar
import prototypes
import com_lgvx8575
import p_lgvx5600
import p_brew
import helpids
import copy
import time
import os.path
import phonebookentryeditor

DEBUG1=False
#-------------------------------------------------------------------------------
parentphone=com_lgvx8575.Phone
class Phone(parentphone):
    desc="LG-VX5600"
    helpid=None
    protocolclass=p_lgvx5600
    serialsname='lgvx5600'

    my_model='VX5600'

    calendarringerlocation='sch/toolsRinger.dat'

    ringtonelocations= (
        # type           index file             default dir                 external dir  max  type   index
        ( 'ringers',    'dload/myringtone.dat','brew/mod/10889/ringtones', '',            100, 0x01,  100),
        ( 'sounds',     'dload/mysound.dat',   'brew/mod/18067',           '',            100, 0x02,  None),
        ( 'music',      'dload/efs_music.dat', 'my_music',                 '',            100, 0x104, None),
        )

    #add picture ids to list of wallpapers, seems to be new for this phone
    wallpaperlocations= (
        #  type          index file                           default dir         external dir  max  type Index
        ( 'images',     'dload/image.dat',                    'brew/mod/10888',    '',          100, 0x00, 100),
        ( 'video',      'dload/video.dat',                    'brew/mod/10890',    '',          100, 0x03, None),
        ( 'picture ids','set_as_pic_id_dir/setas_pic_id.dat', 'set_as_pic_id_dir', '',          999, 0x00, None),
        )

#-------------------------------------------------------------------------------
parentprofile=com_lgvx8575.Profile
class Profile(parentprofile):
    protocolclass=Phone.protocolclass
    serialsname=Phone.serialsname

    BP_Calendar_Version=3
    phone_manufacturer='LG Electronics Inc'
    phone_model=Phone.my_model

    # inside screen resoluation
    WALLPAPER_WIDTH=176
    WALLPAPER_HEIGHT=220

    imageorigins={}
    imageorigins.update(common.getkv(parentprofile.stockimageorigins, "images"))
    imageorigins.update(common.getkv(parentprofile.stockimageorigins, "video"))

    # our targets are the same for all origins
    imagetargets={}
    imagetargets.update(common.getkv(parentprofile.stockimagetargets, "fullscreen",
                                      {'width': 238, 'height': 246, 'format': "JPEG"}))
    imagetargets.update(common.getkv(parentprofile.stockimagetargets, "wallpaper",
                                      {'width': 240, 'height': 274, 'format': "JPEG"}))
    imagetargets.update(common.getkv(parentprofile.stockimagetargets, "pictureid",
                                      {'width': 120, 'height': 100, 'format': "JPEG"}))

    _supportedsyncs=(
        ('phonebook', 'read', None),  # all phonebook reading
        ('calendar', 'read', None),   # all calendar reading
        ('wallpaper', 'read', None),  # all wallpaper reading
        ('ringtone', 'read', None),   # all ringtone reading
        ('call_history', 'read', None),# all call history list reading
        ('sms', 'read', None),         # all SMS list reading
        ('memo', 'read', None),        # all memo list reading
        ('phonebook', 'write', 'OVERWRITE'),  # only overwriting phonebook
        ('calendar', 'write', 'OVERWRITE'),   # only overwriting calendar
        ('wallpaper', 'write', 'MERGE'),      # merge and overwrite wallpaper
        ('wallpaper', 'write', 'OVERWRITE'),
        ('ringtone', 'write', 'MERGE'),      # merge and overwrite ringtone
        ('ringtone', 'write', 'OVERWRITE'),
        ('sms', 'write', 'OVERWRITE'),        # all SMS list writing
        ('memo', 'write', 'OVERWRITE'),       # all memo list writing
        ('t9_udb', 'write', 'OVERWRITE'),
        )
    if __debug__:
        _supportedsyncs+=(
        ('t9_udb', 'read', 'OVERWRITE'),
        )

    field_color_data={
    'phonebook': {
        'name': {
            'first': False, 'middle': False, 'last': False, 'full': 1,
            'nickname': False, 'details': 1 },
        'number': {
            'type': 5, 'speeddial': 5, 'number': 5,
            'ringtone': False, 'wallpaper': False, 'details': 5 },
        'email': 2,
        'email_details': {
            'emailspeeddial': False, 'emailringtone': False,
            'emailwallpaper': False },
        'address': {
            'type': False, 'company': False, 'street': 1, 'street2': False,
            'city': 1, 'state': 1, 'postalcode': 1, 'country': 1, 'details': 1 },
        'url': 0,
        'memo': 0,
        'category': 1,
        'wallpaper': 1,
        'group_wallpaper': 1,
        #'wallpaper_type': False,
        'ringtone': 1,
        'storage': False,
        'secret': False,
        'ICE': 1,
        'Favorite': 1,
        },
    'calendar': {
        'description': True, 'location': False, 'allday': False,
        'start': True, 'end': True, 'priority': False,
        'alarm': True, 'vibrate': True,
        'repeat': True,
        'memo': False,
        'category': False,
        'wallpaper': False,
        'ringtone': True,
        },
    'memo': {
        'subject': False,
        'date': True,
        'secret': False,
        'category': False,
        'memo': True,
        },
    'todo': {
        'summary': False,
        'status': False,
        'due_date': False,
        'percent_complete': False,
        'completion_date': False,
        'private': False,
        'priority': False,
        'category': False,
        'memo': False,
        },
    }        
 


[p_lgvx5600.p]

### ( -*- Python -*- )
### Copyright (C) 2007-2008 Nathan Hjelm <hjelmn@...>
###
### This program is free software; you can redistribute it and/or modify
### it under the terms of the BitPim license as detailed in the LICENSE file.
###
### $Id$

%{

"""Various descriptions of data specific to LG VX5600"""

from p_lgvx8575 import *
%}

# /pim/pbentry.dat format
PACKET pbfileentry:
    5   STRING { 'raiseonunterminatedread': False, 'raiseontruncate': False, 'default': '\xff\xff\xff\xff\xff' } +entry_tag
    if self.entry_tag==PB_ENTRY_SOR:
       1   UINT { 'default': 0xff } +unk0
       * PBDateTime { 'defaulttocurrenttime': True } +mod_date
       6   STRING { 'terminator': None, 'default': '\xff\xff\xff\xff\xff\xff' } +unk1
       4   UINT entry_number1 # 1 based entry number -- might be just 2 bytes long
       2   UINT entry_number0 # 0 based entry number
       34  USTRING { 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False} +name
       *  LIST {'length': NUMGROUPS } +groups:
           2 UINT { 'default': 0 } +gid
       *  LIST {'length': NUMEMAILS} +emails:
          49 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'default': ''} email
       2   UINT { 'default': 0xffff } +ringtone
       2   UINT { 'default': 0 } +wallpaper
       * LIST {'length': NUMPHONENUMBERS} +numbertypes:
          1 UINT { 'default': 0 } numbertype
       4  UINT { 'default': 0 } +unk2
       31 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'default': ''} +memo
       * LIST {'length': NUMPHONENUMBERS} +numberindices:
          2 UINT { 'default': 0xffff } numberindex
       2 UINT { 'default': 0xffff } +addressindex
       2 UINT { 'default': 0xffff } +unk3
       2 UINT { 'default': 0xffff } +imindex
       224 DATA { 'default': '\x00'*224 } +reserved
       6   USTRING { 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False, 'default': '</PE>'} +exit_tag
    else:
        # this is a blank entry, fill it up with 0xFF
        507 DATA { 'default': '\xff'*507 } +dontcare
    %{
    def valid(self):
        global PB_ENTRY_SOR
        return self.entry_tag==PB_ENTRY_SOR and \
               (self.name and ord(self.name[0]) != 0xff)
    %}

PACKET pbfile:
    * LIST { 'elementclass': pbfileentry,
             'length': NUMPHONEBOOKENTRIES,
             'createdefault': True} +items
    6 STRING { 'default': '<HPE>',
               'raiseonunterminatedread': False,
               'raiseontruncate': False } +eof_tag
    10 STRING { 'raiseonunterminatedread': False,
                'raiseontruncate': False } +model_name
    * PBDateTime { 'defaulttocurrenttime': True } +mod_date
    477 DATA   { 'default': '\x00'*477 } + blanks
    7 STRING { 'default': '</HPE>',
               'raiseonunterminatedread': False,
               'raiseontruncate': False  } +eof_close_tag

PACKET pafileentry:
    5   STRING { 'raiseonunterminatedread': False, 'raiseontruncate': False, 'default': '\xff\xff\xff\xff\xff' } +entry_tag
    if self.entry_tag==PA_ENTRY_SOR:
       1   UINT { 'default': 0x00 } +pad0
       *   PBDateTime { 'defaulttocurrenttime': True } +mod_date
       6   UNKNOWN +zeros
       2   UINT    +index
       2   UINT    +pb_entry
       34  USTRING { 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False, 'default': '' } +street
       34  USTRING { 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False, 'default': '' } +city
       34  USTRING { 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False, 'default': '' } +state
       12  USTRING { 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False, 'default': '' } +zip_code
       34  USTRING { 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False, 'default': '' } +country
       74  DATA { 'default': '\x00'*74 } +pad1
       6   USTRING { 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False, 'default': '</PA>'} +exit_tag
    else:
        # this is a blank entry, fill it up with 0xFF
        251 DATA { 'default': '\xff'*251 } +dontcare
    %{
    def valid(self):
        global PA_ENTRY_SOR
        return self.entry_tag==PA_ENTRY_SOR
    %}

PACKET pafile:
    * LIST { 'elementclass': pafileentry,
             'length': NUMPHONEBOOKENTRIES,
             'createdefault': True } +items

# similar to the VX-8575 with a shorter name and shorter number_location
PACKET call:
    4 GPSDATE GPStime    # no. of seconds since 0h 1-6-80, based off local time.
    4 UINT  unk0         # different for each call
    4 UINT  duration     # seconds, not certain about length of this field
    49 USTRING {'raiseonunterminatedread': False} number
    33 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False} name
    1 UINT  numberlength # length of phone number
    1 UINT  status       # 0=outgoing, 1=incoming, 2=missed, etc
    1 UINT  pbnumbertype # 1=cell, 2=home, 3=office, 4=cell2, 5=fax, 6=vmail, 0xFF=not in phone book
    4 UINT  unk1         # always seems to be 0
    2 UINT  pbentrynum   # entry number in phonebook
    75 DATA number_location # set by pay software

# similar to the VX-8575 but with an single unknown before the calls instead of 4
PACKET callhistory:
    4 UINT { 'default': 0x00050000 } unk0
    4 UINT numcalls
    1 UINT { 'default': 0 } unk1
    * LIST { 'elementclass': call, 'length': self.numcalls} +calls


------------------------------------------------------------------------------


_______________________________________________
BitPim-devel mailing list
BitPim-devel@...
https://lists.sourceforge.net/lists/listinfo/bitpim-devel

Re: [bitpim-devel] want to help with lg cosmos

by Runner Dev :: Rate this Message:

| View Threaded | Show Only this Message

Thanks for the info.  I almost have the environment setup.  I'm able to run from Eclipse, however, there are some errors that are showing up in the editor.  I'm guessing something wasn't installed correctly.

I've never developed for phones before.  I was wondering if there is any architectural docs to look at, or is the code it the best bet?  I looked over the lgvx1100 files last night.

Thanks,
-Ryan

On Mon, May 24, 2010 at 12:29 PM, hjelmn <hjelmn@...> wrote:
To get started follow this link: http://www.bitpim.org/developerhtml

Once the development environment is set up I recommend taking a look at com_lgvx11000.py and p_lgvx11000.p . You will probably want to subclass com_lgvx11000. If you need any help let me know

Also, I am working on Accolade support which, in all likelihood, is similar to the Cosmos (same generation phone). I will let you know when that is complete.

-Nathan


On May 23, 2010, at 04:35 PM, Runner Dev <runnerdev@...> wrote:

Hi,

I've used BitPim for several years with my LG VX8300.  I recently bought an LG Comsos that does not appear to be compatible with BitPim.  I've searched around and I couldn't find any information about work on this phone model.  I'm interested in helping to contribute to make this phone work and am looking for pointers on getting starting with the contribution process.  My development experience is mainly with client-side Java (14 years).  I've installed all of the components described on the BitPim developer page, as well as the Pydev.

Thanks,
-Ryan
------------------------------------------------------------------------------

_______________________________________________
BitPim-devel mailing list
BitPim-devel@...
https://lists.sourceforge.net/lists/listinfo/bitpim-devel


------------------------------------------------------------------------------


_______________________________________________
BitPim-devel mailing list
BitPim-devel@...
https://lists.sourceforge.net/lists/listinfo/bitpim-devel

Re: [bitpim-devel] want to help with lg cosmos

by Runner Dev :: Rate this Message:

| View Threaded | Show Only this Message

I think I answered my own question (at least partially).  I'm going over the docs in dev-doc right now.  I'll follow up if I have any further questions after digging in a little more.

-Ryan

On Wed, May 26, 2010 at 9:44 PM, Ryan <runnerdev@...> wrote:
Thanks for the info.  I almost have the environment setup.  I'm able to run from Eclipse, however, there are some errors that are showing up in the editor.  I'm guessing something wasn't installed correctly.

I've never developed for phones before.  I was wondering if there is any architectural docs to look at, or is the code it the best bet?  I looked over the lgvx1100 files last night.

Thanks,
-Ryan


On Mon, May 24, 2010 at 12:29 PM, hjelmn <hjelmn@...> wrote:
To get started follow this link: http://www.bitpim.org/developerhtml

Once the development environment is set up I recommend taking a look at com_lgvx11000.py and p_lgvx11000.p . You will probably want to subclass com_lgvx11000. If you need any help let me know

Also, I am working on Accolade support which, in all likelihood, is similar to the Cosmos (same generation phone). I will let you know when that is complete.

-Nathan


On May 23, 2010, at 04:35 PM, Runner Dev <runnerdev@...> wrote:

Hi,

I've used BitPim for several years with my LG VX8300.  I recently bought an LG Comsos that does not appear to be compatible with BitPim.  I've searched around and I couldn't find any information about work on this phone model.  I'm interested in helping to contribute to make this phone work and am looking for pointers on getting starting with the contribution process.  My development experience is mainly with client-side Java (14 years).  I've installed all of the components described on the BitPim developer page, as well as the Pydev.

Thanks,
-Ryan
------------------------------------------------------------------------------

_______________________________________________
BitPim-devel mailing list
BitPim-devel@...
https://lists.sourceforge.net/lists/listinfo/bitpim-devel



------------------------------------------------------------------------------


_______________________________________________
BitPim-devel mailing list
BitPim-devel@...
https://lists.sourceforge.net/lists/listinfo/bitpim-devel