00001
00011 #ifndef __GOBI_API_CBK_H__
00012 #define __GOBI_API_CBK_H__
00013
00014 #ifdef __cplusplus
00015 extern "C" {
00016 #endif
00017
00018 #include "../nas/qaGobiApiNas.h"
00019 #include "../sms/qaGobiApiSms.h"
00020
00021 #define SIGSTRENGTH_THRESHOLD_ARR_SZ 5
00022 #define QMI_WMS_MAX_PAYLOAD_LENGTH 256
00023 #define CBK_ENABLE_EVENT 0x01
00024 #define CBK_DISABLE_EVENT 0x00
00025 #define CBK_NOCHANGE 0xFF
00026
00049 typedef void (* tFNSessionState)(
00050 ULONG state,
00051 ULONG reconfiguration_required,
00052 ULONG sessionEndReason );
00053
00071 ULONG SetSessionStateCallback(
00072 tFNSessionState pCallback );
00073
00102 typedef void (* tFNDataBearer)( ULONG dataBearer );
00103
00121 ULONG SetDataBearerCallback(
00122 tFNDataBearer pCallback );
00123
00136 typedef void (* tFNDormancyStatus)( ULONG dormancyStatus );
00137
00155 ULONG SetDormancyStatusCallback(
00156 tFNDormancyStatus pCallback );
00157
00169 typedef void (* tFNPower)( ULONG operatingMode );
00170
00188 ULONG SetPowerCallback(
00189 tFNPower pCallback );
00190
00204 typedef void (* tFNByteTotals)(
00205 ULONGLONG totalBytesTX,
00206 ULONGLONG totalBytesRX );
00207
00232 ULONG SetByteTotalsCallback(
00233 tFNByteTotals pCallback,
00234 BYTE interval );
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248 struct BytesTotalDataType
00249 {
00250 BYTE interval;
00251 };
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267 ULONG iSetByteTotalsCallback(
00268 tFNByteTotals pCallback );
00269
00283 typedef void (* tFNPacketsCount)(
00284 ULONG packetsCountTX,
00285 ULONG packetsCountRX );
00286
00311 ULONG SetPacketsCountCallback(
00312 tFNPacketsCount pCallback,
00313 BYTE interval );
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327 struct PacketsCountDataType
00328 {
00329 BYTE interval;
00330 };
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346 ULONG iSetPacketsCountCallback(
00347 tFNPacketsCount pCallback );
00348
00370 typedef void (* tFNActivationStatus)( ULONG activationStatus );
00371
00388 ULONG SetActivationStatusCallback(
00389 tFNActivationStatus pCallback );
00390
00403 typedef void (* tFNMobileIPStatus)( ULONG mipStatus );
00404
00422 ULONG SetMobileIPStatusCallback(
00423 tFNMobileIPStatus pCallback );
00424
00439 typedef void (* tFNRoamingIndicator)( ULONG roaming );
00440
00458 ULONG SetRoamingIndicatorCallback(
00459 tFNRoamingIndicator pCallback );
00460
00487 typedef void (* tFNDataCapabilities)(
00488 BYTE dataCapsSize,
00489 BYTE * pDataCaps );
00490
00509 ULONG SetDataCapabilitiesCallback(
00510 tFNDataCapabilities pCallback );
00511
00526 typedef void (* tFNSignalStrength)(
00527 INT8 signalStrength,
00528 ULONG radioInterface );
00529
00559 ULONG SetSignalStrengthCallback(
00560 tFNSignalStrength pCallback,
00561 BYTE thresholdsSize,
00562 INT8 *pThresholds );
00563
00564
00565
00566
00567
00568
00569
00570
00571
00572
00573
00574
00575
00576
00577
00578
00579 struct SignalStrengthDataType
00580 {
00581 BYTE thresholdsSize;
00582 INT8 thresholds[SIGSTRENGTH_THRESHOLD_ARR_SZ];
00583 };
00584
00585
00586
00587
00588
00589
00590
00591
00592
00593
00594
00595
00596
00597
00598
00599 ULONG iSetSignalStrengthCallback(
00600 tFNSignalStrength pCallback );
00601
00621 typedef void (* tFNRFInfo)(
00622 ULONG radioInterface,
00623 ULONG activeBandClass,
00624 ULONG activeChannel );
00625
00643 ULONG SetRFInfoCallback(
00644 tFNRFInfo pCallback );
00645
00661 typedef void (* tFNLUReject)(
00662 ULONG serviceDomain,
00663 ULONG rejectCause );
00664
00682 ULONG SetLURejectCallback(
00683 tFNLUReject pCallback );
00684
00700 typedef void (* tFNNewSMS)(
00701 ULONG storageType,
00702 ULONG messageIndex );
00703
00719 ULONG SetNewSMSCallback(
00720 tFNNewSMS pCallback );
00721
00725 typedef enum SMSEventType
00726 {
00727 SMS_EVENT_MT_MESSAGE = 0x01,
00728 SMS_EVENT_TRANSFER_ROUTE_MT_MESSAGE = 0x02,
00729 SMS_EVENT_MESSAGE_MODE = 0x04,
00730 SMS_EVENT_ETWS = 0x08,
00731 SMS_EVENT_ETWS_PLMN = 0x10,
00732 SMS_EVENT_SMSC_ADDRESS = 0x20,
00733 SMS_EVENT_SMS_ON_IMS = 0x40,
00734 } eSMSEventType;
00735
00747 typedef struct SMSMTMessage
00748 {
00749 ULONG storageType;
00750 ULONG messageIndex;
00751 } SMSMTMessageInfo;
00752
00778 typedef struct SMSTransferRouteMTMessage
00779 {
00780 BYTE ackIndicator;
00781 ULONG transactionID;
00782 BYTE format;
00783 WORD length;
00784 BYTE data[QMI_WMS_MAX_PAYLOAD_LENGTH];
00785 } SMSTransferRouteMTMessageInfo;
00786
00795 typedef struct SMSMessageMode
00796 {
00797 BYTE messageMode;
00798 } SMSMessageModeInfo;
00799
00816 typedef struct SMSEtwsMessage
00817 {
00818 BYTE notificationType;
00819 WORD length;
00820 BYTE data[QMI_WMS_MAX_PAYLOAD_LENGTH];
00821 } SMSEtwsMessageInfo;
00822
00835 typedef struct SMSEtwsPlmn
00836 {
00837 WORD mobileCountryCode;
00838 WORD mobileNetworkCode;
00839 } SMSEtwsPlmnInfo;
00840
00850 typedef struct SMSCAddress
00851 {
00852 BYTE length;
00853 BYTE data[QMI_WMS_MAX_PAYLOAD_LENGTH];
00854 } SMSCAddressInfo;
00855
00868 typedef struct SMSOnIMS
00869 {
00870 BYTE smsOnIMS;
00871 }SMSOnIMSInfo;
00872
00912 typedef struct SMSEventInfo_s
00913 {
00914 BYTE smsEventType;
00915 SMSMTMessageInfo *pMTMessageInfo;
00916 SMSTransferRouteMTMessageInfo *pTransferRouteMTMessageInfo;
00917 SMSMessageModeInfo *pMessageModeInfo;
00918 SMSEtwsMessageInfo *pEtwsMessageInfo;
00919 SMSEtwsPlmnInfo *pEtwsPlmnInfo;
00920 SMSCAddressInfo *pSMSCAddressInfo;
00921 SMSOnIMSInfo *pSMSOnIMSInfo;
00922 } SMSEventInfo;
00923
00934 typedef void (* tFNSMSEvents)( SMSEventInfo *pSMSEventInfo );
00935
00951 ULONG SLQSSetSMSEventCallback( tFNSMSEvents pCallback );
00952
00964 typedef void (* tFNNewNMEA)( LPCSTR pNMEA );
00965
00981 ULONG SetNMEACallback(
00982 tFNNewNMEA pCallback );
00983
01002 typedef void (* tFNPDSState)(
01003 ULONG enabledStatus,
01004 ULONG trackingStatus );
01005
01021 ULONG SetPDSStateCallback(
01022 tFNPDSState pCallback );
01023
01052 typedef void (* tFNCATEvent)(
01053 ULONG eventID,
01054 ULONG eventLen,
01055 BYTE * pEventData );
01056
01103 ULONG SetCATEventCallback(
01104 tFNCATEvent pCallback,
01105 ULONG eventMask,
01106 ULONG *pErrorMask );
01107
01108
01109
01110
01111
01112
01113
01114
01115
01116
01117
01118
01119
01120
01121
01122
01123 struct CATEventDataType
01124 {
01125 ULONG eventMask;
01126 ULONG *pErrorMask;
01127 };
01128
01129
01130
01131
01132
01133
01134
01135
01136
01137
01138
01139
01140
01141
01142
01143 ULONG iSetCATEventCallback(
01144 tFNCATEvent pCallback );
01145
01150 typedef enum device_state_enum
01151 {
01152 DEVICE_STATE_DISCONNECTED,
01153 DEVICE_STATE_READY,
01154 DEVICE_STATE_BOOT
01155 }eDevState;
01156
01169 typedef void (* tFNDeviceStateChange)(
01170 eDevState device_state );
01171
01191 ULONG SetDeviceStateChangeCbk(
01192 tFNDeviceStateChange pCallback );
01193
01206 typedef void (* tFNFwDldCompletion)( ULONG fwdld_completion_status );
01207
01226 ULONG SetFwDldCompletionCbk(
01227 tFNFwDldCompletion pCallback );
01228
01244 typedef void (* tFNSLQSOMADMAlert)(
01245 ULONG sessionType,
01246 BYTE *psessionTypeFields );
01247
01263 ULONG SetSLQSOMADMAlertCallback(
01264 tFNSLQSOMADMAlert pCallback );
01265
01296 typedef void (* tFNOMADMState)(
01297 ULONG sessionState,
01298 ULONG failureReason );
01299
01315 ULONG SetOMADMStateCallback(
01316 tFNOMADMState pCallback );
01317
01318 #define MAX_RADIO_INTERFACE_LIST 255
01319
01368 struct ServingSystemInfo
01369 {
01370 BYTE registrationState;
01371 BYTE csAttachState;
01372 BYTE psAttachState;
01373 BYTE selectedNetwork;
01374 BYTE radioInterfaceNo;
01375 BYTE radioInterfaceList[MAX_RADIO_INTERFACE_LIST];
01376 BYTE hdrPersonality;
01377 };
01378
01389 typedef void (* tFNServingSystem)(
01390 struct ServingSystemInfo *pServingSystem );
01391
01407 ULONG SLQSSetServingSystemCallback(
01408 tFNServingSystem pCallback );
01409
01467 typedef void (* tFNBandPreference)(
01468 ULONGLONG band_pref );
01469
01488 ULONG SLQSSetBandPreferenceCbk(
01489 tFNBandPreference pCallback );
01490
01497 typedef void (* tFNUSSDRelease)( void );
01498
01514 ULONG SetUSSDReleaseCallback(
01515 tFNUSSDRelease pCallback );
01516
01532 typedef void (* tFNUSSDNotification)(
01533 ULONG type,
01534 BYTE *pNetworkInfo );
01535
01551 ULONG SetUSSDNotificationCallback(
01552 tFNUSSDNotification pCallback );
01553
01589 struct SLQSSignalStrengthsInformation{
01590 struct rxSignalStrengthListElement rxSignalStrengthInfo;
01591 struct ecioListElement ecioInfo;
01592 ULONG io;
01593 BYTE sinr;
01594 struct errorRateListElement errorRateInfo;
01595 struct rsrqInformation rsrqInfo;
01596 };
01597
01608 typedef void (* tFNSLQSSignalStrengths )(
01609 struct SLQSSignalStrengthsInformation sSLQSSignalStrengthsInfo );
01610
01668 struct SLQSSignalStrengthsIndReq{
01669 BYTE rxSignalStrengthDelta;
01670 BYTE ecioDelta;
01671 BYTE ioDelta;
01672 BYTE sinrDelta;
01673 BYTE rsrqDelta;
01674 BYTE ecioThresholdListLen;
01675 SHORT ecioThresholdList[10];
01676 BYTE sinrThresholdListLen;
01677 BYTE sinrThresholdList[5];
01678 };
01679
01704 ULONG SLQSSetSignalStrengthsCallback(
01705 tFNSLQSSignalStrengths pCallback,
01706 struct SLQSSignalStrengthsIndReq *pSLQSSignalStrengthsIndReq );
01707
01708
01709
01710
01711
01712
01713
01714
01715
01716
01717
01718
01719
01720
01721
01722 ULONG iSLQSSetSignalStrengthsCallback(
01723 tFNSLQSSignalStrengths pCallback );
01724
01737 typedef void (* tFNSDKTerminated)(
01738 BYTE *psReason );
01739
01764 ULONG SLQSSetSDKTerminatedCallback(
01765 tFNSDKTerminated pCallback );
01766
01784 typedef struct _transLayerInfoNotification
01785 {
01786 BYTE regInd;
01787 transLayerInfo *pTransLayerInfo;
01788 } transLayerNotification;
01789
01799 typedef void (*tFNtransLayerInfo)
01800 ( transLayerNotification *pTransLayerNotification );
01801
01818 ULONG SLQSSetTransLayerInfoCallback( tFNtransLayerInfo pCallback );
01819
01836 typedef struct _transNWRegInfoNotification
01837 {
01838 BYTE NWRegStat;
01839 } transNWRegInfoNotification;
01840
01850 typedef void (*tFNtransNWRegInfo)
01851 ( transNWRegInfoNotification *pTransNWRegInfoNotification );
01852
01869 ULONG SLQSSetTransNWRegInfoCallback( tFNtransNWRegInfo pCallback );
01870
01880 typedef void (* tFNSysSelectionPref )
01881 ( sysSelectPrefInfo *pSysSelectPrefInfo );
01882
01901 ULONG SLQSSetSysSelectionPrefCallBack( tFNSysSelectionPref pCallback );
01902
01962 struct omaDmFotaTlv
01963 {
01964 BYTE state;
01965 BYTE userInputReq;
01966 USHORT userInputTimeout;
01967 ULONG fwdloadsize;
01968 ULONG fwloadComplete;
01969 USHORT updateCompleteStatus;
01970 BYTE severity;
01971 USHORT versionlength;
01972 BYTE version[256];
01973 USHORT namelength;
01974 BYTE package_name[256];
01975 USHORT descriptionlength;
01976 BYTE description[256];
01977 };
01978
02002 struct omaDmConfigTlv
02003 {
02004 BYTE state;
02005 BYTE userInputReq;
02006 USHORT userInputTimeout;
02007 USHORT alertmsglength;
02008 BYTE alertmsg[256];
02009 };
02010
02016 typedef union sessionInfo
02017 {
02018 struct omaDmFotaTlv omaDmFota;
02019 struct omaDmConfigTlv omaDmConfig;
02020 } sessionInformation;
02021
02022 #ifdef __cplusplus
02023 }
02024 #endif
02025
02026 #endif