add local mode
This commit is contained in:
parent
80fe04ed02
commit
59aa8c6c1c
|
@ -0,0 +1,26 @@
|
|||
#include <Arduino.h>
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <WiFiUdp.h>
|
||||
|
||||
struct UdpData
|
||||
{
|
||||
uint8_t cpuPercent;
|
||||
uint8_t memPercent;
|
||||
uint8_t disk0Percent;
|
||||
uint8_t disk1Percent;
|
||||
uint32_t diskReadRate;
|
||||
uint32_t diskWriteRate;
|
||||
uint32_t netSentRate;
|
||||
uint32_t netReceiveRate;
|
||||
};
|
||||
|
||||
class LocalConnector
|
||||
{
|
||||
public:
|
||||
LocalConnector();
|
||||
void FetchNewData();
|
||||
UdpData* data;
|
||||
|
||||
private:
|
||||
WiFiUDP Udp;
|
||||
};
|
|
@ -0,0 +1,56 @@
|
|||
#include "LocalConnector.h"
|
||||
#include "StatusLed.h"
|
||||
#include "UserData.h"
|
||||
#include "DisplayPanel.h"
|
||||
|
||||
extern DisplayPanel* displayPanel;
|
||||
extern UserData* userdataManager;
|
||||
extern StatusLed* statusLed;
|
||||
|
||||
static byte packRecv[256];
|
||||
|
||||
LocalConnector::LocalConnector()
|
||||
{
|
||||
WiFi.begin(userdataManager->GetWifiSsid(), userdataManager->GetWifiPasswd());
|
||||
|
||||
statusLed->SetBlinkRate(StatusLed::BlinkRate::Rate2Hz);
|
||||
while (WiFi.status() != WL_CONNECTED)
|
||||
{
|
||||
delay(1000);
|
||||
}
|
||||
statusLed->SetBlinkRate(StatusLed::BlinkRate::RateAlwaysOff);
|
||||
|
||||
displayPanel->DisplayDiskRate((uint32_t)(WiFi.localIP()[0]) * 1024, (uint32_t)(WiFi.localIP()[1]) * 1024);
|
||||
displayPanel->DisplayNetRate((uint32_t)(WiFi.localIP()[2]) * 1024, (uint32_t)(WiFi.localIP()[3]) * 1024);
|
||||
|
||||
delay(2000);
|
||||
|
||||
data = (UdpData*)(packRecv + 4);
|
||||
uint32_t port = 32737;
|
||||
Udp.begin(port);
|
||||
}
|
||||
|
||||
void LocalConnector::FetchNewData()
|
||||
{
|
||||
int packetSize = Udp.parsePacket();
|
||||
if (packetSize) {
|
||||
int len = Udp.read(packRecv, 255);
|
||||
byte packSend[2];
|
||||
|
||||
if (len <= 0) {
|
||||
return;
|
||||
}
|
||||
if (packRecv[0] == 0x19 && packRecv[1] == 0x26 && packRecv[2] == 0x08 && packRecv[3] == 0x17) {
|
||||
packSend[0] = 0x00;
|
||||
packSend[1] = 0x00;
|
||||
} else {
|
||||
packSend[0] = 0x11;
|
||||
packSend[1] = 0x22;
|
||||
memset(packRecv, 0, sizeof(packRecv));
|
||||
}
|
||||
|
||||
Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
|
||||
Udp.write(packSend, 2);
|
||||
Udp.endPacket();
|
||||
}
|
||||
}
|
22
src/main.cpp
22
src/main.cpp
|
@ -2,6 +2,7 @@
|
|||
#include "DisplayPanel.h"
|
||||
#include "OnlineConnector.h"
|
||||
#include "UsbConnector.h"
|
||||
#include "LocalConnector.h"
|
||||
#include "MonitorItems.h"
|
||||
#include "StatusLed.h"
|
||||
#include "WifiConfigManager.h"
|
||||
|
@ -9,14 +10,15 @@
|
|||
#include "FuncButton.h"
|
||||
|
||||
DisplayPanel* displayPanel;
|
||||
OnlineConnector* onlineConnector;
|
||||
UsbConnector* usbConnector;
|
||||
|
||||
StatusLed* statusLed;
|
||||
UserData* userdataManager;
|
||||
WifiConfigManager* wifiConfigManager;
|
||||
FuncButton* funcButton;
|
||||
|
||||
OnlineConnector* onlineConnector;
|
||||
UsbConnector* usbConnector;
|
||||
LocalConnector* localConnector;
|
||||
|
||||
RunMode runMode;
|
||||
|
||||
void RunMode_Usb_Setup()
|
||||
|
@ -36,6 +38,12 @@ void RunMode_Online_Setup()
|
|||
|
||||
void RunMode_Local_Setup()
|
||||
{
|
||||
if (!userdataManager->WifiInfoValid()) {
|
||||
wifiConfigManager = new WifiConfigManager();
|
||||
wifiConfigManager->ProcessConfig();
|
||||
} else {
|
||||
localConnector = new LocalConnector();
|
||||
}
|
||||
}
|
||||
|
||||
void setup()
|
||||
|
@ -102,6 +110,14 @@ void RunMode_Online_Loop()
|
|||
|
||||
void RunMode_Local_Loop()
|
||||
{
|
||||
localConnector->FetchNewData();
|
||||
|
||||
displayPanel->DisplayCpuPercent(localConnector->data->cpuPercent);
|
||||
displayPanel->DisplayMemPercent(localConnector->data->memPercent);
|
||||
displayPanel->DisplayDisk0Percent(localConnector->data->disk0Percent);
|
||||
displayPanel->DisplayDisk1Percent(localConnector->data->disk1Percent);
|
||||
displayPanel->DisplayDiskRate(localConnector->data->diskReadRate, localConnector->data->diskWriteRate);
|
||||
displayPanel->DisplayNetRate(localConnector->data->netSentRate, localConnector->data->netReceiveRate);
|
||||
}
|
||||
|
||||
void loop()
|
||||
|
|
Loading…
Reference in New Issue