PIDs decoder
HTML
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/themes/base/jquery-ui.min.css">
<div>PIDy 01-20:
<input type="text" id="pids00">
</div>
<div>PIDy 21-40:
<input type="text" id="pids20">
</div>
<div>PIDy 41-60:
<input type="text" id="pids40">
</div>
<div>PIDy 61-80:
<input type="text" id="pids60">
</div>
<div>PIDy 81-A0:
<input type="text" id="pids80">
</div>
<button id="decode">
Dekoduj!
</button>
<div id="result" style="display: none">
<div>
Dostępne pidy: <span class="available-pids"></span>
</div>
Wpisz do konfiguracji:
<pre id="config"></pre>
</div>
CSS
div {
margin: 8px;
}
.available-pids {
font-weight: bold;
}
pre {
background-color: #ffe2a6;
}
JavaScript
var decode = function(v, base) {
var res = [];
if (!v)
return res;
v = v.replace(' ', '');
v = parseInt(v, 16);
for (var i = 0; i < 31; ++i) {
if (v & (1 << (31 - i))) {
res.push(base + i + 1);
}
}
return res;
}
$("#decode").button().click(function() {
var pids = [];
var v = $("#pids00").val();
if (v) {
pids = pids.concat(decode(v, 0x00));
}
var v = $("#pids20").val();
if (v) {
pids = pids.concat(decode(v, 0x20));
}
var v = $("#pids40").val();
if (v) {
pids = pids.concat(decode(v, 0x40));
}
var v = $("#pids60").val();
if (v) {
pids = pids.concat(decode(v, 0x60));
}
var v = $("#pids80").val();
if (v) {
pids = pids.concat(decode(v, 0x80));
}
var pidss = [];
for (var i = 0; i < pids.length; ++i) {
var s = pids[i].toString(16).toUpperCase();
if (s.length == 1)
s = '0' + s;
pidss.push(s);
}
$("#config").text("ecm.available_pids = " + pidss.join(' '));
$(".available-pids").text(pidss.join(' '));
console.log(pidss);
$("#result").show();
})