From what I understand, a task can not be ran from the main.brs file. So in order to run a task, I must first create a scene and then create the task within the scene. If this is not correct I am really lost. So, in my main.brs I have a function that is executed on start up and then again later in the code. This function uses urlTransfer so it's done in a task. My problem is that I keep getting an error stating "No such node serverurlinfo". I have a setup like the following;
main.brs
function seturlData()
screen = CreateObject("roSGScreen")
screen.setMessagePort(m.port)
scene = screen.CreateScene("serverurlinfo")
screen.show()
while (true)
msg = wait(0, m.port)
msgType = type(msg)
if msgType = "roSGScreenEvent"
if msg.isScreenClosed()
exit while
end if
end if
end while
end function
serverurlinfo.xml
<?xml version="1.0" encoding="utf-8" ?>
<component name="serverurlinfo" extends="Scene" >
<script type="text/brightscript" uri="pkg:/source/main.brs" />
<script type="text/brightscript">
<![CDATA[
sub init()
url="http://xxx.xx.xx.xx:8xxx/server"
m.urlTask = CreateObject("roSGNode", "urlTask")
m.urlTask.serverurl= url
m.urlTask.control = "RUN"
end sub
]]>
</script>
[size=85][font=Helvetica Neue, Helvetica, Arial, sans-serif]</component>[/font][/size]
task_url.xml
<?xml version="1.0" encoding="utf-8" ?>
<!--********** Copyright 2016 Roku Corp. All Rights Reserved. **********-->
<component name = "urlTask" extends = "Task" >
<interface>
<field id = "serverurl" type= "string"/>
<field id = "contentreturn" type = "roArray"/>
</interface>
<script type="text/brightscript" uri="pkg:/source/main.brs" />
<script type = "text/brightscript" >
<![CDATA[
sub init()
PRINT "IN url TASK"
TransferServer()
end sub
function TransferServer()
?"in TransferServer"
serverurl=m.top.url
rocurl = createObject("roUrlTransfer")
roport=CreateObject("roMessagePort")
rocurl.setUrl(serverurl)
m.top.contentreturn=rocurl.GetToString()
end function
]]>
</script>
</component>
Is there something missing? If so what? Thanks