|
|
|
#!/bin/env python3
|
|
|
|
import time
|
|
|
|
import gex
|
|
|
|
|
|
|
|
client = gex.Client()
|
|
|
|
|
|
|
|
if False:
|
|
|
|
s = client.ini_read()
|
|
|
|
client.ini_write(s)
|
|
|
|
|
|
|
|
if False:
|
|
|
|
buf = client.bulk_read(gex.MSG_INI_READ)
|
|
|
|
print(buf.decode('utf-8'))
|
|
|
|
|
|
|
|
client.bulk_write(gex.MSG_INI_WRITE, buf)
|
|
|
|
|
|
|
|
if False:
|
|
|
|
leds = gex.DOut(client, 'strip')
|
|
|
|
|
|
|
|
nn = 3
|
|
|
|
for i in range(0,20):
|
|
|
|
leds.write(nn)
|
|
|
|
time.sleep(.05)
|
|
|
|
nn<<=1
|
|
|
|
nn|=(nn&0x40)>>6
|
|
|
|
nn=nn&0x3F
|
|
|
|
leds.clear(0xFF)
|
|
|
|
|
|
|
|
if False:
|
|
|
|
leds = gex.DOut(client, 'bargraph')
|
|
|
|
|
|
|
|
for i in range(0,0x41):
|
|
|
|
leds.write(i&0x3F)
|
|
|
|
time.sleep(.1)
|
|
|
|
|
|
|
|
if False:
|
|
|
|
leds = gex.DOut(client, 'TST')
|
|
|
|
|
|
|
|
for i in range(0, 0x41):
|
|
|
|
#leds.write(i & 0x3F)
|
|
|
|
leds.toggle(0xFF)
|
|
|
|
time.sleep(.1)
|
|
|
|
|
|
|
|
if False:
|
|
|
|
btn = gex.DIn(client, 'btn')
|
|
|
|
strip = gex.DOut(client, 'strip')
|
|
|
|
|
|
|
|
for i in range(0, 10000):
|
|
|
|
b = btn.read()
|
|
|
|
strip.write((b << 2) | ((~b) & 1))
|
|
|
|
time.sleep(.02)
|
|
|
|
|
|
|
|
if False:
|
|
|
|
neo = gex.Neopixel(client, 'npx')
|
|
|
|
|
|
|
|
print('We have %d neopixels.\n' % neo.get_len())
|
|
|
|
|
|
|
|
#neo.load([0xF0F0F0,0,0,0xFF0000])
|
|
|
|
|
|
|
|
# generate a little animation...
|
|
|
|
for i in range(0,512):
|
|
|
|
j = i if i < 256 else 255-(i-256)
|
|
|
|
neo.load([0x660000+j, 0x3300FF-j, 0xFFFF00-(j<<8), 0x0000FF+(j<<8)-j])
|
|
|
|
time.sleep(.002)
|
|
|
|
|
|
|
|
neo.load([0,0,0,0])
|
|
|
|
|
|
|
|
if False:
|
|
|
|
i2c = gex.I2C(client, 'i2c')
|
|
|
|
|
|
|
|
# i2c.write(0x76, payload=[0xD0])
|
|
|
|
# print(i2c.read(0x76, count=1))
|
|
|
|
|
|
|
|
print(i2c.read_reg(0x76, 0xD0))
|
|
|
|
print("%x" % i2c.read_reg(0x76, 0xF9, width=3, endian='big'))
|
|
|
|
|
|
|
|
i2c.write_reg(0x76, 0xF4, 0xFA)
|
|
|
|
print(i2c.read_reg(0x76, 0xF4))
|