📄 cvmcon.cpp
字号:
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 + -