57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
#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();
|
|
}
|
|
}
|