def main(): import sys n = node.Node("py-wasd", sys.argv[1:]) try: r = WASDRemote(n) r.run() finally: n.stop()
def main(): import sys n = node.Node("pyscript", sys.argv[1:]) try: so = ScriptObserver(n) while True: time.sleep(0.2) finally: n.stop()
def __init__(self, node_name): msg.MessageObserver.__init__(self) self.node = node.Node(node_name) self.auv = control.AUV_readonly(self.node) if hasattr(self, "report"): self._die_flag = threading.Event() self._report_frequency = 0.5 self._reporting_thread = threading.Thread(target=self._report_loop) self._reporting_thread.start()
def randomTest(): import sys n = node.Node("pycauv",sys.argv[1:]) print "created node.Node" n.join("test") print "joined test group" n.join("pipeline") print "joined pipeline group" n.join("invalid group") print "attempted to join an invalid group" o = node.Observer() print o, "created node.Observer" dmo = messaging.DebugMessageObserver() print dmo, "created DebugMessageObserver" class MMO(node.Observer): def onDebugMessage(self, msg): print "mesage received:", msg def onImageMessageBuffered(self, msg): print "image received:", msg def onNodeAddedMessage(self, msg): print "node added:", msg.nodeId, msg.nodeType def onStatusMessageBuffered(self, msg): print "node status:", msg.nodeId, msg.status m = MMO() m.setDoubleBuffered(messaging.MessageType.Status, True) #pylint: disable=E1101 m.setDoubleBuffered(messaging.MessageType.Image, True) #pylint: disable=E1101 print m, "created Observer with overload" n.addObserver(m) print "added observer with overload" n.addObserver(o) print "added empty observer" n.addObserver(dmo) print "added debug observer" msg = messaging.DebugMessage(messaging.DebugType.Debug, "test message string!") print "created debug message:", msg for i in xrange(1, 11): try: print "setting message string" msg.msg = "msg string %d" % i print "Sending message", i, msg n.send(msg, "test") #print n.mailbox.receive(1000) except Exception, e: print e
def __enter__(self): self.dirname = tempfile.mkdtemp() self.processes = set() log_dir = os.path.join(self.dirname, "log") os.mkdir(log_dir) os.mkdir(os.path.join(self.dirname, "test")) #bleh, this is a bit ugly, but can't really modify these options easily #otherwise.... os.environ.update({ "CAUV_IPC_DIR": self.dirname, "CAUV_VEHICLE_NAME": "test", "CAUV_LOG_DIR": log_dir, }) if self.create_node: self.node = node.Node("test") return self
def pipelineTest(): import sys n = node.Node("pycauv-pl",sys.argv[1:]) model = pipeline.Model(n) print 'Setting debug level to -3' n.send(messaging.DebugLevelMessage(-3), "debug") print 'Adding stuff to the pipeline...' n.send(messaging.ClearPipelineMessage(), "pipeline") n.send(messaging.AddNodeMessage(messaging.NodeType.FileInput, messaging.NodeInputArcVec(), messaging.NodeOutputArcVec()), "pipeline") n.send(messaging.AddNodeMessage(messaging.NodeType.GuiOutput, messaging.NodeInputArcVec(), messaging.NodeOutputArcVec()), "pipeline") print 'Getting pipeline state...' saved = model.get() print 'before:', saved print 'Clearing pipeline state...' model.clear() print 'Setting pipeline state...' model.set(saved) print 'after:', model.get()
speed = report.speed else: speed = 0 if hasattr(report, "climb"): climb = report.climb else: climb = 0 info("Location: [lat %f, lon %f, alt %f]" % (report.lat, report.lon, report.alt)) self.__node.send( msg.GPSLocationMessage( msg.WGS84Coord(report.lat, report.lon, report.alt), track, speed, climb)) if __name__ == '__main__': try: import sys n = node.Node("py-gps", sys.argv[1:]) while True: try: GPSNode(n).run() except StopIteration: info("GPS stopped, trying to restart") except KeyError: warning("Invalid key lookup, restarting") except socket.error: error("GPSD not running")
default=0.0, help='x-origin of environment (px offset from top left)') p.add_argument('-y', dest='env_y', type=float, default=0.0, help='y-origin of environment (px offset from top left)') p.add_argument('-p', '--profile', dest='profile', default=False, action='store_true') # add a command line argument for this later... datum = Default_Coordinates_Datum opts, args = p.parse_known_args() cauv_node = node.Node("py-gem", args) try: e = Environment(opts.env_file, (opts.env_x, opts.env_y), opts.env_scale, datum) f = FakeGemini(cauv_node, e) if opts.profile: import cProfile as profile profile.run('f.mainLoop()', 'fakegemini.profile') else: f.mainLoop() finally: cauv_node.stop()
#!/usr/bin/env python2.7 # # Copyright 2013 Cambridge Hydronautics Ltd. # # See license.txt for details. # import cauv import cauv.node as node import cauv.messaging as msg import time import sys class ScriptResponseObs(msg.BufferedMessageObserver): def onScriptResponseMessage(self, m): print '>>>', m.response n = node.Node("pyscript2", sys.argv[1:]) n.join("gui") n.addObserver(ScriptResponseObs()) n.send(msg.ScriptMessage("hello, python", 10.0), "control") n.send(msg.ScriptMessage("response('hello, python')", 10.0), "control") n.send(msg.ScriptMessage("import cauv.messaging as msg", 10.0), "control") n.send(msg.ScriptMessage("response(str(dir(msg)))", 10.0), "control") time.sleep(5)
# self.writeLine() def onAIlogMessage(self, m): self.comment = str(m.msg) self.writeLine() def onTelemetryMessage(self, m): self.bearing = m.orientation.yaw self.depth = m.depth self.writeLine() def onLocationMessage(self, m): self.latitude = m.location.latitude self.longitude = m.location.longitude self.altitude = m.location.altitude self.speed = m.speed self.writeLine() if __name__ == '__main__': import sys n = node.Node("py-log", sys.argv[1:]) logger = LoggingObserver(n) try: while True: time.sleep(1.0) except Exception, e: error(str(traceback.format_exc())) finally: logger.close()
action='store', help='directory to load/store messages from') p.add_argument('-r', '--restore', dest='restore', default=False, action='store_true', help='immediately broadcast messages for saved settings') p.add_argument('-n', '--no-auto', dest='auto', default=True, action='store_false', help="don't automatically set parameters" +\ "when CAUV Nodes connect to the messaging system") p.add_argument('-s', '--silent', action='store_true', help="don\'t prompt for commands") p.add_argument('-o', '--read-only', help="don't save broadcasted messages", action='store_true') p.add_argument('-e', '--every', help='broadcast every n seconds', type=int) opts, args = p.parse_known_args() cauv_node = node.Node("persist", args) shelf = utils.jsonshelf.JSONShelf(opts.fname) if opts.restore: sendSavedMessages(cauv_node, shelf) persistMainLoop(cauv_node, shelf, opts.auto, opts.silent, opts.read_only, opts.every)
# # Copyright 2013 Cambridge Hydronautics Ltd. # # See license.txt for details. # import cauv import cauv.node as node import cauv.messaging as msg from cauv.debug import debug, warning, error, info import time import random import sys n = node.Node("sonar-t",sys.argv[1:]) data_line = msg.SonarDataLine() data_line.bearing = 0 data_line.bearingRange = 6400/32 data_line.range = 10 while True: data_line.data = msg.byteVec() for i in xrange(0, 50): data_line.data.append(i + random.randrange(0, 50) % 0xff) data_line.bearing += data_line.bearingRange if(data_line.bearing > 6400): data_line.bearing -= 6400 info('%s' % data_line.bearing)
cli = TelemetryLoggerCmdPrompt(tl) playback_is_active = False try: cli.cmdloop() except KeyboardInterrupt: pass finally: # this gets run even if we were killed (software-killed that is, # nothing can save us from the kill-switch...) tl.close() info('closed down properly') info('exiting...') if __name__ == '__main__': p = argparse.ArgumentParser() p.add_argument('-f', '--log-fname', dest='fname', default='./default.chil', action='store', help='file to load/save telemetry data from') p.add_argument('-n', '--no-record', dest='no_record', default=False, action='store_true', help="Don't start in recording mode") opts, args = p.parse_known_args() cauv_node = node.Node("py-tlog",args) try: telemetryLoggerMainLoop(cauv_node, opts) finally: cauv_node.stop()
# # See license.txt for details. # #pylint: disable=E1101 import cauv import cauv.node as node import cauv.messaging as msg import cauv.pipeline as pipeline import time import sys n = node.Node("py-camtest",sys.argv[1:]) pl = pipeline.Model(n) pl.clear() cam_forward_n = pl.addSynchronous(msg.NodeType.CameraInput) pl.setParameterSynchronous(cam_forward_n, "device id", pipeline.intParam(1)) cam_down_n = pl.addSynchronous(msg.NodeType.CameraInput) pl.setParameterSynchronous(cam_down_n, "device id", pipeline.intParam(0)) fo_forward_n = pl.addSynchronous(msg.NodeType.FileOutput) pl.setParameterSynchronous(fo_forward_n, "filename", pipeline.stringParam("out.%d.%t.%c-forward.jpg")) fo_down_n = pl.addSynchronous(msg.NodeType.FileOutput) pl.setParameterSynchronous(fo_forward_n, "filename", pipeline.stringParam("out.%d.%t.%c-down.jpg"))