forked from elvis-epx/alarme-intelbras
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomandar
executable file
·81 lines (67 loc) · 2.14 KB
/
comandar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/env python3
import sys
from alarmeitbl.myeventloop import Timeout, Log
from alarmeitbl.comandos import *
from alarmeitbl.tratador_fotos import *
def usage():
print("Modo de usar: %s <ipaddr> <porta> <senha> <tam. senha> <comando> [params]" % sys.argv[0])
print()
print("Comandos disponíveis:", ", ".join(tratadores.keys()))
print()
print("ativar/desativar: parametro opcional de particao (omitir para todas particoes)")
print("idem para desligarsirene")
print("cancelarzona/reativarzona: parametro obrigatorio de zona")
print("dlfoto: parametros obrigatorios de indice e foto")
sys.exit(1)
tratadores = { 'desativar': DesativarCentral,
'ativar': AtivarCentral,
'desligarsirene': DesligarSirene,
'cancelarzona': CancelarZona,
'reativarzona': ReativarZona,
'status': SolicitarStatus,
'limpardisparo': LimparDisparo,
'dlfoto': None }
Log.set_level(Log.DEBUG)
if len(sys.argv) < 6:
usage()
ipaddr = sys.argv[1].lower().strip()
if ipaddr == 'auto':
print("Para este fim, a config. caddr deve conter um endereço IP explícito.")
usage()
cport = int(sys.argv[2]) or 9009
senha = int(sys.argv[3])
tam_senha = int(sys.argv[4])
comando = sys.argv[5]
if comando not in tratadores:
usage()
if comando == 'dlfoto':
if len(sys.argv) < 8:
usage()
indice = int(sys.argv[6])
nrfoto = int(sys.argv[7])
t = TratadorDeFotos(None, ".", "auto", cport, senha, tam_senha)
t.enfileirar(ipaddr, indice, nrfoto)
t.imediato()
ev = EventLoop()
ev.loop()
sys.exit(0)
particao = None
if len(sys.argv) == 7:
try:
particao = int(sys.argv[6])
except ValueError:
particao = -1
if particao < 1 or particao > 254:
usage()
class Observer:
def __init__(self):
pass
def resultado(self, status):
if status:
print("Resultado: erro")
sys.exit(status)
observer = Observer()
tratador = tratadores[comando](observer, ipaddr, cport, senha, tam_senha, [particao])
ev = EventLoop()
ev.loop()
print("Resultado: sucesso")