Python - Seri İletişim Sorunu

Başlatan vale9, 23 Aralık 2014, 15:02:50

vale9

Merhaba,

PIC16F648A ve GL865 GSM modem arasında 2400 baud 8N1 haberleştirme yapıyorum.
Donanımsal bir sorun yok, PIC'ten modeme AT komutları sorunsuz gidiyor ve cevapları yine normal geliyor.

Soruna gelince; Modem içerisine Python kod yüklüyorum ve PIC ile haberleşirken SER modülünü kullanıyorum.
Modemden PIC'e datalar sorunsuz gelmesine rağmen, PIC'ten modeme data gitmiyor veya Python script bunu algılamıyor.

PIC kodları:
BAUD VAR WORD
BAUD=396            ' 2400 BAUD

WAIT_CONNECTED:

    SERIN2 RX, BAUD, 60000, WAIT_CONNECTED, [WAIT ("CONNECTED")]
    
    ;blink routine                            
 
;---------MAIN_LOOP------------

MAIN_LOOP:                        
     
    SEROUT2 TX, BAUD, ["DEN1",13,10]
    PAUSE 100

WAIT_SENT:

    SERIN2 RX, BAUD, 60000, WAIT_SENT, [WAIT ("SUCCESS")]

    ;blink2 routine

GOTO MAIN_LOOP



Python kodları:

import MDM
import MOD
import SER

tx="at#cmuxscr=0\r"
MDM.send(tx,0)


a = MDM.send('AT+IPR=2400\r',2)
MOD.sleep(10)
SER.set_speed('2400','8N1')
MOD.sleep(10)
a = MDM.send('AT&K0\r',2)
MOD.sleep(10)

##########################################
# User defined settings
#########################################
SMSTO = '1234567890'                 # recipient number for the SMS
SMSTEXT = 'SERTest-28: '     # SMS text
##########################################
# End of User defined settings
##########################################

while (1 == 1):
    a = MDM.send('AT+CREG?\r',2)
    res = MDM.receive(5)
    if (res.find('0,1') != -1) or (res.find('1,1') != -1) or (res.find('0,5') != -1) or (res.find('1,5') != -1):
        break
    else:
        MOD.sleep(10)

SER.send('CONNECTED!\r\n')
x = SER.receive(1000)

a = MDM.send('AT+CMGF=1\r', 2)
res = MDM.receive(5)

MOD.sleep(5)
a = MDM.send('AT+CMGS="' + SMSTO + '"\r', 2)
res = MDM.receive(10)

a = MDM.send(SMSTEXT, 2)
a = MDM.send(x, 2)
a = MDM.sendbyte(0x1A, 2)

SER.send('SUCCESS\r\n')


Kodda görüldüğü gibi SMS içerisinde SMS Textten sonra PIC'ten gelen datayı SMS olarak göndermesi lazım ama SMS'te sadece SERTest-28: geliyor!
Hayat 1'ler ve 0'lardan ibarettir.