From fe72e87026a32bcc53e00c1cadfba2931aea8bda Mon Sep 17 00:00:00 2001
From: Roethenbach <64754659+Roethenbach@users.noreply.github.com>
Date: Thu, 30 Sep 2021 15:02:52 +0200
Subject: [PATCH 1/2] Added JSON format output

---
 JAERO/mainwindow.cpp | 51 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/JAERO/mainwindow.cpp b/JAERO/mainwindow.cpp
index b60f199..5a11778 100644
--- a/JAERO/mainwindow.cpp
+++ b/JAERO/mainwindow.cpp
@@ -1333,7 +1333,58 @@ void MainWindow::ACARSslot(ACARSItem &acarsitem)
             log(humantext);
         }
     }
+    if(settingsdialog->msgdisplayformat=="4") {
+        ui->inputwidget->setLineWrapMode(QPlainTextEdit::NoWrap);
+    
+        QString utcdate = humantext+=QDateTime::currentDateTime().toUTC().toString("yyyy-MM-dd hh:mm:ss");
+
+        humantext+="{\"time\":\""+utcdate+"\", ";
 
+        if(acarsitem.TAK==0x15)TAKstr=((QString)"!").toLatin1();
+        uchar label1=acarsitem.LABEL[1];
+        if((uchar)acarsitem.LABEL[1]==127)label1='d';
+    
+        if(acarsitem.nonacars) {
+            char* nonacars = "true";
+            if(acarsitem.message.isEmpty()) {
+                humantext+=((QString)"").sprintf("\"nonacars\":%s, \"AES\": \"%06X\", \"GES\": \"%02X\", \"QNO\": \"%02X\", \"REFNO\": \"%02X\", \"REG\": \"%s\"}",nonacars,acarsitem.isuitem.AESID,acarsitem.isuitem.GESID,acarsitem.isuitem.QNO,acarsitem.isuitem.REFNO,acarsitem.PLANEREG.data());
+            } else {
+                QString message=acarsitem.message;
+                message.replace('\r','\n');
+                message.replace("\n\n","\n");
+                message.replace('\n',"●");
+                humantext+=((QString)"").sprintf("\"nonacars\":%s, \"AES\": \"%06X\", \"GES\": \"%02X\", \"QNO\": \"%02X\", \"REFNO\": \"%02X\", \"REG\": \"%s\",\"TEXT\": \"",nonacars,acarsitem.isuitem.AESID,acarsitem.isuitem.GESID,acarsitem.isuitem.QNO,acarsitem.isuitem.REFNO,acarsitem.PLANEREG.data());
+                humantext+=message+"\"}";        
+            }
+        } else {
+            char* nonacars = "false";
+            if(acarsitem.message.isEmpty()) {
+                humantext+=((QString)"").sprintf("\"nonacars\":%s, \"AES\": \"%06X\", \"GES\": \"%02X\", \"QNO\": \"%02X\", \"REFNO\": \"%02X\", \"MODE\": \"%c\", \"REG\": \"%s\", \"TAK\": \"%s\", \"LABEL\": \"%c%c\", \"BI\": \"%c\"}",nonacars,acarsitem.isuitem.AESID,acarsitem.isuitem.GESID,acarsitem.isuitem.QNO,acarsitem.isuitem.REFNO,acarsitem.MODE,acarsitem.PLANEREG.data(),TAKstr.data(),(uchar)acarsitem.LABEL[0],label1,acarsitem.BI);
+            } else {
+                QString message=acarsitem.message;
+                message.replace('\r','\n');
+                message.replace("\n\n","\n");
+                message.replace('\n',"●");
+                humantext+=((QString)"").sprintf("\"nonacars\":%s, \"AES\": \"%06X\", \"GES\": \"%02X\", \"QNO\": \"%02X\", \"REFNO\": \"%02X\", \"MODE\": \"%c\", \"REG\": \"%s\", \"TAK\": \"%s\", \"LABEL\": \"%c%c\", \"BI\": \"%c\",\"TEXT\": \"",nonacars,acarsitem.isuitem.AESID,acarsitem.isuitem.GESID,acarsitem.isuitem.QNO,acarsitem.isuitem.REFNO,acarsitem.MODE,acarsitem.PLANEREG.data(),TAKstr.data(),(uchar)acarsitem.LABEL[0],label1,acarsitem.BI);
+                humantext+=message+"\"}";
+            }
+        }
+    
+        if(settingsdialog->udp_for_decoded_messages_enabled) {
+            for(int ii=0;ii<udpsockets_bottom_textedit.size();ii++) {
+                if(ii>=settingsdialog->udp_for_decoded_messages_address.size())continue;
+                if(ii>=settingsdialog->udp_for_decoded_messages_port.size())continue;
+                QUdpSocket *sock=udpsockets_bottom_textedit[ii].data();
+                if((!sock->isOpen())||(!sock->isWritable())) {
+                    sock->close();
+                    sock->connectToHost(settingsdialog->udp_for_decoded_messages_address[ii], settingsdialog->udp_for_decoded_messages_port[ii]);
+                }
+                if((sock->isOpen())&&(sock->isWritable()))sock->write((humantext+"\n").toLatin1().data());
+            }
+        }
+        ui->inputwidget->appendPlainText(humantext);
+        log(humantext);
+    }
 }
 
 void MainWindow::log(QString &text)

From 4dd1d0cd8cc934b61372740d91a1a4a3d8026ec0 Mon Sep 17 00:00:00 2001
From: Roethenbach <64754659+Roethenbach@users.noreply.github.com>
Date: Thu, 30 Sep 2021 15:04:31 +0200
Subject: [PATCH 2/2] Added JSON format output

---
 JAERO/gui_classes/settingsdialog.ui | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/JAERO/gui_classes/settingsdialog.ui b/JAERO/gui_classes/settingsdialog.ui
index a427732..1b61788 100644
--- a/JAERO/gui_classes/settingsdialog.ui
+++ b/JAERO/gui_classes/settingsdialog.ui
@@ -153,6 +153,11 @@
           <string>3</string>
          </property>
         </item>
+        <item>
+         <property name="text">
+          <string>4</string>
+         </property>
+        </item>
        </widget>
        <widget class="QCheckBox" name="checkBoxbeepontextmessage">
         <property name="geometry">