xmlrpc add tx text

* remove dependency on inserting text into Tx panel
    - causes slow response to large block transfers
      such as might be used by flmsg AutoSend process
    - show % of block sent on status bar
pull/4/head
David Freese 2016-05-28 19:48:41 -05:00
rodzic 01245fe7b5
commit 9c959afcd8
3 zmienionych plików z 28 dodań i 3 usunięć

Wyświetl plik

@ -49,6 +49,7 @@ private:
extern void xmlrpc_set_qsy(long long rfc); extern void xmlrpc_set_qsy(long long rfc);
extern int xmltest_char(); extern int xmltest_char();
extern bool xmltest_char_available; extern bool xmltest_char_available;
extern void reset_xmlchars();
extern int number_of_samples(std::string s); extern int number_of_samples(std::string s);
extern bool flmsg_online; extern bool flmsg_online;

Wyświetl plik

@ -1725,10 +1725,29 @@ public:
static string xmlchars; static string xmlchars;
bool xmltest_char_available; bool xmltest_char_available;
static size_t pxmlchar = 0; static size_t pxmlchar = 0;
static char xml_status_msg[50];
int xmltest_char() int xmltest_char()
{ {
if (pxmlchar >= xmlchars.length() ) return -3; if (xmlchars.empty() || !xmltest_char_available)
return xmlchars[pxmlchar++] & 0xFF; return 0;
if (pxmlchar >= xmlchars.length() ) {
xmlchars.clear();
pxmlchar = 0;
xmltest_char_available = false;
return -3;
}
pxmlchar++;
snprintf(xml_status_msg, sizeof(xml_status_msg), "%d%% sent",
100*pxmlchar/xmlchars.length());
put_status(xml_status_msg, 1.0);
return xmlchars[pxmlchar] & 0xFF;
}
void reset_xmlchars()
{
xmlchars.clear();
pxmlchar = 0;
xmltest_char_available = false;
} }
int number_of_samples( string s) int number_of_samples( string s)
@ -2944,7 +2963,10 @@ public:
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval) void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
{ {
XMLRPC_LOCK; XMLRPC_LOCK;
REQ_SYNC(&FTextTX::add_text, TransmitText, params.getString(0)); // REQ_SYNC(&FTextTX::add_text, TransmitText, params.getString(0));
xmlchars = params.getString(0);
xmltest_char_available = true;
pxmlchar = 0;
*retval = xmlrpc_c::value_nil(); *retval = xmlrpc_c::value_nil();
} }
}; };

Wyświetl plik

@ -71,6 +71,7 @@
#include "flslider2.h" #include "flslider2.h"
#include "debug.h" #include "debug.h"
#include "rigsupport.h" #include "rigsupport.h"
#include "xmlrpc.h"
using namespace std; using namespace std;
@ -1245,6 +1246,7 @@ void xmtrcv_cb(Fl_Widget *w, void *vi)
} }
else { else {
TransmitText->clear(); TransmitText->clear();
reset_xmlchars();
if (arq_text_available) if (arq_text_available)
AbortARQ(); AbortARQ();
if (progStatus.timer) if (progStatus.timer)