Cep telefonları için AT komutlarının kullanımı.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

Cep telefonları için AT komutlarının kullanımı.

Mesaj gönderen meron06 »

iyi çalışmalar arkadaşlar.nokia telefonların şarj bağlantısı yanında bulunan usb bağlantı noktasına usb kablosu takılıyor.telefonun driver ı yüklenince telefonu comport olarak bağlanılabiliyor.benim yapmak istediğim şey cep telefonuna AT komutlarıyla bağlanıp mesaj gönderme ve telefona gelen mesajları okuyan bi yazılım geliştirmek istiyorum.bu tarz bi uygulama yapan arkadaşlar varmı.bu konuda yardımcı olabilirmisiniz.ben bi kaç adet nokia telefona bağlanmayı denedim nokia dan komut setleri ile ilgili dökümanları indirdim inceledim delphi 7 ile apdcomport bileşeni ile AT bilgisini yolladım ama telefondan OK mesajı gelmedi.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Cep telefonları için AT komutlarının kullanımı.

Mesaj gönderen mkysoft »

Öncelikle Telnet üzerinden deneme yapın, yine cevap gelmezse, kablo-sürücü-telefon-komut seti yapısına bakınız.
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

Re: Cep telefonları için AT komutlarının kullanımı.

Mesaj gönderen meron06 »

arkadaşlar AT komutları ile ilgili araştırma yapmamın sebebi.türksel telsim ve aveadan oluşan 3 adet telefon hattının olduğu nu düşünün bi yazılım aracılığıyla bu telefonlara gelen mesajlara cevap yazacak ve gerekli işlemleri yapacak bi yazılım geliştirmek istiyorum.gsm operatörlerinin bilgisayar destekli bi web servisi yada sistemi varmı.telefona bağlanmadan bu hatalara gelen mesajları okuyup cevap yazmamızı sağlayacak bi sistemleri varmı.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Cep telefonları için AT komutlarının kullanımı.

Mesaj gönderen mkysoft »

Evet var, örnek: http://www.biotekno.biz/
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

Re: Cep telefonları için AT komutlarının kullanımı.

Mesaj gönderen meron06 »

nokia 3100 da denedim driverlarını yükledim com6 olarak gördü.daha sonra hyper terminalden com6 ya bağlandım.bağlantı sağlandı mesajı geldi.fakat hyper terminal ekranında herhangi birşey yazamıyorum.hyper terminalde komut yazılan yer aktif olmuyor ama telefona bağlantı sağlandı diyor.delphide apdcomport la denedim com6 ya AT komutunu yolluyorum telefondan herhangi bi karşılık gelmiyor.acaba hatalı birşey mı yapıyorum diye bilgisayarımdaki com3 e bağlı olan modeme aynı mesajı apd comprt la yolluyorum OK cevabı geliyor.acaba bu noki telefonlarda iletişimi başlatmak için porta özel bi bilgimi yollamak gerekiyor.telefonun kendi pc suiti ise com6 dan güzel güzel haberleşiyor.pcsuite çalışırken porta gönderdiği mesajları dinlememin bi yolu varmı.yardımcı olabilirmisiniz.nokia telefonlarla bu tarz uygulamalarla uğraşanlar varmı.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Cep telefonları için AT komutlarının kullanımı.

Mesaj gönderen Lord_Ares »

arkadaşım anladığım kadarıyla yapmak istediğin parça kontor sistemi için program yazman ve donanım oluşturmak istiyorsun.
aynı sistemi bende yaptım şuan tek pertenax uzerinde sadece gsm sim yuvalarını 8 adet yerleştirip kontrol edebiliyrom.
Gelelim senin takıldığın yere. Evet aynı sorun başta bende de oldu. biligisayarıma data kablo ile bağladığım telefondan arama yapabiliyor, mesaj atabiliyor fakat gelenleri okuyamıyordum. Nedenini söyliim sana

1) nokia at comamand set diye google da arat sana nokia at komut seti kitapçığını bulucaktır burda at komutları ve kullanımları var. Nokia nın her modelinde at komut setleri kullanımı değişebiliyor (kullandığın model java tabanlımı symbain mi farklılık gosterebiliyor)

2 ) elindeki at komut setlerinin doğru olduğuna eminsen,
At komutları bilgisayardan telefona gonderirken iki şekilde oluyor.
birincisi telefon pdu modunda, ikincisi text modunda. Sen eğer bir devre hazırlayıp bunu telefona bağlayıp bilgisayardan bilgi gonderip okucaksan pdu mod ile bağlanıp iletişim ok aldıktan sonra text moda geçip mesaj okumalısın.
bu arada her telefon için Phone Control Commands dışında kalan, mesaj okuma gibi at komutları kullanım şekli farklıdır.

