Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local component=require('component')
- local event=require('event')
- local modem=component.modem
- SHCS={}
- PORT=111
- services={}
- --Расскоментить для сервиса doorControl
- --services.doorControl=require('SHCS-doors')
- function SHCS.registerService(dnsadr,service)
- modem.send(dnsadr,PORT,'addService',service.type,service.name)
- local i=0
- while i<10 do
- resp=table.pack(event.pull(5,'modem_message'))
- if resp['n']==0 then
- return false, 'timeout'
- elseif resp[6]=='registered' then
- return true
- else
- i=i+1
- end
- end
- return false, 'too many spam'
- end
- function SHCS.startService(service)
- service:pre_start()
- event.listen('modem_message',service.msgHandler)
- end
- function SHCS.searchDns()
- modem.broadcast(PORT,'searchDns')
- local i=0
- while i<10 do
- resp=table.pack(event.pull(5,'modem_message'))
- if resp['n']==0 then
- return false, 'timeout'
- elseif resp[6]=='dnsAddress' then
- return resp[7]
- else
- i=i+1
- end
- end
- return false, 'too many spam'
- end
- modem.open(PORT)
- SHCS['services']=services
- return SHCS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement