<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.elphel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zimbatm</id>
	<title>ElphelWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.elphel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zimbatm"/>
	<link rel="alternate" type="text/html" href="https://wiki.elphel.com/wiki/Special:Contributions/Zimbatm"/>
	<updated>2026-08-01T13:05:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=Elphel_Software_Kit_for_Ubuntu&amp;diff=2199</id>
		<title>Elphel Software Kit for Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Elphel_Software_Kit_for_Ubuntu&amp;diff=2199"/>
		<updated>2007-06-12T08:54:53Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: /* links: */ fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All Elphel cameras are packaged with a DVD what can be used as a Live DVD or installed on the disc. This DVD is kubuntu based GNU/Linux distribution with some additional softwares and preconfigured settings. This page describe the content of the DVD, how to use and customize it.&lt;br /&gt;
&lt;br /&gt;
The idea is to bring to our customers a GNU/Linux distribution what whey can use with our cameras installing it on they computers or using it as LiveDVD. On the other side it provide more advanced users and developers with many tools to cros-compile, simulate FPGA code, reflash the camera etc..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DVD content:==&lt;br /&gt;
&lt;br /&gt;
Our DVD differ from standard kubuntu in several way:&lt;br /&gt;
&lt;br /&gt;
* it include all softwares needed by users of our cameras&lt;br /&gt;
* we added some video editing &amp;amp; images processing softwares&lt;br /&gt;
* it include softwares for software and hardware developers&lt;br /&gt;
* some configuration file are modified to suit our needs&lt;br /&gt;
* some OpenSource applications for Windows (R)&lt;br /&gt;
&lt;br /&gt;
===User software===&lt;br /&gt;
&lt;br /&gt;
For users we provide:&lt;br /&gt;
&lt;br /&gt;
* flashit icon on the desktop to reflash our cameras with the latest firmware&lt;br /&gt;
* Firefox web browser with mplayer and genres plugin to provide live view of our cameras&lt;br /&gt;
* LAMP based DVR to provide a simple way to record video and audio from our cameras&lt;br /&gt;
&lt;br /&gt;
===Video Applications:===&lt;br /&gt;
* mplayer&lt;br /&gt;
* genres&lt;br /&gt;
* VLC&lt;br /&gt;
* gstreamer&lt;br /&gt;
* cinerella&lt;br /&gt;
* cinepaint&lt;br /&gt;
* ImageMagick&lt;br /&gt;
* gocr&lt;br /&gt;
* mjpegtools&lt;br /&gt;
* avifie-utils&lt;br /&gt;
* ElphelSrv&lt;br /&gt;
* DVR software&lt;br /&gt;
&lt;br /&gt;
===Elphel SDK===&lt;br /&gt;
&lt;br /&gt;
We provide our clients with a complete SDK to develop software, FPGA code and even to redesign the hardware.&lt;br /&gt;
&lt;br /&gt;
* Eclipse IDE&lt;br /&gt;
* VDT verilog plugin for Eclipse IDE&lt;br /&gt;
* LAMP preinstalled on the DVD&lt;br /&gt;
* GTKWave&lt;br /&gt;
* Qcad&lt;br /&gt;
* Kicad&lt;br /&gt;
* iverilog&lt;br /&gt;
* GNURadio&lt;br /&gt;
* Varicad (demo)&lt;br /&gt;
* dash shell is replaced with bash to comply with Axis SDK&lt;br /&gt;
&lt;br /&gt;
===OpenSource applications for Windows (R)===&lt;br /&gt;
&lt;br /&gt;
If you insert our DVD into a windows computer you will be able to install opensource softwares to use with our camera:&lt;br /&gt;
&lt;br /&gt;
* Mozills FireFox&lt;br /&gt;
* mplayer-win&lt;br /&gt;
* VLC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Special configurations===&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Remastering the DVD:==&lt;br /&gt;
&lt;br /&gt;
Our distribution is based on Kubuntu GNU/Linux. You can remaster it from Live session with an external hard-drive or after installing our base distribution on your computer. Here i suppose what it&#039;s installed and you have sufficient space (~6 GO).&lt;br /&gt;
&lt;br /&gt;
So here is the modification process:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===prepare the environment:===&lt;br /&gt;
 sudo su&lt;br /&gt;
 cd&lt;br /&gt;
 mount /media/cdrom&lt;br /&gt;
 mkdir remaster-root remaster-iso  remaster-new-files tmp&lt;br /&gt;
 cp -R /media/cdrom/* remaster-iso&lt;br /&gt;
 mount -t squashfs -o loop,ro remaster-iso/casper/filesystem.squashfs tmp&lt;br /&gt;
 cp -R tmp/* remaster-root&lt;br /&gt;
 umount tmp&lt;br /&gt;
 rmdir tmp&lt;br /&gt;
&lt;br /&gt;
===modify the distribution:===&lt;br /&gt;
 mount --bind /proc remaster-root/proc&lt;br /&gt;
 mount --bind /sys remaster-root/sys&lt;br /&gt;
 mount --bind /dev remaster-root/dev&lt;br /&gt;
 chroot remaster-root&lt;br /&gt;
 #install your softwares, remove unneeded softwares modify configuration files, ...&lt;br /&gt;
 apt-get remove nano&lt;br /&gt;
 apt-get install vim&lt;br /&gt;
 apt-get clean&lt;br /&gt;
 exit&lt;br /&gt;
 umount remaster-root/dev&lt;br /&gt;
 umount remaster-root/sys&lt;br /&gt;
 umount remaster-root/proc&lt;br /&gt;
&lt;br /&gt;
===rebuild the DVD:===&lt;br /&gt;
 chroot . dpkg-query -W --showformat=&#039;${Package} ${Version}\n&#039; &amp;gt; ../remaster-iso/casper/filesystem.manifest&lt;br /&gt;
 chroot . dpkg-query -W --showformat=&#039;${Package} ${Version}\n&#039; &amp;gt; ../remaster-iso/casper/filesystem.manifest-desktop&lt;br /&gt;
 mksquashfs .  ../remaster-iso/casper/filesystem.squashfs&lt;br /&gt;
 cd ../remaster-iso&lt;br /&gt;
 find . -type f -print0 |xargs -0 md5sum |sudo tee md5sum.txt&lt;br /&gt;
 mkisofs -o ../remaster-new-files/Elphel-Software-Kit.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -V &amp;quot;Elphel Software Kit&amp;quot; -cache-inodes -J -l .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What&#039;s all :) you have a new DVD image in /root/remaster-new-files/Elphel-Software-Kit.iso&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==links:==&lt;br /&gt;
&lt;br /&gt;
- [http://www.ubuntu.com/ ubuntu]&lt;br /&gt;
&lt;br /&gt;
- [http://www.opencores.com/ opencores]&lt;br /&gt;
&lt;br /&gt;
- [http://www.openhardware.de/ openhardware.de]&lt;br /&gt;
&lt;br /&gt;
- [http://www.olimex.com/dev/index.html Olimex hardware can be added to Elphel 353]&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=User:Zimbatm&amp;diff=1987</id>
		<title>User:Zimbatm</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=User:Zimbatm&amp;diff=1987"/>
		<updated>2007-04-02T12:44:58Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: /* Why isn&amp;#039;t Elphel a &amp;quot;reconfigurable&amp;quot; camera ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello,&lt;br /&gt;
&lt;br /&gt;
I&#039;m working for a small Swiss company called [http://www.stvs.ch STVS]. We&#039;re actually the official European resellers for the Elphel cameras :)&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been giving some thoughts about Elphel lately and wanted a place to note them down and share. And here it is :&lt;br /&gt;
&lt;br /&gt;
== Why is the VAPIX API bad for Elphel ? ==&lt;br /&gt;
&lt;br /&gt;
As we know, Axis is the leader in the IP cameras market. This is why they play the game and that every network recorder wants to support their API. I think that Elphel should NOT follow that path, and here are my reasons :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Elphel cameras are not designed for security&#039;&#039;&#039; : Elphel doesn&#039;t produce IP cameras for security purposes. Even if it would, it&#039;s not ready yet. It misses a lot of vital features and doesn&#039;t have the production infrastructure to sustain it. There is then no big reason to support the AxisAPI.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The VAPIX API is not free&#039;&#039;&#039; : Even if Axis says nothing, their lawyers seems pretty itchy about the &amp;quot;intellectual property&amp;quot; of the VAPIX API. I say that based on previous contact during the ProVision development. I don&#039;t know if they have any patent associated to it but I think this can be a problem if Elphel becomes successful in that market.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The design is not open&#039;&#039;&#039; : The API was designed internally by the AXIS developpers. Even if it is not too bad and that it&#039;s documented, the development process is not open. It means that at every release, Elphel must &amp;quot;follow&amp;quot; it&#039;s development. It doesn&#039;t have much choice of providing an half-baked API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The design is not adapted&#039;&#039;&#039; : The current Elphel implementation shows it. Some features of Elphel cameras are not available to the Axis cameras and reversely. By following the Axis design, it only means that we must break the API.&lt;br /&gt;
&lt;br /&gt;
To summarize, I think that Elphel has restricted resources and should not loose it&#039;s time following an API that is not even beneficial to it.&lt;br /&gt;
&lt;br /&gt;
== What is missing for Elphel to enter the security market ? ==&lt;br /&gt;
&lt;br /&gt;
More to come... in short :&lt;br /&gt;
* User access control&lt;br /&gt;
* Simplified web interface&lt;br /&gt;
* Software-controlled optical zoom&lt;br /&gt;
* Pan-Tilt-Zoom(PTZ)&lt;br /&gt;
* Better production factors&lt;br /&gt;
* Better documentation&lt;br /&gt;
&lt;br /&gt;
== Why isn&#039;t Elphel a &amp;quot;reconfigurable&amp;quot; camera ? ==&lt;br /&gt;
&lt;br /&gt;
Ok.. I&#039;m joking :) But I still think that there could be made use of some enhancements, notably :&lt;br /&gt;
* A packaging system : so that we can provide a large range of software and without reflashing&lt;br /&gt;
&lt;br /&gt;
Notes on new distro :&lt;br /&gt;
* http://www.scratchbox.org : Cross-compilation framework (used by Maemo)&lt;br /&gt;
* http://www.openembedded.org/ : Cross-compilation framework (used by OpenMoko)&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=User:Zimbatm&amp;diff=1986</id>
		<title>User:Zimbatm</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=User:Zimbatm&amp;diff=1986"/>
		<updated>2007-04-02T11:13:41Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: Some personal notes...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello,&lt;br /&gt;
&lt;br /&gt;
I&#039;m working for a small Swiss company called [http://www.stvs.ch STVS]. We&#039;re actually the official European resellers for the Elphel cameras :)&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been giving some thoughts about Elphel lately and wanted a place to note them down and share. And here it is :&lt;br /&gt;
&lt;br /&gt;
== Why is the VAPIX API bad for Elphel ? ==&lt;br /&gt;
&lt;br /&gt;
As we know, Axis is the leader in the IP cameras market. This is why they play the game and that every network recorder wants to support their API. I think that Elphel should NOT follow that path, and here are my reasons :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Elphel cameras are not designed for security&#039;&#039;&#039; : Elphel doesn&#039;t produce IP cameras for security purposes. Even if it would, it&#039;s not ready yet. It misses a lot of vital features and doesn&#039;t have the production infrastructure to sustain it. There is then no big reason to support the AxisAPI.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The VAPIX API is not free&#039;&#039;&#039; : Even if Axis says nothing, their lawyers seems pretty itchy about the &amp;quot;intellectual property&amp;quot; of the VAPIX API. I say that based on previous contact during the ProVision development. I don&#039;t know if they have any patent associated to it but I think this can be a problem if Elphel becomes successful in that market.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The design is not open&#039;&#039;&#039; : The API was designed internally by the AXIS developpers. Even if it is not too bad and that it&#039;s documented, the development process is not open. It means that at every release, Elphel must &amp;quot;follow&amp;quot; it&#039;s development. It doesn&#039;t have much choice of providing an half-baked API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The design is not adapted&#039;&#039;&#039; : The current Elphel implementation shows it. Some features of Elphel cameras are not available to the Axis cameras and reversely. By following the Axis design, it only means that we must break the API.&lt;br /&gt;
&lt;br /&gt;
To summarize, I think that Elphel has restricted resources and should not loose it&#039;s time following an API that is not even beneficial to it.&lt;br /&gt;
&lt;br /&gt;
== What is missing for Elphel to enter the security market ? ==&lt;br /&gt;
&lt;br /&gt;
More to come... in short :&lt;br /&gt;
* User access control&lt;br /&gt;
* Simplified web interface&lt;br /&gt;
* Software-controlled optical zoom&lt;br /&gt;
* Pan-Tilt-Zoom(PTZ)&lt;br /&gt;
* Better production factors&lt;br /&gt;
* Better documentation&lt;br /&gt;
&lt;br /&gt;
== Why isn&#039;t Elphel a &amp;quot;reconfigurable&amp;quot; camera ? ==&lt;br /&gt;
&lt;br /&gt;
Ok.. I&#039;m joking :) But I still think that there could be made use of some enhancements, notably :&lt;br /&gt;
* A packaging system : so that we can provide a large range of software and without reflashing&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=Webcam_viewer&amp;diff=1444</id>
		<title>Webcam viewer</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Webcam_viewer&amp;diff=1444"/>
		<updated>2005-12-24T06:55:40Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Webcam Viewer ==&lt;br /&gt;
Software needed to use high-resolution network cameras as webcameras that can be viewed from websites (ours and our clients) should demonstrate ... well, high resolution. But as even 3 MPix is higher than computer screens, some software is needed on the client to simplify image manipulation preserving full resolution.&lt;br /&gt;
&lt;br /&gt;
Here is a model [http://www.elphel.com/test/view2/index.html html+javaScript Image viewer]. It will be opened as a pop-up window from the main page to reduce the number of browser visible elements above/below the image area, url and refresh period (if any) will be passed to this window, last window configuration saved as cookies (not done yet). Refresh will use dummy suffix to URL to make it different, new image will show only after complete download (also not done yet). Currently Mozilla/Firefox and IE6 are known to work, konqueror - known to fail.&lt;br /&gt;
&lt;br /&gt;
Window uses two frame frameset (so 3 files). The full size image (currently 3 MPix) is loaded from the server (once), the rest is done with javascript. Left frame containes a scaled image so it fits in the frame (frame can be resized as needed by dragging the frame border), rigth frame - a &amp;quot;zoom 1:1&amp;quot; fraction of the image. Clicking inside the scaled image (left frame) shows the rectangle matching the left frame that can be dragged by moving the mouse (button should be better released). While dragging that rectangle the right frame shows its contents with full resolution.&lt;br /&gt;
&lt;br /&gt;
Right clicking in the right frame allows saving the full resolution image, it is also possible to add a link to that image so the full image will open in a new window.&lt;br /&gt;
&lt;br /&gt;
[http://www.elphel.com/test/vimp/index.html New version] - does not use frames (could not figure out how to download image once and show in several frames without using extra bandwidth - maybe it is not possible at all). So now - it consists of just DIV layers, no autorefresh yet - only manual (button goes red during image update). Update - in the background, images are replaced when ready. Window size and the border position are save in cookies.&lt;br /&gt;
&lt;br /&gt;
--[[User:Andrey.filippov|Andrey.filippov]] 12:06, 18 December 2005 (CST)&lt;br /&gt;
&lt;br /&gt;
[[User:Zimbatm|Zimbatm]] : I am currently working on a one DIV implementation. I expect to have it finished for the start of next year. The idea is to have only one frame containing the zoomed picture. You can move the inner picture with drag and drop. In a further version, I will add zoom controls and cross-browser compatibility.&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=Webcam_viewer&amp;diff=1443</id>
		<title>Webcam viewer</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Webcam_viewer&amp;diff=1443"/>
		<updated>2005-12-24T06:55:10Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: /* Webcam Viewer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Webcam Viewer ==&lt;br /&gt;
Software needed to use high-resolution network cameras as webcameras that can be viewed from websites (ours and our clients) should demonstrate ... well, high resolution. But as even 3 MPix is higher than computer screens, some software is needed on the client to simplify image manipulation preserving full resolution.&lt;br /&gt;
&lt;br /&gt;
Here is a model [http://www.elphel.com/test/view2/index.html html+javaScript Image viewer]. It will be opened as a pop-up window from the main page to reduce the number of browser visible elements above/below the image area, url and refresh period (if any) will be passed to this window, last window configuration saved as cookies (not done yet). Refresh will use dummy suffix to URL to make it different, new image will show only after complete download (also not done yet). Currently Mozilla/Firefox and IE6 are known to work, konqueror - known to fail.&lt;br /&gt;
&lt;br /&gt;
Window uses two frame frameset (so 3 files). The full size image (currently 3 MPix) is loaded from the server (once), the rest is done with javascript. Left frame containes a scaled image so it fits in the frame (frame can be resized as needed by dragging the frame border), rigth frame - a &amp;quot;zoom 1:1&amp;quot; fraction of the image. Clicking inside the scaled image (left frame) shows the rectangle matching the left frame that can be dragged by moving the mouse (button should be better released). While dragging that rectangle the right frame shows its contents with full resolution.&lt;br /&gt;
&lt;br /&gt;
Right clicking in the right frame allows saving the full resolution image, it is also possible to add a link to that image so the full image will open in a new window.&lt;br /&gt;
&lt;br /&gt;
[http://www.elphel.com/test/vimp/index.html New version] - does not use frames (could not figure out how to download image once and show in several frames without using extra bandwidth - maybe it is not possible at all). So now - it consists of just DIV layers, no autorefresh yet - only manual (button goes red during image update). Update - in the background, images are replaced when ready. Window size and the border position are save in cookies.&lt;br /&gt;
&lt;br /&gt;
--[[User:Andrey.filippov|Andrey.filippov]] 12:06, 18 December 2005 (CST)&lt;br /&gt;
&lt;br /&gt;
[[User:Zimbatm|Zimbatm]] I am currently working on a one DIV implementation. I expect to have it finished for the start of next year. The idea is to have only one frame containing the zoomed picture. You can move the inner picture with drag and drop. In a further version, I will add zoom controls and cross-browser compatibility.&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1025</id>
		<title>JavaScript API</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1025"/>
		<updated>2005-12-06T00:06:51Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: /* Lib preview example code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=JavaScript_API_ru|cn=JavaScript_API_cn}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This work is under development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Authors : Khlut, zimbatm&lt;br /&gt;
&lt;br /&gt;
The javascript library is intended to be used in different environments. The usage scenarios are HTML interfaces, which can easily be extended with the library. Interfaces can also be created, by using a simple extension syntax.&lt;br /&gt;
&lt;br /&gt;
=Goals=&lt;br /&gt;
&lt;br /&gt;
* Easy to embed in existing HTML&lt;br /&gt;
* Auto-configurable&lt;br /&gt;
* HTML generation&lt;br /&gt;
&lt;br /&gt;
=Essay= &lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The configuration of a camera goes through a new object&#039;s creation.&lt;br /&gt;
&lt;br /&gt;
The object automatically retrieves the data using asyncronous Http requests. Optionally, you can provide the data trough an object to avoid too much queries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
camera = new Camera(&#039;http://192.168.1.3&#039;)&lt;br /&gt;
&lt;br /&gt;
camera.model_name(function(model_name) { alert(model_name) } ) // fetches the data and returns it, the value gets cached&lt;br /&gt;
&lt;br /&gt;
camera2 = new Camera(&#039;http://zimba:1234@192.168.1.3&#039;, {&lt;br /&gt;
  api: Api.Axis,&lt;br /&gt;
  model_name: &#039;203&#039;})&lt;br /&gt;
&lt;br /&gt;
camera.model_name(function(model_name) { alert(model_name) } ) // returns the data directly&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Api ==&lt;br /&gt;
&lt;br /&gt;
We need a way to make the lib compatible with the different apis and api versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Testing that a feature exists :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if (camera.ptz) { // if the function is defined&lt;br /&gt;
  document.getElementById(&#039;ptz_control&#039;).innerHTML = (new Template.Ptz(camera)).source()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HTML Generation ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Template.Image = function(camera) {&lt;br /&gt;
  this.src = camera.picture_path()&lt;br /&gt;
  this.alt = camera.name&lt;br /&gt;
}&lt;br /&gt;
Template.Image.prototype = document.createElement(&amp;quot;IMG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
var image = new Template(camera)&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;some_element&#039;).appendChild(image)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lib preview example code ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var Camera = function(host, options) {&lt;br /&gt;
  Camera[host] = this&lt;br /&gt;
  this.host = host  &lt;br /&gt;
&lt;br /&gt;
  if (XMLHttpRequest) {&lt;br /&gt;
    this.http = new XMLHttpRequest&lt;br /&gt;
  } else if (window.ActiveXObject) {&lt;br /&gt;
    this.http = new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;)&lt;br /&gt;
  } else {&lt;br /&gt;
    throw &#039;XmlHttpRequest is not supported by your browser&#039;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // pseudo-code&lt;br /&gt;
  this.http.fetch(this.host + &#039;/version&#039;)&lt;br /&gt;
  this.http.callback( Api.factory(this) )&lt;br /&gt;
}&lt;br /&gt;
Camera.cameras = {}&lt;br /&gt;
Camera.prototype = {&lt;br /&gt;
  api: null,&lt;br /&gt;
  http: null,&lt;br /&gt;
  host: &#039;&#039;,&lt;br /&gt;
  resolutions: [],&lt;br /&gt;
&lt;br /&gt;
  is_loaded: false,&lt;br /&gt;
  onload: function(camera) {}, // callback&lt;br /&gt;
&lt;br /&gt;
  picture_path: function() { // todo }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Api = {}&lt;br /&gt;
Api.factory = function(camera) {&lt;br /&gt;
  new Api[this.http.result](camera)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Api.Axis = function(camera) {&lt;br /&gt;
  for (method_name in this) {&lt;br /&gt;
    camera[method_name] = this[method_name]&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  camera.api = this&lt;br /&gt;
&lt;br /&gt;
  // fetch the data&lt;br /&gt;
  camera.http.fetch(&#039;resolutions_url&#039;)&lt;br /&gt;
  camera.http.callback( function(camera) {&lt;br /&gt;
    this.resolutions = camera.http.result&lt;br /&gt;
  } )&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Api.Axis.prototype = {&lt;br /&gt;
  video_url: function(options) {&lt;br /&gt;
    return &#039;http://&#039; + this.host + &#039;/video/mjpg.cgi&#039;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1024</id>
		<title>JavaScript API</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1024"/>
		<updated>2005-12-06T00:05:39Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: /* HTML Generation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=JavaScript_API_ru|cn=JavaScript_API_cn}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This work is under development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Authors : Khlut, zimbatm&lt;br /&gt;
&lt;br /&gt;
The javascript library is intended to be used in different environments. The usage scenarios are HTML interfaces, which can easily be extended with the library. Interfaces can also be created, by using a simple extension syntax.&lt;br /&gt;
&lt;br /&gt;
=Goals=&lt;br /&gt;
&lt;br /&gt;
* Easy to embed in existing HTML&lt;br /&gt;
* Auto-configurable&lt;br /&gt;
* HTML generation&lt;br /&gt;
&lt;br /&gt;
=Essay= &lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The configuration of a camera goes through a new object&#039;s creation.&lt;br /&gt;
&lt;br /&gt;
The object automatically retrieves the data using asyncronous Http requests. Optionally, you can provide the data trough an object to avoid too much queries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
camera = new Camera(&#039;http://192.168.1.3&#039;)&lt;br /&gt;
&lt;br /&gt;
camera.model_name(function(model_name) { alert(model_name) } ) // fetches the data and returns it, the value gets cached&lt;br /&gt;
&lt;br /&gt;
camera2 = new Camera(&#039;http://zimba:1234@192.168.1.3&#039;, {&lt;br /&gt;
  api: Api.Axis,&lt;br /&gt;
  model_name: &#039;203&#039;})&lt;br /&gt;
&lt;br /&gt;
camera.model_name(function(model_name) { alert(model_name) } ) // returns the data directly&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Api ==&lt;br /&gt;
&lt;br /&gt;
We need a way to make the lib compatible with the different apis and api versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Testing that a feature exists :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if (camera.ptz) { // if the function is defined&lt;br /&gt;
  document.getElementById(&#039;ptz_control&#039;).innerHTML = (new Template.Ptz(camera)).source()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HTML Generation ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Template.Image = function(camera) {&lt;br /&gt;
  this.src = camera.picture_path()&lt;br /&gt;
  this.alt = camera.name&lt;br /&gt;
}&lt;br /&gt;
Template.Image.prototype = document.createElement(&amp;quot;IMG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
var image = new Template(camera)&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;some_element&#039;).appendChild(image)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lib preview example code ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var Camera = function(host, options) {&lt;br /&gt;
  Camera[host] = this&lt;br /&gt;
  this.host = host  &lt;br /&gt;
&lt;br /&gt;
  if (XMLHttpRequest) {&lt;br /&gt;
    this.http = new XMLHttpRequest&lt;br /&gt;
  } else if (window.ActiveXObject) {&lt;br /&gt;
    this.http = new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;)&lt;br /&gt;
  } else {&lt;br /&gt;
    throw &#039;XmlHttpRequest is not supported by your browser&#039;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // pseudo-code&lt;br /&gt;
  this.http.fetch(this.host + &#039;/version&#039;)&lt;br /&gt;
  this.http.callback( Api.factory(this) )&lt;br /&gt;
}&lt;br /&gt;
Camera.cameras = {}&lt;br /&gt;
Camera.prototype = {&lt;br /&gt;
  api: null,&lt;br /&gt;
  http: null,&lt;br /&gt;
  host: &#039;&#039;,&lt;br /&gt;
  resolutions: [],&lt;br /&gt;
&lt;br /&gt;
  is_loaded: false,&lt;br /&gt;
  onload: function(camera) {} // callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Api = {}&lt;br /&gt;
Api.factory = function(camera) {&lt;br /&gt;
  new Api[this.http.result](camera)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Api.Axis = function(camera) {&lt;br /&gt;
  for (method_name in this) {&lt;br /&gt;
    camera[method_name] = this[method_name]&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  camera.api = this&lt;br /&gt;
&lt;br /&gt;
  // fetch the data&lt;br /&gt;
  camera.http.fetch(&#039;resolutions_url&#039;)&lt;br /&gt;
  camera.http.callback( function(camera) {&lt;br /&gt;
    this.resolutions = camera.http.result&lt;br /&gt;
  } )&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Api.Axis.prototype = {&lt;br /&gt;
  video_url: function(options) {&lt;br /&gt;
    return &#039;http://&#039; + this.host + &#039;/video/mjpg.cgi&#039;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1023</id>
		<title>JavaScript API</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1023"/>
		<updated>2005-11-19T20:23:03Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=JavaScript_API_ru|cn=JavaScript_API_cn}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This work is under development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Authors : Khlut, zimbatm&lt;br /&gt;
&lt;br /&gt;
The javascript library is intended to be used in different environments. The usage scenarios are HTML interfaces, which can easily be extended with the library. Interfaces can also be created, by using a simple extension syntax.&lt;br /&gt;
&lt;br /&gt;
=Goals=&lt;br /&gt;
&lt;br /&gt;
* Easy to embed in existing HTML&lt;br /&gt;
* Auto-configurable&lt;br /&gt;
* HTML generation&lt;br /&gt;
&lt;br /&gt;
=Essay= &lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The configuration of a camera goes through a new object&#039;s creation.&lt;br /&gt;
&lt;br /&gt;
The object automatically retrieves the data using asyncronous Http requests. Optionally, you can provide the data trough an object to avoid too much queries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
camera = new Camera(&#039;http://192.168.1.3&#039;)&lt;br /&gt;
&lt;br /&gt;
camera.model_name(function(model_name) { alert(model_name) } ) // fetches the data and returns it, the value gets cached&lt;br /&gt;
&lt;br /&gt;
camera2 = new Camera(&#039;http://zimba:1234@192.168.1.3&#039;, {&lt;br /&gt;
  api: Api.Axis,&lt;br /&gt;
  model_name: &#039;203&#039;})&lt;br /&gt;
&lt;br /&gt;
camera.model_name(function(model_name) { alert(model_name) } ) // returns the data directly&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Api ==&lt;br /&gt;
&lt;br /&gt;
We need a way to make the lib compatible with the different apis and api versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Testing that a feature exists :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if (camera.ptz) { // if the function is defined&lt;br /&gt;
  document.getElementById(&#039;ptz_control&#039;).innerHTML = (new Template.Ptz(camera)).source()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HTML Generation ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Template.Image = function(camera_source) {&lt;br /&gt;
  this.template = &#039;&amp;lt;img src=&amp;quot;&#039;+camera_source+&#039;&amp;quot; /&amp;gt;&#039;&lt;br /&gt;
}&lt;br /&gt;
Template.prototype = new Template()&lt;br /&gt;
&lt;br /&gt;
image = new Template(camera.picture_path())&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;some_element&#039;).innerHTML = image.source()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lib preview example code ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var Camera = function(host, options) {&lt;br /&gt;
  Camera[host] = this&lt;br /&gt;
  this.host = host  &lt;br /&gt;
&lt;br /&gt;
  if (XMLHttpRequest) {&lt;br /&gt;
    this.http = new XMLHttpRequest&lt;br /&gt;
  } else if (window.ActiveXObject) {&lt;br /&gt;
    this.http = new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;)&lt;br /&gt;
  } else {&lt;br /&gt;
    throw &#039;XmlHttpRequest is not supported by your browser&#039;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // pseudo-code&lt;br /&gt;
  this.http.fetch(this.host + &#039;/version&#039;)&lt;br /&gt;
  this.http.callback( Api.factory(this) )&lt;br /&gt;
}&lt;br /&gt;
Camera.cameras = {}&lt;br /&gt;
Camera.prototype = {&lt;br /&gt;
  api: null,&lt;br /&gt;
  http: null,&lt;br /&gt;
  host: &#039;&#039;,&lt;br /&gt;
  resolutions: [],&lt;br /&gt;
&lt;br /&gt;
  is_loaded: false,&lt;br /&gt;
  onload: function(camera) {} // callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Api = {}&lt;br /&gt;
Api.factory = function(camera) {&lt;br /&gt;
  new Api[this.http.result](camera)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Api.Axis = function(camera) {&lt;br /&gt;
  for (method_name in this) {&lt;br /&gt;
    camera[method_name] = this[method_name]&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  camera.api = this&lt;br /&gt;
&lt;br /&gt;
  // fetch the data&lt;br /&gt;
  camera.http.fetch(&#039;resolutions_url&#039;)&lt;br /&gt;
  camera.http.callback( function(camera) {&lt;br /&gt;
    this.resolutions = camera.http.result&lt;br /&gt;
  } )&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Api.Axis.prototype = {&lt;br /&gt;
  video_url: function(options) {&lt;br /&gt;
    return &#039;http://&#039; + this.host + &#039;/video/mjpg.cgi&#039;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1022</id>
		<title>JavaScript API</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1022"/>
		<updated>2005-11-19T19:13:11Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=JavaScript_API_ru|cn=JavaScript_API_cn}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This work is under development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Authors : Khlut, zimbatm&lt;br /&gt;
&lt;br /&gt;
The javascript library is intended to be used in different environments. The usage scenarios are HTML interfaces, which can easily be extended with the library. Interfaces can also be created, by using a simple extension syntax.&lt;br /&gt;
&lt;br /&gt;
=Goals=&lt;br /&gt;
&lt;br /&gt;
* Easy to embed in existing HTML&lt;br /&gt;
* Auto-configurable&lt;br /&gt;
* HTML generation&lt;br /&gt;
&lt;br /&gt;
=Essay= &lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The configuration of a camera goes through a new object&#039;s creation.&lt;br /&gt;
&lt;br /&gt;
The object automatically retrieves the data using asyncronous Http requests. Optionally, you can provide the data trough an object to avoid too much queries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
camera = new Camera(&#039;http://192.168.1.3&#039;)&lt;br /&gt;
&lt;br /&gt;
camera.model_name(function(model_name) { alert(model_name) } ) // fetches the data and returns it, the value gets cached&lt;br /&gt;
&lt;br /&gt;
camera2 = new Camera(&#039;http://zimba:1234@192.168.1.3&#039;, {&lt;br /&gt;
  api: Api.Axis,&lt;br /&gt;
  model_name: &#039;203&#039;})&lt;br /&gt;
&lt;br /&gt;
camera.model_name(function(model_name) { alert(model_name) } ) // returns the data directly&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Api ==&lt;br /&gt;
&lt;br /&gt;
We need a way to make the lib compatible with the different apis and api versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Testing that a feature exists :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if (camera.ptz) { // if the function is defined&lt;br /&gt;
  document.getElementById(&#039;ptz_control&#039;).innerHTML = (new Template.Ptz(camera)).source()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HTML Generation ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Template.Image = function(camera_source) {&lt;br /&gt;
  this.template = &#039;&amp;lt;img src=&amp;quot;&#039;+camera_source+&#039;&amp;quot; /&amp;gt;&#039;&lt;br /&gt;
}&lt;br /&gt;
Template.prototype = new Template()&lt;br /&gt;
&lt;br /&gt;
image = new Template(camera.picture_path())&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;some_element&#039;).innerHTML = image.source()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1021</id>
		<title>JavaScript API</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1021"/>
		<updated>2005-11-19T19:08:03Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: /* Api */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=JavaScript_API_ru|cn=JavaScript_API_cn}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This work is under development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Authors : Khlut, zimbatm&lt;br /&gt;
