FreeCalypso > hg > fc-magnetite
diff src/aci2/aci/aoc.h @ 3:93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 26 Sep 2016 00:29:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/aci2/aci/aoc.h Mon Sep 26 00:29:36 2016 +0000 @@ -0,0 +1,169 @@ +/* ++----------------------------------------------------------------------------- +| Project : GSM-PS (6147) +| Modul : AOC ++----------------------------------------------------------------------------- +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : Definitions for advice of charge ++----------------------------------------------------------------------------- +*/ + +#ifndef AOC_H +#define AOC_H + +/* + * States of Module + */ +#define AOC_NULL 0 +#define AOC_DISABLE 1 +#define AOC_ENABLE 2 + +/* + * Info Causes + */ +#define AOC_START_TIME 1 +#define AOC_STOP_TIME 2 +#define AOC_START_AOC 3 +#define AOC_SUSPEND_AOC 4 +#define AOC_RESUME_AOC 5 +#define AOC_CALL_CONNECTED 6 + +/* + * Request Types + */ +#define AOC_CTV 0 +#define AOC_CCM 1 +#define AOC_ACM 2 +#define AOC_ACMMAX 3 +#define AOC_PUCT 4 +#define AOC_CCM_PUCT 5 +#define AOC_ACM_PUCT 6 +#define AOC_ACMMAX_PUCT 7 +#define AOC_PUCT_RAW 8 + +/* + * Status of update operation + */ +#define FIRST_UPDATE 0 +#define SECOND_UPDATE 1 +#define VERIFY_PWD 2 + +/* + * maximum remaining call time in milliseconds + */ +#define AOC_MAX_REMAIN_CALL_TIME 30000L +#define AOC_THOUSAND_MILLISECONDS 1000L + +/* + * indicates the processing mode for calculating remaining call time + */ +#define AOC_AOC_TIMER_ELAPSED 0 +#define AOC_CALL_TIMER_ELAPSED 1 + +/* + * Structure for requesting PUCT Values + */ +typedef struct +{ + UBYTE currency [4]; + UBYTE value [20]; +} T_puct; + +typedef struct +{ + UBYTE currency [4]; + ULONG eppu; + ULONG exp; + ULONG sexp; +} T_puct_raw; + +/* + * e_bitmap parameter + */ + +#define E1_CHANGED 1 +#define E2_CHANGED 2 +#define E3_CHANGED 4 +#define E4_CHANGED 8 +#define E7_CHANGED 64 + +typedef struct +{ + USHORT e1; /* e1 parameter */ + USHORT e2; /* e2 parameter */ + USHORT e3; /* e3 parameter */ + USHORT e4; /* e4 parameter */ /* will be cleared after charged */ + USHORT e5; /* e5 parameter */ + USHORT e6; /* e6 parameter */ + USHORT e7; /* e7 parameter */ /* will be cleared when reached */ + + UBYTE e_next_bitmap; /* validity of e-parameter */ + USHORT e1_next; /* e1 parameter in abeyance*/ + USHORT e2_next; /* e2 parameter in abeyance*/ + USHORT e3_next; /* e3 parameter in abeyance*/ /* See AOC08226 !!! */ + USHORT e7_next; /* e7 parameter in abeyance*/ + + ULONG first_unit; /* ccm increment first unit*/ + ULONG next_unit; /* ccm increment next unit */ + T_TIME first_interval; /* time first interval */ + T_TIME next_interval; /* time next interval */ + + T_TIME remaining_time; /* remaining time for timer*/ + UBYTE aoc_timer_running;/* timer is running ? */ + UBYTE new_data_avail; /* E-Parameter have changed*/ + T_TIME time_ut_charge; /* time in sec until next */ + /* charging occur */ + UBYTE aoci_active; /* indicate charge only */ +} T_CC_AOC_TBL; + +EXTERN UBYTE aoc_init (UBYTE phase, UBYTE *sim_service_table); +EXTERN void aoc_reset (void); +EXTERN void aoc_sms (void); +EXTERN UBYTE aoc_info (SHORT Cid, UBYTE cause); +EXTERN void aoc_get_values (UBYTE value_type, void * value); +EXTERN T_ACI_RETURN aoc_set_values (T_ACI_CMD_SRC srcId, + UBYTE value_type, + void * value, + UBYTE * password); +EXTERN UBYTE aoc_check_moc (void); +EXTERN void aoc_parameter (SHORT Cid, + T_FWD_CHG_ADVICE_INV * aoc_para); +EXTERN void aoc_send_ccm (void); +EXTERN UBYTE aoc_ssc (UBYTE nr, UBYTE * serv_table); +EXTERN void aoc_read_acm (void); +EXTERN void aoc_read_acm_cb (SHORT table_id); +EXTERN void aoc_read_acmmax (void); +EXTERN void aoc_read_acmmax_cb (SHORT table_id); +EXTERN void aoc_read_puct (void); +EXTERN void aoc_read_puct_cb (SHORT table_id); +EXTERN void aoc_init_calltable (void); +EXTERN UBYTE aoc_timeout (USHORT handle); +EXTERN void aoc_timeout_call_timer (void); +EXTERN void aoc_timeout_aoc_timer (SHORT Cid); +EXTERN UBYTE aoc_non_zero_cai (SHORT Cid); +EXTERN UBYTE aoc_check_acm (void); +EXTERN void aoc_calculate_charging_parameter (SHORT Cid); +EXTERN void aoc_increment_initial_charge (SHORT Cid); +EXTERN void aoc_increment_charge (ULONG increment, UBYTE ever); +EXTERN void aoc_increment_cb (SHORT table_id); +EXTERN void aoc_calculate_puct (ULONG value, T_puct * result); +EXTERN void aoc_update_acm (UBYTE operation, ULONG value); +EXTERN void aoc_update_acmmax (UBYTE operation, ULONG value); +EXTERN void aoc_update_puct (UBYTE operation, T_puct * value); +EXTERN void aoc_update_acm_cb (SHORT table_id); +EXTERN void aoc_update_acmmax_cb (SHORT table_id); +EXTERN void aoc_update_puct_cb (SHORT table_id); +EXTERN UBYTE aoc_set_puct_values (T_puct * puct); +EXTERN USHORT aoc_getEVal ( void * eBuf ); + +#endif