20#ifndef _lmic_compliance_h_
21#define _lmic_compliance_h_
37typedef uint8_t lmic_compliance_state_t;
39enum lmic_compliance_state_e {
40 LMIC_COMPLIANCE_STATE_IDLE = 0,
41 LMIC_COMPLIANCE_STATE_STOPPING = 1,
42 LMIC_COMPLIANCE_STATE_ACTIVATING = 2,
43 LMIC_COMPLIANCE_STATE_ACTIVE = 3,
48lmic_compliance_state_IsActive(lmic_compliance_state_t s) {
49 return s >= LMIC_COMPLIANCE_STATE_ACTIVATING;
53typedef uint8_t lmic_compliance_eventflags_t;
55enum lmic_compliance_eventflags_e {
56 LMIC_COMPLIANCE_EVENT_ACTIVATE = 1u << 0,
57 LMIC_COMPLIANCE_EVENT_DEACTIVATE = 1u << 1,
58 LMIC_COMPLIANCE_EVENT_TIMER_EXPIRED = 1u << 2,
59 LMIC_COMPLIANCE_EVENT_UPLINK_COMPLETE = 1u << 3,
60 LMIC_COMPLIANCE_EVENT_ECHO_REQUEST = 1u << 4,
63typedef uint8_t lmic_compliance_fsmflags_t;
64enum lmic_compliance_fsmflags_e {
65 LMIC_COMPLIANCE_FSM_ACTIVE = 1u << 0,
66 LMIC_COMPLIANCE_FSM_REENTERED = 1u << 1,
67 LMIC_COMPLIANCE_FSM_CONFIRM = 1u << 2,
70typedef uint8_t lmic_compliance_fsmstate_t;
71enum lmic_compliance_fsmstate_e {
72 LMIC_COMPLIANCE_FSMSTATE_INITIAL = 0,
73 LMIC_COMPLIANCE_FSMSTATE_NOCHANGE = 1,
74 LMIC_COMPLIANCE_FSMSTATE_ACTIVE = 2,
75 LMIC_COMPLIANCE_FSMSTATE_INACTIVE = 3,
76 LMIC_COMPLIANCE_FSMSTATE_TESTMODE = 4,
77 LMIC_COMPLIANCE_FSMSTATE_ECHOING = 5,
78 LMIC_COMPLIANCE_FSMSTATE_REPORTING = 6,
79 LMIC_COMPLIANCE_FSMSTATE_RECOVERY = 7,
80 LMIC_COMPLIANCE_FSMSTATE_TXBUSY = 8,
83#define LMIC_COMPLIANCE_FSMSTATE__NAMES \
84 "INITIAL", "NOCHANGE", "ACTIVE", "INACTIVE", "TESTMODE", \
85 "ECHOING", "REPORTING", "RECOVERY", "TXBUSY"
90 lmic_event_cb_t *pEventCb;
107 lmic_compliance_eventcb_t saveEvent;
113 lmic_compliance_band_t saveBands[MAX_BANDS];
119 uint16_t downlinkCount;
123 lmic_compliance_state_t state;
124 lmic_compliance_eventflags_t eventflags;
125 lmic_compliance_fsmflags_t fsmFlags;
126 lmic_compliance_fsmstate_t fsmState;
129 uint8_t uplinkMessage[MAX_LEN_PAYLOAD];
132extern lmic_compliance_t LMIC_Compliance;
Definition lmic_compliance.h:97
Definition lmic_compliance.h:88
Definition lmic_compliance.h:102