• 23-12-2012, 18:27:22
    #10
    [QUOTE=djshowtime;1066470380]sizin dediğiniz mantıklı bence. bunu şu şekilde gönderiyorlar genellikle 0x13 , 0xFF gibi gönderiyorlar daha çok yardımcı olabilir misiniz teşekkürler[COLOR="Silver"]

    0x13 0xFF gibi yazdığın değerler hexadecimal yani 16 lık sayı sisteminin değerleridir. bu çok problem değil aynısını sen de kullanabilirsin. önce 16 lık düzene nasıl çevireceğinden kısaca bahsedeyim.

    günlük hayatta 10 luk sayı sistemini kullanıyoruz ve 0 dan başlayarak 9 a kadar geliyor. 16 lık düzen ise 0 dan başlayıp F e kadar geliyor. yani içindeki rakamları

    0 1 2 3 .... 9 A B C D E F
    buradaki A =10, B=11, C=12, D=13, E=14, F=15 dir
    dikkat edersen 10 luk düzendeki en büyük rakam 9, 16 lıkda da F dir yani 15.


    hesaplanmasına gelince

    0x13 ü ele alalım. öncelikle 0x i hesaba katma.

    13 sayımız var. ilk olarak birler basamağından başlayarak onlar varsa yüzler varsa diğerleri 16 nın katı şeklinde hesaplanır. mesela

    16 lık tabanda 13 = 10 luk tabanda 3 *( 16^0) + 1 * (16^1) dir bu da 19 a eşittir.

    mesela sayımız 1A9 olsun.

    9 * (16^0) + A * (16^1) + 1*(16^2) = 425 eder.

    (yukarıda A dediğim 10)

    bu şekilde hesaplayabilirsin. bu 16 lık sayı tabanından 10 luya çevirme işlemi. bir de 10 luktan 16 ya çevirme işlemi var bunun için de bölme işlemi kullanacaksın

    mesela sayımız 17 olsun.

    17 / 16 = 1 ve kalan da 1. kalan 1 birler basamağını oluşturuyor diğeri ise 10 lar basamağını. ama oradaki 1 in değeri F dir o halde sayı F1

    mesela sayımız 28 olsun. bunu 16 ya çevirelim

    28 / 16 = 1 kere var ve kalan 12 oluyor. o halde kalan bizim birler basamağımızı oluştıuruıyor diğer 1 de onlar basamağımızı. 12 nin değeri 16 lık sistemde C olduğu için sayımız 1C olur.

    bunlarla uğraşmayayım dersen windows hesap makinesini aç görünüm menüsünden programcıyı seç. sol menüden 16 lık seçili ise 16 lık sayını yaz ve 10 luğu seç kendisi otomatik çevirir. ya da 10 luğu 16 ya çevirmek istiyorsan sol taraftan 10 luğu seçip istediğin sayıyı yaz sonra 16 lığı seçersen karşılığını gösterir..

    byte dizisine 16 lık değer girebilirsin. tabii ki bildiğin gibi byte ın en yüksek değeri 255 dir. o hlde 16 lık sistemde en fazla alabileceği değer FF dir

    yani

    byte degisken = 0xFF; (255 e eşit)



    verebilirsin en fazla. eğer 16 lık sistemde 100 yazarsan bu da 256 ya denk geliyor o zaman programın derlenmez.

    byte degisken = 0x100; (256 ya eşit)

    o yüzden alacağı değerler 0x0 dan 0xFF e kadar olmalı

    kolay gelsin
  • 23-12-2012, 21:15:01
    #11
    Uğraşıpda bilgi verdiğiniz için çok teşekkürler . Denemlerde bulunacağım

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 21:15:01 -->-> Daha önceki mesaj 19:23:05 --

    [QUOTE=ertan2002;1066471204]
    djshowtime adlı üyeden alıntı: mesajı görüntüle
    sizin dediğiniz mantıklı bence. bunu şu şekilde gönderiyorlar genellikle 0x13 , 0xFF gibi gönderiyorlar daha çok yardımcı olabilir misiniz teşekkürler[COLOR="Silver"]

    0x13 0xFF gibi yazdığın değerler hexadecimal yani 16 lık sayı sisteminin değerleridir. bu çok problem değil aynısını sen de kullanabilirsin. önce 16 lık düzene nasıl çevireceğinden kısaca bahsedeyim.

    günlük hayatta 10 luk sayı sistemini kullanıyoruz ve 0 dan başlayarak 9 a kadar geliyor. 16 lık düzen ise 0 dan başlayıp F e kadar geliyor. yani içindeki rakamları

    0 1 2 3 .... 9 A B C D E F
    buradaki A =10, B=11, C=12, D=13, E=14, F=15 dir
    dikkat edersen 10 luk düzendeki en büyük rakam 9, 16 lıkda da F dir yani 15.


    hesaplanmasına gelince

    0x13 ü ele alalım. öncelikle 0x i hesaba katma.

    13 sayımız var. ilk olarak birler basamağından başlayarak onlar varsa yüzler varsa diğerleri 16 nın katı şeklinde hesaplanır. mesela

    16 lık tabanda 13 = 10 luk tabanda 3 *( 16^0) + 1 * (16^1) dir bu da 19 a eşittir.

    mesela sayımız 1A9 olsun.

    9 * (16^0) + A * (16^1) + 1*(16^2) = 425 eder.

    (yukarıda A dediğim 10)

    bu şekilde hesaplayabilirsin. bu 16 lık sayı tabanından 10 luya çevirme işlemi. bir de 10 luktan 16 ya çevirme işlemi var bunun için de bölme işlemi kullanacaksın

    mesela sayımız 17 olsun.

    17 / 16 = 1 ve kalan da 1. kalan 1 birler basamağını oluşturuyor diğeri ise 10 lar basamağını. ama oradaki 1 in değeri F dir o halde sayı F1

    mesela sayımız 28 olsun. bunu 16 ya çevirelim

    28 / 16 = 1 kere var ve kalan 12 oluyor. o halde kalan bizim birler basamağımızı oluştıuruıyor diğer 1 de onlar basamağımızı. 12 nin değeri 16 lık sistemde C olduğu için sayımız 1C olur.

    bunlarla uğraşmayayım dersen windows hesap makinesini aç görünüm menüsünden programcıyı seç. sol menüden 16 lık seçili ise 16 lık sayını yaz ve 10 luğu seç kendisi otomatik çevirir. ya da 10 luğu 16 ya çevirmek istiyorsan sol taraftan 10 luğu seçip istediğin sayıyı yaz sonra 16 lığı seçersen karşılığını gösterir..

    byte dizisine 16 lık değer girebilirsin. tabii ki bildiğin gibi byte ın en yüksek değeri 255 dir. o hlde 16 lık sistemde en fazla alabileceği değer FF dir

    yani

    byte degisken = 0xFF; (255 e eşit)



    verebilirsin en fazla. eğer 16 lık sistemde 100 yazarsan bu da 256 ya denk geliyor o zaman programın derlenmez.

    byte degisken = 0x100; (256 ya eşit)

    o yüzden alacağı değerler 0x0 dan 0xFF e kadar olmalı

    kolay gelsin
    Uğraşınız için teşekkürler deneme yapacağım hemen
  • 26-12-2012, 17:16:46
    #12
    [QUOTE=djshowtime;1066471544]Uğraşıpda bilgi verdiğiniz için çok teşekkürler . Denemlerde bulunacağım

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 21:15:01 -->-> Daha önceki mesaj 19:23:05 --

    ertan2002 adlı üyeden alıntı: mesajı görüntüle

    Uğraşınız için teşekkürler deneme yapacağım hemen
    merhaba sizin dediğiniz gibi yaptım kumanda algılamadı nasıl algılayabilir sizce
  • 27-12-2012, 00:32:54
    #13
    delphide yazılmış program var benim yapmak istedğim kodları açık c# çevirebilir miyiz
  • 27-12-2012, 08:26:46
    #14
    çalışmaması beklenen bir durum zaten çünkü her zaman iletişim protokolü firmaya özgüdür. o yüzden göndereceğin verilerin belirli bir düzeni olmalı. mesela

    açılış anahtarı: 0x10-0x99
    senin verin : 0x40 - 0x50 - 0x75 - 0x12
    kapanış anahtarı: 0xF0 - 0XFF

    eğer sistem bu şekilde ise yollayacağın veriler şöyle olmalı

    0x10 - 0x99 - 0x40 - 0x50 - 0x75 - 0x12 - 0xF0 - 0XFF

    tabii benimki bir varsayım farklı bir sistemi de olabilir. Eğer daha önce bir proje yazılmışsa oradan kodları inceleyip c# a çevirebilirsin. delphi bilmiyorum çok da önemli bir problem değil, dediğim gibi gönderilen veri dizilimini bulmak yeterli. eğer çalışan bir uygulama varsa bir seri port reader ile giden verileri okutturup ona göre de sen de bu şekilde kendi verilerini yollayabilirsin
  • 27-12-2012, 13:26:06
    #15
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    çalışmaması beklenen bir durum zaten çünkü her zaman iletişim protokolü firmaya özgüdür. o yüzden göndereceğin verilerin belirli bir düzeni olmalı. mesela

    açılış anahtarı: 0x10-0x99
    senin verin : 0x40 - 0x50 - 0x75 - 0x12
    kapanış anahtarı: 0xF0 - 0XFF

    eğer sistem bu şekilde ise yollayacağın veriler şöyle olmalı

    0x10 - 0x99 - 0x40 - 0x50 - 0x75 - 0x12 - 0xF0 - 0XFF

    tabii benimki bir varsayım farklı bir sistemi de olabilir. Eğer daha önce bir proje yazılmışsa oradan kodları inceleyip c# a çevirebilirsin. delphi bilmiyorum çok da önemli bir problem değil, dediğim gibi gönderilen veri dizilimini bulmak yeterli. eğer çalışan bir uygulama varsa bir seri port reader ile giden verileri okutturup ona göre de sen de bu şekilde kendi verilerini yollayabilirsin

    evet çalışan bir .exe var elimde tam olarak nasıl okuyabilirim
  • 27-12-2012, 13:41:56
    #16
    seri portum yok o yüzden deneme şansım yok ama bu yazılım işini görür

    http://turbobit.net/i8hm26gbi7r9/Ser...2.293.rar.html

    bunu kurup ilgili com portunu dinlerken aynı zamanda ilgili yazılımdan bir tuşa bas ve giden verilere bak bakalım naslmış. her buton için ya da komut için bir analiz yap

    mesela
    buton veri
    1. buton 0x50 0x78
    2.buton 0x50 0x89

    gibi.. ona göre aynı sistemi kendi programın üzerinde yap
  • 27-12-2012, 14:45:05
    #17
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    seri portum yok o yüzden deneme şansım yok ama bu yazılım işini görür

    http://turbobit.net/i8hm26gbi7r9/Ser...2.293.rar.html

    bunu kurup ilgili com portunu dinlerken aynı zamanda ilgili yazılımdan bir tuşa bas ve giden verilere bak bakalım naslmış. her buton için ya da komut için bir analiz yap

    mesela
    buton veri
    1. buton 0x50 0x78
    2.buton 0x50 0x89

    gibi.. ona göre aynı sistemi kendi programın üzerinde yap

    Çok teşekkürler ilginiz için deneme yapacağım
  • 27-12-2012, 19:55:56
    #18



    hazır exe bunu gönderiyor benim gönderdiğim ise bi acayip gidiyor

    üstteki hazır .exe nin gönderdiği