// ------------------------------------------------------------------------------------------------- void HandleDevState ( Acs_Evt_t *pAcsEvt ) { TRUNK_STRUCT *pOneTrunk; PCM_STRUCT *pOnePcm; Acs_GeneralProc_Data *pGeneralData = NULL; pGeneralData = (Acs_GeneralProc_Data *)FetchEventData(pAcsEvt); if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH ) { pOneTrunk = &M_OneTrunk(pAcsEvt->m_DeviceID); pOneTrunk->iLineState = pGeneralData->m_s32DeviceState; DrawMain_LineState( pOneTrunk ); } if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_DIGITAL_PORT ) { pOnePcm = &M_OnePcm(pAcsEvt->m_DeviceID); pOnePcm->u8E1Type = (pGeneralData->m_s32DeviceState >> 16) & 0xFF; pOnePcm->s32AlarmVal = (pGeneralData->m_s32DeviceState & 0xFFFF); DrawPcm_TypeAndAlarm ( pOnePcm ); }
// ------------------------------------------------------------------------------------------------- void ReDrawAll (void) { char TmpStr[256]; int i, iDispRow; TRUNK_STRUCT *pOneTrunk; // m_ListMain pdlg->m_ListMain.DeleteAllItems (); for ( i = 0; i < g_iTotalTrunk; i ++ ) { iDispRow = CalDispRow ( i ); if ( iDispRow < 0 ) continue; // 固定不变的内容 sprintf ( TmpStr, "%3d", iDispRow ); pdlg->m_ListMain.InsertItem ( iDispRow, TmpStr ); sprintf ( TmpStr, "%d,%d", MapTable_Trunk[i].m_s8ModuleID, MapTable_Trunk[i].m_s16ChannelID ); pdlg->m_ListMain.SetItemText ( iDispRow, 1, TmpStr ); pOneTrunk = &M_OneTrunk(MapTable_Trunk[i]); pdlg->m_ListMain.SetItemText ( iDispRow, 2, GetString_DeviceSub( pOneTrunk->deviceID.m_s16DeviceSub) ); // 可能改变的内容 DrawMain_LineState ( pOneTrunk ); DrawMain_State ( pOneTrunk ); DrawMain_CallInfo ( pOneTrunk ); DrawMain_DTMF ( pOneTrunk ); } // m_ListPcm pdlg->m_ListPcm.DeleteAllItems (); for ( i = 0; i < g_iTotalPcm; i ++ ) { sprintf ( TmpStr, "%3d", i ); pdlg->m_ListPcm.InsertItem ( i, TmpStr ); // 可能改变的内容 DrawPcm_TypeAndAlarm ( &M_OnePcm(MapTable_Pcm[i]) ); } // m_ListCount pdlg->m_ListCount.DeleteAllItems (); // 先添加行 pdlg->m_ListCount.InsertItem ( 0, "Total" ); for ( i = 0; i < g_iTotalModule; i ++ ) { sprintf ( TmpStr, "%3d", i ); pdlg->m_ListCount.InsertItem ( i+1, TmpStr ); sprintf ( TmpStr, "%3d", MapTable_Module[i] ); pdlg->m_ListCount.SetItemText ( i+1, 1, TmpStr ); } // 再显示内容 for ( i = 0; i < g_iTotalModule; i ++ ) { DrawCount_Pcm ( MapTable_Module[i] ); DrawCount_Trunk ( MapTable_Module[i] ); DrawCount_Voc ( MapTable_Module[i] ); } }
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; } }