Adding Flex message panel.
This commit is contained in:
parent
045ecc4e31
commit
d75b28ee3f
|
|
@ -1,15 +1,17 @@
|
||||||
from csdr.chain.demodulator import ServiceDemodulator, DialFrequencyReceiver
|
from csdr.chain.demodulator import ServiceDemodulator, DialFrequencyReceiver
|
||||||
from pycsdr.modules import FmDemod, AudioResampler
|
from pycsdr.modules import FmDemod, AudioResampler
|
||||||
from mmon.modules import Flex
|
from mmon.modules import Flex
|
||||||
|
from owrx.multimon import MultimonParser
|
||||||
|
|
||||||
class FlexDemodulator(ServiceDemodulator, DialFrequencyReceiver):
|
class FlexDemodulator(ServiceDemodulator, DialFrequencyReceiver):
|
||||||
def __init__(self):
|
def __init__(self, service: bool = False):
|
||||||
self.sampleRate = 24000
|
self.sampleRate = 24000
|
||||||
|
self.parser = MultimonParser(service=service)
|
||||||
workers = [
|
workers = [
|
||||||
FmDemod(),
|
FmDemod(),
|
||||||
AudioResampler(self.sampleRate, 22050),
|
AudioResampler(self.sampleRate, 22050),
|
||||||
Flex(),
|
Flex(),
|
||||||
|
self.parser,
|
||||||
]
|
]
|
||||||
super().__init__(workers)
|
super().__init__(workers)
|
||||||
|
|
||||||
|
|
@ -20,5 +22,5 @@ class FlexDemodulator(ServiceDemodulator, DialFrequencyReceiver):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def setDialFrequency(self, frequency: int) -> None:
|
def setDialFrequency(self, frequency: int) -> None:
|
||||||
pass
|
self.parse.setDialFrequency(frequency)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1198,6 +1198,16 @@ img.openwebrx-mirror-img
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#openwebrx-panel-flex-message .address {
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#openwebrx-panel-flex-message .message {
|
||||||
|
width: 486px;
|
||||||
|
max-width: 486px;
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
|
||||||
#openwebrx-panel-sstv-message {
|
#openwebrx-panel-sstv-message {
|
||||||
height: 310px;
|
height: 310px;
|
||||||
width: 365px;
|
width: 365px;
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,7 @@
|
||||||
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-js8-message" style="display:none; width: 619px;" data-panel-name="js8-message"></div>
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-js8-message" style="display:none; width: 619px;" data-panel-name="js8-message"></div>
|
||||||
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-packet-message" style="display: none; width: 619px;" data-panel-name="aprs-message"></div>
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-packet-message" style="display: none; width: 619px;" data-panel-name="aprs-message"></div>
|
||||||
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-pocsag-message" style="display: none; width: 619px;" data-panel-name="pocsag-message"></div>
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-pocsag-message" style="display: none; width: 619px;" data-panel-name="pocsag-message"></div>
|
||||||
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-flex-message" style="display: none; width: 619px;" data-panel-name="flex-message"></div>
|
||||||
<div class="openwebrx-panel openwebrx-meta-panel" id="openwebrx-panel-metadata-m17" style="display: none;" data-panel-name="metadata-m17">
|
<div class="openwebrx-panel openwebrx-meta-panel" id="openwebrx-panel-metadata-m17" style="display: none;" data-panel-name="metadata-m17">
|
||||||
<div class="openwebrx-meta-slot">
|
<div class="openwebrx-meta-slot">
|
||||||
<div class="openwebrx-meta-user-image">
|
<div class="openwebrx-meta-user-image">
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ function Filter(demodulator) {
|
||||||
|
|
||||||
Filter.prototype.getLimits = function() {
|
Filter.prototype.getLimits = function() {
|
||||||
var max_bw;
|
var max_bw;
|
||||||
if (['pocsag', 'packet', 'ais'].indexOf(this.demodulator.get_secondary_demod()) >= 0) {
|
if (['pocsag', 'flex', 'packet', 'ais'].indexOf(this.demodulator.get_secondary_demod()) >= 0) {
|
||||||
max_bw = 12500;
|
max_bw = 12500;
|
||||||
} else if (['dmr', 'dstar', 'nxdn', 'ysf', 'm17'].indexOf(this.demodulator.get_modulation()) >= 0) {
|
} else if (['dmr', 'dstar', 'nxdn', 'ysf', 'm17'].indexOf(this.demodulator.get_modulation()) >= 0) {
|
||||||
max_bw = 6250;
|
max_bw = 6250;
|
||||||
|
|
|
||||||
|
|
@ -166,6 +166,7 @@ DemodulatorPanel.prototype.updatePanels = function() {
|
||||||
toggle_panel("openwebrx-panel-js8-message", modulation == "js8");
|
toggle_panel("openwebrx-panel-js8-message", modulation == "js8");
|
||||||
toggle_panel("openwebrx-panel-packet-message", ["packet", "ais"].indexOf(modulation) >= 0);
|
toggle_panel("openwebrx-panel-packet-message", ["packet", "ais"].indexOf(modulation) >= 0);
|
||||||
toggle_panel("openwebrx-panel-pocsag-message", modulation === "pocsag");
|
toggle_panel("openwebrx-panel-pocsag-message", modulation === "pocsag");
|
||||||
|
toggle_panel("openwebrx-panel-flex-message", modulation === "flex");
|
||||||
toggle_panel("openwebrx-panel-sstv-message", modulation === "sstv");
|
toggle_panel("openwebrx-panel-sstv-message", modulation === "sstv");
|
||||||
toggle_panel("openwebrx-panel-fax-message", modulation === "fax");
|
toggle_panel("openwebrx-panel-fax-message", modulation === "fax");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -270,6 +270,47 @@ $.fn.pocsagMessagePanel = function() {
|
||||||
return this.data('panel');
|
return this.data('panel');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
FlexMessagePanel = function(el) {
|
||||||
|
MessagePanel.call(this, el);
|
||||||
|
this.initClearTimer();
|
||||||
|
}
|
||||||
|
|
||||||
|
FlexMessagePanel.prototype = new MessagePanel();
|
||||||
|
|
||||||
|
FlexMessagePanel.prototype.supportsMessage = function(message) {
|
||||||
|
return message['mode'] === 'Flex';
|
||||||
|
};
|
||||||
|
|
||||||
|
FlexMessagePanel.prototype.render = function() {
|
||||||
|
$(this.el).append($(
|
||||||
|
'<table>' +
|
||||||
|
'<thead><tr>' +
|
||||||
|
'<th class="address">Address</th>' +
|
||||||
|
'<th class="message">Message</th>' +
|
||||||
|
'</tr></thead>' +
|
||||||
|
'<tbody></tbody>' +
|
||||||
|
'</table>'
|
||||||
|
));
|
||||||
|
};
|
||||||
|
|
||||||
|
FlexMessagePanel.prototype.pushMessage = function(msg) {
|
||||||
|
var $b = $(this.el).find('tbody');
|
||||||
|
$b.append($(
|
||||||
|
'<tr>' +
|
||||||
|
'<td class="address">' + msg.address + '</td>' +
|
||||||
|
'<td class="message">' + msg.message + '</td>' +
|
||||||
|
'</tr>'
|
||||||
|
));
|
||||||
|
$b.scrollTop($b[0].scrollHeight);
|
||||||
|
};
|
||||||
|
|
||||||
|
$.fn.flexMessagePanel = function() {
|
||||||
|
if (!this.data('panel')) {
|
||||||
|
this.data('panel', new FlexMessagePanel(this));
|
||||||
|
}
|
||||||
|
return this.data('panel');
|
||||||
|
};
|
||||||
|
|
||||||
SstvMessagePanel = function(el) {
|
SstvMessagePanel = function(el) {
|
||||||
MessagePanel.call(this, el);
|
MessagePanel.call(this, el);
|
||||||
this.initClearTimer();
|
this.initClearTimer();
|
||||||
|
|
|
||||||
|
|
@ -1166,11 +1166,12 @@ function on_ws_recv(evt) {
|
||||||
case 'secondary_demod':
|
case 'secondary_demod':
|
||||||
var value = json['value'];
|
var value = json['value'];
|
||||||
var panels = [
|
var panels = [
|
||||||
$("#openwebrx-panel-wsjt-message").wsjtMessagePanel(),
|
$("#openwebrx-panel-wsjt-message").wsjtMessagePanel(),
|
||||||
$('#openwebrx-panel-packet-message').packetMessagePanel(),
|
$('#openwebrx-panel-packet-message').packetMessagePanel(),
|
||||||
$('#openwebrx-panel-pocsag-message').pocsagMessagePanel(),
|
$('#openwebrx-panel-pocsag-message').pocsagMessagePanel(),
|
||||||
$('#openwebrx-panel-sstv-message').sstvMessagePanel(),
|
$('#openwebrx-panel-flex-message').flexMessagePanel(),
|
||||||
$('#openwebrx-panel-fax-message').faxMessagePanel(),
|
$('#openwebrx-panel-sstv-message').sstvMessagePanel(),
|
||||||
|
$('#openwebrx-panel-fax-message').faxMessagePanel(),
|
||||||
$("#openwebrx-panel-js8-message").js8()
|
$("#openwebrx-panel-js8-message").js8()
|
||||||
];
|
];
|
||||||
if (!panels.some(function(panel) {
|
if (!panels.some(function(panel) {
|
||||||
|
|
@ -1843,6 +1844,7 @@ function secondary_demod_init() {
|
||||||
$('#openwebrx-panel-wsjt-message').wsjtMessagePanel();
|
$('#openwebrx-panel-wsjt-message').wsjtMessagePanel();
|
||||||
$('#openwebrx-panel-packet-message').packetMessagePanel();
|
$('#openwebrx-panel-packet-message').packetMessagePanel();
|
||||||
$('#openwebrx-panel-pocsag-message').pocsagMessagePanel();
|
$('#openwebrx-panel-pocsag-message').pocsagMessagePanel();
|
||||||
|
$('#openwebrx-panel-flex-message').pocsagMessagePanel();
|
||||||
$('#openwebrx-panel-sstv-message').sstvMessagePanel();
|
$('#openwebrx-panel-sstv-message').sstvMessagePanel();
|
||||||
$('#openwebrx-panel-fax-message').faxMessagePanel();
|
$('#openwebrx-panel-fax-message').faxMessagePanel();
|
||||||
$('#openwebrx-panel-js8-message').js8();
|
$('#openwebrx-panel-js8-message').js8();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue