HSERIN KOMUTUNDA DEĞİŞKENE ASCII KOD ATAMA

Başlatan sapkaliamca, 06 Eylül 2014, 02:17:39

sapkaliamca

Arkadaşlar örnek ollarak verirsek

verici:
HSEROUT ["TEL=+905051234567"]

alıcı:
HSERIN 2000,BASLA,[Wait ("TEL="),A]

alıcıdaki A değişkenine yada değişken dizisine ASCII kod olarak "+905051234567" atayabilirmiyiz

yada


verici:
HSEROUT ["TEL ADI=HASAN"]

alıcı:
HSERIN 2000,BASLA,[Wait ("TEL ADI="),A]

alıcıdaki A değişkenine yada değişken dizisine ASCII kod olarak "HASAN" nasıl alınır bilenlerin yardımını bekliyorum SAYGILAR

ete

Bu işi yapmanın bir iki yolu var.
Birincisi isimleri eproma kayıt edersin. Ancak ya isimleri standart uzunlukta kullanır yada değişken boyular için kayıt adresi başlangıç ve bitiş adreslerinide kayıt altında tutarsın.
Örnek vereyim bütün isimleri 10 karekter kabul edebilirsin. Bu çalışmanda sana kolaylık sağlar. Hem verirken standart 10 karekter yollarsın boşluklar için 32 (boşluk) yollaman uygun olur. Bu durumda 10 elemanlı bir dizi değişkeni ayarlarsın, ISIM VAR BYTE [10]  Bunu 0-9 arası olarak kullanacaksın buna dikkat et.
Sonra 0-9 arasına 1. nolu ismi, 10-19 arasına 2 nolu, 20-29 arasına 3 nolu, 30-39 arasına 4 nolu ismi kayıt edersin.
Hangi isim kullanılacak ise önce onu epromdan okur diziye kayıt edersin.
Adres=0  (ilk ismin adresi)
FOR I=0 to 9
READ adres+I,ISIM[I]
Next
böylece epromdan okunan 10 karekter ISIM isimli dizi değişkeninin 10 karekterine yerleşmiş olur.
Sonra bunu yollama iinde kullanırken
HSEROUT ["TEL ADI="
FOR I=0 to 9
  HSEROUT [ISIM[I]]
Next
şeklinde yollarsın. Bazen HSEROUT dizi şeklindeki değişkeni kabul etmeyebilir.
O zaman şöyle yaparsın
HSEROUT ["TEL ADI="]
FOR I=0 to 9
  TEMP=ISIM[I]
  HSEROUT [TEMP]
Next

İkinci sistemde ise bir lookup tablosu  şeklinde isimleri tabloya yerleştirirsin
AD1:
LOOKUP I,["AHMET ALI ",W
RETURN

AD2:
LOOKUP I,["MEHMET SAN",W
RETURN
...
..
Kullanmak için ise
HSEROUT ["TEL ADI="]
FOR I=0 to 9
GOSUB AD1
HSEROUT [W]
Next

şeklinde kullanırsın.

Ete

sapkaliamca

Hocam çok teşekkür ederim yardımınız için çözdüm.
aslında benim sorunum daha çok HSERIN de idi
Yine sizin fikirlerinize istinaden çözdüm tabiki
A VAR BYTE[15]  değişken dizisi belirledim

HSERIN 2000,BASLA,[Wait ("TEL ADI="),A[0],A[1],A[2],A[3],..........A[15]]
yaptım böylelikle TEL ADI= 'DEN SONRA gelen veriyi 15 adet ASCII kodu A değişkenine yükledim
sorun çözüldü teşekkür ederim SAYGILAR

enginkanat

Yeni bir konu açmamak adına bu konuya yazıyorum,
Ben HSEROUT ["AT+RST",13,10]
komutunu gönderdiğim zaman karşıdan bana bir cevap gelmesini bekliyorum. PC den seri bağlantıda dönen cevap "OK" ve sonrasında "Ready" oluyor, eğer gönderdiğim komutu alamaz ise cevap gelmiyor, eğer veri hatalı gitmiş ise "Error" cevabı geliyor. programda USART kesmesi kullanıyorum ve tanımlama verisi gönderip alamıyorum.
mesela
if RST=0 then
        While RST=0:Wend
        HSEROUT ["AT+RST",13,10]
endif
kesmede ben bu bilgileri
kesme:
HSERIN 500,GELEN_OK,[WAIT("OK")]
HSERIN 500,GELEN_READY,[WAIT("ready")]
HSERIN 500,HATA,[WAIT("error")]


eğer burada bana "OK" verisi gelmez ise benim bu komutu "OK" gelene kadar göndermem gerekiyor. 
bir sorumda şu;
HSERIN ile gelen verilerin hepsi aslında ASCII kodu yani "OK" geldiğinde aslında 79 ve 75 decimal kodları geliyor. HSERIN [TEMP] komutu ile gelen veri "192.168.2.11:80" karakter dizisi var sayalım ben bu karakter dizisini IP_ADRES değişkenine nasıl atayabilirim?
IP_ADRESS=TEMP olmaz galiba. karakter dizisinin değişkene atamaları nasıl yapabilirim.

Powered by EzPortal