summaryrefslogtreecommitdiff
path: root/digital/zigbit/bitcloud/stack/Components/ZDO/include/private/zdoManager.h
blob: e21a8db284ca99bad1d3d198db117f21e6b324cd (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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/**************************************************************************//**
  \file zdoManager.h

  \brief ZDO internal management functions interface

  \author
    Atmel Corporation: http://www.atmel.com \n
    Support email: avr@atmel.com

  Copyright (c) 2008-2011, Atmel Corporation. All rights reserved.
  Licensed under Atmel's Limited License Agreement (BitCloudTM).

  \internal
  History:
    28.10.09 A. Taradov - Created
******************************************************************************/
#ifndef _ZDOMANAGER_H
#define _ZDOMANAGER_H

/******************************************************************************
                    Includes section
******************************************************************************/
#include <zdoMem.h>

/******************************************************************************
                    Types section
******************************************************************************/
typedef enum _ZdoModuleId_t
{
  ZDO_START_NETWORK_MODULE_ID       = (1 << 0),
  ZDO_RESET_NETWORK_MODULE_ID       = (1 << 1),
  ZDO_LEAVE_NETWORK_MODULE_ID       = (1 << 2),
  ZDO_BINDING_MANAGER_MODULE_ID     = (1 << 3),
  ZDO_DISCOVERY_MANAGER_MODULE_ID   = (1 << 4),
  ZDO_NODE_MANAGER_MODULE_ID        = (1 << 5),
  ZDO_NWK_MANAGER_MODULE_ID         = (1 << 6),
  ZDO_POWER_MANAGER_MODULE_ID       = (1 << 7),
  ZDO_SECURITY_MANAGER_MODULE_ID    = (1 << 8),
  ZDO_ZDP_FRAME_PROCESSOR_MODULE_ID = (1 << 9),
  ZDO_ZDP_MANAGER_MODULE_ID         = (1 << 10),
  ZDO_NETWORK_STATUS_MODULE_ID      = (1 << 11),
  ZDO_TC_SWAPOUT_MODULE_ID          = (1 << 12),
} ZdoModuleId_t;

typedef enum _ZdoModuleSet_t
{
  ZDO_INITIAL_MODULE_SET        = 0,
  ZDO_ALL_DISABLED_MODULE_SET   = 0,
  ZDO_READY_MODULE_SET          = ZDO_START_NETWORK_MODULE_ID | ZDO_RESET_NETWORK_MODULE_ID |
                                  ZDO_POWER_MANAGER_MODULE_ID | ZDO_TC_SWAPOUT_MODULE_ID,
  ZDO_START_NETWORK_MODULE_SET  = ZDO_ZDP_MANAGER_MODULE_ID,
  ZDO_IN_NETWORK_MODULE_SET     = ZDO_BINDING_MANAGER_MODULE_ID | ZDO_DISCOVERY_MANAGER_MODULE_ID |
                                  ZDO_NODE_MANAGER_MODULE_ID | ZDO_NWK_MANAGER_MODULE_ID |
                                  ZDO_POWER_MANAGER_MODULE_ID | ZDO_SECURITY_MANAGER_MODULE_ID |
                                  ZDO_ZDP_FRAME_PROCESSOR_MODULE_ID | ZDO_ZDP_MANAGER_MODULE_ID |
                                  ZDO_NETWORK_STATUS_MODULE_ID | ZDO_RESET_NETWORK_MODULE_ID |
                                  ZDO_LEAVE_NETWORK_MODULE_ID | ZDO_TC_SWAPOUT_MODULE_ID,
  ZDO_REJOIN_NETWORK_MODULE_SET = ZDO_ZDP_MANAGER_MODULE_ID,
  ZDO_LEAVING_MODULE_SET        = ZDO_LEAVE_NETWORK_MODULE_ID | ZDO_ZDP_MANAGER_MODULE_ID,
  ZDO_TC_SWAPOUT_MODULE_SET     = ZDO_ZDP_MANAGER_MODULE_ID,
  ZDO_RESET_NETWORK_MODULE_SET  = 0,
} ZdoModuleSet_t;

/******************************************************************************
                    Prototypes section
******************************************************************************/
void zdoUpdateRandSeed(void);
/******************************************************************************
                    Implementations section
******************************************************************************/

/******************************************************************************
  Enable certain modules
  Parameters:
    modules - modules to enable
  Return:
    none
******************************************************************************/
inline static void zdoEnable(uint16_t modules)
{
  zdoMem.enabledModules = modules;
}

/******************************************************************************
  Check if certain module is enabled
  Parameters:
    module - module id to check
  Return:
    true  - module is enabled
    false - module is disabled
******************************************************************************/
inline static bool zdoEnabled(uint16_t module)
{
  return (zdoMem.enabledModules & module);
}

/******************************************************************************
  Set 'Out of Network' flag for correct state restore after power failure.
  Parameters:
    none
  Return:
    none
******************************************************************************/
inline static void zdoSetOutOfNetworkFlag(void)
{
#if defined(_POWER_FAILURE_)
  ExtPanId_t nwkExtPanId = NWK_NO_EXT_PANID;
  NWK_SetExtPanId(&nwkExtPanId);

  zdoMem.zdoStartNetwork.powerFailureControl.networkOperationsAccepted = 0U;
#endif
}

#endif // _ZDOMANAGER_H

// eof zdoManager.h