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

📄 cvmcon.cpp

📁 SITEL的2.4G无线分机CVM的客户端PP参考程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:
         case 'Z': // Enter WT mode (GrpID: 0123, HSNo: 02)
           printf("<-API_WT_ENTER_REQ, GrpID: 0123, HSNo: 02\n");
           BUSM_SendMailP3(0, USER_TASK, API_WT_ENTER_REQ, 23, 01, 02);
           break;
      }
      break;
      
    case STOP_PING_PONG:
       printf("Communication OK\n");
       break;

    case API_PP_READ_RSSI_CFM:
       printf("\nAPI_PP_READ_CFM: (%x) ", (((ApiPpReadRssiCfmType*) MailPtr)->bRssi));
       break;

    case CVM_EEPROM_READ_CFM:
      {
        uint8 xx;

        printf("CVM_EEPROM_READ_CFM: (%x) ", (((CvmEepromReadCfmType*) MailPtr)->bEepLength));
        for(xx=0;xx<(((CvmEepromReadCfmType*) MailPtr)->bEepLength); xx++)
        {
         printf("%x ", (((CvmEepromReadCfmType*) MailPtr)->bEepData[xx]));
        }
        printf("\n");
      }
      break;

    case CVM_REMOTE_EEP_READ_CFM:
      {
        uint8 xx;

        printf("CVM_REMOTE_EEP_READ_CFM: (%x) ", (((CvmEepromReadCfmType*) MailPtr)->bEepLength));
        for(xx=0;xx<(((CvmEepromReadCfmType*) MailPtr)->bEepLength); xx++)
        {
         printf("%x ", (((CvmEepromReadCfmType*) MailPtr)->bEepData[xx]));
        }
        printf("\n");
      }
      break;

      
    case CVM_RAM_READ_CFM:
      {
        uint8 xx;

        printf("CVM_RAM_READ_CFM: (%x) ", (((CvmRamReadCfmType*) MailPtr)->bDataLength));
        for(xx=0;xx<(((CvmRamReadCfmType*) MailPtr)->bDataLength); xx++)
        {
         printf("%x ", (((CvmRamReadCfmType*) MailPtr)->bData[xx]));
        }
        printf("\n");
      }
      break;
      


    case CVM_READ_PORT_CFM:
      printf("CVM_READ_PORT_CFM: (%x) \n", (((CvmReadPortCfmType*) MailPtr)->bData));
      break;


    case API_PP_IWU_DATA_IND:  
      {
        uint8 xx;

        printf("API_PP_IWU_DATA_IND: (%x) ", (((ApiPpIwuDataIndType*) MailPtr)->bDataLength));
        for(xx=0;xx<(((ApiPpIwuDataIndType*) MailPtr)->bDataLength); xx++)
        {
         printf("%x ", (((ApiPpIwuDataIndType*) MailPtr)->bData[xx]));
        }
        printf("\n");
      }
      break;

    case API_PP_UNITDATA_IND:  
      {
        uint8 xx;

        printf("API_PP_UNITDATA_IND: (%x) ", (((ApiPpUnitdataIndType*) MailPtr)->bDataLength));
        for(xx=0;xx<(((ApiPpUnitdataIndType*) MailPtr)->bDataLength); xx++)
        {
         printf("%x ", (((ApiPpUnitdataIndType*) MailPtr)->bData[xx]));
        }
        printf("\n");
      }
      break;



    case CVM_GET_TIME_CFM:
      printf("->CVM_GET_TIME_CFM: %3d,%2d,%2d,%2d,%2d,%2d,%2d \n", 
              (((CvmGetTimeCfmType*) MailPtr)->bYear),
              (((CvmGetTimeCfmType*) MailPtr)->bMonth),
              (((CvmGetTimeCfmType*) MailPtr)->bDay),
              (((CvmGetTimeCfmType*) MailPtr)->bHours),
              (((CvmGetTimeCfmType*) MailPtr)->bMinutes),
              (((CvmGetTimeCfmType*) MailPtr)->bSeconds),
              (((CvmGetTimeCfmType*) MailPtr)->bSyncStatus) );
      break;

    case CVM_SET_TIME_CFM:
      printf("->CVM_SET_TIME_CFM: (%x) \n", (((CvmReadPortCfmType*) MailPtr)->bData));
      break;
      
      
    case CVM_PP_LOCKED_STATUS_CFM:
        if(MmiState == MMI_INIT)
        {
          if(((CvmPpLockedStatusCfmType*) MailPtr)->bLockedStatus)
          { // locked
           MmiState = MMI_STANDBY;
           printf("Handset in Service (Locked to Base)\n");
          }
          else
          { // unlocked
           MmiState = MMI_UNLOCKED;
           printf("Handset Out of Service (Unlocked)\n");
          }
        }
        else
        {
          printf("CVM_PP_LOCKED_STATUS_CFM: %s\n", (((CvmPpLockedStatusCfmType*) MailPtr)->bLockedStatus)    ? "Locked" : "Unlocked");
        }  
        break;
      
    case API_PP_MESSAGE_WAITING_IND:
      printf("->API_PP_MESSAGE_WAITING_IND: %x\n", (((ApiMessageWaitingIndType*) MailPtr)->bIndication));
      break;
    
    
   case CVM_PP_ON_KEY_IND:
     printf("->CVM_PP_ON_KEY_IND: %x\n", (((CvmPpOnKeyIndType*) MailPtr)->bKeyState));
     break;

    ////////////////////////////////////////////

    case API_PP_ACCESS_RIGHTS_CFM:
      printf("Registration Succesfull: bHsNr=%x, fKnownFp=%x\n", 
           (((ApiPpAccessRightsCfmType*) MailPtr)->bHsNr),      
           (((ApiPpAccessRightsCfmType*) MailPtr)->fKnownFp) );
      MmiState = MMI_STANDBY;
      break;

    case API_PP_ACCESS_RIGHTS_REJ:
      printf("Registration Unsuccesfull\n");
      MmiState = MMI_UNLOCKED;
      break;

    case API_PP_DELETE_SUBS_CFM:
      printf("Subscription Terminated\n");
      break;

    case API_PP_LOCKED_IND:
      MmiState = MMI_STANDBY;
      printf("Handset in Service (Locked to Base)\n");
      break;

    case API_PP_UNLOCKED_IND:
      MmiState = MMI_UNLOCKED;
      BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_MELODY_REQ, 0);
      printf("Handset Out of Service (Unlocked)\n");
      break;
      
    case API_PP_SEARCH_IND:
      printf("Registration Enabled Base Found\n");
      break;

    case API_PP_DISP_INFO_IND:
      printf("Display String Recieved from Base :\n");
      break;

    case API_WT_ENTER_CFM:
      printf("->API_WT_ENTER_CFM\n");
      MmiState = MMI_WT_STANDBY;
      printf("MmiState = MMI_WT_STANDBY\n");
      break;

    case CVM_PP_PLUG_STATUS_IND:
      printf("->CVM_PP_PLUG_STATUS_IND: %x\n", (((CvmFpPpPlugStatusIndType*) MailPtr)->bPlugState));
      break;

    case CVM_PP_LINE_STATUS_IND:
      printf("->CVM_PP_LINE_STATUS_IND: %x\n", (((CvmFpPpPlugStatusIndType*) MailPtr)->bPlugState));
      break;

    case API_PP_CLIP_IND:
      {
        uint8 Number[CID_TELNO_MAX+1], Name[CID_NAME_MAX+1], Time[12], Type, ReasonNumber, ReasonName;
        ApiClipIndDataType *ClipDataPtr;

        ClipDataPtr = ((ApiClipIndDataType *) &((recDataType*) MailPtr)->PrimitiveIdentifier);

        // Clear local variables
        memset(Number, 0x20, sizeof(Number));
        memset(Name, 0x20, sizeof(Name));
        memset(Time, 0x20, sizeof(Time));
        Type = ReasonNumber = ReasonName = 0x00;

        // Get CLIP Type
        Type = (ClipDataPtr->bClipHeader.bClipType);

        // Get Reason codes for name and number
        ReasonName = (((ClipDataPtr->bClipHeader.bClipReason)&0xF0)>>4);
        ReasonNumber = ((ClipDataPtr->bClipHeader.bClipReason)&0x0F);

        // Get Time stamp
        Time[0]  = ((((ClipDataPtr->bClipHeader.bClipDate)&0xF0)>>4)+0x30);
        Time[1]  = (((ClipDataPtr->bClipHeader.bClipDate)&0x0F)+0x30);
        Time[2]  = '/';
        Time[3]  = ((((ClipDataPtr->bClipHeader.bClipMonth)&0xF0)>>4)+0x30);
        Time[4]  = (((ClipDataPtr->bClipHeader.bClipMonth)&0x0F)+0x30);
        Time[5]  = '-';
        Time[6]  = ((((ClipDataPtr->bClipHeader.bClipHours)&0xF0)>>4)+0x30);
        Time[7]  = (((ClipDataPtr->bClipHeader.bClipHours)&0x0F)+0x30);
        Time[8]  = ':';
        Time[9]  = ((((ClipDataPtr->bClipHeader.bClipMinutes)&0xF0)>>4)+0x30);
        Time[10] = (((ClipDataPtr->bClipHeader.bClipMinutes)&0x0F)+0x30);
        Time[11] = '\0';

        // Get Name
        memcpy(&Name, ClipDataPtr->bClipData, ClipDataPtr->bClipHeader.bClipNameLength);
        Name[ClipDataPtr->bClipHeader.bClipNameLength] = '\0';

        // Get Number
        memcpy(&Number,  &ClipDataPtr->bClipData[ClipDataPtr->bClipHeader.bClipNameLength], ClipDataPtr->bClipHeader.bClipNumberLength);
        Number[ClipDataPtr->bClipHeader.bClipNumberLength] = '\0';

        // Print result
        lnClipTestCnt++;

        printf("->API_PP_CLIP_IND (#%d)\n",lnClipTestCnt);
        printf("    Name         : %s\n", Name);
        printf("    Number       : %s\n", Number);
        printf("    Time         : %s\n", Time);
        printf("    Type         : %d\n", Type);
        printf("    Reason Name  : %d\n", ReasonName);
        printf("    Reason Number: %d\n", ReasonNumber);

      }
      break;


      case API_PP_AUTH_UPI_IND:
        printf("->API_PP_AUTH_UPI_IND (UPI authtentication indication)\n");
        {
           CvmPpAuthUpiResType * NewMailPtr;

           NewMailPtr = (CvmPpAuthUpiResType*) BUSM_AllocateMail(0, USER_TASK, (sizeof(CvmPpAuthUpiResType)));

           if(NewMailPtr != NULL)
           {
              NewMailPtr->PrimitiveIdentifier = API_PP_AUTH_UPI_RES;
              NewMailPtr->bUpi[0] = 0xff;
              NewMailPtr->bUpi[1] = 0xff;
              NewMailPtr->bUpi[2] = 0x12;
              NewMailPtr->bUpi[3] = 0x34;
              NewMailPtr->bUpi[4] = '#';
              BUSM_DeliverMail((uint8*) NewMailPtr);
              printf("<-API_PP_AUTH_UPI_RES (UPI authtentication auto answer 'FFFF1234#')\n");
           }
        }  
        break;
  }         

  /**************************************************************************
  ***************************************************************************
  *                     STATE DEPENDENT MMI HANDLING                
  ***************************************************************************
  **************************************************************************/
  switch(MmiState)
  {
   /**************************************************************
   *                         MMI_INIT
   **************************************************************/
    case MMI_INIT:  
      switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
      {
        case KEY_MESSAGE:
          switch(((recDataType*) MailPtr)->bData[0])
          {
            case ' ': // start subscription to basestation
              MmiState = MMI_STANDBY;
              printf("Locked detection aborted\n");
              break;
          }
          break;        
      }
      break;    

   /**************************************************************
   *                       MMI_UNLOCKED
   **************************************************************/
    case MMI_UNLOCKED:  
      switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
      {
        case KEY_MESSAGE:
          switch(((recDataType*) MailPtr)->bData[0])
          {
            case 'x': // start subscription to basestation
             {
               ApiPpAccessRightsReqType * NewMailPtr;

               NewMailPtr = (ApiPpAccessRightsReqType*) BUSM_AllocateMail(0, USER_TASK, (sizeof(ApiPpAccessRightsReqType)));
        
               if(NewMailPtr != NULL)
               {
                  NewMailPtr->PrimitiveIdentifier = API_PP_ACCESS_RIGHTS_REQ;
                  NewMailPtr->bSubscriptionNo = 0x01;
                  NewMailPtr->AcString[0] = 0xFF;
                  NewMailPtr->AcString[1] = 0xFF;
                  NewMailPtr->AcString[2] = 0x12;
                  NewMailPtr->AcString[3] = 0x34;
                  BUSM_DeliverMail((uint8*) NewMailPtr);
                  printf("<-API_PP_ACCESS_RIGHTS_REQ\n");
               }
             }  
             break;
            
            case 'l': // do nothing
              break;  
              

            case 'u': // external hook off
            case 'i': // external hook off
            case 'o': // hook on
            case 'H': // high speed data
              printf("Can't connect, PP is unlocked !!!:\n");
              break;
          }
          break;    
      }     
      break;        


   /**************************************************************
   *                       MMI_STANDBY
   **************************************************************/
    case MMI_STANDBY:     
      switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
      {
        case KEY_MESSAGE:
          switch(((recDataType*) MailPtr)->bData[0])
          {
            case 'u': // external hook off

              BUSM_SendMailP1(0, USER_TASK, API_PP_SETUP_REQ, 0/*callclass=EXT*/);
              MmiCallClass = 0;/*callclass=EXT*/ // store callclass for later switching
              MmiState = MMI_WAIT_SETUP;
              printf("<-MMI_WAIT_SETUP(EXT)\nMmiState = MMI_WAIT_SETUP\n");

              lnClipTestCnt=0;
              break;

            case 'i': // intercom hook off
              BUSM_SendMailP1(0, USER_TASK, API_PP_SETUP_REQ, 1/*callclass=INT*/);
              MmiCallClass = 1;/*callclass=INT*/ // store callclass for later switching
              MmiState = MMI_WAIT_SETUP;
              printf("<-MMI_WAIT_SETUP(INT)\nMmiState = MMI_WAIT_SETUP\n");

⌨️ 快捷键说明

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