diff options
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | client/Client.cpp | 26 | ||||
-rw-r--r-- | client/Client.h | 15 | ||||
-rw-r--r-- | client/HandleMessage.h | 2 | ||||
-rw-r--r-- | client/client.pro | 1 | ||||
-rw-r--r-- | client/consts.h | 5 | ||||
-rw-r--r-- | client/dbconnector.h | 1 | ||||
-rw-r--r-- | client/dbconnector.ui | 4 | ||||
-rw-r--r-- | shared/wifi.def.h (renamed from stm32f091/wifi.def.h) | 1 | ||||
-rw-r--r-- | stm32f091/consts.h | 5 | ||||
-rw-r--r-- | stm32f091/esp8266.c | 2 | ||||
-rw-r--r-- | stm32f091/readme.md | 3 | ||||
-rw-r--r-- | stm32f091/util.h | 4 |
13 files changed, 40 insertions, 33 deletions
@@ -6,14 +6,16 @@ # stm32-specific files stm32f091/main.elf stm32f091/main.bin -stm32f091/wifi.h # client-specific files client/makefile client/client client/moc_* +client/ui_* +**/.user # others +shared/wifi.h shared/main .qmake.stash .vscode/.cortex-debug.registers.state.json diff --git a/client/Client.cpp b/client/Client.cpp index 46952b6..4d948fa 100644 --- a/client/Client.cpp +++ b/client/Client.cpp @@ -1,5 +1,8 @@ -#include "Client.h" +#include <stdio.h> +#include "Client.h" +#include "consts.h" +#include "../shared/util.h" Client::Client(QObject *parent) : QObject(parent) @@ -17,8 +20,6 @@ Client::~Client() void Client::ClientEcho() { - QTime time1 = QTime::currentTime(); - NextMinute = time1.minute()+1; connect(timer, SIGNAL(timeout()),this,SLOT(timeFunction())); // connect timer to time every minute @@ -36,22 +37,19 @@ void Client::ClientEcho() void Client::timeFunction() { - if(_missingRecords>1){ - totalRecords = _missingRecords; - } - else{ - totalRecords=1; - } - QByteArray msgToSend= (msg.toUtf8() + totalRecords + offsetRecords +'\n'); + totalRecords = WS_MAX(1, _missingRecords); + + char* msg = NULL; + asprintf(&msg, "last-records %x %x\n", totalRecords, offsetRecords); + QByteArray msgToSend = msg; + free(msg); QTime time = QTime::currentTime(); - qint16 currentMinute = time.minute(); + qint16 currentSeconds = time.second(); + if((currentSeconds % WS_CLIENT_STATION_POLL_INTERVAL) == 1){ - if(currentMinute==NextMinute){ socket->connectToHost(networkAddress, tcpPortAddress); - socket->write(msgToSend); - NextMinute++; } } diff --git a/client/Client.h b/client/Client.h index 10af3e1..b90e5e9 100644 --- a/client/Client.h +++ b/client/Client.h @@ -1,5 +1,6 @@ #ifndef CLIENT_H #define CLIENT_H + #include <QTcpSocket> #include <QTextStream> #include <QTimer> @@ -7,6 +8,7 @@ #include <QSqlQuery> #include "HandleMessage.h" +#include "../shared/wifi.h" // class client for wheather station class Client : public QObject @@ -27,19 +29,14 @@ private: QTcpSocket *socket; // tcpsocket for communicating QTimer *timer; // timer to read every second what time it curruntly is. - qint16 NextMinute; // timing for next minute // qint16 currentMinute; // timing for currentMinute HandleMessage Handlemsg; // add HandleMessage to Client.h - int tcpPortAddress = 80; // port of communication via tcp - QString networkAddress = "192.168.137.76"; // network address for commincation via tcp - - QString msg = "last-records "; // part of mesage to send to wheather staion - char totalRecords = '1'; // total records to ask wheather station - char offsetRecords = '0'; // offset from reqeusting records - - + int tcpPortAddress = WS_SERVER_PORT; // port of communication via tcp + QString networkAddress = WS_ESP8266_WLAN_IP; // network address for commincation via tcp + uint8_t totalRecords = 1; // total records to ask wheather station + uint8_t offsetRecords = 0; // offset from reqeusting records }; #endif // CLIENT_H diff --git a/client/HandleMessage.h b/client/HandleMessage.h index bfc5063..f228633 100644 --- a/client/HandleMessage.h +++ b/client/HandleMessage.h @@ -16,8 +16,6 @@ public: QString ParseMessage(const QString , int); void ParseToSQL(QString); - - private: }; diff --git a/client/client.pro b/client/client.pro index 76f2b56..8305949 100644 --- a/client/client.pro +++ b/client/client.pro @@ -3,6 +3,7 @@ QT += core gui sql charts network HEADERS += \ Client.h \ HandleMessage.h \ + consts.h \ dbconnector.h \ main.h \ mainwindow.h diff --git a/client/consts.h b/client/consts.h new file mode 100644 index 0000000..7ee81c8 --- /dev/null +++ b/client/consts.h @@ -0,0 +1,5 @@ +#pragma once + +// delay between new record request in seconds +#define WS_CLIENT_STATION_POLL_INTERVAL 10 + diff --git a/client/dbconnector.h b/client/dbconnector.h index 4737d6f..5b9b1cf 100644 --- a/client/dbconnector.h +++ b/client/dbconnector.h @@ -8,7 +8,6 @@ #define WS_ESP8266_WLAN_IP "129.168.0.1" - namespace Ui { class dbConnector; } diff --git a/client/dbconnector.ui b/client/dbconnector.ui index 22e0a64..fe9c05e 100644 --- a/client/dbconnector.ui +++ b/client/dbconnector.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>362</width> - <height>273</height> + <width>401</width> + <height>288</height> </rect> </property> <property name="windowTitle"> diff --git a/stm32f091/wifi.def.h b/shared/wifi.def.h index 61e1706..aead0b6 100644 --- a/stm32f091/wifi.def.h +++ b/shared/wifi.def.h @@ -4,4 +4,5 @@ #define WS_ESP8266_WLAN_PASSWD "12345678" // #define WS_ESP8266_WLAN_MAC "f2:9b:89:47:c4:f3" // #define WS_ESP8266_WLAN_IP "192.168.2.69" +#define WS_SERVER_PORT 80 diff --git a/stm32f091/consts.h b/stm32f091/consts.h index 3d2ef5a..6d5b8d2 100644 --- a/stm32f091/consts.h +++ b/stm32f091/consts.h @@ -1,9 +1,10 @@ #pragma once -#include "wifi.h" +#include "../shared/wifi.h" +#include "util.h" -#define WS_SERVER_PORT "80" #define WS_SERVER_MAX_CHANNELS 4 +#define WS_SERVER_PORT_STR WS_MTS(WS_SERVER_PORT) #define WS_DMA_RX_BUFFER_SIZE 100 #define WS_DMA_TX_BUFFER_SIZE 1024 diff --git a/stm32f091/esp8266.c b/stm32f091/esp8266.c index 74ec347..8ff9547 100644 --- a/stm32f091/esp8266.c +++ b/stm32f091/esp8266.c @@ -77,7 +77,7 @@ void ws_esp8266_ap_client_mode() { void ws_esp8266_start_tcp_server() { ws_esp8266_send_seq("AT+CIPSERVER=0\r\n"); // stop tcp server (if running) ws_esp8266_send_seq("AT+CIPMUX=1\r\n"); // enable multiplexing (allow multiple connections) - ws_esp8266_send_seq("AT+CIPSERVER=1," WS_SERVER_PORT "\r\n"); // start tcp server + ws_esp8266_send_seq("AT+CIPSERVER=1," WS_SERVER_PORT_STR "\r\n"); // start tcp server } void ws_esp8266_set_mac() { diff --git a/stm32f091/readme.md b/stm32f091/readme.md index d2758b5..e6af60f 100644 --- a/stm32f091/readme.md +++ b/stm32f091/readme.md @@ -3,7 +3,8 @@ - uses make - make sure to initialize the git submodules - all warnings from source files in the lib/ subfolder are hidden -- copy wifi.def.h to wifi.h and edit the network credentials +- copy ../shared/wifi.def.h to ../shared/wifi.h and edit the network + credentials - the initialization code is broken in some way which means that a soft reset is required for the uart dma to work, either (a) press the reset button on the development board after plugging in, or (b) run `st-flash reset` after diff --git a/stm32f091/util.h b/stm32f091/util.h index 11bee6f..9c15f8b 100644 --- a/stm32f091/util.h +++ b/stm32f091/util.h @@ -8,6 +8,10 @@ #include "setup.h" #include "../shared/util.h" +// macro to string macro's +#define WS_MTS_EXPAND(x) #x +#define WS_MTS(x) WS_MTS_EXPAND(x) + #define WS_DBG_TTY_COLOR_BLK 0x0 #define WS_DBG_TTY_COLOR_RED 0x1 #define WS_DBG_TTY_COLOR_GRN 0x2 |