Picproje Elektronik Sitesi

TEKNİK SERVİS => Simkart ve Telefonlar => Konuyu başlatan: sdonmez - 17 Şubat 2017, 09:15:28

Başlık: Telit GL865 No Carrier gecikme problemi
Gönderen: sdonmez - 17 Şubat 2017, 09:15:28
Merhaba,

GL865 modül ile HTML sorgusunu yapı cevabı aldıktan sonra soket bağlantısı kapatmak istiyorum. "+++" escape komutu  gönderdiğimde "NO CARRIER" geliyor ama nadiren de olsa benim belirlediğim zaman aşımına takılıyor. Programda bu durumu daa çözdüm fakat neden bazen geç cevap aldığımı anlayamadım.

Komutlarım şöyle:


.
.
fprintf(COM1, "ATS12=20\r");
.
.
.
fprintf(COM1, "AT#SKTD=0,80,www.......com,255\r");
.
.
.
fprintf(COM1, "GET /deneme.aspx?");   
fprintf(COM1, "id=%c&", Imeii[0]);
fprintf(COM1, "veri=%u&live=0&girisim=%u HTTP/1.1\r\n", _input, Web_timer);
fprintf(COM1, "Host: www.......com\r\n");           
fprintf(COM1, "Connection: keep-alive\r\n\r\n\r\n");
.
.
.
delay_ms(750);           
fprintf(COM1, "+++");
delay_ms(500);
.
.


Gördüğünüz gibi "+++" komutuna verilecek cevabın süresini değiştiren ATS12 komutu ile default 50 (1saniye) olan değeri 20'ye düşürüyorum. Bu da 0.4 saniye eder.
Programda "+++" dan önce ve sonra delay_ms ile gecikme de veriyorum ki "+++" komutunu algılayabilsin.
Fakat bazen cevap çok gecikiyor.

Bu cevap süresi üzerinde etkisi olan başka neler olabilir?

AT#SKTD=0,80,www.......com,255 komutunda "<closure type>" bilgisini 255 verdiğim için "+++" kapatma komutunu kullanıyorum. "<closure type>" ı 0 versem HTML sorgusundan sonra "NO CARRIER" hemen gelir mi?

Teşekkürler


Başlık: Ynt: Telit GL865 No Carrier gecikme problemi
Gönderen: MrDarK - 17 Şubat 2017, 15:05:54
Connection: close

şeklinde denersen komut gönderildiğinde sunucudan atılacağın için +++ göndermene de gerek kalmayacaktır.

Birde bu tarz işlemler için aktif mod değilde pasif modda kullanmak soket açıp kapatma işlemlerini kolaylaştıracaktır. Yinede sen bilirsin. Üstteki söylediğim komutla zaten seni sunucu atacaktır.
Başlık: Ynt: Telit GL865 No Carrier gecikme problemi
Gönderen: sdonmez - 17 Şubat 2017, 19:42:54
Merhaba

AT#SKTD=0,80,www.......com,0
Connection: close

Seklinde degil mi?

Aksam deneyecegim. Teşekkürler
Başlık: Ynt: Telit GL865 No Carrier gecikme problemi
Gönderen: ismail kaya - 17 Şubat 2017, 22:10:41
MrDarK hocam pasif bağlantı örneği verebilir misiniz? Aktif bağlantıdan ne farkı var? Açıklayabilir misiniz
Başlık: Ynt: Telit GL865 No Carrier gecikme problemi
Gönderen: sdonmez - 18 Şubat 2017, 02:36:01
Merhaba,

AT#SKTD=0,80,www.......com,0
Connection: close

ile daha hızlı NO CARRIER dönmeye başladı, teşekkürler.

Şimdi ise şöyle bir sıkıntı doğdu. Kullandığımız web server bazen çok geç cevap veriyor. Yani soketi AT#SKTD=0,80,www.......com,0 ile açıyorum, web sorgusunu gönderiyorum ama cevap gelemiyor. Dolayısıyla NO CARRIER de gelmiyor.

Ben tüm cevaplarım için timeout sayaçları kullanıyorum yani web sorgusuna belli bir süre içinde cevap gelmezse işi o yerde bırakıp devam etmek istiyorum. NO CARRIER gelmediği için gsm modül komut moduna giremiyor. AT#SKTD=0,80,www.......com,0 ile soketi açtığım için bu durumda "+++" da işe yaramayacaktır. Dolayısıyla program da NO CARRIER gelene kadar yaklaşık 2dk bekliyor ve sonra AT komutlarına devam edebiliyor.

Buna karşın birşey yapılabilir mi?

Başlık: Ynt: Telit GL865 No Carrier gecikme problemi
Gönderen: MrDarK - 18 Şubat 2017, 17:15:53
Arkadaşlar mesajlarınızı okudum kısa zamanda komut modunda tcp bağlantısı nasıl kurulur anlatacağım.

Sdonmez senin problemini komut modu kesinlikle çözecektir. Merak etme. Cevap için timeout koymana da gerek kalmayacaktır.
Başlık: Ynt: Telit GL865 No Carrier gecikme problemi
Gönderen: sdonmez - 18 Şubat 2017, 18:37:13
Tesekkurler

Gece okudugum bir dokumanda AT#SKTD=0,80,www.......com,0 kullanilsa bile "+++" ile soketin kapatilabilecegi yazilmisti. Denedim, ise yariyor.
Artik timeout sürem  dolarsa "+++" ile soketi kapatip devam ediyorum.