⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cvmcon.cpp

📁 SITEL的2.4G无线分机CVM的客户端PP参考程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:

            case KEY_CTRL_S: 
             
             printf("\nCTRL+S......");
             SendSwCtrlCmdP0( CVM_SW_CMD_SWAP_HOLD);
             break;

            case KEY_CTRL_C: 
             SendSwCtrlCmdP0( CVM_SW_CMD_CONF_WITH_HOLD);
             break;

            case KEY_CTRL_R:
             SendSwCtrlCmdP0( CVM_SW_CMD_RESUME_HOLD);     
             break;

            case KEY_CTRL_U:
             // hold/release with timeout = 60s 
             SendSwCtrlCmdP2( CVM_SW_CMD_HOLD_RELEASE_SPECIAL , 0x00, 0x06);     
             break;

          }
          break;    

        case API_PP_CONNECT_IND:
          BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
          BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_REQ); // new
          printf("->API_PP_CONNECT_IND\n");
          break;

        case API_PP_CALL_PROCEEDING_IND:
          printf("->API_PP_CALL_PROCEEDING_IND\n");
//           BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_REQ);
          BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
          break;
          
        case API_PP_ALERT_IND:
          printf("->API_PP_ALERT_IND\n");
          break;

        case API_PP_RELEASE_IND:
          BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
          BUSM_SendMailP0(0, USER_TASK, API_PP_RELEASE_RES);
          BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
          MmiState = MMI_STANDBY;
          printf("->API_PP_RELEASE_IND\nMmiState = MMI_STANDBY\n");
          break;

        case API_PP_REJECT_IND:
           BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
           BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
           MmiState = MMI_STANDBY;
           printf("->API_PP_REJECT_IND\nMmiState = MMI_STANDBY\n");
           break;

        case API_PP_SIGNAL_ON_IND:
          /**************************************
          *   DIAL_TONE_ON               = 0x00,
          *   RINGBACK_TONE_ON           = 0x01,
          *   INTERCEPT_TONE_ON          = 0x02,
          *   NETWORK_CONGESTION_TONE_ON = 0x03,
          *   BUSY_TONE_ON               = 0x04,
          *   CONFIRM_TONE_ON            = 0x05,
          *   ANSWER_TONE_ON             = 0x06,
          *   CALL_WAITING_TONE_ON       = 0x07,
          *   TONES_OFF                  = 0x3F,
          *   ALERTING_ON_PATTERN0       = 0x40,
          *   ALERTING_ON_PATTERN1       = 0x41,
          *   ALERTING_ON_PATTERN2       = 0x42,
          *   ALERTING_ON_PATTERN3       = 0x43,
          *   ALERTING_ON_PATTERN4       = 0x44,
          *   ALERTING_ON_PATTERN5       = 0x45,
          *   ALERTING_ON_PATTERN6       = 0x46,
          *   ALERTING_ON_PATTERN7       = 0x47,
          *   ALERTING_ON_CONTINUOUS     = 0x48,
          *   ALERTING_OFF               = 0x4F
          **************************************/
          printf("->API_PP_SIGNAL_ON_IND: %x\n", ((recDataType*) MailPtr)->bData[0]);
          switch(((recDataType*) MailPtr)->bData[0])
          {
            case 0x00: // DIAL_TONE_ON
              BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x11/*TONE_DIAL_ID*/, 9);
              break;
          
            case 0x01: // RINGBACK_TONE_ON
              BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x0F/*TONE_RING_BACK_ID*/, 9);
              break;

            case 0x02: // INTERCEPT_TONE_ON
              BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x13/*TONE_CALL_WAITING_ID*/, 9);
              break;

            case 0x03: // NETWORK_CONGESTION_TONE_ON
              BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x10/*TONE_NETWORD_CONGESTIONS_ID*/, 9);
              break;

            case 0x07: // CALL_WAITING_TONE_ON
              BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x13/*TONE_CALL_WAITING_ID*/, 9);
              break;
          } 
          break;
          
        case API_PP_SIGNAL_OFF_IND:
          printf("->API_PP_SIGNAL_OFF_IND: %x\n", ((recDataType*) MailPtr)->bData[0]);
          BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
          break;
        

      }     
      break;        


   /**************************************************************
   *                       MMI_WAIT_RELEASE
   **************************************************************/
    case MMI_WAIT_RELEASE:
      lnClipTestCnt=0;

      switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
      {
        case API_PP_RELEASE_CFM:
          MmiState = MMI_STANDBY;
          printf("->API_PP_RELEASE_CFM\nMmiState = MMI_STANDBY\n");
          break;  
      }     
      break;        

   /**************************************************************
   *                       MMI_BUSY
   **************************************************************/
    case MMI_BUSY:
      switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
      {
        case KEY_MESSAGE:
          switch(((recDataType*) MailPtr)->bData[0])
          {
            case 'x': // dummy
              break;
          }
          break;    
      }     
      break;        


   /**************************************************************
   *                     MMI_SERVICE_CALL
   **************************************************************/
    case MMI_SERVICE_CALL:
      switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
      {
        case KEY_MESSAGE:
          switch(((recDataType*) MailPtr)->bData[0])
          {
            case 'o': // hook on
              BUSM_SendMailP1(0, USER_TASK, API_PP_RELEASE_REQ, 0); // no reason
              MmiState = MMI_WAIT_RELEASE;
              BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
              printf("<-API_PP_RELEASE_REQ\nMmiState = MMI_WAIT_RELEASE\n");
              break;

            case 'd': // data send test iwu to FP (12 34 56 78)
              {
                ApiPpIwuDataReqType * NewMailPtr;

                NewMailPtr = (ApiPpIwuDataReqType*) BUSM_AllocateMail(0, USER_TASK, (sizeof(ApiPpIwuDataReqType)+3));
      
                if(NewMailPtr != NULL)
                {
                   NewMailPtr->PrimitiveIdentifier = API_PP_IWU_DATA_REQ;
                   NewMailPtr->bDataLength = 4;
                   NewMailPtr->bData[0] = 0x11;
                   NewMailPtr->bData[1] = 0x22;
                   NewMailPtr->bData[2] = 0x33;
                   NewMailPtr->bData[3] = 0x44;
                   BUSM_DeliverMail((uint8*) NewMailPtr);
                   printf("<-API_PP_IWU_DATA_REQ (IWU_IWU_USER_DEFINED)\n");
                }
              }  
              break;

            case ':': // start FP remote un-subscription
            case '/': // start FP remote un-subscription
            {
              BUSM_SendMailP1(0, USER_TASK, API_PP_REMOTE_DELETE_SUBS_REQ, 0x01/*PpNo1*/);
              printf("<-API_PP_REMOTE_DELETE_SUBS_REQ (PpNo#1)\n");
            }
            break;

            case '(': // start FP remote un-subscription
            {
              BUSM_SendMailP1(0, USER_TASK, API_PP_REMOTE_DELETE_SUBS_REQ, 0x02/*PpNo2*/);
              printf("<-API_PP_REMOTE_DELETE_SUBS_REQ (PpNo#2)\n");
            }
            break;

            case ')': // start FP remote un-subscription
            {
              BUSM_SendMailP1(0, USER_TASK, API_PP_REMOTE_DELETE_SUBS_REQ, 0x03/*PpNo3*/);
              printf("<-API_PP_REMOTE_DELETE_SUBS_REQ (PpNo#3)\n");
            }
            break;

            case '=': // start FP remote un-subscription
            {
              BUSM_SendMailP1(0, USER_TASK, API_PP_REMOTE_DELETE_SUBS_REQ, 0x04/*PpNo4*/);
              printf("<-API_PP_REMOTE_DELETE_SUBS_REQ (PpNo#4\n");
            }
            break;
          }
          break;    

        case API_PP_ALERT_IND:
          printf("->API_PP_ALERT_IND\n");
          break;

        case API_PP_RELEASE_IND:
          BUSM_SendMailP0(0, USER_TASK, API_PP_RELEASE_RES);
          BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
          MmiState = MMI_STANDBY;
          printf("->API_PP_RELEASE_IND\nMmiState = MMI_STANDBY\n");
          break;

        case API_PP_REJECT_IND:
           MmiState = MMI_STANDBY;
           BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
           printf("->API_PP_REJECT_IND\nMmiState = MMI_STANDBY\n");
           break;
      }     
      break;        

   /**************************************************************
   *                     MMI_EXT_DATA
   **************************************************************/
    case MMI_EXT_DATA:
      switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
      {
        case KEY_MESSAGE:
          switch(((recDataType*) MailPtr)->bData[0])
          {
            case 'o': // hook on
              BUSM_SendMailP1(0, USER_TASK, API_PP_RELEASE_REQ, 0); // no reason
              MmiState = MMI_WAIT_RELEASE;
              BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
              printf("<-API_PP_RELEASE_REQ\nMmiState = MMI_WAIT_RELEASE\n");
              break;

            case '+':
              printf("Setting HsDataTestLength to %u\n", ++HsDataTestLength);
              break;
              
            case '-':
              printf("Setting HsDataTestLength to %u\n", --HsDataTestLength);
              break;
              
            case 'd': // data send test iwu to FP
              DataSend(4);
              break;

            case 'T':
              HsDataTestMode = !HsDataTestMode;
              if (HsDataTestMode)
              {
                printf("Start data test\n");
                HsDataTestTotalTxCount = 0;
                HsDataTestStartTime = clock();
                while (HsDataReadyIndCount)
                {
                  DataSend(HsDataTestLength);
                }
              }
              else
              {
                printf("Stop data test\n");
              }
              break;
          }
          break;    

        case API_PP_RELEASE_IND:
          BUSM_SendMailP0(0, USER_TASK, API_PP_RELEASE_RES);
          MmiState = MMI_STANDBY;
          printf("->API_PP_RELEASE_IND\nMmiState = MMI_STANDBY\n");
          break;

        case API_PP_REJECT_IND:
           MmiState = MMI_STANDBY;
           printf("->API_PP_REJECT_IND\nMmiState = MMI_STANDBY\n");
           break;
           
        case API_PP_DATA_RECEIVE_IND:
          HsDataTestTotalRxCount += ((ApiPpDataReceiveIndType*)MailPtr)->bLength;
          printf("->API_PP_DATA_RECEIVE_IND (%u bytes %u total)\n", ((ApiPpDataReceiveIndType*)MailPtr)->bLength, HsDataTestTotalRxCount);
          {
            uint8 i;
            for (i = 0; i < ((ApiPpDataReceiveIndType*)MailPtr)->bLength; i++)
            {
              if (((ApiPpDataReceiveIndType*)MailPtr)->bData[i] != HsDataTestRxCounter++)
              {
                printf("Data error (byte %u): Received %2.2x Expected %2.2x!\n", i,
                       ((ApiPpDataReceiveIndType*)MailPtr)->bData[i], --HsDataTestRxCounter);
                HsDataTestRxCounter = ((ApiPpDataReceiveIndType*)MailPtr)->bData[i] + 1;
              }
            }
          }
          BUSM_SendMailP0(0, USER_TASK, API_PP_DATA_RECEIVE_READY_REQ);
          printf("<-API_PP_DATA_RECEIVE_READY_REQ\n");
          break;
          
        case API_PP_DATA_SEND_READY_IND:
          printf("->API_PP_DATA_SEND_READY_IND\n");
          HsDataReadyIndCount++;
          if (HsDataTestMode)
          {
            DataSend(HsDataTestLength);
          }
          break;
            
      }     
      break;
      
   /**************************************************************
   *                       MMI_WT_STANDBY
   **************************************************************/
    case MMI_WT_STANDBY:
      switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
      {
        case KEY_MESSAGE:
          switch(((recDataType*) MailPtr)->bData[0])
          {
            case 'u': // Enter WT FP mode
            case 'i': // Enter WT FP mode
              printf("<-API_WT_ENTER_FP_MODE_REQ\n");
              BUSM_SendMailP0(0, USER_TASK, API_WT_ENTER_FP_MODE_REQ);
              break;

            case 'q': // Exit WT mode
              printf("<-API_WT_EXIT_REQ\n");
              BUSM_SendMailP0(0, USER_TASK, API_WT_EXIT_REQ);
              break;
          }
          break;    

        case API_WT_ENTER_FP_MODE_CFM:
          printf("->API_WT_ENTER_FP_MODE_CFM\n");
          printf("<-CVM_PP_AUDIO_OPEN_ADPCM_OFF_REQ\n");
          BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_ADPCM_OFF_REQ);
          printf("<-CVM_PP_AUDIO_START_TONE_REQ, 0x11 (dial tone), 9\n");
          BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x11/*TONE_DIAL_ID*/, 9);
          MmiState = MMI_WT_FP_MODE;
          printf("MmiState = MMI_WT_FP_MODE\n");
          break;

        case API_WT_SETUP_IND:
          printf("->API_WT_SETUP_IND, CallerID: %x\n", ((ApiWTSetupIndType*) MailPtr)->bCallerId);
          printf("<-CVM_PP_AUDIO_START_MELODY_REQ, 2, 9, 0\n");
          BU

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -