#!/usr/bin/env python

"""
Device Settings that can be changed via cora
"""


class DeviceSettings(object):
    Settings = {
        'allowedPakbusNeighbours': 93,
        'airlinkModemId': 87,
        'baudRate': 11,
        'bmp1LowLevelDelay': 53,
        'bmp1MutexName': 47,
        'bmp1StatId': 16,
        'bmp5CallbackEnabled': 80,
        'cacheIpAddress': 88,
        'callbackEnabled': 36,
        'callbackIdentifier': 37,
        'clkChkSched': 1,
        'collectPortsAndFlags': 84,
        'collectSched': 5,
        'collectViaAdvise': 18,
        'commEnabled': 22,
        'comPortId': 15,
        'createCacheTablesOnlyInMemory': 92,
        'currentProgramName': 89,
        'dataBrokerId': 34,
        'dataCollectionEnabled': 28,
        'defaultCsixmlFormatOptions': 100,
        'defaultCustomCsvFormatOptions': 94,
        'defaultDataFileOutputFormat': 61,
        'defaultDataFileOutputName': 59,
        'defaultDataFileOutputOption': 58,
        'defaultDataFileTimeStampResolution': 60,
        'defaultDataFileToaHeaderFormat': 62,
        'defaultNohFormatOptions': 99,
        'defaultToa5FormatOptions': 97,
        'defaultTob1FormatOptions': 98,
        'defaultCacheData': 57,
        'defaultScheduleEnabled': 56,
        'defaultTableFileFormat': 81,
        'delayCommsAfterOpen': 85,
        'delayHangup': 83,
        'deleteFilesAfterSynch': 118,
        'dialStrList': 24,
        'doHoleCollect': 10,
        'dunEntryName': 108,
        'extraRespTime': 4,
        'fileSynchControl': 96,
        'fileSynchControlEx': 114,
        'fileSynchMode': 111,
        'fileSynchScheduleBase': 112,
        'fileSynchScheduleInterval': 113,
        'ftpAuthorisation': 107,
        'genericDialScript': 48,
        'genericEndScript': 49,
        'genericHalfDuplex': 50,
        'genericRaiseDtr': 51,
        'genericRtsCtsUse': 52,
        'holeAdditionEnabled': 42,
        'inputLocationLabels': 38,
        'lgrProgInf': 13,
        'lowLevelPoll': 14,
        'lowLevelPollEnabled': 101,
        'maxBaudRate': 70,
        'maxCacheTableSize': 91,
        'maxInlocsPerRequest': 35,
        'maxPktSize': 3,
        'maxTimeOnLine': 2,
        'pakbusBeaconInterval': 71,
        'pakbusComputerId': 79,
        'pakbusEncryptionKey': 130,
        'pakbusIsDialedLink': 72,
        'pakbusLeafNode': 95,
        'pakbusNodeIdentifier': 55,
        'pakbusTcpMaintainedNodes': 110,
        'pakbusTcpOutAddresses': 115,
        'pakbusVerifyInterval': 109,
        'phoneModemType': 25,
        'pakbusRouterName': 86,
        'pollForStatistics': 129,
        'pooledSerialPorts': 123,
        'pooledTerminalServers': 124,
        'preventTcpOpen': 102,
        'rescheduleOnData': 117,
        'rf400AttentionChar': 75,
        'rf400NetworkId': 73,
        'rf400RadioId': 74,
        'rf95CustomDialString': 77,
        'rf95DialRetries': 76,
        'rfTdPollInterval': 121,
        'rfUseF': 39,
        'rfUseU': 40,
        'rfUseW': 41,
        'rootDelayBeforeReopen': 69,
        'rwisFtpPort': 119,
        'rwisFtpUsePassive': 120,
        'secondaryCollectScheduleEnabled': 67,
        'securityCode': 6,
        'serialUseSimplifiedIo': 122,
        'settingsOverriden': 27,
        'snmpAgentAddress': 104,
        'snmpReadCommunity': 105,
        'snmpReadWriteCommunity': 106,
        'socketPostCloseScript': 128,
        'socketPreOpenScript': 127,
        'stayOnCollectSchedule': 68,
        'switchId': 12,
        'tableDefsPolicy': 78,
        'tableFileStationNameSelector': 126,
        'tablesToExclude': 19,
        'tableSizeFactor': 21,
        'tapiAreaCode': 65,
        'tapiCountryCode': 64,
        'tapiDialString': 66,
        'tcpCallbackPort': 82,
        'tcpCallbackVerifyTime': 103,
        'tcpPassword': 116,
        'timeZoneDiff': 20,
        'userDescription': 90,
        'useTapiDialingProperties': 63
    }

    def __init__(self, setting):
        self.value = DeviceSettings.Settings[setting]

    def __int__(self):
        return self.value
