Coding and Decoding in Python

Wanderer wanderer at dialup4less.com
Thu Mar 17 11:07:28 EDT 2011


I have a dll that to communicate with I need to send numeric codes. So
I created a dictionary. It works in one direction in that I can
address the key and get the value. But when the program returns the
value I can't get the key. This code is very simple and I could use a
list and the index except for the last value. Is there a better way to
handle coding and decoding values to strings?

QCam_Info = {
        'qinfCameraType'             : 0,    # Camera model (see
QCam_qcCameraType)
        'qinfSerialNumber'            : 1,    # Deprecated
        'qinfHardwareVersion'       : 2,    # Hardware version
        'qinfFirmwareVersion'       : 3,    # Firmware version
        'qinfCcd'                          : 4,    # CCD model (see
QCam_qcCcd)
        'qinfBitDepth'                   : 5,    # Maximum bit depth
        'qinfCooled'                      : 6,    # Returns 1 if
cooler is available, 0 if not
        'qinfReserved1'                 : 7,    # Reserved
        'qinfImageWidth '              : 8,    # Width of the ROI (in
pixels)
        'qinfImageHeight'              : 9,    # Height of the ROI (in
pixels)
        'qinfImageSize'                 : 10,   # Size of returned
image (in bytes)
        'qinfCcdType'                   : 11,   # CDD type (see
QCam_qcCcdType)
        'qinfCcdWidth'                  : 12,   # CCD maximum width
        'qinfCcdHeight'                 : 13,   # CCD maximum height
        'qinfFirmwareBuild'            : 14,   # Build number of the
firmware
        'qinfUniqueId'                    : 15,   # Same as uniqueId
in QCam_CamListItem
        'qinfIsModelB'                   : 16,   # Cameras
manufactured after March 1, 2004 return 1, otherwise 0
        'qinfIntensifierModel'          : 17,   # Intensifier tube
model (see QCam_qcIntensifierModel)
        'qinfExposureRes'             : 18,   # Exposure time
resolution (nanoseconds)
        'qinfTriggerDelayRes'         : 19,   # Trigger delay
Resolution (nanoseconds)
        'qinfStreamVersion'           : 20,   # Streaming version
        'qinfNormGainSigFigs'       : 21,   # Normalized Gain
Significant Figures resolution
        'qinfNormGaindBRes'        : 22,   # Normalized Gain dB
resolution (in micro units)
        'qinfNormITGainSigFigs'    : 23,   # Normalized Intensifier
Gain Significant Figures
        'qinfNormITGaindBRes'     : 24,   # Normalized Intensifier
Gain dB resolution (micro units)
        'qinfRegulatedCooling'       : 25,   # 1 if camera has
regulated cooling
        'qinfRegulatedCoolingLock'    : 26,   # 1 if camera is at
regulated temperature, 0 otherwise
        'qinfFanControl'              : 29,   # 1 if camera can
control fan speed
        'qinfHighSensitivityMode'     : 30,   # 1 if camera has high
sensitivity mode available
        'qinfBlackoutMode'            : 31,   # 1 if camera has
blackout mode available
        'qinfPostProcessImageSize'    : 32,   # Returns the size (in
bytes) of the post-processed image
        'qinfAsymmetricalBinning'     : 33,   # 1 if camera has
asymmetrical binning (ex: 2x4)
        'qinfEMGain'                  : 34,   # 1 if EM gain is
supported, 0 if not
        'qinfOpenDelay'               : 35,   # 1 if shutter open
delay controls are available, 0 if not
        'qinfCloseDelay'              : 36,   # 1 if shutter close
delay controls are available, 0 if not
        'qinfColorWheelSupported'     : 37,   # 1 if color wheel is
supported, 0 if not
        'qinfReserved2'               : 38,
        'qinfReserved3'               : 39,
        'qinfReserved4'               : 40,
        'qinfReserved5'               : 41,
        'qinfEasyEmModeSupported'     : 42,   # 1 if camera supports
Easy EM mode
        'qinfLockedGainModeSupported' : 43,
        'qinf_last'                   : 44,
        '_qinf_force32'               : 0xFFFFFFFF
    }



More information about the Python-list mailing list