Avatar billede engberg Juniormester
14. september 2004 - 15:49 Der er 25 kommentarer og
3 løsninger

Forbindelse til mobiltelefon

Jeg vil gerne lave et program i VB, hvor jeg kan sende og modtage sms via en nokia 3510i.

Jeg har et kabel fra com-porten til mobilos...

Kan det lade sig gøre og gerne et par pointers om hvordan :-)
Avatar billede Slettet bruger
14. september 2004 - 15:54 #1
jeg mener vist at man skal betale afgift osv...(til staten) bare en kommentar :)
Avatar billede bccinlove Nybegynder
14. september 2004 - 16:39 #2
Det kan lade sig gøre ja, men du er ude i socketprogrammering... hvilket er pænt uoverskueligt med windows' winsock. Og det bliver jo svært at kode VB på en GNU compiler... :-)

Men du skal ikke betale nogen afgift eller noget, som jeg forstår det vil du blot kunne skrive en sms i en VB applikation og derefter sende den til din mobil og lade den stå for at sende ud på GSM-nettet (og omvendt når du modtager), korrekt?

Det svære er ikke at sende en tekststreng via en com port, men nok nærmere at kode den applikation der skal ligge på din mobil til at modtage strengen via com. Det eneste sprog du kan få lov til at installere noget i på din mobil (der kører et styresystem der hedder Series 40) er java.

Men klart et spændende projekt!
Avatar billede engberg Juniormester
14. september 2004 - 18:06 #3
dhil>> Det lyder som noget vås... :-/

bccinlove>> Jeg ved at de på Nokia's hjemmeside har noget connect-tilbehør til at ligge, men jeg kan ikke finde en der understøtter en 3510i'er... Det ville vist ellers gøre det hele meget nemmere...
Avatar billede engberg Juniormester
14. september 2004 - 18:10 #4
Her er i øvrigt linket til de ting der ligger til en 3510i'er....
http://www.forum.nokia.com/main/0,6566,016-1357,00.html
Avatar billede engberg Juniormester
14. september 2004 - 18:20 #5
Kom nu - det må da kunne lade sig gøre!!! :-/
Avatar billede driis Nybegynder
14. september 2004 - 18:26 #6
Jeg er ret sikker på at det kan lade sig gøre ved hjælp af AT kommandoer sendt gennem COM porten. Det kan det på de allerfleste nyere telefoner.
Avatar billede driis Nybegynder
14. september 2004 - 18:31 #7
Jep, det kan du. Du skal blot skrive de relevante AT kommandoer til COM porten. Jeg mener MSComm komponenten i VB kan klare dette. I dette dokument er beskrevet hvordan du gør - det nemmeste er nok at prøve eksemplet af i HyperTerminal og så implementere det i VB derefter.

http://nds1.nokia.com/phones/files/guides/Nokia_AThelp.pdf

Husk at dit VB program ikke bare skal fyre kommandoerne af, men vente for rigtigt svar (OK) efter hver kommando, for at det virker.
Avatar billede hiks Nybegynder
15. september 2004 - 09:32 #8
hej

jeg har selv lavet et meget simpelt program til en 6610'er engang og fandt disse sider på nettet:

http://www.gsm-modem.de/gsm-data.html
http://www.gsm-modem.de/gsm-modem-faq.html
http://www.gsm-modem.de/gsm-faq.html

Og ta desuden at finde ud af om telefonen understøtter AT commands som der også står skrevet i nedenstående link.

De er taget fra dette spørgsmål (scroll ned for at se svarene!):

http://www.experts-exchange.com/Programming/Wireless_Programming/GSM/Q_20948621.html

Hvis du har styr på VB er det bare at køre på og tage det step-by-step hvis du ikke er helt hjemme i VB så vil jeg nok anbefale at kigge på noget omkring serial support og AT commands.

Serial tingester kig her: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp

Håber det hjælper!

