Package phones ::
Module p_sk6100
|
|
1
2
3 """Various descriptions of data specific to SKTT IMT2000"""
4
5 from prototypes import *
6
7
8 UINT=UINTlsb
9 BOOL=BOOLlsb
10
11 NUM_PBENTRIES=1200
12 NUM_PBGROUPS=41
13 NUM_PHONES=2400
14
16 __fields=['filename', 'pbentries']
17
26
27
30
31
43
44
45
46 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
53
54
64
65
67 return self.__field_filename.getvalue()
68
70 if isinstance(value,USTRING):
71 self.__field_filename=value
72 else:
73 self.__field_filename=USTRING(value,**{'sizeinbytes': 16})
74
76
77 filename=property(__getfield_filename, __setfield_filename, __delfield_filename, None)
78
80 return self.__field_pbentries.getvalue()
81
83 if isinstance(value,LIST):
84 self.__field_pbentries=value
85 else:
86 self.__field_pbentries=LIST(value,**{'elementclass': pbentry, 'length': NUM_PBENTRIES})
87
89
90 pbentries=property(__getfield_pbentries, __setfield_pbentries, __delfield_pbentries, None)
91
94
96 yield ('filename', self.__field_filename, None)
97 yield ('pbentries', self.__field_pbentries, None)
98
99
100
101
102 -class pbentry(BaseProtogenClass):
103 __fields=['slot', 'unk1', 'group_id', 'unk3', 'record', 'unk4', 'name', 'unk2']
104
105 - def __init__(self, *args, **kwargs):
106 dict={}
107
108 dict.update(kwargs)
109
110 super(pbentry,self).__init__(**dict)
111 if self.__class__ is pbentry:
112 self._update(args,dict)
113
114
115 - def getfields(self):
117
118
119 - def _update(self, args, kwargs):
120 super(pbentry,self)._update(args,kwargs)
121 keys=kwargs.keys()
122 for key in keys:
123 if key in self.__fields:
124 setattr(self, key, kwargs[key])
125 del kwargs[key]
126
127 if __debug__:
128 self._complainaboutunusedargs(pbentry,kwargs)
129 if len(args): raise TypeError('Unexpected arguments supplied: '+`args`)
130
131
132
133 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
134 'Writes this packet to the supplied buffer'
135 self._bufferstartoffset=buf.getcurrentoffset()
136 self.__field_slot.writetobuffer(buf)
137 self.__field_unk1.writetobuffer(buf)
138 self.__field_group_id.writetobuffer(buf)
139 self.__field_unk3.writetobuffer(buf)
140 self.__field_record.writetobuffer(buf)
141 self.__field_unk4.writetobuffer(buf)
142 self.__field_name.writetobuffer(buf)
143 self.__field_unk2.writetobuffer(buf)
144 self._bufferendoffset=buf.getcurrentoffset()
145 if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
146
147
148 - def readfrombuffer(self,buf,autolog=True,logtitle="<read data>"):
149 'Reads this packet from the supplied buffer'
150 self._bufferstartoffset=buf.getcurrentoffset()
151 if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
152 self.__field_slot=UINT(**{'sizeinbytes': 1})
153 self.__field_slot.readfrombuffer(buf)
154 self.__field_unk1=UNKNOWN(**{'sizeinbytes': 3})
155 self.__field_unk1.readfrombuffer(buf)
156 self.__field_group_id=UINT(**{'sizeinbytes': 1})
157 self.__field_group_id.readfrombuffer(buf)
158 self.__field_unk3=UNKNOWN(**{'sizeinbytes': 1})
159 self.__field_unk3.readfrombuffer(buf)
160 self.__field_record=UINT(**{'sizeinbytes': 1})
161 self.__field_record.readfrombuffer(buf)
162 self.__field_unk4=UNKNOWN(**{'sizeinbytes': 5})
163 self.__field_unk4.readfrombuffer(buf)
164 self.__field_name=USTRING(**{'sizeinbytes': 20, 'encoding': 'iso-8859-8' })
165 self.__field_name.readfrombuffer(buf)
166 self.__field_unk2=UNKNOWN(**{'sizeinbytes': 96})
167 self.__field_unk2.readfrombuffer(buf)
168 self._bufferendoffset=buf.getcurrentoffset()
169
170
171 - def __getfield_slot(self):
172 return self.__field_slot.getvalue()
173
174 - def __setfield_slot(self, value):
175 if isinstance(value,UINT):
176 self.__field_slot=value
177 else:
178 self.__field_slot=UINT(value,**{'sizeinbytes': 1})
179
180 - def __delfield_slot(self): del self.__field_slot
181
182 slot=property(__getfield_slot, __setfield_slot, __delfield_slot, "All of them are numbered")
183
184 - def __getfield_unk1(self):
185 return self.__field_unk1.getvalue()
186
187 - def __setfield_unk1(self, value):
188 if isinstance(value,UNKNOWN):
189 self.__field_unk1=value
190 else:
191 self.__field_unk1=UNKNOWN(value,**{'sizeinbytes': 3})
192
193 - def __delfield_unk1(self): del self.__field_unk1
194
195 unk1=property(__getfield_unk1, __setfield_unk1, __delfield_unk1, None)
196
198 return self.__field_group_id.getvalue()
199
200 - def __setfield_group_id(self, value):
201 if isinstance(value,UINT):
202 self.__field_group_id=value
203 else:
204 self.__field_group_id=UINT(value,**{'sizeinbytes': 1})
205
206 - def __delfield_group_id(self): del self.__field_group_id
207
208 group_id=property(__getfield_group_id, __setfield_group_id, __delfield_group_id, None)
209
210 - def __getfield_unk3(self):
211 return self.__field_unk3.getvalue()
212
213 - def __setfield_unk3(self, value):
214 if isinstance(value,UNKNOWN):
215 self.__field_unk3=value
216 else:
217 self.__field_unk3=UNKNOWN(value,**{'sizeinbytes': 1})
218
219 - def __delfield_unk3(self): del self.__field_unk3
220
221 unk3=property(__getfield_unk3, __setfield_unk3, __delfield_unk3, None)
222
224 return self.__field_record.getvalue()
225
226 - def __setfield_record(self, value):
227 if isinstance(value,UINT):
228 self.__field_record=value
229 else:
230 self.__field_record=UINT(value,**{'sizeinbytes': 1})
231
232 - def __delfield_record(self): del self.__field_record
233
234 record=property(__getfield_record, __setfield_record, __delfield_record, "Only nonzero if not deleted")
235
236 - def __getfield_unk4(self):
237 return self.__field_unk4.getvalue()
238
239 - def __setfield_unk4(self, value):
240 if isinstance(value,UNKNOWN):
241 self.__field_unk4=value
242 else:
243 self.__field_unk4=UNKNOWN(value,**{'sizeinbytes': 5})
244
245 - def __delfield_unk4(self): del self.__field_unk4
246
247 unk4=property(__getfield_unk4, __setfield_unk4, __delfield_unk4, None)
248
249 - def __getfield_name(self):
250 return self.__field_name.getvalue()
251
252 - def __setfield_name(self, value):
253 if isinstance(value,USTRING):
254 self.__field_name=value
255 else:
256 self.__field_name=USTRING(value,**{'sizeinbytes': 20, 'encoding': 'iso-8859-8' })
257
258 - def __delfield_name(self): del self.__field_name
259
260 name=property(__getfield_name, __setfield_name, __delfield_name, "The place until the zeroes end")
261
262 - def __getfield_unk2(self):
263 return self.__field_unk2.getvalue()
264
265 - def __setfield_unk2(self, value):
266 if isinstance(value,UNKNOWN):
267 self.__field_unk2=value
268 else:
269 self.__field_unk2=UNKNOWN(value,**{'sizeinbytes': 96})
270
271 - def __delfield_unk2(self): del self.__field_unk2
272
273 unk2=property(__getfield_unk2, __setfield_unk2, __delfield_unk2, None)
274
275 - def iscontainer(self):
277
279 yield ('slot', self.__field_slot, "All of them are numbered")
280 yield ('unk1', self.__field_unk1, None)
281 yield ('group_id', self.__field_group_id, None)
282 yield ('unk3', self.__field_unk3, None)
283 yield ('record', self.__field_record, "Only nonzero if not deleted")
284 yield ('unk4', self.__field_unk4, None)
285 yield ('name', self.__field_name, "The place until the zeroes end")
286 yield ('unk2', self.__field_unk2, None)
287
288
289
290
291 -class groups(BaseProtogenClass):
292 __fields=['filename', 'pbgroups']
293
302
303
306
307
319
320
321
322 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
329
330
340
341
343 return self.__field_filename.getvalue()
344
346 if isinstance(value,USTRING):
347 self.__field_filename=value
348 else:
349 self.__field_filename=USTRING(value,**{'sizeinbytes': 16})
350
352
353 filename=property(__getfield_filename, __setfield_filename, __delfield_filename, "group file name")
354
356 return self.__field_pbgroups.getvalue()
357
359 if isinstance(value,LIST):
360 self.__field_pbgroups=value
361 else:
362 self.__field_pbgroups=LIST(value,**{'elementclass': pbgroup, 'length': NUM_PBGROUPS})
363
365
366 pbgroups=property(__getfield_pbgroups, __setfield_pbgroups, __delfield_pbgroups, None)
367
370
372 yield ('filename', self.__field_filename, "group file name")
373 yield ('pbgroups', self.__field_pbgroups, None)
374
375
376
377
379 __fields=['group_id', 'unk1', 'name', 'unk3', 'unk2']
380
389
390
393
394
406
407
408
409 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
419
420
422 'Reads this packet from the supplied buffer'
423 self._bufferstartoffset=buf.getcurrentoffset()
424 if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
425 self.__field_group_id=UINT(**{'sizeinbytes': 1})
426 self.__field_group_id.readfrombuffer(buf)
427 self.__field_unk1=UNKNOWN(**{'sizeinbytes': 3})
428 self.__field_unk1.readfrombuffer(buf)
429 self.__field_name=USTRING(**{'sizeinbytes': 21, 'encoding': 'iso-8859-8' })
430 self.__field_name.readfrombuffer(buf)
431 self.__field_unk3=UINT(**{'sizeinbytes': 1})
432 self.__field_unk3.readfrombuffer(buf)
433 self.__field_unk2=UNKNOWN(**{'sizeinbytes': 30})
434 self.__field_unk2.readfrombuffer(buf)
435 self._bufferendoffset=buf.getcurrentoffset()
436
437
439 return self.__field_group_id.getvalue()
440
442 if isinstance(value,UINT):
443 self.__field_group_id=value
444 else:
445 self.__field_group_id=UINT(value,**{'sizeinbytes': 1})
446
448
449 group_id=property(__getfield_group_id, __setfield_group_id, __delfield_group_id, None)
450
453
455 if isinstance(value,UNKNOWN):
456 self.__field_unk1=value
457 else:
458 self.__field_unk1=UNKNOWN(value,**{'sizeinbytes': 3})
459
461
462 unk1=property(__getfield_unk1, __setfield_unk1, __delfield_unk1, None)
463
466
468 if isinstance(value,USTRING):
469 self.__field_name=value
470 else:
471 self.__field_name=USTRING(value,**{'sizeinbytes': 21, 'encoding': 'iso-8859-8' })
472
474
475 name=property(__getfield_name, __setfield_name, __delfield_name, None)
476
479
481 if isinstance(value,UINT):
482 self.__field_unk3=value
483 else:
484 self.__field_unk3=UINT(value,**{'sizeinbytes': 1})
485
487
488 unk3=property(__getfield_unk3, __setfield_unk3, __delfield_unk3, None)
489
492
494 if isinstance(value,UNKNOWN):
495 self.__field_unk2=value
496 else:
497 self.__field_unk2=UNKNOWN(value,**{'sizeinbytes': 30})
498
500
501 unk2=property(__getfield_unk2, __setfield_unk2, __delfield_unk2, None)
502
505
507 yield ('group_id', self.__field_group_id, None)
508 yield ('unk1', self.__field_unk1, None)
509 yield ('name', self.__field_name, None)
510 yield ('unk3', self.__field_unk3, None)
511 yield ('unk2', self.__field_unk2, None)
512
513
514
515
516 -class phones(BaseProtogenClass):
517 __fields=['filename', 'records']
518
527
528
531
532
544
545
546
547 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
554
555
565
566
568 return self.__field_filename.getvalue()
569
571 if isinstance(value,USTRING):
572 self.__field_filename=value
573 else:
574 self.__field_filename=USTRING(value,**{'sizeinbytes': 16})
575
577
578 filename=property(__getfield_filename, __setfield_filename, __delfield_filename, None)
579
581 return self.__field_records.getvalue()
582
584 if isinstance(value,LIST):
585 self.__field_records=value
586 else:
587 self.__field_records=LIST(value,**{'elementclass': phone, 'length': NUM_PHONES})
588
590
591 records=property(__getfield_records, __setfield_records, __delfield_records, None)
592
595
597 yield ('filename', self.__field_filename, None)
598 yield ('records', self.__field_records, None)
599
600
601
602
603 -class phone(BaseProtogenClass):
604 __fields=['slot', 'others', 'owner_id', 'type', 'number']
605
614
615
618
619
631
632
633
634 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
644
645
647 'Reads this packet from the supplied buffer'
648 self._bufferstartoffset=buf.getcurrentoffset()
649 if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
650 self.__field_slot=UINT(**{'sizeinbytes': 2})
651 self.__field_slot.readfrombuffer(buf)
652 self.__field_others=UINT(**{'sizeinbytes': 4})
653 self.__field_others.readfrombuffer(buf)
654 self.__field_owner_id=UINT(**{'sizeinbytes': 4})
655 self.__field_owner_id.readfrombuffer(buf)
656 self.__field_type=UINT(**{'sizeinbytes': 1})
657 self.__field_type.readfrombuffer(buf)
658 self.__field_number=USTRING(**{'sizeinbytes': 33})
659 self.__field_number.readfrombuffer(buf)
660 self._bufferendoffset=buf.getcurrentoffset()
661
662
665
667 if isinstance(value,UINT):
668 self.__field_slot=value
669 else:
670 self.__field_slot=UINT(value,**{'sizeinbytes': 2})
671
673
674 slot=property(__getfield_slot, __setfield_slot, __delfield_slot, None)
675
677 return self.__field_others.getvalue()
678
680 if isinstance(value,UINT):
681 self.__field_others=value
682 else:
683 self.__field_others=UINT(value,**{'sizeinbytes': 4})
684
686
687 others=property(__getfield_others, __setfield_others, __delfield_others, None)
688
690 return self.__field_owner_id.getvalue()
691
693 if isinstance(value,UINT):
694 self.__field_owner_id=value
695 else:
696 self.__field_owner_id=UINT(value,**{'sizeinbytes': 4})
697
699
700 owner_id=property(__getfield_owner_id, __setfield_owner_id, __delfield_owner_id, None)
701
704
706 if isinstance(value,UINT):
707 self.__field_type=value
708 else:
709 self.__field_type=UINT(value,**{'sizeinbytes': 1})
710
712
713 type=property(__getfield_type, __setfield_type, __delfield_type, "Home / Work / Cell / Fax")
714
716 return self.__field_number.getvalue()
717
719 if isinstance(value,USTRING):
720 self.__field_number=value
721 else:
722 self.__field_number=USTRING(value,**{'sizeinbytes': 33})
723
725
726 number=property(__getfield_number, __setfield_number, __delfield_number, None)
727
730
732 yield ('slot', self.__field_slot, None)
733 yield ('others', self.__field_others, None)
734 yield ('owner_id', self.__field_owner_id, None)
735 yield ('type', self.__field_type, "Home / Work / Cell / Fax")
736 yield ('number', self.__field_number, None)
737