From: Steven P. <n9...@n9...> - 2003-12-09 19:51:48
|
Hey, my USB cable finally arrived, so now I can do some real world testing. Here is what I saw on my first attempt to load data from the phone: An unexpected exception has occurred. Please see the help for details on what to do. Traceback (most recent call last): File "/Users/n9yty/my_cvs/bitpim/bitpim/gui.py", line 147, in run res=call() File "/Users/n9yty/my_cvs/bitpim/bitpim/gui.py", line 88, in __call__ return apply(self.method, self.args+args, d) File "/Users/n9yty/my_cvs/bitpim/bitpim/gui.py", line 999, in getdata results=self.getfundamentals() File "/Users/n9yty/my_cvs/bitpim/bitpim/gui.py", line 993, in getfundamentals self.commphone.getfundamentals(results) File "/Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_lgvx4400.py", line 67, in getfundamentals results['uniqueserial']=sha.new(self.getfilecontents("nvm/ $SYS.ESN")).hexdigest() File "/Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py", line 192, in getfilecontents res=self.sendbrewcommand(req, p_brew.readfileresponse) File "/Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py", line 307, in sendbrewcommand raise BrewCommandException(err) BrewCommandException: Brew Error 0x0d Variables by last 6 frames, innermost last Frame __call__ in /Users/n9yty/my_cvs/bitpim/bitpim/gui.py at line 88 self = <gui.Request instance at 0x6149c10> args = () d = {} kwargs = {} Frame getdata in /Users/n9yty/my_cvs/bitpim/bitpim/gui.py at line 999 self = <WorkerThread(BitPim helper, started daemon)> req = <guiwidgets.GetPhoneDialog instance; proxy of C++ wxDialog i Frame getfundamentals in /Users/n9yty/my_cvs/bitpim/bitpim/gui.py at line 993 self = <WorkerThread(BitPim helper, started daemon)> results = {} Frame getfundamentals in /Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_lgvx4400.py at line 67 self = <com_lgvx6000.Phone instance at 0x6149c38> results = {} Frame getfilecontents in /Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py at line 192 self = <com_lgvx6000.Phone instance at 0x6149c38> req = <p_brew.readfilerequest object at 0x60dd2d0> data = <cStringIO.StringO object at 0x60dd600> file = 'nvm/$SYS.ESN' desc = 'Reading nvm/$SYS.ESN' Frame sendbrewcommand in /Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py at line 307 responseclass = <class 'p_brew.readfileresponse'> origdata = 'Y\x04\rnvm/$SYS.ESN1\xe2~' d = 0 err = 13 buffer = <prototypes.buffer instance at 0x6149be8> request = <p_brew.readfilerequest object at 0x60dd2d0> callsetmode = True firsttwo = 'Y\x04' data = 'Y\x04\rnvm/$SYS.ESN' self = <com_lgvx6000.Phone instance at 0x6149c38> The associated protocol dump: 13:47:45.572 LG-VX6000: brew request Data - 17 bytes <#! p_brew.readfilerequest !#> 00000000 59 04 00 0d 6e 76 6d 2f 24 53 59 53 2e 45 53 4e Y...nvm/$SYS.ESN 00000010 00 . 13:47:45.573 LG-VX6000: brew response Data - 15 bytes <#! p_brew.readfileresponse !#> 00000000 59 04 0d 6e 76 6d 2f 24 53 59 53 2e 45 53 4e Y..nvm/$SYS.ESN 13:47:45.661 Exception: An unexpected exception has occurred. Please see the help for details on what to do. Traceback (most recent call last): File "/Users/n9yty/my_cvs/bitpim/bitpim/gui.py", line 147, in run res=call() File "/Users/n9yty/my_cvs/bitpim/bitpim/gui.py", line 88, in __call__ return apply(self.method, self.args+args, d) File "/Users/n9yty/my_cvs/bitpim/bitpim/gui.py", line 999, in getdata results=self.getfundamentals() File "/Users/n9yty/my_cvs/bitpim/bitpim/gui.py", line 993, in getfundamentals self.commphone.getfundamentals(results) File "/Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_lgvx4400.py", line 67, in getfundamentals results['uniqueserial']=sha.new(self.getfilecontents("nvm/ $SYS.ESN")).hexdigest() File "/Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py", line 192, in getfilecontents res=self.sendbrewcommand(req, p_brew.readfileresponse) File "/Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py", line 307, in sendbrewcommand raise BrewCommandException(err) BrewCommandException: Brew Error 0x0d Variables by last 6 frames, innermost last Frame __call__ in /Users/n9yty/my_cvs/bitpim/bitpim/gui.py at line 88 self = <gui.Request instance at 0x61497b0> args = () d = {} kwargs = {} Frame getdata in /Users/n9yty/my_cvs/bitpim/bitpim/gui.py at line 999 self = <WorkerThread(BitPim helper, started daemon)> req = <guiwidgets.GetPhoneDialog instance; proxy of C++ wxDialog i Frame getfundamentals in /Users/n9yty/my_cvs/bitpim/bitpim/gui.py at line 993 self = <WorkerThread(BitPim helper, started daemon)> results = {} Frame getfundamentals in /Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_lgvx4400.py at line 67 self = <com_lgvx6000.Phone instance at 0x6149c38> results = {} Frame getfilecontents in /Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py at line 192 self = <com_lgvx6000.Phone instance at 0x6149c38> req = <p_brew.readfilerequest object at 0x60dd510> data = <cStringIO.StringO object at 0x60dd960> file = 'nvm/$SYS.ESN' desc = 'Reading nvm/$SYS.ESN' Frame sendbrewcommand in /Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py at line 307 responseclass = <class 'p_brew.readfileresponse'> origdata = 'Y\x04\rnvm/$SYS.ESN1\xe2~' d = 0 err = 13 buffer = <prototypes.buffer instance at 0x614cb70> request = <p_brew.readfilerequest object at 0x60dd510> callsetmode = True firsttwo = 'Y\x04' data = 'Y\x04\rnvm/$SYS.ESN' self = <com_lgvx6000.Phone instance at 0x6149c38> And this dump from an attempt to view the filesystem: An unexpected exception has occurred. Please see the help for details on what to do. Traceback (most recent call last): File "/Users/n9yty/my_cvs/bitpim/bitpim/gui.py", line 147, in run res=call() File "/Users/n9yty/my_cvs/bitpim/bitpim/gui.py", line 88, in __call__ return apply(self.method, self.args+args, d) File "/Users/n9yty/my_cvs/bitpim/bitpim/gui.py", line 1062, in dirlisting return self.commphone.getfilesystem(path, recurse) File "/Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py", line 125, in getfilesystem res=self.sendbrewcommand(req,p_brew.listfileresponse) File "/Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py", line 307, in sendbrewcommand raise BrewCommandException(err) BrewCommandException: Brew Error 0x02 Variables by last 6 frames, innermost last Frame __bootstrap in /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/ threading.py at line 436 self = <WorkerThread(BitPim helper, started daemon)> Frame run in /Users/n9yty/my_cvs/bitpim/bitpim/gui.py at line 140 e = <com_brew.BrewCommandException instance at 0x616a6c0> res = None self = <WorkerThread(BitPim helper, started daemon)> item = (<gui.Request instance at 0x614cbc0>, <gui.Callback instance call = <gui.Request instance at 0x614cbc0> ex = <com_brew.BrewCommandException instance at 0x616a6c0> resultcb = <gui.Callback instance at 0x614cc10> first = 0 Frame __call__ in /Users/n9yty/my_cvs/bitpim/bitpim/gui.py at line 88 self = <gui.Request instance at 0x614cbc0> args = () d = {} kwargs = {} Frame dirlisting in /Users/n9yty/my_cvs/bitpim/bitpim/gui.py at line 1062 path = '' self = <WorkerThread(BitPim helper, started daemon)> recurse = 0 Frame getfilesystem in /Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py at line 140 i = 0 self = <com_lgvx6000.Phone instance at 0x6149c38> req = <p_brew.listfilerequest object at 0x60ddab0> recurse = 0 results = {} dir = '' Frame sendbrewcommand in /Users/n9yty/my_cvs/bitpim/bitpim/build/bitpim.app/Contents/Resources/ com_brew.py at line 307 responseclass = <class 'p_brew.listfileresponse'> origdata = 'Y\x0b\x02/\x08(~' d = 0 err = 2 buffer = <prototypes.buffer instance at 0x6149e18> request = <p_brew.listfilerequest object at 0x60ddab0> callsetmode = True firsttwo = 'Y\x0b' data = 'Y\x0b\x02/' self = <com_lgvx6000.Phone instance at 0x6149c38> -. ----. -.-- - -.-- Steve Palm - n9...@n9... -. ----. -.-- - -.-- |
From: Roger B. <ro...@ro...> - 2003-12-10 03:22:39
|
Steven Palm wrote: > Hey, my USB cable finally arrived, so now I can do some real world > testing. Here is what I saw on my first attempt to load data from the > phone: What cable is it? Is it a USB to serial convertor or a straight through connection. What does the System Profiler/Devices and Volumes tab say? The exceptions you are seeing: > BrewCommandException: Brew Error 0x0d > BrewCommandException: Brew Error 0x02 They are exactly what I get if I talk to the modem interface on the VX6000. Basically the phone has 3 interfaces when being spoken to directly via USB. The first two together form a standard USB modem interface. (Linux auto-binds a driver named ACM to it. Windows ignores it unless you supply a driver). The 3rd interface is the one that you have to talk the diagnostics protocols on. It is marked as a having a vendor specific protocol and no operating system automatically binds drivers to it. The good news is that I got libusb working, and that way BitPim can talk quite happily to the phone. I have no issues at all the 6000 on Linux using libusb. (The 4400 on the other hand - grrr). What you need to do is build the Python module. Look in the native/usb directory. You will need Swig installed. You also need libusb header and library installed. I can't tell from the libusb page if Macs already have the library installed or if you have to download it. I would imagine that the build process is astonishingly similar to the Linux one (in build.sh). You can then test it by running usb.py in that directory. The first bit of output should list your phone. Vendor id is 1004, product id is 6000. 1004/6000 010 <--- the 10 will be different for every user class USB_CLASS_COMM subclass 0 protocol 0 interface number 0 class USB_CLASS_COMM subclass 2 protocol 1 endpointaddress 0x1 TYPE_INTERRUPT interface number 1 class USB_CLASS_DATA subclass 0 protocol 0 endpointaddress 0xa TYPE_BULK IN endpointaddress 0xb TYPE_BULK OUT interface number 2 class USB_CLASS_VENDOR_SPEC subclass 255 protocol 0 endpointaddress 0x3 TYPE_BULK IN endpointaddress 0x6 TYPE_BULK OUT It then sends the memory config request to the phone. Your output should look like this: opening device getting configvalue value is 1 now about to set config config set claiming 2 device opened, about to write wrote, about to read Starting read request Ending readrequest read request read 10 bytes 'Y\x0c\x000\x8cb\x00*=~' Once that works, run the top level bitpim. The device should be detected and automatically used. Roger |
From: Steven P. <n9...@n9...> - 2003-12-10 03:45:56
|
On Dec 9, 2003, at 9:22 PM, Roger Binns wrote: > Steven Palm wrote: >> Hey, my USB cable finally arrived, so now I can do some real world >> testing. Here is what I saw on my first attempt to load data from the >> phone: > > What cable is it? Is it a USB to serial convertor or a straight > through connection. What does the System Profiler/Devices and Volumes > tab say? The charging USB cable from 1xexpress.com / www.rpiwireless.com. It is USB straight through. > The exceptions you are seeing: > >> BrewCommandException: Brew Error 0x0d >> BrewCommandException: Brew Error 0x02 > > They are exactly what I get if I talk to the modem interface on the > VX6000. Well, I was specifying the /dev/cu.usbserialXXX device, so I'm sure this is what I was doing. > What you need to do is build the Python module. See my other note on this, crossed in the e-mail. ;-) > Once that works, run the top level bitpim. The device should be > detected > and automatically used. Okay, I'll keep an eye on this. Obviously something is a touch different between linux and the Mac here, but I can poke around and see what I find. -. ----. -.-- - -.-- Steve Palm - n9...@n9... -. ----. -.-- - -.-- |