www.heimetli.ch Heimetli Software AG HSWModule ... Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5.



Ähnliche Dokumente
Heimetli Software AG HSWTAP ... DLL zum Senden von SMS-Meldungen Version August 2005

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Reporting Services und SharePoint 2010 Teil 1

Das Leitbild vom Verein WIR

Dokumentation IBIS Monitor

Enigmail Konfiguration

Anleitung zur Nutzung des SharePort Utility

ICS-Addin. Benutzerhandbuch. Version: 1.0

EasyWk DAS Schwimmwettkampfprogramm

Herzlich Willkommen bei der nfon GmbH

Sie müssen sich für diesen Fall mit IHREM Rechner (also zeitgut jk o.ä.) verbinden, nicht mit dem Terminalserver.

Professionelle Seminare im Bereich MS-Office

Installation eines BM-33k6/ISDN pro USB an einem Windows XP-Rechner

Anwendungsbeispiele Buchhaltung

Lizenzen auschecken. Was ist zu tun?

ARCO Software - Anleitung zur Umstellung der MWSt

Artikel Schnittstelle über CSV

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

POP -Konto auf iphone mit ios 6 einrichten

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Was meinen die Leute eigentlich mit: Grexit?

Ihren Kundendienst effektiver machen

Installation und Inbetriebnahme von SolidWorks

Zwischenablage (Bilder, Texte,...)

web: CAD/CAM-Systeme Entwicklung Beratung Vertrieb Kundenbetreuung Service für Werkzeugmaschinen

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Persönliches Adressbuch

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Einrichtung einer Weiterleitung auf eine private Adresse in der Hochschule

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

icloud nicht neu, aber doch irgendwie anders

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Anleitung Grundsetup C3 Mail & SMS Gateway V

Erstellen einer digitalen Signatur für Adobe-Formulare

Firmware-Update, CAPI Update

Registrierung am Elterninformationssysytem: ClaXss Infoline

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

MESONIC WINLine Jahreswechsel. Umstellung des Wirtschaftsjahres SMC IT AG

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Installation von MailON2!

Datensicherung. Beschreibung der Datensicherung

Updatehinweise für die Version forma 5.5.5

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Was man mit dem Computer alles machen kann

Leichte-Sprache-Bilder

Erstellen einer in OWA (Outlook Web App)

Änderungsbeschreibung HWS32 SEPA Überweisungen

Lokale Installation von DotNetNuke 4 ohne IIS

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Installationsanleitung CLX.PayMaker Home

ORGA 6000 in Terminalserver Umgebung

Der große VideoClip- Wettbewerb von Media Markt.

1 Anschließen der Wiegeanzeige an den PC

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Theoretische Informatik SS 04 Übung 1

OP-LOG

Update / Inbetriebnahme domovea Server. Update/Inbetriebnahme domovea Server Technische Änderungen vorbehalten

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Die Post hat eine Umfrage gemacht

Virtual Private Network

Das Persönliche Budget in verständlicher Sprache

Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7

Wie halte ich Ordnung auf meiner Festplatte?

Zählen von Objekten einer bestimmten Klasse

Klicken Sie auf Extras / Serienbriefe mit Word. Im Fenster Serienbriefe können Sie nun auswählen, an wen Sie den Serienbrief schicken möchten.

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Allgemeine USB Kabel Installation und Troubleshooting

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

SMS/ MMS Multimedia Center

Hex Datei mit Atmel Studio 6 erstellen

Dieses HowTo darf nicht vervielfältigt oder veröffentlich werden ohne Einverständnis des Erstellers. Alle Angaben ohne Gewähr.

Steganos Secure Schritt für Schritt-Anleitung für den Gastzugang SCHRITT 1: AKTIVIERUNG IHRES GASTZUGANGS

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Verwendung des IDS Backup Systems unter Windows 2000

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

DER SELBST-CHECK FÜR IHR PROJEKT

als SMS. O 2 (ehem. VIAG, Genion) SMS aktivieren: Verschicken Sie mindestens eine

Hochschulrechenzentrum

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Abwesenheitsnotiz im Exchangeserver 2010

1. Weniger Steuern zahlen

Statuten in leichter Sprache

Kommunikations-Management

INTERNET UND MMS MIT DEM QTEK2020 MARCO 28. MÄRZ 04

Medea3 Print-Client (m3_print)

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern

Inhaltsverzeichnis. 1. Empfängerübersicht / Empfänger hinzufügen 2. Erstellen eines neuen Newsletters / Mailings 3. Versand eines Newsletters

