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.
- 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
|