1. 24 Sep, 2012 1 commit
    • Eric Eide's avatar
      Replace license symbols with {{{ }}}-enclosed license blocks. · 6df609a9
      Eric Eide authored
      This commit is intended to makes the license status of Emulab and
      ProtoGENI source files more clear.  It replaces license symbols like
      "EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited
      blocks that contain actual license statements.
      
      This change was driven by the fact that today, most people acquire and
      track Emulab and ProtoGENI sources via git.
      
      Before the Emulab source code was kept in git, the Flux Research Group
      at the University of Utah would roll distributions by making tar
      files.  As part of that process, the Flux Group would replace the
      license symbols in the source files with actual license statements.
      
      When the Flux Group moved to git, people outside of the group started
      to see the source files with the "unexpanded" symbols.  This meant
      that people acquired source files without actual license statements in
      them.  All the relevant files had Utah *copyright* statements in them,
      but without the expanded *license* statements, the licensing status of
      the source files was unclear.
      
      This commit is intended to clear up that confusion.
      
      Most Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the Affero GNU General Public License, version 3
      (AGPLv3).
      
      Most Utah-copyrighted files related to ProtoGENI are distributed under
      the terms of the GENI Public License, which is a BSD-like open-source
      license.
      
      Some Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the GNU Lesser General Public License, version 2.1
      (LGPL).
      6df609a9
  2. 29 Aug, 2005 1 commit
  3. 06 Jun, 2005 1 commit
  4. 31 May, 2005 2 commits
  5. 31 Mar, 2005 1 commit
    • Timothy Stack's avatar
      · 6cce1762
      Timothy Stack authored
      Pass camera local to world offsets through vmcd.
      
      	* event/sched/rpc.cc: Add the camera fixed_x,fixed_y values to the
      	emcd.config file.
      
      	* robots/emc/emcd.c: Pickup the cameras fixed_x,fixed_y values
      	from the config file.  Add supports for setting the speed of the
      	robot.
      
      	* robots/mtp/mtp.h, robots/mtp/mtp.c: Add support for setting
      	speed in GOTO packets and constructing vmc-client config packets.
      
      	* robots/mtp/mtp.x: Add a vmc-client config packet that contains
      	the cameras origin in world coordinates.
      
      	* robots/mtp/mtp_dump.c: Dump the min/max values for x and y,
      	handy for figuring out the bounds of the camera.
      
      	* robots/vmcd/visionTrack.c, robots/vmcd/visionTrack.h: Handle
      	cameras that are overlapping on two axes.
      
      	* robots/vmcd/vmc-client.c: Accept a vmc-client config packet that
      	tells us where the camera is in world coordinates.  Add an
      	orientation flag that specifies how the camera is oriented wrt to
      	the world coordinate system.
      
      	* robots/vmcd/vmcd.c: Send vmc-client config packets out.  Fix a
      	bug that left unknown tracks in the previous frame, which could
      	confuse the matching algorithm causing it to match unknown tracks
      	instead of valid known tracks.
      6cce1762
  6. 07 Mar, 2005 1 commit
  7. 10 Feb, 2005 2 commits
  8. 17 Jan, 2005 1 commit
    • Timothy Stack's avatar
      · 11cceda4
      Timothy Stack authored
      Some cleanup to the vision system and make wiggle work, although it is still
      a bit glitchy.  This checkin is enough to identify the robots in their
      pens and move them to their initial positions.
      
      	* robots/emc/emcd.h, robots/emc/emcd.c: When rmc connects, send
      	GOTOs with the initial positions given in the config file.  If rmc
      	requests a vision update and one isn't available, queue the
      	request and send a reply when an update does come in.
      
      	* robots/mtp/GNUmakefile.in, robots/mtp/listNode.h,
      	robots/mtp/listNode.c: Add amiga-style linked list node functions,
      	tim always needs these.
      
      	* robots/mtp/mtp.h, robots/mtp/mtp.c: Add mtp_theta function that
      	produces a sane theta value between -M_PI and M_PI.
      
      	* robots/mtp/mtp.x: Add MTP_WIGGLE_START type which causes the
      	robots to stop in their tracks waiting for a real wiggle type
      	(e.g. 180 deg turn).
      
      	* robots/rmcd/rmcd.c: Tweaks, add support for MTP_WIGGLE_START.
      
      	* robots/vmcd/GNUmakefile.in, robots/vmcd/robotObject.h,
      	robots/vmcd/robotObject.c, robots/vmcd/visionTrack.h,
      	robots/vmcd/visionTrack.c, robots/vmcd.c: Cleanup and make wiggle
      	work.
      
      	* robots/vmcd/vmc-client.c: If there are no objects detected in a
      	camera send an error packet instead of nothing, so vmcd can keep
      	in sync with the frames.
      11cceda4
  9. 12 Jan, 2005 1 commit
    • Timothy Stack's avatar
      · f45f9c16
      Timothy Stack authored
      Fix some robot related stuff that I broke with the last checkin and add in
      some other tweaks.
      
      	* robots/primotion/garcia-pilot.cc,
      	robots/primotion/pilotClient.hh, robots/primotion/pilotClient.cc:
      	Broadcast any goto/stop commands to clients observing the robot.
      
      	* robots/rmcd/rmcd.c: Change the behavior to reorient the robot as
      	the last step in a goto, so we avoid doing unnecessary pivots.
      	Need to send an init packet to the robot so it knows who is
      	talking to it.
      
      	* robots/vmcd/vmc-client.c: Oops, supposed to use M_PI_2, not
      	M_PI, when translating from camera coords to world.
      
      	* www/telemetry.php3: Make the size of the applet a little bigger.
      
      	* www/garcia-telemetry/GarciaTelemetry.java,
      	www/garcia-telemetry/UpdateThread.java,
      	www/garcia-telemetry/main.xml: Display a log of goto/stop commands
      	sent to the robot.
      f45f9c16
  10. 10 Jan, 2005 1 commit
    • Timothy Stack's avatar
      · 89bf0a7f
      Timothy Stack authored
      A bunch of engineering on the robot code.  I'm sure I've broken something,
      but the majority of it is done and I wanted to get a checkpoint in.
      
      	* GNUmakerules: Add rpcgen rules.
      
      	* Makeconf.in: Add PATH and host_cpu variables so
      	cross-compilation works properly.  Add JAVAC and JAR for java
      	compilation.  Add BRAINSTEM_DIR that refers to a brainstem build
      	directory to be used for the robot build.
      
      	* configure, configure.in: Prepend the arm cross-compile dir to
      	PATH.  Detect java for building applets.  Add --with-brainstem to
      	specify the brainstem build dir.  Add --enable-mezzanine to turn
      	on the mezzanine build.
      
      	* robots/GNUmakefile.in: Add client target that builds the
      	subdirs.
      
      	* robots/emc/GNUmakefile.in, robots/emc/emcd.h, robots/emc/emcd.c,
      	test_emcd.sh.in, robots/rmcd/GNUmakefile.in, robots/rmcd/rmcd.c,
      	robots/rmcd/test_rmcd.sh.in, robots/vmcd/test_vmc-client.sh.in,
      	robots/vmcd/test_vmcd.sh.in, robots/vmcd/test_vmcd2.sh,
      	robots/vmcd/test_vmcd3.sh, robots/vmcd/test_vmcd4.sh,
      	robots/vmcd/vmc-client.c, robots/vmcd/vmcd.c: Updates for the mtp
      	switch to using rpcgen.
      
      	* robots/emc/test_emcd.config: Restore missing config line.
      
      	* robots/mtp/GNUmakefile.in, robots/mtp/global_bound.java,
      	robots/mtp/mtp.h, robots/mtp/mtp.c, robots/mtp/mtp.java,
      	robots/mtp/mtp.x, robots/mtp/mtp_command_goto.java,
      	robots/mtp/mtp_command_stop.java, robots/mtp/mtp_config_rmc.java,
      	robots/mtp/mtp_config_vmc.java, robots/mtp/mtp_control.java,
      	robots/mtp/mtp_dump.c, robots/mtp/mtp_garcia_telemetry.java,
      	robots/mtp/mtp_opcode_t.java, robots/mtp/mtp_packet.java,
      	robots/mtp/mtp_payload.java, robots/mtp/mtp_recv.c,
      	robots/mtp/mtp_request_id.java,
      	robots/mtp/mtp_request_position.java,
      	robots/mtp/mtp_robot_type_t.java, robots/mtp/mtp_role_t.java,
      	robots/mtp/mtp_send.c, robots/mtp/mtp_status_t.java,
      	robots/mtp/mtp_telemetry.java, robots/mtp/mtp_update_id.java,
      	robots/mtp/mtp_update_position.java, robots/mtp/robot_config.java,
      	robots/mtp/robot_position.java, robots/mtp/test_mtp.sh: Replace
      	hand-generated stubs with xdr stubs for C and java.  Java stubs
      	were generated by "remotetea's" jrpcgen.
      
      	* robots/primotion/GNUmakefile.in,
      	robots/primotion/buttonManager.hh,
      	robots/primotion/buttonManager.cc, robots/primotion/dashboard.hh,
      	robots/primotion/dashboard.cc, robots/primotion/flash-user-led.cc,
      	robots/primotion/garcia-pilot.cc, robots/primotion/garciaUtil.hh,
      	robots/primotion/garciaUtil.cc, robots/primotion/ledManager.hh,
      	robots/primotion/ledManager.cc,
      	robots/primotion/pilotButtonCallback.hh,
      	robots/primotion/pilotButtonCallback.cc,
      	robots/primotion/pilotClient.hh, robots/primotion/pilotClient.cc,
      	robots/primotion/watch-user-button.cc,
      	robots/primotion/wheelManager.hh,
      	robots/primotion/wheelManager.cc: Replace gorobot with
      	garcia-pilot, a beefed up daemon for controlling the robots.
      	Improvements include: making use of the user LED and button to
      	give some feedback and let the wrangler run a test sequence,
      	reboot, and shutdown the robot; Logging of the battery level, how
      	often the robot has moved and for how long, and the distance
      	traveled; telemetry is sent back to emulab clients; movements are
      	now just pivot-move instead of pivot-move-pivot, since the second
      	pivot ends up being extra work most of the time; the robot will
      	move backwards to cut down on the amount of rotation; and just
      	generic cleanups to the code.
      
      	* robots/primotion/garcia.config: The configuration file currently
      	used on the garcias.
      
      	* www/GNUmakefile.in: Add garcia-telemetry subdir to the build.
      
      	* www/dbdefs.php3.in: Add TBNodeClass and TBNodeStatus functions.
      
      	* www/garcia-telemetry/Base64.java,
      	www/garcia-telemetry/GNUmakefile.in,
      	www/garcia-telemetry/GarciaTelemetry.java,
      	www/garcia-telemetry/UpdateThread.java,
      	www/garcia-telemetry/main.xml: A telemetry applet for the garcia,
      	it displays readouts for the various sensors and other bits of data
      	gathered by the garcia-pilot daemon.  Hopefully, it will make a
      	handy debugging tool.
      
      	* www/garcia-telemetry.jar, www/mtp.jar, www/oncrpc.jar,
      	www/thinlet.jar: Java jars used by the robot telemetry applet.
      
      	* www/servicepipe.php3: A slightly enhanced version of
      	ledpipe.php3 that can be used for other services, like robot
      	telemetry.
      
      	* www/shownode.php3: Add "Show Telemetry" menu item to robot
      	nodes.
      
      	* www/telemetry.php3: Telemetry page for the garcia-telemetry
      	applet.
      89bf0a7f
  11. 21 Dec, 2004 1 commit
    • Timothy Stack's avatar
      · 241132a3
      Timothy Stack authored
      Some cleanup of the robot vision system:
      
      	* Makeconf.in: Add INSTALL_INCDIR for includes, EVENTSYS for
      	whether or not the event system is available, HAVE_MEZZANINE for
      	whether or not we'll be building mezzanine, and GTK_CONFIG which
      	refers to the gtk-config binary, if there is one.
      
      	* config.h.in: Add HAVE_LINUX_VIDEODEV_H and HAVE_MEZZANINE
      	defines.
      
      	* configure, configure.in: Check for the robot vision system
      	dependencies.  Add mezzanine template files.
      
      	* robots/GNUmakefile.in: Add some conditionals for directories
      	that depend on the event-system and mezzanine.
      
      	* robots/mezzanine/GNUmakefile.in,
      	robots/mezzanine/libfg/GNUmakefile.in,
      	robots/mezzanine/libmezz/GNUmakefile.in,
      	robots/mezzanine/mezzanine/GNUmakefile.in,
      	robots/mezzanine/mezzcal/GNUmakefile.in,
      	robots/mezzanine/rtk2/GNUmakefile.in: Fold mezzanine into the
      	testbed's build system.
      
      	* robots/vmcd/GNUmakefile.in: When building the vmc-client, use
      	the mezzanine that we build locally instead of an installed
      	version.
      
      	* robots/vmcd/test_vmc-client.sh.in, robots/vmcd/test_vmcd.sh.in,
      	robots/vmcd/test_vmcd2.sh, robots/vmcd/test_vmcd3.sh,
      	robots/vmcd/test_vmcd4.sh: Bring the test cases up-to-date with
      	respect to the actual code.
      
      	* robots/vmcd/vmc-client.c: A bunch of cleanups and bug fixes: add
      	comments, set TCP_NODELAY on the client sockets (doh), etc...
      241132a3
  12. 15 Dec, 2004 4 commits
  13. 14 Dec, 2004 1 commit
  14. 13 Dec, 2004 1 commit
    • Timothy Stack's avatar
      · 0a60aafe
      Timothy Stack authored
      Some bugfixes and an improved test case for vmcd:
      
      	* robots/emc/emcd.c: Add a REQUEST_POSITION handler for the
      	emulab_callback.  Fix some simple bugs when processing REQUEST_ID
      	packets.
      
      	* robots/vmcd/test_emcd.config: Use just one robot for simple
      	test.
      
      	* robots/vmcd/test_vmc-client.pos: A position file for the
      	vmc-client test.
      
      	* robots/vmcd/test_vmc-client.sh.in: Test with a position file
      	instead of hardcoded numbers.
      
      	* robots/vmcd/test_vmcd.pos: Position file for the vmcd test.
      
      	* robots/vmcd/test_vmcd.sh.in: Make the test a little simpler, but
      	add a check to see if vmcd finds the robot initially.
      
      	* robots/vmcd/vmc-client.c: Add a "-f" option that lets you use a
      	"position" file that contains the object positions for a series of
      	frames.
      
      	* robots/vmcd/vmcd.c: Some bug fixes.
      0a60aafe
  15. 12 Dec, 2004 2 commits
    • Timothy Stack's avatar
      · 3af9b150
      Timothy Stack authored
      Minor cleanup:
      
      	* robots/emc/test_emcd.sh.in, robots/mtp/mtp_send.c,
      	robots/mtp/mtp_test.c: Bring up-to-date with the latest version of
      	mtp stuff.
      
      	* robots/vmcd/vmc-client.c: Add "valid" field to the mezz stub
      	struct.
      
      	* robots/vmcd/vmcd.c: Some compile fixes...
      3af9b150
    • David Johnson's avatar
      · 6d3b6118
      David Johnson authored
      * emcd.c:
         - minor changes, mostly comments. this is next to fix up.
      * vmc-client.c:
         - minor changes to tell vmcd about the last packet in a frame
      processing cycle (via MTP_POSITION_STATUS_CYCLE_COMPLETE being set in the
      last update_position packet of a frame processing cycle).
         - maybe other stuff...
      * vmcd.c:
         - massive changes to handle tracking of robots from data passed from
      vmc-client, and to handle ID association.
      * mtp.h:
         - addded MTP_POSITION_STATUS_CYCLE_COMPLETE #define
         - updated structs request_id and update_id to include a `request_id'
      field so that we can uniquely track requests (since they're asynchronous).
      * mtp.c:
         - revamped code for above mtp.h changes.
      6d3b6118
  16. 11 Dec, 2004 1 commit
  17. 10 Dec, 2004 1 commit
    • Timothy Stack's avatar
      · d286c0cb
      Timothy Stack authored
      Start on vmc:
      
      	* configure, configure.in: Add vmcd related template files.
      
      	* robots/GNUmakefile.in: Switch order of vmcd/rmcd.
      
      	* robots/emc/GNUmakefile.in: cleanup
      
      	* robots/mtp/GNUmakefile.in: Add mtp_dump tool.
      
      	* robots/mtp/mtp.c: Change mtp_encode_packet to use a passed in
      	buffer pointer or allocate a buffer if its NULL, probably gonna be
      	a big source of errors...
      
      	* robots/mtp/mtp_dump.c: Another command-line tool that connects
      	to a server and dumps mtp packets that are received.  Useful for
      	seeing output from the vmc-client.
      
      	* robots/vmcd/GNUmakefile.in: Add vmc-client and test case.
      
      	* robots/vmcd/test_vmc-client.sh.in: Test case for the vmc-client.
      
      	* robots/vmcd/vmc-client.c: First cut of the vmc-client, it reads
      	mezzanine output and sends it to any connected clients.
      d286c0cb