sms.h-Dateireferenz

Konfigurationsdatei zur Datei sms.c. Mehr ...

#include <avr/io.h>
#include <string.h>
#include <stdlib.h>
#include <util/delay.h>

Include-Abhängigkeitsdiagramm für sms.h:

Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:


Datenstrukturen

struct  DATE_T
 Struktur mit Datums- und Zeitangaben einer empfangenen Textnachricht. Mehr ...
struct  SMS_DECODE_DATA_T
 Struktur zum speichern der decodierten Daten aus einer empfangenen Textnachricht. Mehr ...
struct  SMS_CMD_LIST_S
 Struktur zum Zuordnen eines empfangenen Kommandos zu einer Funktion (die konkrete Zuordnung erfolgt über sms_cmd_list in sms.c). Mehr ...
struct  SMS_TELNR_LIST_S
 Struktur zum Verwalten von Telefonnummern, welche zur Anrufererkennung dienen (die konkrete Zuordnung erfolgt über sms_telnr_list in sms.c bzw. sms_init). Mehr ...

Makrodefinitionen

#define SMS_TELNR   "01623456789"
#define SMS_TELNR_LIST_MAX   5
#define SMS_TELNR_MAX_LEN   15
#define SMS_MESSAGE_MAX_LEN   160
#define SMS_DELIMITER   ",;: "

Typdefinitionen

typedef struct SMS_CMD_LIST_S SMS_CMD_LIST_T
 Struktur zum Zuordnen eines empfangenen Kommandos zu einer Funktion (die konkrete Zuordnung erfolgt über sms_cmd_list in sms.c).
typedef struct SMS_TELNR_LIST_S SMS_TELNR_LIST_T
 Struktur zum Verwalten von Telefonnummern, welche zur Anrufererkennung dienen (die konkrete Zuordnung erfolgt über sms_telnr_list in sms.c bzw. sms_init).

Aufzählungen

enum  SMS_MSG {
  SMS_OK, SMS_ERROR, SMS_MSG_DECODE, SMS_INCOMING_RING,
  SMS_CANCEL_RING, SMS_REQUEST_TELNR, SMS_RETRIEVE_TELNR, SMS_RETRIEVE_nTELNR,
  SMS_IDLE
}

Funktionen

uint8_t str2int (char data)
void sms_init (void)
void sms_time (unsigned char *year, unsigned char *month, unsigned char *day, unsigned char *hour, unsigned char *minute, unsigned char *secound)
void sms_send (char *zielnr, char *nachricht)
void sms_display_text (char *nachricht)
void sms_decode (char *pdu, SMS_DECODE_DATA_T *data)
uint8_t sms_check_nr (char *telnr_in)
SMS_MSG sms_state_machine (void)
uint8_t sms_cmdset (uint8_t dat)

Variablen

SMS_TELNR_LIST_T sms_telnr_list [SMS_TELNR_LIST_MAX]
char sms_last_caller [SMS_TELNR_MAX_LEN+1]
volatile SMS_DECODE_DATA_T sms_dec_data

Ausführliche Beschreibung

Konfigurationsdatei zur Datei sms.c.

Autor:
Lars Neubert
Datum:
Feb 2010

Makro-Dokumentation

#define SMS_TELNR   "01623456789"

Adressat, an welche SMS geschickt werden soll (immer führende 0 mitschreiben, NICHT +49)
Dient zudem zur Anrufererkennung neben SMS_TELNR_LIST_T.

#define SMS_TELNR_LIST_MAX   5

definiert die maximale Anzahl der Telefonnummern in der Telefonnummernliste
Dies kann zur Anrufernummernerkennung genutzt werden.Dabei werden immer die ersten SMS_TELNR_LIST_MAX Nummern der SIM-Karte verwendet (siehe sms_init)

#define SMS_TELNR_MAX_LEN   15

definiert die maximale Länge einer Telefonnummer

#define SMS_MESSAGE_MAX_LEN   160

definiert die maximale Länge einer Textnachricht

#define SMS_DELIMITER   ",;: "

Trennzeichen um Befehle aus empfangenen Textnachrichten zu selektieren


Dokumentation der benutzerdefinierten Typen

Struktur zum Zuordnen eines empfangenen Kommandos zu einer Funktion (die konkrete Zuordnung erfolgt über sms_cmd_list in sms.c).

Struktur zum Verwalten von Telefonnummern, welche zur Anrufererkennung dienen (die konkrete Zuordnung erfolgt über sms_telnr_list in sms.c bzw. sms_init).


Dokumentation der Aufzählungstypen

enum SMS_MSG

zusammengefasste Auflistung als Rückgabewert der State Machine (sms_state_machine)

