Added S-meter
This commit is contained in:
@ -108,8 +108,13 @@
|
||||
<div class="openwebrx-button openwebrx-square-button" onclick="zoomOutOneStep();" title="Zoom out one step"> <img src="gfx/openwebrx-zoom-out.png" /></div>
|
||||
<div class="openwebrx-button openwebrx-square-button" onclick="zoomInTotal();" title="Zoom in totally"><img src="gfx/openwebrx-zoom-in-total.png" /></div>
|
||||
<div class="openwebrx-button openwebrx-square-button" onclick="zoomOutTotal();" title="Zoom out totally"><img src="gfx/openwebrx-zoom-out-total.png" /></div>
|
||||
<div id="openwebrx-smeter-db">0 dB</div>
|
||||
</div>
|
||||
<div class="openwebrx-panel-line">
|
||||
<div id="openwebrx-smeter-outer">
|
||||
<div id="openwebrx-smeter-bar"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="openwebrx-panel" id="openwebrx-panel-log" data-panel-name="debug" data-panel-pos="left" data-panel-order="1" data-panel-size="619,142">
|
||||
|
@ -36,7 +36,7 @@ input
|
||||
input[type=range]
|
||||
{
|
||||
-webkit-appearance: none;
|
||||
margin: 10px 0;
|
||||
margin: 0 0;
|
||||
}
|
||||
input[type=range]:focus
|
||||
{
|
||||
@ -745,3 +745,36 @@ img.openwebrx-mirror-img
|
||||
{
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
#openwebrx-smeter-outer
|
||||
{
|
||||
border-color: #888;
|
||||
border-style: solid;
|
||||
border-width: 0px;
|
||||
width: 255px;
|
||||
height: 7px;
|
||||
background-color: #373737;
|
||||
border-radius: 3px;
|
||||
position: relative;
|
||||
}
|
||||
#openwebrx-smeter-bar
|
||||
{
|
||||
transition: all 0.2s linear;
|
||||
width: 0px;
|
||||
height: 7px;
|
||||
background: linear-gradient(to top, #ff5939 , #961700);
|
||||
position: absolute;
|
||||
margin: 0; padding: 0; left: 0;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#openwebrx-smeter-db
|
||||
{
|
||||
color: #aaa;
|
||||
display: inline-block;
|
||||
font-size: 10pt;
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
margin-top: 29px;
|
||||
font-family: 'expletus-sans-medium';
|
||||
}
|
||||
|
@ -178,6 +178,36 @@ function waterfallColorsAuto()
|
||||
updateWaterfallColors(0);
|
||||
}
|
||||
|
||||
function setSmeterRelativeValue(value)
|
||||
{
|
||||
if(value<0) value=0;
|
||||
if(value>1.0) value=1.0;
|
||||
var bar=e("openwebrx-smeter-bar");
|
||||
var outer=e("openwebrx-smeter-outer");
|
||||
bar.style.width=(outer.offsetWidth*value).toString()+"px";
|
||||
bgRed="linear-gradient(to top, #ff5939 , #961700)";
|
||||
bgGreen="linear-gradient(to top, #22ff2f , #008908)";
|
||||
bgYellow="linear-gradient(to top, #fff720 , #a49f00)";
|
||||
bar.style.background=(value>0.9)?bgRed:((value>0.7)?bgYellow:bgGreen);
|
||||
//bar.style.backgroundColor=(value>0.9)?"#ff5939":((value>0.7)?"#fff720":"#22ff2f");
|
||||
}
|
||||
|
||||
function getLogSmeterValue(value)
|
||||
{
|
||||
return 10*Math.log10(value);
|
||||
}
|
||||
|
||||
function setSmeterAbsoluteValue(value) //the value that comes from `csdr squelch_and_smeter_cc`
|
||||
{
|
||||
var logValue=getLogSmeterValue(value);
|
||||
var lowLevel=waterfall_min_level-20;
|
||||
var highLevel=waterfall_max_level+20;
|
||||
var percent=(logValue-lowLevel)/(highLevel-lowLevel);
|
||||
setSmeterRelativeValue(percent);
|
||||
e("openwebrx-smeter-db").innerHTML=logValue.toFixed(1)+" dB";
|
||||
}
|
||||
|
||||
|
||||
// ========================================================
|
||||
// ================= ANIMATION ROUTINES =================
|
||||
// ========================================================
|
||||
@ -1145,6 +1175,10 @@ function on_ws_recv(evt)
|
||||
case "max_clients":
|
||||
max_clients_num=parseInt(param[1]);
|
||||
break;
|
||||
case "s":
|
||||
smeter_level=parseFloat(param[1]);
|
||||
setSmeterAbsoluteValue(smeter_level);
|
||||
break;
|
||||
}
|
||||
}
|
||||
/*}
|
||||
|
Reference in New Issue
Block a user