Allow sending up, down, and stop packets from the hub address

This commit is contained in:
2023-12-11 07:31:06 +11:00
parent 7dfe523c52
commit 0ec231cb0d
3 changed files with 13 additions and 11 deletions

View File

@@ -6,7 +6,7 @@
class PacketBuilder {
public:
PacketBuilder(uint16_t address, uint8_t rollingCode1, uint8_t rollingCode2);
PacketBuilder(uint16_t address, uint8_t rollingCode1, uint8_t rollingCode2, uint8_t protocolVersion);
~PacketBuilder();
void buildUpPacket(uint8_t *buffer, uint16_t shadeID);
@@ -18,6 +18,7 @@ private:
uint16_t address;
uint8_t rollingCode1;
uint8_t rollingCode2;
uint8_t protocolVersion;
PacketCRC packetCRC;

View File

@@ -1,9 +1,10 @@
#include "PacketBuilder.h"
PacketBuilder::PacketBuilder(uint16_t address, uint8_t rollingCode1, uint8_t rollingCode2) :
PacketBuilder::PacketBuilder(uint16_t address, uint8_t rollingCode1, uint8_t rollingCode2, uint8_t protocolVersion) :
address(address),
rollingCode1(rollingCode1),
rollingCode2(rollingCode2)
rollingCode2(rollingCode2),
protocolVersion(protocolVersion)
{
}
@@ -15,7 +16,7 @@ void PacketBuilder::buildUpPacket(uint8_t *buffer, uint16_t shadeID)
{
setPacketSize(buffer, 0x11);
setConstants(buffer);
setProtocolVersion(buffer, 0x06);
setProtocolVersion(buffer, protocolVersion);
setSourceAddress(buffer, address);
setDestinationAddress(buffer, shadeID);
setRollingCodes(buffer);
@@ -33,7 +34,7 @@ void PacketBuilder::buildDownPacket(uint8_t *buffer, uint16_t shadeID)
{
setPacketSize(buffer, 0x11);
setConstants(buffer);
setProtocolVersion(buffer, 0x06);
setProtocolVersion(buffer, protocolVersion);
setSourceAddress(buffer, address);
setDestinationAddress(buffer, shadeID);
setRollingCodes(buffer);
@@ -51,7 +52,7 @@ void PacketBuilder::buildStopPacket(uint8_t *buffer, uint16_t shadeID)
{
setPacketSize(buffer, 0x11);
setConstants(buffer);
setProtocolVersion(buffer, 0x06);
setProtocolVersion(buffer, protocolVersion);
setSourceAddress(buffer, address);
setDestinationAddress(buffer, shadeID);
setRollingCodes(buffer);
@@ -69,7 +70,7 @@ void PacketBuilder::buildPositionPacket(uint8_t *buffer, uint16_t shadeID, float
{
setPacketSize(buffer, 0x15);
setConstants(buffer);
setProtocolVersion(buffer, 0x05);
setProtocolVersion(buffer, protocolVersion);
setSourceAddress(buffer, address);
setDestinationAddress(buffer, shadeID);
setRollingCodes(buffer);

View File

@@ -138,15 +138,15 @@ void onConnectionEstablished() {
Serial.println("Connection established");
client.subscribe("hotdog/test_mqtt_blind/set", [] (const String &payload) {
uint16_t shadeID = 0x0400;
uint16_t shadeID = 0x4EF1;
if (payload == "OPEN") {
remotePacketBuilder.buildUpPacket(buffer, shadeID);
hubPacketBuilder.buildUpPacket(buffer, shadeID);
sendCommand(buffer);
} else if (payload == "CLOSE") {
remotePacketBuilder.buildDownPacket(buffer, shadeID);
hubPacketBuilder.buildDownPacket(buffer, shadeID);
sendCommand(buffer);
} else if (payload == "STOP") {
remotePacketBuilder.buildStopPacket(buffer, shadeID);
hubPacketBuilder.buildStopPacket(buffer, shadeID);
sendCommand(buffer);
}
});