Added Logout
This commit is contained in:
parent
bc00d25ded
commit
fc94e603c5
@ -175,12 +175,49 @@ void MessageHelper::createLoginMessage() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArrayList const &MessageHelper::createLoginMessageChunksToSend(char etx) {
|
void MessageHelper::createLogoutMessage() {
|
||||||
|
m_logoutMessage.clear();
|
||||||
|
|
||||||
|
m_logoutMessage.push_back((char)0x85); // 5 in 0x85 is the size
|
||||||
|
m_logoutMessage = m_loginMessage.append(QByteArray("Logout"));
|
||||||
|
|
||||||
|
m_loginMessage.push_back((char)0x04);
|
||||||
|
m_loginMessage = m_loginMessage.append(QByteArray("Time"));
|
||||||
|
m_loginMessage.push_back((char)0x00);
|
||||||
|
m_loginMessage.push_back((char)0x13);
|
||||||
|
|
||||||
|
QDateTime current = QDateTime::currentDateTime();
|
||||||
|
// TODO: wieder entfernen
|
||||||
|
current.setTime(QTime(12, 0, 0));
|
||||||
|
current.setDate(QDate(2024, 6, 12));
|
||||||
|
|
||||||
|
QByteArray time(current.toString(Qt::ISODate).toStdString().c_str());
|
||||||
|
time[10] = ' ';
|
||||||
|
m_logoutMessage = m_logoutMessage.append(time);
|
||||||
|
|
||||||
|
m_loginMessage.push_back((char)0x00);
|
||||||
|
|
||||||
|
if (DBG_LEVEL >= DBG_INFORMATION) {
|
||||||
|
qCritical() << DBG_HEADER << "loginMessage" << m_logoutMessage.toHex(':');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArrayList const &MessageHelper::createMessageChunksToSend(AsyncPosCommand cmd, char etx) {
|
||||||
QByteArray encryptedPacketID(QByteArray("\x01\x02\x03\x04\x05\x06\x07\x08"));
|
QByteArray encryptedPacketID(QByteArray("\x01\x02\x03\x04\x05\x06\x07\x08"));
|
||||||
|
|
||||||
m_messageChunkList.clear();
|
m_messageChunkList.clear();
|
||||||
|
|
||||||
|
switch (cmd) {
|
||||||
|
case (int)MessageHelper::AsyncPosCommand::LOGIN:
|
||||||
createLoginMessage();
|
createLoginMessage();
|
||||||
createRawPacket(PacketType::POS_ECR, encryptedPacketID, m_loginMessage);
|
createRawPacket(PacketType::POS_ECR, encryptedPacketID, m_loginMessage);
|
||||||
|
break;
|
||||||
|
case (int)MessageHelper::AsyncPosCommand::LOGOUT:
|
||||||
|
createLogoutMessage();
|
||||||
|
createRawPacket(PacketType::POS_ECR, encryptedPacketID, m_logoutMessage);
|
||||||
|
break;
|
||||||
|
default:;
|
||||||
|
}
|
||||||
|
|
||||||
if (DBG_LEVEL >= DBG_DEBUG) {
|
if (DBG_LEVEL >= DBG_DEBUG) {
|
||||||
qCritical() << DBG_HEADER << m_rawPacket.toHex(':');
|
qCritical() << DBG_HEADER << m_rawPacket.toHex(':');
|
||||||
@ -296,6 +333,14 @@ QByteArrayList const &MessageHelper::createLoginMessageChunksToSend(char etx) {
|
|||||||
return m_messageChunkList;
|
return m_messageChunkList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QByteArrayList MessageHelper::createLoginMessageChunksToSend(char etx) {
|
||||||
|
return createMessageChunksToSend(AsyncPosCommand::LOGIN, etx);
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArrayList MessageHelper::createLogoutMessageChunksToSend(char etx) {
|
||||||
|
return createMessageChunksToSend(AsyncPosCommand::LOGOUT, etx);
|
||||||
|
}
|
||||||
|
|
||||||
bool MessageHelper::insertEncryptedPacketID(QByteArray const &encryptedPacketID) {
|
bool MessageHelper::insertEncryptedPacketID(QByteArray const &encryptedPacketID) {
|
||||||
if (encryptedPacketID.size() == PACKET_ID_SIZE) {
|
if (encryptedPacketID.size() == PACKET_ID_SIZE) {
|
||||||
// m_rawPacket has already full length
|
// m_rawPacket has already full length
|
||||||
|
@ -17,6 +17,11 @@ public:
|
|||||||
// POS_HOST_FORMAT_1_UNENCRYPTED = 0x21
|
// POS_HOST_FORMAT_1_UNENCRYPTED = 0x21
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum AsyncPosCommand : std::uint8_t {
|
||||||
|
LOGIN = 0,
|
||||||
|
LOGOUT = 1
|
||||||
|
};
|
||||||
|
|
||||||
explicit MessageHelper(QString const &posID = "T-TPS-SELF2002in",
|
explicit MessageHelper(QString const &posID = "T-TPS-SELF2002in",
|
||||||
QString const &apak = "8AC304380E0E476BA2558B75DB9E2516");
|
QString const &apak = "8AC304380E0E476BA2558B75DB9E2516");
|
||||||
explicit MessageHelper(QByteArray const &posID, QString const &apak);
|
explicit MessageHelper(QByteArray const &posID, QString const &apak);
|
||||||
@ -29,8 +34,9 @@ public:
|
|||||||
|
|
||||||
bool insertEncryptedPacketID(QByteArray const &encryptedPacketID);
|
bool insertEncryptedPacketID(QByteArray const &encryptedPacketID);
|
||||||
|
|
||||||
QByteArrayList const &getMessageChunksToSend();
|
QByteArrayList createLoginMessageChunksToSend(char etx);
|
||||||
QByteArrayList const &createLoginMessageChunksToSend(char ext);
|
QByteArrayList createLogoutMessageChunksToSend(char etx);
|
||||||
|
QByteArrayList const &createMessageChunksToSend(AsyncPosCommand cmd, char etx);
|
||||||
|
|
||||||
// private:
|
// private:
|
||||||
|
|
||||||
@ -40,11 +46,13 @@ public:
|
|||||||
QByteArray m_messageHeaderPrefix;
|
QByteArray m_messageHeaderPrefix;
|
||||||
QByteArray m_rawPacket; // without leading STX and trailing [ETX(1/2), LRC]
|
QByteArray m_rawPacket; // without leading STX and trailing [ETX(1/2), LRC]
|
||||||
QByteArray m_loginMessage;
|
QByteArray m_loginMessage;
|
||||||
|
QByteArray m_logoutMessage;
|
||||||
QByteArrayList m_messageChunkList;
|
QByteArrayList m_messageChunkList;
|
||||||
|
|
||||||
bool setMessageHeaderPacketType(PacketType packetType);
|
bool setMessageHeaderPacketType(PacketType packetType);
|
||||||
bool createMessageHeaderPrefix(PacketType packetType, QByteArray const &encryptedPacketID);
|
bool createMessageHeaderPrefix(PacketType packetType, QByteArray const &encryptedPacketID);
|
||||||
void createLoginMessage();
|
void createLoginMessage();
|
||||||
|
void createLogoutMessage();
|
||||||
|
|
||||||
static QByteArray const &mask(QByteArray &messageChunk);
|
static QByteArray const &mask(QByteArray &messageChunk);
|
||||||
static QByteArray const &unMask(QByteArray &messageChunk);
|
static QByteArray const &unMask(QByteArray &messageChunk);
|
||||||
|
Loading…
Reference in New Issue
Block a user