Transkript:

www.heimetli.ch. Heimetli Software AG HSWModule........ Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5. August 2005

Inhaltsverzeichnis Was ist HSWModule?... 1 Installation... 2 Interface... 2 Überblick... 2 Funktionsaufrufe... 3 ActivateModule... 3 DeactivateModule... 4 SendTextMessage... 4 ReceiveTextMessage... 4 GetFailedMessage... 5 GetModuleState... 5 Limiten... 5 GSM-Module... 5 Windows 95... 5 Beispielprogramm... 6 Lizenzbestimmungen... 7 Eine Lizenz pro Entwickler... 7 Royalties... 7 Einschränkung... 7 Haftung... 7 Kontaktadresse... 7

Übersicht Was ist HSWModule? HSWModule ist eine Dynamic Link Library (DLL) für Windows, die SMS-Meldungen über ein GSM-Modul senden und empfangen kann. Die DLL verlangt folgende Konfiguration: HSWModule GSM-Modul SMS-Center Handy Um die DLL richtig einzusetzen, brauchen Sie also zusätzlich: Eine freie serielle Schnittstelle Ein GSM-Modul von Siemens (oder kompatibel) Eine SIM-Karte für das Modul Eine Programmiersprache die das Einbinden von DLLs erlaubt Die Library verwendet AT-Befehle für die Kommunikation mit dem Modul. Bei der Entwicklung der DLL wurde darauf geachtet, dass das Interface und der Einsatz von HSWModule möglichst einfach wird. Seite 1

Installation und Interface Installation Für die Installation brauchen Sie nichts weiter zu tun als die HSWModule.dll aus dem Directory HSWModule auf der CD an einen Ort zu kopieren, wo Ihr Programm sie finden kann. Am besten haben Sie die DLL unter Kontrolle wenn Sie sie im gleichen Directory wie Ihre Applikation ablegen. Auf der CD finden Sie ausserdem: HSWModule\HSWModule.h Das Headerfile für C / C++ - Programme HSWModule\HSWModule.lib Eine Import-Library die zu C/C++-Programmen gelinkt werden kann C\TestLibrary.cpp Ein simples Anwendungsbeispiel Delphi\TestModule.pas Ein Beispielprogramm mit der Deklaration der Library Delphi\TestModule.dfm Form zum Delphi-Beispiel Delphi\TestLibrary.dpr Projektfile für Delphi Interface Überblick Um die Applikation so gut wie möglich vom Modul zu entkoppeln, hat die Library folgenden Aufbau: TransmitQueue Applikation ReceiveQueue Comm-Thread Serielle Schnittstelle FailedQueue Ein dedizierter Thread in der DLL hält die Verbindung mit dem GSM-Modul dauernd aufrecht. Wenn das Modul zum Senden bereit ist, holt er eine Meldung aus der TransmitQueue und gibt einen Sendeauftrag ans Modul. Falls das Modul die korrekte Uebertragung bestätigt, wird der Eintrag in der TransmitQueue gelöscht. Im Fehlerfalle versucht der Thread drei Mal, die Meldung abzusenden. Nach dem dritten Versuch gibt er auf und betrachtet die Meldung als unzustellbar. Auf Wunsch der Applikation werden solche Meldungen in die Failed- Queue geschrieben oder stillschweigend gelöscht. Der Thread prüft periodisch, ob das Modul neue Meldungen empfangen hat. Die empfangenen Meldungen werden in die ReceiveQueue geschrieben, wo sie die Applikation abholen kann. Seite 2

