fetapi/fetapd.py

102 lines
3.9 KiB
Python
Raw Normal View History

2015-05-18 19:25:48 +02:00
import time
from phoneinterface import PhoneInterface, PhoneEvent
from apparatinterface import FeApPinConfiguration, FeApUserInterface
from webinterface import FeTapWeb
2015-06-04 18:42:08 +02:00
import configreader
import statemachine
2015-06-04 18:42:08 +02:00
2017-04-27 21:39:23 +02:00
FeTAp = """
,ooFeTApFeTApFeTA%=+-,.
,+FeTAp+' `o,,
,oFeTAp+ `,
,ooo' ,oFeTApFeTAp o
oo +FeTAp+' `oo, H
o o' X o l
,@=@+ o ,,-+*==+-., R o .;
,@=@+ o o' ,/ 22 11 ``, E`ooooo'
@@* @@ oo o' / 33 , ` ` , ; T
@:n T:@ oo o ; 44 , . \ L
uM:m A:K oFeTAp' ;55 , : ; A
E:Rn N:t F, | ` : ; | H
SC:h K:o e, ` 66 ` , dHHH C
A:Ll L:s r, ` 77 `. , . 0 `q/ S
ER:a P:U n, \ 88 99 00 ,' L
R:Be i:M s `<,,______,-` sZ, E
i:T E:r p, `sZ B
S:K l:T r, A
o:N H:a e, G
t:a s:c c, ,x+x+'
k:T:@:U:M:R:n; h, ,p+e+r+a+t/
`@:n:M:E:' `T=i=s=c=h=A=p/
"""
controller = None
2015-05-18 19:25:48 +02:00
def gabelschalter_cb(state):
if state == 1:
controller.queue_event('gabelschalter_up')
else:
controller.queue_event('gabelschalter_down')
2015-05-18 19:25:48 +02:00
def nummernschalter_active_cb():
controller.queue_event('nummernschalter_active')
def nummernschalter_done_cb(digit):
controller.queue_event('nummernschalter_input', digit)
2015-05-18 19:25:48 +02:00
def phone_cb(event):
if event == PhoneEvent.RegInProgress:
controller.queue_event('registration_in_progress')
elif event == PhoneEvent.RegSuccessfull:
controller.queue_event('registration_successful')
elif event == PhoneEvent.RegLost:
controller.queue_event('registration_lost')
elif event == PhoneEvent.CallIncoming:
controller.queue_event('incoming_call')
elif event == PhoneEvent.CallAccepted:
controller.queue_event('call_accepted')
elif event == PhoneEvent.CallEnded:
controller.queue_event('call_ended')
elif event == PhoneEvent.CallRinging:
controller.queue_event('call_ringing')
elif event == PhoneEvent.CallBusy:
controller.queue_event('call_ended')
elif event == PhoneEvent.CallInvalidNumber:
controller.queue_event('invalid_number')
2015-05-18 19:25:48 +02:00
if __name__ == '__main__':
2020-12-28 00:50:50 +01:00
print(FeTAp)
2017-04-27 21:39:23 +02:00
cfg = configreader.ConfigurationReader()
cfg.read('fetap.ini')
phone = PhoneInterface(cfg.phoneconfig)
feap = FeApUserInterface(cfg.pinconfig)
controller = statemachine.StateMachineController(phone, feap, cfg.dialconfig)
webinterface = FeTapWeb({}, controller)
2021-02-25 17:19:59 +01:00
#controller.publish_state = webinterface.publish_status
controller.publish_event = webinterface.on_event
controller.publish_transition = webinterface.on_transition
# TODO: Use real events from daemon
controller.queue_event('registration_in_progress')
controller.queue_event('registration_successful')
feap.add_gabelschalter_callback(gabelschalter_cb)
feap.add_nummernschalter_active_callback(nummernschalter_active_cb)
feap.add_nummernschalter_done_callback(nummernschalter_done_cb)
phone.add_event_cb(phone_cb)
phone.start()
webinterface.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
phone.stop()
feap.set_wecker(False)
2020-12-28 00:51:40 +01:00
controller.stop()
2015-05-18 19:25:48 +02:00