Sanyo Katana II DLX SCP-8500
"Ken Schnell" <[email protected]>
| Newsgroups | gmane.comp.mobile.bitpim.devel |
|---|---|
| Message-ID | <001e01c83256$15557f00$6c0910ac@pilgrim3> |
Here is what I have so far adapted from Stephens work on the Katana II, this
is what I have so far for the Katana DLX SCP-8500, it is not working as of
yet, I think in the code I have added the functions for the Recent Calls
list, but it does not show up in the display as an icon, there are other
issues as well..
I can get the Images from the camera..but that is about it right now.
Many of the features for this phone match the new LG phones - so I still
need to modify it to fit as the LG Vx9000 series has the Video(sd) and Video
settings in the media folder. Still alot of work to do. Any help on these
issues is appreciated!!! I am not a python programmer, nor do I know alot
about the cell phone file system / internal layout..
I would love to see the file system it would help me to interpolate how many
bytes each field in the phonebook has and if there are any "padding" bytes.
I have received the error
20:48:00.858 SCP-8500: Sanyo Error code 121
20:48:00.875 SCP-8500: sanyo phonebook response Data - 20 bytes
00000000 79 fa 00 09 72 00 ff ff 00 00 00 00 00 00 00 00
y...r...........
00000010 00 7e 98 7e .~.~
20:48:00.890 SCP-8500: Skipping directory 2
20:48:00.905 ['uniqueserial', 'sync', 'ringtone-index', 'wallpaper-index',
'calendar', 'wallpapers']
20:48:00.905 {'calendar': 'OVERWRITE', 'wallpaper': 'OVERWRITE'}
I know the Phone book stores the following info:
Name, Icon/image for name
telephone + icon
Telephone + icon
Address
Email
Url
ringer (selects from normal / ringer & voice or from single tone (8
selections) , ringtone (8 selections), melodies..the cool tones not sure of
the format of these - think it is arm, or aac but the names have no
extensions.
I get the following when trying to get phonebook data
BitPim version: trunk-bitpim-developer build
An unexpected exception has occurred.
Please see the help for details on what to do.
Traceback (most recent call last):
File "C:\My\Programs\Tools\Phone\BitPim\src\gui.py", line 284, in run
res=call()
File "C:\My\Programs\Tools\Phone\BitPim\src\gui.py", line 159, in __call__
return apply(self.method, self.args+args, d)
File "C:\My\Programs\Tools\Phone\BitPim\src\gui.py", line 1912, in getdata
i[1](results)
File "C:\My\Programs\Tools\Phone\BitPim\src\phones\com_sanyo6600.py", line
202, in getphonebook
cat=result['groups'].get(groupid, {'name': "Unassigned"})['name']
KeyError: 'groups'
Variables by last 8 frames, innermost last
Frame run in C:\My\Programs\Tools\Phone\BitPim\src\gui.py at line 277
resultcb = <gui.Callback instance at 0x02DE6170>
res = None
self = <WorkerThread(BitPim helper, started daemon)>
item = (<gui.Request instance at 0x02EB1620>, <gui.Callback
instance at 0x02DE6170>)
call = <gui.Request instance at 0x02EB1620>
ex = KeyError('groups',)
e = KeyError('groups',)
first = 0
Frame __call__ in C:\My\Programs\Tools\Phone\BitPim\src\gui.py at line 159
self = <gui.Request instance at 0x02EB1620>
args = ()
d = Keys []
{}
kwargs = Keys []
{}
Frame getdata in C:\My\Programs\Tools\Phone\BitPim\src\gui.py at line 1912
count = 1
i = (<bound method GetPhoneDialog.GetPhoneBookSetting of
<guiwidgets.GetPhoneDialog;
self = <WorkerThread(BitPim helper, started daemon)>
req = <guiwidgets.GetPhoneDialog; proxy of <Swig Object of type
'wxDialog *' at 0x28ac
willcall = [(<bound method GetPhoneDialog.GetPhoneBookSetting of
<guiwidgets.GetPhoneDialog
results = Keys ['ringtone-index', 'sync', 'uniqueserial',
'wallpaper-index']
{'sync': {'phonebook': 'MERGE'}, 'wallpaper-index':
{1000: {'origin': 'camera',
sync = Keys ['phonebook']
{'phonebook': 'MERGE'}
st = 0
todo = [(<bound method WorkerThread.rebootcheck of
<WorkerThread(BitPim helper, started
Frame getphonebook in
C:\My\Programs\Tools\Phone\BitPim\src\phones\com_sanyo6600.py at line 202
reqindex = <phones.p_sanyo6600.contactindexrequest object at
0x027D6B50>
speedslot = [0, 0, 0, 0, 0, 0, 0, 0]
requrl = <phones.p_sanyo6600.urlrequest object at 0x02C538D0>
reqnumber = <phones.p_sanyo6600.numberrequest object at 0x02C53F10>
numemail = 0
pictureid = 0
slot = 149
pbook = Keys []
{}
numentries = 0
sortstuff = <phones.p_sanyo6600.pbsortbuffer object at 0x02C539F0>
reqname = <phones.p_sanyo6600.namerequest object at 0x02C53A70>
numurl = 0
groupid = 225
reqmemo = <phones.p_sanyo6600.memorequest object at 0x02C53390>
numcount = 0
ringerid = 0
reqaddress = <phones.p_sanyo6600.addressrequest object at 0x02C53F50>
name = u''
reqemail = <phones.p_sanyo6600.emailrequest object at 0x02C53D30>
count = 0
resindex = <phones.p_sanyo6600.contactindexresponse object at
0x02C53350>
i = 7
resname = <phones.p_sanyo6600.nameresponse object at 0x034887D0>
entry = Keys []
{}
self = <phones.com_sanyo8500.Phone object at 0x030F3F90>
result = Keys ['ringtone-index', 'sync', 'uniqueserial',
'wallpaper-index']
{'sync': {'phonebook': 'MERGE'}, 'wallpaper-index':
{1000: {'origin': 'camera',
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
BitPim-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bitpim-devel
p_sanyo8500.p
(application/octet-stream, 2.7 KB) - not displayed
com_sanyo8500.py
(text/plain, 3.7 KB)
### BITPIM ### ### Copyright (C) 2007 Stephen Wood <[email protected]> ### ### 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:$ """Talk to the Sanyo Katana Dlx (SCP-8500) cell phone""" # standard modules import re import time import sha # my modules import common import p_brew import p_sanyo8300 import p_sanyo4930 import p_sanyo6600 import p_sanyo8400 import p_sanyo8500 import com_brew import com_phone import com_sanyo import com_sanyomedia import com_sanyonewer # import com_sanyoseries8000 import com_sanyo3100 import com_sanyo6600 import com_sanyo8400 import prototypes import bpcalendar numbertypetab=( 'Mobile', 'Home', 'Work', 'Pager', 'Fax', 'Other') class Phone(com_sanyo6600.Phone): "Talk to the Sanyo Katana Dlx (SCP-8500) cell phone" desc="SCP-8500" FIRST_MEDIA_DIRECTORY=1 LAST_MEDIA_DIRECTORY=2 imagelocations=( # offset, directory #, indexflag, type, maximumentries ) wallpaperexts=(".jpg", ".png", ".mp4", ".3g2",".JPG") protocolclass=p_sanyo8500 serialsname='scp8500' builtinringtones=( 'Ringer & Voice', 'Vibrate', 'None ', 'Normal', 'Single Tones', 'Ring Tones', 'Melodies', 'Single Tone 1', 'Single Tone 2', 'Single Tone 3', 'Single Tone 4', 'Single Tone 5', 'Single Tone 6', 'Single Tone 7', 'Single Tone 8', '', '', '', '', '', 'Ring Tone 1', 'Ring Tone 2', 'Ring Tone 3', 'Ring Tone 4', 'Ring Tone 5', 'Ring Tone 6', 'Ring Tone 7', 'Ring Tone 8', '', '', '', '', '', 'KATANA', 'Je Te Veux', 'The Entertainer', 'Smooth Funk', 'Agnus Dei', 'BRANDENBURG', 'Etude Op.10 No.3', 'Good Morning', 'Calling!', '') calendar_defaultringtone=3 calendar_defaultcaringtone=3 calendar_toneoffset=33 calendar_tonerange=xrange(4,100) def __init__(self, logtarget, commport): com_sanyo6600.Phone.__init__(self, logtarget, commport) self.mode=self.MODENONE self.numbertypetab=numbertypetab def getfundamentals(self, results): """Gets information fundamental to interopating with the phone and UI.""" req=self.protocolclass.esnrequest() res=self.sendpbcommand(req, self.protocolclass.esnresponse) results['uniqueserial']=sha.new(self.get_esn()).hexdigest() self.getmediaindices(results) #results['groups']=self.read_groups() self.log("Fundamentals retrieved") return results my_model='SCP-8500/US' my_manufacturer='SANYO' parentprofile=com_sanyo6600.Profile class Profile(parentprofile): protocolclass=Phone.protocolclass serialsname=Phone.serialsname phone_manufacturer=Phone.my_manufacturer phone_model=Phone.my_model usbids=( ( 0x0474, 0x0748, 1),) # VID=Sanyo, 8500,1 deviceclasses=("modem", "serial") _supportedsyncs=( ('phonebook', 'read', None), # all phonebook reading ('calendar', 'read', None), # all calendar reading #('phonebook', 'write', 'OVERWRITE'), # only overwriting phonebook #('calendar', 'write', 'OVERWRITE'), # only overwriting calendar ('wallpaper', 'read', None), # all wallpaper reading ('ringtone', 'read', None), # all ringtone reading ('call_history', 'read', None),# all call history list reading ('sms', 'read', None), # Read sms messages ('todo', 'read', None), # Read todos ) def __init__(self): parentprofile.__init__(self) com_sanyonewer.Profile.__init__(self) self.numbertypetab=numbertypetab