constants.py
1 from micropython import const 2 3 # MDB Constants 4 DISCRETE_IN = const(0) 5 ANALOG_IN = const(1) 6 DISCRETE_OUT = const(2) 7 ANALOG_OUT = const(3) 8 STATUS_IN = const(4) 9 CONFIG_LEN = const(5) 10 DATA_TYPE = const(6) 11 P1_NAME = const(7) 12 DEFAULT_CONFIG = const(8) 13 14 # Special Types 15 TEMP_MODULE = const(32) 16 PWM_MODULE = const(0xA0) 17 HSC_MODULE = const(0xC0) 18 19 # PWM Constants 20 PWM_FREQ = const(1) 21 PWM_DUTY = const(0) 22 PWM_FREQ_MAX = const(20000) 23 PWM_DUTY_MAX = 100.0 24 25 # P1-04AD Range Constants 26 AD_RANGES = ( 27 (0.0, 20.0), 28 (0.0, 10.0), 29 (0.0, 5.0), 30 (0.0, 20.0), 31 (0.0, 10.0) 32 ) 33 34 # Status Constants 35 MISSING24V_STATUS = const(3) 36 BURNOUT_STATUS = const(5) 37 UNDER_RANGE_STATUS = const(7) 38 OVER_RANGE_STATUS = const(11) 39 40 # Data buffer and word size 41 analog_word_size = const(4) 42 data_buf = bytearray(550) 43 44 # indexing mode 45 USE_1_INDEXING = True 46 47 # Base Controller pins 48 CS = None 49 ACK = None 50 BC_SPI = None 51 52 # fmt: off 53 # Module info and parameters 54 mdb = { #di ai do ao st cf dt 55 0x00000000: (0, 0, 0, 0, 0, 0, 0, "Empty"), # Empty first entry for defaults 56 0x04A00081: (1, 0, 0, 0, 0, 0, 1, "P1-08ND3"), 57 0x04A00085: (1, 0, 0, 0, 0, 0, 1, "P1-08NA"), 58 0x04A00087: (1, 0, 0, 0, 0, 0, 1, "P1-08SIM"), 59 0x04A00088: (1, 0, 0, 0, 0, 0, 1, "P1-08NE3"), 60 0x04A00042: (1, 0, 0, 0, 0, 0, 1, "P1-08ND-TTL"), 61 0x05200082: (2, 0, 0, 0, 0, 0, 1, "P1-16ND3"), 62 0x05200089: (2, 0, 0, 0, 0, 0, 1, "P1-16NE3"), 63 0x14030050: (0, 0, 1, 0, 0, 0, 1, "P1-04TRS"), 64 0x1403F481: (0, 0, 0, 32, 4, 4, PWM_MODULE, "P1-04PWM", (0x02,0x02,0x02,0x02)), 65 0x1404008D: (0, 0, 1, 0, 0, 0, 1, "P1-08TA"), 66 0x1404008F: (0, 0, 1, 0, 0, 0, 1, "P1-08TRS"), 67 0x14040091: (0, 0, 2, 0, 0, 0, 1, "P1-16TR"), 68 0x14050081: (0, 0, 1, 0, 0, 0, 1, "P1-08TD1"), 69 0x14050082: (0, 0, 1, 0, 0, 0, 1, "P1-08TD2"), 70 0x14050046: (0, 0, 1, 0, 0, 0, 1, "P1-08TD-TTL"), 71 0x14080085: (0, 0, 2, 0, 0, 0, 1, "P1-15TD1"), 72 0x14080086: (0, 0, 2, 0, 0, 0, 1, "P1-15TD2"), 73 0x24A50081: (1, 0, 1, 0, 0, 0, 1, "P1-16CDR"), 74 0x24A50082: (1, 0, 1, 0, 0, 0, 1, "P1-15CDD1"), 75 0x24A50083: (1, 0, 1, 0, 0, 0, 1, "P1-15CDD2"), 76 0x34605581: (0, 16,0, 0, 12, 18, 16, "P1-04AD", (0x40,0x03,0x00,0x00, 77 0x20,0x03,0x00,0x00, 78 0x21,0x03,0x00,0x00, 79 0x22,0x03,0x00,0x00, 80 0x23,0x03)), 81 0x34605588: (0, 16,0, 0, 12, 8, TEMP_MODULE, "P1-04RTD", (0x40,0x03,0x60,0x05, 82 0x20,0x01,0x80,0x00)), 83 0x34605582: (0, 16,0, 0, 12, 2, 16, "P1-04AD-1", (0x40, 0x03)), 84 0x34605583: (0, 16,0, 0, 12, 2, 16, "P1-04AD-2", (0x40, 0x03)), 85 0x3460558F: (0, 16,0, 0, 12, 2, 12, "P1-04ADL-1", (0x40, 0x03)), 86 0x34605590: (0, 16,0, 0, 12, 2, 12, "P1-04ADL-2", (0x40, 0x03)), 87 0x34608C81: (0, 16,0, 0, 12, 20, TEMP_MODULE, "P1-04THM", (0x40,0x03,0x60,0x05, 88 0x21,0x00,0x22,0x00, 89 0x23,0x00,0x24,0x00, 90 0x00,0x00,0x00,0x00, 91 0x00,0x00,0x00,0x00)), 92 0x34608C8E: (0, 16,0, 0, 12, 8, TEMP_MODULE, "P1-04NTC", (0x40,0x03,0x60,0x05, 93 0x20,0x00,0x80,0x02)), 94 0x34A0558A: (0, 32,0, 0, 12, 2, 12, "P1-08ADL-1", (0x40, 0x07)), 95 0x34A0558B: (0, 32,0, 0, 12, 2, 12, "P1-08ADL-2", (0x40, 0x07)), 96 0x34A5A481: (2, 36,0, 36, 4, 12, HSC_MODULE, "P1-02HSC", (0x00,0x00,0x00,0x00, 97 0x00,0x00,0x00,0x01, 98 0x00,0x00,0x00,0x01)), 99 0x44035583: (0, 0, 0, 16, 4, 0, 12, "P1-04DAL-1"), 100 0x44035584: (0, 0, 0, 16, 4, 0, 12, "P1-04DAL-2"), 101 0x44055588: (0, 0, 0, 32, 4, 0, 12, "P1-08DAL-1"), 102 0x44055589: (0, 0, 0, 32, 4, 0, 12, "P1-08DAL-2"), 103 0x5461A783: (0, 16,0, 8, 12, 2, 12, "P1-4ADL2DAL-1", (0x40, 0x03)), 104 0x5461A784: (0, 16,0, 8, 12, 2, 12, "P1-4ADL2DAL-2", (0x40, 0x03)), 105 0xFFFFFFFF: (0, 0, 0, 0, 0, 0, 0, "BAD SLOT"), # empty or bad 106 } 107 # fmt: on 108 109 odd_length_modules = (0x14080085, 0x14080086, 0x24A50082, 0x24A50083)