IndyEye – three basic methods
We finally got hold of a camera by the window to implement an outdoor Web camera, 15 months after our indoor cams at Open Camera got up and running. To implement a WebCam using Indy workstation, you’ll need to install a Web server and decide upon a method used to capture images and deliver them to the clients.
The three basic methods are:
- Crontab-updated images
This is the method used with IndyEye. At given intervals cron job executes a shell script that captures a single image using
cjpegutility is then used to convert an RGB image to a JPEG. The file (JPEG image) is then copied over the older version of the same image, that must reside somewhere within a document tree of your Web server. For more details, see the end of document for pointers to other resources.
- Images taken on demand
Instead of taking pictures at a predetermined interval, you could try with capturing an image when someone accesses the actual page. You would do this with a CGI script that captures the image and outputs the appropriate HTTP headers and the image itself. This will however, put some additional load on the server, as CGI scripts always do.
This method is used with Zagreb live, a Webcam implemented at the Department of Telecommunications.
- Dynamic documents (server-push and client-pull)
By using server-push you could play a sequence of captured images in client’s browser (kind of a poor man’s animation) or eliminate the need for reloading a page because images can be automatically refreshed as new ones become available (as can also be done with client-pull). Client-pull is achieved with an additional tag within a head of an HTML document that tells a browser to reload a page after a given interval.
With client-pull, a connection is closed and than opened again after the given interval.Server-push is achieved with a special MIME type
multipart/x-mixed-replacethat indicates a document consisting of multiple documents (where each might be of a different type) and where new document replaces a previous one. The connection is held open. By defining a server-push script as an image source in your HTML document you can create an animated sequence of images within a static HTML document. This is a method used with Open Camera, a pair of indoor Webcams we implemented back in 1995, with an interval of 15 seconds between two successive images.
You might find the technical information accompanying the Cliché cam of great help when implementing a Webcam.
You are now invited to visit IndyEye, a live view of Zagreb, Croatia.
Ambient Parameters Measurements
Ambient parameters are being measured by an A/D converting module, designed for the internal RS-485 network developed on the Department. The network consists of an arbitre that handles up to 31 additional devices working in polling mode (i.e. a device can speak only when spoken to by the arbitre, which is a bridge between a device and a computer/user). Currently existing devices are an access-monitoring digital lock and an A/D converter with 8 independent inputs.
Basic characteristics of the A/D converter:
- 8-bit resolution
- Input-voltage range: unipolar 0 to 5 V
- 8 independent inputs
- PIC16C74 microcontroller
Basic characteristics of the light-probe:
- Output characteristic similar to that of a human eye.
- External DC power supply
- Output-voltage range: 0 to U (external power supply level)
- Consisted of 2 pieces of NORP12 photo-resistor, and 2 resistors
- Maximum illumination: ~ 35.000 lux
|Illumination level||Sensitivity (U = 5 V)|
|-7 to 2||0,02 to 0,33 V/level|
|2 to 10||0,33 V/level|
|10 to 15||0,33 to 0,03 V/level|
Each level equals 3 dB. Level 0 is about 1 lux.
Thus, illumination in lux can be calculated using the formula:
I = n 2X [lux] , n ~ 1 lux
The projects use Thomas Boutell’s GDLIB, a set of functions for creating, manipulating and saving GIF images on-the-fly.
For further information contact Arsen Torbarina.
Robot controlled Web camera
The Sun video camera connected to the Sun video capture board is used to capture and display real time still images at a constant rate of 4 frames/minute. Image display is continually refreshed by using the server-push method to replace the old image as soon as the new one is available.
The camera itself is made manoeuvreable by a robot connected to the machine’s serial port, and controllable via its World Wide Web interface.
Three modules are used:
- program that communicates with SunVideo capture board, and when started, requests an image in JPEG format (the so called video grabber)
- shell script that starts the video grabber every 15 seconds (at daytime) or once an hour (during the night)
- CGI script that uses server-push to display images from the camera on the Web page
- CGI script communicating with the robot’s controller device via the SunSparc‘s serial port
The robot and its controller were made at the department, and enable camera to cover half 3D space, using the robot’s 2 step motors.
The project is now in its beta testing phase. Different features are to be added later.
for further information contact Kristijan Zimmer
Java at RASIP
New interesting features brought by Java programming language / platform are being used in RASIP`s network-oriented projects (see under head title “Projects using Java”, second part of this article). Our main interest is using Java in remote data acquisition (RDAQ) project called Borneo, along with CORBA, C++ and other OO methods. We also work on various aspects of using Java in intranet/collaboration software such as remote database access, document storages, shared desktops, distributed desktops, etc. Of much interest are various concepts of object-oriented software desingn and implementation including JavaBeans, CORBA, COM/OLE, OpenDoc, etc. We also study the applicability of using Java in electronic commerce as the part of our joint project with CARNet.
RASIP also hosts JavaCenter – a site containing relevant information on all aspects of Java language / platform. JavaCenter is maintained by a group of our undergraduate students, but all interested in Java are welcomed to join us.
ASys system – This system enables for authorization, distribution and control of Java applets and applications and other WEB resources. This system is practical part of graduation thesis no. 1058 titled Control of Java programs in distributed computing systems. System is made by Adon Keber under the guidance of Prof. Ph.D. Mario Zagar at Department of computer systems and processes at Faculty of Electrical Engineering and Computing, Zagreb, Croatia.
Projects using Java
Remote data acquisition and control
- three-tier measured data distribution and presentation
- Borneo RDAQ
Remote database access
- client-server database access using public networks
- tree-tier data access model using WWW
- remote access to document-based storage
- data mining and visualization
Network conferencing and distributed workplace
- Event distribution
- Shared desktop
- Distributed desktop
- Shared documents
- General GUI elements
- Instrument GUI elements
Security / cryptography
- Algorythms implemented in Java
- Data compression algorithms implemented in Java
- JCEF (Java electronic commerce framework)
for further information contact Igor Cavrak (firstname.lastname@example.org)