Funktionsaufrufe Aus diesem Aufbau leiten sich folgende Funktionsaufrufe ab: ActivateModule Aktiviert die Library und startet den Thread DeactivateModule Deaktiviert die Library und stoppt den Thread SendTextMessage Stellt eine Meldung in die TransmitQueue ReceiveTextMessage Entnimmt eine Meldung aus der ReceiveQueue GetFailedMessage Entnimmt eine Meldung aus der FailedQueue GetModuleState Gibt den aktuellen Zustand des Moduls an ActivateModule Muss der erste Aufruf der Library sein. Er öffnet und initialisiert die Schnittstelle und konfiguriert und startet den Thread. int ActivateModule( const char *port, const char *pin, const char *smsc, const char *logfile, int processfailed ) ; // Name der seriellen Schnittstelle // PIN-Code der SIM-Karte // Nummer des SMS-Centers // Name für das Logfile // Behandlung der Sendefehler Das port gibt an, an welcher Schnittstelle das Modul angeschlossen ist, zum Beispiel "COM1". Die DLL erwartet, dass es sich um eine normale Schnittstelle handelt, die mit CreateFile geöffnet, und mit SetCommState konfiguriert werden kann. Der Parameter pin ist der PIN-Code für die SIM-Karte im Modul. Ueblicherweise ist das ein String mit 4 Zahlen, zum Beispiel "3731". Bei smsc geben Sie die Nummer des SMS-Centers an. Dies ist notwendig, da das Modul die SMS nicht direkt an den gewünschten Teilnehmer senden kann, sondern über das SMS-Center gehen muss. Die Nummer des SMS-Centers ist vom Betreiber des Mobil-Netzes festgelegt. Für die Swisscom ist dieser Parameter "+41794999000". Ein logfile ist optional. Wenn Sie einen Filenamen angeben, schreibt die Library die wichtigsten Events in dieses File. Das Logfile kann Ihnen bei der Inbetriebnahme und der Fehlersuche der Library helfen, herauszufinden was abgelaufen ist. Im Normalbetrieb können Sie den Wert NULL angeben und es wird kein Logfile geschrieben. Mit processfailed bestimmen Sie, was mit Meldungen passiert, die nicht übertragen werden können. Wenn Sie 0 angeben, werden die Meldungen einfach gelöscht, bei allen anderen Werten wird die Meldung in die Failed- Queue geschrieben, wo Sie sie wieder abholen und analysieren können. Bei einer erfolgreichen Ausführung des Aufrufes bekommen Sie den Wert HSWMOD_SUCCESS (0) zurück und sonst einen Fehlercode. Bei einem Fehler ist dafür gesorgt dass die Library wieder in den gleichen Zustand wie vor dem Aufruf kommt. Seite 3

DeactivateModule Die Hauptfunktion von DeactivateModule besteht darin, den Thread zu stoppen und die Schnittstelle wieder freizugeben. Da es ein paar Sekunden dauern kann, bis der Thread wirklich terminiert, kann diese Funktion die Applikation ein paar Sekunden blockieren. int DeactivateModule( void ) Im Erfolgsfalle liefert die Funktion HSWMOD_SUCCESS (0). SendTextMessage Schreibt eine Meldung in die TransmitQueue. int SendTextMessage( const char *to, const char *text ) Das Argument to ist die Handy-Nummer des Empfängers als String mit bis zu 25 Charactern. Normalerweise sind dies eine Telephonnummer und eventuell ein führendes '+'. Die Library gibt diesen String unverändert ans Modul weiter, Sie können also alles angeben, was vom Modul als gültige Nummer akzeptiert wird. Das Argument text ist der Meldungstext von maximal 160 Charactern. Dabei gilt es zu beachten, dass das GSM- Alphabet viel weniger Zeichen hat als der ANSI-Zeichensatz von Windows! Die Library konvertiert den Meldungstext so gut wie möglich, aber viele ANSI-Zeichen können einfach nicht dargestellt werden und werden zu Spaces konvertiert. Sie sind also gut beraten, wenn Sie den Text möglichst auf die druckbaren ASCII-Character beschränken. Da der Thread asynchron zur Applikation läuft, wird die Meldung nicht sofort gesendet, sondern erst wenn das Modul dafür bereit ist. Wenn das Modul ein permanentes Problem hat, zum Beispiel eine ungültige SIM-Karte, wird die Meldung also gar nie gesendet... Aus diesem Grunde könnte es ratsam sein, mit diesem Aufruf zu warten bis GetModuleState den Wert STATE_READY zurückgibt. ReceiveTextMessage Holt eine Meldung aus der ReceiveQueue. int ReceiveTextMessage( char *from, char *text ) Die beiden übergebenen Pointer sind also OUT-Parameter, das heisst, die Library schreibt die Handy-Nummer und den Meldungstext an die angegebene Stelle im Speicher. Die DLL erwartet, dass die Handy-Nummer mindestens 25 Character aufnehmen kann, der Buffer also 26 Bytes gross ist. Der Text kann maximal 160 Character lang sein und benötigt deshalb einen Buffer von mindestens 161 Bytes. Der Meldungstext beim Empfang vom GSM-Charactersatz in den ANSI-Charactersatz konvertiert. Wenn keine Meldung in der ReceiveQueue ist, gibt die Funktion 0 zurück. Seite 4

