1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
/* Test for decoding SMS on AT driver */
#include <gammu.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "../common/phone/at/atgen.h"
#include "../common/protocol/protocol.h" /* Needed for GSM_Protocol_Message */
#include "../common/gsmstate.h" /* Needed for state machine internals */
#include "../common/gsmphones.h" /* Phone data */
#define BUFFER_SIZE 16384
int main(int argc UNUSED, char **argv UNUSED)
{
GSM_Debug_Info *debug_info;
GSM_Phone_ATGENData *Priv;
GSM_Phone_Data *Data;
GSM_DateTime dt;
unsigned char buffer[BUFFER_SIZE];
int i;
GSM_StateMachine *s;
GSM_Error error;
/* Configure state machine */
debug_info = GSM_GetGlobalDebug();
GSM_SetDebugFileDescriptor(stderr, debug_info);
GSM_SetDebugLevel("textall", debug_info);
/* Allocates state machine */
s = GSM_AllocStateMachine();
if (s == NULL) {
printf("Could not allocate state machine!\n");
return 1;
}
debug_info = GSM_GetDebug(s);
GSM_SetDebugGlobal(true, debug_info);
GSM_SetDebugFileDescriptor(stderr, debug_info);
GSM_SetDebugLevel("textall", debug_info);
/* Initialize AT engine */
Data = &s->Phone.Data;
Data->ModelInfo = GetModelData(NULL, NULL, "unknown", NULL);
Priv = &s->Phone.Data.Priv.ATGEN;
Priv->ReplyState = AT_Reply_OK;
Priv->SMSMode = SMS_AT_PDU;
Priv->Charset = AT_CHARSET_GSM;
/* Perform real tests */
error = ATGEN_ParseReply(s,
"+CPBR: 1,,\"+31234657899\",145,\"Mama GSM\",\"2007/11/02,09:27\"",
"+CPBR: @i, @s, @p, @i, @s, @d",
&i, buffer, BUFFER_SIZE, buffer, BUFFER_SIZE, &i, buffer, BUFFER_SIZE, &dt
);
if (error != ERR_NONE) {
printf("%s\n", GSM_ErrorString(error));
return 1;
}
error = ATGEN_ParseReply(s,
"+CPBR: 6,\"\",,\"005300740061006E006C006500790020005000610075006C\"",
"+CPBR: @i, @p, @I, @s",
&i, buffer, BUFFER_SIZE, &i, buffer, BUFFER_SIZE);
if (error != ERR_NONE) {
printf("%s\n", GSM_ErrorString(error));
return 1;
}
/* Free state machine */
GSM_FreeStateMachine(s);
return 0;
}
/* Editor configuration
* vim: noexpandtab sw=8 ts=8 sts=8 tw=72:
*/
|