1. 07 Jul, 2005 1 commit
  2. 23 May, 2005 1 commit
  3. 11 May, 2005 1 commit
    • Leigh B. Stoller's avatar
      Add a "withwebcams" option to the tracker applet. When turned on, the · 179cf519
      Leigh B. Stoller authored
      mini images from the webcams (240x180) are displayed in the mechanical
      area in the lower right of the floormap. The frame rate is 2fps to
      avoid pummeling the node, as its all done with Java, including the
      jpeg conversion and display (I grabbed most of this code from my
      tools/webcamapplet that I wrote a while back).
      
      My first attempt at this performed really bad cause I was redrawing
      the entire display whenever a new frame came into any camera. Ack,
      this was chewing 98% of the CPU.
      
      So, I restructured things so that each camera is in its own JPanel and
      has its own paint callback. However, in order to have overlapped
      JPanels (since the base image is also a JPanel) I needed to shift to
      using the LayeredPane instead of the ContentPane of the applet. This
      meant creating a wrapper JPanel to hold the base image, and then
      combining everything together on the layered pane. The result is that
      the repainting system paints only what needs to be painted, and
      everything runs much much faster (about 15% CPU on my desktop).
      
      Also got rid of my inline double buffering; JPanels do that by default
      for you. I did not realize that at the time I wrote the applet cause I
      missed the tiny footnote in the Graphics2D tutorial that says Swing
      components do that for you!
      179cf519
  4. 03 Mar, 2005 1 commit
    • Leigh B. Stoller's avatar
      In an attempt to solve the webcam problem ... I have used my · 5d74fed7
      Leigh B. Stoller authored
      burgeoning Java Applet skills to to write a little applet to decode
      the motion jpeg stream that the webcams spit out. Not exactly
      efficient, but at least it works everyplace I tried, even with
      Internet Explorer.
      
      For the web page, the default view is still static, with an option
      near the top to use the applet version of the page. The nice thing is
      that when you leave the page (go someplace else) the data stream
      actually stops (cause the applet is stopped).
      5d74fed7
  5. 01 Mar, 2005 1 commit
  6. 16 Feb, 2005 1 commit
    • Leigh B. Stoller's avatar
      New web cameras are a lot easier to deal with! I've removed the · e3bde0ea
      Leigh B. Stoller authored
      grabwebcams startup since it is no longer needed.
      
      The new version of the webcam page connects directly to the cameras
      using a URL stored in the DB (webcams table). The URL includes the
      user (elabman) and the password, which is fine; not likely to leak
      out the password and even if we did, no biggie since its on the private
      network and no one can get to it anyway.
      
      I have reduced the frame rate to 5fps (compression 50%) as specified
      in the URL, and even thats a lot of bandwidth.
      
      I will work on providing mpeg feeds later!
      e3bde0ea
  7. 10 Jan, 2005 2 commits
    • Leigh B. Stoller's avatar
    • Leigh B. Stoller's avatar
      A quick hack job to get the webcams onto the web interface. · d46902e1
      Leigh B. Stoller authored
      * Add new DB table "webcams" which hold the id of the webcam, the
        server it is attached to, and the last update time.
      
      * Add new sitevars webcam/anyone_can_view and webcam/admins_can_view.
        Should be obvious what they mean.
      
      * Add trivial script grabwebcams (invoked from cron) to grab the images
        from the servers and stash in /usr/testbed/webcams. The images are
        grabbed with scp, protected by a 5 second timeout. Fine for a couple
        of cameras.
      
      * Add web page stuff to display webcams, linked from the robot mape page.
      
      Permission to view the webcams is currently admin, or in a project that is
      allowed to use a robot. We can tighten this up later as needed.
      d46902e1