14#define CMD_ADV_NUM_SERVICES_16BIT 4
19#define CMD_ADV_CLAIM_TIME_MS 1500
24#define CMD_ADV_MAX_CLAIM_COUNT 10
26#define CMD_ADC_ENCRYPTED_DATA_SIZE 16
34 uint8_t timeoutCounter = 0;
62 return staticInstance;
80 uint16_t encryptedPayloadRC5[2],
81 uint16_t decryptedPayloadRC5[2]);
99 uint8_t deviceToken,
cs_data_t& encryptedData, uint16_t encryptedRC5, uint16_t& decryptedRC5);
105 uint16_t encryptedRC5,
106 uint16_t decryptedRC5,
Definition: cs_CommandAdvHandler.h:58
bool handleEncryptedCommandPayload(scanned_device_t *scannedDevice, const command_adv_header_t &header, const cs_data_t &nonce, cs_data_t &encryptedPayload, uint16_t encryptedPayloadRC5[2], uint16_t decryptedPayloadRC5[2])
bool decryptRC5Payload(uint16_t encryptedPayload[2], uint16_t decryptedPayload[2])
EncryptionAccessLevel getRequiredAccessLevel(const AdvCommandTypes type)
void parseAdvertisement(scanned_device_t *scannedDevice)
command_adv_claim_t _claims[CMD_ADV_MAX_CLAIM_COUNT]
Definition: cs_CommandAdvHandler.h:69
void handleDecryptedRC5Payload(scanned_device_t *scannedDevice, const command_adv_header_t &header, uint16_t decryptedPayload[2])
bool claim(uint8_t deviceToken, cs_data_t &encryptedData, uint16_t encryptedRC5, uint16_t decryptedRC5, int indexOfDevice)
int checkSimilarCommand(uint8_t deviceToken, cs_data_t &encryptedData, uint16_t encryptedRC5, uint16_t &decryptedRC5)
Return index of claim with this device token.
static CommandAdvHandler & getInstance()
Definition: cs_CommandAdvHandler.h:60
TYPIFY(CONFIG_SPHERE_ID) _sphereId=0
void handleEvent(event_t &event)
Handle events.
Event listener.
Definition: cs_EventListener.h:17
Author: Crownstone Team Copyright: Crownstone (https://crownstone.rocks) Date: Oct 9,...
Definition: cs_Event.h:26
#define CMD_ADC_ENCRYPTED_DATA_SIZE
Definition: cs_CommandAdvHandler.h:26
#define CMD_ADV_MAX_CLAIM_COUNT
Number of devices that can simultaneously advertise commands.
Definition: cs_CommandAdvHandler.h:24
AdvCommandTypes
Definition: cs_CommandTypes.h:91
EncryptionAccessLevel
Packets (structs) that are used over the air, over uart, or stored in flash.
Definition: cs_Packets.h:36
Struct used to prevent double handling of similar command advertisements.
Definition: cs_CommandAdvHandler.h:32
uint16_t decryptedRC5
Definition: cs_CommandAdvHandler.h:37
uint16_t encryptedRC5
Definition: cs_CommandAdvHandler.h:36
uint8_t deviceToken
Definition: cs_CommandAdvHandler.h:33
Definition: cs_CommandAdvHandler.h:40
uint16_t deviceToken
Definition: cs_CommandAdvHandler.h:48
uint16_t protocol
Definition: cs_CommandAdvHandler.h:42
uint16_t sphereId
Definition: cs_CommandAdvHandler.h:43
uint16_t accessLevel
Definition: cs_CommandAdvHandler.h:44
Packets (structs) that are used internally in the firmware, and can be changed freely.
Definition: cs_PacketsInternal.h:27
Scanned device.
Definition: cs_PacketsInternal.h:107