Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
elphel-web-393
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Elphel
elphel-web-393
Commits
10412f81
Commit
10412f81
authored
Jun 06, 2022
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
working on LWIR16 control
parent
2c148fb3
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
855 additions
and
204 deletions
+855
-204
index.html
src/lwir16/index.html
+8
-1
lwir16.ini
src/lwir16/lwir16.ini
+7
-0
lwir16.php
src/lwir16/lwir16.php
+2
-2
Makefile
src/multicam/Makefile
+2
-1
index2.html
src/multicam/index2.html
+98
-4
multicam2.js
src/multicam/multicam2.js
+513
-168
multicam2.php
src/multicam/multicam2.php
+225
-28
No files found.
src/lwir16/index.html
View file @
10412f81
...
@@ -26,7 +26,7 @@ var apply_pending = false;
...
@@ -26,7 +26,7 @@ var apply_pending = false;
function
parse_response
(
resp
){
function
parse_response
(
resp
){
var
result
=
""
;
var
result
=
""
;
console
.
log
(
resp
);
console
.
log
(
"parse_response(), resp="
+
resp
);
if
(
resp
.
getElementsByTagName
(
"result"
).
length
!=
0
){
if
(
resp
.
getElementsByTagName
(
"result"
).
length
!=
0
){
result
=
resp
.
getElementsByTagName
(
"result"
)[
0
].
childNodes
[
0
].
nodeValue
;
result
=
resp
.
getElementsByTagName
(
"result"
)[
0
].
childNodes
[
0
].
nodeValue
;
}
else
if
(
resp
.
getElementsByTagName
(
"reboot"
).
length
!=
0
){
}
else
if
(
resp
.
getElementsByTagName
(
"reboot"
).
length
!=
0
){
...
@@ -40,11 +40,13 @@ function parse_response(resp){
...
@@ -40,11 +40,13 @@ function parse_response(resp){
}
}
function
send_request
(
rq
,
callback
){
function
send_request
(
rq
,
callback
){
console
.
log
(
"send_request(), rq="
+
rq
);
var
request
=
new
XMLHttpRequest
();
var
request
=
new
XMLHttpRequest
();
request
.
open
(
'GET'
,
rq
,
true
);
request
.
open
(
'GET'
,
rq
,
true
);
request
.
onreadystatechange
=
function
()
{
request
.
onreadystatechange
=
function
()
{
if
(
this
.
readyState
==
4
&&
this
.
status
==
200
)
{
if
(
this
.
readyState
==
4
&&
this
.
status
==
200
)
{
var
resp
=
this
.
responseXML
;
var
resp
=
this
.
responseXML
;
console
.
log
(
"send_request(), callback, resp="
+
resp
);
callback
(
resp
);
callback
(
resp
);
}
}
};
};
...
@@ -55,8 +57,10 @@ function send_request(rq,callback){
...
@@ -55,8 +57,10 @@ function send_request(rq,callback){
}
}
function
sendStatusRequest
(){
function
sendStatusRequest
(){
console
.
log
(
"sendStatusRequest()"
);
var
url
=
"http://192.168.0.41/lwir16/lwir16.php?daemon=status"
;
var
url
=
"http://192.168.0.41/lwir16/lwir16.php?daemon=status"
;
if
(
apply_pending
)
{
if
(
apply_pending
)
{
console
.
log
(
"sendStatusRequest(), apply_pending"
);
var
mod_pars
=
modParameters
();
var
mod_pars
=
modParameters
();
// console.log('mod_pars members:');
// console.log('mod_pars members:');
for
(
const
p
in
mod_pars
)
{
for
(
const
p
in
mod_pars
)
{
...
@@ -69,6 +73,7 @@ function sendStatusRequest(){
...
@@ -69,6 +73,7 @@ function sendStatusRequest(){
}
}
function
sendRestartRequest
(){
function
sendRestartRequest
(){
console
.
log
(
"sendRestartRequest()"
);
var
url
=
"http://192.168.0.41/lwir16/lwir16.php?daemon=restart&cmd=STATUS"
;
var
url
=
"http://192.168.0.41/lwir16/lwir16.php?daemon=restart&cmd=STATUS"
;
send_request
(
url
,
parseStatusResponse
);
send_request
(
url
,
parseStatusResponse
);
}
}
...
@@ -76,6 +81,7 @@ function sendRestartRequest(){
...
@@ -76,6 +81,7 @@ function sendRestartRequest(){
function
parseStatusResponse
(
resp
){
function
parseStatusResponse
(
resp
){
console
.
log
(
"parseStatusResponse(), resp="
+
resp
);
var
result
=
""
;
var
result
=
""
;
// console.log(resp);
// console.log(resp);
if
(
update_editable
)
{
if
(
update_editable
)
{
...
@@ -158,6 +164,7 @@ function parseStatusResponse(resp){
...
@@ -158,6 +164,7 @@ function parseStatusResponse(resp){
request_num
++
;
request_num
++
;
document
.
getElementById
(
"idrequest_num"
).
value
=
request_num
;
document
.
getElementById
(
"idrequest_num"
).
value
=
request_num
;
update_editable
=
false
;
update_editable
=
false
;
console
.
log
(
"parseStatusResponse() almost Done, sending again sendStatusRequest()"
);
sendStatusRequest
();
sendStatusRequest
();
}
}
...
...
src/lwir16/lwir16.ini
View file @
10412f81
#configuration for LWIR 16 camera
multicam_dir
=
"footage01"
multicam_rperiod
=
5.0
multicam_speriod
=
2.0
#save current settings to overwrite those in this file
multicam_conf
=
"/etc/elphel393/multicamconf.xml"
ips
=
"192.168.0.41,192.168.0.42,192.168.0.43,192.168.0.44,192.168.0.45"
ips
=
"192.168.0.41,192.168.0.42,192.168.0.43,192.168.0.44,192.168.0.45"
port_masks
=
"15,15,15,15,15"
port_masks
=
"15,15,15,15,15"
duration
=
100
duration
=
100
...
...
src/lwir16/lwir16.php
View file @
10412f81
...
@@ -487,7 +487,7 @@ EOT;
...
@@ -487,7 +487,7 @@ EOT;
return
$results
;
return
$results
;
}
}
function
runCapture
(
$run_ffc
,
$nowait
=
0
,
$debug
=
0
)
{
function
runCapture
(
$run_ffc
,
$nowait
=
0
,
$debug
=
0
)
{
// works, but the main script hangs
// TODO: use lwir16.ini
// TODO: use lwir16.ini
// $eo_quality = 97;
// $eo_quality = 97;
// $exposure = 1000; // 1 ms
// $exposure = 1000; // 1 ms
...
@@ -662,7 +662,7 @@ EOT;
...
@@ -662,7 +662,7 @@ EOT;
$GLOBALS
[
CAPTURE_RUN
]
=
0
;
// until command
$GLOBALS
[
CAPTURE_RUN
]
=
0
;
// until command
$GLOBALS
[
LAST_FFC
]
=
0
;
// overdue
$GLOBALS
[
LAST_FFC
]
=
0
;
// overdue
$GLOBALS
[
SECUENCE_NUM
]
=
0
;
$GLOBALS
[
SECUENCE_NUM
]
=
0
;
if
(
$GLOBALS
[
DEBUG
>
1
])
{
if
(
$GLOBALS
[
DEBUG
]
>
1
)
{
// was if ($GLOBALS[DEBUG
> 1]) {
printf
(
"--- GLOBALS: ---
\n
"
);
printf
(
"--- GLOBALS: ---
\n
"
);
print_r
(
$GLOBALS
);
print_r
(
$GLOBALS
);
}
}
...
...
src/multicam/Makefile
View file @
10412f81
...
@@ -11,7 +11,8 @@ DOCS= index.html \
...
@@ -11,7 +11,8 @@ DOCS= index.html \
multicam.css
\
multicam.css
\
multicam2.css
\
multicam2.css
\
multicam.php
\
multicam.php
\
multicam2.php
multicam2.php
\
reboot.html
ZIPDOCS
=
zip/deflate.js
\
ZIPDOCS
=
zip/deflate.js
\
zip/inflate.js
\
zip/inflate.js
\
...
...
src/multicam/index2.html
View file @
10412f81
...
@@ -25,7 +25,90 @@
...
@@ -25,7 +25,90 @@
<div
id=
'display_controls'
>
<div
id=
'display_controls'
>
<button
type=
"button"
class=
"collapsible"
>
Recording Status
</button>
<button
type=
"button"
class=
"collapsible"
>
Recording Status
</button>
<div
id=
'display_status'
></div>
<div
id=
'display_status'
></div>
<button
type=
"button"
class=
"collapsible"
>
LWIR16 Status
</button>
<div
id=
'lwir16_status'
>
<table><tr><td>
<table>
<tr><td><label
for=
"seq_num"
>
Seq Num
</label></td><td><input
type=
"text"
id=
"idsequence_num"
name=
"seq_num"
size=
"5"
value=
"?"
disabled=
"disabled"
></td></tr>
<tr><td><label
for=
"request_num"
>
Requests
</label></td><td><input
type=
"text"
id=
"idrequest_num"
name=
"request_num"
size=
"5"
value=
"?"
disabled=
"disabled"
></td></tr>
<tr><td><label
for=
"capture_run"
>
Running
</label></td><td><input
type=
"checkbox"
id=
"idcapture_run"
name=
"capture_run"
disabled=
"disabled"
></td></tr>
</table>
</td><td>
<table>
<tr><td><label
for=
"last_ffc"
>
Last FFC
</label></td><td><input
type=
"text"
id=
"idlast_ffc"
name=
"last_ffc"
size=
"5"
value=
"?"
disabled=
"disabled"
>
s
</td></tr>
<tr><td><label
for=
"time_to_ffc"
>
To FFC
</label></td><td><input
type=
"text"
id=
"idtime_to_ffc"
name=
"time_to_ffc"
size=
"5"
value=
"?"
disabled=
"disabled"
>
s
</td></tr>
<tr><td
colspan =
"2"
>
</td></tr>
</table>
</td></tr></table>
</div>
<button
type=
"button"
class=
"collapsible"
>
LWIR16 Controls
</button>
<div
id=
'lwir16_controls'
>
<table><tr><td>
<table>
<tr><td><button
id=
"idStartStop"
name =
"nStartStop"
disabled=
"true"
>
???
</button></td>
<td><button
id=
"idApply"
name =
"nApply"
disabled =
"true"
>
???
</button></td>
</tr>
<tr><td><label
for=
"idpre_delay"
>
Inter-Delay
</label></td><td><input
type=
"text"
id=
"idpre_delay"
name=
"pre_delay"
size=
"5"
value=
"?"
>
s
</td></tr>
<tr><td><label
for=
"duration"
>
LWIR frames
</label></td><td><input
type=
"text"
id=
"idduration"
name=
"duration"
size=
"5"
value=
"?"
></td></tr>
<tr><td><label
for=
"duration_eo"
>
RGB frames
</label></td><td><input
type=
"text"
id=
"idduration_eo"
name=
"duration_eo"
size=
"5"
value=
"?"
></td></tr>
<tr><td><label
for=
"compressor_run"
>
Compress Init
</label></td><td><input
type=
"checkbox"
id=
"idcompressor_run"
name=
"compressor_run"
></td></tr>
</table>
</td><td>
<table>
<tr><td><label
for=
"ffc"
>
FFC
</label></td><td><input
type=
"checkbox"
id=
"idffc"
name=
"ffc"
></td></tr>
<tr><td><label
for=
"ffc_period"
>
FFC period
</label></td><td><input
type=
"text"
id=
"idffc_period"
name=
"ffc_period"
size=
"5"
value=
"?"
></td></tr>
<tr><td><label
for=
"ffc_groups"
>
FFC groups
</label></td><td><select
id=
"idffc_groups"
name=
"idffc_groups"
>
<option
value=
"1"
>
1
</option>
<option
value=
"2"
>
2
</option>
<option
value=
"4"
selected=
"selected"
>
4
</option>
</select>
</td></tr>
<tr><td><label
for=
"ffc_frames"
>
FFC frames
</label></td><td><input
type=
"text"
id=
"idffc_frames"
name=
"ffc_frames"
size=
"5"
value=
"?"
></td></tr>
<tr><td><label
for=
"debug"
>
Debug
</label></td><td><input
type=
"text"
id=
"iddebug"
name=
"debug"
size=
"5"
value=
"?"
></td></tr>
</table>
</td></tr></table>
</div>
<button
type=
"button"
class=
"collapsible"
>
Multicam Controls
</button>
<div
id=
'multicam settings'
>
<table>
<tr>
<td>
<table>
<th><td
colspan=
"2"
>
Image Refresh
<td>
</th>
<tr>
<td><label>
Enable
</label></td>
<td>
<div
id=
"toggle_refresh"
class=
"btn-group btn-toggle"
>
<button
class=
"btn btn-xs btn-success active"
>
ON
</button>
<button
class=
"btn btn-xs btn-default"
>
OFF
</button>
</div>
</td>
</tr>
<tr><td><label
for=
"ref_rate"
>
Images
</label></td>
<td><input
type=
"text"
id=
"ref_rate"
name=
"ref_rate"
size=
"4"
>
s
</td>
</tr><tr>
<td><label
for=
"sref_rate"
>
Status
</label></td>
<td><input
type=
"text"
id=
"sref_rate"
name=
"sref_rate"
size=
"4"
>
s
</td>
</tr>
</table>
</td>
<td>
<table><th><td
colspan=
"2"
>
SSD Recording
<td>
</th>
<tr><td><label>
Record
</label></td>
<td><div
id=
"toggle_record"
class=
"btn-group btn-toggle"
>
<button
class=
"btn btn-xs btn-success active"
>
ON
</button>
<button
class=
"btn btn-xs btn-default"
>
OFF
</button>
</div>
</td>
</tr><tr>
<td><label
id =
"root_dir"
for=
"ssd_directory"
>
/mnt/sda1/
</label></td>
<td><input
type=
"text"
id=
"dir_name"
name=
"ssd_directory"
size=
"10"
></td>
</tr><tr><td
colspan=
"2"
>
</td></tr></table>
</td>
</tr>
</table>
</div>
<button
type=
"button"
class=
"collapsible"
>
Eyesis Controls
</button>
<button
type=
"button"
class=
"collapsible"
>
Eyesis Controls
</button>
<div
id=
'settings'
>
<div
id=
'settings'
>
<table>
<table>
...
@@ -52,11 +135,22 @@
...
@@ -52,11 +135,22 @@
<td>
Auto Exposure:
</td>
<td>
Auto Exposure:
</td>
<td>
<td>
<div
id=
"toggle_aexp"
class=
"btn-group btn-toggle"
>
<div
id=
"toggle_aexp"
class=
"btn-group btn-toggle"
>
<button
class=
"btn btn-xs btn-success active"
>
ON
</button>
<button
class=
"btn btn-xs btn-success active"
>
ON
</button>
<button
class=
"btn btn-xs btn-default"
>
OFF
</button>
<button
class=
"btn btn-xs btn-default"
>
OFF
</button>
</div>
</div>
</td>
</td>
</tr>
<tr
id=
"manual_exposure_div"
title=
'Manual Exposure'
>
<td><label
for=
"exposure_ms"
>
Manual
</label></td>
<td><input
type=
"text"
id=
"exposure_ms"
name=
"exposure_ms"
size=
"6"
value=
"50"
>
ms
</td>
</tr>
</tr>
<tr
id=
"image_quality_div"
title=
'Image Quality'
>
<td><label
for=
"jpeg_quality"
>
Quality
</label></td>
<td><input
type=
"text"
id=
"jpeg_quality"
name=
"jpeg_quality"
size=
"6"
value=
"97"
>
%
</td>
</tr>
<tr>
<tr>
<td>
<td>
<button
id=
'system_tests'
title=
'system info'
class=
"btn btn-sm btn-success"
>
tests
</button>
<button
id=
'system_tests'
title=
'system info'
class=
"btn btn-sm btn-success"
>
tests
</button>
...
...
src/multicam/multicam2.js
View file @
10412f81
This diff is collapsed.
Click to expand it.
src/multicam/multicam2.php
View file @
10412f81
<?php
<?php
include
"../include/elphel_functions_include.php"
;
include
"../include/elphel_functions_include.php"
;
define
(
'CONF_LWIR16'
,
'/etc/elphel393/lwir16.ini'
);
$cmd
=
"donothing"
;
define
(
'IPS'
,
'ips'
);
define
(
'PORT_MASKS'
,
'port_masks'
);
define
(
'NUM_PORTS'
,
4
);
define
(
'IMGSRV_PORT0'
,
2323
);
define
(
'PORTSPATH'
,
'/sys/devices/soc0/elphel393-detect_sensors@0'
);
define
(
'MULTICAM_INI'
,
'multicam_ini'
);
define
(
'MULTICAM_DIR'
,
'multicam_dir'
);
define
(
'MULTICAM_RPERIOD'
,
'multicam_rperiod'
);
define
(
'MULTICAM_SPERIOD'
,
'multicam_speriod'
);
define
(
'MULTICAM_CONF'
,
'multicam_conf'
);
if
(
isset
(
$_GET
[
'cmd'
]))
if
(
isset
(
$_GET
[
'cmd'
]))
$cmd
=
$_GET
[
'cmd'
];
$cmd
=
$_GET
[
'cmd'
];
else
if
(
isset
(
$argv
[
1
]))
else
if
(
isset
(
$argv
[
1
]))
$cmd
=
$argv
[
1
];
$cmd
=
$argv
[
1
];
///$ini = parse_ini_file(CONF_LWIR16);
//$cmd = "donothing";
$config
=
"/var/volatile/html/multicam.xml"
;
//
$config = "/var/volatile/html/multicam.xml";
// path to sysfs for port scanning
// path to sysfs for port scanning
$portspath
=
"/sys/devices/soc0/elphel393-detect_sensors@0"
;
//
$portspath = "/sys/devices/soc0/elphel393-detect_sensors@0";
// total number of ports in 10393
// total number of ports in 10393
$nports
=
4
;
//
$nports = 4;
$port0
=
2323
;
//
$port0 = 2323;
// extract ip addresses
// extract ip addresses
if
(
$_SERVER
[
'REQUEST_METHOD'
]
===
"POST"
){
if
(
$_SERVER
[
'REQUEST_METHOD'
]
===
"POST"
){
...
@@ -27,30 +41,137 @@ if ($_SERVER['REQUEST_METHOD']==="POST"){
...
@@ -27,30 +41,137 @@ if ($_SERVER['REQUEST_METHOD']==="POST"){
$list
=
$_SERVER
[
'SERVER_ADDR'
];
$list
=
$_SERVER
[
'SERVER_ADDR'
];
}
}
}
}
$ips
=
explode
(
','
,
$list
);
$ips
=
explode
(
','
,
$list
);
// allow CORS
// allow CORS
header
(
'Access-Control-Allow-Origin: *'
);
header
(
'Access-Control-Allow-Origin: *'
);
// does not need configs
switch
(
$cmd
){
switch
(
$cmd
){
case
"ports"
:
case
"ports"
:
print
(
getports
());
xml_header
();
break
;
print
(
getports
());
exit
(
0
);
}
getIni
();
// wil exit OK now
//print ("<!--");
//print_r($lwir16_ini);
//print ("-->");
//exit(0);
switch
(
$cmd
){
case
"ips"
:
xml_header
();
print
(
getIps
());
exit
(
0
);
case
"update"
:
foreach
(
$_GET
as
$key
=>
$value
)
{
if
(
array_key_exists
(
$key
,
$GLOBALS
[
MULTICAM_INI
])){
$GLOBALS
[
MULTICAM_INI
][
$key
]
=
$value
;
}
}
writeConfig
();
exitXmlOK
();
exit
(
0
);
//
case
"configs"
:
// return xml with all $GLOBALS[MULTICAM_INI]
xml_header
();
print
(
getConfigs
());
exit
(
0
);
// obsolete old commands
/*
case "write":
case "write":
// write
// write
// use get and post requests
// use get and post requests
write_config
(
$config
,
$ips
);
write_config($config,$ips);
print
(
"ok"
);
print("ok");
break
;
break;
case "snapshot":
case "snapshot":
send_zipped_images($ips);
send_zipped_images($ips);
break;
break;
case "read":
case "read":
default
:
default:
// will never need read - config is in http://camip/var/multicam.xml
// will never need read - config is in http://camip/var/multicam.xml
// read
// read
print
(
file_get_contents
(
$config
));
/// print(file_get_contents($config));
* */
default
:
exitXmlOK
(
"Unknown"
);
}
function
getIni
()
{
$ini
=
parse_ini_file
(
CONF_LWIR16
);
// define parameter type here
$GLOBALS
[
MULTICAM_INI
][
IPS
]
=
$ini
[
IPS
];
$GLOBALS
[
MULTICAM_INI
][
PORT_MASKS
]
=
$ini
[
PORT_MASKS
];
$GLOBALS
[
MULTICAM_INI
][
MULTICAM_DIR
]
=
$ini
[
MULTICAM_DIR
];
$GLOBALS
[
MULTICAM_INI
][
MULTICAM_RPERIOD
]
=
$ini
[
MULTICAM_RPERIOD
];
$GLOBALS
[
MULTICAM_INI
][
MULTICAM_SPERIOD
]
=
$ini
[
MULTICAM_SPERIOD
];
$GLOBALS
[
MULTICAM_INI
][
MULTICAM_CONF
]
=
$ini
[
MULTICAM_CONF
];
// copy other default parameters
// try to read xml if exists
$multi_xml
=
0
;
if
(
file_exists
(
$ini
[
MULTICAM_CONF
]))
{
$multi_xml
=
simplexml_load_file
(
$ini
[
MULTICAM_CONF
]);
}
if
(
$multi_xml
)
{
// if file exists
$multi_ini
=
array
();
foreach
(
$multi_xml
->
children
()
as
$entry
)
{
$GLOBALS
[
MULTICAM_INI
][
$entry
->
getName
()]
=
(
string
)
$entry
;
}
}
else
{
writeConfig
();
}
/*
print ("<!--");
var_dump($GLOBALS[MULTICAM_INI]);
print ("-->");
exit (0);
*/
if
(
isset
(
$GLOBALS
[
MULTICAM_INI
][
IPS
]))
{
$GLOBALS
[
IPS
]
=
explode
(
','
,
$GLOBALS
[
MULTICAM_INI
][
IPS
]);
if
(
isset
(
$GLOBALS
[
MULTICAM_INI
][
PORT_MASKS
])){
$masks
=
explode
(
','
,
$GLOBALS
[
MULTICAM_INI
][
PORT_MASKS
]);
}
// Add port masks incdexed by IPs. Changing IPs resets masks
$GLOBALS
[
PORT_MASKS
]
=
array
();
for
(
$i
=
0
;
$i
<
count
(
$GLOBALS
[
IPS
]);
$i
++
){
if
(
isset
(
$masks
)
&&
(
count
(
$masks
)
>
$i
)){
$GLOBALS
[
PORT_MASKS
][
$GLOBALS
[
IPS
][
$i
]]
=
(
int
)
$masks
[
$i
];
}
else
{
$GLOBALS
[
PORT_MASKS
][
$GLOBALS
[
IPS
][
$i
]]
=
(
1
<<
NUM_PORTS
)
-
1
;
}
}
}
/*
print ("<!--");
var_dump($GLOBALS[MULTICAM_INI]);
echo "------------------------";
var_dump($GLOBALS[IPS]);
echo "------------------------";
var_dump($GLOBALS[PORT_MASKS]);
print ("-->");
exit (0);
*/
// exitXmlOK(); // exit for now
}
function
writeConfig
(){
$xml
=
"<?xml version=
\"
1.0
\"
encoding=
\"
iso-8859-1
\"
?>
\n
<multicam>
\n
"
;
foreach
(
$GLOBALS
[
MULTICAM_INI
]
as
$key
=>
$value
){
$xml
.=
"
\t
<"
.
$key
.
'>'
.
$value
.
'</'
.
$key
.
">
\n
"
;
}
$xml
.=
"</multicam>
\n
"
;
file_put_contents
(
$GLOBALS
[
MULTICAM_INI
][
MULTICAM_CONF
],
$xml
);
exec
(
'sync'
);
}
function
printToComment
(
$str
)
{
echo
"<!--"
.
$str
.
"-->"
;
}
}
function
write_config
(
$config
,
$ips
){
function
write_config
(
$config
,
$ips
){
...
@@ -59,7 +180,7 @@ function write_config($config,$ips){
...
@@ -59,7 +180,7 @@ function write_config($config,$ips){
foreach
(
$ips
as
$ip
){
foreach
(
$ips
as
$ip
){
$list
.=
"
\t
<camera>
$ip
</camera>
\n
"
;
$list
.=
"
\t
<camera>
$ip
</camera>
\n
"
;
}
}
$xml
=
"<?xml version='1.0' standalone='yes'?>
\n
"
;
$xml
=
"<?xml version='1.0'
encoding=
\"
iso-8859-1
\"
standalone='yes'?>
\n
"
;
$xml
.=
"<Document>
\n
"
;
$xml
.=
"<Document>
\n
"
;
$xml
.=
$list
;
$xml
.=
$list
;
$xml
.=
"</Document>
\n
"
;
$xml
.=
"</Document>
\n
"
;
...
@@ -69,32 +190,108 @@ function write_config($config,$ips){
...
@@ -69,32 +190,108 @@ function write_config($config,$ips){
return
0
;
return
0
;
}
}
function
getports
(){
function
getConfigs
(){
$xml
.=
"<configs>
\n
"
;
// Add more when available. not Using foreach to keep order
$xml
.=
xmlEntry
(
MULTICAM_DIR
,
$GLOBALS
[
MULTICAM_INI
][
MULTICAM_DIR
],
1
);
$xml
.=
xmlEntry
(
MULTICAM_RPERIOD
,
$GLOBALS
[
MULTICAM_INI
][
MULTICAM_RPERIOD
],
1
);
$xml
.=
xmlEntry
(
MULTICAM_SPERIOD
,
$GLOBALS
[
MULTICAM_INI
][
MULTICAM_SPERIOD
],
1
);
$xml
.=
"</configs>
\n
"
;
return
$xml
;
}
global
$nports
,
$portspath
,
$port0
;
$res
=
"
\t
<camera ip='"
.
$_SERVER
[
'SERVER_ADDR'
]
.
"'>
\n
"
;
for
(
$i
=
0
;
$i
<
$nports
;
$i
++
){
function
getports
(){
$sensor
=
$portspath
.
"/sensor
{
$i
}
0"
;
$res
=
"
\t
<camera ip='"
.
$_SERVER
[
'SERVER_ADDR'
]
.
"'>
\n
"
;
for
(
$i
=
0
;
$i
<
NUM_PORTS
;
$i
++
){
$sensor
=
PORTSPATH
.
"/sensor
{
$i
}
0"
;
// the file is always there actually
// the file is always there actually
if
(
is_file
(
$sensor
)){
if
(
is_file
(
$sensor
)){
$c
=
trim
(
file_get_contents
(
$sensor
));
$c
=
trim
(
file_get_contents
(
$sensor
));
$p
=
$port
0
+
$i
;
$p
=
IMGSRV_PORT
0
+
$i
;
$res
.=
"
\t\t
<port index='
$i
' port='
$p
'>
$c
</port>
\n
"
;
$res
.=
"
\t\t
<port index='
$i
' port='
$p
'>
$c
</port>
\n
"
;
}
}
}
}
$res
.=
"
\t
</camera>
\n
"
;
$res
.=
"
\t
</camera>
\n
"
;
$xml
=
"<?xml version='1.0' standalone='yes'?>
\n
"
;
$xml
.=
"<Document>
\n
"
;
$xml
.=
"<Document>
\n
"
;
$xml
.=
$res
;
$xml
.=
$res
;
$xml
.=
"</Document>
\n
"
;
$xml
.=
"</Document>
\n
"
;
return
$xml
;
return
$xml
;
}
}
function
getIps
(){
//$GLOBALS[IPS]
$xml
=
"<cameras>
\n
"
;
for
(
$i
=
0
;
$i
<
count
(
$GLOBALS
[
IPS
]);
$i
++
){
$xml
.=
"
\t
<ip index='
$i
'>"
.
$GLOBALS
[
IPS
][
$i
]
.
"</ip>
\n
"
;
}
$xml
.=
"</cameras>
\n
"
;
return
$xml
;
}
function
exitXmlOK
(
$str
=
"ok"
){
xml_header
();
print
(
'<'
.
$str
.
'/>'
);
exit
(
0
);
}
function
xml_header
()
{
header
(
"Content-type: text/xml"
);
header
(
"Pragma: no-cache
\n
"
);
// allow CORS: needed for multi cams unified control
header
(
'Access-Control-Allow-Origin: *'
);
echo
"<?xml version=
\"
1.0
\"
encoding=
\"
iso-8859-1
\"
?>
\n
"
;
}
function
xmlEntry
(
$key
,
$value
,
$ind
=
0
){
$res
=
''
;
for
(
$i
=
0
;
$i
<
$ind
;
$i
++
)
$res
.=
"
\t
"
;
$res
.=
'<'
.
$key
.
'>'
.
$value
.
'</'
.
$key
.
">
\n
"
;
return
$res
;
}
function
applyConf
(
$arr
){
//port_masks= "15,15,15,15,15"
if
(
isset
(
$arr
[
IPS
]))
{
$GLOBALS
[
IPS
]
=
explode
(
','
,
$arr
[
IPS
]);
if
(
isset
(
$arr
[
PORT_MASKS
])){
$masks
=
explode
(
','
,
$arr
[
PORT_MASKS
]);
}
// Add port masks incdexed by IPs. Changing IPs resets masks
$GLOBALS
[
PORT_MASKS
]
=
array
();
for
(
$i
=
0
;
$i
<
count
(
$GLOBALS
[
IPS
]);
$i
++
){
if
(
isset
(
$masks
)
&&
(
count
(
$masks
)
>
$i
)){
$GLOBALS
[
PORT_MASKS
][
$GLOBALS
[
IPS
][
$i
]]
=
(
int
)
$masks
[
$i
];
}
else
{
$GLOBALS
[
PORT_MASKS
][
$GLOBALS
[
IPS
][
$i
]]
=
(
1
<<
NUM_PORTS
)
-
1
;
}
}
}
/*
if (isset($arr[DURATION])){
$GLOBALS[DURATION] = (int) $arr[DURATION];
$GLOBALS[DURATION_EO] = (int) ($GLOBALS[DURATION]/EO_DECIMATE+1);
}
if (isset($arr[DURATION_EO])) $GLOBALS[DURATION_EO] = (int) $arr[DURATION_EO];
if (isset($arr[PRE_DELAY])) $GLOBALS[PRE_DELAY] = (double) $arr[PRE_DELAY];
if (isset($arr[FFC_PERIOD])) $GLOBALS[FFC_PERIOD] = (double) $arr[FFC_PERIOD];
if (isset($arr[FFC_GROUPS])) $GLOBALS[FFC_GROUPS] = (int) $arr[FFC_GROUPS];
if (isset($arr[FFC_FRAMES])) $GLOBALS[FFC_FRAMES] = (int) $arr[FFC_FRAMES];
if (isset($arr[DAEMON_CMD])) $GLOBALS[DAEMON_CMD] = $arr[DAEMON_CMD];
if (isset($arr[DEBUG])) $GLOBALS[DEBUG] = (int) $arr[DEBUG];
if (isset($arr[COMPRESSOR_RUN])) $GLOBALS[COMPRESSOR_RUN] = (int) $arr[COMPRESSOR_RUN]; // only after INIT
if (isset($arr[FFC])) $GLOBALS[FFC] = $arr[FFC]?1:0;
if (isset($arr[TIFF_TELEM])) $GLOBALS[TIFF_TELEM] = (int) $arr[TIFF_TELEM];
if (isset($arr[TIFF_MN])) $GLOBALS[TIFF_MN] = (int) $arr[TIFF_MN];
if (isset($arr[TIFF_MX])) $GLOBALS[TIFF_MX] = (int) $arr[TIFF_MX];
if (isset($arr[TIFF_BIN_SHIFT])) $GLOBALS[TIFF_BIN_SHIFT] = (int) $arr[TIFF_BIN_SHIFT];
if (isset($arr[TIFF_AUTO])) $GLOBALS[TIFF_AUTO] = (int) $arr[TIFF_AUTO];
*/
}
function
send_zipped_images
(
$ips
){
function
send_zipped_images
(
$ips
){
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment