summaryrefslogtreecommitdiff
path: root/Inc/devices.h
blob: 3b54580e83613c736fd0bbc4a78502d49af98770 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "handshake.pb.h"

#define _MDR s2m_MDR_response

typedef struct _device_info {
    uint8_t  device_id;
    uint8_t  i2c_addr;
    _MDR     MDR;
    
    uint32_t subscription_requests[4]; /* Subscriptions to this device */
    uint32_t subscriptions[4];         /* Subscriptions by this device */
} device_info_t;

typedef struct _subscription_info {
    uint8_t module_ids[128];
    uint8_t entity_ids[128];
    uint8_t module_class[3];
    uint8_t i2c_address[128];
    uint8_t mod_idx, entity_idx, class_idx, i2c_idx;    
} subscription_info_t;

typedef enum hs_status {
    IDLE = 0, // send mdr request. success: mdr_ack. fail: hs_fail
    HS_MDR_ACK = 1, // get mdr ack. success: mdr_cts. fail: hs_fail
    HS_MDR_CTS = 2, // send mdr cts. success: mdr_mdr. fail: hs_fail
    HS_MDR_MDR = 3, // get mdr. success: registered. fail: hs_fail
    HS_REGISTERED = 4, // send registered. success: exit. fail: hs_fail
    HS_FAILED = 5
} hs_status_t;

/* Handshake message size definitions */
#define MDR_req_buf_len 2