KS-863PY.16F877 İLE UZAKTAN YUK KONTROL

Başlatan Abdullahtekin, 23 Eylül 2012, 14:03:54

Abdullahtekin

S. aleykum.
Gsm/Gprs modem kullanarak uzaktan röle vb. cıhaz kumanda etmek, durumlarını okumak gıbı uygulama ıle ugraşmaktayım. Fakat bi konuda işin içinden çıkamıyorum.CCS C ve 16F877A kullanıyorum.

cep telefonundan 10000011 gibi komut gönderip switc case döngüsünde yorumlamak istiyorum. Cep telefonundan mesajı gönderdiğimde KS-863PY seri porttan bana herhangi bir komut göndermiyor. BEn bunu zamana bağlı olarak mesela dakika başı < at+cmgl="rec unread"> komutu ile son okunmamış mesajı kontrol ettiğimde modem bana cevap olarak
+CMGL: 6,"REC UNREAD","+90541xxxxxxx","","12/09/23,11:48:07+12"10000011 yanıtını göderiyor. oysa bana  sadece sondaki gönderdiğim komut lazım. bunu pic içerisinde nasıl ayırabilirim. ALLAH razı olsun.


SERRO EFE

Kullanmış olduğun derleyicinin string fonksiyonlarını kullanarak yapabilirsin. Göndermiş olduğun mesaja ait tanımlayıcı 1-2 karakter koyarsın başa, bakarsın bunlar geliyorsa mesaj senindir. Mesajın istediğin yerini kesip işlem yapabilirsin.

Abdullahtekin

anlayamadım biraz daha açıklarmisiniz. +CMGL: 6,"REC
UNREAD","+90541xxxxxxx","","12/09/23,11:48:07+12" ifadesi ile 10000011 ifade sini birbirinden ayırıp 10000011 ifadesini komutunu her neyse işleme sokmak istiyorum. Mesela alınanveri diye 70 elemanlı bir değişken tanımlayıp her kesmede bir elemana bir karakter kaydetsek ve bu değişkenin 61-70 elemanlarını switch-case döngüsünde işleyemezmiyiz. Bu nasıl olmalı nasıl bir yol izlemeliyim.bu herbir karakteri ascii karşılıklarını almam gerekiyor diye düşünüyorum.Yardımcı olursanız sevinirim.

Abdullahtekin

150 kişi bakmış ama kımse yardım etmiyor. Hazır kod istemiyorum fikir verin en azından.Yardım eden olursa sevinirim.

Abdullahtekin

Arkadaşlar bu proje üzerinde çalışıyorum. Fakat söyle bir sorun var. Pic'e gelen bu string ifade komutlarını bir koşul şart döngüsünde koşullandırıp ilgili alıcıyı çalıştırıp durdurmak istiyorum. Elimde serdar hocanın Ccs c programlama kitabı var. Biraz araştırınca koşul şart döngülerinde string ifade kullanamayacağını öğrendim. Yanlış miyim. Nasıl bir yol izlemeliyim. Yardımcı olursanız sevinirim.

JKramer

string.h içindeki strcmp gibi fonksiyonları inceleyebilirsiniz.

Abdullahtekin

Mesela bir ledi yakmak için pic'e hyperterminalden 00000001 komutu nu göndersek bunu seri port kesmesi ile alıp atoi ile tam sayıya çevirip if deyimlerinde karşılaştırmak istiyorum. Kedi yakmak için Mesela gets(komut);
int i;
i=atoi(komut);
if (i==1)
{
output_high(pin_b0)
}
Bu şekilde her alıcı için bir tamsayı belirleyip if deyimlerinde gelen komutu karsilastirir hangi if deyiminde eşitlik sağlanıyorsa o deyimi dolayısıyla deyim içindeki kodlar'i işleme koysak olmaz mi. Mantık bu fikir bekliyorum. Tsk