• 53 odgovora
  • 13.653 pregleda
Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 23.06.2008. u 22:58 · pre 223 meseci #1
Pozdrav,

Radim na projektu gde je potrebno da izvrsim povezivanje WinCC scade preko COM porta na GSM modem i na taj nacin vrsim slanje i prijem sms poruka u svrhu upravljanja procesom koji je realizovan u scadi. U VBS sam odradila deo sa slanjem poruka i to funkcionise, ali nisam sigurna kako bih odradila prijem. Treba da primim poruku, da je iscitam, ali samo telo poruke i da na osnovu toga odradim upravljanje. Nakon toga da je obrisem. Kako da iz primljene poruke "iscupam" tekst? Ako neko ima ideju, link, kod ili bilo sta, bila bih zahvalna.
Re: Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 23.06.2008. u 23:07 · pre 223 meseci #2
Ovako ovo je jedna vrlo slicna tema sa jednom vec postojecom.

Posto i mene zanima kako da saljem SMS poruke bilo bi lepo da mi prosledis (ako zelis) listu ATM komandi koje koristis za slanje SMS poruka, ja koristim mob. tel ali trebalo bi da se ponasaja isto kao GPRS modem. Posto sam ja testirao nesto sa NOKIA 3230 telefonom i usb kablom (Modem sam uspesno otvarao na COM5 port-u jer mu je PC Suite taj port dodeljivao) ali nisam uspeo da posaljem SMS, tacnije nije mi odgovarao ni na sta.

Unapred hvala.

[Ovu poruku je menjao stefanpn dana 24.06.2008. u 00:24 GMT+1]
Re: Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 23.06.2008. u 23:50 · pre 223 meseci #4
Mogu da ti posaljem pdf dokument sa AT komandama za Siemensov modem. Komande su uglavnom iste za sve vrste modema. A evo t i moj kod koji sam koristila.

Code:

Function action
Dim SMSSend
Dim SMS
SMS = "Hello World!"

If HMIRuntime.Tags("hp_senzor_glassbreak").Read = 1 Then


Set SMSSend = HMIRuntime.Screens("pocetna").ScreenItems("Control2")

       
       'podesavanja i otvaranje porta
    SMSSend.CommPort = 1
       SMSSend.Settings = "115200,N,8,1"
       SMSSend.InputLen = 0
       SMSSend.Handshaking = 0
       SMSSend.PortOpen = True
       
       'komanda ate1 uspostavljanje komunikacije sa eha
       SMSSend.Output = "atE1" & Chr(13)
      
      
       
       'provera u kom rezimu modem radi
       SMSSend.Output = "AT+CMGF=1" & Chr(13)
      
       
       'formiranje i slanje poruke
       SMSSend.Output = "AT+CMGS=064123456" & Chr(13) 
    
       SMSSend.Output = SMS + Chr(26)      
     
       ' zatvaranje porta
       SMSSend.PortOpen = False
     
   
End If  
End Function


[Ovu poruku je menjao Aleksandar Ružičić dana 24.06.2008. u 01:35 GMT+1]
Re: Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 24.06.2008. u 00:09 · pre 223 meseci #7
Pa otvori browser na http://www.elitesecurity.org/t...m-uz-koristenje-AT-komandi-VBS
Resenje je da napises komponentu (ActiveX) u VB6 i pozivas nju iz skripta ako treba (CreateObject("nesto.nesto")) jer skript nema evente a ActiveX moze da blokira izvodjenje skripta dok ne dobije neki odgovor.
Moguce da i ova komponenta koju koristis ima neki takav mehanizam ... imas neku dokumentaciju o njoj ?
Potpis
HomePage http://www.eurora3d.com
Re: Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 24.06.2008. u 00:20 · pre 223 meseci #8
Komponenta koju ja koristim nalazi se u WinCC okruzenju, zove se Microsoft Communications Control. Nemam neku dokumentaciju, help je ocajan. Uz pomoc nje direktno pristupam portu, uspela sam da posaljem poruku uspesno. Nije mi bila potrebna "treca strana" u vidu dll-a, activeX controle. Bukvalno ono sto se desava kad testiram sa Hyper Terminala sam prebacila u adekvatan kod u VBS i to radi. Valjda sam ja ovo dobro objasnila. Rekli su mi da ne koristim ActiveX koji postoji na netu u vidu ActiveXExperts ToolKit nego da uradim komunikaciju direktno. Mene je zanimalo kako kad primam poruku da iz svih onih podataka koji u nju budu smesteni, servis centar, broj posiljaoca itd izvucem samo tekst poruke?
Re: Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 24.06.2008. u 00:44 · pre 223 meseci #9
Mora li VBS ili moze VB6?

