Re: Dare support -- complete
"Aaron G. Stemen" <[email protected]>
| Newsgroups | gmane.comp.mobile.bitpim.devel |
|---|---|
| Message-ID | <[email protected]> |
Well here's where I am with the VX-9100: The SMS code for the VX-9700 works on the VX-9100, so I was able to read the SMS messages on my phone. I can't test the phone book because my phone book file has changed as a result of some testing I was doing over the weekend. Namely overwriting the phone book without the HPE entry. I thought I had a backup, but I don't, so I can't look at the HPE entry that was there nor can I restore it. Joe may be able to verify the HPE entry in the pbentry.dat file. I'm attaching a patch without the code for the HPE entry since I can't verify whether or not it'll work for the VX-9100. It's pretty much copy and paste without any real clean up (running short on time today). Following Nathan's format, what works: - Media (read/write) - Calendar (read/write) note: phone resets after writing the calendar. is that supposed to happen??? - SMS (read) - Call history (read) - Memo (read) - T9 User DB (read/write) Nathan Hjelm wrote: > Dare phone support is attached :D. > > Aaron, take a look at the sms and call history stuff from the VX-9700 code when you get a chance. It is quite possible that the VX-9100 uses the same (or similar) file formats. Also, I think that it might be a good idea to change the VX-9100 to inherit from the VX-8800 to get the sms read code (seems to be more related to the Voyager than the enV1 anyway). > > If the sms file formats are the same we can move the sms code (and packets) from the VX-9700 into the VX-9100 and then I can set VX-9700 can inherit from the VX-9100. Likewise with the call history. > > What works: > - Phonebook (read/write) > - Media (read/write) > - Calendar (read/write) > - SMS (read) > - Call history (read) > - Memo (read) > > -Nathan > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! > Studies have shown that voting for your favorite open source project, > along with a healthy diet, reduces your potential for chronic lameness > and boredom. Vote Now at http://www.sourceforge.net/community/cca08 > ------------------------------------------------------------------------ > > _______________________________________________ > BitPim-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/bitpim-devel > ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ BitPim-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/bitpim-devel
VX9100.patch
(text/plain, 48.4 KB)
Index: src/phones/com_lgvx9100.py
===================================================================
--- src/phones/com_lgvx9100.py (revision 4628)
+++ src/phones/com_lgvx9100.py (working copy)
@@ -15,12 +15,13 @@
import common
import com_brew
import com_lg
-import com_lgvx8550
+import com_lgvx10000
import p_lgvx9100
import helpids
+import sms
#-------------------------------------------------------------------------------
-parentphone=com_lgvx8550.Phone
+parentphone=com_lgvx10000.Phone
class Phone(parentphone):
"Talk to the LG VX9100 cell phone"
@@ -82,8 +83,59 @@
self.ringtonelocations, results, merge,
self.getringtoneindices, False)
+ def _getoutboxmessage(self, sf):
+ entry=sms.SMSEntry()
+ entry.folder=entry.Folder_Sent
+ entry.datetime="%d%02d%02dT%02d%02d%02d" % ((sf.timesent))
+ # add all the recipients
+ for r in sf.recipients:
+ if r.number:
+ confirmed=(r.status==5)
+ confirmed_date=None
+ if confirmed:
+ confirmed_date="%d%02d%02dT%02d%02d%02d" % r.timereceived
+ entry.add_recipient(r.number, confirmed, confirmed_date)
+ entry.subject=sf.subject
+ txt=""
+ if sf.num_msg_elements==1 and not sf.messages[0].binary:
+ txt=self._get_text_from_sms_msg_without_header(sf.messages[0].msg, sf.messages[0].length)
+ else:
+ for i in range(sf.num_msg_elements):
+ txt+=self._get_text_from_sms_msg_with_header(sf.messages[i].msg, sf.messages[i].length)
+ entry.text=unicode(txt, errors='ignore')
+ if sf.priority==0:
+ entry.priority=sms.SMSEntry.Priority_Normal
+ else:
+ entry.priority=sms.SMSEntry.Priority_High
+ entry.locked=sf.locked
+ entry.callback=sf.callback
+ return entry
+
+ def _getinboxmessage(self, sf):
+ entry=sms.SMSEntry()
+ entry.folder=entry.Folder_Inbox
+ entry.datetime="%d%02d%02dT%02d%02d%02d" % (sf.gtimerecv)
+ entry._from=sf.sender_callback
+ entry.subject=sf.subject
+ entry.locked=sf.locked
+ if sf.priority==0:
+ entry.priority=sms.SMSEntry.Priority_Normal
+ else:
+ entry.priority=sms.SMSEntry.Priority_High
+ entry.read=sf.read
+
+ # read message data
+ txt=""
+ for msg in sf.msgs:
+ if msg.msg_length != 0:
+ txt += self._get_text_from_sms_msg_with_header(msg.msg_data.msg, msg.msg_length)
+
+ entry.text=unicode(txt, errors='ignore')
+ entry.callback=sf.sender_callback
+ return entry
+
#-------------------------------------------------------------------------------
-parentprofile=com_lgvx8550.Profile
+parentprofile=com_lgvx10000.Profile
class Profile(parentprofile):
protocolclass=Phone.protocolclass
serialsname=Phone.serialsname
@@ -122,14 +174,15 @@
_supportedsyncs=(
## ('phonebook', 'read', None), # all phonebook reading
-## ('calendar', 'read', None), # all calendar 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
+ ('call_history', 'read', None),# all call history list reading
+ ('sms', 'read', None), # all SMS list reading
+ ('memo', 'read', None), # all memo list reading
+ ('t9_udb', 'read', 'OVERWRITE'),
## ('phonebook', 'write', 'OVERWRITE'), # only overwriting phonebook
-## ('calendar', 'write', 'OVERWRITE'), # only overwriting calendar
+ ('calendar', 'write', 'OVERWRITE'), # only overwriting calendar
('wallpaper', 'write', 'MERGE'), # merge and overwrite wallpaper
## ('wallpaper', 'write', 'OVERWRITE'),
('ringtone', 'write', 'MERGE'), # merge and overwrite ringtone
@@ -138,4 +191,5 @@
## ('memo', 'write', 'OVERWRITE'), # all memo list writing
#### ('playlist', 'read', 'OVERWRITE'),
#### ('playlist', 'write', 'OVERWRITE'),
+ ('t9_udb', 'write', 'OVERWRITE'),
)
Index: src/phones/p_lgvx9100.p
===================================================================
--- src/phones/p_lgvx9100.p (revision 4628)
+++ src/phones/p_lgvx9100.p (working copy)
@@ -34,6 +34,18 @@
INDEX_VIDEO_TYPE=3
INDEX_IMAGE_TYPE=0
+SMS_CANNED_MAX_ITEMS=30
+
+pb_file_name = 'pim/pbentry.dat'
+pn_file_name = 'pim/pbnumber.dat'
+speed_file_name = 'pim/pbspeed.dat'
+ice_file_name = 'pim/pbiceentry.dat'
+
+# SMS index files
+inbox_index = "dload/inbox.dat"
+outbox_index = "dload/outbox.dat"
+drafts_index = "dload/drafts.dat"
+
%}
PACKET indexentry:
@@ -50,3 +62,57 @@
"Used for tracking wallpaper and ringtones"
* LIST {'elementclass': indexentry, 'createdefault': True} +items
+PACKET sms_saved:
+ P BOOL { 'default': True } +outboxmsg
+ 4 GPSDATE GPStime # num seconds since 0h 1-6-80, time message received by phone
+ * sms_out outbox
+
+PACKET sms_out:
+ 4 UINT unk0 # zero
+ 4 UINT index # starting from 1, unique
+ 1 UINT locked # 1=locked
+ 3 UNKNOWN unk1 # zero
+ 4 GPSDATE timesent # time the message was sent
+ 4 GPSDATE timestamp
+ 61 USTRING {'encoding': PHONE_ENCODING} subject
+ 2 UINT num_msg_elements # up to 7 -- this may not be correct
+ 2 UINT priority # 0=normal, 2=high
+ 2 UNKNOWN unk2 # always 01 01
+ 24 USTRING callback # this is probably not 24 bytes long
+ * LIST { 'elementclass': recipient_record,'length': 10 } +recipients
+ * LIST {'elementclass': msg_record, 'length': 7} +messages
+ * UNKNOWN pad1
+
+PACKET SMSINBOXMSGFRAGMENT:
+ * LIST { 'length': 222 } +msg:
+ 1 UINT byte "individual byte of message"
+
+PACKET sms_in:
+ 4 UINT unk0 # zero
+ 4 UINT index
+ 4 UINT unk1 # 0x0002005C
+ 4 GPSDATE gtimerecv # num seconds since 0h 1-6-80, time message received by phone
+ 6 SMSDATE timesent
+ 2 UINT unk2 # zero
+ 4 GPSDATE gtimesent # num seconds since 0h 1-6-80, time message received by phone
+ 1 UINT read
+ 1 UINT locked
+ 1 UINT priority
+ 15 UNKNOWN dunno1
+ 64 USTRING {'encoding': PHONE_ENCODING,
+ 'raiseonunterminatedread': False } subject
+ # phone could have more than 10 message fragments
+ * LIST { 'length': 10 } +msgs:
+ 1 UINT msg_id
+ 1 UINT msg_length
+ * SMSINBOXMSGFRAGMENT msg_data
+ 2292 UNKNOWN dunno3
+ 33 USTRING sender_name
+ 33 USTRING sender_callback
+ 24 UNKNOWN unk3
+ # this stuff is required by the code, but couldn't figure it out,
+ # so just fake it
+ P UINT { 'default': 0 } +bin_header1
+ P UINT { 'default': 0 } +bin_header2
+ P UINT { 'default': 0 } +multipartID
+ P UINT { 'default': 0 } +bin_header3
Index: src/phones/p_lgvx9100.py
===================================================================
--- src/phones/p_lgvx9100.py (revision 4628)
+++ src/phones/p_lgvx9100.py (working copy)
@@ -16,6 +16,8 @@
UINT=UINTlsb
BOOL=BOOLlsb
+NUMSPEEDDIALS=1000
+
BREW_FILE_SYSTEM=2
INDEX_RT_TYPE=257
@@ -23,6 +25,18 @@
INDEX_VIDEO_TYPE=3
INDEX_IMAGE_TYPE=0
+SMS_CANNED_MAX_ITEMS=30
+
+pb_file_name = 'pim/pbentry.dat'
+pn_file_name = 'pim/pbnumber.dat'
+speed_file_name = 'pim/pbspeed.dat'
+ice_file_name = 'pim/pbiceentry.dat'
+
+# SMS index files
+inbox_index = "dload/inbox.dat"
+outbox_index = "dload/outbox.dat"
+drafts_index = "dload/drafts.dat"
+
class indexentry(BaseProtogenClass):
__fields=['filename', 'size', 'date', 'type', 'dunno']
@@ -254,3 +268,1101 @@
+class sms_saved(BaseProtogenClass):
+ __fields=['outboxmsg', 'GPStime', 'outbox']
+
+ def __init__(self, *args, **kwargs):
+ dict={}
+ # What was supplied to this function
+ dict.update(kwargs)
+ # Parent constructor
+ super(sms_saved,self).__init__(**dict)
+ if self.__class__ is sms_saved:
+ self._update(args,dict)
+
+
+ def getfields(self):
+ return self.__fields
+
+
+ def _update(self, args, kwargs):
+ super(sms_saved,self)._update(args,kwargs)
+ keys=kwargs.keys()
+ for key in keys:
+ if key in self.__fields:
+ setattr(self, key, kwargs[key])
+ del kwargs[key]
+ # Were any unrecognized kwargs passed in?
+ if __debug__:
+ self._complainaboutunusedargs(sms_saved,kwargs)
+ if len(args): raise TypeError('Unexpected arguments supplied: '+`args`)
+ # Make all P fields that haven't already been constructed
+ try: self.__field_outboxmsg
+ except:
+ self.__field_outboxmsg=BOOL(**{ 'default': True })
+
+
+ def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
+ 'Writes this packet to the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ self.__field_GPStime.writetobuffer(buf)
+ self.__field_outbox.writetobuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
+
+
+ def readfrombuffer(self,buf,autolog=True,logtitle="<read data>"):
+ 'Reads this packet from the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
+ self.__field_GPStime=GPSDATE(**{'sizeinbytes': 4})
+ self.__field_GPStime.readfrombuffer(buf)
+ self.__field_outbox=sms_out()
+ self.__field_outbox.readfrombuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+
+
+ def __getfield_outboxmsg(self):
+ try: self.__field_outboxmsg
+ except:
+ self.__field_outboxmsg=BOOL(**{ 'default': True })
+ return self.__field_outboxmsg.getvalue()
+
+ def __setfield_outboxmsg(self, value):
+ if isinstance(value,BOOL):
+ self.__field_outboxmsg=value
+ else:
+ self.__field_outboxmsg=BOOL(value,**{ 'default': True })
+
+ def __delfield_outboxmsg(self): del self.__field_outboxmsg
+
+ outboxmsg=property(__getfield_outboxmsg, __setfield_outboxmsg, __delfield_outboxmsg, None)
+
+ def __getfield_GPStime(self):
+ return self.__field_GPStime.getvalue()
+
+ def __setfield_GPStime(self, value):
+ if isinstance(value,GPSDATE):
+ self.__field_GPStime=value
+ else:
+ self.__field_GPStime=GPSDATE(value,**{'sizeinbytes': 4})
+
+ def __delfield_GPStime(self): del self.__field_GPStime
+
+ GPStime=property(__getfield_GPStime, __setfield_GPStime, __delfield_GPStime, None)
+
+ def __getfield_outbox(self):
+ return self.__field_outbox.getvalue()
+
+ def __setfield_outbox(self, value):
+ if isinstance(value,sms_out):
+ self.__field_outbox=value
+ else:
+ self.__field_outbox=sms_out(value,)
+
+ def __delfield_outbox(self): del self.__field_outbox
+
+ outbox=property(__getfield_outbox, __setfield_outbox, __delfield_outbox, None)
+
+ def iscontainer(self):
+ return True
+
+ def containerelements(self):
+ yield ('outboxmsg', self.__field_outboxmsg, None)
+ yield ('GPStime', self.__field_GPStime, None)
+ yield ('outbox', self.__field_outbox, None)
+
+
+
+
+class sms_out(BaseProtogenClass):
+ __fields=['unk0', 'index', 'locked', 'unk1', 'timesent', 'timestamp', 'subject', 'num_msg_elements', 'priority', 'unk2', 'callback', 'recipients', 'messages', 'pad1']
+
+ def __init__(self, *args, **kwargs):
+ dict={}
+ # What was supplied to this function
+ dict.update(kwargs)
+ # Parent constructor
+ super(sms_out,self).__init__(**dict)
+ if self.__class__ is sms_out:
+ self._update(args,dict)
+
+
+ def getfields(self):
+ return self.__fields
+
+
+ def _update(self, args, kwargs):
+ super(sms_out,self)._update(args,kwargs)
+ keys=kwargs.keys()
+ for key in keys:
+ if key in self.__fields:
+ setattr(self, key, kwargs[key])
+ del kwargs[key]
+ # Were any unrecognized kwargs passed in?
+ if __debug__:
+ self._complainaboutunusedargs(sms_out,kwargs)
+ if len(args): raise TypeError('Unexpected arguments supplied: '+`args`)
+ # Make all P fields that haven't already been constructed
+
+
+ def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
+ 'Writes this packet to the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ self.__field_unk0.writetobuffer(buf)
+ self.__field_index.writetobuffer(buf)
+ self.__field_locked.writetobuffer(buf)
+ self.__field_unk1.writetobuffer(buf)
+ self.__field_timesent.writetobuffer(buf)
+ self.__field_timestamp.writetobuffer(buf)
+ self.__field_subject.writetobuffer(buf)
+ self.__field_num_msg_elements.writetobuffer(buf)
+ self.__field_priority.writetobuffer(buf)
+ self.__field_unk2.writetobuffer(buf)
+ self.__field_callback.writetobuffer(buf)
+ try: self.__field_recipients
+ except:
+ self.__field_recipients=LIST(**{ 'elementclass': recipient_record,'length': 10 })
+ self.__field_recipients.writetobuffer(buf)
+ try: self.__field_messages
+ except:
+ self.__field_messages=LIST(**{'elementclass': msg_record, 'length': 7})
+ self.__field_messages.writetobuffer(buf)
+ self.__field_pad1.writetobuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
+
+
+ def readfrombuffer(self,buf,autolog=True,logtitle="<read data>"):
+ 'Reads this packet from the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
+ self.__field_unk0=UINT(**{'sizeinbytes': 4})
+ self.__field_unk0.readfrombuffer(buf)
+ self.__field_index=UINT(**{'sizeinbytes': 4})
+ self.__field_index.readfrombuffer(buf)
+ self.__field_locked=UINT(**{'sizeinbytes': 1})
+ self.__field_locked.readfrombuffer(buf)
+ self.__field_unk1=UNKNOWN(**{'sizeinbytes': 3})
+ self.__field_unk1.readfrombuffer(buf)
+ self.__field_timesent=GPSDATE(**{'sizeinbytes': 4})
+ self.__field_timesent.readfrombuffer(buf)
+ self.__field_timestamp=GPSDATE(**{'sizeinbytes': 4})
+ self.__field_timestamp.readfrombuffer(buf)
+ self.__field_subject=USTRING(**{'sizeinbytes': 61, 'encoding': PHONE_ENCODING})
+ self.__field_subject.readfrombuffer(buf)
+ self.__field_num_msg_elements=UINT(**{'sizeinbytes': 2})
+ self.__field_num_msg_elements.readfrombuffer(buf)
+ self.__field_priority=UINT(**{'sizeinbytes': 2})
+ self.__field_priority.readfrombuffer(buf)
+ self.__field_unk2=UNKNOWN(**{'sizeinbytes': 2})
+ self.__field_unk2.readfrombuffer(buf)
+ self.__field_callback=USTRING(**{'sizeinbytes': 24})
+ self.__field_callback.readfrombuffer(buf)
+ self.__field_recipients=LIST(**{ 'elementclass': recipient_record,'length': 10 })
+ self.__field_recipients.readfrombuffer(buf)
+ self.__field_messages=LIST(**{'elementclass': msg_record, 'length': 7})
+ self.__field_messages.readfrombuffer(buf)
+ self.__field_pad1=UNKNOWN()
+ self.__field_pad1.readfrombuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+
+
+ def __getfield_unk0(self):
+ return self.__field_unk0.getvalue()
+
+ def __setfield_unk0(self, value):
+ if isinstance(value,UINT):
+ self.__field_unk0=value
+ else:
+ self.__field_unk0=UINT(value,**{'sizeinbytes': 4})
+
+ def __delfield_unk0(self): del self.__field_unk0
+
+ unk0=property(__getfield_unk0, __setfield_unk0, __delfield_unk0, None)
+
+ def __getfield_index(self):
+ return self.__field_index.getvalue()
+
+ def __setfield_index(self, value):
+ if isinstance(value,UINT):
+ self.__field_index=value
+ else:
+ self.__field_index=UINT(value,**{'sizeinbytes': 4})
+
+ def __delfield_index(self): del self.__field_index
+
+ index=property(__getfield_index, __setfield_index, __delfield_index, None)
+
+ def __getfield_locked(self):
+ return self.__field_locked.getvalue()
+
+ def __setfield_locked(self, value):
+ if isinstance(value,UINT):
+ self.__field_locked=value
+ else:
+ self.__field_locked=UINT(value,**{'sizeinbytes': 1})
+
+ def __delfield_locked(self): del self.__field_locked
+
+ locked=property(__getfield_locked, __setfield_locked, __delfield_locked, None)
+
+ def __getfield_unk1(self):
+ return self.__field_unk1.getvalue()
+
+ def __setfield_unk1(self, value):
+ if isinstance(value,UNKNOWN):
+ self.__field_unk1=value
+ else:
+ self.__field_unk1=UNKNOWN(value,**{'sizeinbytes': 3})
+
+ def __delfield_unk1(self): del self.__field_unk1
+
+ unk1=property(__getfield_unk1, __setfield_unk1, __delfield_unk1, None)
+
+ def __getfield_timesent(self):
+ return self.__field_timesent.getvalue()
+
+ def __setfield_timesent(self, value):
+ if isinstance(value,GPSDATE):
+ self.__field_timesent=value
+ else:
+ self.__field_timesent=GPSDATE(value,**{'sizeinbytes': 4})
+
+ def __delfield_timesent(self): del self.__field_timesent
+
+ timesent=property(__getfield_timesent, __setfield_timesent, __delfield_timesent, None)
+
+ def __getfield_timestamp(self):
+ return self.__field_timestamp.getvalue()
+
+ def __setfield_timestamp(self, value):
+ if isinstance(value,GPSDATE):
+ self.__field_timestamp=value
+ else:
+ self.__field_timestamp=GPSDATE(value,**{'sizeinbytes': 4})
+
+ def __delfield_timestamp(self): del self.__field_timestamp
+
+ timestamp=property(__getfield_timestamp, __setfield_timestamp, __delfield_timestamp, None)
+
+ def __getfield_subject(self):
+ return self.__field_subject.getvalue()
+
+ def __setfield_subject(self, value):
+ if isinstance(value,USTRING):
+ self.__field_subject=value
+ else:
+ self.__field_subject=USTRING(value,**{'sizeinbytes': 61, 'encoding': PHONE_ENCODING})
+
+ def __delfield_subject(self): del self.__field_subject
+
+ subject=property(__getfield_subject, __setfield_subject, __delfield_subject, None)
+
+ def __getfield_num_msg_elements(self):
+ return self.__field_num_msg_elements.getvalue()
+
+ def __setfield_num_msg_elements(self, value):
+ if isinstance(value,UINT):
+ self.__field_num_msg_elements=value
+ else:
+ self.__field_num_msg_elements=UINT(value,**{'sizeinbytes': 2})
+
+ def __delfield_num_msg_elements(self): del self.__field_num_msg_elements
+
+ num_msg_elements=property(__getfield_num_msg_elements, __setfield_num_msg_elements, __delfield_num_msg_elements, None)
+
+ def __getfield_priority(self):
+ return self.__field_priority.getvalue()
+
+ def __setfield_priority(self, value):
+ if isinstance(value,UINT):
+ self.__field_priority=value
+ else:
+ self.__field_priority=UINT(value,**{'sizeinbytes': 2})
+
+ def __delfield_priority(self): del self.__field_priority
+
+ priority=property(__getfield_priority, __setfield_priority, __delfield_priority, None)
+
+ def __getfield_unk2(self):
+ return self.__field_unk2.getvalue()
+
+ def __setfield_unk2(self, value):
+ if isinstance(value,UNKNOWN):
+ self.__field_unk2=value
+ else:
+ self.__field_unk2=UNKNOWN(value,**{'sizeinbytes': 2})
+
+ def __delfield_unk2(self): del self.__field_unk2
+
+ unk2=property(__getfield_unk2, __setfield_unk2, __delfield_unk2, None)
+
+ def __getfield_callback(self):
+ return self.__field_callback.getvalue()
+
+ def __setfield_callback(self, value):
+ if isinstance(value,USTRING):
+ self.__field_callback=value
+ else:
+ self.__field_callback=USTRING(value,**{'sizeinbytes': 24})
+
+ def __delfield_callback(self): del self.__field_callback
+
+ callback=property(__getfield_callback, __setfield_callback, __delfield_callback, None)
+
+ def __getfield_recipients(self):
+ try: self.__field_recipients
+ except:
+ self.__field_recipients=LIST(**{ 'elementclass': recipient_record,'length': 10 })
+ return self.__field_recipients.getvalue()
+
+ def __setfield_recipients(self, value):
+ if isinstance(value,LIST):
+ self.__field_recipients=value
+ else:
+ self.__field_recipients=LIST(value,**{ 'elementclass': recipient_record,'length': 10 })
+
+ def __delfield_recipients(self): del self.__field_recipients
+
+ recipients=property(__getfield_recipients, __setfield_recipients, __delfield_recipients, None)
+
+ def __getfield_messages(self):
+ try: self.__field_messages
+ except:
+ self.__field_messages=LIST(**{'elementclass': msg_record, 'length': 7})
+ return self.__field_messages.getvalue()
+
+ def __setfield_messages(self, value):
+ if isinstance(value,LIST):
+ self.__field_messages=value
+ else:
+ self.__field_messages=LIST(value,**{'elementclass': msg_record, 'length': 7})
+
+ def __delfield_messages(self): del self.__field_messages
+
+ messages=property(__getfield_messages, __setfield_messages, __delfield_messages, None)
+
+ def __getfield_pad1(self):
+ return self.__field_pad1.getvalue()
+
+ def __setfield_pad1(self, value):
+ if isinstance(value,UNKNOWN):
+ self.__field_pad1=value
+ else:
+ self.__field_pad1=UNKNOWN(value,)
+
+ def __delfield_pad1(self): del self.__field_pad1
+
+ pad1=property(__getfield_pad1, __setfield_pad1, __delfield_pad1, None)
+
+ def iscontainer(self):
+ return True
+
+ def containerelements(self):
+ yield ('unk0', self.__field_unk0, None)
+ yield ('index', self.__field_index, None)
+ yield ('locked', self.__field_locked, None)
+ yield ('unk1', self.__field_unk1, None)
+ yield ('timesent', self.__field_timesent, None)
+ yield ('timestamp', self.__field_timestamp, None)
+ yield ('subject', self.__field_subject, None)
+ yield ('num_msg_elements', self.__field_num_msg_elements, None)
+ yield ('priority', self.__field_priority, None)
+ yield ('unk2', self.__field_unk2, None)
+ yield ('callback', self.__field_callback, None)
+ yield ('recipients', self.__field_recipients, None)
+ yield ('messages', self.__field_messages, None)
+ yield ('pad1', self.__field_pad1, None)
+
+
+
+
+class SMSINBOXMSGFRAGMENT(BaseProtogenClass):
+ __fields=['msg']
+
+ def __init__(self, *args, **kwargs):
+ dict={}
+ # What was supplied to this function
+ dict.update(kwargs)
+ # Parent constructor
+ super(SMSINBOXMSGFRAGMENT,self).__init__(**dict)
+ if self.__class__ is SMSINBOXMSGFRAGMENT:
+ self._update(args,dict)
+
+
+ def getfields(self):
+ return self.__fields
+
+
+ def _update(self, args, kwargs):
+ super(SMSINBOXMSGFRAGMENT,self)._update(args,kwargs)
+ keys=kwargs.keys()
+ for key in keys:
+ if key in self.__fields:
+ setattr(self, key, kwargs[key])
+ del kwargs[key]
+ # Were any unrecognized kwargs passed in?
+ if __debug__:
+ self._complainaboutunusedargs(SMSINBOXMSGFRAGMENT,kwargs)
+ if len(args):
+ dict2={'elementclass': _gen_p_lgvx9100_88, 'length': 222 }
+ dict2.update(kwargs)
+ kwargs=dict2
+ self.__field_msg=LIST(*args,**dict2)
+ # Make all P fields that haven't already been constructed
+
+
+ def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
+ 'Writes this packet to the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ try: self.__field_msg
+ except:
+ self.__field_msg=LIST(**{'elementclass': _gen_p_lgvx9100_88, 'length': 222 })
+ self.__field_msg.writetobuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
+
+
+ def readfrombuffer(self,buf,autolog=True,logtitle="<read data>"):
+ 'Reads this packet from the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
+ self.__field_msg=LIST(**{'elementclass': _gen_p_lgvx9100_88, 'length': 222 })
+ self.__field_msg.readfrombuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+
+
+ def __getfield_msg(self):
+ try: self.__field_msg
+ except:
+ self.__field_msg=LIST(**{'elementclass': _gen_p_lgvx9100_88, 'length': 222 })
+ return self.__field_msg.getvalue()
+
+ def __setfield_msg(self, value):
+ if isinstance(value,LIST):
+ self.__field_msg=value
+ else:
+ self.__field_msg=LIST(value,**{'elementclass': _gen_p_lgvx9100_88, 'length': 222 })
+
+ def __delfield_msg(self): del self.__field_msg
+
+ msg=property(__getfield_msg, __setfield_msg, __delfield_msg, None)
+
+ def iscontainer(self):
+ return True
+
+ def containerelements(self):
+ yield ('msg', self.__field_msg, None)
+
+
+
+
+class _gen_p_lgvx9100_88(BaseProtogenClass):
+ 'Anonymous inner class'
+ __fields=['byte']
+
+ def __init__(self, *args, **kwargs):
+ dict={}
+ # What was supplied to this function
+ dict.update(kwargs)
+ # Parent constructor
+ super(_gen_p_lgvx9100_88,self).__init__(**dict)
+ if self.__class__ is _gen_p_lgvx9100_88:
+ self._update(args,dict)
+
+
+ def getfields(self):
+ return self.__fields
+
+
+ def _update(self, args, kwargs):
+ super(_gen_p_lgvx9100_88,self)._update(args,kwargs)
+ keys=kwargs.keys()
+ for key in keys:
+ if key in self.__fields:
+ setattr(self, key, kwargs[key])
+ del kwargs[key]
+ # Were any unrecognized kwargs passed in?
+ if __debug__:
+ self._complainaboutunusedargs(_gen_p_lgvx9100_88,kwargs)
+ if len(args):
+ dict2={'sizeinbytes': 1}
+ dict2.update(kwargs)
+ kwargs=dict2
+ self.__field_byte=UINT(*args,**dict2)
+ # Make all P fields that haven't already been constructed
+
+
+ def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
+ 'Writes this packet to the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ self.__field_byte.writetobuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
+
+
+ def readfrombuffer(self,buf,autolog=True,logtitle="<read data>"):
+ 'Reads this packet from the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
+ self.__field_byte=UINT(**{'sizeinbytes': 1})
+ self.__field_byte.readfrombuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+
+
+ def __getfield_byte(self):
+ return self.__field_byte.getvalue()
+
+ def __setfield_byte(self, value):
+ if isinstance(value,UINT):
+ self.__field_byte=value
+ else:
+ self.__field_byte=UINT(value,**{'sizeinbytes': 1})
+
+ def __delfield_byte(self): del self.__field_byte
+
+ byte=property(__getfield_byte, __setfield_byte, __delfield_byte, "individual byte of message")
+
+ def iscontainer(self):
+ return True
+
+ def containerelements(self):
+ yield ('byte', self.__field_byte, "individual byte of message")
+
+
+
+
+class sms_in(BaseProtogenClass):
+ __fields=['unk0', 'index', 'unk1', 'gtimerecv', 'timesent', 'unk2', 'gtimesent', 'read', 'locked', 'priority', 'dunno1', 'subject', 'msgs', 'dunno3', 'sender_name', 'sender_callback', 'unk3', 'bin_header1', 'bin_header2', 'multipartID', 'bin_header3']
+
+ def __init__(self, *args, **kwargs):
+ dict={}
+ # What was supplied to this function
+ dict.update(kwargs)
+ # Parent constructor
+ super(sms_in,self).__init__(**dict)
+ if self.__class__ is sms_in:
+ self._update(args,dict)
+
+
+ def getfields(self):
+ return self.__fields
+
+
+ def _update(self, args, kwargs):
+ super(sms_in,self)._update(args,kwargs)
+ keys=kwargs.keys()
+ for key in keys:
+ if key in self.__fields:
+ setattr(self, key, kwargs[key])
+ del kwargs[key]
+ # Were any unrecognized kwargs passed in?
+ if __debug__:
+ self._complainaboutunusedargs(sms_in,kwargs)
+ if len(args): raise TypeError('Unexpected arguments supplied: '+`args`)
+ # Make all P fields that haven't already been constructed
+ try: self.__field_bin_header1
+ except:
+ self.__field_bin_header1=UINT(**{ 'default': 0 })
+ try: self.__field_bin_header2
+ except:
+ self.__field_bin_header2=UINT(**{ 'default': 0 })
+ try: self.__field_multipartID
+ except:
+ self.__field_multipartID=UINT(**{ 'default': 0 })
+ try: self.__field_bin_header3
+ except:
+ self.__field_bin_header3=UINT(**{ 'default': 0 })
+
+
+ def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
+ 'Writes this packet to the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ self.__field_unk0.writetobuffer(buf)
+ self.__field_index.writetobuffer(buf)
+ self.__field_unk1.writetobuffer(buf)
+ self.__field_gtimerecv.writetobuffer(buf)
+ self.__field_timesent.writetobuffer(buf)
+ self.__field_unk2.writetobuffer(buf)
+ self.__field_gtimesent.writetobuffer(buf)
+ self.__field_read.writetobuffer(buf)
+ self.__field_locked.writetobuffer(buf)
+ self.__field_priority.writetobuffer(buf)
+ self.__field_dunno1.writetobuffer(buf)
+ self.__field_subject.writetobuffer(buf)
+ try: self.__field_msgs
+ except:
+ self.__field_msgs=LIST(**{'elementclass': _gen_p_lgvx9100_106, 'length': 10 })
+ self.__field_msgs.writetobuffer(buf)
+ self.__field_dunno3.writetobuffer(buf)
+ self.__field_sender_name.writetobuffer(buf)
+ self.__field_sender_callback.writetobuffer(buf)
+ self.__field_unk3.writetobuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
+
+
+ def readfrombuffer(self,buf,autolog=True,logtitle="<read data>"):
+ 'Reads this packet from the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
+ self.__field_unk0=UINT(**{'sizeinbytes': 4})
+ self.__field_unk0.readfrombuffer(buf)
+ self.__field_index=UINT(**{'sizeinbytes': 4})
+ self.__field_index.readfrombuffer(buf)
+ self.__field_unk1=UINT(**{'sizeinbytes': 4})
+ self.__field_unk1.readfrombuffer(buf)
+ self.__field_gtimerecv=GPSDATE(**{'sizeinbytes': 4})
+ self.__field_gtimerecv.readfrombuffer(buf)
+ self.__field_timesent=SMSDATE(**{'sizeinbytes': 6})
+ self.__field_timesent.readfrombuffer(buf)
+ self.__field_unk2=UINT(**{'sizeinbytes': 2})
+ self.__field_unk2.readfrombuffer(buf)
+ self.__field_gtimesent=GPSDATE(**{'sizeinbytes': 4})
+ self.__field_gtimesent.readfrombuffer(buf)
+ self.__field_read=UINT(**{'sizeinbytes': 1})
+ self.__field_read.readfrombuffer(buf)
+ self.__field_locked=UINT(**{'sizeinbytes': 1})
+ self.__field_locked.readfrombuffer(buf)
+ self.__field_priority=UINT(**{'sizeinbytes': 1})
+ self.__field_priority.readfrombuffer(buf)
+ self.__field_dunno1=UNKNOWN(**{'sizeinbytes': 15})
+ self.__field_dunno1.readfrombuffer(buf)
+ self.__field_subject=USTRING(**{'sizeinbytes': 64, 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False })
+ self.__field_subject.readfrombuffer(buf)
+ self.__field_msgs=LIST(**{'elementclass': _gen_p_lgvx9100_106, 'length': 10 })
+ self.__field_msgs.readfrombuffer(buf)
+ self.__field_dunno3=UNKNOWN(**{'sizeinbytes': 2292})
+ self.__field_dunno3.readfrombuffer(buf)
+ self.__field_sender_name=USTRING(**{'sizeinbytes': 33})
+ self.__field_sender_name.readfrombuffer(buf)
+ self.__field_sender_callback=USTRING(**{'sizeinbytes': 33})
+ self.__field_sender_callback.readfrombuffer(buf)
+ self.__field_unk3=UNKNOWN(**{'sizeinbytes': 24})
+ self.__field_unk3.readfrombuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+
+
+ def __getfield_unk0(self):
+ return self.__field_unk0.getvalue()
+
+ def __setfield_unk0(self, value):
+ if isinstance(value,UINT):
+ self.__field_unk0=value
+ else:
+ self.__field_unk0=UINT(value,**{'sizeinbytes': 4})
+
+ def __delfield_unk0(self): del self.__field_unk0
+
+ unk0=property(__getfield_unk0, __setfield_unk0, __delfield_unk0, None)
+
+ def __getfield_index(self):
+ return self.__field_index.getvalue()
+
+ def __setfield_index(self, value):
+ if isinstance(value,UINT):
+ self.__field_index=value
+ else:
+ self.__field_index=UINT(value,**{'sizeinbytes': 4})
+
+ def __delfield_index(self): del self.__field_index
+
+ index=property(__getfield_index, __setfield_index, __delfield_index, None)
+
+ def __getfield_unk1(self):
+ return self.__field_unk1.getvalue()
+
+ def __setfield_unk1(self, value):
+ if isinstance(value,UINT):
+ self.__field_unk1=value
+ else:
+ self.__field_unk1=UINT(value,**{'sizeinbytes': 4})
+
+ def __delfield_unk1(self): del self.__field_unk1
+
+ unk1=property(__getfield_unk1, __setfield_unk1, __delfield_unk1, None)
+
+ def __getfield_gtimerecv(self):
+ return self.__field_gtimerecv.getvalue()
+
+ def __setfield_gtimerecv(self, value):
+ if isinstance(value,GPSDATE):
+ self.__field_gtimerecv=value
+ else:
+ self.__field_gtimerecv=GPSDATE(value,**{'sizeinbytes': 4})
+
+ def __delfield_gtimerecv(self): del self.__field_gtimerecv
+
+ gtimerecv=property(__getfield_gtimerecv, __setfield_gtimerecv, __delfield_gtimerecv, None)
+
+ def __getfield_timesent(self):
+ return self.__field_timesent.getvalue()
+
+ def __setfield_timesent(self, value):
+ if isinstance(value,SMSDATE):
+ self.__field_timesent=value
+ else:
+ self.__field_timesent=SMSDATE(value,**{'sizeinbytes': 6})
+
+ def __delfield_timesent(self): del self.__field_timesent
+
+ timesent=property(__getfield_timesent, __setfield_timesent, __delfield_timesent, None)
+
+ def __getfield_unk2(self):
+ return self.__field_unk2.getvalue()
+
+ def __setfield_unk2(self, value):
+ if isinstance(value,UINT):
+ self.__field_unk2=value
+ else:
+ self.__field_unk2=UINT(value,**{'sizeinbytes': 2})
+
+ def __delfield_unk2(self): del self.__field_unk2
+
+ unk2=property(__getfield_unk2, __setfield_unk2, __delfield_unk2, None)
+
+ def __getfield_gtimesent(self):
+ return self.__field_gtimesent.getvalue()
+
+ def __setfield_gtimesent(self, value):
+ if isinstance(value,GPSDATE):
+ self.__field_gtimesent=value
+ else:
+ self.__field_gtimesent=GPSDATE(value,**{'sizeinbytes': 4})
+
+ def __delfield_gtimesent(self): del self.__field_gtimesent
+
+ gtimesent=property(__getfield_gtimesent, __setfield_gtimesent, __delfield_gtimesent, None)
+
+ def __getfield_read(self):
+ return self.__field_read.getvalue()
+
+ def __setfield_read(self, value):
+ if isinstance(value,UINT):
+ self.__field_read=value
+ else:
+ self.__field_read=UINT(value,**{'sizeinbytes': 1})
+
+ def __delfield_read(self): del self.__field_read
+
+ read=property(__getfield_read, __setfield_read, __delfield_read, None)
+
+ def __getfield_locked(self):
+ return self.__field_locked.getvalue()
+
+ def __setfield_locked(self, value):
+ if isinstance(value,UINT):
+ self.__field_locked=value
+ else:
+ self.__field_locked=UINT(value,**{'sizeinbytes': 1})
+
+ def __delfield_locked(self): del self.__field_locked
+
+ locked=property(__getfield_locked, __setfield_locked, __delfield_locked, None)
+
+ def __getfield_priority(self):
+ return self.__field_priority.getvalue()
+
+ def __setfield_priority(self, value):
+ if isinstance(value,UINT):
+ self.__field_priority=value
+ else:
+ self.__field_priority=UINT(value,**{'sizeinbytes': 1})
+
+ def __delfield_priority(self): del self.__field_priority
+
+ priority=property(__getfield_priority, __setfield_priority, __delfield_priority, None)
+
+ def __getfield_dunno1(self):
+ return self.__field_dunno1.getvalue()
+
+ def __setfield_dunno1(self, value):
+ if isinstance(value,UNKNOWN):
+ self.__field_dunno1=value
+ else:
+ self.__field_dunno1=UNKNOWN(value,**{'sizeinbytes': 15})
+
+ def __delfield_dunno1(self): del self.__field_dunno1
+
+ dunno1=property(__getfield_dunno1, __setfield_dunno1, __delfield_dunno1, None)
+
+ def __getfield_subject(self):
+ return self.__field_subject.getvalue()
+
+ def __setfield_subject(self, value):
+ if isinstance(value,USTRING):
+ self.__field_subject=value
+ else:
+ self.__field_subject=USTRING(value,**{'sizeinbytes': 64, 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False })
+
+ def __delfield_subject(self): del self.__field_subject
+
+ subject=property(__getfield_subject, __setfield_subject, __delfield_subject, None)
+
+ def __getfield_msgs(self):
+ try: self.__field_msgs
+ except:
+ self.__field_msgs=LIST(**{'elementclass': _gen_p_lgvx9100_106, 'length': 10 })
+ return self.__field_msgs.getvalue()
+
+ def __setfield_msgs(self, value):
+ if isinstance(value,LIST):
+ self.__field_msgs=value
+ else:
+ self.__field_msgs=LIST(value,**{'elementclass': _gen_p_lgvx9100_106, 'length': 10 })
+
+ def __delfield_msgs(self): del self.__field_msgs
+
+ msgs=property(__getfield_msgs, __setfield_msgs, __delfield_msgs, None)
+
+ def __getfield_dunno3(self):
+ return self.__field_dunno3.getvalue()
+
+ def __setfield_dunno3(self, value):
+ if isinstance(value,UNKNOWN):
+ self.__field_dunno3=value
+ else:
+ self.__field_dunno3=UNKNOWN(value,**{'sizeinbytes': 2292})
+
+ def __delfield_dunno3(self): del self.__field_dunno3
+
+ dunno3=property(__getfield_dunno3, __setfield_dunno3, __delfield_dunno3, None)
+
+ def __getfield_sender_name(self):
+ return self.__field_sender_name.getvalue()
+
+ def __setfield_sender_name(self, value):
+ if isinstance(value,USTRING):
+ self.__field_sender_name=value
+ else:
+ self.__field_sender_name=USTRING(value,**{'sizeinbytes': 33})
+
+ def __delfield_sender_name(self): del self.__field_sender_name
+
+ sender_name=property(__getfield_sender_name, __setfield_sender_name, __delfield_sender_name, None)
+
+ def __getfield_sender_callback(self):
+ return self.__field_sender_callback.getvalue()
+
+ def __setfield_sender_callback(self, value):
+ if isinstance(value,USTRING):
+ self.__field_sender_callback=value
+ else:
+ self.__field_sender_callback=USTRING(value,**{'sizeinbytes': 33})
+
+ def __delfield_sender_callback(self): del self.__field_sender_callback
+
+ sender_callback=property(__getfield_sender_callback, __setfield_sender_callback, __delfield_sender_callback, None)
+
+ def __getfield_unk3(self):
+ return self.__field_unk3.getvalue()
+
+ def __setfield_unk3(self, value):
+ if isinstance(value,UNKNOWN):
+ self.__field_unk3=value
+ else:
+ self.__field_unk3=UNKNOWN(value,**{'sizeinbytes': 24})
+
+ def __delfield_unk3(self): del self.__field_unk3
+
+ unk3=property(__getfield_unk3, __setfield_unk3, __delfield_unk3, None)
+
+ def __getfield_bin_header1(self):
+ try: self.__field_bin_header1
+ except:
+ self.__field_bin_header1=UINT(**{ 'default': 0 })
+ return self.__field_bin_header1.getvalue()
+
+ def __setfield_bin_header1(self, value):
+ if isinstance(value,UINT):
+ self.__field_bin_header1=value
+ else:
+ self.__field_bin_header1=UINT(value,**{ 'default': 0 })
+
+ def __delfield_bin_header1(self): del self.__field_bin_header1
+
+ bin_header1=property(__getfield_bin_header1, __setfield_bin_header1, __delfield_bin_header1, None)
+
+ def __getfield_bin_header2(self):
+ try: self.__field_bin_header2
+ except:
+ self.__field_bin_header2=UINT(**{ 'default': 0 })
+ return self.__field_bin_header2.getvalue()
+
+ def __setfield_bin_header2(self, value):
+ if isinstance(value,UINT):
+ self.__field_bin_header2=value
+ else:
+ self.__field_bin_header2=UINT(value,**{ 'default': 0 })
+
+ def __delfield_bin_header2(self): del self.__field_bin_header2
+
+ bin_header2=property(__getfield_bin_header2, __setfield_bin_header2, __delfield_bin_header2, None)
+
+ def __getfield_multipartID(self):
+ try: self.__field_multipartID
+ except:
+ self.__field_multipartID=UINT(**{ 'default': 0 })
+ return self.__field_multipartID.getvalue()
+
+ def __setfield_multipartID(self, value):
+ if isinstance(value,UINT):
+ self.__field_multipartID=value
+ else:
+ self.__field_multipartID=UINT(value,**{ 'default': 0 })
+
+ def __delfield_multipartID(self): del self.__field_multipartID
+
+ multipartID=property(__getfield_multipartID, __setfield_multipartID, __delfield_multipartID, None)
+
+ def __getfield_bin_header3(self):
+ try: self.__field_bin_header3
+ except:
+ self.__field_bin_header3=UINT(**{ 'default': 0 })
+ return self.__field_bin_header3.getvalue()
+
+ def __setfield_bin_header3(self, value):
+ if isinstance(value,UINT):
+ self.__field_bin_header3=value
+ else:
+ self.__field_bin_header3=UINT(value,**{ 'default': 0 })
+
+ def __delfield_bin_header3(self): del self.__field_bin_header3
+
+ bin_header3=property(__getfield_bin_header3, __setfield_bin_header3, __delfield_bin_header3, None)
+
+ def iscontainer(self):
+ return True
+
+ def containerelements(self):
+ yield ('unk0', self.__field_unk0, None)
+ yield ('index', self.__field_index, None)
+ yield ('unk1', self.__field_unk1, None)
+ yield ('gtimerecv', self.__field_gtimerecv, None)
+ yield ('timesent', self.__field_timesent, None)
+ yield ('unk2', self.__field_unk2, None)
+ yield ('gtimesent', self.__field_gtimesent, None)
+ yield ('read', self.__field_read, None)
+ yield ('locked', self.__field_locked, None)
+ yield ('priority', self.__field_priority, None)
+ yield ('dunno1', self.__field_dunno1, None)
+ yield ('subject', self.__field_subject, None)
+ yield ('msgs', self.__field_msgs, None)
+ yield ('dunno3', self.__field_dunno3, None)
+ yield ('sender_name', self.__field_sender_name, None)
+ yield ('sender_callback', self.__field_sender_callback, None)
+ yield ('unk3', self.__field_unk3, None)
+ yield ('bin_header1', self.__field_bin_header1, None)
+ yield ('bin_header2', self.__field_bin_header2, None)
+ yield ('multipartID', self.__field_multipartID, None)
+ yield ('bin_header3', self.__field_bin_header3, None)
+
+
+
+
+class _gen_p_lgvx9100_106(BaseProtogenClass):
+ 'Anonymous inner class'
+ __fields=['msg_id', 'msg_length', 'msg_data']
+
+ def __init__(self, *args, **kwargs):
+ dict={}
+ # What was supplied to this function
+ dict.update(kwargs)
+ # Parent constructor
+ super(_gen_p_lgvx9100_106,self).__init__(**dict)
+ if self.__class__ is _gen_p_lgvx9100_106:
+ self._update(args,dict)
+
+
+ def getfields(self):
+ return self.__fields
+
+
+ def _update(self, args, kwargs):
+ super(_gen_p_lgvx9100_106,self)._update(args,kwargs)
+ keys=kwargs.keys()
+ for key in keys:
+ if key in self.__fields:
+ setattr(self, key, kwargs[key])
+ del kwargs[key]
+ # Were any unrecognized kwargs passed in?
+ if __debug__:
+ self._complainaboutunusedargs(_gen_p_lgvx9100_106,kwargs)
+ if len(args): raise TypeError('Unexpected arguments supplied: '+`args`)
+ # Make all P fields that haven't already been constructed
+
+
+ def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
+ 'Writes this packet to the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ self.__field_msg_id.writetobuffer(buf)
+ self.__field_msg_length.writetobuffer(buf)
+ self.__field_msg_data.writetobuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
+
+
+ def readfrombuffer(self,buf,autolog=True,logtitle="<read data>"):
+ 'Reads this packet from the supplied buffer'
+ self._bufferstartoffset=buf.getcurrentoffset()
+ if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
+ self.__field_msg_id=UINT(**{'sizeinbytes': 1})
+ self.__field_msg_id.readfrombuffer(buf)
+ self.__field_msg_length=UINT(**{'sizeinbytes': 1})
+ self.__field_msg_length.readfrombuffer(buf)
+ self.__field_msg_data=SMSINBOXMSGFRAGMENT()
+ self.__field_msg_data.readfrombuffer(buf)
+ self._bufferendoffset=buf.getcurrentoffset()
+
+
+ def __getfield_msg_id(self):
+ return self.__field_msg_id.getvalue()
+
+ def __setfield_msg_id(self, value):
+ if isinstance(value,UINT):
+ self.__field_msg_id=value
+ else:
+ self.__field_msg_id=UINT(value,**{'sizeinbytes': 1})
+
+ def __delfield_msg_id(self): del self.__field_msg_id
+
+ msg_id=property(__getfield_msg_id, __setfield_msg_id, __delfield_msg_id, None)
+
+ def __getfield_msg_length(self):
+ return self.__field_msg_length.getvalue()
+
+ def __setfield_msg_length(self, value):
+ if isinstance(value,UINT):
+ self.__field_msg_length=value
+ else:
+ self.__field_msg_length=UINT(value,**{'sizeinbytes': 1})
+
+ def __delfield_msg_length(self): del self.__field_msg_length
+
+ msg_length=property(__getfield_msg_length, __setfield_msg_length, __delfield_msg_length, None)
+
+ def __getfield_msg_data(self):
+ return self.__field_msg_data.getvalue()
+
+ def __setfield_msg_data(self, value):
+ if isinstance(value,SMSINBOXMSGFRAGMENT):
+ self.__field_msg_data=value
+ else:
+ self.__field_msg_data=SMSINBOXMSGFRAGMENT(value,)
+
+ def __delfield_msg_data(self): del self.__field_msg_data
+
+ msg_data=property(__getfield_msg_data, __setfield_msg_data, __delfield_msg_data, None)
+
+ def iscontainer(self):
+ return True
+
+ def containerelements(self):
+ yield ('msg_id', self.__field_msg_id, None)
+ yield ('msg_length', self.__field_msg_length, None)
+ yield ('msg_data', self.__field_msg_data, None)
+
+
+
+