Example #1
0
//*****************************************************************************
//Name        : EVT_Handler
//Author      : None
//Description : Event handle for XMS system
//Input       : esrParam - parameter
//Output      : None
//Return      : 1 - Success 
//              0 - Failure
//*****************************************************************************
DJ_Void EVT_Handler(DJ_U32 esrParam)
{
	Acs_Dev_List_Head_t* pAcsDevList = NULL;
	Acs_Evt_t*			 pAcsEvt = NULL;
	
	pAcsEvt = (Acs_Evt_t *)esrParam;
	
	switch(pAcsEvt->m_s32EventType)
	{
	case XMS_EVT_QUERY_DEVICE:
		if (!g_StartWorkFlag)
		{				
			pAcsDevList = (Acs_Dev_List_Head_t *)FetchEventData(pAcsEvt);
			switch (pAcsDevList->m_s32DeviceMain)
			{
			case XMS_DEVMAIN_INTERFACE_CH:		
				AddDeviceRes(pAcsDevList);
				break;
			}
		}
		break;

	case XMS_EVT_QUERY_DEVICE_END:
		if (!g_StartWorkFlag)
		{	
			pdlg->m_BtnStart.EnableWindow();
			InitDevice();
		}
		break;
	
	case XMS_EVT_OPEN_DEVICE:
		Ack_OpenDevice(pAcsEvt);
		break;

	case XMS_EVT_SIGMON:
		if (g_StartWorkFlag)
		{
		Ack_SigMon(pAcsEvt);
		}
		break;

	default:
		break;
	}
	
	return;
}
Example #2
0
// -------------------------------------------------------
DJ_Void EvtHandler(DJ_U32 esrParam)
{
	Acs_Evt_t *			    pAcsEvt = NULL;

	Acs_Dev_List_Head_t * pAcsDevList = NULL;
	Acs_GeneralProc_Data* pGeneral=NULL;

	char		TmpStr[256];
	char *      pStr = NULL;

	pAcsEvt = (Acs_Evt_t *) esrParam;

	DispEventInfo ( pAcsEvt );

	switch ( pAcsEvt->m_s32EventType )
	{
		case XMS_EVT_OPEN_STREAM:
			printf("");
			break;

		case XMS_EVT_QUERY_DEVICE:
			if ( !bStartWorkFlag )
			{
				pAcsDevList = ( Acs_Dev_List_Head_t *) ( (DJ_S8 *)pAcsEvt + sizeof(Acs_Evt_t) );

				//Add or modify device resource to pool when receive the device's event of the state changing
				AddDeviceRes ( pAcsDevList );
			}
			break; 

		case XMS_EVT_QUERY_DEVICE_END:	//get device list completely
			if ( !bStartWorkFlag )
			{
				pGeneral = (Acs_GeneralProc_Data*)FetchEventData(pAcsEvt);
				sprintf ( TmpStr, "Start work. DeviceNum = %d\n", TotalDevRes );
				AddMsg ( MSG_TYPE_OTHER, TmpStr );

				InitDeviceInfo();

				bStartWorkFlag = true;
			}
			break;

		case XMS_EVT_OPEN_DEVICE:
			OpenDeviceOK ( &pAcsEvt->m_DeviceID );						
			break;

		case XMS_EVT_CLOSE_DEVICE:
			CloseDeviceOK ( &pAcsEvt->m_DeviceID );

			pStr = GetString_DeviceAll(&pAcsEvt->m_DeviceID);
			sprintf(TmpStr,"Close devcie evt: %s",pStr);
			AfxMessageBox(TmpStr,NULL,MB_OK);
			break;

		case XMS_EVT_PLAYCSPREQ:
			{
				DJ_S32  r = 0;
				char MsgStr[100]={0};
				CSPPlayDataInfo_t     playCSP={0};
				Acs_CSPDataReq_Data * pCspReq = NULL;
				
				if(g_cspPlay == 0)
				{
					break;
				}

				pCspReq = (Acs_CSPDataReq_Data *)FetchEventData(pAcsEvt);
								
				if(g_cspFp == NULL)
				{
					g_cspFp = fopen(g_szCSPFile,"rb");
				}

				if(feof(g_cspFp))
				{
					fseek(g_cspFp,SEEK_SET,0);
					TRACE("Seek to Set\n");
				}
				
				playCSP.m_u16DataLen = pCspReq->m_u16ReqCspDataLen;
				playCSP.m_u8DataType = XMS_CSPPLAY_DATA_VOC;
				playCSP.m_u8TaskID = (DJ_U8)(GetTickCount() % 128);	
				
				long rr = fread(g_szDataBuf,sizeof(char),playCSP.m_u16DataLen,g_cspFp);
				TRACE("ReqDataLen = %d,sentData=%d\n",pCspReq->m_u16ReqCspDataLen,rr);
				
				r = XMS_ctsSendCSPData(g_acsHandle, &DevOpened[iOpenedIndex1].DevID, &playCSP,g_szDataBuf,NULL);
				if ( r < 0 )
				{
					sprintf ( MsgStr, "X(%d) XMS_ctsPlayCSP() FAIL! (%s)", 
						r, GetString_DeviceAll (&DevOpened[iOpenedIndex1].DevID)  );
					AddMsg ( MSG_TYPE_FUNCTION, MsgStr);
				}
				else
				{
					sprintf ( MsgStr, "XMS_ctsPlayCSP() OK! (%s)", 
						GetString_DeviceAll (&DevOpened[iOpenedIndex1].DevID));
					AddMsg ( MSG_TYPE_FUNCTION, MsgStr );
				}									
			}
			break;
		case XMS_EVT_CONTROLPLAY:
			g_cspPlay = 0;
			break;
		case XMS_EVT_RECORDCSP:
			{
				Acs_MediaCSPProc_Data * pCSPData = NULL;
								
				pCSPData = (Acs_MediaCSPProc_Data *)FetchEventData(pAcsEvt);				
				fwrite(pCSPData->m_u8StreamData,sizeof(char),pCSPData->m_u16DataLen,g_cspFp);				
			}
			break;
		default:
			break;
	}

}
Example #3
0
bool	InitSystem(void)
{
	RetCode_t	r;
	char		MsgStr[160];

	pdlg = (CXMSApi_TestDlg	*)theApp.m_pMainWnd;

	// Read From "Config.TXT"
	ReadFromConfig();

	// Init Combo Box
	InitComboBox();

	// Init m_ListMsg
	InitListMsg();

	// Init Conifg's text box
	InitTextBox();

	// init variable used by XMSApi_Test_Func.cpp
	InitVar_Func();

#ifdef	DEBUG_IN_HOME_NOTEBOOK
// ----- for-test-----
	typedef struct {
		Acs_Dev_List_Head_t		head;
		DeviceID_t		dev[32];
	} My_Struct;

	My_Struct	mmm;
	
	mmm.head.m_s32DeviceNum = 4;
	mmm.dev[0].m_s16DeviceMain = XMS_DEVMAIN_VOICE;
	mmm.dev[0].m_s8ModuleID = 1;
	mmm.dev[0].m_s16ChannelID = 1;
	mmm.dev[1].m_s16DeviceMain = XMS_DEVMAIN_VOICE;
	mmm.dev[1].m_s8ModuleID = 1;
	mmm.dev[1].m_s16ChannelID = 2;

	mmm.dev[2].m_s16DeviceMain = XMS_DEVMAIN_INTERFACE_CH;
	mmm.dev[2].m_s16DeviceSub = XMS_DEVSUB_E1_SS7_ISUP;
	mmm.dev[2].m_s8ModuleID = 1;
	mmm.dev[2].m_s16ChannelID = 8;
	mmm.dev[3].m_s16DeviceMain = XMS_DEVMAIN_INTERFACE_CH;
	mmm.dev[3].m_s16DeviceSub = XMS_DEVSUB_E1_SS7_ISUP;
	mmm.dev[3].m_s8ModuleID = 1;
	mmm.dev[3].m_s16ChannelID = 9;
void	AddDeviceRes ( Acs_Dev_List_Head_t *pAcsDevList );

	AddDeviceRes ( &mmm.head );
	InitDeviceInfo();

	bStartWorkFlag = true;

	return true;
// ----- end of for-test -----
#endif
	
	// now open ACS Server
	/*Invoke the acsOpenStream routine to create a connect to server*/
	r = XMS_acsOpenStream ( &g_acsHandle, 
						&cfg_ServerID,
						g_u8UnitID,		// App Unit ID 
						32,				// sendQSize, in K Bytes
						32,				// recvQSize, in K Bytes
						//cfg_s32DebugOn,	// Debug On/Off
						1,
						NULL);

	if ( r < 0 )
	{
		sprintf ( MsgStr, "X(%d) XMS_acsOpenStream(IP Addr : %s, port : %d) FAIL.", 
			r, cfg_ServerID.m_s8ServerIp, cfg_ServerID.m_u32ServerPort );

		MessageBox(NULL, MsgStr, "Init System", MB_OK ) ;
		AddMsg ( MSG_TYPE_FUNCTION, MsgStr );
	}
	else
	{
		sprintf ( MsgStr, "XMS_acsOpenStream(%s,%d) OK!", cfg_ServerID.m_s8ServerIp, cfg_ServerID.m_u32ServerPort );
		AddMsg ( MSG_TYPE_FUNCTION, MsgStr );
	}

	r = XMS_acsSetESR ( g_acsHandle, (EsrFunc)EvtHandler, 0, 1 );
	if ( r < 0 )
	{
		sprintf ( MsgStr, "X(%d) XMS_acsSetESR() FAIL!", r );
		AddMsg ( MSG_TYPE_FUNCTION, MsgStr );
		return false;
	}
	else
	{
		sprintf ( MsgStr, "XMS_acsSetESR() OK!" );
		AddMsg ( MSG_TYPE_FUNCTION, MsgStr );
	}

	XMS_acsGetDeviceList ( g_acsHandle, NULL );

	bStartWorkFlag = false;

	return true;
}
Example #4
0
DJ_Void EvtHandler(DJ_U32 esrParam)
{
  Acs_Evt_t *pAcsEvt;
  Acs_Dev_List_Head_t *pAcsDevList;
  ACS_Digital_PortState_Data *pDigitState = NULL;
  Acs_UniFailure_Data *pUniFailData = NULL;
  WINDOW *win;
  int height, width;
  
  win = stdscr;
  
  pAcsEvt= (Acs_Evt_t *)esrParam;
  if (ldebug_flag)
  {
    /*print event*/
  }
  
  switch(pAcsEvt->m_s32EventType)
  {
    case XMS_EVT_QUERY_DEVICE:
      pAcsDevList = (Acs_Dev_List_Head_t *)FetchEventData(pAcsEvt);
      AddDeviceRes(pAcsDevList);
      break;
    case XMS_EVT_QUERY_ONE_DSP_END:
      {
        /*open all device*/
        OpenAllDevice_Dsp(pAcsEvt->m_DeviceID.m_s8ModuleID);
      }
      break;
    case XMS_EVT_QUERY_REMOVE_ONE_DSP_END:
      {
        /*delete Dsp from device table*/
        remove(g_pPcmFirst, pAcsEvt->m_DeviceID.m_s8ModuleID);
        remove(g_pLinkFirst, pAcsEvt->m_DeviceID.m_s8ModuleID);       
      }
      break;
    case XMS_EVT_QUERY_DEVICE_END:
      break;
    case XMS_EVT_OPEN_DEVICE:
      OpenDeviceOK(&pAcsEvt->m_DeviceID);
      break;
    case XMS_EVT_CLOSE_DEVICE:
    //  CloseDeviceOK(&pAcsEvt->m_DeviceID);
      break;
    case XMS_EVT_DEVICESTATE:
      HandleDevState(pAcsEvt);
      break;
    case XMS_EVT_UNIFAILURE:
      if (ldebug_flag)
      { 
        pUniFailData = (Acs_UniFailure_Data *)FetchEventData(pAcsEvt);
        if (pUniFailData->m_s32AcsEvtState=-1)
        {
          if (pUniFailData->m_s32AcsEvtErrCode == ACSERR_LINKBROKEN)
          {
            getyx(win, height, width);
            mvprintw(height, 0,"flow connection has been disconnected\n");
          }
          else if (pUniFailData->m_s32AcsEvtErrCode == ACSERR_GETRESFAIL)
          {
            getyx(win, height, width);
            mvprintw(height, 0, "OpenDevic get device error,deviceType(%d,%d) ch(%d,%d)\n",
                  pAcsEvt->m_DeviceID.m_s16DeviceMain, pAcsEvt->m_DeviceID.m_s16DeviceSub,
                  pAcsEvt->m_DeviceID.m_s8ModuleID, pAcsEvt->m_DeviceID.m_s16ChannelID);
          }
          else if (pUniFailData->m_s32AcsEvtErrCode == ACSERR_DEVICEERR)
          {
            getyx(win, height, width);
            mvprintw(height, 0, "api transfer device error\n");
          }
        }
        break;
     case XMS_EVT_CLASS_UNIFAILURE:
        if (ldebug_flag)       
        {
          pUniFailData = (Acs_UniFailure_Data *)FetchEventData(pAcsEvt);
          if (pUniFailData->m_s32AcsEvtState == -1)
          {
            if(pUniFailData->m_s32AcsEvtErrCode == ACSERR_FAILSEND)
            {
              getyx(win, height, width);
              mvprintw(height, 0, "send command to function module error\n");
            } 
          }         
        } 
      } 
      break;
   case XMS_EVT_E1STATE:
      pDigitState = (ACS_Digital_PortState_Data *)FetchEventData(pAcsEvt);
      saveDigitState(pAcsEvt, *pDigitState);      
      
      if (ldebug_flag)
      {
       //  showDebugPCMState(pAcsEvt, *pDigitState); 
      } 
      break;
   case XMS_EVT_SS7SendRawFrame:   
    if (ldebug_flag)
    {
    	printstr(NULL, "recv send raw evt\n");    	
    }  
    break;
   case XMS_EVT_SS7RawFrame:
     //if (ldebug_flag)
     {
      Acs_SS7RawFrame_Data *raw_data = NULL;
      raw_data = (Acs_SS7RawFrame_Data *)FetchEventData(pAcsEvt);
     }
    break;
   default: 
      break;        
  } 
}
Example #5
0
DJ_Void EvtHandler(DJ_U32 esrParam)
{
	Acs_Evt_t *			    pAcsEvt = NULL;
	Acs_Dev_List_Head_t * pAcsDevList = NULL;


	pAcsEvt = (Acs_Evt_t *) esrParam;
	DispEventInfo ( pAcsEvt );

	switch ( pAcsEvt->m_s32EventType )
	{
		case XMS_EVT_QUERY_DEVICE:
			if ( IsSysMod(pAcsEvt->m_DeviceID.m_s8ModuleID) )
			{
				pAcsDevList = ( Acs_Dev_List_Head_t *) FetchEventData(pAcsEvt);

				//收到设备变化的事件,增加/调整 该设备资源
				AddDeviceRes ( pAcsDevList );
			}
			break; 
		case XMS_EVT_QUERY_ONE_DSP_END:
			if ( IsSysMod(pAcsEvt->m_DeviceID.m_s8ModuleID) )
			{
				AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].lFlag = 1;		// 该DSP可以用了

				OpenAllDevice_Dsp ( pAcsEvt->m_DeviceID.m_s8ModuleID );

				RefreshMapTable ( );

				ReDrawAll ();
			}
			break;

		case XMS_EVT_QUERY_DEVICE_END:	// 获取设备列表结束
			break;

		case XMS_EVT_OPEN_DEVICE:
			OpenDeviceOK ( &pAcsEvt->m_DeviceID );
			break;

		case XMS_EVT_DEVICESTATE:
			HandleDevState ( pAcsEvt );
			break;

		case XMS_EVT_UNIFAILURE:
			// must handle this event in your real System
			break;

		default:
			if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH  )
			{
				TrunkWork ( &M_OneTrunk(pAcsEvt->m_DeviceID), pAcsEvt );			
			}
			else if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_VOICE )
			{
				DeviceID_t	*pDevID;

				pDevID = &M_OneVoice(pAcsEvt->m_DeviceID).UsedDevID;

				if ( pDevID->m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH )
				{
					TrunkWork ( &M_OneTrunk(*pDevID), pAcsEvt );
				}
			}
			break;
	}
}