Aufzählungswerte:
SMS_OK  OK von Mobiltelefon empfangen
SMS_ERROR  ERROR von Mobiltelefon empgangen
SMS_MSG_DECODE  Textnachricht eingegangen, decodiert und in SMS_DECODE_DATA_T Struktur gespeichert
SMS_INCOMING_RING  eingehender Anruf
SMS_CANCEL_RING  eingehender Anruf wurde abgewiesen
SMS_REQUEST_TELNR  Telefonnummer des eingehenden Anruft wurde abgefragt
SMS_RETRIEVE_TELNR  Anrufer wurde abgewiesen, Telefonnummer ermittelt und korrekt mit SMS_TELNR bzw. SMS_TELNR_LIST_T verglichen - über sms_last_caller kann jetzt der Anrufer identifiziert werden
SMS_RETRIEVE_nTELNR  Anrufer wurde abgewiesen, Telefonnummer ermittelt und nicht korrekt mit SMS_TELNR bzw. SMS_TELNR_LIST_T verglichen - über sms_last_caller kann jetzt der Anrufer identifiziert werden
SMS_IDLE  empfangene Zeichenkette wurde nicht in sms_state_machine "gefunden" (kein Eintrag)


Dokumentation der Funktionen

uint8_t str2int ( char  data  ) 

Wandelt ein Zeichen in eine Hexzahl um

Parameter:
data Zeichen, welches umgewandelt werden soll
Rückgabe:
Hexzahl equivalent von 'data'

void sms_init ( void   ) 

Initialisiert die serielle Schnittstelle und öffnet einen Kanal für Standard Ein-/Ausgabe (printf, gets, scanf,...)

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

void sms_time ( unsigned char *  year,
unsigned char *  month,
unsigned char *  day,
unsigned char *  hour,
unsigned char *  minute,
unsigned char *  second 
)

Ließt Datum und Zeit aus dem Mobiltelefon aus

Parameter:
year Pointer auf Speicherstelle für Jahreszahl
month Pointer auf Speicherstelle für Monat
day Pointer auf Speicherstelle für Tag
hour Pointer auf Speicherstelle für Stunde
minute Pointer auf Speicherstelle für Minute
second Pointer auf Speicherstelle für Sekunde

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

void sms_send ( char *  zielnr,
char *  nachricht 
)

Sendet eine SMS mit dem Inhalt "nachricht" an "zielnr"

Parameter:
zielnr Pointer auf Zielnummer der SMS
nachricht Pointer auf Nachricht der SMS an Zielnummer

void sms_display_text ( char *  nachricht  ) 

Stellt eine Textnachricht auf dem Mobiltelefon-Display dar

Parameter:
nachricht Pointer auf darzustellende Nachricht auf dem Mobiltelefon-Display

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

void sms_decode ( char *  pdu,
SMS_DECODE_DATA_T data 
)

Decodiert eine SMS im PDU Format

Parameter:
pdu Pointer aud den komplette PDU-String (angefangen mit Länge des Headers, SMSC Nr, etc)
data Pointer auf Struktur vom Typ SMS_DECODE_DATA_TYPE (in sms.h definiert)
zum speichern der decodierten Daten (Nachricht in Klartext, Telefonnummer, Datum, Zeit)

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

uint8_t sms_check_nr ( char *  telnr_in  ) 

Sucht nach Übereinstimmungen der übergebenen Telefonnummer in den gespeicherten Listen (sms_telnr_list oder SMS_TELNR)

Parameter:
telnr_in Vergleichsnummer zum Überprüfen
Rückgabe:
gibt an, ob eine entsprechende Nummer in sms_telnr_list oder SMS_TELNR gefunden wurde (0 - kein Fund, 1 - Fund)

SMS_MSG sms_state_machine ( void   ) 

State Machine zum auswerten der eingegangenen Daten vom Mobiltelefon

Rückgabe:
gibt an, ob ein entsprechender Eintrag in der State Machine gefunden wurde (entsprechend SMS_MSG)

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

uint8_t sms_cmdset ( uint8_t  dat  ) 


Variablen-Dokumentation

SMS_TELNR_LIST_T sms_telnr_list[SMS_TELNR_LIST_MAX]

anlegen der Struktur zum speichern der Telefonnummernliste zur Anrufererkennung in sms_state_machine (Definition siehe sms.h)
Das Auffüllen des Arrays erfolgt in sms_init.

char sms_last_caller[SMS_TELNR_MAX_LEN+1]

globale Variable mit Telefonnummer des letzten Anrufers

anlegen der Struktur zum speichern der decodierten Daten der PDU Zeichenkette (Definition siehe sms.h)


Erzeugt am Mon May 24 14:41:58 2010 für Siemens_Handy von  doxygen 1.5.7.1