(self,i2cNo=0)
| 185 | self.neoPixel = board.NEOPIXEL |
| 186 | |
| 187 | def I2C(self,i2cNo=0): |
| 188 | # i2cNo = 0 returns first available I2C device in this order of availablity: |
| 189 | # CircuitPython: board.STEMMA_I2C, board.I2C, busio.I2C(SCL,SDA) |
| 190 | # MicroPython: machine.I2C(I2C_NUM if defined), else machine.SoftI2C(SCL,SDA) |
| 191 | # If default I2C is SoftI2C do not configure I2C_NUM or set it to None |
| 192 | # i2cNo = 1 returns first available I2C device in the following order: |
| 193 | # CircuitPython: board.I2C, busio.I2C(SCL,SDA) |
| 194 | # MicroPython: machine.I2C((I2C_NUM+1)%2 if defined), else machine.SoftI2C(SCL,SDA) |
| 195 | # i2cNo = 2 returns busio.I2C(SCL,SDA) for CircuitPython, SoftI2c(SCL,SDA) for MicroPython |
| 196 | |
| 197 | if not self._I2C[i2cNo]: |
| 198 | if implementation.name.upper() == "CIRCUITPYTHON": |
| 199 | |
| 200 | #if 'I2C_POWER_INVERTED' in dir(board) and not self._I2C_power: |
| 201 | # self._I2C_power = digitalio.DigitalInOut(board.I2C_POWER_INVERTED) |
| 202 | # self._I2C_power.direction = digitalio.Direction.OUTPUT |
| 203 | # self._I2C_power.value = False |
| 204 | |
| 205 | if 'STEMMA_I2C' in dir(board) and i2cNo == 0: |
| 206 | self._I2C[i2cNo] = board.STEMMA_I2C() |
| 207 | elif 'I2C' in dir(board) and i2cNo in [0,1]: |
| 208 | self._I2C[i2cNo] = board.I2C() |
| 209 | elif self.SCL and i2cNo in [0,1,2]: |
| 210 | # dangerous bus as 0 or 1 may use these pins. reserve 0 and 1 first |
| 211 | for i in [0,1]: |
| 212 | if i2cNo == i: |
| 213 | break |
| 214 | self.I2C(i) |
| 215 | self._I2C[i2cNo] = busio.I2C(self.SCL, self.SDA) |
| 216 | elif 'SCL1' in dir(board) and i2cNo in [0,1,2,3]: |
| 217 | # dangerous bus as 0,1 or 2 may use these pins. reserve 0,1 and 2 first |
| 218 | for i in [0,1,2]: |
| 219 | if i2cNo == i: |
| 220 | break |
| 221 | self.I2C(i) |
| 222 | self._I2C[i2cNo] = busio.I2C(board.SCL1, board.SDA1) |
| 223 | |
| 224 | if self.KFW and not self.I2CbbqDevice and i2cNo == 0: |
| 225 | self.I2CbbqDevice = I2CDevice(self._I2C[i2cNo], 0x1F) |
| 226 | elif implementation.name.upper() == "MICROPYTHON": |
| 227 | if self.I2C_NUM != None: |
| 228 | if i2cNo == 0: |
| 229 | #self._I2C = m_I2C(self.I2C_NUM,scl=Pin(self.SCL),sda=Pin(self.SDA)) |
| 230 | try: |
| 231 | self._I2C[i2cNo] = m_I2C(self.I2C_NUM) |
| 232 | except: |
| 233 | self._I2C[i2cNo] = m_I2C(self.I2C_NUM,scl=Pin(self.SCL),sda=Pin(self.SDA)) |
| 234 | elif i2cNo == 1: |
| 235 | try: |
| 236 | self._I2C[i2cNo] = m_I2C((self.I2C_NUM+1)%2) |
| 237 | except: |
| 238 | self._I2C[i2cNo] = m_I2C((self.I2C_NUM+1)%2,scl=Pin(self.SCL),sda=Pin(self.SDA)) |
| 239 | |
| 240 | if not self._I2C[i2cNo]: |
| 241 | try: |
| 242 | self._I2C[i2cNo] = s_I2C(scl=Pin(self.SCL),sda=Pin(self.SDA)) |
| 243 | except: |
| 244 | pass |
no outgoing calls
no test coverage detected