Initial backup of LTP-305G matrix clock setup on matrixpi
Captures everything needed to redeploy the two-display clock (hour on I2C 0x61, minute on I2C 0x63) on a fresh Pi: - Both systemd units (matrix0x61.service, matrix0x63.service) - Deployed Pimoroni script tree, including the local %I (12-hour) clock customization - Vendored upstream sources (ltp305-python, breakout-garden) so restore is fully offline-capable - Boot config snippet enabling I2C - install.sh that wires it all back up idempotently - Inventory doc cross-referencing every live-system path Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
51
vendor/ltp305-python/library/tests/test_features.py
vendored
Normal file
51
vendor/ltp305-python/library/tests/test_features.py
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
import mock
|
||||
|
||||
|
||||
def test_set_pixel(smbus):
|
||||
from ltp305 import LTP305, CMD_MATRIX_L, CMD_MATRIX_R
|
||||
display = LTP305()
|
||||
display.set_pixel(0, 0, 1)
|
||||
display.set_pixel(5, 0, 1)
|
||||
display.show()
|
||||
smbus.SMBus(1).write_i2c_block_data.assert_has_calls((
|
||||
mock.call(display.address, CMD_MATRIX_L, [1, 0, 0, 0, 0, 0, 0, 0]),
|
||||
mock.call(display.address, CMD_MATRIX_R, [1, 0, 0, 0, 0, 0, 0, 0])
|
||||
))
|
||||
smbus.reset_mock()
|
||||
display.set_pixel(0, 0, 0)
|
||||
display.set_pixel(5, 0, 0)
|
||||
display.show()
|
||||
smbus.SMBus(1).write_i2c_block_data.assert_has_calls((
|
||||
mock.call(display.address, CMD_MATRIX_L, [0, 0, 0, 0, 0, 0, 0, 0]),
|
||||
mock.call(display.address, CMD_MATRIX_R, [0, 0, 0, 0, 0, 0, 0, 0])
|
||||
))
|
||||
|
||||
|
||||
def test_set_decimal(smbus):
|
||||
from ltp305 import LTP305, CMD_MATRIX_L, CMD_MATRIX_R
|
||||
display = LTP305()
|
||||
display.set_decimal(left=True, right=True)
|
||||
display.show()
|
||||
smbus.SMBus(1).write_i2c_block_data.assert_has_calls((
|
||||
mock.call(display.address, CMD_MATRIX_L, [0, 0, 0, 0, 0, 0, 0, 0b01000000]),
|
||||
mock.call(display.address, CMD_MATRIX_R, [0, 0, 0, 0, 0, 0, 0b10000000, 0])
|
||||
))
|
||||
smbus.reset_mock()
|
||||
display.set_decimal(left=False, right=False)
|
||||
display.show()
|
||||
smbus.SMBus(1).write_i2c_block_data.assert_has_calls((
|
||||
mock.call(display.address, CMD_MATRIX_L, [0, 0, 0, 0, 0, 0, 0, 0]),
|
||||
mock.call(display.address, CMD_MATRIX_R, [0, 0, 0, 0, 0, 0, 0, 0])
|
||||
))
|
||||
|
||||
|
||||
def test_set_character(smbus):
|
||||
from ltp305 import LTP305, CMD_MATRIX_L, CMD_MATRIX_R
|
||||
display = LTP305()
|
||||
display.set_character(0, "A")
|
||||
display.set_character(5, "B")
|
||||
display.show()
|
||||
smbus.SMBus(1).write_i2c_block_data.assert_has_calls((
|
||||
mock.call(display.address, CMD_MATRIX_L, [126, 17, 17, 17, 126, 0, 0, 0]),
|
||||
mock.call(display.address, CMD_MATRIX_R, [15, 17, 17, 15, 17, 17, 15, 0])
|
||||
))
|
||||
Reference in New Issue
Block a user