GetFailedMessage Holt eine Meldung aus der FailedQueue. int GetFailedMessage( char *to, char *text ) Die beiden übergebenen Pointer sind also OUT-Parameter, das heisst, die Library schreibt die Handy-Nummer und den Meldungstext an die angegebene Stelle im Speicher. Die DLL erwartet, dass die Handy-Nummer mindestens 25 Character aufnehmen kann, der Buffer also 26 Bytes gross ist. Der Text kann maximal 160 Character lang sein und benötigt deshalb einen Buffer von mindestens 161 Bytes. Wenn keine Meldung in der ReceiveQueue ist, gibt die Funktion 0 zurück. GetModuleState Da die Applikation nicht direkt mit dem Modul kommuniziert, hat sie auch keine Möglichkeit, Probleme des Moduls zu erkennen.damit die Applikation nicht ins Leere arbeitet, stellt die Library die Funktion GetModuleState zur Verfügung. int GetModuleState( void ) Wenn das Modul ordnungsgemäss arbeitet, gibt dieser Aufruf STATE_READY zurück. Limiten GSM-Module Die aktuelle Version der Library unterstützt nur Module von Siemens oder tatsächlich hundert Prozent kompatible Produkte. Obwohl es eigentlich einen Standard gibt, kann man den offensichtlich verschieden auslegen... Windows 95 Die Library läuft nicht unter Windows 95, weil in dieser Version von Windows die CancelIo API-Funktion nicht existiert. Seite 5

Beispiel Beispielprogramm #include <windows.h> #include <stdio.h> #include "HSWModule.h" int main() { // Activate the module if( ActivateModule("COM2","3731","+41794999000","test.log",TRUE)!= HSWMOD_SUCCESS ) { printf( "Error: ActivateModule failed\n" ) ; return 1 ; } // Wait until the module is ready while( GetModuleState()!= STATE_READY ) { Sleep( 500 ) ; putchar( '.' ) ; } putchar( '\n' ) ; // Send a text message SendTextMessage( "0797790339", "Das ist ein Test" ) ; char phone[26] ; char text[161] ; // Get received messages while( ReceiveTextMessage(phone,text) ) printf( "Received: %s \"%s\"\n", phone, text ) ; // Wait a bit for the module to send the message Sleep( 15000 ) ; // Get failed messages while( GetFailedMessage(phone,text) ) printf( "Failed: %s: \"%s\"\n", phone, text ) ; // Deactivate the module DeactivateModule() ; } return 0 ; Seite 6

Lizenzbestimmungen und Kontaktadresse Lizenzbestimmungen Eine Lizenz pro Entwickler Durch die Bezahlung der Lizenzgebühr erhält ein Entwickler das Recht, die DLL ohne weitere Kosten in all seinen Projekten einzusetzen. Wenn mehrere Entwickler in einer Firma die DLL einsetzen, muss jeder im Besitze einer eigenen Lizenz sein. Royalties Es gibt keine Royalties in irgendwelcher Form, das heisst der Entwickler darf eine beliebige Anzahl von Kopien der DLL für seine Projekte erstellen, und zusammen mit seiner Software weitergeben Einschränkung Die DLL darf nur als Teil einer Applikation weitergegeben werden. Haftung Wie bei Software üblich, kann die Heimetli Software AG keine Haftung für die Funktion dieses Programmes oder für Folgeschäden übernehmen. Der Anwender der DLL ist dafür verantwortlich, die Software in seiner Applikation so gut wie möglich zu testen. Die Heimetli Software AG haftet höchstens für den Betrag der Lizenzgebühr. Kontaktadresse Wir haben uns bemüht, die DLL und das Beschreibung so einfach wie möglich zu machen. Sollten trotzdem noch Fragen oder Probleme auftauchen, dann nehmen Sie doch bitte mit uns Kontakt auf: Heimetli Software AG Dorfstrasse 21 4613 Rickenbach Tel: 062 / 216 29 07 Web: http://www.heimetli.ch Seite 7

Index A ActivateModule...3 Adresse...7 Architektur...2 B Beispielprogramm...6 D DeactivateModule...4 F Funktionsaufrufe...3 G GetFailedMessage...5 GetModuleState...5 H Haftung...7 I Installation...2 Interface...2 K Kontaktadresse...7 L Limiten...5 Lizenzbestimmungen...7 R ReceiveTextMessage...4 Royalties...7 S SendTextMessage...4 U Ueberblick...2 Seite 8