Rabbit Remote Control
0.1.0-bate14
Toggle main menu visibility
Loading...
Searching...
No Matches
Plugins
WakeOnLan
WakeOnLanQt.cpp
1
// Author: Kang Lin <kl222@126.com>
2
3
#include "WakeOnLanQt.h"
4
5
#include <QLoggingCategory>
6
#include <QUdpSocket>
7
8
static
Q_LOGGING_CATEGORY(log,
"WOL"
)
9
CWakeOnLanQt
::
CWakeOnLanQt
(const QString &szBroadcastAddress, QObject *parent)
10
: QObject(parent),
CWakeOnLan
(szBroadcastAddress.toStdString())
11
{}
12
13
void
CWakeOnLanQt::SetBroadcastAddress(
const
QString &szBroadcastAddress)
14
{
15
CWakeOnLan::SetBroadcastAddress(szBroadcastAddress.toStdString());
16
}
17
18
QString CWakeOnLanQt::SetBroadcastAddress(
19
const
QString &szIP,
const
QString &szMask)
20
{
21
return
CWakeOnLan::SetBroadcastAddress(
22
szIP.toStdString(), szMask.toStdString()).c_str();
23
}
24
25
bool
CWakeOnLanQt::SendMagicPacket
(
const
QString &szMac, uint16_t portNum) {
26
return
CWakeOnLan::SendMagicPacket
(szMac.toStdString(), portNum);
27
}
28
29
bool
CWakeOnLanQt::SendSecureMagicPacket
(
const
QString &szMac,
30
const
QString &szPassword,
31
uint16_t portNum) {
32
if
(szPassword.length() < 6) {
33
qCritical(log) <<
"The password must be 6. current length:"
34
<< szPassword.length();
35
return
false
;
36
}
37
// character
38
if
(szPassword.length() == 6) {
39
QByteArray data = szPassword.toLocal8Bit().toHex(
':'
);
40
return
SendSecureMagicPacket
(szMac.toStdString().c_str(),
41
data.data(), portNum);
42
}
43
// Hexadecimal characters
44
return
CWakeOnLan::SendSecureMagicPacket
(szMac.toStdString(),
45
szPassword.toStdString(), portNum);
46
}
47
48
int
CWakeOnLanQt::SendPacket(
const
char
*data, int64_t size,
49
std::string addr, uint16_t port)
50
{
51
// Send the packet via UDP
52
QUdpSocket udpSocket;
53
int
nRet = udpSocket.writeDatagram(data, size,
54
QHostAddress(addr.c_str()), port);
55
return
nRet;
56
}
CWakeOnLanQt
Definition
WakeOnLanQt.h:11
CWakeOnLanQt::SendMagicPacket
bool SendMagicPacket(const QString &szMac, uint16_t portNum=9)
SendMagicPacket.
Definition
WakeOnLanQt.cpp:25
CWakeOnLanQt::SendSecureMagicPacket
bool SendSecureMagicPacket(const QString &szMac, const QString &szPassword, uint16_t portNum=9)
SendSecureMagicPacket.
Definition
WakeOnLanQt.cpp:29
CWakeOnLan
Definition
WakeOnLan.h:11
CWakeOnLan::SendSecureMagicPacket
bool SendSecureMagicPacket(const std::string &szMac, const std::string szPassword, uint16_t portNum=9)
SendSecureMagicPacket.
Definition
WakeOnLan.cpp:70
CWakeOnLan::SendMagicPacket
bool SendMagicPacket(const std::string &szMac, uint16_t portNum=9)
SendMagicPacket.
Definition
WakeOnLan.cpp:66
Author: Kang Lin (kl222@126.com)
Copyright (c) Kang Lin Studios All Rights Reserved