Yapman gerekenler
telefonu bilgisyara bağladığında örnek hyperterminal ile veya puti programı ile ( puti tavsiyemdir)
At yazdın karşıdan ok geldi
Cmgf=1 diyerek teli text moda çek (cmgf=0 dersen pdu moda çekersin.)
daha sonra çalıştırmak istediğin komutları yazarsın mesela mesaj okuma at komutları aşağıdaki gibi
okumak istediğin mesaj tipini seçtikten sonra cmgl ile tum mesajları listelersin veya cmgr ile indexsini belirttiğim mesajı okursun
AT+CMGL List Messages
AT+CMGR Read Message
şuna dikkat et baştan cmgf ile telefonu text moda çek. sonra cmgl ile mesaj listelerken cmgl at komutunun istediği bazı değişkenler var bunları girmeye unutma.( okunacak mesaj tipi,index no, sim karttan mı, hafıza kartındanmı bunları belirtmelisin)
unutmadan şunu söylim mesaj okumak için CMGR komutunu kullandığında geri donen değer hexdecimal olucak. bunu delphide alıp tekst haline getirmelisin. sana en altta delphi de kullanabileceğin kod veriyorum incelersin

AT+CSMS Select Message Service
AT+CPMS Preferred Message Storage
AT+CMGF Message Format
AT+CSCA Service Centre Address
AT+CSMP Set Text Mode Parameters
AT+CSDH Show Text Mode Parameters
AT+CSCB Select Cell Broadcast Message Types
AT+CSAS Save Settings
AT+CRES Restore Settings
AT+CNMI New Message Indications to TE
AT+CMGL List Messages
AT+CMGR Read Message
AT+CMGS Send Message
AT+CMSS Send Message from Storage
AT+CMGW Write Message to Memory
AT+CMGD Delete Message


internetten bulduğum örnek delphi kodu

var
hCommFile : THandle;

procedure TForm1.Button1Click(Sender: TObject);
var
PhoneNumber : string;
CommPort : string;
NumberWritten : LongInt;
begin
PhoneNumber := 'ATDT 0535XXXXXXXXX'+ #13 + #10;
CommPort := 'COM2'; // Modem Hangi Porttaysa onu
// ayarlayin
{ Portu ac }
hCommFile := CreateFile(PChar(CommPort)
GENERIC_WRITE
0
nil
OPEN_EXISTING
FILE_ATTRIBUTE_NORMAL
0);
if hCommFile=INVALID_HANDLE_VALUE then
begin
ShowMessage('Port Acilamadi'+ CommPort);
exit;
end;

{ Telefon numarasini Ara }
NumberWritten:=0;
if WriteFile(hCommFile
PChar(PhoneNumber)^
Length(PhoneNumber)
NumberWritten
nil) = false then begin
ShowMessage('Porta yazilamiyor' + CommPort);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
{ Portu Kapat }
CloseHandle(hCommFile);
end;
5.13 EkranKartınınDiskin Fabrika Seri Numarasının Alınması Pascal 7.0 için

program SetDiskSer;

{ $A+B-D+E+F-G+I+L+N-O-P-Q-R-S-T-V+X+Y+ }
{ $M 163840655360 }

type
TSerPacket = record
Info:Word; { Info level always zero }
SerNo: Longint; { Disk }
Vol: Array [1..11] of char;
FileType: Array [1..8] of char;
end;

var
SPacket: TSerPacket;

Function GetSerialInfo(Drive: Byte): Byte; assembler;
asm
mov ah 69h
mov al 0 { This is where you 1 set serial 0 to get serial
number }
mov bl 1 { drive number 0 = default 1 = A 2 = B 3 = C }
mov dx offset [SPacket]
int 21h
end;

Function SetSerialInfo(Drive: Byte; SerNo: LongInt): Boolean;
var
S: String;
begin
GetSerialInfo(Drive);
SPacket.SerNo := SerNo;
asm
mov ah 69h
mov al 1 { This is where you 1 set serial 0 to get serial
number }
mov bl Drive { drive number 0 = default 1 = A 2 = B
3 = C }
mov dx offset [SPacket]
int 21h
end;
end;

