mirror of
https://github.com/antos-rde/antosdk-apps.git
synced 2024-12-25 11:48:21 +01:00
92 lines
3.2 KiB
CoffeeScript
92 lines
3.2 KiB
CoffeeScript
class SysmondService extends OS.application.BaseService
|
|
constructor: (args) ->
|
|
super "SysmondService", args
|
|
@text = __("{0}%", 0.toString())
|
|
@iconclass = "fa fa-android"
|
|
@app = undefined
|
|
#@nodes = [
|
|
# {text: __("Status"), id: 1},
|
|
# {text: __("Shutdown"), id: 3},
|
|
# {text: __("Reboot"), id: 4},
|
|
# {text: __("Exit service"), id: 2}
|
|
#]
|
|
@onmenuselect = (e) => @openApp()
|
|
|
|
setting: () ->
|
|
return @systemsetting.applications["SystemControl"]
|
|
|
|
init: () ->
|
|
checklib = () =>
|
|
if not Antunnel.tunnel
|
|
@error __("The Antunnel service is not started, please start it first")
|
|
@_gui.pushService("Antunnel/AntunnelService")
|
|
.catch (e) =>
|
|
@error e.toString(), e
|
|
@quit()
|
|
else
|
|
return unless @setting().topic
|
|
@tunnel = Antunnel.tunnel
|
|
@sub = new Antunnel.Subscriber(@setting().topic)
|
|
@sub.onopen = () =>
|
|
#@sub.send Antunnel.Msg.DATA, new TextEncoder("utf-8").encode("Hello")
|
|
console.log("Subscribed to notification channel")
|
|
|
|
@sub.onerror = (e) =>
|
|
@error __("Error: {0}", new TextDecoder("utf-8").decode(e.data)), e
|
|
#@sub = undefined
|
|
|
|
@sub.onmessage = (e) =>
|
|
obj = JSON.parse(new TextDecoder("utf-8").decode(e.data)) if e.data
|
|
# update the battery
|
|
@text = __("{0}%", Math.round(obj.battery_percent).toString())
|
|
@app.feed obj if @app
|
|
@update()
|
|
|
|
@sub.onclose = () =>
|
|
@sub = undefined
|
|
@notify __("Unsubscribed to the notification service")
|
|
@quit()
|
|
Antunnel.tunnel.subscribe @sub
|
|
|
|
if not @setting().topic
|
|
console.log "Open dialog"
|
|
@_gui.openDialog("PromptDialog", {
|
|
title: __("Enter topic name"),
|
|
label: __("Please enter topic name")
|
|
})
|
|
.then (v) =>
|
|
@setting().topic = v
|
|
checklib()
|
|
else
|
|
checklib()
|
|
|
|
|
|
openApp: () ->
|
|
return if @app
|
|
@_gui.launch "SystemControl", []
|
|
|
|
|
|
execute: (cmd) ->
|
|
#return unless @tunnel
|
|
#sub = new Antunnel.Subscriber("jarvis_control")
|
|
#sub.onopen = () =>
|
|
# console.log("Subscribed to jarvis_control channel. Send the command")
|
|
# sub.send Antunnel.Msg.DATA, new TextEncoder("utf-8").encode(cmd)
|
|
# sub.close()
|
|
|
|
#sub.onerror = (e) =>
|
|
# @error __("Error: {0}", new TextDecoder("utf-8").decode(e.data)), e
|
|
#@sub = undefined
|
|
|
|
#sub.onclose = () =>
|
|
# @notify __("Unsubscribed to the jarvis_control service")
|
|
#@tunnel.subscribe sub
|
|
|
|
awake: () ->
|
|
|
|
cleanup: () ->
|
|
@app.quit() if @app
|
|
@sub.close() if @sub
|
|
|
|
|
|
this.OS.register "SysmondService", SysmondService |