Date |
Rev |
Status |
Author |
Last Change |
|
2008-05-05 |
0.1 |
Draft |
Michael Gries |
Initial Draft |
|
2008-06-01 |
1.0 |
Release |
Michael Gries |
Implementation Step 1 - Basic |
|
2008-10-03 |
2.0 |
Release |
Michael Gries |
Implementation Step 2 - SMS |
|
2008-11-09 |
3.0 |
Release |
Michael Gries |
Implementation Step 3 - FTP |
|
2008-12-30 |
3.1 |
open |
Michael Gries |
update – not yet released |
|
Source Document |
|||||
Preface
This document is for testing purposes only.
Siemens TC65 Terminal
Table of Contents
1.5. Roles and Responsibilities
2.2. GPIO Interface des TC65 Terminal
2.2.1. GPIO Buchse - Signalzuordnung
3. Integrated Development Environment (IDE)
3.1. Verwendete IDE - NetBeans 5.5.1
3.1.1. Einstellungen für Projekt
4.3.1. Flussdiagramm (MIDlet) für AF104 mit TC65 Terminal
4.3.4. Steuerung durch SMS-Empfang
4.3.5. RTC Batterie-Spannung Abfrage
5.1.1. ZOC - Script Delete SMS
5.2.1. GSM Prepaid Karten (FONIC)
5.2.2. Anschlusszubehör für GPIO Port
5.2.3. Spannungsversorgung TC65 Terminal
5.2.4. Innenbeschaltung TC65 Terminal
5.3.1. Modifikation RS-232 Kabel
5.3.2. RS-232 Kabel für JAVA Autostart mittels DTR
5.4. Block Diagram TC65 Terminal
5.5.1. Stromlaufplan GPIO - Modul
5.5.3. Stückliste GPIO – Modul
5.5.4. Ersatzteile / Spare Parts
6.1. Datenblätter (externe Hardware zum TC65 Terminal)
6.1.3. Kapazitivschalter – Mentor
7. Java AF104 Application Programming Interface (API)
7.2. Example – Astro functionality
7.3. Drucker Einstellungen für Ausdruck diverser Dokumentationen
Hypercom internal project of Global Quality Management.
This document covers stand-alone java application development and testing based on Siemens wireless toolkit of TC65 module
For internal testing and Quality Assurance purposes. Non commercial application.
Siemens documentation
[1] TC65 Terminal Hardware Interface Description 01.041
[2] TC65 AT Command Set 02.000
[3] TC65 Terminal Release Notes 02.000
[5] Java 2 - Praxis der objektorientierten Programmierung, Dirk Louis, 2004, ISBN 3-8272-6271-2
[6] Java 2 - Markt & Technik, Roger Cadenhead, 2001, ISBN 3-8272-6014-0
Only these responsibilities of a given role is described which relates to this project.
Role |
Responsibility |
Person |
Project Manager |
|
Michael Gries |
Hardware Support |
|
Klaus Bachmann |
Java Implementation |
|
Michael Gries |
Testing |
Only documentation. Clearness, Completeness, etc. |
Sebastian Gries |
Internet Services |
e-mail, GPRS |
Thomas Bleckmann |
GPRS Antenna |
GPRS related measurements, GPRS hardware |
Thomas Grundler |
UML |
|
Hartmut Stippich |
Sensoric |
|
Uwe Voigtsberger |
Modular Printer |
|
Dr. Steffen Bug |
Date |
Item |
Remarks |
2008-05-05 |
TC65 Terminal (Testversion) |
Leihweise von Steffen Bug. |
|
|
|
|
|
|
|
|
|
2008-08-10 |
Debug Funktionalität |
Umleitung System.out von default ASC1 auf ASC0 per at^scfg Befehl (Userware/Stdout) |
|
|
|
Item |
Function |
Requirements |
0 |
Inbetriebnahme |
Einbau im Installationsschrank; Steuerungsmöglichkeiten über serielle Schnittstelle; Abfrage GSM Parameter |
0.1 |
Java Autostart |
nach Spannungsverlust TC65 terminal |
1 |
Lichtsteuerung bei Abwesenheit |
Flurlicht 1.OG; Mindestens eine Sequenz Ein-Ausschaltzeit. fest programmiert. |
1.1 |
wie 1; jedoch Erweiterung |
Flurlicht EG |
1.2 |
Astrofunktion |
Jahresverlauf Sonnen- Aufgangs-Untergangszeiten |
1.3 |
Dämmerungsabhängig |
Steuerung durch Dämmerungsschalter als zusätzliches Eingangssignal |
2 |
Außenbeleuchtung |
Ein-Ausschalten durch GSM Anruf (beliebiger rufender Teilnehmer. Aktivierung durch Rufzeichen (keine Verbindungskosten. |
2.1 |
wie 2; jedoch automatisches Ausschalten |
Ausschalten nach fest programmierter Zeit (3min.) |
2.2 |
wie 2.1, jedoch |
Ausschaltzeit per SMS programmierbar
|
2.3 |
wie 2, jedoch abhängig von Astrofunktion |
Einschalten nur bei Aktivierung nach Astrofunktion (item 1.2) |
2.3 |
wie 2, jedoch Helligkeitsabhängig |
Einschalten nur bei Aktivierung nach Dämmerung (item 1.3) |
2.4 |
wie 2, jedoch eingeschränkter Teilnehmerkreis |
Liste bis zu 10 Tln-Nummern, für die eine Aktivierung erlaubt ist. |
3 |
Aufzeichnungen |
|
3.1 |
Log in Flashspeicher |
|
3.2 |
Log auf Drucker |
Thales Wall Mounted Printer; zus. Hardware |
4 |
Haustür-Kommunikation |
|
4.1 |
Klingelerkennung |
passiv (Wechselstromerkennung) an bestehender, klassischer Klingelinstallation. |
4.2 |
Klingelsteuerung |
aktiv (direkte Ansteuerung des Klingelknopf über 24V Gleichspannung (alternativ Funk); damit Aktivierung mehrerer Gongs möglich. |
4.3 |
Gesprächsfunktion |
per GSM Ruf; zusätzliche Hardware |
|
|
|
# |
Function |
Item |
Remark |
section |
Date |
0 |
TC65 Terminal |
--- |
über Dr. Steffen Bug |
|
2008-05-05 |
1 |
Projektstart |
0 |
SPI_080621 |
|
2008-06-21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
GPIO-Hardware Dokumentation |
- |
Dokumentation |
5.4 |
2008-09-11 |
8 |
TC65-Handbücher als Ringbuch |
- |
Dokumentation |
7.1 |
2008-09-12 |
9 |
Berührungsloser Schalter für Astro Funktion |
2.3 |
Hardware |
4.3.3 |
2008-09-13 |
10 |
Kabel-Adapter |
0.1 |
Hardware |
2008-09-15 |
|
11 |
AF104 Dokumentation als HTML auf Server |
- |
Dokumentation |
|
2008-09-16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
See below
No. |
Task |
Due date |
Date impl. |
|
check prepaid account periodically: use ATD*101#; with AT response Listener (+CUSD) |
2008-00-00 |
2008-00-00 |
|
USSD Test: use ATD*135#; to get own phone number via network |
2008- |
|
|
|
|
|
The following picture is extracted from [1]:
There are several IDE which are recommended by Siemens SDK for a usage with Siemens TC65 Terminal
· Eclipse 3.x http://www.eclipse.org/
· NetBeans 5.5x http://www.netbeans.org/
· JBuilder http://www.codegear.com/products/jbuilder
Beschreibung siehe ….
Das TC65 Terminal unterstützt nur ein MIDlet zur Laufzeit.
Die entsprechende Klasse (extends MIDlet) muss in den Projekt-Eigenschaften wie folgt zu sehen eingetragen werden.
Die Dateinamen für das JAD-Datei und dem JAR-Archiv orientiert sich entsprechend dem Projektnamen und muss in den Projekt-Eigenschaften wie folgt eingetragen werden.
Author: Michael Gries
IMEI-AF104: 355632005221909
IMEI-TC65T: 355632005217881
MIDlet-1: AF104,,remoteAccess.AF104
MIDlet-Description: TC65 application for AF104
MIDlet-Info-URL: http://www.gries.name/AF104
MIDlet-Jar-Size: 43699
MIDlet-Jar-URL: AF104.jar
MIDlet-Name: AF104
MIDlet-Vendor: (C) by Michael Gries
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: IMP-NG
Bislang konnte das Debugging nicht in der NetBeans IDE selbst aktiviert werden.
Verwendeter Workaround:
Konfigurationsänderung In TC65: at^scfg=“Userware/Stdout“,“ASC0“
RUN NetBeans Applikation
start Hyperterminal nachdem NetBeans Daten *.jar Datei in TC65 geladen hat
Ggf. ZOC Terminal verwenden, da Hyperterminal teilweise die alten Daten nach dem scrollen nicht richtig anzeigt. ZOC schließt nicht COM-Port korrekt. Daher kurz COM-Port im Hyperterminal Programm aktivieren und desaktivieren.
AT command |
parameter |
description |
response / URC |
|
|
URC (Unsolicited Result Code) modem antwort nach dem einschalten |
^SYSSTART |
|
|
|
|
AT |
|
schnittstelle empfang testen |
OK |
|
|
|
|
ATI |
|
modem kennung abfragen |
… TC65 … OK |
|
|
|
|
AT^SPIO= |
1 |
GPIO aktivieren |
|
AT^SCPIN= |
0,8 |
schliessen, pin9 (schiessen vor jeder SCPIN operation) |
|
AT^SCPIN= |
1,8,0 |
öffnen, pin9, eingang |
|
AT^SCPOL= |
1,8 |
pollen aktivieren, pin9 |
|
|
|
|
|
|
|
URC pin9, vcc-pegel |
^SCPOL: 8,1 |
|
|
URC pin9, gnd-pegel |
^SCPOL: 8,0 |
|
|
|
|
AT^SCPIN= |
0,4 |
schliessen, pin5 |
|
AT^SCPIN= |
1,4,1 |
öffnen, pin5, ausgang |
|
AT^SGIO= |
4 |
abfrage pin5 pegel |
^SGIO: 0 |
AT^SSIO= |
4,1 |
setzen pin5, vcc-pegel |
|
AT^SGIO= |
4 |
abfrage pin5 pegel |
^SGIO: 1 |
|
|
|
|
AT^SJRA= |
a:/test.jad |
explicit im flash Speicher vorhandenes Test-programm starten |
|
|
|
at^sjra=a:/ControlSPS.jad |
|
|
|
|
|
|
|
"02/01/01,00:14:38" |
|
|
|
|
|
AT command |
parameter |
description |
response / URC |
|
|
URC (Unsolicited Result Code) modem antwort nach dem einschalten |
^SYSSTART |
|
|
|
|
AT |
|
schnittstelle empfang testen |
OK |
|
|
|
|
ATI |
|
modem kennung abfragen |
… TC65 … OK |
|
|
|
|
"02/01/01,00:14:38" |
AT+CCLK="08/06/20,14:59:55" Set Real Time Clock |
|
|
|
|
|
|
|
|
Signal Quality |
|
|
|
|
|
|
|
|
|
|
|
|
|
^SYSSTART
at
OK
ati
SIEMENS
TC65
REVISION 02.000
OK
at^spio=1
OK
at^scpin=0,8
OK
at^scpin=1,8,0
OK
at^scpol=1,8
OK
^SCPOL: 8,1
^SCPOL: 8,0
at^scpin=1,4,1
OK
at^sgio=4
^SGIO: 0
OK
at^ssio=4,1
OK
at^sgio=4
^SGIO: 1
OK
AT Parser
Es stehen nur drei AT Parser zur Verfügung.
d.h ein Konstrukt der Form
TCManager tc65 = new TCManager();
in verschiedenen Klassen ist daher nur begrenzt möglich
Vergl. Trace:
Lösung:
Die eigentliche Klasse um die zusätzliche Klasse erweitern (Vererben):
public class TC65Manager extends GPIO { ; }
Quelle: „http://de.wikipedia.org/wiki/MIDlet“ / Stand: Juli 2008
Ein MIDlet ist eine Software für ein Mobiltelefon oder vergleichbares mobiles Gerät (Smartphone), welches in der Programmiersprache Java geschrieben ist und dem Mobile Information Device Profile (MIDP) entspricht. MIDP ist wiederum ein Teil der Java Platform Micro Edition (Java ME) und eines der Profile der Connected Limited Device Configuration CLDC.
Mehrere MIDlets können zu einer MIDlet-Suite zusammengefasst werden, so dass sich die einzelnen MIDlets Ressourcen und Programmcode teilen können.
Viele der existierenden kostenpflichtigen Spiele für Mobiltelefone sind MIDlets auf Embedded-Java-Basis. Die kostenlosen Anwendungen reichen von kleinen E-Book-Readern über Kalender- oder Telnet-Clienten bis hin zu einem BASIC-Interpreter.
MIDlet Lebenszyklus
MIDlets können sich, nachdem sie gestartet wurden, in mehreren Zuständen befinden und zwischen ihnen wechseln. Die Java Application Management Software (AMS) steuert den Lebenszyklus (engl. "life cycle") eines MIDlets. Dieser Programmmanager ist u. a. dafür verantwortlich, MIDlets zu initialisieren, zu starten, zu pausieren, wiederaufzunehmen und zu beenden. Demnach kann sich ein MIDlet in vier Zuständen befinden: Loaded, Paused, Active und Destroyed.
Lebenszyklus eines MIDlets
Nachdem ein MIDlet geladen wurde, beginnt es sein Leben im
Zustand Loaded/Paused. Der Programmmanager ruft startApp()
auf, und das MIDlet wechselt in den Zustand Paused. Es gibt drei weitere
Möglichkeiten in den Zustand Paused zu gelangen. Erstens, wenn der
Programmmanager die Methode pauseApp()
aufruft. Dies kann z. B.
durch einen eingehenden Telefonanruf erfolgen. Zweitens, wenn das MIDlet durch
Aufruf der Methode notifyPaused()
sich selbst pausiert. Drittens,
wenn startApp()
eine MIDletStateChangeException
erzeugt. Der Programmmanager ruft diese Methode entweder nach der
Initialisierung oder später auf, um wieder in den Zustand Active zu
gelangen. Befindet sich ein MIDlet in Paused, sollten die laufenden
Prozesse des MIDlets gestoppt werden, damit die Applikation im Vordergrund alle
Ressourcen zur Verfügung gestellt bekommt, es zu keinen Ressourcekonflikten
kommt und die Batterie nicht unnötig belastet wird. Aktive MIDlets (Active)
führen die ihnen erteilten Aufgaben aus und beanspruchen dadurch Ressourcen für
sich. Der Zustand Destroyed kann entweder von Paused oder Active
erreicht werden. Um das MIDlet zu beenden, ruft der Programmmanager destroyApp()
mit dem boolean-Argument unconditional
auf. In dieser Methode
können letzte Befehle vor der endgültigen Terminierung durchgeführt werden, wie
z. B. reservierten Speicher freigeben oder geöffnete Verbindungen schließen.
Wenn der Programmmanager sich entschließt, das MIDlet zu beenden, dieses jedoch
gerade wichtige Funktionen ausführt, kann das Setzen des Parameters unconditional
auf false
eine erzwungene Terminierung verhindern. Eine Garantie
dafür gibt es allerdings nicht. Wie darauf reagiert wird, ist abhängig vom
Gerät. In der Regel wartet der Programmmanager einige Zeit und versucht dann,
das MIDlet erneut zu beenden. Ist unconditional
gleich true
,
wird das MIDlet erzwungen beendet, ungeachtet der Bedeutung laufender Prozesse.
wird direkt von Application Management Machine aufgerufen
u.a. URC Meldungen des TC65 Aktivieren
Trace-Funktionalität aktivieren
spezielle Eigenschaften in der AF104.jad Datei abfragen zwecks Prüfung ob autorisiertes TC65 Terminal (IMEI Abfrage)
Zeitgeber Aktivieren: u.a. periodischer Timer alle 24h um 04:00 AM.
z.Zt. kein Power Down Modus, d.h. Polling Betrieb.
GPIO Eingänge abfragen
SMS Anfragen prüfen und ggf. abarbeiten
eingehende Anrufe prüfen und ggf. bearbeiten
prüfen ob polling-Betrieb
gesteuert über TC65_TERMINATE (Boolean)
SMS-Benachtigung an ADMIN falls Ablauf durch Programm-Fehler beendet wird.
gesammelte Trace-Daten in Datei des TC65 Flash Speichers sichern.
GPIO-Ausgänge zurücksetzen.
Ausgabe-Info das MIDlet sich im Status ‚PAUSED’ befindet
a) Änderung Std-Ausgabe von ASC1 auf ASC0 : AT^SMFG=Userware/Stdout,ASC0
b) erweitertes Error-Reporting über ASC0: AT+CMEE=2
at+cmee=2
OK
ati?
+CME ERROR: unknown
c) URC Signalisierung auf ASC0 : AT+CMER=2
Ähnlich der Astro-Funktion einschlägiger Hersteller von Jalousie-Schaltern ist eine Funktion zu implementieren, die vom Tageslicht der jeweiligen Jahreszeit abhängige Schaltfunktionen anbietet (z.B. Außenlicht nur bei Dämmerung/Dunkelheit; Flurlicht bei Abwesenheit, Weihnachtsbeleuchtung, etc. ).
Funktionalität soll in einer eigenen Klasse Astro realisiert werden.
Die Berechnungsgrundlage ist Kapitel Astro Funktion zu entnehmen.
Schaltverhalten:
Die Astro Funktion ist standardmäßig eingeschaltet. Sie soll generell mittels SMS Zu- bzw. Abschaltbar sein.
Einzelfunktionen wie Beleuchtung bei Abwesenheit soll getrennt schaltbar sein (GPIO Porteingang).
Signalisierung mittels URCs aktivieren
AT+CMGF Select SMS message format
TEXT mode einstellen (default ist PDU mode)
AT+CMGF=1
AT+CNMI New short Message Indication
URC directly to TE , SMS stored in TA with URC indication of index
at+cnmi=3,1
Erkennung SMS-Empfang mittels URC
URC: +CMTI: "MT",29
Aufruf und Auswertung SMS des Inhalts
AT+CMGR=29 (für gelesen Status)
+CMGR: "REC READ","+491702237454",,"08/08/19,14:22:11+08"
AUSSENLICHT
OK
AT^SMGR=30 (für ungelesen Status)
+CMGR: "REC UNREAD","+491702237454",,"08/08/19,14:22:11+08"
AUSSENLICHT
OK
angeforderte Funktion ausführen
tc65.setAussenlicht();
Trace:
Abfrage einmal pro Tag (Klasse Remote.Access.Taeglich)
Aufgabe:
Überwachung der Batterie Spannung und Benachrichtigung, sobald ein bestimmter Spannungswert unterschritten wird.
SMS Benachrichtigung bei Unterschreitung von 2400mV.
SMS-Inhalt:
„Low RTC supply: xxxxmV, RTC: yy/mm/dd,hh:mm:ss“
Quelle: http://www.renata.com
Das T65Terminal unterstützt alle gängigen Kommunikationsdienste wie
· SMS
· FTP
· HTTP
Im Implementation Step 1 soll zunächst der SMS-Service für automatische Statusmeldungen, manuelle Statusabfragen und zur gezielten Änderung von Betriebsparametern Anwendung finden.
Da SMS die Hauptlast der Internet Dienste darstellt wurde der Service-Anbieter so gewählt, daß vorrangig der SMS-Service kostengünstig ist. Bei Projektstart war dies FONIC Prepaid mit 9 Ct pro SMS.
Im Implementation Step 2 sollen verschiedene Betriebsparameter auf www.gries.name grafisch dargestellt werden. Um die Übertragungskosten möglichst minimal zuhalten sind folgende Randbedingungen vorgesehen:
1. Übertragung 1x pro Tag
2. Übertragung nur der Einzelwerte auf den Server (FTP-Append funktion)
Die Kosten für pro Kbyte betragen laut Dienstanbieter:
Nachtrag Dec-2008: im Praxistest liegen die Kosten pro Übertragung (pro Tag) bei 2 Ct.
Service_Profile 1 (HTTP):
^SISS: 0,"srvType",""
^SISS: 1,"srvType","Http"
^SISS: 1,"conId","0"
^SISS: 1,"alphabet","0"
^SISS: 1,"hcMethod","0"
^SISS: 1,"hcContLen","0"
^SISS: 1,"hcAuth","0"
^SISS: 1,"hcRedir","1"
^SISS: 1,"address","http://www.gries.name/SSI.shtm"
^SISS: 1,"hcContent",""
^SISS: 1,"hcProp","Accept-Encoding: identity"
^SISS: 1,"user",""
^SISS: 1,"passwd","*****"
^SISS: 1,"hcUsrAgent","MC75/4.1"
^SISS: 1,"tcpMR","10"
^SISS: 1,"tcpOT","4119" "
Log-File (Auszug):
Quelle: http://www.gries.name/logs/access.log.current (über http://www.gries.name/Michael/Gries.shtm )
212.218.229.2 - - [15/Sep/2008:09:02:01 +0200] "GET /feed.rss HTTP/1.0" 304 - www.gries.name "-" "Windows-RSS-Platform/1.0 (MSIE 7.0; Windows NT 5.1)" "192.168.43.250"
212.218.229.2 - - [15/Sep/2008:09:03:48 +0200] "GET / HTTP/1.0" 200 3341 www.gries.name "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; InfoPath.1; .NET CLR 3.5.21022)" "192.168.43.250"
212.218.229.2 - - [15/Sep/2008:15:16:07 +0200] "GET /SSI.shtm HTTP/1.0" 200 4730 www.gries.name "http://www.gries.name/Michael/Gries.shtm" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; InfoPath.1; .NET CLR 3.5.21022)" "192.168.43.250"
82.113.121.8 - - [15/Sep/2008:15:20:10 +0200] "GET /SSI.shtm HTTP/1.1" 200 3391 www.gries.name:80 "-" "MC75/4.1" "-"
Fazit:
TC65 Terminal Rel. 2.0 (IMEI 355632005217881) liefert als
Kennung: "MC75/4.1"
( vergl. Auszug aus Service Profile oben; Kennung ist default und
wurde mittels AT-Kommando
at^siss=1,srvType,http
automatisch erzeugt
at^siso?
^SISO: 0, ""
^SISO: 1, "Http","6","2","3224","0","10.40.13.33:0","82.165.87.24:80"
^SISO: 2, ""
^SISO: 3, ""
^SISO: 4, ""
^SISO: 5, ""
^SISO: 6, ""
^SISO: 7, ""
^SISO: 8, ""
^SISO: 9, ""
OK
at^sisc=1
OK
at^siso?
^SISO: 0, ""
^SISO: 1, "Http","2","0","0","0","0.0.0.0:0","0.0.0.0:0"
^SISO: 2, ""
^SISO: 3, ""
^SISO: 4, ""
^SISO: 5, ""
^SISO: 6, ""
^SISO: 7, ""
^SISO: 8, ""
^SISO: 9, ""
OK
at^sisx="Ping",0,"www.gries.name",4
^SISX: "Ping",1,0,"82.165.87.24",785
^SISX: "Ping",1,0,"82.165.87.24",1011
^SISX: "Ping",1,0,"82.165.87.24",614
^SISX: "Ping",1,0,"82.165.87.24",628
^SISX: "Ping",2,0,4,4,0,0
^SISX: "Ping",3,0,614,1011,759
OK
at^sicc=0
OK
Für die gegenwärtige Testumgebung werden zwei Terminal-Programme benötigt.
Liste verwendeter Terminal Emulatoren:
1. Hyperterminal
(Microsoft – Windows XP Zubehör) file:///C:\Programme\Windows
NT\hypertrm.exe
2.
ZOC Pro 5.07 http://www.emtec.com
License:
Part A Part B Support
ID User
39738/01030/52304 29400 Z5D367A Thales
Dies liegt an dem Umstand, da das leistungsfähigere Terminal-Programm ZOC nach Beendigung nicht sofort die
Resourcen der seriellen Schnittstelle freigibt. Durch Aktiviren und anschließenden deaktivieren der Schnittstellen mittels Hyperterminal kann die NetBeans-Emulation anschließend wieder auf diese Schnittstell zugreifen.
/* REXX (CREATED BY ZOC REXX RECORDER) */
SAY " "
SAY "*** Script SMS Delete all starts ***"
ZocTimeout 2
CALL ZocSend "AT^^SLMS^M"
ZocWait "wait"
ZocTimeout 1
SAY "Delete SM (25) storage ..."
CALL ZocSend "AT+CPMS=SM^M"
ZocWait "wait"
DO i=1 TO 25
s = "at+cmgd="||i||"^M"
CALL ZocSend s
ZocWait "wait"
END
SAY "Delete ME (30) storage ..."
CALL ZocSend "AT+CPMS=ME^M"
ZocWait "wait"
DO i=1 TO 30
s = "at+cmgd="||i||"^M"
CALL ZocSend s
ZocWait "wait"
END
CALL ZocSend "AT^^SLMS^M"
SAY "*** Script SMS Delete all ends *****"
SAY " "
// OPTS_MACROS
UserDesc#00="TC63"
UserDesc#01="RTC"
UserDesc#02="IMEI"
UserDesc#03="IMSI"
UserDesc#04="Signal Quality"
UserDesc#05="list Profile"
UserDesc#06="Cells"
UserDesc#07="Monitoring"
UserDesc#08="Netstat URCs"
UserDesc#09="Status URCs"
UserDesc#10="ChkErr"
UserDesc#11="Text Mode"
UserDesc#12="SMS Send Test"
UserDesc#13="SMS mem"
UserDesc#14="SMS test new"
UserDesc#15="SMS read new"
UserDesc#16="SMS read all"
UserDesc#17="*100#"
UserDesc#18="*101# o2"
UserDesc#19="SMS Delete all"
UserDesc#20="GPRS"
UserDesc#21="TC63 off"
UserDesc#22="open GPIO"
UserDesc#23="set GPIO 5 out"
UserDesc#24="set GPIO 5 low"
UserDesc#25="set GPIO 5 high"
UserDesc#26="get GPIO 5"
UserDesc#27="set GPIO 9 in"
UserDesc#28="get GPIO 9"
UserDesc#29="set GPIO 10 out"
UserDesc#30="set GPIO 10 low"
UserDesc#31="set GPIO 10 high"
UserDesc#32="ati"
UserDesc#33="*100#"
UserDesc#34="SMS Send Test"
UserDesc#35="run ControlSPS"
UserDesc#36="autorun MIDlet"
UserDesc#37="autorun off"
UserDesc#38="RTC"
UserDesc#39="RTC set"
UserDesc#40=""
UserValue#00="ati^M"
UserValue#01="AT+CCLK?^M"
UserValue#02="atd*#06#;^M"
UserValue#03="at+CIMI^M"
UserValue#04="at+csq^M"
UserValue#05="at&v0^M"
UserValue#06="at^^smonc^M"
UserValue#07="at^^moni^M"
UserValue#08="at+creg=2^M~~~~~~at+creg?^M"
UserValue#09="at+cmer=3,0,0,2^M"
UserValue#10="at+ceer^M"
UserValue#11="at+cmgf=1^M"
UserValue#12="AT+CMGF=1^M~~~~~~~~~~~~AT+CMGS=01702237454"
UserValue#13="at^^slms^M"
UserValue#14="at^^smgl^M"
UserValue#15="at+cmgl^M"
UserValue#16="at+cmgf=1^M~~~~~~~~~~~~at^^smgl=all^M"
UserValue#17="atd*100#;^M"
UserValue#18="atd*101#;^M"
UserValue#19="^RUN=\Scripts\SMS Delete all.zrx"
UserValue#20="^RUN==\Scripts\GPRS.zrx"
UserValue#21="AT^^SMSO^M"
UserValue#22="at^^spio=1^M"
UserValue#23="at^^scpin=1,4,1^M"
UserValue#24="at^^ssio=4,0^M"
UserValue#25="at^^ssio=4,1^M"
UserValue#26="at^^sgio=4^M"
UserValue#27="at^^scpin=0,8^M~~~at^^scpin=1,8,0^M~~~~at^^scpol=1,8^M"
UserValue#28="at^^sgio=8^M"
UserValue#29="at^^scpin=1,9,1^M"
UserValue#30="at^^ssio=9,0^M"
UserValue#31="at^^ssio=9,1^M"
UserValue#32="ati"
UserValue#33="atd*100#;^M"
UserValue#34="AT+CMGF=1^M~~~~~~~~~~~~AT+CMGS=01702237454"
UserValue#35="at^^sjra=a:/ControlSPS.jad^M"
UserValue#36="AT^^SCFG=AutoExec,1,0,0,0,at^^sjra=a:/ControlSPS.jad^M"
UserValue#37="at^^scfg=autoexec,0,0,0,0^M"
UserValue#38="at+cclk?^M"
UserValue#39="at+cclk="08/07/06,23:22:21"^M"
UserValue#40=""
Zum Zeitpunkt der Evaluierung (August 2008) war das FONIC Prepaid Angebot bzgl. der als für dieses Projekt als wesentlich angesehen Punkte die optimale Lösung.
Kriterien:
Beschaffungskosten (für min. zwei Testsysteme)
min. SMS und GPRS Gebühren
keine Vertragslaufzeit
keine Zeitbegrenzung für Guthaben
FONIC GPRS Zugangsdaten:
aus MC Technologies Katalog:
Anstelle der angegebenen Bezugsquellen wurden von Klaus Bachmann verschieden farbige Einzellitzen (AWG 26) mit entsprechender Federhülse angefertigt.
Die zugehörige Micro Mate-N_Lok Buchse wurde von www.conrad.de bezogen.
pin |
function |
cable |
23 |
GND (signal ground |
black |
19 |
Vdd (0..3,0volts) |
brown |
|
|
|
15 |
GPIO pin9 (as input) |
red (polling, URC response) |
|
|
|
5 |
GPIO pin5 (as output) |
yellow |
Quelle: www.
Rohdaten aufbereitet in separater Excel-Tabelle.
U.a. für automatische Code-Generierung der Astro-Zeiten (da 366 Codezeilen pro
Sonnenaufgangs- bzw. Sonnenuntergangszeit).
Automatische Anpassung an Sommer-/Winterzeit Umstellung.
Zeiten-Ermittlung erfolgt Sekundengenau.
Zusätzlich vorgesehene Funktionen:
separate Wochenende Erkennung zur unterschiedlichen Lichtsteuerung
Quelle: www.merten.de Jalousie-Zeitschaltuhr Standard (Astrofunktion)
Aufgabe: Indikation des Signalzustandes der RING und CD-Ltg.
Realisierung: Modifikation an vorhandenen Kabel 744C403X000 / A01:
Lösungsansatz:
Sog. Kurzschlußstecker mit DTR-Eingang an RING-Ausgang. Bei SMS oder Call geht die
RING-Leitung für 1 Sekunde von activ-High auf activ-Low. Der Übergang von Low auf High bewirkt einen Start der zuvor eingestellten Java-Applikation.
Zum Abschalten der Autostart-Funktion AT-Kommando:
at^scfg=autoexec,0,0,0,0
Voraussetzungen:
der .JAD - Dateiname muss im TC65Terminal Konfigurationsspeicher
mittels at^scfg eingetragen sein.
Stecker-Typ: Stiftleiste (Male)
Implementierung:
2008-09-15: Klaus Bachmann
Mögliche Erweiterungen:
Signalisierung mittels LED und 1KOhm Vorwiderstand gegen
GND (Pin5)
Schaltplan Erstellung mittels EAGLE Layout Editor 5.2.0 (Freeware – www.cadsoft.de).
Schaltplan in EAGLE abspeichern unter Datei/Exportieren…/ als *.PNG
Partlist
Exported from GPIO.sch at 09.09.2008 12:23:50
EAGLE Version 5.2.0 Copyright (c) 1988-2008 CadSoft
Part Value Device Package Library Sheet
IC1 ULN2003AN ULN2003AN DIL16 uln-udn 1
LED1 LED3MM LED3MM led 1
OK1 PC900 OPI8013 DIL06 optocoupler 1
RN1 8R-N DIL16 resistor-dil 1
X1 W237-3E W237-3E con-wago-508 1
X2 W237-3E W237-3E con-wago-508 1
X3 W237-02P W237-132 con-wago-508 1
X4 W237-3E W237-3E con-wago-508 1
X8 W237-3E W237-3E con-wago-508 1
Part no |
Description |
Remarks |
6667-3-449-82 |
Paper Roll for thermoprinter |
58mm x 45mm |
|
Backup-Battery |
3V Lithium (Type CR1/2 AA) |
|
|
|
|
|
|
|
|
|
|
|
|
ABB System pro M compact
http://www.mikrocontroller.net/articles/Port-Expander_PCF8574
Anmerkung:
Großschreibung bei Druckerkommandos beachten
Der Thermodrucker unterstützt nur Baudrate 19200. Das TC65Terminal muss deshalb für Ausgaben über ASC0 auf den Drucker entsprechend ebenfalls auf 19200 umgestellt werden.
Nachteil:
Bislang ist es nur möglich an der NetBeans IDE Schnittstelle mit 115200 Bd zu arbeiten. Deshalb muss vor start der Java Applikation.
AT+IPR=19200
Die Projektbeschreibung und die zugehörigen Unterlagen werden im wesentlichen durch dieses Dokument zusammengefasst. Alle Unterlagen, APIs und sonstige Datenblätter sind direkt per Link erreichbar.
Darüber hinaus soll dieses Projekt auch über das Internet weltweit online zugänglich sein.
Als Hosting-Server wurde www.gries.name gewählt, da hier freie Schreibrechte sowie FTP-Zugänge existieren.
Die Ablagestruktur ist wie folgt: www.gries.name/AF104
Umsetzung:
Die Projektbeschreibung wurde mittels MS Word erstellt. Zur Online Speicherung wird dieses in html umgewandelt. Dies kann entweder im .mht oder .htm Format erfolgen. Zum Zeitpunkt der Veröffentlichung mit Revision 3 ergaben sich folgende Dateigrößen:
· MS Word: 3.784 Kbyte
· .mht-Format: 7.587 KByte
·
.htm-Format: 244 KByte + 3.487Kbyte für Unterordner
Fazit: der Vorteil des .Mht-Formats, nur eine Datei zu
haben zeigt sich hier bereits nachteilig, da Speicherplatz fast doppelt so groß
und die Ladezeit beträchtlich länger ist. D.h. .mht-Seite wird erst dann angezeigt,
wenn komplette Seite geladen wurde; die .htm Seite hingegen bereits nach Laden
der 244 KByte kleinen Startseite, wobei die einzelnen Bilder (hier: 113)
sukzessive nachgeladen werden.
Hinweis:
Bei Verwendung von MS Word 2007 gibt es noch das Format .htm (gefiltert). Dies sollte dann zur Anwendung kommen, da sonst einzelne Objekte zusätzlich im PNG, EMZ Format gespeichert werden.
Das hier zugrunde liegende API wurde mittels Javadoc erstellt.
Ein Beispiel für die Klasse Astro im Package name.gries.common ist im folgenden Abschnitt exemplarisch dargestellt.
Der Link auf das komplette API findet sich hier.
Verwendeter Drucker Schwarzweiß Laserdrucker für beidseitigen Ausdruck
Erster Versuchsaufbau für allgemeinen GPIO-Test am 16.06.2008
<Bild Werrtisch UG AF104>
<Bild Anschlußkasten AF104>
Der Installtionsplan befindet sich an der Innenseite der Installationsschranktüre. Zweck diese Planes ist die anschauliche Darstellung der aktuellen Implementierung und der installierten Geräte. Dieser muss jederzeit aktuell sein und muss nach jeder Installationsänderung angepasst werden.