Skip to content

Commit

Permalink
FAST: Added tests for LED channels config
Browse files Browse the repository at this point in the history
No actual code changes, just more tests
  • Loading branch information
toomanybrians committed Oct 15, 2023
1 parent 3a7cbf4 commit 36e92cb
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 1 deletion.
10 changes: 10 additions & 0 deletions mpf/tests/machine_files/fast/config/config_exp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,16 @@ lights:
led28: # start channel with breakout
start_channel: brian-b2-2-3-0 #88222-0, 88222-1, 88222-2, 88223-0
type: rgbw
led29:
channels: # testing out of order, non-contiquous channels
red:
number: neuron-1-10-0 # 48009-0
green:
number: neuron-1-10-2 # 48009-2
blue:
number: neuron-1-10-1 # 48009-1
white:
number: neuron-1-11-2 # 4800A-2

servos:
servo1:
Expand Down
10 changes: 10 additions & 0 deletions mpf/tests/machine_files/fast/config/nano.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -182,3 +182,13 @@ lights:
test_rgbw4:
previous: test_rgbw3
type: rgbw
test_rgbw5:
channels:
red:
number: 40-0
green:
number: 40-2
blue:
number: 40-1
white:
number: 41-2
21 changes: 20 additions & 1 deletion mpf/tests/test_Fast_Exp.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ def test_leds(self):
self._test_exp_board_reset()
self._test_grb_led()
self._test_rgbw_leds()
self._test_led_channels()
self._test_led_software_fade()
self._test_lew_hardware_fade()

Expand All @@ -79,7 +80,7 @@ def _test_led_internals(self):
self.assertIn("88121", self.fast_exp_leds)
self.assertIn("89200", self.fast_exp_leds)

# Make sure all the RGBW, and previous, and start_channels are working
# Make sure all the RGBW, channels, previous, and start_channels are working
self.assertEqual(self.led22.hw_drivers['red'][0].number, '48002-0')
self.assertEqual(self.led22.hw_drivers['green'][0].number, '48002-1')
self.assertEqual(self.led22.hw_drivers['blue'][0].number, '48002-2')
Expand All @@ -105,6 +106,10 @@ def _test_led_internals(self):
self.assertEqual(self.led28.hw_drivers['green'][0].number, '88222-1')
self.assertEqual(self.led28.hw_drivers['blue'][0].number, '88222-2')
self.assertEqual(self.led28.hw_drivers['white'][0].number, '88223-0')
self.assertEqual(self.led29.hw_drivers['red'][0].number, '48009-0')
self.assertEqual(self.led29.hw_drivers['green'][0].number, '48009-2')
self.assertEqual(self.led29.hw_drivers['blue'][0].number, '48009-1')
self.assertEqual(self.led29.hw_drivers['white'][0].number, '4800A-2')

def _test_led_colors(self):

Expand Down Expand Up @@ -178,6 +183,20 @@ def _test_rgbw_leds(self):
self.led28.color("112233")
self.advance_time_and_run()

def _test_led_channels(self):
# LED 29 has random ordered channels
# red 48009-0, green 48009-2, blue 48009-1, white 48010-2

# white = 00 00 00 FF which becomes
# 09 [00 00 00] 0A [00 00 FF]
self.exp_cpu.expected_commands = {'RD@480:02090000000a0000ff': '',}
self.led29.color("ffffff")
self.advance_time_and_run()

self.exp_cpu.expected_commands = {'RD@480:02090022110a000022': '',}
self.led29.color("223344") # -> 00112222
self.advance_time_and_run()

def _test_led_software_fade(self):

self.exp_cpu.expected_commands = {'RD@B40:0169151515': '',
Expand Down
16 changes: 16 additions & 0 deletions mpf/tests/test_Fast_Nano.py
Original file line number Diff line number Diff line change
Expand Up @@ -762,6 +762,7 @@ def test_leds(self):
rgbw2 = self.machine.lights["test_rgbw2"]
rgbw3 = self.machine.lights["test_rgbw3"]
rgbw4 = self.machine.lights["test_rgbw4"]
rgbw5 = self.machine.lights["test_rgbw5"]

self.assertEqual(rgbw1.hw_drivers['red'][0].number, '21-0')
self.assertEqual(rgbw1.hw_drivers['green'][0].number, '21-1')
Expand All @@ -779,6 +780,10 @@ def test_leds(self):
self.assertEqual(rgbw4.hw_drivers['green'][0].number, '25-1')
self.assertEqual(rgbw4.hw_drivers['blue'][0].number, '25-2')
self.assertEqual(rgbw4.hw_drivers['white'][0].number, '26-0')
self.assertEqual(rgbw5.hw_drivers['red'][0].number, '28-0')
self.assertEqual(rgbw5.hw_drivers['green'][0].number, '28-2')
self.assertEqual(rgbw5.hw_drivers['blue'][0].number, '28-1')
self.assertEqual(rgbw5.hw_drivers['white'][0].number, '29-2')

rgbw1.color("ffffff")
self.advance_time_and_run(1)
Expand All @@ -790,6 +795,17 @@ def test_leds(self):
self.assertEqual("FF0011", self.rgb_cpu.leds['22'])
self.assertEqual("224400", self.rgb_cpu.leds['23'])

rgbw5.color("ffffff")
self.advance_time_and_run(1)
self.assertEqual("000000", self.rgb_cpu.leds['28'])
self.assertEqual("0000FF", self.rgb_cpu.leds['29'])

rgbw5.color("223344") # -> 00112222
self.advance_time_and_run(1)
self.assertEqual("002211", self.rgb_cpu.leds['28'])
self.assertEqual("000022", self.rgb_cpu.leds['29'])


# TODO need to go through the entire FAST platform and cleanup config errors and error logging in general
# @expect_startup_error()
# @test_config("error_lights.yaml")
Expand Down

0 comments on commit 36e92cb

Please sign in to comment.