tamashii-agent 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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