serin2 problemi acill!!!

Başlatan vale9, 03 Temmuz 2013, 10:28:20

vale9

Arkadaşlar merhaba, piyasaya çıkacak ürünümün testlerinde serin2 ile alakalı problem yaşıyorum. Cihaz bir alarm olduğunda müşteriye sms gönderiyor ve çağrı atıyor. Buradaki tüm denemelerimde bütün cihazlar düzgün çalışıyor, antensiz bile olsa her seferinde ilk denemede bile hem sms hem de çağrı yapıyor. Fakat sahaya gittiğinde bazen normal çalışıyor; bazen sms gönderiyor, arama yapmıyor bazen de hiçbirini yapmıyor. Ve cihaz kilitleniyor! İşin ilginç tarafı cihaz hattan hiç kopmuyor (cihazı aradığımda ulaşabiliyorum), yani bağlantı sorunu değil.

Benim tahminim; eğer ilk denemede sms'i veya aramayı yapamazsa; SERIN2 komutu yüzünden veya GSM modülü ile iletişim kurarken modülün kilitlenmesi yüzünden oluyor bu problem. Program döngünün içine girdiği için arama yapamasa bile bir sonraki denemelerinde yapabilmesi lazım fakat kilitleniyor, 1 saat bile beklesek arama yapmıyor. Lütfen acil yardımmmm.....

Kodlar aşağıda;

MAIN_LOOP:
.
.
.

IF ALARM=1 THEN
   CALLEN=1                         ''' ARA MODUNA İZİN VER
   GOSUB SMS_LOAD_NUMBERS       "" SMS GÖNDERME RUTİNİ
   GOSUB CALL_NUMBERS                "" ARAMA RUTİNİ
ENDIF

.
.
.

GOTO MAIN_LOOP

;------SMS_LOAD_NUMBERS----------

SMS_LOAD_NUMBERS:
    
    SEROUT2 TX, BAUD, ["AT+CMGS="]                 
    GOSUB DIGIT_CHECK                                " NUMARAYI MSG DİZİ DEĞİŞKENİNİN İÇİNE KAYDEDİYOR 
    GOSUB PAUSE_1000MS
    GOSUB PAUSE_1000MS
    SEROUT2 TX, BAUD, [STR MSG\12, 26]       
    SERIN2 RX, BAUD, 35000, SMS_LOAD_NUMBERS, [WAIT ("+CMGS")]
    GOSUB PAUSE_10000MS
    
    RETURN
        
;---------CALL_NUMBERS--------------

CALL_NUMBERS:

    IF CALLEN=1 THEN
        SEROUT2 TX, BAUD, ["ATD"]
        GOSUB DIGIT_CHECK
        SERIN2 RX, BAUD, 10000, CALL_NUMBERS, [WAIT ("OK")]
        GOSUB PAUSE_1MIN
        GOSUB CANCEL_CALL
    ENDIF

    RETURN
Hayat 1'ler ve 0'lardan ibarettir.

vale9

Düzeltme: Digit check'te numara yükleniyor, içeriği şöyle:

;------DIGIT_CHECK------------

DIGIT_CHECK:
    
    SEROUT2 TX, BAUD, [STR NUMADM\13, 13]
    
    RETURN
Hayat 1'ler ve 0'lardan ibarettir.