|
From: <wgh...@us...> - 2009-08-24 23:24:21
|
Revision: 22769
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=22769&view=rev
Author: wghassan
Date: 2009-08-24 22:25:19 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
new status message: AppStatus
Modified Paths:
--------------
pkg/trunk/sandbox/web/launchman/src/launchman.py
pkg/trunk/sandbox/web/launchman/test/pr2_core.app
pkg/trunk/sandbox/web/rosweb2/src/rosweb.py
pkg/trunk/sandbox/web/webui/src/webui/MBPage.py
pkg/trunk/sandbox/web/webui/src/webui/auth/nstart.py
pkg/trunk/sandbox/web/webui/src/webui/mod/webui/cgibin/apps.py
pkg/trunk/sandbox/web/webui/src/webui/mod/webui/templates/apps.cs
pkg/trunk/sandbox/web/webui/src/webui/mod/webui/templates/includes.cs
Modified: pkg/trunk/sandbox/web/launchman/src/launchman.py
===================================================================
--- pkg/trunk/sandbox/web/launchman/src/launchman.py 2009-08-24 22:16:53 UTC (rev 22768)
+++ pkg/trunk/sandbox/web/launchman/src/launchman.py 2009-08-24 22:25:19 UTC (rev 22769)
@@ -54,7 +54,7 @@
class TaskGroup:
def __init__(self, manager):
- self.task = TaskStatus(None, None, None, None, None)
+ self.task = AppUpdate(None, None, None, None, None)
self.app = None
self.runner = None
self.childGroups = []
@@ -76,7 +76,7 @@
loader.load(fn, config)
except:
self.task.status = "error"
- self.manager.pub.publish(self.task)
+ self.manager.app_update.publish(self.task)
return
self.runner = ROSLaunchRunner(rospy.get_param("/run_id"), config, is_core=False)
@@ -104,10 +104,15 @@
class TaskManager:
def __init__(self):
- self.pub = rospy.Publisher("TaskStatus", TaskStatus, self)
+ self.app_update = rospy.Publisher("app_update", AppUpdate, self)
+ self.app_status = rospy.Publisher("app_status", AppStatus, self)
self._taskGroups = {}
self._apps = {}
+ def _send_status(self):
+ apps = self._apps.keys()
+ self.app_status.publish(AppStatus(apps))
+
def start_task(self, req):
a = app.App(req.taskid)
pgroup = None
@@ -141,12 +146,13 @@
group.task.started = rospy.get_rostime()
group.task.status = "starting"
- self.pub.publish(group.task)
+ self.app_update.publish(group.task)
group.launch()
group.task.status = "running"
- self.pub.publish(group.task)
+ self.app_update.publish(group.task)
+ self._send_status()
return StartTaskResponse("done")
@@ -159,7 +165,7 @@
print "_stopTask", group.app.provides
group.task.status = "stopping"
- self.pub.publish(group.task)
+ self.app_update.publish(group.task)
print "childGroups", group, group.childGroups
for cgroup in group.childGroups[:]:
@@ -168,7 +174,7 @@
group.stop()
group.task.status = "stopped"
- self.pub.publish(group.task)
+ self.app_update.publish(group.task)
if group.app.depends:
pgroup = self._taskGroups.get(group.app.depends.strip(), None)
@@ -179,6 +185,7 @@
print "removing", group.app.provides
del self._taskGroups[group.app.provides]
+
def stop_task(self, req):
app = self._apps[req.taskid]
@@ -191,11 +198,14 @@
del self._apps[req.taskid]
+ self._send_status()
+
return StopTaskResponse("done")
def status_update(self, req):
+ self._send_status()
for provides, group in self._taskGroups.items():
- self.pub.publish(group.task)
+ self.app_update.publish(group.task)
return StatusUpdateResponse("done")
Modified: pkg/trunk/sandbox/web/launchman/test/pr2_core.app
===================================================================
--- pkg/trunk/sandbox/web/launchman/test/pr2_core.app 2009-08-24 22:16:53 UTC (rev 22768)
+++ pkg/trunk/sandbox/web/launchman/test/pr2_core.app 2009-08-24 22:25:19 UTC (rev 22769)
@@ -4,4 +4,4 @@
description: Bring up most of the PR2
icon:
provides: pr2_core
-depends: pr2_core
+depends:
Modified: pkg/trunk/sandbox/web/rosweb2/src/rosweb.py
===================================================================
--- pkg/trunk/sandbox/web/rosweb2/src/rosweb.py 2009-08-24 22:16:53 UTC (rev 22768)
+++ pkg/trunk/sandbox/web/rosweb2/src/rosweb.py 2009-08-24 22:25:19 UTC (rev 22769)
@@ -275,7 +275,7 @@
if len(rwttopics) == 0:
logging.warning("no valid topics")
- self.send_response(404)
+ self.send_failure()
return
messages = []
@@ -348,8 +348,8 @@
return 0
return 1
- def send_success(self, buf = "{}", callback = None):
- self.send_response(200)
+ def _send_responsepage(self, retcode=200, buf = "{}", callback = None):
+ self.send_response(retcode)
if callback:
buf = callback + "(" + buf + ");"
self.send_header('Content-Type', 'text/javascript')
@@ -360,6 +360,12 @@
self.wfile.write(buf)
+ def send_success(self, buf = "{}", callback=None):
+ self._send_responsepage(200, buf, callback)
+
+ def send_failure(self, buf = "{}", callback=None):
+ self._send_responsepage(404, buf, callback)
+
def handle_ROS(self, path, qdict):
cstring = self.headers.get('Cookie', '')
@@ -406,7 +412,11 @@
logging.debug("service call: name=%s, args=%s" % (name, args))
rospy.wait_for_service(name)
service_proxy = rospy.ServiceProxy(name, service_class)
- msg = service_proxy(request)
+ try:
+ msg = service_proxy(request)
+ except rospy.ServiceException:
+ self.send_failure()
+ return
msg = rosjson.ros_message_to_json(msg)
logging.debug("service call: name=%s, resp=%s" % (name, msg))
Modified: pkg/trunk/sandbox/web/webui/src/webui/MBPage.py
===================================================================
--- pkg/trunk/sandbox/web/webui/src/webui/MBPage.py 2009-08-24 22:16:53 UTC (rev 22768)
+++ pkg/trunk/sandbox/web/webui/src/webui/MBPage.py 2009-08-24 22:25:19 UTC (rev 22769)
@@ -28,8 +28,8 @@
# hdf.setValue("Query.debug", "1")
# hdf.setValue("Config.DebugPassword","1")
- hdf.setValue("Config.CompressionEnabled","0")
- hdf.setValue("Config.WhiteSpaceStrip","0")
+ hdf.setValue("Config.CompressionEnabled","1")
+ hdf.setValue("Config.WhiteSpaceStrip","1")
self.login = None
self.username = None
Modified: pkg/trunk/sandbox/web/webui/src/webui/auth/nstart.py
===================================================================
--- pkg/trunk/sandbox/web/webui/src/webui/auth/nstart.py 2009-08-24 22:16:53 UTC (rev 22768)
+++ pkg/trunk/sandbox/web/webui/src/webui/auth/nstart.py 2009-08-24 22:25:19 UTC (rev 22769)
@@ -4,6 +4,9 @@
import os, sys
+PKG = 'webui' # this package name
+import roslib; roslib.load_manifest(PKG)
+
if 1:
script_dir = ''
try:
Modified: pkg/trunk/sandbox/web/webui/src/webui/mod/webui/cgibin/apps.py
===================================================================
--- pkg/trunk/sandbox/web/webui/src/webui/mod/webui/cgibin/apps.py 2009-08-24 22:16:53 UTC (rev 22768)
+++ pkg/trunk/sandbox/web/webui/src/webui/mod/webui/cgibin/apps.py 2009-08-24 22:25:19 UTC (rev 22769)
@@ -30,7 +30,7 @@
aprefix = prefix + ".%d" % i
app.hdfExport(aprefix, hdf)
app.fetchApp(aprefix, hdf)
-
+
def run(context):
return MyPage(context, pagename="apps", nologin=1)
Modified: pkg/trunk/sandbox/web/webui/src/webui/mod/webui/templates/apps.cs
===================================================================
--- pkg/trunk/sandbox/web/webui/src/webui/mod/webui/templates/apps.cs 2009-08-24 22:16:53 UTC (rev 22768)
+++ pkg/trunk/sandbox/web/webui/src/webui/mod/webui/templates/apps.cs 2009-08-24 22:25:19 UTC (rev 22769)
@@ -11,7 +11,7 @@
<table align=center cellspacing=5>
<tr>
<?cs each:_app=CGI.cur.apps ?>
- <td class=buttonOff height=100 bgcolor=white objtype="OnOffButtonWidget" topic="/TaskStatus" taskid="<?cs var:_app.taskid ?>"><div valign=top style="height: 70%;"><font color=black><nobr><?cs var:_app.name ?></div><div style="position: relative; bottom: 0px; font-size: 10pt;" objtype=TextWidget topic="/TaskStatus" key=status selector="taskid" selectorValue="<?cs var:_app.taskid?>"> </div></td>
+ <td class=buttonOff height=100 bgcolor=white objtype="OnOffButtonWidget" topic="/app_update" taskid="<?cs var:_app.taskid ?>"><div valign=top style="height: 70%;"><font color=black><nobr><?cs var:_app.name ?></div><div style="position: relative; bottom: 0px; font-size: 10pt;" objtype=TextWidget topic="/app_update" key=status selector="taskid" selectorValue="<?cs var:_app.taskid?>"> </div></td>
<?cs /each ?>
</tr>
</table>
Modified: pkg/trunk/sandbox/web/webui/src/webui/mod/webui/templates/includes.cs
===================================================================
--- pkg/trunk/sandbox/web/webui/src/webui/mod/webui/templates/includes.cs 2009-08-24 22:16:53 UTC (rev 22768)
+++ pkg/trunk/sandbox/web/webui/src/webui/mod/webui/templates/includes.cs 2009-08-24 22:25:19 UTC (rev 22769)
@@ -10,9 +10,11 @@
<script type="text/javascript" src="jslib/pr2_pb.js"></script>
<script type="text/javascript" src="jslib/pr2_widgets.js"></script>
+<?cs if:0 ?>
<script type='text/javascript' src='http://www.google.com/jsapi'></script>
<script type='text/javascript'>
google.load("visualization", "1", {packages:["linechart"]});
google.load("visualization", "1", {packages:["gauge"]});
</script>
+<?cs /if ?>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|