Files
Qt_keyboard/MID/Mid_Ble.cpp
2026-04-03 09:26:10 +08:00

50 lines
1.2 KiB
C++

#include "MID/Mid_Ble.h"
#include <QtCore/QStringList>
QString Mid_GetBleOpcodeText(quint8 Opcode)
{
return QStringLiteral("Opcode 0x%1")
.arg(Opcode, 2, 16, QLatin1Char('0'))
.toUpper();
}
QString Mid_NormalizeBleAddress(const QString& Text)
{
QString HexText;
HexText.reserve(Text.size());
for (const QChar Character : Text.trimmed())
{
if (Character.isDigit() ||
((Character >= QLatin1Char('a')) && (Character <= QLatin1Char('f'))) ||
((Character >= QLatin1Char('A')) && (Character <= QLatin1Char('F'))))
{
HexText.append(Character.toUpper());
}
}
return HexText.size() == 12 ? HexText : QString();
}
QString Mid_FormatBleAddress(const QString& Address)
{
const QString Normalized = Mid_NormalizeBleAddress(Address);
if (Normalized.isEmpty())
{
return QString();
}
QStringList PartList;
for (int Index = 0; Index < Normalized.size(); Index += 2)
{
PartList.append(Normalized.mid(Index, 2));
}
return PartList.join(QLatin1Char(':'));
}
bool Mid_IsBleAddressValid(const QString& Address)
{
return !Mid_NormalizeBleAddress(Address).isEmpty();
}