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

📄 cvmcon.cpp

📁 SITEL的2.4G无线分机CVM的客户端PP参考程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:
  {
    tempDataPtr[0] = KEY_MESSAGE; // primitiv LoByte 0x01 
    tempDataPtr[1] = 0;           // primitiv HiByte 0x00
    tempDataPtr[2] = Key;
    tempLength = 1;
    sendmail_ReceivePacket(tempLength, tempDataPtr);
 //    Sleep(1000);   // Take it easy..
    Key = _getch();  // Get keypress
  }
  printf("\n-Exiting..\n");
}


static void DataInit(void)
{
  HsDataReadyIndCount = 0;
  // We are allowed to send up to 5 ready req's in order to utilize the serial string fully
  BUSM_SendMailP0(0, USER_TASK, API_PP_DATA_RECEIVE_READY_REQ);
  BUSM_SendMailP0(0, USER_TASK, API_PP_DATA_RECEIVE_READY_REQ);
  BUSM_SendMailP0(0, USER_TASK, API_PP_DATA_RECEIVE_READY_REQ);
  BUSM_SendMailP0(0, USER_TASK, API_PP_DATA_RECEIVE_READY_REQ);
  BUSM_SendMailP0(0, USER_TASK, API_PP_DATA_RECEIVE_READY_REQ);
  printf("<-API_PP_DATA_RECEIVE_READY_REQ * 5\n");
}

static void DataSend(uint8 Length)
{
  if (HsDataReadyIndCount > 0)
  {
    ApiPpDataSendReqType * NewMailPtr;
    NewMailPtr = (ApiPpDataSendReqType*) BUSM_AllocateMail(0, USER_TASK, ((uint16)(sizeof(ApiPpDataSendReqType)+Length-1)));
                
    if(NewMailPtr != NULL)
    {
      uint8 i;
      NewMailPtr->PrimitiveIdentifier = API_PP_DATA_SEND_REQ;
      NewMailPtr->bLength = Length;
      for (i = 0; i < Length; i++)
      {
        NewMailPtr->bData[i] = HsDataTestTxCounter++;
      }
      BUSM_DeliverMail((uint8*) NewMailPtr);

      HsDataTestTotalTxCount += Length;
      if (HsDataTestMode && clock() && clock() != HsDataTestStartTime)
      {
        printf("<-API_PP_DATA_SEND_REQ (%u bytes %u total %u bps avg)\n", Length, HsDataTestTotalTxCount,
               HsDataTestTotalTxCount*8*CLOCKS_PER_SEC/(clock()-HsDataTestStartTime));
      }
      else
      {
        printf("<-API_PP_DATA_SEND_REQ (%u bytes)\n", Length, HsDataTestTotalTxCount);
      }
      HsDataReadyIndCount--;
    }
  }
}


