Hej Nu har jeg prøvet alverdens kodestumper, men jeg kan ikke finde noget der virker, hverken i text & PDU mode. Der skulle vel ikke være en derude der har noget liggende. Hvis jeg bruger et færdigt program kan jeg godt sende en SMS så det er ikke modemet.
I teorien kan man vel med AT kommandoer sende SMS via en hvilken som helst mobiltelefon. Men problemet er at det ikke er alle Firmaer der understøtter et fuldt sæt AT kommandoer. Og at det ikke er alle der vil fortælle hvilke kommandoer de understøtter. Hvis det er nokia, så har de et udemærket developer forum man bare kan meldes sig ind i.
Der findes 2 måder at sende SMS'er på 1 Text mode Modemet skal først sættes til Text mode det kan gøres med Text Mode AT+CMGF=0 + enter
2 PDU Mode PDU Mode AT+CMGF=1 + enter "Vedlagte eksempel er findet på nettet men jeg kan ikke få det til at virke med mit modem "Mobil telefon Siemend SL45" 'Tested on Siemens(19200 baud) and Bosch (9600 baud)
Hvis du får noget af det til at virke er jeg med på en lurer.
Private Sub Command1_Click() Dim sms As String Dim buffer$ If MSComm1.PortOpen = False Then MSComm1.CommPort = 7 MSComm1.Settings = "19200,N,8,1" MSComm1.InputLen = 0 MSComm1.Handshaking = comNone MSComm1.PortOpen = True End If
'echo off MSComm1.Output = "atE0" & Chr$(13) Do DoEvents buffer$ = buffer$ & MSComm1.Input Loop Until InStr(buffer$, "OK") buffer$ = ""
Do DoEvents buffer$ = buffer$ & MSComm1.Input Loop Until InStr(buffer$, "OK")
MSComm1.PortOpen = False
End Sub
Function MakeSms(number As String, txt As String) As String MakeSms = "001100" MakeSms = MakeSms + ConvNumber(number) MakeSms = MakeSms + "000064" MakeSms = MakeSms + ConvTxt(txt) End Function
Function ConvNumber(num As String) As String
Dim i As Integer Dim numType As String
'default local number numType = "81"
'but if international number then ..... If Left$(num, 3) = "+00" And Len(num) > 3 Then num = Mid$(num, 4): numType = "91" If Left$(num, 2) = "00" And Len(num) > 2 Then num = Mid$(num, 3): numType = "91" If Left$(num, 1) = "+" And Len(num) > 1 Then num = Mid$(num, 2): numType = "91"
ConvNumber = Right$("00" & Hex(Len(num)), 2)
ConvNumber = ConvNumber + numType
For i = 1 To Len(num) Step 2 ConvNumber = ConvNumber + Mid$(num + "F", i + 1, 1) + Mid$(num + "F", i, 1) Next i
End Function
Function ConvTxt(txt As String) As String Dim i As Integer Dim datArr1(1 To 256) As Byte
Dim l As Integer Dim touw As String
'no more than 160 chars If Len(txt) > 160 Then txt = Left$(txt, 160)
l = Len(txt)
ConvTxt = Right$("00" & Hex(Len(txt)), 2) For i = 1 To l datArr1(i) = Asc(Mid$(txt, i, 1)) Next i
'make a bit stream of septets touw = "" For i = 1 To l touw = ToBin7(datArr1(i)) + touw Next i
'and convert it to octets While Len(touw) > 8 ConvTxt = ConvTxt + Bin2Hex(Right$(touw, 8)) touw = Mid$(touw, 1, Len(touw) - 8) Wend
ConvTxt = ConvTxt + Bin2Hex(touw)
Debug.Print ConvTxt End Function
Function ToBin7(ByVal num As Byte) As String 'convert to padded 7 place binary number While num > 0 ToBin7 = Trim(num Mod 2) + ToBin7 num = num \ 2 Wend
ToBin7 = Right$("0000000" + ToBin7, 7) End Function
Function Bin2Hex(ByVal touw As String) As String 'convert binary to a padded 2 place hex number Dim x As Integer Dim num As Long
For x = 1 To Len(touw) If Mid$(touw, x, 1) = "1" Then num = num + 2 ^ (Len(touw) - x) End If Next x
Bin2Hex = Right$("00" + Hex(num), 2) End Function
Private Sub Form_Load()
End Sub
Prøv at søge efter SAGEM AT commands i basic GSM/GPRS applications.
Text Mode AT+CMGF=1 + enter PDU Mode AT+CMGF=0 + enter
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.