TRACE zobrazeni funkcni

This commit is contained in:
Pavel Brychta 2018-06-28 09:01:26 +02:00
parent d9f6a56241
commit 42a0dd9681
5 changed files with 128 additions and 31 deletions

View File

@ -59,6 +59,47 @@ span.y {
span.b {
color: black;
}
/* Trace elementy */
table.trace {
font-family: Arial;
font-weight: bold;
}
.trace tr {
line-height: 16px;
}
td.tr_err {
border-left: 5px solid red;
padding-left: 5px;
background: #ffcccc;
}
td.tr_inf {
border-left: 5px solid green;
padding-left: 5px;
background: lightgreen;
}
td.tr_warn {
border-left: 5px solid yellow;
padding-left: 5px;
background: lightyellow;
}
td.tr_dbg {
border-left: 5px solid black;
padding-left: 5px;
background: lightgray;
}
td.tr_tm {
text-align: right;
width: 5%;
}
</style>
<meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
@ -69,15 +110,34 @@ span.b {
function ping() {
if (connected) {
if (document.getElementById("live").checked)
connection.send('mem');
connection.send('status');
else
connection.send('ping');
setTimeout(ping, 5000);
}
}
function getTraceTime(stamp) {
var hours = Math.trunc((stamp % 86400000) / 3600000); // 86400 equals secs per day
var minutes = Math.trunc((stamp % 3600000) / 60000); // 3600 equals secs per minute
var seconds = Math.trunc((stamp % 60000) / 1000);
var ms = stamp % 1000;
var t;
t = hours.toLocaleString(undefined, {
minimumIntegerDigits: 2
}) + ':' + minutes.toLocaleString(undefined, {
minimumIntegerDigits: 2
}) + ':' + seconds.toLocaleString(undefined, {
minimumIntegerDigits: 2
}) + '.' + ms.toLocaleString(undefined, {
minimumIntegerDigits: 3
});
return t;
}
function connect() {
connection = new WebSocket('ws://' + window.location.hostname + ', ["arduino"]');
connection = new WebSocket('ws://' + window.location.hostname + '/wss', ['arduino']);
connection.onopen = function() {
console.log('WS Connected');
@ -94,14 +154,42 @@ span.b {
connection.onmessage = function(e) {
var d = JSON.parse(e.data);
if (d.type == 'trace') {
document.getElementById('trace').innerHTML = d.text;
var h = '<table class="trace" style="width:100%;">';
for (var i = 0; i < d.data.length; i++) {
h += '<tr><td class="tr_tm">';
h += getTraceTime(d.data[i].t);
h += '</td><td class="';
switch (d.data[i].s) {
case 0: // error
h += 'tr_err';
break;
case 1: // warning
h += 'tr_warn';
break;
case 2: // info
h += 'tr_inf';
break;
case 3: // debug
h += 'tr_dbg';
break;
case 4: // debug more
h += 'tr_dbg';
break;
}
h += '">' + d.data[i].d;
h += '</td></tr>'
}
h += '</table>';
document.getElementById('trace').innerHTML = h;
}
if (d.type == 'info') {
document.getElementById('reset').innerHTML = d.reset;
document.getElementById('flash').innerHTML = d.flash;
document.getElementById('ram').innerHTML = d.ram;
}
if (d.type == 'mem') {
if (d.type == 'status') {
// document.getElementById('reset').innerHTML = d.reset;
// document.getElementById('flash').innerHTML = d.flash;
document.getElementById('ram').innerHTML = d.ram;
}
}

View File

@ -6,11 +6,9 @@ platform = espressif8266
board = esp12e
framework = arduino
board_build.flash_mode = dio
upload_port = com25
;upload_port = bwrpn5325.local
;upload_port = bwrt00.local
; upload_port = 192.168.1.197
; upload_port = /dev/ttyUSB0
;upload_port = com25
upload_port = finger.local
;upload_port = /dev/ttyUSB0
upload_speed = 230400
lib_deps =
http://git.xpablo.cz/pablo2048/Interval.git

View File

@ -21,6 +21,8 @@
#define HTTP_PORT 80 // port, na kterem pobezi HTTP (www) server
#define USE_EDITOR // implementujeme HTML editor
#ifdef DEBUG_BUILD
#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
@ -70,4 +72,7 @@
#define CORS_DEBUG
#define TX_PIN 1
#define RX_PIN 3
#endif

View File

@ -153,14 +153,13 @@ void setserialport(int32_t speed, int32_t databits, int32_t parity, int32_t stop
TRACE(TRACE_DEBUG, "Interval set to %i us", (int)work);
baudtiming = work;
// skutecne zmenime nastaveni serioveho portu
Serial.flush();
SP.flush();
// delay(200);
Serial.end();
SP.end();
delay(10); // 100
Serial.begin(spd, (SerialConfig)serialMode);
Serial.setDebugOutput(false);
SP.begin(spd, (SerialConfig)serialMode);
delay(10); // 100
Serial.flush();
SP.flush();
serial_tx = 0;
serial_rx = 0;
}
@ -169,9 +168,9 @@ void setserialport(int32_t speed, int32_t databits, int32_t parity, int32_t stop
void sputchar(uint8_t c)
{
if (fromNet.empty() && Serial.availableForWrite())
if (fromNet.empty() && SP.availableForWrite())
{
Serial.write(c);
SP.write(c);
++serial_tx;
}
else
@ -305,12 +304,11 @@ uint8_t setgetcontrol(uint8_t _ctrl)
void vsp_init()
{
Serial.begin(INITIAL_SERIAL_SPEED);
SP.begin(INITIAL_SERIAL_SPEED);
#ifdef RX_BUFFER_SIZE
int rxsize = Serial.setRxBufferSize(RX_BUFFER_SIZE);
int rxsize = SP.setRxBufferSize(RX_BUFFER_SIZE);
TRACE(TRACE_INFO, F("RX buffser size set to %i"), rxsize);
#endif
Serial.setDebugOutput(false);
// Inicializace NVT parametru
netterm.init(setserialport, sputchar, nputchar);
@ -320,7 +318,7 @@ void vsp_init()
void vsp_loop()
{
int len;
unsigned int len;
// kontrola, zda se nepripojil kilent
if (server.hasClient())
@ -339,10 +337,10 @@ void vsp_loop()
}
// testovani, zda ma UART nejaka data
if (int len = Serial.available())
if (len = SP.available())
{
size_t will_copy = (len < sizeof(sbuf)) ? len : sizeof(sbuf);
Serial.readBytes(sbuf, will_copy);
SP.readBytes(sbuf, will_copy);
netterm.createsendstream(sbuf, will_copy);
serial_rx += will_copy;
}
@ -370,18 +368,18 @@ void vsp_loop()
if (client && client.connected())
{
uint32_t t = micros();
// uint32_t t = micros();
client.write((const uint8_t *)&nvttx[0], read); // data do TCP soketu
// TRACE(TRACE_INFO, F("TX: %i, took %i us"), read, (int)micros() - t);
}
}
// testovani, zda neposlat nejaka data do serioveho rozhrani
if (!fromNet.empty() && (len = Serial.availableForWrite()))
if (!fromNet.empty() && (len = SP.availableForWrite()))
{
size_t will_copy = (len < sizeof(sbuf)) ? len : sizeof(sbuf);
will_copy = fromNet.read((char *)sbuf, will_copy);
Serial.write(sbuf, will_copy);
SP.write(sbuf, will_copy);
serial_tx += will_copy;
}

View File

@ -49,7 +49,9 @@
#include "FS.h"
#endif
#include "obfuscator.h"
#if (TX_PIN != 1) || (RX_PIN != 3)
#include <SoftwareSerial.h>
#endif
// Definice obsazeni EEPROM
#define elementSize(type, element) sizeof(((type *)0)->element)
#define countof(a) (sizeof(a) / sizeof(a[0]))
@ -90,6 +92,12 @@ uint32_t loopCounter = 0;
uint32_t loopCounterLast = 0;
uint32_t loopCounterMax = 1;
// **** sem je mozne dopsat dalsi globalni promenne
#if (TX_PIN != 1) || (RX_PIN != 3)
SoftwareSerial sport(TX_PIN, RX_PIN);
#define SP sport
#else
#define SP Serial
#endif
void wificfgcb(wificonfigstate_t state)
{