/ P1AM / constants.py
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)