Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: mrcrbg - 19 Mayıs 2013, 19:19:51

Başlık: ASCII dönüşümü hakkında
Gönderen: mrcrbg - 19 Mayıs 2013, 19:19:51
Merhabalar, ben bir gsm modül ile çalışıyorum. Pic ile modülü haberleştirmeye çalışıyorum. Modülden okuduğum veriler ASCII şeklinde geliyor. Gelen verileri nasıl karaktere çevirebilirim. Örneğin modül komut gönderdiğimde ascii olarak OK cevabı vermesini bekliyorum. Gelen ascii karakter kodlarını nasıl   O ve K gibi karakterlere dönüştürebilrim.

Her karakter kodu için ASCII tablosundan yararlanıp bir dünüşüm fonksiyonu yazmak zorunda mıyım?
Başlık: Ynt: ASCII dönüşümü hakkında
Gönderen: sadogan - 19 Mayıs 2013, 21:35:28
Görüntülemede ne kullanıyorsun
LCD ise zaten direk görmen gerekiyor
Başlık: Ynt: ASCII dönüşümü hakkında
Gönderen: mrcrbg - 19 Mayıs 2013, 21:51:27
LCD de görüntülemek için sormuyorum. gelen veriyi;

if(gelendata1='O' && gelendata2='K')
{ flag=1;}

gibi bir şartta kullanacağım. bu durumda data'yı aldığımda ascii kodunu karaktere çevirmem gerekmiyor mu ? Aldığım veriyi karakter'e çevirmeden bu karşılaştırmayı yapabilir miyim ?
Başlık: Ynt: ASCII dönüşümü hakkında
Gönderen: FEHMİ_ASM - 20 Mayıs 2013, 09:39:27
        LCD de görüntülemek için söylemiyorum;

        Ascii kod, ilk aldığınız ya da veri hattındaki kod'un karakter karşılığıdır. Karaktere çevirmeye çalıştığınız, ascii kod'a henüz çevrilmemiş hex kodu olmasın? Eğer öyle değil ise bir çevirme yapmanıza gerek yok.
Başlık: Ynt: ASCII dönüşümü hakkında
Gönderen: mrcrbg - 20 Mayıs 2013, 19:44:01
ya aslında tam hakim değilim bu kısma daha detaylı anlatayım.
Ben pic ile sim908den gps verisi okuyacağım. gps verileri nmea formatında yollanıyor. nmea da ascii karakter iletiyor. Dolayısıyla ben modüle bir komut gönderdiğimde bana "OK" yanıtı verecek. peki bana gönderdiği veriler 'O' ve 'K' mi olacak? yoksa bunların karşılığı olan '79' ve'75' mi gönderecek? Eğer  '79' ve '75' gönderecekse benim bunları 'O' ve 'K' ye çevirmem gerekiyor mu? Gerekiyorsa nasıl çevirebilirim, kısa bir yolu var mı?




Başlık: Ynt: ASCII dönüşümü hakkında
Gönderen: FEHMİ_ASM - 20 Mayıs 2013, 20:52:04
   Modülden size gelecek yanıt "12" ise, bu ya hexadecimal ya da decimal dir. Bunu belirtmemişsiniz.

   - Eğer hex ise, alıcı algoritmanızda direkt, ( - ki muhtemelen hex12 dir,,,)
   - Eğer decimal ise, sayıyı dec'12' veya hex'0C' olarak sorgulayın.

   Ayrıca 12 sayısını hiçbir durumda bölmenize gerek yok ve doğru da olmaz.
   *SOH, STX fonksiyonları ile ilgili bilgim yok, konuyla ilgili de olabilir, ayrıca araştırın.

Başlık: Ynt: ASCII dönüşümü hakkında
Gönderen: kudretuzuner - 20 Mayıs 2013, 22:04:46
Alıntı yapılan: mrcrbg - 20 Mayıs 2013, 19:44:01
ya aslında tam hakim değilim bu kısma daha detaylı anlatayım.
Ben pic ile sim908den gps verisi okuyacağım. gps verileri nmea formatında yollanıyor. nmea da ascii karakter iletiyor. Dolayısıyla ben modüle bir komut gönderdiğimde bana "12" yanıtı verecek. peki bana gönderdiği veriler '1' ve '2' mi olacak? yoksa bunların ascii karşılığı olan 'SOH' ve'STX' mi gönderecek? Eğer  'SOH' ve 'STX' gönderecekse benim bunları '1' ve '2' ye çevirmem gerekiyor mu? Gerekiyorsa nasıl çevirebilirim, kısa bir yolu var mı?
İnsallah sorunumu net olarak anlatabilmişimdir. bu kısımda takılıp kaldım.
Merhaba,
Modülün yolladığı 12 değeri birkaç şey ifade eder. Daha doğrusu Hex'12' mi? Dec'12' mi? Siz en iyisi gelen Byteları yazarsanız yardımcı olmaya çalışayım.Bu arada PC tarafındaki yazılımınız hazır mı? Kabul ediyorum özel bir projeye benziyor ama detaylı paylaşım yaparsanız detaylı da bilgi alabilirsiniz.
Başlık: Ynt: ASCII dönüşümü hakkında
Gönderen: fatih6761 - 21 Mayıs 2013, 00:20:49
Alıntı yapılan: mrcrbg - 20 Mayıs 2013, 19:44:01
ya aslında tam hakim değilim bu kısma daha detaylı anlatayım.
Ben pic ile sim908den gps verisi okuyacağım. gps verileri nmea formatında yollanıyor. nmea da ascii karakter iletiyor. Dolayısıyla ben modüle bir komut gönderdiğimde bana "OK" yanıtı verecek. peki bana gönderdiği veriler 'O' ve 'K' mi olacak? yoksa bunların karşılığı olan '79' ve'75' mi gönderecek? Eğer  '79' ve '75' gönderecekse benim bunları 'O' ve 'K' ye çevirmem gerekiyor mu? Gerekiyorsa nasıl çevirebilirim, kısa bir yolu var mı?
Buradaki OK yanıtı sırayla size 'O' ve 'K' olarak gelecektir. " işareti string'i , '' işareti karakteri ifade eder. 'O' ile 79 ve 0x4F aynı şeydir. Modülden hangisi geliyor derseniz hepsi doğrudur. Veri hattından 01001111 verisi gelir. Bu veri hex tabanda 4F'e, ondalık düzende 79'a denktir. Modülden '3', '5' gibi sayı gelmişse ve siz bunun değerini decimal 5 veya 0x05 olarak istiyorsanız yapmanı gerekn '0' çıkarmaktır.

http://www.simcom.us/act_admin/supportfile/SIM908_AT%20Command%20Manual_V1.01.pdf (http://www.simcom.us/act_admin/supportfile/SIM908_AT%20Command%20Manual_V1.01.pdf)
Bölüm 1.4.5 : AT komutları uyumluluğu olduğundan döndürülen komutlar "OK" gibi gelir. Yani gelenVeri[0] == 'O' gibi bir karşılaştırma yapabilirsiniz.

Kolay gelsin...
Başlık: Ynt: ASCII dönüşümü hakkında
Gönderen: mrcrbg - 22 Mayıs 2013, 00:19:15
yardımlarınız için çok teşekkürler. sonunda anladım nasıl olduğunu  :)