diff --git a/htdocs/lib/Demodulator.js b/htdocs/lib/Demodulator.js
index b2041a94..1b94e5aa 100644
--- a/htdocs/lib/Demodulator.js
+++ b/htdocs/lib/Demodulator.js
@@ -5,7 +5,7 @@ function Filter(demodulator) {
Filter.prototype.getLimits = function() {
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;
} else if (['dmr', 'dstar', 'nxdn', 'ysf', 'm17'].indexOf(this.demodulator.get_modulation()) >= 0) {
max_bw = 6250;
diff --git a/htdocs/lib/DemodulatorPanel.js b/htdocs/lib/DemodulatorPanel.js
index e23267f1..85feee0f 100644
--- a/htdocs/lib/DemodulatorPanel.js
+++ b/htdocs/lib/DemodulatorPanel.js
@@ -166,6 +166,7 @@ DemodulatorPanel.prototype.updatePanels = function() {
toggle_panel("openwebrx-panel-js8-message", modulation == "js8");
toggle_panel("openwebrx-panel-packet-message", ["packet", "ais"].indexOf(modulation) >= 0);
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-fax-message", modulation === "fax");
diff --git a/htdocs/lib/MessagePanel.js b/htdocs/lib/MessagePanel.js
index a7954fc5..46d6aacb 100644
--- a/htdocs/lib/MessagePanel.js
+++ b/htdocs/lib/MessagePanel.js
@@ -270,6 +270,47 @@ $.fn.pocsagMessagePanel = function() {
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($(
+ '
' +
+ '' +
+ '| Address | ' +
+ 'Message | ' +
+ '
' +
+ '' +
+ '
'
+ ));
+};
+
+FlexMessagePanel.prototype.pushMessage = function(msg) {
+ var $b = $(this.el).find('tbody');
+ $b.append($(
+ '
' +
+ '| ' + msg.address + ' | ' +
+ '' + msg.message + ' | ' +
+ '
'
+ ));
+ $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) {
MessagePanel.call(this, el);
this.initClearTimer();
diff --git a/htdocs/openwebrx.js b/htdocs/openwebrx.js
index b8a22edf..55c66035 100644
--- a/htdocs/openwebrx.js
+++ b/htdocs/openwebrx.js
@@ -1166,11 +1166,12 @@ function on_ws_recv(evt) {
case 'secondary_demod':
var value = json['value'];
var panels = [
- $("#openwebrx-panel-wsjt-message").wsjtMessagePanel(),
- $('#openwebrx-panel-packet-message').packetMessagePanel(),
- $('#openwebrx-panel-pocsag-message').pocsagMessagePanel(),
- $('#openwebrx-panel-sstv-message').sstvMessagePanel(),
- $('#openwebrx-panel-fax-message').faxMessagePanel(),
+ $("#openwebrx-panel-wsjt-message").wsjtMessagePanel(),
+ $('#openwebrx-panel-packet-message').packetMessagePanel(),
+ $('#openwebrx-panel-pocsag-message').pocsagMessagePanel(),
+ $('#openwebrx-panel-flex-message').flexMessagePanel(),
+ $('#openwebrx-panel-sstv-message').sstvMessagePanel(),
+ $('#openwebrx-panel-fax-message').faxMessagePanel(),
$("#openwebrx-panel-js8-message").js8()
];
if (!panels.some(function(panel) {
@@ -1843,6 +1844,7 @@ function secondary_demod_init() {
$('#openwebrx-panel-wsjt-message').wsjtMessagePanel();
$('#openwebrx-panel-packet-message').packetMessagePanel();
$('#openwebrx-panel-pocsag-message').pocsagMessagePanel();
+ $('#openwebrx-panel-flex-message').pocsagMessagePanel();
$('#openwebrx-panel-sstv-message').sstvMessagePanel();
$('#openwebrx-panel-fax-message').faxMessagePanel();
$('#openwebrx-panel-js8-message').js8();