# 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.

  See also

  GSM_SetDebugFunction

  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.