Sa MID$(strOdgovor, start, length) mozes da dobijes deo stringa (t.j. da izdvojis odg.), ako si to pitala jer ja nisam bas najbolje razumeo.

Ako ti nije problem upload-uj tu dokumentaciju o modemu ili mi posalji adresu odakle mogu da je preuzmem na PP.
Re: Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 24.06.2008. u 03:10 · pre 223 meseci #13
Evo najprostijeg primera za komunikaciju sa modemom uz pomoc MSComm kontrole.

Napravio sam ovako da bi mi bilo lakse da isprobam AT komande, i sve sam uspeo osim da posaljem ili procitam SMS ili izlistam Phonebook.

Najverovatnije da komande koje sam preuzeo sa Nokijinog sajta nisu za moj telefon ili ja ne umem da postavim parametre.

Uglavnom sve ostalo radi.

Ako neko uspe da posalje ili procita poruku neka javi kako je to izveo posto moj tel. na te komande odgovara sa: "ERROR".

P.S. Pazite da ne dodje do Buffer Overload-a posto je Timer za ciscenje baffera postavljen na 1 sec. a velicina inBuffera je 1024 byte.
Re: Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 25.06.2008. u 22:09 · pre 223 meseci #15
Ni ja nisam uspeo ... probao sam juce ali zbog IR komunikacije izmedju laptopa i telefona koja pravi neku (dokumentovanu) grasku nijednom nisam uspeo da ocitam comm port (puca na Comm1.Input liniji). MS kaze da ta greska nastaje kao kombinacija bug-a u MSComm kontroli i IR drajvera i jedini savet je promeniti drajver (dok drugi na netu savetuju ne koristiti MSComm :) )

@Macolina ako uspes da procitas SMS u ovom zadnjem zakacenom VB primeru imas parsiranje teksta da se dobije tekst SMS-a
tekst je sve izmedju "+CMGR:" i vbCrLf & "OK"
poz
Code:

Public Function Parse_SMS() As Boolean
Dim StartPoint As Long
Dim EndPoint As Long
Dim Buffer1 As String
Dim Buffer2 As String
Buffer1 = Message_Buffer
StartPoint = InStr(1, Buffer1, "+CMGR:", vbTextCompare)
EndPoint = InStr(1, Buffer1, vbCrLf & "OK", vbTextCompare)
If StartPoint <> 0 And EndPoint > StartPoint Then
   I = StartPoint
   While I < EndPoint
    Buffer2 = Buffer2 & Mid(Buffer1, I, 1)
    I = I + 1
   Wend
   Parse_SMS = True
   Message_Buffer = Buffer2
   Exit Function
End If
Parse_SMS = False
End Function
Potpis
HomePage http://www.eurora3d.com
Re: Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 26.06.2008. u 00:52 · pre 223 meseci #16
Hvala na pomoci. U ponedeljak cu se videti sa profesorom i asistentom pa cemo probati ovo da pustimo na modem. Ja nesto proucavam, ali me vrucina smorila. Prosto ne moze da se radi. Javicu da li je sta proradilo :)
Re: Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 02.07.2008. u 11:18 · pre 222 meseci #17
E ovako. Ja sam probala svasta sa ovim citanjem com porta. Uspevam da ocitam, samo to sto ja ocitam sa Input linije i stavim u buffer nije citljivo. Dobijem tekst u kome se nazire moja poruka, samo su sve kukice i neki cudni znaci. Malo brljavi, a ne znam zbog cega. Pokusavam to da resim, ali za nista ne nalazim na netu pa ce biti malo patnje. Hvala za onaj kod, jos uvek nemam na cemu da ga iskoristim. Cujemo se.
Re: Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 02.07.2008. u 11:55 · pre 222 meseci #19
Meni ovo sto si mi rekao zvuci na glavobolju :)
Kako da enkodujem sve mi je bre ko kineski, nemacki i francuski, kukice i apostrofi na sve strane. Umesto onog OK sto treba da pise, pise I sa dve tacke i O, a brojeve, kao sto je vreme slanja, moze da iscita. Kako sad to da enkodujem? AAAAAAAAAAAAAAAAAAAAAAA
Re: Prijem sms poruka preko MScomm uz koristenje AT komandi u VBS 02.07.2008. u 12:27 · pre 222 meseci #20
Meni to zvuci kao problem sa podesenom brzinom citanja porta (slican probem sam imao na jednom projektu)
Code:

MSComm1.Settings = "19200,n,8,1" 'probaj sa razlicitim vrednostima prvog parametra -> 19200

Imas standardne brzine u list boxu u poresavanjima COMM porta.
Ako nije ovo onda je verovatno nesto u vezi sa ovim sto je @Aleksandar Vasic pisao.

P.S. Programiranje je glavobolja po defaultu :)

Potpis
HomePage http://www.eurora3d.com
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme