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 "DisplayPanel.h"
|
||||||
#include "OnlineConnector.h"
|
#include "OnlineConnector.h"
|
||||||
#include "UsbConnector.h"
|
#include "UsbConnector.h"
|
||||||
|
#include "LocalConnector.h"
|
||||||
#include "MonitorItems.h"
|
#include "MonitorItems.h"
|
||||||
#include "StatusLed.h"
|
#include "StatusLed.h"
|
||||||
#include "WifiConfigManager.h"
|
#include "WifiConfigManager.h"
|
||||||
|
@ -9,14 +10,15 @@
|
||||||
#include "FuncButton.h"
|
#include "FuncButton.h"
|
||||||
|
|
||||||
DisplayPanel* displayPanel;
|
DisplayPanel* displayPanel;
|
||||||
OnlineConnector* onlineConnector;
|
|
||||||
UsbConnector* usbConnector;
|
|
||||||
|
|
||||||
StatusLed* statusLed;
|
StatusLed* statusLed;
|
||||||
UserData* userdataManager;
|
UserData* userdataManager;
|
||||||
WifiConfigManager* wifiConfigManager;
|
WifiConfigManager* wifiConfigManager;
|
||||||
FuncButton* funcButton;
|
FuncButton* funcButton;
|
||||||
|
|
||||||
|
OnlineConnector* onlineConnector;
|
||||||
|
UsbConnector* usbConnector;
|
||||||
|
LocalConnector* localConnector;
|
||||||
|
|
||||||
RunMode runMode;
|
RunMode runMode;
|
||||||
|
|
||||||
void RunMode_Usb_Setup()
|
void RunMode_Usb_Setup()
|
||||||
|
@ -36,6 +38,12 @@ void RunMode_Online_Setup()
|
||||||
|
|
||||||
void RunMode_Local_Setup()
|
void RunMode_Local_Setup()
|
||||||
{
|
{
|
||||||
|
if (!userdataManager->WifiInfoValid()) {
|
||||||
|
wifiConfigManager = new WifiConfigManager();
|
||||||
|
wifiConfigManager->ProcessConfig();
|
||||||
|
} else {
|
||||||
|
localConnector = new LocalConnector();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
|
@ -102,6 +110,14 @@ void RunMode_Online_Loop()
|
||||||
|
|
||||||
void RunMode_Local_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()
|
void loop()
|
||||||
|
|
Loading…
Reference in New Issue