20#ifndef _lmic_compliance_h_
21#define _lmic_compliance_h_
35typedef uint8_t lmic_compliance_state_t;
37enum lmic_compliance_state_e {
38 LMIC_COMPLIANCE_STATE_IDLE = 0,
39 LMIC_COMPLIANCE_STATE_STOPPING = 1,
40 LMIC_COMPLIANCE_STATE_ACTIVATING = 2,
41 LMIC_COMPLIANCE_STATE_ACTIVE = 3,
46lmic_compliance_state_IsActive(lmic_compliance_state_t s) {
47 return s >= LMIC_COMPLIANCE_STATE_ACTIVATING;
51typedef uint8_t lmic_compliance_eventflags_t;
53enum lmic_compliance_eventflags_e {
54 LMIC_COMPLIANCE_EVENT_ACTIVATE = 1u << 0,
55 LMIC_COMPLIANCE_EVENT_DEACTIVATE = 1u << 1,
56 LMIC_COMPLIANCE_EVENT_TIMER_EXPIRED = 1u << 2,
57 LMIC_COMPLIANCE_EVENT_UPLINK_COMPLETE = 1u << 3,
58 LMIC_COMPLIANCE_EVENT_ECHO_REQUEST = 1u << 4,
61typedef uint8_t lmic_compliance_fsmflags_t;
62enum lmic_compliance_fsmflags_e {
63 LMIC_COMPLIANCE_FSM_ACTIVE = 1u << 0,
64 LMIC_COMPLIANCE_FSM_REENTERED = 1u << 1,
65 LMIC_COMPLIANCE_FSM_CONFIRM = 1u << 2,
68typedef uint8_t lmic_compliance_fsmstate_t;
69enum lmic_compliance_fsmstate_e {
70 LMIC_COMPLIANCE_FSMSTATE_INITIAL = 0,
71 LMIC_COMPLIANCE_FSMSTATE_NOCHANGE = 1,
72 LMIC_COMPLIANCE_FSMSTATE_ACTIVE = 2,
73 LMIC_COMPLIANCE_FSMSTATE_INACTIVE = 3,
74 LMIC_COMPLIANCE_FSMSTATE_TESTMODE = 4,
75 LMIC_COMPLIANCE_FSMSTATE_ECHOING = 5,
76 LMIC_COMPLIANCE_FSMSTATE_REPORTING = 6,
77 LMIC_COMPLIANCE_FSMSTATE_RECOVERY = 7,
78 LMIC_COMPLIANCE_FSMSTATE_TXBUSY = 8,
81#define LMIC_COMPLIANCE_FSMSTATE__NAMES \
82 "INITIAL", "NOCHANGE", "ACTIVE", "INACTIVE", "TESTMODE", \
83 "ECHOING", "REPORTING", "RECOVERY", "TXBUSY"
88 lmic_event_cb_t *pEventCb;
105 lmic_compliance_eventcb_t saveEvent;
111 lmic_compliance_band_t saveBands[MAX_BANDS];
117 uint16_t downlinkCount;
121 lmic_compliance_state_t state;
122 lmic_compliance_eventflags_t eventflags;
123 lmic_compliance_fsmflags_t fsmFlags;
124 lmic_compliance_fsmstate_t fsmState;
127 uint8_t uplinkMessage[MAX_LEN_PAYLOAD];
130extern lmic_compliance_t LMIC_Compliance;
Definition lmic_compliance.h:95
Definition lmic_compliance.h:86
Definition lmic_compliance.h:100