procedure DisplaySerialInfo;
var
S: String;
begin
WriteLn('Info level: ' SPacket.Info);
WriteLn('Serial Num: ' SPacket.SerNo);
FillChar(S SizeOf(S) #0);
Move(SPacket.Vol[1] S[1] 11);
S[0] := #11;
WriteLn('Vol: ' S);
FillChar(S SizeOf(S) #0);
Move(Spacket.FileTypeS[1] 8);
S[0] := #8;
WriteLn('Type: ' S);
end;
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

Re: Cep telefonları için AT komutlarının kullanımı.

Mesaj gönderen meron06 »

lord_ares kardeş cevabın için tşk.ederim.bu konuda anlatmış olduğunuz bi çok şeyi denememe rağmen başarılı olamadım.aslında comport haberleşme ile ilgi bi çok deneyimim oldu.ama nedense bunu bi türlü beceremedim.ben nokianın 1100 modeliyle deniyorum.siz bu sistemi nokia nın hangi modelinde tasarladınız.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Cep telefonları için AT komutlarının kullanımı.

Mesaj gönderen Lord_Ares »

ben nokia 6300 ve 6300i de yapabiliyorum. ayrıca samsung c65 ile yaptım. dedim gibi iki şekilde oluyor. biri max 232 entegre ile devre hazırlayıp telefonun rx ve tx yoluyla bağlanmak. yani pic programla, ikincisi telefonun data koblosunu kullanarak.
her ikisinide bu telefonlarda kullanabilirsin. diğer telefonlarda da oluyor fakat benim denediklerim bunlar.

dostum anladğım kadarıyla şurda hata yapıyorsun.

http://www.nokia.com.tr/cep-telefonlari ... ozellikler

birincisi nokia 1100 telefonunda modem sanırım yok. At komutları modem olan telefonlarda çalışır.
bunu anlamanın en kolay yolu cep telefonun internete girebiliyormusun. eğer giriyorsan modem var giremiyorsan modem yok. internete girebiliyorsan telefonu pc ye bağla telefonun driverlarını yukle. bilgisayarımda aygıt yoneticisinden hangi com portu kullandığına bak. Çunku hyperterminalde bu portu seçip bağlanman gerekiyor. bu konuda sana yardımcı olucak şu siteye bak. şunu unutma hyperterminalde com port seçerken bağlantı hızını aygıt yoneticinden gorduğun telefonun bağlantı hızınla aynı yap yoksa telefon donar bağlanamazsın. bağlanmak için com 4 com 5 veya com 7 kullanır telefonlar.

http://www.csharpnedir.com/makalegoster.asp?MId=701

burda resimli bir şekilde anlatıyor nasıl bağlanıcağını. eğer bağlama işini yaptıysan ilk denemede nasıl yapıcağına dair bir ornek te bu sitede
http://antrak.org.tr/index.php?option=c ... iew&id=368

sana at komutlarını da verim onlarda burda bu iki site işine yarar.
http://www.activexperts.com/xmstoolkit/ ... nds/nokia/
http://www.elektrotekno.com/archive/o_t ... tlari.html
bir önceki mesajımdanda söyledim gibi bağlantıyı yaptığında mesajları okumak için telefonu tekst moda çekmeyi unutma

eğer cep telefonundan internete giremiyorsan o zaman telefonunda modem yoktur ve sen pic ile telefona bağlanabilirsin. onuda nasıl yapıcağını söyliim. bir tane elektronik devre hazırlamalısın.
max 232 entegre kullanmalısın. bunu nasıl yapıcağınıda su adreste var. bu devrenin aynısını yapabilirsin kolay bi devre. adres şu burda resimli olarak gosteriyor. telefonun şarj etme kısmındaki ayaklardan rx ayağı ve tx ayağanın kullanarak bağlanıcaksın
http://ccspic.com/elektronik-ve-ders-no ... tlari.html

bu devreyi nasıl yapıcam dersen devrenin şemasıda bu iki adreste resimli olarak gosterilliyor.
http://www.serasidis.gr/circuits/smscon ... ematic.gif
http://www.panuworld.net/nuukiaworld/ha ... s/fbus.htm

kolay gelsin
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Cep telefonları için AT komutlarının kullanımı.

Mesaj gönderen Lord_Ares »

bu arada karşılaştığım sorun şu delphi ile mesajları oku komutu gonderdiğimde donen değerler hex değer oluyo. ve bu değerlerin içinde komutları ve mesaj içeriğini ayırmakta sorun yaşıyorum. çözersem sana da gonderirim.

birde şunu araştır.
turkcel gibi operator merkezlerinde sim kartlar başka bir karta kopyalanabiliyor. Eğer kopyalamaya izin veriyorsa
belki bilgisayarda sanal surucu oluşturup sim kartı buraya kopyalayana bilir ve bunu bilgisayara gsm modem takarak kullanırsan sınırsız bir sayıyada hattı tek bir tel ile kullanabilirsin.
yoksa şuan yaptığın devrede surekli sim kart çıkar tak yapıcaksın ve devre sayın kadar hat kullanabileceksin.

Tabi yapılabilirmi nasıl yapılır onu bilmiyorum.
Cevapla