Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions library/CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
0.0.2
-----

* Port to new i2cdevice>=0.0.6 set/get API

0.0.1
-----

Expand Down
29 changes: 14 additions & 15 deletions library/ht0740/__init__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
from i2cdevice import Device, Register, BitField

__version__ = '0.0.1'
__version__ = '0.0.2'


class IOItem:

def __init__(self, i2c_object, pin_io, inverted=False):
self.enabled = True
self.status = False
Expand All @@ -14,17 +13,17 @@ def __init__(self, i2c_object, pin_io, inverted=False):

def state(self):
if self.inverted:
return ~self.i2c_object.OUTPUT.get_value() >> self.pin_io & 1
return ~self.i2c_object.get('OUTPUT').value >> self.pin_io & 1
else:
return self.i2c_object.OUTPUT.get_value() >> self.pin_io & 1
return self.i2c_object.get('OUTPUT').value >> self.pin_io & 1

def set(self, state):
if self.enabled:
if self.inverted:
state = 1 - state
value = self.i2c_object.OUTPUT.get_value()
value = self.i2c_object.get('OUTPUT').value
mask = 1 << self.pin_io
self.i2c_object.OUTPUT.set_value(((value & ~mask) | ((state << self.pin_io) & mask)))
self.i2c_object.set('OUTPUT', value=((value & ~mask) | ((state << self.pin_io) & mask)))

def on(self):
self.set(1)
Expand All @@ -34,19 +33,18 @@ def off(self):

def toggle(self):
if self.enabled:
self.i2c_object.OUTPUT.set_value(self.i2c_object.OUTPUT.get_value() ^ (1 << self.pin_io))
self.i2c_object.set('OUTPUT', value=self.i2c_object.OUTPUT.get_value() ^ (1 << self.pin_io))

def disable(self):
self.i2c_object.CONFIG.set_value(self.i2c_object.CONFIG.get_value() | 1 << self.pin_io)
self.i2c_object.set('CONFIG', value=self.i2c_object.CONFIG.get_value() | 1 << self.pin_io)
self.enabled = False

def enable(self):
self.i2c_object.CONFIG.set_value(self.i2c_object.CONFIG.get_value() & ~(1 << self.pin_io))
self.i2c_object.set('CONFIG', value=self.i2c_object.CONFIG.get_value() & ~(1 << self.pin_io))
self.enabled = True


class PCA9554A:

def __init__(self, i2c_addr=0x38, i2c_dev=None):
self._i2c_addr = i2c_addr
self._i2c_dev = i2c_dev
Expand Down Expand Up @@ -75,18 +73,19 @@ def __init__(self, i2c_addr=0x38, i2c_dev=None):
)),
))
# Set IO configuration for driving switch and LED
self._pca9554a.OUTPUT.set_switch(0)
self._pca9554a.OUTPUT.set_led(1)
self._pca9554a.CONFIG.set_switch(0)
self._pca9554a.CONFIG.set_led(0)
self._pca9554a.set('OUTPUT',
switch=0,
led=1)
self._pca9554a.set('CONFIG',
switch=0,
led=0)
self.led_enable = True
self.switch_enabled = True
self.led_status = False
self.switch_status = False


class HT0740:

def __init__(self, i2c_addr=0x38, i2c_dev=None):
self._i2c_addr = i2c_addr
self._i2c_dev = i2c_dev
Expand Down
4 changes: 2 additions & 2 deletions library/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

setup(
name='ht0740',
version='0.0.1',
version='0.0.2',
author='Gee Bartlett',
author_email='gee@pimoroni.com',
description="""Python library for the HT0740 Switch""",
Expand All @@ -50,5 +50,5 @@
project_urls={'GitHub': 'https://www.github.com/pimoroni/ht0740-python'},
classifiers=classifiers,
packages=['ht0740'],
install_requires=['i2cdevice']
install_requires=['i2cdevice>=0.0.6']
)