/hiks
Avatar billede engberg Juniormester
16. september 2004 - 10:40 #9
Så langt så godt, er ikke lige hjemme til, at kunne prøve det, men det på msdn ser lidt indviklet ud for mig - skal der godtnok så meget kode til, for at sende at-beskeder...
Avatar billede driis Nybegynder
16. september 2004 - 18:41 #10
Nej, det på MSDN kan du mere eller mindre se bort fra. I Visual Basic kan du bruge MSComm kontrollen til alt serielt - og den er ret nem at bruge. Hvis du har behov for det kan du sikkert sagtens finde en tutorial om det.
Avatar billede engberg Juniormester
17. september 2004 - 15:16 #11
Når jeg starter hyperterminal op, så kan jeg ikke skrive noget... men efter kort tid siger min telefon "Tilbehør ikke understøttet"... Hvad betyder det?
Avatar billede driis Nybegynder
17. september 2004 - 19:04 #12
Du skal være klar over at HyperTerminal som default ikke viser hvad du skriver. Du skal ind under Egenskaber -> Indstillinger -> ASCII indstillinger og sætte hak i "Vis skrevne tegn lokalt".

Prøv først at skrive kommandoen "AT" og slut af med Enter. Telefonen burde svare med "OK". Hvis ikke, er der et problem med forbindelsen. Måske har du sat forbindelsen til en for høj bitrate. Ved indstillingen 9600 baud - 8 databit - ingen paritet - 1 stopbit burde det virke.
Avatar billede engberg Juniormester
17. september 2004 - 23:31 #13
driis>> ok, nu kan jeg se at jeg skrev at og afsluttede med enter.. Der sker ikke en meter... :-/

Kan der være andre indstillinger, som er forkerte?
Skal jeg gøre noget for at kunne se svar fra fonen?
Skal telefonen være i en speciel "mode" for at det virker?
Kan 3510i'ere måske slet ikke forstå at-kommandoer?

Der står i nederste venstre hjørne "Tilsluttet" og så tæller den opad...
Avatar billede driis Nybegynder
17. september 2004 - 23:44 #14
Som udgangspunkt bør en 3510i kunne forstå AT kommandoer. Jeg er ikke 100% sikker på at de indstillinger jeg har givet dig er rigtige, men det er de mest almindelige "fail-safe" indstillinger.

Det bør virke uanset hvilken "mode" telefonen er i. Jeg har ikke noget 3510i developer-specifik doumentation ved hånden, men sådan er det med de fleste telefoner; også ældre Nokia.
Avatar billede engberg Juniormester
18. september 2004 - 00:03 #15
Jeg har lige testet med "Oxygen mobile activeX control", hvor jeg snilt kunne få forbindelse til telefonen (med et DAU-9P kabel.. åbenbart). Men det virker stadigt ikke med hyperterminal...
Avatar billede hiks Nybegynder
18. september 2004 - 00:45 #16
hej igen

har lige hurtigt fået kigget tråden igennem og set du har lidt småproblemer. umiddelbart virker det som om 3510i'en ikke forstår AT commands, hvilket jeg så kiggede lidt på.

Og i samme omgang fandt jeg faktisk et sted på nettet hvor man kan downloade en dll som kan hjælpe programmører:

http://www.softwarecave.com/ -> det hedder mobile FBUS, som nok i sidste ende vil spare dig tid. (den er i en gratis udgave og en betalingsudgave)

Der er ligeledes et VB forum tilknyttet denne: http://www.softwarecave.nl/phpBB/viewforum.php?forum=3&398

Jeg skal ikke lige kunne sige om det er det der er galt. Men et kig værd.

/hiks
Avatar billede engberg Juniormester
18. september 2004 - 01:06 #17
Hmm.. prøvede lige dit link hiks, men jeg tror ikke det er noget... Jeg er ikke sikker på at mit kabel er fbus...

Deres gratis-software ville i øvrigt ikke køre under mit xp-system...

Utroligt at det skal være så svært...
Avatar billede driis Nybegynder
18. september 2004 - 13:27 #18
På baggrund af dette:
http://www.softwarecave.nl/compatibility.htm

Tror jeg at din 3510i kan kommunikere med FBUS kommunikationsstandarden, som åbenbart er en Nokia - specifik kommunikationsstandard. Om dit kabel så understøtter FBUS, ved jeg ikke. I øvrigt ser jeg på linket, at 3510 er den telefon, der understøttes mest, og det får mig til at tro at Nokia har sparet på elektronikken i netop den model. 3510 blev (bliver?) jo også markedsført som en lavpris model.

Jeg har ikke kunnet finde specifik information om, hvorvidt Nokia'en understøtter AT kommandoer, men noget tyder på at den ikke gør det.

Hvis jeg var dig ville jeg nok låne en anden (ikke-Nokia) telefon og se om du kunne få den til at virke med AT kommandoer; og så købe en af slagsen til projektet.

