📄 mfw_gprs.c
字号:
PURPOSE : Enables or Disables the sending of certain events occuring in the GPRS ME or the network to the TE. PARAMETERS : mode : mode to specifies if the event reporting will be enabled or disabled bfr : controls the effect on buffered events. */T_MFW_RES gprs_setEventReporting(T_CGEREP_MODE mode, T_CGEREP_BFR bfr){ T_MFW_GPRS_EVENTREP *eventRep; TRACE_FUNCTION ("gprs_setEventReporting()"); /* * ACI call */ if (sAT_PlusCGEREP(CMD_SRC_LCL, mode, bfr) == AT_FAIL) return MFW_RES_ERR; /* * change event reporting data in MFW GPRS data */ eventRep = (T_MFW_GPRS_EVENTREP *) mfwAlloc(sizeof(T_MFW_GPRS_EVENTREP)); eventRep->mode = mode; eventRep->bfr = bfr; gprs_signal(E_MFW_GPRS_S_EREP, eventRep); return MFW_RES_OK;}/*+----------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) MODULE: MFW_GPRS || STATE : code ROUTINE: gprs_setServiceSMS |+----------------------------------------------------------------------+ PURPOSE : The function specifies the service or service preference to be used for SMS. PARAMETERS : n : service to use for SMS ( 0 - GPRS, 1 - circuit switch, 2 - GPRS preferred, 3 circuit switch preferred)*/T_MFW_RES gprs_setServiceSMS(T_CGSMS_SERVICE service){ TRACE_FUNCTION ("gprs_setServiceSMS()"); /* * ACI call */ if (sAT_PlusCGSMS(CMD_SRC_LCL, service) == AT_FAIL) return MFW_RES_ERR; /* * change SMS service data in MFW GPRS data */ gprs_signal(E_MFW_GPRS_S_SMSSERV, &service); return MFW_RES_OK;}/*+----------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) MODULE: MFW_GPRS || STATE : code ROUTINE: gprs_getServiceSMS |+----------------------------------------------------------------------+ PURPOSE : This function returns the service preference to be used for SMS. PARAMETERS : n : service to use for SMS ( 0 - GPRS, 1 - circuit switch, 2 - GPRS preferred, 3 circuit switch preferred)*/T_CGSMS_SERVICE gprs_getServiceSMS(void){ T_CGSMS_SERVICE service; if (qAT_PlusCGSMS(CMD_SRC_LCL, &service) != AT_FAIL ) return service; else TRACE_EVENT("MFW_GPRS: Error. qAT_PlusCGCLASS failed"); return CGSMS_SERVICE_INVALID;}/*+----------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) MODULE: MFW_GPRS || STATE : code ROUTINE: gprs_counter |+----------------------------------------------------------------------+ PURPOSE : SPR#1450 - SH Resets the data counter if reset_counter is TRUE. In either case, response returned in rAT_PercentSNCNT below.*/T_MFW_RES gprs_counter(BOOL reset_counter){ T_ACI_RETURN result; TRACE_FUNCTION("gprs_counter"); result = sAT_PercentSNCNT(CMD_SRC_LCL, reset_counter); if (result!=AT_EXCT && result!=AT_CMPL) return MFW_RES_ERR; if (result==AT_CMPL) return MfwResDone; /* No response expected */ return MFW_RES_OK;}/*+---------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) MODULE: MFW_GPRS || STATE : code ROUTINE: gprs_counter_abort |+---------------------------------------------------------------------+ PURPOSE : Cancel request for data count SPR#1983 - SH - Added. PARAMETERS : None. */T_MFW_RES gprs_counter_abort(void){ T_ACI_RETURN result; result = sAT_Abort(CMD_SRC_LCL, AT_CMD_SNCNT); if (result==AT_FAIL) return MFW_RES_ERR; return MFW_RES_OK;}/*+----------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) MODULE: MFW_GPRS || STATE : code ROUTINE: gprs_status |+----------------------------------------------------------------------+ PURPOSE : Returns the GPRS status value*/T_CGREG_STAT gprs_status(){ T_ACI_RETURN result; T_CGREG_STAT status = 0; USHORT lac, ci; TRACE_FUNCTION("gprs_status"); if (qAT_PlusCGREG(CMD_SRC_LCL, &status, &lac, &ci) == AT_FAIL ) { TRACE_EVENT("MFW_GPRS: Error. qAT_PlusCGREG failed"); } return status;}/*-------------------------------------------------------------------- ACI callback functions --------------------------------------------------------------------*//*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) MODULE: MFW_GPRS || STATE : code ROUTINE: rAT_PlusCGACT |+--------------------------------------------------------------------+ PURPOSE : The function rAt_PlusCGACT informs the application about the link identifier for the data transfer. ( ACI callback funtion ) PARAMETERS : link_id: Link identifier */void rAT_PlusCGACT ( SHORT link_id ){ TRACE_FUNCTION ("rAT_PlusCGACT()"); /* * send event and link id to the current mfw element */ gprs_signal(E_MFW_GPRS_R_ACT, &link_id);}/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) MODULE: MFW_GPRS || STATE : code ROUTINE: rAT_PlusCGDATA |+--------------------------------------------------------------------+ PURPOSE : The function rAt_PlusCGDATA informs the application about the link identifier for the data transfer after activation/deactivation (without connect). ( ACI callback funtion ) PARAMETERS : link_id: Link identifier */void rAT_PlusCGDATA ( SHORT link_id ){ TRACE_FUNCTION ("rAT_PlusCGDATA()"); /* * send event and link id to the current mfw element */ gprs_signal(E_MFW_GPRS_R_DATA, &link_id);}/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) MODULE: MFW_GPRS || STATE : code ROUTINE: rAT_PlusCGANS |+--------------------------------------------------------------------+ PURPOSE : The function rAt_PlusCGANS informs the application about the link identifier for the data transfer. It is a manual reponse to a network request for PDP context activation (after request by +CRING or RING). ( ACI callback funtion ) PARAMETERS : link_id: Link identifier */void rAT_PlusCGANS ( SHORT link_id ){ TRACE_FUNCTION ("rAT_PlusCGANS()"); /* * send event and link id to the current mfw element */ gprs_signal(E_MFW_GPRS_R_ANS, &link_id);}/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) MODULE: MFW_GPRS || STATE : code ROUTINE: rAT_PlusCGEREP |+--------------------------------------------------------------------+ PURPOSE : The function rAt_PlusCGEREP informs the application about GPRS events connect. ( ACI callback funtion ) PARAMETERS : event : GPRS event param : event parameter */void rAT_PlusCGEREP ( T_CGEREP_EVENT event, T_CGEREP_EVENT_REP_PARAM *param ){ char msg[30]; T_CGATT_STATE state; TRACE_FUNCTION ("rAT_PlusCGEREP()"); sprintf(msg, "GPRS eventrep: %d", (short)event); TRACE_EVENT(msg); /* * send event and data to the current mfw element */ switch ( event ) { case CGEREP_EVENT_REJECT: gprs_signal(E_MFW_GPRS_R_EREP_RJ, param); break; case CGEREP_EVENT_NW_DETACH: case CGEREP_EVENT_ME_DETACH: state = CGATT_STATE_DETACHED; gprs_signal(E_MFW_GPRS_R_EREP_ATT, &state); break; case CGEREP_EVENT_NW_REACT: gprs_signal(E_MFW_GPRS_R_EREP_ACT, param); break; case CGEREP_EVENT_NW_DEACT: case CGEREP_EVENT_ME_DEACT: gprs_signal(E_MFW_GPRS_R_EREP_DEACT, param); break; case CGEREP_EVENT_NW_CLASS: case CGEREP_EVENT_ME_CLASS: gprs_signal(E_MFW_GPRS_R_EREP_CLASS, param); break; }}/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) MODULE: MFW_GPRS || STATE : code ROUTINE: rAT_PlusCGREG |+--------------------------------------------------------------------+ PURPOSE : The function rAt_PlusCGREG informs the application about the GPRS registration status and location information. ( ACI callback funtion ) PARAMETERS : stat : indicates the current registration lac : two byte location area code ci : two byte cell ID */void rAT_PlusCGREG ( T_CGREG_STAT stat, USHORT lac, USHORT ci ){ T_MFW_GPRS_CELL_STRUCT cell; TRACE_FUNCTION ("rAT_PlusCGREG()");#ifndef WIN32 TRACE_EVENT_P3("GPRS regState: %d, lac %X, ci %X", (short)stat, lac, ci);#endif /* * send signal for changed registry state to current * MFW element */ cell.stat = stat; cell.lac = lac; cell.ci = ci; gprs_signal(E_MFW_GPRS_R_REG, &cell);}/*+--------------------------------------------------------------------+| PROJECT: MMI-Framework (8417) MODULE: MFW_GPRS || STATE : code ROUTINE: rAT_changedQOS |+--------------------------------------------------------------------+ PURPOSE : The function rAt_changedQOS informs the application about changes for the Quality of Service Profiles. ( ACI callback funtion ) PARAMETERS : cid : *qos : */void rAT_changedQOS ( SHORT cid, T_QOS *qos ){ T_MFW_GPRS_CONTEXT *cntxt; TRACE_FUNCTION ("rAT_changedQOS()"); /* * send signal for changed quality of service profile to current * MFW element */ cntxt = (T_MFW_GPRS_CONTEXT *) mfwAlloc(sizeof(T_MFW_GPRS_CONTEXT)); cntxt->id = cid; memcpy (&(cntxt->data.qos), qos, sizeof (T_QOS)); gprs_signal(E_MFW_GPRS_R_QOS, cntxt);}/*+--------------------------------------------------------------------+| PROJECT : GPRS (8441) MODULE : MFW_GPRS || STATE : code ROUTINE : rAT_PercentSNCNT |+--------------------------------------------------------------------+ PURPOSE : handles rAT_PercentSNCNT call back*/GLOBAL void rAT_PercentSNCNT ( UBYTE c_id, ULONG octets_uplink, ULONG octets_downlink, ULONG packets_uplink, ULONG packets_downlink ){ T_MFW_GPRS_COUNTER counter; TRACE_FUNCTION("rAT_PercentSNCNT()"); counter.octets_uplink = octets_uplink; counter.octets_downlink = octets_downlink; counter.packets_uplink = packets_uplink; counter.packets_downlink = packets_downlink; gprs_signal(E_MFW_GPRS_COUNTER, &counter); return;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -