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.
- checksums.yaml +4 -4
- data/exe/tamashii-agent +7 -5
- data/lib/tamashii/agent/buzzer.rb +11 -5
- data/lib/tamashii/agent/card_reader.rb +21 -21
- data/lib/tamashii/agent/common.rb +25 -0
- data/lib/tamashii/agent/component.rb +38 -3
- data/lib/tamashii/agent/config.rb +13 -2
- data/lib/tamashii/agent/device/buzzer/base.rb +26 -0
- data/lib/tamashii/agent/device/buzzer/dummy.rb +32 -0
- data/lib/tamashii/agent/device/buzzer/gpio_buzzer.rb +89 -0
- data/lib/tamashii/agent/device/card_reader/base.rb +16 -0
- data/lib/tamashii/agent/device/card_reader/dummy.rb +37 -0
- data/lib/tamashii/agent/device/card_reader/mfrc522_spi.rb +43 -0
- data/lib/tamashii/agent/device/card_reader/pn532_uart.rb +52 -0
- data/lib/tamashii/agent/device/device_base.rb +20 -0
- data/lib/tamashii/agent/device/lcd/base.rb +29 -0
- data/lib/tamashii/agent/device/lcd/dummy.rb +30 -0
- data/lib/tamashii/agent/device/lcd/lcm1602_i2c.rb +133 -0
- data/lib/tamashii/agent/handler/base.rb +2 -2
- data/lib/tamashii/agent/handler/lcd.rb +1 -1
- data/lib/tamashii/agent/handler/remote_response.rb +1 -1
- data/lib/tamashii/agent/lcd.rb +14 -16
- data/lib/tamashii/agent/master.rb +20 -22
- data/lib/tamashii/agent/{connection.rb → networking.rb} +5 -6
- data/lib/tamashii/agent/{connection → networking}/request_observer.rb +5 -5
- data/lib/tamashii/agent/version.rb +1 -1
- data/tamashii-agent.gemspec +4 -3
- metadata +32 -16
- data/lib/tamashii/agent/adapter/base.rb +0 -28
- data/lib/tamashii/agent/adapter/buzzer.rb +0 -21
- data/lib/tamashii/agent/adapter/card_reader.rb +0 -20
- data/lib/tamashii/agent/adapter/lcd.rb +0 -22
- data/lib/tamashii/agent/device/fake_buzzer.rb +0 -30
- data/lib/tamashii/agent/device/fake_card_reader.rb +0 -40
- data/lib/tamashii/agent/device/fake_lcd.rb +0 -31
- data/lib/tamashii/agent/device/lcd.rb +0 -91
- 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
|