Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
elphel-apps-camogm
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-apps-camogm
Commits
55b30cb5
Commit
55b30cb5
authored
Nov 01, 2016
by
Mikhail Karpenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Show buffer(s) usage status
parent
326819bf
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
101 additions
and
29 deletions
+101
-29
camogm.c
src/camogm.c
+0
-3
camogm_jpeg.c
src/camogm_jpeg.c
+1
-1
camogmgui.css
src/camogmgui/camogmgui.css
+14
-10
camogmgui.js
src/camogmgui/camogmgui.js
+52
-12
camogmgui.php
src/camogmgui/camogmgui.php
+34
-3
No files found.
src/camogm.c
View file @
55b30cb5
...
...
@@ -1101,7 +1101,6 @@ void camogm_status(camogm_state *state, char * fn, int xml)
"
\t\t
<buffer_free>%d</buffer_free>
\n
"
\
"
\t\t
<buffer_used>%d</buffer_used>
\n
"
\
"
\t\t
<circbuf_rp>%d</circbuf_rp>
\n
"
\
"
\t\t
<circbuf_size>%d</circbuf_size>
\n
"
\
"
\t
</sensor_port_%d>
\n
"
,
chn
,
_active
,
...
...
@@ -1115,7 +1114,6 @@ void camogm_status(camogm_state *state, char * fn, int xml)
_b_free
[
chn
],
_b_used
[
chn
],
state
->
cirbuf_rp
[
chn
],
state
->
circ_buff_size
[
chn
],
chn
);
}
...
...
@@ -1179,7 +1177,6 @@ void camogm_status(camogm_state *state, char * fn, int xml)
fprintf
(
f
,
"buffer free
\t
%d
\n
"
,
_b_free
[
chn
]);
fprintf
(
f
,
"buffer used
\t
%d
\n
"
,
_b_used
[
chn
]);
fprintf
(
f
,
"circbuf_rp
\t
%d (0x%x)
\n
"
,
state
->
cirbuf_rp
[
chn
],
state
->
cirbuf_rp
[
chn
]);
fprintf
(
f
,
"circbuf_size
\t
%d
\n
"
,
state
->
circ_buff_size
[
chn
]);
fprintf
(
f
,
"
\n
"
);
}
}
...
...
src/camogm_jpeg.c
View file @
55b30cb5
...
...
@@ -263,7 +263,7 @@ int camogm_frame_jpeg(camogm_state *state)
}
close
(
state
->
ivf
);
}
else
{
D6
(
fprintf
(
debug_file
,
"
dump iovect array
\n
"
));
D6
(
fprintf
(
debug_file
,
"
\n
dump iovect array for port %u
\n
"
,
state
->
port_num
));
for
(
int
i
=
0
;
i
<
state
->
chunk_index
-
1
;
i
++
)
{
D6
(
fprintf
(
debug_file
,
"ptr: %p, length: %ld
\n
"
,
state
->
packetchunks
[
i
+
1
].
chunk
,
state
->
packetchunks
[
i
+
1
].
bytes
));
}
...
...
src/camogmgui/camogmgui.css
View file @
55b30cb5
...
...
@@ -200,32 +200,36 @@ table.state_table td {
right
:
30px
;
padding-right
:
40px
;
}
#buffer_bar
{
.buffer_bars_li
{
list-style-type
:
none
;
overflow
:
hidden
;
margin
:
0
;
padding
:
0
;
}
.buffer_bar
{
float
:
right
;
right
:
50px
;
margin
-right
:
8
px
;
width
:
34
0px
;
margin
:
5px
10px
5px
10
px
;
width
:
42
0px
;
height
:
15px
;
border
:
1px
solid
#0066FF
;
position
:
absolute
;
padding
:
1px
;
}
#
buffer_free
{
.
buffer_free
{
background-color
:
#009900
;
margin-left
:
5px
;
height
:
15px
;
position
:
absolute
;
width
:
26
0px
;
width
:
32
0px
;
display
:
inline
;
float
:
left
;
text-align
:
center
;
color
:
#FFFFFF
;
letter-spacing
:
3px
;
}
#
buffer_used
{
.
buffer_used
{
background-color
:
#CC0000
;
height
:
15px
;
position
:
absolute
;
width
:
40px
;
width
:
50px
;
display
:
inline
;
float
:
right
;
right
:
1px
;
...
...
src/camogmgui/camogmgui.js
View file @
55b30cb5
...
...
@@ -422,14 +422,33 @@ function process_recording(xmldoc) {
//document.getElementById('ajax_fps').innerHTML = Math.round(frame_number/file_duration*100)/100 + " fps";
document
.
getElementById
(
'ajax_file_name'
).
innerHTML
=
file_name
.
substring
(
1
,
file_name
.
length
-
1
);
//Update Buffer Bar
var
buffer_free
=
xmldoc
.
getElementsByTagName
(
'buffer_free'
)[
0
].
firstChild
.
data
;
var
buffer_used
=
xmldoc
.
getElementsByTagName
(
'buffer_used'
)[
0
].
firstChild
.
data
;
//var buffer_rp = xmldoc.getElementsByTagName('circbuf_rp')[0].firstChild.data; // buffer read pointer
//var buffer_filled = buffer_used - buffer_rp;
document
.
getElementById
(
'buffer_free'
).
style
.
width
=
Math
.
round
(
buffer_free
/
19791872
*
300
);
document
.
getElementById
(
'buffer_used'
).
style
.
width
=
Math
.
round
(
buffer_used
/
19791872
*
300
);
// update buffer size bars
var
element
;
var
free_sz
,
used_sz
,
width
;
var
min_text_width
=
40
;
var
buffers_free
=
xmldoc
.
getElementsByTagName
(
'buffer_free'
);
var
buffers_used
=
xmldoc
.
getElementsByTagName
(
'buffer_used'
);
var
buffer_size
;
// this variable is injected into web page from camogmgui.php
var
sensor_ports
=
parseInt
(
document
.
getElementById
(
'sensor_ports'
).
textContent
,
10
);
var
max_bar_len
=
370
;
for
(
var
i
=
0
;
i
<
sensor_ports
;
i
++
)
{
free_sz
=
buffers_free
[
i
].
firstChild
.
data
;
used_sz
=
buffers_used
[
i
].
firstChild
.
data
;
buffer_size
=
parseInt
(
free_sz
,
10
)
+
parseInt
(
used_sz
,
10
);
console
.
log
(
'buffer_size: '
+
buffer_size
+
' free_size: '
+
free_sz
+
' used_size:'
+
used_sz
);
id
=
"buffer_free_"
+
i
.
toString
();
width
=
Math
.
round
(
free_sz
/
buffer_size
*
max_bar_len
);
document
.
getElementById
(
id
).
style
.
width
=
width
;
element
=
document
.
getElementById
(
'buffer_free_text_'
+
i
.
toString
());
set_text_visibility
(
element
,
width
,
min_text_width
);
id
=
"buffer_used_"
+
i
.
toString
();
width
=
Math
.
round
(
used_sz
/
buffer_size
*
max_bar_len
);
document
.
getElementById
(
id
).
style
.
width
=
width
;
element
=
document
.
getElementById
(
'buffer_used_text_'
+
i
.
toString
());
set_text_visibility
(
element
,
width
,
min_text_width
);
}
//get_hdd_space();
get_space
(
selected_mountpoint
);
...
...
@@ -764,17 +783,26 @@ function calc_split_size() {
document
.
getElementById
(
'split_size_calculation'
).
innerHTML
=
" = "
+
result
;
}
function
toggle_buffer
()
{
if
(
document
.
getElementById
(
'buffer_bar'
).
style
.
display
==
"none"
)
{
document
.
getElementById
(
'buffer_bar'
).
style
.
display
=
"inline"
;
var
new_state
;
var
buffer_name
;
// this variable is injected into web page from camogmgui.php
var
sensor_ports
=
parseInt
(
document
.
getElementById
(
'sensor_ports'
).
textContent
,
10
);
if
(
document
.
getElementById
(
'buffer_toggle_link'
).
style
.
display
!=
"none"
)
{
new_state
=
"inline"
;
document
.
getElementById
(
'buffer_toggle_link'
).
style
.
display
=
"none"
;
}
else
{
document
.
getElementById
(
'buffer_bar'
).
style
.
display
=
"none"
;
new_state
=
"none"
;
document
.
getElementById
(
'buffer_toggle_link'
).
style
.
display
=
"block"
;
}
for
(
var
i
=
0
;
i
<
sensor_ports
;
i
++
)
{
buffer_name
=
"buffer_bar_"
+
i
.
toString
();
document
.
getElementById
(
buffer_name
).
style
.
display
=
new_state
;
}
}
/** Enable or disable page controls in accordance to new state which ca
t
be one of 'fast_rec' or 'standart_rec' */
/** Enable or disable page controls in accordance to new state which ca
n
be one of 'fast_rec' or 'standart_rec' */
function
set_controls_state
(
new_state
)
{
var
radios
=
document
.
getElementsByName
(
'container'
);
...
...
@@ -844,3 +872,15 @@ function process_raw_dev_list(xmldoc)
makeRequest
(
'camogm_interface.php'
,
'?cmd=status'
);
}
}
/** Change text element visibility. This function is used to change buffer bars presentation */
function
set_text_visibility
(
element
,
width
,
min_text_width
)
{
if
(
width
<
min_text_width
)
{
element
.
style
.
display
=
'none'
;
}
else
{
if
(
element
.
style
.
display
==
'none'
)
{
element
.
style
.
display
=
'inline'
;
}
}
}
src/camogmgui/camogmgui.php
View file @
55b30cb5
...
...
@@ -58,7 +58,25 @@
$mode
=
0777
;
$sensor_ports
=
elphel_num_sensors
();
$default_imgsrv_port
=
2323
;
/** Draw single buffer usage bar */
function
draw_buffer_bar
(
$port
,
$ports_num
)
{
echo
"<div id=
\"
buffer_bar_"
.
$port
.
"
\"
class=
\"
buffer_bar
\"
"
.
"onclick=
\"
toggle_buffer();
\"
style=
\"
display:none;
\"
>Buffer "
.
$port
.
": "
.
"<span id=
\"
buffer_free_"
.
$port
.
"
\"
class=
\"
buffer_free
\"
><div id=
\"
buffer_free_text_"
.
$port
.
"
\"
>free</div></span>"
.
"<span id=
\"
buffer_used_"
.
$port
.
"
\"
class=
\"
buffer_used
\"
><div id=
\"
buffer_used_text_"
.
$port
.
"
\"
>used</div></span>"
.
"</div>"
;
}
/** Inject a parameter into web page that may be needed in JavaScript */
function
inject_param
(
$name
,
$val
)
{
echo
"<div id=
\"
"
.
$name
.
"
\"
style=
\"
display:none;
\"
>"
;
echo
htmlspecialchars
(
$val
);
echo
"</div>"
;
}
// check if any compressor is in running state
function
check_compressors
(
$states
)
{
...
...
@@ -349,6 +367,9 @@
</head>
<body
onLoad=
"init();"
>
<?php
inject_param
(
'sensor_ports'
,
$sensor_ports
);
?>
<div
id=
"sitecoloumn"
>
<div
id=
"live-image"
>
<div
id=
"CollapsiblePanel1"
class=
"CollapsiblePanel"
>
...
...
@@ -385,8 +406,18 @@
</div>
<div
id=
"header"
>
HDD / CF Recorder
</div>
<div
id=
"buffer_toggle"
><a
id=
"buffer_toggle_link"
onclick=
"toggle_buffer();"
href=
"#"
>
Show Buffer
</a></div>
<div
id=
"buffer_bar"
onclick=
"toggle_buffer();"
style=
"display:none;"
>
Buffer:
<span
id=
"buffer_free"
>
free
</span><span
id=
"buffer_used"
>
used
</span></div>
<div
id=
"buffer_toggle"
><a
id=
"buffer_toggle_link"
onclick=
"toggle_buffer();"
href=
"#"
>
<?php
if
(
$sensor_ports
>
1
)
{
echo
"Show buffers"
;
}
else
{
echo
"Show buffer"
;}
?>
</a>
</div>
<ul>
<?php
for
(
$i
=
0
;
$i
<
$sensor_ports
;
$i
++
)
{
echo
"<li class=
\"
buffer_bars_li
\"
>"
;
draw_buffer_bar
(
$i
,
$sensor_ports
);
echo
"</li>"
;
}
?>
</ul>
<div
id=
"help_link"
><a
target=
"_blank"
href=
"http://wiki.elphel.com/index.php?title=Camogmgui"
>
HELP
</a></div>
<table
border=
"0"
cellpadding=
"2"
cellspacing=
"5"
>
<tr><td>
...
...
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