1 /** \file ScanCncnRoamingImmedSM.h 2 * \brief This file include definitions for the scan concentrator immediate scan for roaming SM module. 3 * \author Ronen Kalish 4 * \date 02-Jan-2005 5 */ 6 /**************************************************************************** 7 **+-----------------------------------------------------------------------+** 8 **| |** 9 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved. |** 10 **| All rights reserved. |** 11 **| |** 12 **| Redistribution and use in source and binary forms, with or without |** 13 **| modification, are permitted provided that the following conditions |** 14 **| are met: |** 15 **| |** 16 **| * Redistributions of source code must retain the above copyright |** 17 **| notice, this list of conditions and the following disclaimer. |** 18 **| * Redistributions in binary form must reproduce the above copyright |** 19 **| notice, this list of conditions and the following disclaimer in |** 20 **| the documentation and/or other materials provided with the |** 21 **| distribution. |** 22 **| * Neither the name Texas Instruments nor the names of its |** 23 **| contributors may be used to endorse or promote products derived |** 24 **| from this software without specific prior written permission. |** 25 **| |** 26 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |** 27 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |** 28 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |** 29 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |** 30 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |** 31 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |** 32 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |** 33 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |** 34 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |** 35 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |** 36 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |** 37 **| |** 38 **+-----------------------------------------------------------------------+** 39 ****************************************************************************/ 40 41 #ifndef __SCANCNCNROAMINGIMMEDSM_H__ 42 #define __SCANCNCNROAMINGIMMEDSM_H__ 43 44 #include "osApi.h" 45 #include "ScanCncn.h" 46 #include "fsm.h" 47 48 /* 49 *********************************************************************** 50 * Constant definitions. 51 *********************************************************************** 52 */ 53 54 /* 55 *********************************************************************** 56 * Enums. 57 *********************************************************************** 58 */ 59 60 /** \enum scan_immedSMEvents_e 61 * \brief enumerates the different immediate scan for roaming SM events 62 */ 63 typedef enum 64 { 65 IMMED_SCAN_EVENT_START_SCAN = 0, 66 IMMED_SCAN_EVENT_SCR_RUN, 67 IMMED_SCAN_EVENT_SCR_PEND, 68 IMMED_SCAN_EVENT_SCR_REJECT, 69 IMMED_SCAN_EVENT_ABORT_SCAN, 70 IMMED_SCAN_EVENT_FW_RESET, 71 IMMED_SCAN_EVENT_STOP_SCAN, 72 IMMED_SCAN_EVENT_SCAN_COMPLETE, 73 IMMED_SCAN_NUM_OF_EVENTS 74 } scan_immedSMEvents_e; 75 76 /** \enum scan_immedSMEvents_e 77 * \brief enumerates the different immediate scan for roaming SM states 78 */ 79 typedef enum 80 { 81 IMMED_SCAN_STATE_IDLE = 0, 82 IMMED_SCAN_STATE_SCR_REQUEST, 83 IMMED_SCAN_STATE_SCR_WAIT, 84 IMMED_SCAN_STATE_SCANNING, 85 IMMED_SCAN_STATE_STOPPING, 86 IMMED_SCAN_NUM_OF_STATES 87 } scan_immedSMStates_e; 88 89 /* 90 *********************************************************************** 91 * Typedefs. 92 *********************************************************************** 93 */ 94 95 /* 96 *********************************************************************** 97 * Structure definitions. 98 *********************************************************************** 99 */ 100 101 /* 102 *********************************************************************** 103 * External data definitions. 104 *********************************************************************** 105 */ 106 107 /* 108 *********************************************************************** 109 * External functions definitions 110 *********************************************************************** 111 */ 112 113 /** 114 * \author Ronen Kalish\n 115 * \date 02-Jan-2005\n 116 * \brief Initialize the scan concentrator immediate scan for roaming SM. 117 * 118 * Function Scope \e Public.\n 119 * \param hScanCncn - handle to the scan concentrator object.\n 120 * \return OK if successful, NOK otherwise.\n 121 */ 122 TI_STATUS scanConcentratorRoamingImmedSM_init( TI_HANDLE hScanCncn ); 123 124 /** 125 * \author Ronen Kalish\n 126 * \date 02-Jan-2005\n 127 * \brief Processes an event. 128 * 129 * Function Scope \e Public.\n 130 * \param hScanCncn - handle to the scan concentrator object.\n 131 * \param currentState - the current immediate scan for roaming SM state.\n 132 * \param event - the event to handle.\n 133 * \return OK if successful, NOK otherwise.\n 134 */ 135 TI_STATUS scanConcentratorRoamingImmedSM_SMEvent( TI_HANDLE hScanCncn, scan_immedSMStates_e* currentState, 136 scan_immedSMEvents_e event ); 137 138 /** 139 * \author Ronen Kalish\n 140 * \date 02-Jan-2005\n 141 * \brief SM action - handles a start scan event (by requesting the SCR) 142 * 143 * Function Scope \e Public.\n 144 * \param hScanCncn - handle to the scan concentrator object.\n 145 * \return OK if successful, NOK otherwise.\n 146 */ 147 TI_STATUS scanConcentratorRoamingImmedSM_requestSCR( TI_HANDLE hScanCncn ); 148 149 /** 150 * \author Ronen Kalish\n 151 * \date 02-Jan-2005\n 152 * \brief SM action - handles a SCR run event (by starting the actual scan) 153 * 154 * Function Scope \e Public.\n 155 * \param hScanCncn - handle to the scan concentrator object.\n 156 * \return OK if successful, NOK otherwise.\n 157 */ 158 TI_STATUS scanConcentratorRoamingImmedSM_startScan( TI_HANDLE hScanCncn ); 159 160 /** 161 * \author Ronen Kalish\n 162 * \date 02-Jan-2005\n 163 * \brief SM action - handles a stop scan or abort scan event (by stopping the actual scan) 164 * 165 * Function Scope \e Public.\n 166 * \param hScanCncn - handle to the scan concentrator object.\n 167 * \return OK if successful, NOK otherwise.\n 168 */ 169 TI_STATUS scanConcentratorRoamingImmedSM_abortScan( TI_HANDLE hScanCncn ); 170 171 /** 172 * \author Ronen Kalish\n 173 * \date 10-July-2005\n 174 * \brief SM action - handles a recovery event (calls the scan SRV abort on FW reset and than finishes scan) 175 * 176 * Function Scope \e Public.\n 177 * \param hScanCncn - handle to the scan concentrator object.\n 178 * \return OK if successful, NOK otherwise.\n 179 */ 180 TI_STATUS scanConcentratorRoamingImmedSM_recoveryDuringScan( TI_HANDLE hScanCncn ); 181 182 /** 183 * \author Ronen Kalish\n 184 * \date 02-Jan-2005\n 185 * \brief SM action - handles a scan complete event (by releasing the SCR and calling the scan complete CB). 186 * 187 * Function Scope \e Public.\n 188 * \param hScanCncn - handle to the scan concentrator object.\n 189 * \return OK if successful, NOK otherwise.\n 190 */ 191 TI_STATUS scanConcentratorRoamingImmedSM_scanComplete( TI_HANDLE hScanCncn ); 192 193 /** 194 * \author Ronen Kalish\n 195 * \date 02-Jan-2005\n 196 * \brief SM action - handles a scan reject event (abort scan before scan acrually started)\n 197 * 198 * Function Scope \e Public.\n 199 * \param hScanCncn - handle to the scan concentrator object.\n 200 * \return OK if successful, NOK otherwise.\n 201 */ 202 TI_STATUS scanConcentratorRoamingImmedSM_scanRejected( TI_HANDLE hScanCncn ); 203 204 #endif /* __SCANCNCNROAMINGIMMEDSM_H__ */ 205 206