void sendmail_ReceivePacket(uint16 Length, uint8 *MailPtr)
{
  uint16 Primitiv = (uint16) (MailPtr[0] + (MailPtr[1]>>8));

  /**************************************************************************
  ***************************************************************************
  *                      PP-PCCON FUNCTIONS: BEGIN
  ***************************************************************************
  **************************************************************************/


  /**************************************************************************
  ***************************************************************************
  *                        GENERAL MMI HANDLING                
  ***************************************************************************
  **************************************************************************/
  switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
  {

#ifndef RSX
    case INITTASK:
      printf("RSX Init...\n");
      BUSM_SendMailP0(0, USER_TASK, CVM_PP_LOCKED_STATUS_REQ);  
      break;
#endif

    case KEY_MESSAGE:
      switch(((recDataType*) MailPtr)->bData[0])
      {
        case 'h':
          printf("\nCVM_PP_API: MmiState = %x\n", MmiState);
          printf("t   : Test communication to task\n");
          printf("u   : External Hook off\n");
          printf("i   : Internal Hook off\n");
          printf("o   : Hook on\n");
          printf("0-9,*,#: Dial Digits\n");
          printf("x   : Start Registration with PpNo1, AC:1234\n");
          
          printf("v/V : AudioVolume Up/down\n");
          printf("j/J : Mute/UnMute microphone\n");
          printf("m/M : Start/Stop melody test\n");
          printf("n/N : Start/Stop tone test\n");
          printf("b   : test keybeep\n");
          
          printf("p/P : Enable/Disable headset mode\n");
          printf("f/F : Enable/Disable handsfree mode\n");
          printf("w/W : Busmode: UART/SPI\n");
          printf("c/C : Test Clock  : Read/Set Timeclock\n");
          printf("shift+2: Test Clock  : Set remote Timeclock\n");
          printf("e/E : Test Eeprom : Read/Write 8 bytes eep at adr 0x0800\n");
          printf("g/G : Test RemoteEeprom : Read/Write 8 bytes eep at adr 0x0800\n");
//          printf("s/S : Test Ram/Reg: Read/Write 8 bytes ram at adr 0xBFF0\n");
          printf("d   : Test IwuData: Send 4 bytes data from PP to FP\n");
          
          printf(".   : Deregister PpNo1 (PP only)\n");
          printf("Shift+7,8,9,0: [/()=] Remote deregister PpNo1-PpNo4\n");

          printf("!   : PowerOff PP\n");

          printf("z   : Enter WT mode (GrpID: 0123, HSNo: 01)\n");
          printf("Z   : Enter WT mode (GrpID: 0123, HSNo: 02)\n");
          printf("q   : Exit WT mode\n");

          printf("H   : High speed data, hook off\n");
          printf("d   : High speed data, send packet\n");
          printf("T   : High speed data, toggle test\n");
          printf("+/- : High speed data, adjust packet length\n");

          printf("@   : Read RSSI\n");
          printf("l   : LockedStatus\n");

          printf("?   : Extended commands\n\n");
          break;

        case '?':
          printf("\n");
          printf("CTRL+A : Put callparty on hold & answer\n");
          printf("CTRL+S : Swap call\n");
          printf("CTRL+C : Conference with callparty on hold\n");
          printf("CTRL+R : Resume call with callparty on hold\n"); 
          printf("CTRL+U : Special hold/release operation\n");
          break;


//          case 's':
//            {
//              CvmRamReadReqType * NewMailPtr;
// 
//              NewMailPtr = (CvmRamReadReqType*) BUSM_AllocateMail(0, USER_TASK, sizeof(CvmRamReadReqType));
//              if(NewMailPtr != NULL)
//              {
//                 NewMailPtr->PrimitiveIdentifier = CVM_RAM_READ_REQ;
//                 NewMailPtr->w32DataAdr     = (uint32)0x0000BFF0L; // read register at adr 0x0000BFF0
//                 NewMailPtr->bDataLength    = 8; // NoOfBytes to read
//                 BUSM_DeliverMail((uint8*) NewMailPtr);
//              }
//              printf("Testing: ram/register read 8 bytes at adr 0xBFF0\n");
//            }  
//            break;                                           
// 
//          case 'S':
//            {
//              CvmRamWriteReqType * NewMailPtr;
// 
//              NewMailPtr = (CvmRamWriteReqType*) BUSM_AllocateMail(0, USER_TASK, (sizeof(CvmRamWriteReqType)+7));
//              if(NewMailPtr != NULL)
//              {
//                 NewMailPtr->PrimitiveIdentifier = CVM_RAM_WRITE_REQ;
//                 NewMailPtr->w32DataAdr = 0x0000BFF0; // write to ram adr 0x0000BFF0
//                 NewMailPtr->bDataLength = 8;
//                 NewMailPtr->bData[0]    = 0x11;
//                 NewMailPtr->bData[1]    = 0x22;
//                 NewMailPtr->bData[2]    = 0x33;
//                 NewMailPtr->bData[3]    = 0x44;
//                 NewMailPtr->bData[4]    = 0x55;
//                 NewMailPtr->bData[5]    = 0x66;
//                 NewMailPtr->bData[6]    = 0x77;
//                 NewMailPtr->bData[7]    = 0x88;
//                 BUSM_DeliverMail((uint8*) NewMailPtr);
//              }
//              printf("Testing: writing 8 bytes at adr 0x0000BFF0\n");
//            }
//            break;

         case 't':
           // Send the mail to target:
           // ProgramId: O, obsolete always send to the connected target.
           // TaskId: USER_TASK
           // Primitive: START_PING_PONG
           // Parm1: This program ID, debug_ProgramId
           // Parm2: This task ID.
           BUSM_SendMailP2(0, USER_TASK, START_PING_PONG, (uint8) debug_ProgramId, 0);
           printf("Testing communication to Usertask\n");
           break;
           
         case 'X': // production test command "tonetest.bat" simulation
            BUSM_SendMailP2(0, TB_HANDLE_TASK, TEST_CMD_req, 0x95, 0x01);
            printf("<-TB_HANDLE_TASK(0x00), TEST_CMD_req(0x005D), TEST_TONE(0x95), ON(0x01)\n");
            break;              
           
           
         case '@':
           BUSM_SendMailP0(0, USER_TASK, API_PP_READ_RSSI_REQ);
           break;

         case 'e':
           printf("Testing: eeprom read 8 bytes at adr 0x0800\n");
           BUSM_SendMailP3(0, USER_TASK, CVM_EEPROM_READ_REQ, 0x00, 0x08, 8); // read 8 bytes of eeprom at adr 0x0800
           break;          


         case 'E':
           {
             CvmEepromWriteReqType * NewMailPtr;

             NewMailPtr = (CvmEepromWriteReqType*) BUSM_AllocateMail(0, USER_TASK, (sizeof(CvmEepromWriteReqType)+7));
             if(NewMailPtr != NULL)
             {
                NewMailPtr->PrimitiveIdentifier = CVM_EEPROM_WRITE_REQ;
                NewMailPtr->wEepAdr     = 0x0800;
                NewMailPtr->bEepLength  = 8;
                NewMailPtr->bEepData[0] = 0x11;
                NewMailPtr->bEepData[1] = 0x22;
                NewMailPtr->bEepData[2] = 0x33;
                NewMailPtr->bEepData[3] = 0x44;
                NewMailPtr->bEepData[4] = 0x55;
                NewMailPtr->bEepData[5] = 0x66;
                NewMailPtr->bEepData[6] = 0x77;
                NewMailPtr->bEepData[7] = 0x88;
                BUSM_DeliverMail((uint8*) NewMailPtr); // write 8 bytes in eeprom at adr 0x0800
             }
             printf("Testing: eeprom write 8 bytes at adr 0x0800\n");
           }
           break;
           
         case 'g':
           printf("Testing: remote eeprom read 8 bytes at adr 0x0800\n");
           BUSM_SendMailP3(0, USER_TASK, CVM_REMOTE_EEP_READ_REQ, 0x00, 0x08, 8); // read 8 bytes of eeprom at adr 0x0800
           break;          

         case '!':
           printf("<-CVM_BAT_POWER_OFF_REQ\n");
           BUSM_SendMailP0(0, USER_TASK, CVM_BAT_POWER_OFF_REQ);
           break;          


         case 'G':
           {
             CvmEepromWriteReqType * NewMailPtr;

             NewMailPtr = (CvmEepromWriteReqType*) BUSM_AllocateMail(0, USER_TASK, (sizeof(CvmEepromWriteReqType)+7));
             if(NewMailPtr != NULL)
             {
                NewMailPtr->PrimitiveIdentifier = CVM_REMOTE_EEP_WRITE_REQ;
                NewMailPtr->wEepAdr     = 0x0800;
                NewMailPtr->bEepLength  = 8;
                NewMailPtr->bEepData[0] = 0x88;
                NewMailPtr->bEepData[1] = 0x77;
                NewMailPtr->bEepData[2] = 0x66;
                NewMailPtr->bEepData[3] = 0x55;
                NewMailPtr->bEepData[4] = 0x44;
                NewMailPtr->bEepData[5] = 0x33;
                NewMailPtr->bEepData[6] = 0x22;
                NewMailPtr->bEepData[7] = 0x11;
                BUSM_DeliverMail((uint8*) NewMailPtr); // write 8 bytes in eeprom at adr 0x0800
             }
             printf("Testing: eeprom write 8 bytes at adr 0x0800\n");
           }
           break;

         case 'c':
           printf("Testing: read realtime clock\n");
           BUSM_SendMailP0(0, USER_TASK, CVM_GET_TIME_REQ);
           break;          

         case 'C':
           {
             CvmSetTimeReqType * NewMailPtr;

             NewMailPtr = (CvmSetTimeReqType*) BUSM_AllocateMail(0, USER_TASK, (sizeof(CvmSetTimeReqType)));
             if(NewMailPtr != NULL)
             {
                NewMailPtr->PrimitiveIdentifier = CVM_SET_TIME_REMOTE_REQ;
                NewMailPtr->bYear    = 3;
                NewMailPtr->bMonth   = 1;
                NewMailPtr->bDay     = 9;
                NewMailPtr->bHours   = 16;
                NewMailPtr->bMinutes = 57;
                BUSM_DeliverMail((uint8*) NewMailPtr); // write 8 bytes in eeprom at adr 0x0800
             }
           printf("Testing: set realtime clock to: 9-1-2003, 16:57\n");
           }  
           break;          
         
         case 0x22:
           {
             CvmSetTimeReqType * NewMailPtr;

             NewMailPtr = (CvmSetTimeReqType*) BUSM_AllocateMail(0, USER_TASK, (sizeof(CvmSetTimeReqType)));
             if(NewMailPtr != NULL)
             {
                NewMailPtr->PrimitiveIdentifier = CVM_SET_TIME_REQ;
                NewMailPtr->bYear    = 9;
                NewMailPtr->bMonth   = 9;
                NewMailPtr->bDay     = 9;
                NewMailPtr->bHours   = 9;
                NewMailPtr->bMinutes = 9;
                BUSM_DeliverMail((uint8*) NewMailPtr); // write 8 bytes in eeprom at adr 0x0800
             }
           printf("Testing: set remote realtime clock to: 9-9-2009, 09:09\n");
           }  
           break;          

         case 'a': // OpenAudio
           BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_REQ);
           break;

         case 'A': // CloseAudio
           BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
           break;

         case 'm': // StartMelody
           BUSM_SendMailP3(0, USER_TASK, CVM_PP_AUDIO_START_MELODY_REQ, 1, 9, 0);
           break;
         
         case 'n': // StartTone
           BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 13, 9);
           break;

         case 'M': // StopMelody
           BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_MELODY_REQ, 0);
           break;

         case 'N': // StopTone
           BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
           break;

         case 'b': // KeyBeep
           BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_KEY_BEEP_REQ, 9);
           break;
           
         case 'l': // LockedStatus
           BUSM_SendMailP0(0, USER_TASK, CVM_PP_LOCKED_STATUS_REQ);
           break;

         case 'w': // busmode UART
           printf("Busmode select: UART\n");
           BUSM_SendMailP1(0, USER_TASK, CVM_BUS_SELECT_REQ, 0);
           break;

         case 'W': // busmode SPI
           printf("Busmode select: SPI\n");
           BUSM_SendMailP1(0, USER_TASK, CVM_BUS_SELECT_REQ, 1);
           break;

         case 'z': // Enter WT mode (GrpID: 0123, HSNo: 01)
           printf("<-API_WT_ENTER_REQ, GrpID: 0123, HSNo: 01\n");
           BUSM_SendMailP3(0, USER_TASK, API_WT_ENTER_REQ, 23, 01, 01);
           break;

⌨️ 快捷键说明

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