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

View File

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

View File

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