home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / lib / hplip / base / pml.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2007-04-29  |  20.6 KB  |  570 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.5)
  3.  
  4. import sys
  5. import struct
  6. from g import *
  7. from base.utils import unprintable
  8. GET_REQUEST = 0
  9. GET_NEXT_REQUEST = 1
  10. GET_BLOCK_REQUEST = 2
  11. GET_NEXT_BLOCK_REQUEST = 3
  12. SET_REQUEST = 4
  13. ENABLE_TRAP_REQUEST = 5
  14. DISABLE_TRAP_REQUEST = 6
  15. TRAP_REQUEST = 7
  16. GET_REPLY = 128
  17. GET_NEXT_REPLY = 129
  18. BLOCK_REPLY = 130
  19. NEXT_BLOCK_REPLY = 131
  20. SET_REPLY = 132
  21. ENABLE_TRAP_REPLY = 133
  22. DISABLE_TRAP_REPLY = 133
  23. ERROR_OK = 0
  24. ERROR_OK_END_OF_SUPPORTED_OBJECTS = 1
  25. ERROR_OK_NEAREST_LEGAL_VALUE_SUBSITUTED = 2
  26. ERROR_MAX_OK = 127
  27. ERROR_UNKNOWN_REQUEST = 128
  28. ERROR_BUFFER_OVERFLOW = 129
  29. ERROR_COMMAND_EXECUTION = 130
  30. ERROR_UNKNOWN_OID = 131
  31. ERROR_OBJ_DOES_NOT_SUPPORT_SPECIFIED_ACTION = 132
  32. ERROR_INVALID_OR_UNSUPPORTED_VALUE = 133
  33. ERROR_PAST_END_OF_SUPPORTED_OBJS = 134
  34. ERROR_ACTION_CANNOT_BE_PERFORMED_NOW = 135
  35. ERROR_SYNTAX = 136
  36. TYPE_MASK = 252
  37. TYPE_OBJECT_IDENTIFIER = 0
  38. TYPE_ENUMERATION = 4
  39. TYPE_SIGNED_INTEGER = 8
  40. TYPE_REAL = 12
  41. TYPE_STRING = 16
  42. TYPE_BINARY = 20
  43. TYPE_ERROR_CODE = 24
  44. TYPE_NULL_VALUE = 28
  45. TYPE_COLLECTION = 32
  46. TYPE_UNKNOWN = 255
  47. MAX_VALUE_LEN = 1023
  48. MAX_OID_LEN = 32
  49. MAX_DATALEN = 4096
  50. INT_SIZE_BYTE = struct.calcsize('b')
  51. INT_SIZE_WORD = struct.calcsize('h')
  52. INT_SIZE_INT = struct.calcsize('i')
  53.  
  54. def buildPMLGetPacket(oid):
  55.     oid = []([ chr(int(b.strip())) for b in oid.split('.') ])
  56.     return struct.pack('>BBB%ss' % len(oid), GET_REQUEST, TYPE_OBJECT_IDENTIFIER, len(oid), oid)
  57.  
  58.  
  59. def buildPMLGetPacketEx(oid):
  60.     return buildPMLGetPacket(oid['oid'])
  61.  
  62.  
  63. def buildEmbeddedPMLSetPacket(oid, value, data_type):
  64.     return ''.join([
  65.         'PML ',
  66.         buildPMLSetPacket(oid, value, data_type)])
  67.  
  68.  
  69. def buildPMLSetPacket(oid, value, data_type):
  70.     oid = []([ chr(int(b.strip())) for b in oid.split('.') ])
  71.     if data_type in (TYPE_ENUMERATION, TYPE_SIGNED_INTEGER, TYPE_COLLECTION):
  72.         data = struct.pack('>i', int(value))
  73.         if value > 0:
  74.             while len(data) > 0 and data[0] == '\x00':
  75.                 data = data[1:]
  76.                 continue
  77.                 []
  78.         else:
  79.             while len(data) > 1 and data[0] == '\xff' and data[1] == '\xff':
  80.                 data = data[1:]
  81.         data = struct.pack('>BB%ds' % len(data), data_type, len(data), data)
  82.     elif data_type == TYPE_REAL:
  83.         data = struct.pack('>BBf', data_type, struct.calcsize('f'), float(value))
  84.     elif data_type == TYPE_STRING:
  85.         data = struct.pack('>BBBB%ss' % len(value), data_type, len(value) + 2, 1, 21, value)
  86.     elif data_type == TYPE_BINARY:
  87.         data = data_type(len(value), ''.join, [], []([ chr(x) for x in value ]))
  88.     
  89.     p = struct.pack('>BBB%ss%ss' % (len(oid), len(data)), SET_REQUEST, TYPE_OBJECT_IDENTIFIER, len(oid), oid, data)
  90.     return p
  91.  
  92.  
  93. def ConvertToPMLDataFormat(value, data_type):
  94.     if data_type in (TYPE_ENUMERATION, TYPE_SIGNED_INTEGER, TYPE_COLLECTION):
  95.         data = struct.pack('>i', int(value))
  96.         if value > 0:
  97.             while len(data) > 0 and data[0] == '\x00':
  98.                 data = data[1:]
  99.         else:
  100.             while len(data) > 1 and data[0] == '\xff' and data[1] == '\xff':
  101.                 data = data[1:]
  102.         data = struct.pack('>%ds' % len(data), data)
  103.     elif data_type == TYPE_REAL:
  104.         data = struct.pack('>f', float(value))
  105.     elif data_type == TYPE_STRING:
  106.         data = struct.pack('>BB%ss' % len(value), 0, 14, value)
  107.     elif data_type == TYPE_BINARY:
  108.         if type(value) == type(''):
  109.             data = value
  110.         elif type(value) == type([]):
  111.             data = ''.join([], []([ chr(x) for x in value ]))
  112.         else:
  113.             log.error('Value type error.')
  114.     
  115.     return data
  116.  
  117.  
  118. def ConvertFromPMLDataFormat(data, data_type, desired_int_size = INT_SIZE_INT):
  119.     if data_type in (TYPE_ENUMERATION, TYPE_SIGNED_INTEGER, TYPE_COLLECTION):
  120.         if len(data):
  121.             if data[0] == '\xff':
  122.                 while len(data) < 4:
  123.                     data = '\xff' + data
  124.             else:
  125.                 while len(data) < 4:
  126.                     data = '\x00' + data
  127.             if desired_int_size == INT_SIZE_INT:
  128.                 return struct.unpack('>i', data)[0]
  129.             elif desired_int_size == INT_SIZE_WORD:
  130.                 return struct.unpack('>h', data[-INT_SIZE_WORD])[0]
  131.             elif desired_int_size == INT_SIZE_BYTE:
  132.                 return struct.unpack('>b', data[-INT_SIZE_BYTE])[0]
  133.             else:
  134.                 raise Error(ERROR_INTERNAL)
  135.         else:
  136.             return 0
  137.     elif data_type == TYPE_REAL:
  138.         if len(data) == struct.calcsize('f'):
  139.             return struct.unpack('>f', data)[0]
  140.         else:
  141.             return 0
  142.     elif data_type == TYPE_STRING:
  143.         return [](_[1])
  144.     elif data_type == TYPE_BINARY:
  145.         return data
  146.     
  147.  
  148.  
  149. def parsePMLPacket(p, expected_data_type = TYPE_UNKNOWN):
  150.     (pos, state) = (0, 1)
  151.     data_type = TYPE_UNKNOWN
  152.     error_state = False
  153.     while state:
  154.         if state == 1:
  155.             (reply, error_code) = struct.unpack('>BB', p[pos:pos + 2])
  156.             state = 2
  157.             pos = pos + 2
  158.             if error_code > ERROR_MAX_OK:
  159.                 error_state = True
  160.             
  161.         error_code > ERROR_MAX_OK
  162.         if state == 2:
  163.             (data_type, length) = struct.unpack('>BB', p[pos:pos + 2])
  164.             state = 3
  165.             pos = pos + 2
  166.             if error_state:
  167.                 if expected_data_type in (TYPE_COLLECTION, TYPE_ENUMERATION, TYPE_SIGNED_INTEGER, TYPE_BINARY):
  168.                     data = 0
  169.                 elif expected_data_type == TYPE_REAL:
  170.                     data = 0
  171.                 else:
  172.                     data = ''
  173.                 break
  174.             
  175.         error_state
  176.         if state == 3:
  177.             data = p[pos:pos + length]
  178.             state = 0
  179.             pos = pos + length
  180.             if data_type == TYPE_OBJECT_IDENTIFIER:
  181.                 state = 2
  182.                 continue
  183.             elif data_type == TYPE_STRING:
  184.                 if length > 0:
  185.                     (symbol_set, data) = struct.unpack('>H%ss' % (length - 2), data)
  186.                 else:
  187.                     data = ''
  188.             elif data_type == TYPE_BINARY:
  189.                 data = [ ord(b) for b in data ]
  190.             elif data_type == TYPE_ENUMERATION:
  191.                 if length > 0:
  192.                     data = struct.unpack('>i', '%s%s' % ('\x00' * (4 - length), data))[0]
  193.                 else:
  194.                     data = 0
  195.             elif data_type == TYPE_REAL:
  196.                 if length > 0:
  197.                     data = struct.unpack('>f', data)[0]
  198.                 else:
  199.                     data = 0
  200.             elif data_type == TYPE_SIGNED_INTEGER:
  201.                 if length > 0:
  202.                     pad = '\x00'
  203.                     if ord(data[0]) & 128:
  204.                         pad = '\xff'
  205.                     
  206.                     data = struct.unpack('>i', '%s%s' % (pad * (4 - length), data))[0]
  207.                 else:
  208.                     data = 0
  209.             elif data_type == TYPE_COLLECTION:
  210.                 if length > 0:
  211.                     data = struct.unpack('>i', '%s%s' % ('\x00' * (4 - length), data))[0]
  212.                 else:
  213.                     data = 0
  214.             elif data_type == TYPE_ERROR_CODE:
  215.                 data = struct.unpack('>B', data)[0]
  216.             elif data_type == TYPE_NULL_VALUE:
  217.                 data = None
  218.             
  219.             break
  220.             continue
  221.     return (data, data_type, error_code)
  222.  
  223.  
  224. def HPToSNMP(oid):
  225.     return '.'.join([
  226.         '1.3.6.1.4.1.11.2.3.9.4.2',
  227.         oid,
  228.         '0'])
  229.  
  230.  
  231. def StdToSNMP(oid):
  232.     return '.'.join([
  233.         '1.3.6.1.2.1.43',
  234.         oid[2:]])
  235.  
  236.  
  237. def HRToSNMP(oid):
  238.     return '.'.join([
  239.         '1.3.6.1.2.1.25',
  240.         oid[2:]])
  241.  
  242.  
  243. def PMLToSNMP(oid):
  244.     if not len(oid) > 2:
  245.         raise AssertionError
  246.     if oid[0] == '0':
  247.         return oid[2:]
  248.     elif oid[0] == '1':
  249.         return HPToSNMP(oid)
  250.     elif oid[0] == '2':
  251.         return StdToSNMP(oid)
  252.     elif oid[0] == '3':
  253.         return HRToSNMP(oid)
  254.     
  255.     if not False:
  256.         raise AssertionError
  257.  
  258. OID_DEVICE_SUPPORTED_FUNCTIONS = ('1.1.2.67', TYPE_COLLECTION)
  259. DEVICE_SUPPORTED_FUNCTIONS_SCAN = 2
  260. DEVICE_SUPPORTED_FUNCTIONS_SCAN_SIMPLEX = 4
  261. DEVICE_SUPPORTED_FUNCTIONS_SCAN_DUPLEX = 8
  262. DEVICE_SUPPORTED_FUNCTIONS_COPY = 16
  263. DEVICE_SUPPORTED_FUNCTIONS_COPY_SIMPLEX_SIMPLEX = 32
  264. DEVICE_SUPPORTED_FUNCTIONS_COPY_SIMPLEX_DUPLEX = 64
  265. DEVICE_SUPPORTED_FUNCTIONS_COPY_DUPLEX_SIMPLEX = 128
  266. DEVICE_SUPPORTED_FUNCTIONS_COPY_DUPLEX_DUPLEX = 256
  267. DEVICE_SUPPORTED_FUNCTIONS_COPY_COLLATION = 512
  268. DEVICE_SUPPORTED_FUNCTIONS_PRINT = 1024
  269. DEVICE_SUPPORTED_FUNCTIONS_AUTO_FEED_SIMPLEX = 2048
  270. DEVICE_SUPPORTED_FUNCTIONS_AUTO_FEED_DUPLEX = 4096
  271. DEVICE_SUPPORTED_FUNCTIONS_FAX_SEND = 8192
  272. DEVICE_SUPPORTED_FUNCTIONS_FAX_RECV = 16384
  273. DEVICE_SUPPORTED_FUNCTIONS_MASS_STORAGE = 32768
  274. DEVICE_SUPPORTED_FUNCTIONS_STREAMING_SAVE = 65536
  275. DEVICE_SUPPORTED_FUNCTIONS_FAX_CONFIG = 131072
  276. DEVICE_SUPPORTED_FUNCTIONS_FAX_CFG_SPEEDDIAL = 262144
  277. DEVICE_SUPPORTED_FUNCTIONS_FAX_CFG_GROUPDIAL = 524288
  278. OID_CLEAN = ('1.4.1.5.1.1', TYPE_ENUMERATION)
  279. CLEAN_CLEAN = 100
  280. CLEAN_PRIME = 200
  281. CLEAN_WIPE_AND_SPIT = 300
  282. OID_SERIAL_NUMBER = ('1.1.3.3', TYPE_STRING)
  283. OID_R_SETTING = ('1.1.1.35', TYPE_SIGNED_INTEGER)
  284. OID_PRINT_INTERNAL_PAGE = ('1.1.5.2', TYPE_ENUMERATION)
  285. PRINT_INTERNAL_PAGE_SUPPLIES_PAGE = 101
  286. PRINT_INTERNAL_PAGE_COLOR_PALETTE_CMYK_PAGE = 259
  287. PRINT_INTERNAL_PAGE_COLOR_CAL = 1102
  288. PRINT_INTERNAL_PAGE_COLOR_CAL_VERIFICATION = 1104
  289. PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE = 1100
  290. PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE_VERIFICATION = 1150
  291. PRINT_INTERNAL_PAGE_LINEFEED_CALIBRATION = 1407
  292. PRINT_INTERNAL_PAGE_PRINT_QUALITY_DIAGNOSTIC = 1409
  293. OID_SPM_LINE1 = ('2.16.5.1.2.1.1', TYPE_STRING)
  294. OID_SPM_LINE2 = ('2.16.5.1.2.1.2', TYPE_STRING)
  295. OID_HP_LINE1 = ('1.1.2.20.2.1.1', TYPE_STRING)
  296. OID_HP_LINE2 = ('1.1.2.20.2.2.1', TYPE_STRING)
  297. OID_ON_OFF_LINE = ('1.1.2.5', TYPE_SIGNED_INTEGER)
  298. ON_OFF_LINE_ONLINE = 1
  299. ON_OFF_LINE_OFFLINE = 2
  300. ON_OFF_LINE_OFFLINE_AT_END_OF_JOB = 3
  301. OID_SLEEP_MODE = ('1.1.1.2', TYPE_SIGNED_INTEGER)
  302. SLEEP_MODE_FALSE = 1
  303. SLEEP_MODE_TRUE = 2
  304. OID_PRINTER_STATUS = ('3.3.5.1.1.1', TYPE_SIGNED_INTEGER)
  305. PRINTER_STATUS_OTHER = 1
  306. PRINTER_STATUS_UNKNOWN = 2
  307. PRINTER_STATUS_IDLE = 3
  308. PRINTER_STATUS_PRINTING = 4
  309. PRINTER_STATUS_WARMUP = 5
  310. OID_COVER_STATUS = ('2.6.1.1.3.1.1', TYPE_SIGNED_INTEGER)
  311. COVER_STATUS_OPEN = 3
  312. COVER_STATUS_CLOSED = 4
  313. OID_DETECTED_ERROR_STATE = ('3.3.5.1.2.1', TYPE_BINARY)
  314. DETECTED_ERROR_STATE_LOW_PAPER_MASK = 128
  315. DETECTED_ERROR_STATE_NO_PAPER_MASK = 64
  316. DETECTED_ERROR_STATE_LOW_CART_MASK = 32
  317. DETECTED_ERROR_STATE_OUT_CART_MASK = 16
  318. DETECTED_ERROR_STATE_DOOR_OPEN_MASK = 8
  319. DETECTED_ERROR_STATE_JAMMED_MASK = 4
  320. DETECTED_ERROR_STATE_OFFLINE_MASK = 2
  321. DETECTED_ERROR_STATE_SERVICE_REQUEST_MASK = 1
  322. DETECTED_ERROR_STATE_NO_ERROR = 0
  323. OID_MARKER_SUPPLIES_TYPE_x = '2.11.1.1.5.1.%d'
  324. OID_MARKER_SUPPLIES_TYPE_x_TYPE = TYPE_ENUMERATION
  325. OID_MARKER_SUPPLIES_TYPE_OTHER = 1
  326. OID_MARKER_SUPPLIES_TYPE_UNKNOWN = 2
  327. OID_MARKER_SUPPLIES_TYPE_TONER = 3
  328. OID_MARKER_SUPPLIES_TYPE_WASTE_TONER = 4
  329. OID_MARKER_SUPPLIES_TYPE_INK = 5
  330. OID_MARKER_SUPPLIES_TYPE_INK_CART = 6
  331. OID_MARKER_SUPPLIES_TYPE_INK_RIBBON = 7
  332. OID_MARKER_SUPPLIES_TYPE_WASTE_INK = 8
  333. OID_MARKER_SUPPLIES_TYPE_OPC = 9
  334. OID_MARKER_SUPPLIES_TYPE_DEVELOPER = 10
  335. OID_MARKER_SUPPLIES_TYPE_FUSER_OIL = 11
  336. OID_MARKER_SUPPLIES_TYPE_SOLID_WAX = 12
  337. OID_MARKER_SUPPLIES_TYPE_RIBBON_WAX = 13
  338. OID_MARKER_SUPPLIES_TYPE_WASTE_WAX = 14
  339. OID_MARKER_SUPPLIES_TYPE_FUSER = 15
  340. OID_MARKER_SUPPLIES_TYPE_CORONA_WIRE = 16
  341. OID_MARKER_SUPPLIES_TYPE_FUSER_OIL_WICK = 17
  342. OID_MARKER_SUPPLIES_TYPE_CLEANER_UNIT = 18
  343. OID_MARKER_SUPPLIES_TYPE_FUSER_CLEANING_PAD = 19
  344. OID_MARKER_SUPPLIES_TYPE_TRANSFER_UNIT = 20
  345. OID_MARKER_SUPPLIES_TYPE_TONER_CART = 21
  346. OID_MARKER_SUPPLIES_TYPE_FUSER_OILER = 22
  347. OID_MARKER_SUPPLIES_TYPE_ADF_MAINT_KIT = 23
  348. OID_MARKER_SUPPLIES_COLORANT_INDEX_x = '2.11.1.1.3.1.%d'
  349. OID_MARKER_SUPPLIES_COLORANT_INDEX_x_TYPE = TYPE_SIGNED_INTEGER
  350. OID_MARKER_SUPPLIES_MAX_x = '2.11.1.1.8.1.%d'
  351. OID_MARKER_SUPPLIES_MAX_x_TYPE = TYPE_SIGNED_INTEGER
  352. OID_MARKER_SUPPLIES_LEVEL_x = '2.11.1.1.9.1.%d'
  353. OID_MARKER_SUPPLIES_LEVEL_x_TYPE = TYPE_SIGNED_INTEGER
  354. OID_MARKER_COLORANT_VALUE_x = '2.12.1.1.4.1.%d'
  355. OID_MARKER_COLORANT_VALUE_x_TYPE = TYPE_STRING
  356. OID_MARKER_STATUS_x = '2.10.2.1.15.1.%d'
  357. OID_MARKER_STATUS_x_TYPE = TYPE_SIGNED_INTEGER
  358. OID_MARKER_STATUS_OK = 0
  359. OID_MARKER_STATUS_LOW_TONER_CONT = 8
  360. OID_MARKER_STATUS_LOW_TONER_STOP = 49
  361. OID_MARKER_STATUS_MISINSTALLED = 51
  362. OID_MARKER_SUPPLIES_DESCRIPTION_x = '2.11.1.1.6.1.%d'
  363. OID_MARKER_SUPPLIES_DESCRIPTION_x_TYPE = TYPE_BINARY
  364. OID_DEVICE_STATUS = ('3.3.2.1.5.1', TYPE_ENUMERATION)
  365. DEVICE_STATUS_UNKNOWN = 1
  366. DEVICE_STATUS_RUNNING = 2
  367. DEVICE_STATUS_WARNING = 3
  368. DEVICE_STATUS_TESTING = 4
  369. DEVICE_STATUS_DOWN = 5
  370. OID_AUTO_ALIGNMENT = ('1.1.5.2', TYPE_ENUMERATION)
  371. AUTO_ALIGNMENT = 1100
  372. OID_ZCA = ('1.4.1.8.5.4.1', TYPE_SIGNED_INTEGER)
  373. OID_AGENT2_VERTICAL_ALIGNMENT = ('1.4.1.5.3.2.5', TYPE_SIGNED_INTEGER)
  374. OID_AGENT2_HORIZONTAL_ALIGNMENT = ('1.4.1.5.3.2.6', TYPE_SIGNED_INTEGER)
  375. OID_AGENT1_BIDIR_ADJUSTMENT = ('1.4.1.5.3.1.7', TYPE_SIGNED_INTEGER)
  376. OID_AGENT2_BIDIR_ADJUSTMENT = ('1.4.1.5.3.2.7', TYPE_SIGNED_INTEGER)
  377. OID_MARKING_AGENTS_INITIALIZED = ('1.4.1.5.1.4', TYPE_COLLECTION)
  378. OID_AGENT3_VERTICAL_ALIGNMENT = ('1.4.1.5.3.3.5', TYPE_SIGNED_INTEGER)
  379. OID_AGENT3_HORIZONTAL_ALIGNMENT = ('1.4.1.5.3.3.6', TYPE_SIGNED_INTEGER)
  380. OID_AGENT3_BIDIR_ADJUSTMENT = ('1.4.1.5.3.3.7', TYPE_SIGNED_INTEGER)
  381. OID_COLOR_CALIBRATION_SELECTION = ('1.4.1.5.1.9', TYPE_SIGNED_INTEGER)
  382. OID_COLOR_CALIBRATION_ARRAY_1 = ('1.4.1.1.30.1.1', TYPE_SIGNED_INTEGER)
  383. OID_COLOR_CALIBRATION_ARRAY_2 = ('1.4.1.1.30.1.2', TYPE_SIGNED_INTEGER)
  384. OID_COLOR_CALIBRATION_ARRAY_3 = ('1.4.1.1.30.1.3', TYPE_SIGNED_INTEGER)
  385. OID_COLOR_CALIBRATION_ARRAY_4 = ('1.4.1.1.30.1.4', TYPE_SIGNED_INTEGER)
  386. OID_COLOR_CALIBRATION_ARRAY_5 = ('1.4.1.1.30.1.5', TYPE_SIGNED_INTEGER)
  387. OID_COLOR_CALIBRATION_ARRAY_6 = ('1.4.1.1.30.1.6', TYPE_SIGNED_INTEGER)
  388. OID_DEVICE_SUPPORTED_FUNCTIONS = ('1.1.2.67', TYPE_COLLECTION)
  389. DEVICE_SUPPORTED_FUNCTIONS_SCAN = 2
  390. DEVICE_SUPPORTED_FUNCTIONS_SCAN_SIMPLEX = 4
  391. DEVICE_SUPPORTED_FUNCTIONS_SCAN_DUPLEX = 8
  392. DEVICE_SUPPORTED_FUNCTIONS_COPY = 16
  393. DEVICE_SUPPORTED_FUNCTIONS_COPY_SIMPLEX_SIMPLEX = 32
  394. DEVICE_SUPPORTED_FUNCTIONS_COPY_SIMPLEX_DUPLEX = 64
  395. DEVICE_SUPPORTED_FUNCTIONS_COPY_DUPLEX_SIMPLEX = 128
  396. DEVICE_SUPPORTED_FUNCTIONS_COPY_DUPLEX_DUPLEX = 256
  397. DEVICE_SUPPORTED_FUNCTIONS_COPY_COLLATION = 512
  398. DEVICE_SUPPORTED_FUNCTIONS_PRINT = 1024
  399. DEVICE_SUPPORTED_FUNCTIONS_AUTO_FEED_SIMPLEX = 2048
  400. DEVICE_SUPPORTED_FUNCTIONS_AUTO_FEED_DUPLEX = 4096
  401. DEVICE_SUPPORTED_FUNCTIONS_FAX_SEND = 8192
  402. DEVICE_SUPPORTED_FUNCTIONS_FAX_RECV = 16384
  403. DEVICE_SUPPORTED_FUNCTIONS_MASS_STORAGE = 32768
  404. DEVICE_SUPPORTED_FUNCTIONS_STREAMING_SAVE = 65536
  405. DEVICE_SUPPORTED_FUNCTIONS_FAX_CONFIG = 131072
  406. DEVICE_SUPPORTED_FUNCTIONS_FAX_CFG_SPEEDDIAL = 262144
  407. DEVICE_SUPPORTED_FUNCTIONS_FAX_CFG_GROUPDIAL = 524288
  408. OID_BATTERY_LEVEL = ('1.1.2.13', TYPE_SIGNED_INTEGER)
  409. OID_POWER_MODE = ('1.1.2.14', TYPE_ENUMERATION)
  410. POWER_MODE_ADPATER = 1
  411. POWER_MODE_BATTERY = 2
  412. POWER_MODE_CHARGING = 4
  413. POWER_MODE_DISCHARGING = 8
  414. POWER_MODE_BATTERY_LEVEL_KNOWN = 16
  415. OID_DEV_DOWNLOAD_TIMEOUT = ('1.1.1.17', TYPE_SIGNED_INTEGER)
  416. DEFAULT_DOWNLOAD_TIMEOUT = 60
  417. OID_FAX_DOWNLOAD_ERROR = ('1.3.7.2.6', TYPE_SIGNED_INTEGER)
  418. OID_FAXJOB_TX_TYPE = ('1.1.6.3.1.3', TYPE_ENUMERATION)
  419. FAXJOB_TX_TYPE_HOST_ONLY = 2
  420. OID_FAXJOB_TX_STATUS = ('1.1.6.3.3.3.1', TYPE_ENUMERATION)
  421. FAXJOB_TX_STATUS_IDLE = 1
  422. FAXJOB_TX_STATUS_DIALING = 2
  423. FAXJOB_TX_STATUS_CONNECTING = 3
  424. FAXJOB_TX_STATUS_TRANSMITTING = 4
  425. FAXJOB_TX_STATUS_DONE = 5
  426. FAXJOB_TX_STATUS_STR = {
  427.     FAXJOB_TX_STATUS_IDLE: 'Idle',
  428.     FAXJOB_TX_STATUS_DIALING: 'Dialing',
  429.     FAXJOB_TX_STATUS_CONNECTING: 'Connecting',
  430.     FAXJOB_TX_STATUS_TRANSMITTING: 'Transmitting',
  431.     FAXJOB_TX_STATUS_DONE: 'Done' }
  432. OID_FAXJOB_RX_STATUS = ('1.1.6.3.3.1.1', TYPE_ENUMERATION)
  433. FAXJOB_RX_STATUS_IDLE = 1
  434. FAXJOB_RX_STATUS_RINGING = 2
  435. FAXJOB_RX_STATUS_ANSWERING = 3
  436. FAXJOB_RX_STATUS_RECEIVING = 4
  437. FAXJOB_RX_STATUS_DONE = 5
  438. FAXJOB_RX_STATUS_STR = {
  439.     FAXJOB_RX_STATUS_IDLE: 'Idle',
  440.     FAXJOB_RX_STATUS_RINGING: 'Ringing',
  441.     FAXJOB_RX_STATUS_ANSWERING: 'Answering',
  442.     FAXJOB_RX_STATUS_RECEIVING: 'Receiving',
  443.     FAXJOB_RX_STATUS_DONE: 'Done' }
  444. OID_FAX_DOWNLOAD = ('1.3.7.1.6', TYPE_ENUMERATION)
  445. UPDN_STATE_IDLE = 1
  446. UPDN_STATE_REQSTART = 2
  447. UPDN_STATE_XFERACTIVE = 3
  448. UPDN_STATE_ERRORABORT = 4
  449. UPDN_STATE_XFERDONE = 5
  450. UPDN_STATE_NEWPAGE = 6
  451. UPDN_STATE_DISABLED = 7
  452. UPDN_STATE_STR = {
  453.     UPDN_STATE_IDLE: 'Idle',
  454.     UPDN_STATE_REQSTART: 'Request start',
  455.     UPDN_STATE_XFERACTIVE: 'Transfer active',
  456.     UPDN_STATE_ERRORABORT: 'Error abort',
  457.     UPDN_STATE_XFERDONE: 'Transfer done',
  458.     UPDN_STATE_NEWPAGE: 'New page',
  459.     UPDN_STATE_DISABLED: 'Disabled' }
  460. OID_FAX_TOKEN = ('1.1.1.27', TYPE_BINARY)
  461. OID_FAX_TX_ID = ('1.1.6.3.2.3', TYPE_SIGNED_INTEGER)
  462. OID_FAXJOB_TX_ERROR = ('1.1.6.3.3.4.1', TYPE_SIGNED_INTEGER)
  463. OID_FAX_LOCAL_PHONE_NUM = ('1.1.3.8', TYPE_STRING)
  464. OID_FAX_STATION_NAME = ('1.1.3.9', TYPE_STRING)
  465. OID_FAX_LINE_TYPE = ('1.3.7.1.16', TYPE_ENUMERATION)
  466. OID_FAX_ANSWERMODE = ('1.1.9.2.1.1', TYPE_ENUMERATION)
  467. OID_FAX_RING_ENABLE = ('1.3.7.1.8', TYPE_ENUMERATION)
  468. OID_FAX_NUM_RINGS_PICKUP = ('1.1.9.2.1.2', TYPE_SIGNED_INTEGER)
  469. OID_FAX_MIN_RINGS_PICKUP = ('1.3.7.2.2', TYPE_SIGNED_INTEGER)
  470. OID_FAX_MAX_RINGS_PICKUP = ('1.3.7.2.3', TYPE_SIGNED_INTEGER)
  471. OID_FAX_RING_TYPE_PICKUP = ('1.1.9.2.1.3', TYPE_COLLECTION)
  472. OID_FAX_DIAL_MODE = ('1.1.9.1.1.1', TYPE_ENUMERATION)
  473. OID_FAX_ALLOW_REDIALS = ('1.4.2.5.3', TYPE_ENUMERATION)
  474. OID_FAX_REDIAL = ('1.1.9.1.1.2', TYPE_COLLECTION)
  475. OID_FAX_RESOLUTION = ('1.4.2.1.1', TYPE_BINARY)
  476. OID_FAX_CONTRAST = ('1.4.2.1.2', TYPE_SIGNED_INTEGER)
  477. OID_FAX_CFG_UPLOAD_DATA_TYPE = ('1.1.1.14', TYPE_ENUMERATION)
  478. FAX_CFG_UPLOAD_DATA_TYPE_SPEEDDIALS = 5
  479. FAX_CFG_UPLOAD_DATA_TYPE_FAXLOGS = 6
  480. FAX_CFG_UPLOAD_DATA_TYPE_CONFIG_PARAMS = 7
  481. FAX_CFG_UPLOAD_DATA_TYPE_JUNK_FAX_DIAL_STRINGS = 8
  482. OID_UPLOAD_TIMEOUT = ('1.1.1.18', TYPE_SIGNED_INTEGER)
  483. DEFAULT_UPLOAD_TIMEOUT = 60
  484. OID_DEVICE_CFG_UPLOAD = ('1.1.1.13', TYPE_ENUMERATION)
  485. OID_COPIER_TOKEN = ('1.1.1.24', TYPE_BINARY)
  486. OID_COPY_SCANNER_DIMENSIONS = ('1.2.2.2.13', TYPE_STRING)
  487. OID_COPIER_CONTRAST = ('1.5.1.2', TYPE_SIGNED_INTEGER)
  488. OID_COPIER_REDUCTION = ('1.5.1.4', TYPE_SIGNED_INTEGER)
  489. OID_COPIER_NUM_COPIES = ('1.5.1.6', TYPE_SIGNED_INTEGER)
  490. OID_COPIER_COLLATION = ('1.5.1.7', TYPE_ENUMERATION)
  491. COPIER_COLLATION_DISABLED = 1
  492. COPIER_COLLATION_FORWARD = 2
  493. OID_COPIER_ENLARGEMENT_MAXIMUM = ('1.5.1.11', TYPE_SIGNED_INTEGER)
  494. OID_COPIER_REDUCTION_MAXIMUM = ('1.5.1.12', TYPE_SIGNED_INTEGER)
  495. OID_COPIER_QUALITY = ('1.5.1.13', TYPE_ENUMERATION)
  496. COPIER_QUALITY_FAST = 1
  497. COPIER_QUALITY_NORMAL = 2
  498. COPIER_QUALITY_PRESENTATION = 3
  499. COPIER_QUALITY_DRAFT = 4
  500. COPIER_QUALITY_BEST = 5
  501. OID_COPIER_ADF_PAGE_COUNT = ('1.5.1.19', TYPE_SIGNED_INTEGER)
  502. OID_COPIER_PRINT_PAGE_COUNT = ('1.5.1.20', TYPE_SIGNED_INTEGER)
  503. OID_COPIER_FIT_TO_PAGE = ('1.5.1.47', TYPE_ENUMERATION)
  504. COPIER_FIT_TO_PAGE_DISABLED = 1
  505. COPIER_FIT_TO_PAGE_ENABLED = 2
  506. OID_COPIER_JOB_QUALITY = ('1.5.1.22', TYPE_ENUMERATION)
  507. OID_COPIER_JOB_MEDIA_SIZE = ('1.5.1.21', TYPE_ENUMERATION)
  508. COPIER_JOB_MEDIA_SIZE_US_LETTER = 2
  509. COPIER_JOB_MEDIA_SIZE_US_LEGAL = 3
  510. COPIER_JOB_MEDIA_SIZE_A4 = 26
  511. OID_COPIER_JOB_COLLATION = ('1.5.1.23', TYPE_ENUMERATION)
  512. OID_COPIER_JOB_NUM_COPIES = ('1.5.1.24', TYPE_SIGNED_INTEGER)
  513. OID_COPIER_JOB_REDUCTION = ('1.5.1.25', TYPE_SIGNED_INTEGER)
  514. OID_COPIER_JOB_CONTRAST = ('1.5.1.26', TYPE_SIGNED_INTEGER)
  515. OID_COPIER_JOB_FIT_TO_PAGE = ('1.5.1.48', TYPE_ENUMERATION)
  516. OID_COPIER_JOB = ('1.5.1.27', TYPE_ENUMERATION)
  517. COPIER_JOB_IDLE = 1
  518. COPIER_JOB_START = 2
  519. COPIER_JOB_ACTIVE = 3
  520. COPIER_JOB_ABORTING = 4
  521. COPIER_JOB_SETUP = 5
  522. OID_SCAN_TO_PRINTER = ('1.5.1.5', TYPE_SIGNED_INTEGER)
  523. SCAN_TO_PRINTER_IDLE = 1
  524. SCAN_TO_PRINTER_START = 2
  525. SCAN_TO_PRINTER_ACTIVE = 3
  526. SCAN_TO_PRINTER_ABORTED = 4
  527. SCAN_TO_PRINTER_SET_DEFAULTS = 5
  528. SCAN_TO_PRINTER_GET_DEFAULTS = 6
  529. OID_PIXEL_DATA_TYPE = ('1.5.1.3', TYPE_SIGNED_INTEGER)
  530. PIXEL_DATA_TYPE_GRAYSCALE_256 = 8
  531. PIXEL_DATA_TYPE_COLOR_24_BIT = 24
  532. OID_COPIER_SPECIAL_FEATURES = ('1.5.1.16', TYPE_SIGNED_INTEGER)
  533. COPY_FEATURE_NONE = 1
  534. COPY_FEATURE_CLONE = 2
  535. COPY_FEATURE_POSTER = 3
  536. COPY_FEATURE_MIRROR = 4
  537. COPY_FEATURE_AUTOFIT = 5
  538. COPY_FEATURE_TWOUP = 6
  539. COPY_FEATURE_AUTOFILL = 7
  540. OID_COPIER_PHOTO_MODE = ('1.5.1.15', TYPE_COLLECTION)
  541. ENHANCE_LIGHT_COLORS = 1
  542. ENHANCE_TEXT = 2
  543. OID_COPIER_NUM_COPIES_AIO = ('1.5.1.6', TYPE_SIGNED_INTEGER)
  544. OID_COPIER_CONTRAST_AIO = ('1.5.1.2', TYPE_SIGNED_INTEGER)
  545. OID_COPIER_REDUCTION_AIO = ('1.5.1.4', TYPE_SIGNED_INTEGER)
  546. OID_COPIER_QUALITY_AIO = ('1.5.1.13', TYPE_ENUMERATION)
  547. OID_COPIER_JOB_INPUT_TRAY_SELECT = ('1.5.1.51', TYPE_SIGNED_INTEGER)
  548. COPIER_JOB_INPUT_TRAY_1 = 1
  549. COPIER_JOB_INPUT_TRAY_2 = 1
  550. COPIER_JOB_INPUT_TRAY_3 = 1
  551. OID_COPIER_MEDIA_TYPE = ('1.5.1.14', TYPE_SIGNED_INTEGER)
  552. COPIER_MEDIA_TYPE_PLAIN = 1
  553. COPIER_MEDIA_TYPE_BRIGHT_WHITE = 2
  554. COPIER_MEDIA_TYPE_PREMIUM_PHOTO = 3
  555. COPIER_MEDIA_TYPE_SPECIAL = 4
  556. COPIER_MEDIA_TYPE_TRANSPARENCY = 5
  557. COPIER_MEDIA_TYPE_IRON_ON = 6
  558. COPIER_MEDIA_TYPE_FAST_TRANSPARANCEY = 7
  559. COPIER_MEDIA_TYPE_BROCHURE_MATTE = 8
  560. COPIER_MEDIA_TYPE_BROCHURE_GLOSSY = 9
  561. COPIER_MEDIA_TYPE_PHOTO_GLOSSY = 10
  562. COPIER_MEDIA_TYPE_MATTE_PAPER = 11
  563. COPIER_MEDIA_TYPE_EVERYDAY_PHOTO = 12
  564. COPIER_MEDIA_TYPE_PHOTO_QUAL_INKJET = 13
  565. COPIER_MEDIA_TYPE_PHOTO = 14
  566. COPIER_MEDIA_TYPE_AUTOMATIC = 15
  567. COPIER_MEDIA_TYPE_ADVANCED_PHOTO = 16
  568. COPIER_MEDIA_TYPE_IRON_ON_MIRRORED = 17
  569. OID_DATE_AND_TIME = ('1.1.2.17', TYPE_BINARY)
  570.