&lt;br /&gt;
The javascript library is intended to be used in different environments. The usage scenarios are HTML interfaces, which can easily be extended with the library. Interfaces can also be created, by using a simple extension syntax.&lt;br /&gt;
&lt;br /&gt;
=Goals=&lt;br /&gt;
&lt;br /&gt;
* Easy to embed in existing HTML&lt;br /&gt;
* Auto-configurable&lt;br /&gt;
* HTML generation&lt;br /&gt;
&lt;br /&gt;
=Essay= &lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The configuration of a camera goes through a new object&#039;s creation.&lt;br /&gt;
&lt;br /&gt;
The object automatically retrieves the data using asyncronous Http requests. Optionally, you can provide the data trough an object to avoid too much queries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
camera = new Camera(&#039;http://192.168.1.3&#039;)&lt;br /&gt;
&lt;br /&gt;
alert(camera.model_name()) // fetches the data and returns it, the value gets cached&lt;br /&gt;
&lt;br /&gt;
camera2 = new Camera(&#039;http://zimba:1234@192.168.1.3&#039;, {&lt;br /&gt;
  api: Api.Axis,&lt;br /&gt;
  model_name: &#039;203&#039;})&lt;br /&gt;
&lt;br /&gt;
alert(camera.model_name()) // returns the data directly&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Api ==&lt;br /&gt;
&lt;br /&gt;
We need a way to make the lib compatible with the different apis and api versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Testing that a feature exists :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if (camera.ptz) { // if the function is defined&lt;br /&gt;
  document.getElementById(&#039;ptz_control&#039;).innerHTML = (new Template.Ptz(camera)).source()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HTML Generation ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Template.Image = function(camera_source) {&lt;br /&gt;
  this.template = &#039;&amp;lt;img src=&amp;quot;&#039;+camera_source+&#039;&amp;quot; /&amp;gt;&#039;&lt;br /&gt;
}&lt;br /&gt;
Template.prototype = new Template()&lt;br /&gt;
&lt;br /&gt;
image = new Template(camera.picture_path())&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;some_element&#039;).innerHTML = image.source()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1020</id>
		<title>JavaScript API</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1020"/>
		<updated>2005-11-19T19:07:37Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: /* Api */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=JavaScript_API_ru|cn=JavaScript_API_cn}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This work is under development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Authors : Khlut, zimbatm&lt;br /&gt;
&lt;br /&gt;
The javascript library is intended to be used in different environments. The usage scenarios are HTML interfaces, which can easily be extended with the library. Interfaces can also be created, by using a simple extension syntax.&lt;br /&gt;
&lt;br /&gt;
=Goals=&lt;br /&gt;
&lt;br /&gt;
* Easy to embed in existing HTML&lt;br /&gt;
* Auto-configurable&lt;br /&gt;
* HTML generation&lt;br /&gt;
&lt;br /&gt;
=Essay= &lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The configuration of a camera goes through a new object&#039;s creation.&lt;br /&gt;
&lt;br /&gt;
The object automatically retrieves the data using asyncronous Http requests. Optionally, you can provide the data trough an object to avoid too much queries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
camera = new Camera(&#039;http://192.168.1.3&#039;)&lt;br /&gt;
&lt;br /&gt;
alert(camera.model_name()) // fetches the data and returns it, the value gets cached&lt;br /&gt;
&lt;br /&gt;
camera2 = new Camera(&#039;http://zimba:1234@192.168.1.3&#039;, {&lt;br /&gt;
  api: Api.Axis,&lt;br /&gt;
  model_name: &#039;203&#039;})&lt;br /&gt;
&lt;br /&gt;
alert(camera.model_name()) // returns the data directly&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Api ==&lt;br /&gt;
&lt;br /&gt;
We need a way to make the lib compatible with the different apis and api versions.&lt;br /&gt;
&lt;br /&gt;
Some implementation ideas :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if (camera.ptz) { // if the function is defined&lt;br /&gt;
  document.getElementById(&#039;ptz_control&#039;).innerHTML = (new Template.Ptz(camera)).source()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HTML Generation ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Template.Image = function(camera_source) {&lt;br /&gt;
  this.template = &#039;&amp;lt;img src=&amp;quot;&#039;+camera_source+&#039;&amp;quot; /&amp;gt;&#039;&lt;br /&gt;
}&lt;br /&gt;
Template.prototype = new Template()&lt;br /&gt;
&lt;br /&gt;
image = new Template(camera.picture_path())&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;some_element&#039;).innerHTML = image.source()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1019</id>
		<title>JavaScript API</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1019"/>
		<updated>2005-11-19T19:06:32Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: /* Api */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=JavaScript_API_ru|cn=JavaScript_API_cn}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This work is under development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Authors : Khlut, zimbatm&lt;br /&gt;
&lt;br /&gt;
The javascript library is intended to be used in different environments. The usage scenarios are HTML interfaces, which can easily be extended with the library. Interfaces can also be created, by using a simple extension syntax.&lt;br /&gt;
&lt;br /&gt;
=Goals=&lt;br /&gt;
&lt;br /&gt;
* Easy to embed in existing HTML&lt;br /&gt;
* Auto-configurable&lt;br /&gt;
* HTML generation&lt;br /&gt;
&lt;br /&gt;
=Essay= &lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The configuration of a camera goes through a new object&#039;s creation.&lt;br /&gt;
&lt;br /&gt;
The object automatically retrieves the data using asyncronous Http requests. Optionally, you can provide the data trough an object to avoid too much queries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
camera = new Camera(&#039;http://192.168.1.3&#039;)&lt;br /&gt;
&lt;br /&gt;
alert(camera.model_name()) // fetches the data and returns it, the value gets cached&lt;br /&gt;
&lt;br /&gt;
camera2 = new Camera(&#039;http://zimba:1234@192.168.1.3&#039;, {&lt;br /&gt;
  api: Api.Axis,&lt;br /&gt;
  model_name: &#039;203&#039;})&lt;br /&gt;
&lt;br /&gt;
alert(camera.model_name()) // returns the data directly&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Api ==&lt;br /&gt;
&lt;br /&gt;
We need a way to make the lib compatible with the different apis and api versions.&lt;br /&gt;
&lt;br /&gt;
Some implementation ideas :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if (camera.ptz) { // if the function is defined&lt;br /&gt;
  document.getElementById(&#039;ptz_control&#039;) = new Template.Ptz(camera)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HTML Generation ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Template.Image = function(camera_source) {&lt;br /&gt;
  this.template = &#039;&amp;lt;img src=&amp;quot;&#039;+camera_source+&#039;&amp;quot; /&amp;gt;&#039;&lt;br /&gt;
}&lt;br /&gt;
Template.prototype = new Template()&lt;br /&gt;
&lt;br /&gt;
image = new Template(camera.picture_path())&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;some_element&#039;).innerHTML = image.source()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1018</id>
		<title>JavaScript API</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=JavaScript_API&amp;diff=1018"/>
		<updated>2005-11-19T19:02:15Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: first api preview&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=JavaScript_API_ru|cn=JavaScript_API_cn}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This work is under development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Authors : Khlut, zimbatm&lt;br /&gt;
&lt;br /&gt;
The javascript library is intended to be used in different environments. The usage scenarios are HTML interfaces, which can easily be extended with the library. Interfaces can also be created, by using a simple extension syntax.&lt;br /&gt;
&lt;br /&gt;
=Goals=&lt;br /&gt;
&lt;br /&gt;
* Easy to embed in existing HTML&lt;br /&gt;
* Auto-configurable&lt;br /&gt;
* HTML generation&lt;br /&gt;
&lt;br /&gt;
=Essay= &lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The configuration of a camera goes through a new object&#039;s creation.&lt;br /&gt;
&lt;br /&gt;
The object automatically retrieves the data using asyncronous Http requests. Optionally, you can provide the data trough an object to avoid too much queries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
camera = new Camera(&#039;http://192.168.1.3&#039;)&lt;br /&gt;
&lt;br /&gt;
alert(camera.model_name()) // fetches the data and returns it, the value gets cached&lt;br /&gt;
&lt;br /&gt;
camera2 = new Camera(&#039;http://zimba:1234@192.168.1.3&#039;, {&lt;br /&gt;
  api: Api.Axis,&lt;br /&gt;
  model_name: &#039;203&#039;})&lt;br /&gt;
&lt;br /&gt;
alert(camera.model_name()) // returns the data directly&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Api ==&lt;br /&gt;
&lt;br /&gt;
We need a way to make the lib compatible with the different apis and api versions.&lt;br /&gt;
&lt;br /&gt;
== HTML Generation ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Template.Image = function(camera_source) {&lt;br /&gt;
  this.template = &#039;&amp;lt;img src=&amp;quot;&#039;+camera_source+&#039;&amp;quot; /&amp;gt;&#039;&lt;br /&gt;
}&lt;br /&gt;
Template.prototype = new Template()&lt;br /&gt;
&lt;br /&gt;
image = new Template(camera.picture_path())&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;some_element&#039;).innerHTML = image.source()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=Main_Page&amp;diff=580</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Main_Page&amp;diff=580"/>
		<updated>2005-10-06T10:30:21Z</updated>

		<summary type="html">&lt;p&gt;Zimbatm: better english :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Wiki software successfully installed.&lt;br /&gt;
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]&lt;br /&gt;
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide] for usage and configuration help.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Elphel logo.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;h1&amp;gt;&amp;lt;div style=&amp;quot;display:inline; color:blue&amp;quot;&amp;gt;Welcome to the Elphel Project Wiki&amp;lt;/div&amp;gt;&amp;lt;/h1&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;The ElphelWiki is divided in two parts. [[User Documentation]] reflects the current state of the documentation for the Elphel Network Cameras. Static snapshots of this section will be provided with (and in) the cameras as User Manual.&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;If you wish to take part in development process, find more about the current projects and future plans or just would like to peek &amp;quot;under the hood&amp;quot; - you are more than welcome to our [[Roadmap]] section.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;i&amp;gt;This is Wiki so you may edit pages here. Complete help how to do that is available in the MediaWiki [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide]. MediaWiki is the same software that powers [http://www.wikipedia.org Wikipedia]&amp;lt;/i&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;h2&amp;gt;[[User Documentation]]&amp;lt;font size=&amp;quot;1&amp;quot;&amp;gt; &amp;lt;-- Make your choice --&amp;gt; &amp;lt;/font&amp;gt;[[Roadmap]] (Developers)&amp;lt;/h2&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Free Software and Open Hardware. Elphel, Inc., 2005&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Zimbatm</name></author>
	</entry>
</feed>