PagerSend
SmsSend
value PagerSend ( value BYREF Result, string strMobileNumber, string strMessage, string strService = "" );
value SmsSend ( value BYREF Result, string strMobileNumber, string strMessage, string strService = "" );
Rückgabewert
Rückgabewert |
Beschreibung |
>= 0 |
Die ID der Nachricht mit der diese in der Tabelle 'PagerJobs' der Systemdatenbank angelegt wurde. |
-1 |
SMS-Nachricht konnte nicht entgegengenommen werden, da kein Empfänger strAccount bzw. eine leere Nachricht strMessage übergeben wurde. |
Parameter
Result
Status des Sendevorgangs. Soll der Status des Sendevorgangs nicht ausgewertet werden, so kann hier eine Null übergeben werden.
Result |
Beschreibung |
2 |
Nachricht wartet in der Warteschlange auf den Versand |
1 |
Versenden der Nachricht läuft |
0 |
Nachricht wurde erfolgreich versandt |
-1 |
Nachricht konnte nicht versandt werden |
strMobileNumber
Der Empfängernummer (Handyrufnummer) der SMS-Nachricht.
strMessage
Die Nachricht die an den Empfänger übertragen werden soll. Die maximale Länge der Nachricht hängt vom verwendeten Dienst ab. Ist der Inhalt von strMessage länger als die max. Nachrichtenlänge des verwendeten Dienstes, so wird diese auf die max. Nachrichtenlänge verkürzt versendet.
Die Begrenzungen bzw. Bedeutung von strMessage abhängig vom Pagerdienst:
bei strService gilt |
max. Nachrichtenlänge |
"D1-SMS" |
230 Zeichen |
"D2-SMS" |
230 Zeichen |
"EPlus-SMS" |
230 Zeichen |
"Cityruf" |
80 Zeichen (Pagerdienst nicht mehr verfügbar) |
"Skyper" |
80 Zeichen (Pagerdienst nicht mehr verfügbar) |
"" |
160 Zeichen (Nachricht wird über GSM-Modem versandt) |
strService
Der SMS-Dienst der zum Versenden der Nachricht verwendet soll.
strService |
Beschreibung |
"D1-SMS" |
Nachricht wird als SMS an Empfänger im D1-Netz versandt |
"D2-SMS" |
Nachricht wird als SMS an Empfänger im D2-Netz versandt |
"EPlus-SMS" |
Nachricht wird als SMS an Empfänger im e-plus-Netz versandt |
"Cityruf" |
Nachricht wird an Cityruf-Emfänger versandt |
"Skyper" |
Nachricht wird an Skyper-Empfänger versandt |
"" |
Nachricht wird als SMS über GSM-Modem an Empfänger versandt |
Bemerkung
Sendet die Nachricht strMessage an den Empfänger strMobileNumber über den gewählten SMS-Dienst strService.
Die CPL-Funktion SmsSend ermöglicht das Versenden von SMS-Nachrichten ausschließlich über ein verfügbares GSM-Modem. Wenn bei PagerSend kein Service angegeben wird, wird die Nachricht ebenfalls über ein GSM-Modem gesendet. Das Modem kann zum Beispiel ein USB-Surfstick sein, der über eine virtuelle COM-Schnittstelle (wie HUAWEI-E173 oder HUAWEI-E169) erreichbar ist oder ein COM-Schnittstellen GSM-Modem wie das Industriemodem "Siemens TC35i Terminal".
Da die Nachrichten asynchron übertragen werden, wird das Ergebnis des Sendevorgangs zeitverzögert an den Parameter Result übergeben.
Mit dem Aufruf von SmsSend/PagerSend wird die Nachricht mit allen Details in die Tabelle 'PagerJobs' eingetragen. Der eigentliche Versand der Nachricht erfolgt in einem eigenständigen Prozess. Dieser Parallelprozess überprüft die Tabelle 'PagerJobs' und versendet die eingetragenen Nachrichten an die entsprechenden Empfänger. Wenn das Versenden erfolgreich ist, löscht der Sendeprozess den Eintrag aus der Tabelle 'PagerJobs' und fügt ihn in die Tabelle 'PagerJobsDone' ein. Wenn das Versenden jedoch nicht erfolgreich ist, löscht der Sendeprozess den Eintrag aus der Tabelle 'PagerJobs' und fügt ihn in die Tabelle 'PagerJobsFailed' ein. Die Tabellen 'PagerJobsDone'/'PagerJobsFailed' enthalten jeweils maximal die letzten 100 versendeten Nachrichten. Mit dem Bauelement SQL-Tabelle kann die Visualisierung die Systemtabellen 'PagerJobs', 'PagerJobsDone' und 'PagerJobsFailed' darstellen.
Beispiele
Beispiel: Wenn die Variable bSendMessage einen Wechsel von 0 auf 1 aufweist, soll eine Nachricht abgesendet werden..
if (EdgeRaising(bSendMessage)) SmsSend(SendResult, "01719999999", "Anlage überprüfen!"); end
Beispiel: Melder sollen automatisch eine SMS-Nachricht absenden, ohne dies jeweils in jedem Melder zu projektieren.
Hierzu wird die Ereignisfunktion _onReporterThrowsMessage aktiviert (Projektansicht: Meldeverarbeitung->Eigenschaften). In der Programmliste ist dann diese Funktion mit aufgeführt.
Die Funktion _onReporterThrowsMessage enthält folgende CPL-Anweisungen:
//_onReporterThrowsMessage (idRecord, ridAlarm, Status, idClass, strCategory, Time, Duration, // strText1, strText2, strText3, strText4, strText5, strText6, strText7, strText8, // Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8)) // // idRecord = Record number of this data record in the database // ridAlarm = Identification number of the reporter, which throws this message // Status = Status of this event // REPORT_Came, REPORT_CameConfirmed, REPORT_ConfirmCameTimeout // REPORT_Gone, REPORT_GoneConfirmed, REPORT_ConfirmGoneTimeout // idClass = Number of class/level (as defined by reporter at ridAlarm) // CLASS_Running, CLASS_Service, CLASS_Failure, CLASS_Danger, CLASS_Alarm // strCategory = Name of category/group (as defined by reporter at ridAlarm) // Time = Timestamp of this event // Duration = If Status == REPORT_Came then 0.0 else how long this reporter was waiting for gone // strText1... = Message (as defined by reporter at ridAlarm) // Value1... = Values (as defined by reporter at ridAlarm) // ////////////////////////////////////////////////////////////////////// //nur Meldeklassen vom Typ Alarm auswerten if (idClass != CLASS_Alarm) return; end //nur Meldekategorien vom Typ Anlage auswerten if (strCategory != "Anlage") return; end //nur kommend-Meldungen auswerten if (Status != REPORT_Came) return; end //Text wie in Meldedatenbank an Handy senden SmsSend (0,"01719999999", strText1);
Allgemeines zu den Pagerdiensten
Siehe auch PagerSetDevice, PagerCancelAllMessages, PagerGetDevice, PagerGetDeviceList, PagerGetPendingMessage, SmsGetOnErrorDelayTime, SmsGetSendMessageTimeout, SmsGetSignalStrength, SmsSetOnErrorDelayTime, SmsSetSendMessageTimeout