adaptationlayer/modematadaptation/modematcontroller_exe/inc/cmodematpipecontroller.h
changeset 9 8486d82aef45
parent 8 6295dc2169f3
equal deleted inserted replaced
8:6295dc2169f3 9:8486d82aef45
     1 /*
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of the License "Eclipse Public License v1.0"
     5 * under the terms of the License "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    21 
    21 
    22 #include <e32base.h>
    22 #include <e32base.h>
    23 #include "cmodemathandler.h"
    23 #include "cmodemathandler.h"
    24 const TUint8 KInvalidPipeHandle = 0xff;
    24 const TUint8 KInvalidPipeHandle = 0xff;
    25 
    25 
       
    26 
       
    27 const TUint8 PEP_COMM_IND_ID_ESCAPE = 0x07;// Hard coded PEP constants to be included when dataport exports (DP is COMM PEP)!!
       
    28 const TUint8 PEP_COMM_CTRL_ID_ESCAPE = 0x05;
       
    29 const TUint8 PEP_COMM_SIGNAL_DTR_ON = 0x05;
       
    30 const TUint8 PEP_COMM_SIGNAL_DTR_OFF = 0x06;
       
    31 const TUint8 PEP_COMM_SIGNAL_DCD_ON = 0x07;
       
    32 const TUint8 PEP_COMM_SIGNAL_DCD_OFF = 0x08;
       
    33 const TUint8 PEP_COMM_SIGNAL_DSR_ON = 0x01;
       
    34 const TUint8 PEP_COMM_SIGNAL_DSR_OFF = 0x02;
       
    35 const TUint8 PEP_COMM_IND_ID_V24_CHANGE = 0x04;
       
    36 const TUint8 PEP_COMM_FLOW_CTRL_SW = 0x01;
       
    37 const TUint8 PEP_COMM_FLOW_CTRL_HW = 0x02;
       
    38 // const TUint8 PEP_COMM_FLOW_CTRL_BOTH = 0x03;  // Note: AT_MODEM_FLOW_CONTROL_BOTH is not supported
       
    39 const TUint8 PEP_COMM_FLOW_CTRL_NONE = 0x04;
       
    40 const TUint8 PEP_COMM_FLOW_CTRL_EXTRACT = 0x05;
       
    41 const TUint8 PEP_COMM_FLOW_CTRL_NO_EXTRACT = 0x06;
       
    42 const TUint8 PEP_COMM_CTRL_ID_FLOW_CTRL = 0x02;
       
    43 // Escape time for PEP_CTRL_REQ with PEP_COMM_CTRL_ID_ESCAPE
       
    44 // Time is given as 20 milliseconds. So real escape time is:
       
    45 // 50 * 20 milliseconds = 1000 milliseconds
       
    46 const TUint8 KEscapeTime = 50; 
       
    47 
    26 class TPipeInfo
    48 class TPipeInfo
    27 {
    49 {
    28 public:
    50 public:
    29 
    51 
    30     enum EPipeState 
    52     enum EPipeState 
    55     {
    77     {
    56 public:
    78 public:
    57     static CModemAtPipeController* NewL( RIscApi& aIscApi, TUint& aObjId, CModemAtHandler& aHandler );
    79     static CModemAtPipeController* NewL( RIscApi& aIscApi, TUint& aObjId, CModemAtHandler& aHandler );
    58 
    80 
    59     ~CModemAtPipeController();
    81     ~CModemAtPipeController();
    60 #ifndef NCP_COMMON_BRIDGE_FAMILY
    82 
    61     /*
    83     /*
    62      * Handles messages from PN_NAME
    84      * Handles messages from PN_NAME
    63      * @param TIsiReceiveC& aReceivedMessage Message data
    85      * @param TIsiReceiveC& aReceivedMessage Message data
    64      */
    86      */
    65     void HandleNameServiceMessage( const TIsiReceiveC& aReceivedMessage );
    87     void HandleNameServiceMessage( const TIsiReceiveC& aReceivedMessage );
    71         
    93         
    72     void HandlePipeServiceMessage( const TIsiReceiveC& aReceivedMessage );
    94     void HandlePipeServiceMessage( const TIsiReceiveC& aReceivedMessage );
    73     
    95     
    74     /**
    96     /**
    75      * Removes pipe.
    97      * Removes pipe.
    76      * @param TUint8 aDteId Connection DteId   
    98      */
    77      */
    99     void RemovePipe();
    78     void RemovePipe( const TUint8 aDteId);
       
    79     
   100     
    80     /**
   101     /**
    81      * Redirects pipe
   102      * Redirects pipe
    82      * @param TUint8 aDteId Connection DteId   
   103      * @param TUint8 aDteId Connection DteId   
    83      * @param TUint8 aNewDevId New PEP
   104      * @param TUint8 aNewDevId New PEP
    84      * @param TUint8 aNewObjId New PEP
   105      * @param TUint8 aNewObjId New PEP
    85      */
   106      */
    86     void RedirectPipe( const TUint8 aDteId, const TUint8 aNewDevId, const TUint8 aNewObjId );
   107     void RedirectPipe( const TUint8 aNewDevId, const TUint8 aNewObjId );
    87 
   108 
    88     /**
   109     /**
    89      * Queries AT MODEM object id. 
   110      * Queries AT MODEM object id. 
    90      */
   111      */
    91     void QueryModemAtFromNameService();
   112     void QueryModemAtFromNameService();
    92 
   113 
    93     /**
   114     /**
    94      * GetPipeHandle
   115      * GetPipeState
    95      * @return pipehandle
   116      * @return pipe state
    96      */
   117      */
    97     TUint8 GetPipeHandle();
   118     TPipeInfo::EPipeState GetPipeState();
    98 
   119 
    99 #endif
   120     /**
       
   121      * Sends PNS_PIPE_ENABLE_REQ
       
   122      */
       
   123     void SendEnablePipeReq();
       
   124 
       
   125    /**
       
   126     * Sends PNS_PEP_CTRL_REQ to notify dataport
       
   127     * @param TUint8 aControlId
       
   128     * @param TDesC8& aData
       
   129     */
       
   130     void SendPepCtrlReq( const TUint8 aControlId, TDesC8& aData );
       
   131 
       
   132     /**
       
   133      * Sends PNS_PIPE_CREATE_REQ
       
   134      * @param TUint8 aDevId New PEP
       
   135      * @param TUint8 aObjId New PEP
       
   136      */
       
   137     void SendCreatePipeMessage(const TUint8 aDevId, const TUint8 aObjId);
       
   138     
       
   139     /**
       
   140      * Sends PNS_PEP_STATUS_IND + PEP_COMM_IND_ID_V24_CHANGE
       
   141      * @param TUint8 aPepCommSignal DCD or DSR signal ON or OFF
       
   142 	 *
       
   143 	 *
       
   144      */
       
   145     void SendPepStatusIndSignal( const TUint8 aPepCommSignal );
       
   146 
   100 private:
   147 private:
   101     /**
   148     /**
   102      * Default C++ constructor.
   149      * Default C++ constructor.
   103      * @param RIscApi& aIscApi
   150      * @param RIscApi& aIscApi
   104      * @param TUint& aObjId
   151      * @param TUint& aObjId
   110      *  ConstructL
   157      *  ConstructL
   111      */
   158      */
   112 
   159 
   113     void ConstructL();
   160     void ConstructL();
   114 
   161 
   115 #ifndef NCP_COMMON_BRIDGE_FAMILY
       
   116     /**
   162     /**
   117      * Handles MatchDataportName 
   163      * Handles MatchDataportName 
   118      * @param TUint aName
   164      * @param TUint aName
   119      */
   165      */
   120     TUint MatchDataportName( TUint aName );
   166     TBool MatchDataportName( TUint aName );
   121 
   167 
   122     /**
   168     /**
   123      * Handles PNS_NAME_ADD_IND 
   169      * Handles PNS_NAME_ADD_IND 
   124      * @param TIsiReceiveC& aReceivedMessage Message data 
   170      * @param TIsiReceiveC& aReceivedMessage Message data 
   125      */
   171      */
   135      * Handles PNS_NAME_QUERY_RESP 
   181      * Handles PNS_NAME_QUERY_RESP 
   136      * @param TIsiReceiveC& aReceivedMessage Message data 
   182      * @param TIsiReceiveC& aReceivedMessage Message data 
   137      */
   183      */
   138     void HandleNameQueryResp( const TIsiReceiveC& aReceivedMesssage );
   184     void HandleNameQueryResp( const TIsiReceiveC& aReceivedMesssage );
   139 
   185 
   140 
       
   141     /**
   186     /**
   142      * Handles PNS_PIPE_CREATE_RESP 
   187      * Handles PNS_PIPE_CREATE_RESP 
   143      * @param TIsiReceiveC& aReceivedMessage Message data 
   188      * @param TIsiReceiveC& aReceivedMessage Message data 
   144      */
   189      */
   145     void HandlePipeCreateResp( const TIsiReceiveC& aReceivedMessage );
   190     void HandlePipeCreateResp( const TIsiReceiveC& aReceivedMessage );
   165     /**
   210     /**
   166      * Handles PNS_PEP_STATUS_IND
   211      * Handles PNS_PEP_STATUS_IND
   167      * @param TIsiReceiveC& aReceivedMessage Message data 
   212      * @param TIsiReceiveC& aReceivedMessage Message data 
   168      */
   213      */
   169     void HandlePepStatusInd( const TIsiReceiveC& aReceivedMessage );
   214     void HandlePepStatusInd( const TIsiReceiveC& aReceivedMessage );
   170  
   215      
   171     /**
       
   172      * Sends PNS_PIPE_CREATE_REQ
       
   173      * @param TUint8 aDevId New PEP
       
   174      * @param TUint8 aObjId New PEP
       
   175      */
       
   176     void SendCreatePipeMessage(const TUint8 aDevId, const TUint8 aObjId);
       
   177     
       
   178     /**
   216     /**
   179      * Sends PNS_PIPE_REMOVE_REQ
   217      * Sends PNS_PIPE_REMOVE_REQ
   180      * @param TUint8 aPipeHandle Pipehandle
   218      * @param TUint8 aPipeHandle Pipehandle
   181      */
   219      */
   182     void SendRemovePipeReq( const TUint8 aPipeHandle );
   220     void SendRemovePipeReq( const TUint8 aPipeHandle );
   183     
   221     
   184     /**
       
   185      * Sends PNS_PIPE_ENABLE_REQ
       
   186      * @param TUint8 aPipeHandle Pipehandle
       
   187      */
       
   188     void SendEnablePipeReq( const TUint8 aPipeHandle);
       
   189 
   222 
   190     /**
   223     /**
   191      * ChangePipeState
   224      * ChangePipeState
   192      * @param TPipeInfo::EPipeState aState
   225      * @param TPipeInfo::EPipeState aState
   193      */
   226      */
   194     void ChangePipeState( TPipeInfo::EPipeState aState );
   227     void ChangePipeState( TPipeInfo::EPipeState aState );
   195     
   228     
   196 #endif
   229     /**
       
   230      * HandlePepCtrlResp
       
   231      * @param TIsiReceiveC& aReceivedMessage Message data 
       
   232      */
       
   233     void HandlePepCtrlResp( const TIsiReceiveC& aReceivedMessage );
       
   234 
   197 private:
   235 private:
   198     
   236     
   199     RIscApi& iIscApi;
   237     RIscApi& iIscApi;
   200     TUint iModemAtObjId;            //Modem AT Controller Obj-id
   238     TUint iModemAtObjId;            //Modem AT Controller Obj-id
   201     TUint iModemAtDevId;            //Modem AT Controller device-id
   239     TUint iModemAtDevId;            //Modem AT Controller device-id
   202     TUint iDataportDevId;           //Dataport device-id
   240     TUint iDpDevId;             //Dataport device-id
   203     TUint iDataportObjId;           //Dataport obj-id
   241     TUint iDpObjId;             //Dataport obj-id
   204     TPipeInfo iPipe;                //Pipehandle, pipe status and pipe id's
   242     TPipeInfo iPipe;            //Pipehandle, pipe status and pipe id's
   205     CModemAtHandler& iAtHandler;    //forwards AT-commands to the AT MODEM
   243     CModemAtHandler& iAtHandler;    //forwards AT-commands to the AT MODEM
   206     CActiveSchedulerWait* iSchedulerWait;
   244     CActiveSchedulerWait* iSchedulerWait;
   207     };
   245     };
   208 
   246 
   209 #endif  // CMODEMATPIPECONTROLLER_H
   247 #endif  // CMODEMATPIPECONTROLLER_H