00001
00002
00003 """
00004 usage: %(progname)s [args]
00005 """
00006
00007 import nstart
00008
00009 import os, sys, string, time, getopt, re
00010 from pyclearsilver.log import *
00011
00012 import neo_cgi, neo_util, neo_cs
00013
00014 from pyclearsilver import CSPage
00015 from pyclearsilver import odb
00016
00017 import MBPage
00018 import db_webui
00019
00020 import roslib
00021 import roslib.scriptutil
00022
00023 import webutil
00024 import nodeutil
00025
00026 class MyPage(MBPage.MBPage):
00027 def setup(self, hdf):
00028 pass
00029
00030 def display(self, hdf):
00031 topic = hdf.getValue("Query.topic", "")
00032 hdf.setValue("CGI.cur.topic", topic)
00033 webutil.set_tabs(hdf, ["status", "topics"])
00034 webutil.grabTopics(hdf, ["/topics", topic, "/battery_state", "/power_board_state", "/app_status"])
00035
00036 topic_data = nodeutil.topic_info(topic)
00037
00038 if "error" in topic_data:
00039 hdf.setValue("CGI.cur.error", topic_data["error"])
00040 else:
00041 webutil.hdf_array(hdf, sorted(topic_data["publishers"]), "CGI.cur.publishers")
00042 webutil.hdf_array(hdf, sorted(topic_data["subscribers"]), "CGI.cur.subscribers")
00043
00044 def run(context):
00045 return MyPage(context, pagename="topic", nologin=False)
00046
00047 def main():
00048 context = CSPage.Context()
00049 run(context).start()
00050
00051 if __name__ == "__main__":
00052 main()