- /*
-
- RELAY MODULE
-
- Copyright (C) 2016-2019 by Xose Pérez <xose dot perez at gmail dot com>
-
- */
-
- #pragma once
-
- #include <bitset>
- #include "rpc.h"
- #include "utils.h"
-
- constexpr size_t RELAYS_MAX = 32;
-
- struct RelayMask {
-
- explicit RelayMask(const String& string) :
- as_string(string),
- as_u32(u32fromString(string))
- {}
-
- explicit RelayMask(String&& string) :
- as_string(std::move(string)),
- as_u32(u32fromString(as_string))
- {}
-
- explicit RelayMask(uint32_t value) :
- as_string(std::move(u32toString(value, 2))),
- as_u32(value)
- {}
-
- explicit RelayMask(std::bitset<RELAYS_MAX> bitset) :
- RelayMask(bitset.to_ulong())
- {}
-
- RelayMask(String&& string, uint32_t value) :
- as_string(std::move(string)),
- as_u32(value)
- {}
-
- const String as_string;
- uint32_t as_u32;
-
- };
-
- PayloadStatus relayParsePayload(const char * payload);
-
- bool relayStatus(unsigned char id, bool status, bool report, bool group_report);
- bool relayStatus(unsigned char id, bool status);
- bool relayStatus(unsigned char id);
-
- void relayToggle(unsigned char id, bool report, bool group_report);
- void relayToggle(unsigned char id);
-
- unsigned char relayCount();
-
- const String& relayPayloadOn();
- const String& relayPayloadOff();
- const String& relayPayloadToggle();
-
- const char* relayPayload(PayloadStatus status);
-
- void relaySetupDummy(size_t size, bool reconfigure = false);
-
|