143 #include <ti/drivers/rf/RF.h> 147 #define BLE_STACK_POLICY_IDX 0 156 #define DMMPOLICY_NUM_STACKS 2 158 #define DMMPOLICY_PRIORITY_LOW 0 159 #define DMMPOLICY_PRIORITY_HIGH 1 161 #define DMMPOLICY_TIME_NONE_CRITICAL 0 162 #define DMMPOLICY_TIME_CRITICAL 1 163 #define DMMPOLICY_TIME_RESERVED 1 165 #define DMMPOLICY_NOT_PAUSED 0 166 #define DMMPOLICY_PAUSED 0x0001 167 #define DMMPOLICY_SCHEDULE_BLOCKED 0x0002 169 #define DMMPOLICY_BALANCED_NONE 0 171 #define DMMPOLICY_BALANCED_TIME_BM_1 0x80000000 172 #define DMMPOLICY_BALANCED_TIME_MODE_1(onMin, offMax) (DMMPOLICY_BALANCED_TIME_BM_1 | (onMin & 0xFFF) | ((offMax & 0xFFF) << 12)) 173 #define DMMPOLICY_BALANCED_TIME_MODE_1_ON_MIN(RatioTime) (RatioTime & 0xFFF) 174 #define DMMPOLICY_BALANCED_TIME_MODE_1_OFF_MAX(RatioTime) ((RatioTime & 0xFFF000) >> 12) 176 #define DMMPOLICY_APPLIED_ACTIVITY_NONE 0 177 #define DMMPOLICY_APPLIED_ACTIVITY_ALL 0xFFFF 178 #define DMMPOLICY_APPLIED_ACTIVITY_BLE_CONNECTION 0x0001 179 #define DMMPOLICY_APPLIED_ACTIVITY_BLE_LINK_EST 0x0002 180 #define DMMPOLICY_APPLIED_ACTIVITY_BLE_BROADCASTING 0x0004 181 #define DMMPOLICY_APPLIED_ACTIVITY_BLE_OBSERVING 0x0008 183 #define DMMPOLICY_APPLIED_ACTIVITY_154_DATA 0x0001 184 #define DMMPOLICY_APPLIED_ACTIVITY_154_LINK_EST 0x0002 185 #define DMMPOLICY_APPLIED_ACTIVITY_154_TX_BEACON 0x0004 186 #define DMMPOLICY_APPLIED_ACTIVITY_154_RX_BEACON 0x0008 187 #define DMMPOLICY_APPLIED_ACTIVITY_154_FH 0x0010 188 #define DMMPOLICY_APPLIED_ACTIVITY_154_SCAN 0x0020 189 #define DMMPOLICY_APPLIED_ACTIVITY_154_RXON 0x0040 191 #define DMMPOLICY_APPLIED_ACTIVITY_WSN_RETRANSMIT 0x0001 192 #define DMMPOLICY_APPLIED_ACTIVITY_WSN_TRANSMIT 0x0002 193 #define DMMPOLICY_APPLIED_ACTIVITY_WSN_RECEIVE 0x0004 197 #define PRIORITY_NUM 3 200 #define DMMPolicy_updateStackState DMMPolicy_updateApplicationState 210 #define DMM_PRIORITY_MAX_LIMIT 250 211 #define DMM_PRIORITY_MAX_CHANGE_LIMIT 185 214 #define DMM_GLOBAL_PRIORITY(activity, level, weight) {(activity << 16 | level), weight} void DMMPolicy_Params_init(DMMPolicy_Params *params)
Function to initialize the DMMPolicy_Params struct to its defaults.
bool DMMPolicy_getGPTStatus(void)
check if the global priority table is available
GlobalTable * globalPriorityTable
global priority table to be used for the DMM use case
Definition: dmm_policy.h:299
void DMMPolicy_registerAppCbs(DMMPolicy_AppCbs_t AppCbs, DMMPolicy_StackRole StackRole)
Register the application policy callbacks.
stack role reserved for a customers proprietary stack
Definition: dmm_policy.h:229
Normal priority.
Definition: dmm_policy.h:274
uint8_t defaultPriority
The default priority of the policy.
Definition: dmm_policy.h:290
uint8_t DMMPolicy_getDefaultPriority(uint32_t stackID)
Get the default priority.
Global Priority Table data struct.
Definition: dmm_policy.h:280
DMMPolicy_appPauseCb_t appPauseCb
Callback function when app in paused state.
Definition: dmm_policy.h:320
Error with policy table.
Definition: dmm_policy.h:309
Structure for app callbacks.
Definition: dmm_policy.h:318
uint16_t DMMPolicy_getGlobalPriority(uint32_t activity, uint32_t stackID)
Get the global activity based on stack activity.
uint32_t appliedActivity
Definition: dmm_policy.h:238
uint32_t stackID
ID to define the stack using current policy.
Definition: dmm_policy.h:288
Structure used to decide the policy for a particular stack state.
Definition: dmm_policy.h:244
DMMPolicy_Status DMMPolicy_open(DMMPolicy_Params *params)
Function to open the DMMPolicy module.
Structure used to define a DMM Policy.
Definition: dmm_policy.h:233
uint16_t timingConstraint
reserved for future usage
Definition: dmm_policy.h:237
uint32_t state
application state of a policy
Definition: dmm_policy.h:235
void DMMPolicy_setStackID(uint32_t stackID, DMMPolicy_StackRole StackRole)
Get the global activity based on stack activity.
uint32_t numPolicyTableEntries
entries in policy table
Definition: dmm_policy.h:298
invalid stack role
Definition: dmm_policy.h:220
uint32_t activity
stack command activity
Definition: dmm_policy.h:267
stack role for a 15.4 Collector
Definition: dmm_policy.h:224
uint8_t tableSize
Size of the table.
Definition: dmm_policy.h:254
bool DMMPolicy_setBlockModeOff(DMMPolicy_StackRole StackRole)
Turn off Block mode.
uint16_t DMMPolicy_getPauseValue(uint32_t stackID)
Get the pause value from the current policy.
StackActivity * globalTableArray
global table array
Definition: dmm_policy.h:281
policy table entry
Definition: dmm_policy.h:258
Policy Information dynamically updated.
Definition: dmm_policy.h:287
DMMPolicy_StackCmdIndexTable * indexTable
reserved for future use
Definition: dmm_policy.h:262
void DMMPolicy_init(void)
Function that initializes the DMMPolicy module.
Structure used to define a stack command index table. Reserved for future usage.
Definition: dmm_policy.h:251
Parameter Error.
Definition: dmm_policy.h:310
stack role for an EasyLink Wireless Sensor Network Node
Definition: dmm_policy.h:222
DMMPolicy_StackRole
the stack roles supported
Definition: dmm_policy.h:218
bool DMMPolicy_getBlockModeStatus(DMMPolicy_StackRole StackRole)
Get Block mode status.
#define DMMPOLICY_NUM_STACKS
Number of RF driver clients supported.
Definition: dmm_policy.h:156
High priority.
Definition: dmm_policy.h:275
uint16_t DMMPolicy_getTimeConstraintValue(uint32_t stackID)
Get the time constraint value from the current policy.
Stack Activity data struct.
Definition: dmm_policy.h:266
uint8_t currentWeight
The current weight value of the policy.
Definition: dmm_policy.h:289
uint8_t weight
amount of adjusted priority for stack activities specified in .appliedActivity
Definition: dmm_policy.h:236
stack role reserved for a customers proprietary stack
Definition: dmm_policy.h:228
uint32_t balancedMode
0x0 = no ratio mode, 0x0000xxyy = stack 1:stack 2 = xx:yy, 0x80xxxyyy = Hi Pri Stack xxx ms min on yy...
Definition: dmm_policy.h:247
DMMPolicy_Status
Status codes for various DMM Policy functions.
Definition: dmm_policy.h:307
DMMPolicy_Status DMMPolicy_updateApplicationState(DMMPolicy_StackRole StackRole, uint32_t newState)
Updates the policy used to make scheduling decisions.
DMMPolicy_PolicyTable policyTable
policy table to be used for the DMM use case
Definition: dmm_policy.h:297
Urgent priority.
Definition: dmm_policy.h:276
stack role for a BLE Simple Peripheral
Definition: dmm_policy.h:221
uint16_t globalPriority
stack command priority
Definition: dmm_policy.h:268
Error.
Definition: dmm_policy.h:308
uint8_t tableSize
size of the table
Definition: dmm_policy.h:282
stack role for a Zigbee Router
Definition: dmm_policy.h:226
PriorityDef
Stack Activity Priority.
Definition: dmm_policy.h:272
stack role for a 15.4 Sensor
Definition: dmm_policy.h:223
uint8_t * CmdIndex
Command table.
Definition: dmm_policy.h:253
Function finished with success.
Definition: dmm_policy.h:311
stack role for a Zigbee End Device
Definition: dmm_policy.h:225
RF parameter struct DMM Scheduler parameters are used with the DMMPolicy_open() and DMMPolicy_Params_...
Definition: dmm_policy.h:296
void(* DMMPolicy_appPauseCb_t)(uint16_t pause)
Callback function type for app pause/reseume.
Definition: dmm_policy.h:315
DMMPolicy_Policy * policy
pointer to the policy
Definition: dmm_policy.h:261
bool DMMPolicy_setBlockModeOn(DMMPolicy_StackRole StackRole)
Turn on Block mode.
DMMPolicy_StackRole stackRole
stack application role
Definition: dmm_policy.h:283
stack role for a Zigbee Coordinator
Definition: dmm_policy.h:227