| /* |
| * ScanCncnSm.h |
| * |
| * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in |
| * the documentation and/or other materials provided with the |
| * distribution. |
| * * Neither the name Texas Instruments nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| /** \file ScanCncnSm.h |
| * \brief Scan concentrator state machine declarations |
| * |
| * \see ScanCncnSm.c |
| */ |
| |
| |
| #ifndef __SCAN_CNCN_SM_H__ |
| #define __SCAN_CNCN_SM_H__ |
| |
| #include "osTIType.h" |
| #include "TWDriver.h" |
| #include "ScanCncn.h" |
| |
| typedef void (*TScanPrivateSMFunction)(TI_HANDLE hScanCncn); |
| |
| typedef union |
| { |
| TPeriodicScanParams tPeriodicScanParams; |
| TScanParams tOneShotScanParams; |
| }UScanParams; |
| |
| typedef struct |
| { |
| TI_HANDLE hOS; |
| TI_HANDLE hReport; |
| TI_HANDLE hSCR; |
| TI_HANDLE hTWD; |
| TI_HANDLE hApConn; |
| TI_HANDLE hMlme; |
| TI_HANDLE hGenSM; |
| TI_HANDLE hScanCncn; |
| TI_BOOL bScanCompletePending; /* TRUE if scan complete event is received |
| before all results, for periodic scan */ |
| TI_BOOL bInRequest; |
| TI_BOOL bSendNullDataOnStop; /* indicates whether NULL data frame is to be sent wehn |
| stopping scan to return to previous PS mode */ |
| TScanPrivateSMFunction fScrRequest; |
| TScanPrivateSMFunction fScrRelease; |
| TScanPrivateSMFunction fStartScan; |
| TScanPrivateSMFunction fStopScan; |
| TScanPrivateSMFunction fRecovery; |
| |
| /* Scan complete callbacks */ |
| TScanResultCB tScanResultCB; |
| TI_HANDLE hScanResultCBObj; |
| |
| UScanParams uScanParams; |
| EScanCncnResultStatus eScanResult; |
| TI_INT8 *pScanSmName; |
| TI_UINT16 uSPSScanResult; |
| TI_UINT32 uResultCounter; |
| TI_UINT32 uResultExpectedNumber; |
| TI_BOOL bScanRejectedOn2_4; |
| } TScanCncnClient; |
| |
| typedef enum |
| { |
| SCAN_CNCN_SM_STATE_IDLE = 0, |
| SCAN_CNCN_SM_STATE_SCR_WAIT, |
| SCAN_CNCN_SM_STATE_SCANNING, |
| SCAN_CNCN_SM_STATE_STOPPING, |
| SCAN_CNCN_SM_NUMBER_OF_STATES |
| } EScanCncnSmStates; |
| |
| typedef enum |
| { |
| SCAN_CNCN_SM_EVENT_START = 0, |
| SCAN_CNCN_SM_EVENT_RUN, |
| SCAN_CNCN_SM_EVENT_SCAN_COMPLETE, |
| SCAN_CNCN_SM_EVENT_STOP, |
| SCAN_CNCN_SM_EVENT_ABORT, |
| SCAN_CNCN_SM_EVENT_RECOVERY, |
| SCAN_CNCN_SM_EVENT_REJECT, |
| SCAN_CNCN_SM_NUMBER_OF_EVENTS |
| } EScanCncnSmEvents; |
| |
| TI_HANDLE scanCncnSm_Create (TI_HANDLE hOS); |
| void scanCncnSm_Init (TI_HANDLE hScanCncnClient, TI_HANDLE hReport, TI_HANDLE hTWD, |
| TI_HANDLE hSCR, TI_HANDLE hApConn, TI_HANDLE hMlme, |
| TI_HANDLE hScanCncn, TScanPrivateSMFunction fScrRequest, |
| TScanPrivateSMFunction fScrRelease, TScanPrivateSMFunction fStartScan, |
| TScanPrivateSMFunction fStopScan, TScanPrivateSMFunction fRecovery, |
| TI_INT8* pScanSmName); |
| void scanCncnSm_Destroy (TI_HANDLE hScanCncnClient); |
| void scanCncnSmApp1Shot_ScrRequest (TI_HANDLE hScanCncnClient); |
| void scanCncnSmApp1Shot_ScrRelease (TI_HANDLE hScanCncnClient); |
| void scanCncnSmApp1Shot_StartScan (TI_HANDLE hScanCncnClient); |
| void scanCncnSmApp1Shot_StopScan (TI_HANDLE hScanCncnClient); |
| void scanCncnSmApp1Shot_Recovery (TI_HANDLE hScanCncnClient); |
| void scanCncnSmAppP_ScrRequest (TI_HANDLE hScanCncnClient); |
| void scanCncnSmAppP_ScrRelease (TI_HANDLE hScanCncnClient); |
| void scanCncnSmAppP_StartScan (TI_HANDLE hScanCncnClient); |
| void scanCncnSmAppP_StopScan (TI_HANDLE hScanCncnClient); |
| void scanCncnSmAppP_Recovery (TI_HANDLE hScanCncnClient); |
| void scanCncnSmDrvP_ScrRequest (TI_HANDLE hScanCncnClient); |
| void scanCncnSmDrvP_ScrRelease (TI_HANDLE hScanCncnClient); |
| void scanCncnSmDrvP_StartScan (TI_HANDLE hScanCncnClient); |
| void scanCncnSmDrvP_StopScan (TI_HANDLE hScanCncnClient); |
| void scanCncnSmDrvP_Recovery (TI_HANDLE hScanCncnClient); |
| void scanCncnSmCont1Shot_ScrRequest (TI_HANDLE hScanCncnClient); |
| void scanCncnSmCont1Shot_ScrRelease (TI_HANDLE hScanCncnClient); |
| void scanCncnSmCont1Shot_StartScan (TI_HANDLE hScanCncnClient); |
| void scanCncnSmCont1Shot_StopScan (TI_HANDLE hScanCncnClient); |
| void scanCncnSmCont1Shot_Recovery (TI_HANDLE hScanCncnClient); |
| void scanCncnSmImmed1Shot_ScrRequest (TI_HANDLE hScanCncnClient); |
| void scanCncnSmImmed1Shot_ScrRelease (TI_HANDLE hScanCncnClient); |
| void scanCncnSmImmed1Shot_StartScan (TI_HANDLE hScanCncnClient); |
| void scanCncnSmImmed1Shot_StopScan (TI_HANDLE hScanCncnClient); |
| void scanCncnSmImmed1Shot_Recovery (TI_HANDLE hScanCncnClient); |
| |
| #endif /* __SCAN_CNCN_SM_H__ */ |
| |