|
@@ -38,24 +38,24 @@ IR_CONF='/etc/lirc/lircd.conf.d/remocon.lircd.conf'
|
|
|
|
|
|
MODE2CMD=['/usr/bin/mode2', '--device', '/dev/lirc0', '--driver','default']
|
|
|
|
|
|
-BUTTONS=[ {'label': 'PLAY', 'prompt': 'プレイ', 'code': None},\
|
|
|
- {'label': 'STOP', 'prompt': 'ストップ', 'code': None},\
|
|
|
- {'label': 'PAUSE', 'prompt': '一時停止', 'code': None},\
|
|
|
- {'label': 'NEXT', 'prompt': '次曲', 'code': None},\
|
|
|
- {'label': 'PREV', 'prompt': '前曲', 'code': None},\
|
|
|
- {'label': 'VOLUP', 'prompt': '音量上げ', 'code': None},\
|
|
|
+BUTTONS=[ {'label': 'PLAY', 'prompt': 'プレイ', 'code': None},\
|
|
|
+ {'label': 'STOP', 'prompt': 'ストップ', 'code': None},\
|
|
|
+ {'label': 'PAUSE', 'prompt': '一時停止', 'code': None},\
|
|
|
+ {'label': 'NEXT', 'prompt': '次曲', 'code': None},\
|
|
|
+ {'label': 'PREV', 'prompt': '前曲', 'code': None},\
|
|
|
+ {'label': 'VOLUP', 'prompt': '音量上げ', 'code': None},\
|
|
|
{'label': 'VOLDOWN', 'prompt': '音量下げ', 'code': None},\
|
|
|
- {'label': 'MENU', 'prompt': 'メニュー', 'code': None},\
|
|
|
- {'label': '0', 'prompt': '数字0', 'code': None},\
|
|
|
- {'label': '1', 'prompt': '数字1', 'code': None},\
|
|
|
- {'label': '2', 'prompt': '数字2', 'code': None},\
|
|
|
- {'label': '3', 'prompt': '数字3', 'code': None},\
|
|
|
- {'label': '4', 'prompt': '数字4', 'code': None},\
|
|
|
- {'label': '5', 'prompt': '数字5', 'code': None},\
|
|
|
- {'label': '6', 'prompt': '数字6', 'code': None},\
|
|
|
- {'label': '7', 'prompt': '数字7', 'code': None},\
|
|
|
- {'label': '8', 'prompt': '数字8', 'code': None},\
|
|
|
- {'label': '9', 'prompt': '数字9', 'code': None},\
|
|
|
+ {'label': 'MENU', 'prompt': 'メニュー', 'code': None},\
|
|
|
+ {'label': '0', 'prompt': '数字0', 'code': None},\
|
|
|
+ {'label': '1', 'prompt': '数字1', 'code': None},\
|
|
|
+ {'label': '2', 'prompt': '数字2', 'code': None},\
|
|
|
+ {'label': '3', 'prompt': '数字3', 'code': None},\
|
|
|
+ {'label': '4', 'prompt': '数字4', 'code': None},\
|
|
|
+ {'label': '5', 'prompt': '数字5', 'code': None},\
|
|
|
+ {'label': '6', 'prompt': '数字6', 'code': None},\
|
|
|
+ {'label': '7', 'prompt': '数字7', 'code': None},\
|
|
|
+ {'label': '8', 'prompt': '数字8', 'code': None},\
|
|
|
+ {'label': '9', 'prompt': '数字9', 'code': None},\
|
|
|
]
|
|
|
|
|
|
STR_GUIDE=['リモコンの登録を',\
|
|
@@ -72,10 +72,13 @@ STR_MESSAGE=['ボタンを',\
|
|
|
'(2分以内)',
|
|
|
]
|
|
|
|
|
|
-STR_ERR = ['タイムアウト',\
|
|
|
+STR_ERR = ['タイムアウトまたは',\
|
|
|
+ 'エラー発生',\
|
|
|
'リモコンの信号が',\
|
|
|
'受信できません',\
|
|
|
]
|
|
|
+
|
|
|
+STR_CONFIRM = ['信号確認']
|
|
|
|
|
|
STR_END = ['登録完了です',\
|
|
|
'自動的に再起動',\
|
|
@@ -117,7 +120,6 @@ def receiveIr(timeout=120*1000):
|
|
|
with subprocess.Popen(MODE2CMD, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) as proc:
|
|
|
p = select.poll()
|
|
|
p.register(proc.stdout)
|
|
|
- i = 0
|
|
|
fstart = False
|
|
|
while True:
|
|
|
ret = p.poll(timeout)
|
|
@@ -129,14 +131,15 @@ def receiveIr(timeout=120*1000):
|
|
|
code = line.split(' ')[1]
|
|
|
if not fstart:
|
|
|
if type == 'pulse':
|
|
|
- fstart = True
|
|
|
-
|
|
|
+ fstart = True
|
|
|
if fstart:
|
|
|
- codes.append(code)
|
|
|
- i += 1
|
|
|
-
|
|
|
- if i >= 67:
|
|
|
+ if type == 'pulse' or type == 'space':
|
|
|
+ codes.append(code)
|
|
|
+ if len(codes) >= 67:
|
|
|
break
|
|
|
+ if proc.returncode is not None:
|
|
|
+ if len(codes) < 67:
|
|
|
+ return None
|
|
|
|
|
|
proc.terminate()
|
|
|
return codes
|
|
@@ -185,6 +188,9 @@ if __name__ == "__main__":
|
|
|
if r is None:
|
|
|
timeout()
|
|
|
item['code'] = r
|
|
|
+ LCD.clear()
|
|
|
+ LCD.message(STR_CONFIRM)
|
|
|
+ time.sleep(1)
|
|
|
|
|
|
# config
|
|
|
# print(BUTTONS)
|
|
@@ -214,6 +220,6 @@ if __name__ == "__main__":
|
|
|
print('end remote' , file=f)
|
|
|
LCD.clear()
|
|
|
LCD.message(STR_END)
|
|
|
- time.sleep(30)
|
|
|
+ time.sleep(5)
|
|
|
os.system('/sbin/reboot')
|
|
|
sys.exit(0)
|