Du kan også prøve med softwarecave's ActiveX kontrol, og se om du kan få forbindelse til telefonen. Hvis ikke det virker med WinXP kan du så se om du kan finde et eller andet open - source projekt, som understøtter FBUS, en gratis komponent eller lignende. Desværre tror jeg at der er temmelig meget arbejde i at få FBUS til at virke.
Avatar billede driis Nybegynder
18. september 2004 - 13:28 #19
Avatar billede driis Nybegynder
18. september 2004 - 13:35 #20
Jeg har lavet lidt mere research. 

Linket herover er en beskrivelse af FBUS protokollen. Du kan evt. prøve at gøre som de beskriver; sende 0x55 128 gange og derefter denne frame:
1E 00 0C D1 00 07 00 01 00 03 00 01 60 00 72 D5

Og så se, om telefonen svarer. Hvis den gør det, understøtter både telefoen og kablet FBUS. Desværre er et almindeligt serielt kabel ikke godt nok, der skal være noget elektronik indbygget. Der er en build-it-yourself guide her:
http://www.panuworld.net/nuukiaworld/hardware/cables/index.htm

Så mangler du "blot" at implementere protokollen, hvortil du kan få hjælp fra sourcekoden til Gnokii projektet http://gnokii.org/ .

Men, som sagt er det meget meget nemmere at gå til, hvis du i stedet skaffer en telefon der forstår AT kommandoer.
Avatar billede engberg Juniormester
18. september 2004 - 19:40 #21
Hold da op - gode informationer.. Nu skal jeg vist bare igang med at forsøge - bliver desværre lige nødt til at geninstallere vb.... :-/
Avatar billede engberg Juniormester
18. september 2004 - 19:53 #22
Kan jeg sende de der tal via mscomm?
Avatar billede engberg Juniormester
18. september 2004 - 19:57 #23
.. og hvor finder jeg lige mscomm... :-/
Avatar billede hiks Nybegynder
18. september 2004 - 21:01 #24
CTRL+T - find så Microsoft Comm Control

ja og du vil kunne smide de ting ud vha mscomm1.output når du har fået porten åbnet osv.

/hiks
Avatar billede engberg Juniormester
20. september 2004 - 19:45 #25
Alright - nu er det så noget VB jeg har problemer med...

Hvad er der galt her?:

MSComm1.PortOpen = True
For i = 0 To 128
    MSComm1.Output = "0x55"
Next
MSComm1.Output = "1E 00 0C D1 00 07 00 01 00 03 00 01 60 00 72 D5"

og hvordan får jeg svaret tilbage i text1?
Avatar billede engberg Juniormester
20. september 2004 - 20:09 #26
Så er jeg lidt længere, men alligevel på bar bund.. jeg kan ikke se nogen steder at der sker noget...

Private Sub Command1_Click()
For i = 0 To 128
    MSComm1.Output = "0x55"
Next
MSComm1.Output = "1E 00 0C D1 00 07 00 01 00 03 00 01 60 00 72 D5"
End Sub

Private Sub Form_Load()
  MSComm1.CommPort = 1
  MSComm1.InputLen = 0
  MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
    Select Case Comm1.CommEvent
        Case comEvReceive  'data inbound

            'add all text in the input buffer to the receive text box
            Text1.Text = Text1.Text & MSComm1.Input

    End Select
End Sub
Avatar billede driis Nybegynder
20. september 2004 - 23:11 #27
For det første kan du jo netop ikke se noget, hvis ikke kablet er af den rigtige type - hvilket det måske (sikkert) ikke er.

For det andet er strengen 1E 00 0C D1 00 07 00 01 00 03 00 01 60 00 72 D5 hexadecimale karakterer, og ikke bare en tekststreng du skal sende ud. Dvs. du skal have fat i noget ala:
MSComm1.Output = Chr(&h1E) + Chr(0) + chr(&h0C) + ... + Chr(&hD5)

Men senere, selvfølgelig pakket ind på en måde så det bliver nemmere for dig at sende forskellige kommandoer.
Avatar billede engberg Juniormester
21. september 2004 - 15:28 #28
Jeg tror nu det faktisk er et FBus kabel... Ligner rigtig meget det på billedet...

Jeg magter dog desværre stadig ikke at få svar tilbage fra telefonen... Pokkers...

Har i øvrigt fået installeret programmet fra http://www.softwarecave.com/ og det viser sig desværre at 3510i slet ikke er understøttet i programmet... :-/
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester