State machine

GSM_Error GSM_InitConnection_Log(GSM_StateMachine *s, int ReplyNum, GSM_Log_Function log_function, void *user_data)

Initiates connection with custom logging callback.

Parameters:
  • s – State machine data

  • ReplyNum – Number of replies to await (usually 3).

  • log_function – Logging function, see GSM_SetDebugFunction.

  • user_data – User data for logging function, see GSM_SetDebugFunction.

Returns:

Error code

GSM_Error GSM_InitConnection(GSM_StateMachine *s, int ReplyNum)

Initiates connection.

Parameters:
  • s – State machine data

  • ReplyNum – Number of replies to await (usually 3).

Returns:

Error code

GSM_Error GSM_TerminateConnection(GSM_StateMachine *s)

Terminates connection.

Parameters:
  • s – State machine data

Returns:

Error code

GSM_Error GSM_AbortOperation(GSM_StateMachine *s)

Aborts current operation.

This is thread safe call to abort any existing operations with the phone.

Parameters:
  • s – State machine data

Returns:

Error code

GSM_Error GSM_Install(GSM_StateMachine *s, const char *ExtraPath, gboolean Minimal)

Installs applet required for configured connection to the phone.

Parameters:
  • s – State machine data.

  • ExtraPath – Extra path where to search for installation data.

  • Minimal – Whether to do minimal installation (eg. without support libraries), useful for applet updates

Returns:

Result of operation.

typedef struct _GSM_StateMachine GSM_StateMachine

Private structure holding information about phone connection. Should be allocated by GSM_AllocStateMachine and freed by GSM_FreeStateMachine.

enum GSM_ConnectionType

Connection types definitions.

Values:

enumerator GCT_MBUS2
enumerator GCT_FBUS2
enumerator GCT_FBUS2DLR3
enumerator GCT_DKU2AT
enumerator GCT_DKU2PHONET
enumerator GCT_DKU5FBUS2
enumerator GCT_ARK3116FBUS2
enumerator GCT_FBUS2PL2303
enumerator GCT_FBUS2BLUE
enumerator GCT_FBUS2IRDA
enumerator GCT_PHONETBLUE
enumerator GCT_AT
enumerator GCT_BLUEGNAPBUS
enumerator GCT_IRDAOBEX
enumerator GCT_IRDAGNAPBUS
enumerator GCT_IRDAAT
enumerator GCT_IRDAPHONET
enumerator GCT_BLUEFBUS2
enumerator GCT_BLUEAT
enumerator GCT_BLUEPHONET
enumerator GCT_BLUEOBEX
enumerator GCT_FBUS2USB
enumerator GCT_BLUES60
enumerator GCT_PROXYGNAPBUS
enumerator GCT_PROXYFBUS2
enumerator GCT_PROXYAT
enumerator GCT_PROXYPHONET
enumerator GCT_PROXYOBEX
enumerator GCT_PROXYS60
enumerator GCT_NONE
struct GSM_Config

Configuration of state machine.

Public Members

char Model[50]

Model from config file

char DebugLevel[50]

Debug level

char *Device

Device name from config file

char *Connection

Connection type as string

gboolean SyncTime

Synchronize time on startup?

gboolean LockDevice

Lock device ? (Unix)

char *DebugFile

Name of debug file

gboolean StartInfo

Display something during start ?

gboolean UseGlobalDebugFile

Should we use global debug file?

char TextReminder[32]

Text for reminder calendar entry category in local language

char TextMeeting[32]

Text for meeting calendar entry category in local language

char TextCall[32]

Text for call calendar entry category in local language

char TextBirthday[32]

Text for birthday calendar entry category in local language

char TextMemo[32]

Text for memo calendar entry category in local language

GSM_Feature PhoneFeatures[GSM_MAX_PHONE_FEATURES + 1]

Phone features override.

int CNMIParams[5]

Used to override default CNMI arguments for generic AT protocol.

typedef void (*GSM_Log_Function)(const char *text, void *data)

Callback function for logging.

Param text:

Text to be printed,

will be also sent (as a separate message).

Param data:

Arbitrary logger data, as passed to GSM_InitConnection_Log.

int GSM_ReadDevice(GSM_StateMachine *s, gboolean waitforreply)

Attempts to read data from phone. This can be used for getting status of incoming events, which would not be found out without polling device.

Parameters:
  • s – State machine data

  • waitforreply – Whether to wait for some event

Returns:

Number of read bytes

gboolean GSM_IsConnected(GSM_StateMachine *s)

Detects whether state machine is connected.

Parameters:
  • s – State machine data

Returns:

Whether phone is connected.

GSM_Error GSM_FindGammuRC(INI_Section **result, const char *force_config)

Finds and reads gammu configuration file. The search order depends on platform. On POSIX systems it looks for ~/.gammurc and then for /etc/gammurc, on Windows for gammurc in Application data folder, then in home and last fallback is in current driectory.

Parameters:
  • result – Ini file representation

  • force_config – Forcing of custom path instead of autodetected one (if NULL, autodetection is performed).

Returns:

Error code

GSM_Error GSM_ReadConfig(INI_Section *cfg_info, GSM_Config *cfg, int num)

Processes gammu configuration.

See also

GSM_FallbackConfig

Parameters:
  • cfg_info – Ini file representation.

  • cfg – Where to store configuration.

  • num – Number of section to read.

Returns:

Whether we got valid configuration. Especially check for ERR_USING_DEFAULTS.

GSM_Config *GSM_GetConfig(GSM_StateMachine *s, int num)

Gets gammu configuration from state machine. This actually returns pointer to internal configuration storage, so you can use it also for updating existing settings.

Parameters:
  • s – State machine data

  • num – Number of section to read, -1 for currently used.

Returns:

Pointer to configuration.

int GSM_GetConfigNum(const GSM_StateMachine *s)

Gets number of active gammu configurations.

Parameters:
  • s – State machine data

Returns:

Number of sections.

void GSM_SetConfigNum(GSM_StateMachine *s, int sections)

Gets number of active gammu configurations.

Parameters:
  • s – State machine data

  • sections – Number of sections.

GSM_StateMachine *GSM_AllocStateMachine(void)

Allocates new clean state machine structure. You should free it then by GSM_FreeStateMachine.

Returns:

Pointer to state machine structure.

void GSM_FreeStateMachine(GSM_StateMachine *s)

Frees state machine structure allocated by GSM_AllocStateMachine.

Parameters:
  • s – Pointer to state machine structure.

GSM_ConnectionType GSM_GetUsedConnection(GSM_StateMachine *s)

Gets number of active gammu configurations.

Parameters:
  • s – State machine data

Returns:

Connection type.