tamashii-agent 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/exe/tamashii-agent +7 -5
  3. data/lib/tamashii/agent/buzzer.rb +11 -5
  4. data/lib/tamashii/agent/card_reader.rb +21 -21
  5. data/lib/tamashii/agent/common.rb +25 -0
  6. data/lib/tamashii/agent/component.rb +38 -3
  7. data/lib/tamashii/agent/config.rb +13 -2
  8. data/lib/tamashii/agent/device/buzzer/base.rb +26 -0
  9. data/lib/tamashii/agent/device/buzzer/dummy.rb +32 -0
  10. data/lib/tamashii/agent/device/buzzer/gpio_buzzer.rb +89 -0
  11. data/lib/tamashii/agent/device/card_reader/base.rb +16 -0
  12. data/lib/tamashii/agent/device/card_reader/dummy.rb +37 -0
  13. data/lib/tamashii/agent/device/card_reader/mfrc522_spi.rb +43 -0
  14. data/lib/tamashii/agent/device/card_reader/pn532_uart.rb +52 -0
  15. data/lib/tamashii/agent/device/device_base.rb +20 -0
  16. data/lib/tamashii/agent/device/lcd/base.rb +29 -0
  17. data/lib/tamashii/agent/device/lcd/dummy.rb +30 -0
  18. data/lib/tamashii/agent/device/lcd/lcm1602_i2c.rb +133 -0
  19. data/lib/tamashii/agent/handler/base.rb +2 -2
  20. data/lib/tamashii/agent/handler/lcd.rb +1 -1
  21. data/lib/tamashii/agent/handler/remote_response.rb +1 -1
  22. data/lib/tamashii/agent/lcd.rb +14 -16
  23. data/lib/tamashii/agent/master.rb +20 -22
  24. data/lib/tamashii/agent/{connection.rb → networking.rb} +5 -6
  25. data/lib/tamashii/agent/{connection → networking}/request_observer.rb +5 -5
  26. data/lib/tamashii/agent/version.rb +1 -1
  27. data/tamashii-agent.gemspec +4 -3
  28. metadata +32 -16
  29. data/lib/tamashii/agent/adapter/base.rb +0 -28
  30. data/lib/tamashii/agent/adapter/buzzer.rb +0 -21
  31. data/lib/tamashii/agent/adapter/card_reader.rb +0 -20
  32. data/lib/tamashii/agent/adapter/lcd.rb +0 -22
  33. data/lib/tamashii/agent/device/fake_buzzer.rb +0 -30
  34. data/lib/tamashii/agent/device/fake_card_reader.rb +0 -40
  35. data/lib/tamashii/agent/device/fake_lcd.rb +0 -31
  36. data/lib/tamashii/agent/device/lcd.rb +0 -91
  37. data/lib/tamashii/agent/device/pi_buzzer.rb +0 -70
