|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 23.06.2014, 16:12 Titel: Telefonnummer anzurufen mit LPT1 oder RS232 ? |
|
|
Hallo Jungs,
ist das möglich mit Qbasic eine Telefonnummer anzurufen (Festnetz) z.B. über die FitzBox oder auch mit eine anderen System?
Der Anruf soll z.B. von der RS232 oder LPT – Druckeranschluß, D0, D1…. Ausgelöst werden, ist das möglich?
Gruß |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 23.06.2014, 17:50 Titel: Analoges Voice-Modem am COM-Port oder TAPI |
|
|
Hallo,
über ein Analogmodem oder ein ISDN-Modem (z. B. ELSA / Devolo MicroLink ISDN) am RS232-COM-Port kann man von QB oder FB aus Wählverbindungen herstellen. Die Modems lassen sich in der Regel über einen Hayes-kompatiblen Befehlssatz ansprechen. Die Befehle beginnen dabei immer mit "AT".
Wenn man auf beiden Seiten der Verbindung einen PC mit Modem und eigener Software hat, kann man darüber auch relativ einfach Daten hind und her übertragen. Für ein Modem-Chat-Programm, das über das Telefonnetz funktioniert, braucht man nicht mal viel Code.
Interessant ist das zum Beispiel für Mess-Stationen (Wetterstation, Gewässerpegel, ...), die mit einer Telefonleitung erschlossen sind und wo sich eine richtige DSL-Flatrate o. ä. nicht lohnen würde oder nicht verfügbar ist.
Wenn über die hergestellte Wählverbindung keine Daten übertragen werden sollen, sondern wenn das QB-Programm eine akustische Fernsprech-Gegenstelle bilden soll (Ansage der Uhrzeit, von Börsenkursen, ...), wäre das ganze viel komplizierter. Wenn man ein Voice-Modem am COM-Port hat, kann man dieses über spezielle Kommandos in den Voice-Modus schalten. Anschließend kann man über den COM-Port WAVE-Audio-Daten an das Modem senden. Die Gegenstelle hört dann das, was das Programm an Audio-Daten ausgibt. Für die Audio-Daten gibt es allerdings verschiedene Codecs, die das Modem dann unterstützen müsste. Sollen nicht nur Audiosignale über das Modem gesendet, sondern auch welche empfangen und interpretiert werden, stößt man mit QB aber auf jeden Fall an Grenzen bzw. da wird man nicht weiterkommen.
Ein analoges Voice-Modem am COM-Port wäre für die meisten Anwendungszwecke wohl das Optimum.
Es könnte aber auch sein, dass deine Telefonanlage bzw. FritzBox irgendwelche APIs anbietet (Web Service?), über die man Verbindungen vermitteln kann. Dann würde nach einem API-Befehl dein Telefon läuten und wenn du abnimmst, wirst du mit der Gegenstelle verbunden.
Ein Windows-Standard, um vom PC aus Telefonverbindungen zu veranlassen, ist TAPI. Von QB (DOS) aus ist das allerdings nicht benutzbar. Für ISDN speziell gibt es auch CAPI als Abstraktionsschicht.
AVM bietet, soweit ich weiß, einen TAPI-Treiber für FritzBoxen an. Dann kann man von Windows aus mit der Wählhilfe Verbindungen herstellen. Aber die Sache mit TAPI wäre dann halt nur für FreeBASIC (Windows) geeignet.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms734257%28v=vs.85%29.aspx
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 24.06.2014, 11:08 Titel: keine Datenverbindung, nur angerufen |
|
|
Hallo Sebastian,
Danke für deine schnelle Antwort.
Ich möchte keine Datenverbindung aufbauen, nur angerufen werden wenn eine Maschine ausfällt (Auslöseschalter = EIN), so als Ausfallalarmierung.
Am Display vom Handy sehe ich ja, dass der Anruf von der „Maschine“ kommt.
Einige Fragen?
Die Hayes-kompatiblen Befehlssatz ist das so ähnlich wie die AT-Befehle beim Handy.
Welches Gerät (XXX mit RS232 Verbindung zum PC) soll ich zwischen die Fritzbox und den PC einsetzen, an der FritzBox kann man Analog-Telefone und ISDN-Telefone anschließen.
„= „Verbindungskabel zwischen den Geräten
Auslöseschalter = LPT1 am PC = XXX = FritzBox = Telefonnetz (Stecker in der Wand)
Ist so der Aufbau Richtig?
Der PC ist auch mit einem Lankabel noch direkt mit der Fritzbox verbunden, kann man da einen direkten zugriff auf die FritzBox machen mit ....Basic?
Gruß
PS
Administrator aus Franken (Er……) ? |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 24.06.2014, 15:09 Titel: Von QB aus Rufnummer mit Modem anwählen |
|
|
Hallo,
wenn die QB-Software nur "anklingeln" muss, dürfte ein altes Analogmodem mit RS232-Schnittstelle ausreichen. Ob es den Voice-Mode beherrscht, wäre dann egal.
Vielleicht hast du noch eins herumliegen? Wichtig wäre aber, dass es ein externes Modem für den COM-Port ist und kein PCI-(Soft-)Modem.
Zum Beispiel bei eBay wird gerade aber auch ein echter Modem-Evergreen in "neu" verkauft: http://www.ebay.de/itm/400681732293
Das Modem müsste an einem TAE-N-Anschluss angeschlossen werden, wo z. B. auch ein Faxgerät Anschluss finden würde.
Das Anrufen könnte von QB aus dann ungefähr so ablaufen:
Code: | ' Achtung: Code ungetestet!
' Verwendung auf eigene Gefahr.
DialCommand$ = "ATDT01234567890" + CHR$(13)
HangUpCommand$ = "ATH0" + CHR$(13)
StartTime! = TIMER
State% = 0
OPEN COM "...." FOR BINARY AS #1
DO
IF LOC(1) > 0 THEN
Buffer$ = Space$(LOC(1))
GET #1, , Buffer$
PRINT Buffer$;
END IF
' Ist es an der Zeit, wieder etwas an das Modem zu senden?
IF (TIMER - StartTime!) > 12 THEN 'Nach 12s auflegen
IF State% = 1 THEN 'Das Waehl-Kommando wurde bereits gesendet.
'Jetzt auflegen:
PUT #1, , HangUpCommand$
State% = 2
END IF
ELSEIF (TIMER - StartTime!) > 5 THEN 'Nach 5s waehlen
IF State% = 0 THEN 'Noch ist nichts passiert.
'Waehlen:
PUT #1, , DialCommand$
State% = 1
END IF
END IF
LOOP UNTIL INKEY$ = CHR$(27)
CLOSE #1 |
Der Code soll zunächst eine Verbindung zum Modem aufbauen und anschließend 5 Sekunden warten. Hier könnte man auch noch irgendwelche Initialisierungsbefehle an das Modem senden, falls das jeweilige Modell welche benötigt. Sind die 5 Sekunden verstrichen, wird ein Wähl-Kommando an das Modem gesendet. Anschließend wird wieder etwas gewartet. Es sollte währenddessen läuten. Nach insgesamt 12 Sekunden sendet das Programm dann den Befehl zum Auflegen an das Modem. Anschließend sendet das Programm gar nichts mehr. Während der gesamten Zeit wird geprüft, ob das Modem etwas mitteilt. Wenn ja, wird ein entsprechend großer Datenpuffer erzeugt (Buffer$ = Space$(Loc(1))) und eingelesen. Die Daten werdenn dann 1:1 auf dem Bildschirm ausgegeben.
Vielleicht komme ich am Wochenende mal zum Testen. Einen Versuchsaufbau mit QB/DOS-PC und Analogmodem habe ich leider spontan nicht einsatzbereit.
Besonders gut testen und experimentieren könnte man damit, wenn man nicht nur ein Modem hat, sondern auch noch eine ausgemusterte alte ISDN-Anlage (zum Beispiel eine T-Concept), die nicht mehr ans Telefonnetz / NTBA angeschlossen ist. Dann würde man den angeschlossenen Telefonen und Modems interne Rufnummern zuteilen (z. B. 10, 11, 12, 13) und die könnten einander dann munter anrufen und Daten übertragen, ohne dass das externe Telefonnetz damit behelligt würde.
In QB hast du leider keine echten Möglichkeiten, die FritzBox über das LAN-Kabel anzusteuern bzw. die Windows-TAPI-Funktionen zu benutzen. Irgendwelche komplizierten DOS-TCP-Verrenkungen lasse ich mal außen vor.
Mal jenseits von der QB-DOS-Lösung: Wenn du FreeBASIC und Windows verwenden kannst und dein Maschinen-Überwachungs-PC ans Internet angebunden ist über die FritzBox, könntest du aber sogar über ein Internet-SMS-Gateway eine SMS mit individuellem Text an dein Handy verschicken. Dann bräuchtest du weder ein Modem noch ein zusätzliches Kabel für das Modem.
Es könnte mit Tools wie cURL sogar ganz ohne eigene Programmierung klappen, ein solches SMS-Gateway anzusprechen, zum Beispiel aus einer Batch-Datei. Aber das wäre halt nur eine Windows-only-Variante.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 24.06.2014, 21:01 Titel: |
|
|
Hallo Sebastian,
das mit FreeBASIC ist so eine Sache, da ich seit den 90zigern mit GW-Basic und dann QBasic meine Wasserkraftanlagen überwache ist das „Umschwenken“ immer nicht so einfach.
Ich bin ja auch keine 20zig.
Zum Code usw.
1. Den Code habe ich so vom Grundsatz verstanden.
2. Mit QBasic kann der PC nicht mit der FritzBox „sprechen“.
3. SMS versand ist nicht erforderlich nur das Handy soll „klingel“.
4. Die QB-Software nur "anklingeln" ist vermutlich die erste Wahl.
5. Ist ein Elsa MicroLink Office auch zu verwenden, oder nur das Elsa MicroLink sein.
6. Ist eine grundsätzlich anders System um das Handy anzurufen eine Option, z.B. Telefon mit Kurzwahltasten verwenden und mit LPT1 (D0) den Anruf starten oder, oder, usw.
Gruß
PS
Sebastian du bist ja ein Spezialist, dass mit den QBasic hätte ich wesentlich Umständlicher gemacht, komme eben vom GW-Basic und da ist ja GOTO das Zauberwort. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 24.06.2014, 22:32 Titel: |
|
|
Hallo!
eeg-grimm hat Folgendes geschrieben: | 5. Ist ein Elsa MicroLink Office auch zu verwenden, oder nur das Elsa MicroLink sein. |
Ich vermute, das macht keinen Unterschied. Das MicroLink Office wird sich da gleich verhalten, schätze ich.
eeg-grimm hat Folgendes geschrieben: | 6. Ist eine grundsätzlich anders System um das Handy anzurufen eine Option, z.B. Telefon mit Kurzwahltasten verwenden und mit LPT1 (D0) den Anruf starten oder, oder, usw. |
Du meinst, du nimmst ein Telefon mit Kurzwahltasten und lässt diese dann vom QB-Programm aus "drücken", indem du die Tasten mit einem Relais brückst, das du wiederum per COM-Port oder so schaltest? Klar, fürs bloße Anklingeln wäre das auch eine Möglichkeit.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
RockTheSchock
Anmeldungsdatum: 04.04.2007 Beiträge: 138
|
Verfasst am: 11.08.2014, 15:38 Titel: callto |
|
|
es gebe auch die Möglichkeit Anrufe per TAPI einzubinden,. Dabei könntest du die Arbeit an ein externers Programm mit der Telefonnummer als Parameter z.B. "dial.exe 012334567" übergeben.
http://tridex.net/2012-06-13/telefonieren-vom-webbrowser/
Viele Telefonanlagen und ISDN Karten bzw. Modems bieten TAPI Treiber an.
Wenn du QB unter einem 32Bit Windows einsetzt müsste es eigentlich gehen ein externes Programm mit Parametern aufzurufen und somit ach das TAPI Interface indirekt zu verwenden. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|