@@ -1,31 +0,0 @@
1
- module Tamashii
2
- module Agent
3
- module Device
4
- # :nodoc:
5
- class FakeLCD
6
- include Common::Loggable
7
- WIDTH = 16
8
- LINE_COUNT = 2
9
-
10
- attr_accessor :backlight
11
-
12
- def initialize
13
- @backlight = true
14
- end
15
-
16
- def print_message(message)
17
- lines = message.lines.map{|l| l.delete("\n")}
18
- logger.info "LCD Display(BACKLIGHT: #{@backlight}):"
19
- lines.take(LINE_COUNT).each_with_index { |line_text, line| print_line(line_text, line) }
20
- end
21
-
22
- def print_line(message, line)
23
- message = '' unless message
24
- message = message.ljust(WIDTH, ' ')
25
- message.split('').take(WIDTH).join('')
26
- logger.info "Line #{line}: #{message}"
27
- end
28
- end
29
- end
30
- end
31
- end
@@ -1,91 +0,0 @@
1
- require 'i2c'
2
-
3
- module Tamashii
4
- module Agent
5
- module Device
6
- # :nodoc:
7
- class LCD
8
- WIDTH = 16
9
- LINE_COUNT = 2
10
-
11
- OP_CHR = 1
12
- OP_CMD = 0
13
-
14
- LINES = [
15
- 0x80,
16
- 0xC0
17
- ].freeze
18
-
19
- BACKLIGHT_ON = 0x08
20
- BACKLIGHT_OFF = 0x00
21
-
22
- ENABLE = 0b00000100
23
-
24
- PULSE = 0.0005
25
- DELAY = 0.0005
26
-
27
- attr_accessor :backlight
28
-
29
- def initialize
30
- @lcd = I2C.create(Config.lcd_path)
31
- @address = Config.lcd_address
32
- @backlight = true
33
-
34
- byte(0x33, OP_CMD)
35
- byte(0x32, OP_CMD)
36
- byte(0x06, OP_CMD)
37
- byte(0x0C, OP_CMD)
38
- byte(0x28, OP_CMD)
39
- byte(0x01, OP_CMD)
40
- sleep(DELAY)
41
- end
42
-
43
- def print_message(message)
44
- lines = message.lines.map{|l| l.delete("\n")}
45
- LINE_COUNT.times.each { |line| print_line(lines[line], line) }
46
- end
47
-
48
- def print_line(message, line)
49
- write_line(message, LINES[line])
50
- end
51
-
52
- private
53
-
54
- def backlight_mode
55
- return BACKLIGHT_ON if @backlight
56
- BACKLIGHT_OFF
57
- end
58
-
59
- def write_line(message, line)
60
- message = '' unless message
61
- message = message.ljust(WIDTH, ' ')
62
- byte(line, OP_CMD)
63
- WIDTH.times.each { |pos| byte(message[pos].ord, OP_CHR) }
64
- end
65
-
66
- def write(bits)
67
- @lcd.write(@address, bits)
68
- end
69
-
70
- def byte(bits, mode)
71
- high = mode | (bits & 0xF0) | backlight_mode
72
- low = mode | (bits << 4) & 0xF0 | backlight_mode
73
-
74
- write(high)
75
- toggle(high)
76
-
77
- write(low)
78
- toggle(low)
79
- end
80
-
81
- def toggle(bits)
82
- sleep(DELAY)
83
- write(bits | ENABLE)
84
- sleep(PULSE)
85
- write(bits & ~ENABLE)
86
- sleep(DELAY)
87
- end
88
- end
89
- end
90
- end
91
- end
@@ -1,70 +0,0 @@
1
- require 'pi_piper'
2
- module Tamashii
3
- module Agent
4
- module Device
5
- class PIBuzzer
6
- SHORT_PLAY_TIME = 0.2
7
- LONG_PLAY_TIME = 0.5
8
- REPEAT_INTERVAL = 0.1
9
- LOW_FREQ = 0.7
10
-
11
- attr_reader :pwm
12
-
13
- def initialize
14
- @pwm = PiPiper::Pwm.new pin: 18 #, mode: :markspace
15
- @pwm.off
16
- @pwm.value = 1.0
17
- end
18
-
19
- def play(value = 1.0)
20
- @pwm.value = value
21
- @pwm.on
22
- end
23
-
24
- def stop
25
- @pwm.off
26
- end
27
-
28
- def play_short(value = 1.0)
29
- play_time(SHORT_PLAY_TIME,value)
30
- end
31
-
32
- def play_long(value = 1.0)
33
- play_time(LONG_PLAY_TIME,value)
34
- end
35
-
36
- def play_time(time, value = 1.0)
37
- play(value)
38
- sleep time
39
- stop
40
- end
41
-
42
- def play_repeat_short(repeat, repeat_interval = REPEAT_INTERVAL)
43
- repeat.times do
44
- play_short
45
- sleep repeat_interval
46
- end
47
- end
48
-
49
- def play_repeat_long(repeat, repeat_interval = REPEAT_INTERVAL)
50
- repeat.times do
51
- play_long
52
- sleep repeat_interval
53
- end
54
- end
55
-
56
- def play_ok
57
- play_repeat_short(1)
58
- end
59
-
60
- def play_no
61
- play_repeat_short(3)
62
- end
63
-
64
- def play_error
65
- play_repeat_long(3)
66
- end
67
- end
68
- end
69
- end
70
- end