PC Programı

Gelen dataların split ile analizi

//received data string 
//#02:81:cd:61:4a:d0#@TMONX-SNMP@?255.255.255.0?(10.0.0.254(!10.0.0.1!
//msg.data = "#" + MAC + "#@TMONX-SNMP@?" + NetMask + "?(" + Gateway + "(!" + NameServer + "!";

//split function
string getDataFromRcv(string RcvData,char x)
{
    string ans = "-";

    char delimiter = x;
    string[] substrings = data.Split(delimiter);

    if(substrings.Length == 3)
    {
        if( delimiter == '#' )//mac
        {
            delimiter = ':';
            string[] mac_string = substrings[1].Split(delimiter);

            if (mac_string.Length != 6)
                ans = "-";
            else
                ans = substrings[1];
        }
        else if (delimiter == '.')//ip ler
        {
            delimiter = ':';
            string[] ip_string = substrings[1].Split(delimiter);

            if (ip_string.Length != 4)
                ans = "-";
            else
                ans = substrings[1];
        }
        else
            ans = substrings[1];
    }

    return ans;
}

//control process
string retry = "";
retry = getDataFromRcv(data, '#');
if (retry != "-")
    device[MACADDRESS] = getDataFromRcv(data, '#');
else
    device[MACADDRESS] = "err";


retry = getDataFromRcv(data, '@');
if (retry != "-")
    device[DEVICENAME] = getDataFromRcv(data, '@');
else
    device[DEVICENAME] = "err";


retry = getDataFromRcv(data, '?');
if (retry != "-")
    device[NETMASK] = getDataFromRcv(data, '?');
else
    device[NETMASK] = "err";

retry = getDataFromRcv(data, '(');
if (retry != "-")
    device[GATEWAY] = getDataFromRcv(data, '(');
else
    device[GATEWAY] = "err";

retry = getDataFromRcv(data, '!');
if (retry != "-")
    device[NAMESERVER] = getDataFromRcv(data, '!');
else
    device[NAMESERVER] = "err";

Aldığımız Hata !!!!!

10.0.0.197 IP'li cihazın IP'sini ıp taramasıyla yapıp ilk açılış süresini bekledikten sonraki 'broadcast' ile yapılan tarama sonucu çıkan ekran görüntüsü aşağıdaki gibi. Sonraki taramalarda tıkladığında böyle bir görüntü ile tekrardan karşılaşmamaktayız.

private void button7_MouseUp(object sender, MouseEventArgs e) { button7.Image = System.Drawing.Image.FromFile(@"D:\buttondeneme_active.png"); }

    private void button7_MouseDown(object sender, MouseEventArgs e)
    {
        button7.Image = System.Drawing.Image.FromFile(@"D:\\buttondeneme.png");
    }

Linux ta port u dinlemek için command line komutu

sudo tcpdump -i wlp3s0 port 50012 -XX


cevap:
-------------------
11:19:19.867504 IP metehan.tumel.com.tr.50012 > 255.255.255.255.50012: UDP, length 13
	0x0000:  ffff ffff ffff 14cc 2024 57ed 0800 4500  .........$W...E.
	0x0010:  0029 ebe5 0000 8011 4456 0a00 0089 ffff  .)......DV......
	0x0020:  ffff c35c c35c 0015 ba1c 7374 6172 742d  ...\.\....start-
	0x0030:  746f 2d73 656e 64                        to-send
11:19:20.867159 IP metehan.tumel.com.tr.50012 > 255.255.255.255.50012: UDP, length 13
	0x0000:  ffff ffff ffff 14cc 2024 57ed 0800 4500  .........$W...E.
	0x0010:  0029 ebe6 0000 8011 4455 0a00 0089 ffff  .)......DU......
	0x0020:  ffff c35c c35c 0015 ba1c 7374 6172 742d  ...\.\....start-
	0x0030:  746f 2d73 656e 64                        to-send

26.03.2021 Pc programı v1.0.0 olarak direkt yönetici olarak çalıştırılacak şekilde paket haline getirildi. Broadcast taraması yapılıyor ama sonrasındaki IP tarama işlemini şuan için kaldırılma kararı verildi.

MessageBox'lardaki bulunduğu ülkeye göre çıkan 'yes','no' gibi butonlar bizde 'evet','hayır' gibi çıkıyor. Bunu engellemek adına 'messageboxmanager.cs' dosyasını önceki projelerden yeni projeye kopyalamak gerekmektedir.

SMS SERVER

Simple Tcp Server

C# Simple Tcp Server
If you got here, you probably want to know how to make a simple server in C#, using the shortest possible code and the easiest method to understand. For the sake of simplicity we'll make a synchronous server using a Console Application project, so we don't need to use multithreading or anything else.
https://codingvision.net/c-simple-tcp-server

Sms data log için

C# SQLite Kullanımı (Örnekli)
Bu örnekte C# kullanarak bir SQLite veritabanına nasıl bağlanacağımızı göreceğiz. Adım 1: Solution Explorer üzerinde Proje adına sağtıklayın. Manage NuGet Packages... Bağlantısına tıklayın. İkinci resimdeki gibi SQLite DLL dosyasını bulun. Step 2: Şekildeki gibi formu tasarlayın. Form Design: Step 3: Program çalıştığında çalışma zamanı içinde SQLite veritabanını ve tabloları oluşturuyoruz.
https://www.algoritmaornekleri.com/c-sharp/c-sqlite-kullanimi-ornekli/

!!! Uygulama iconlarının görev çubuğundaki bildirimler bölümünde çıkması için c# araç kutusunda 'notifyicon' diye bir tool kullanıyoruz.

REGULATOR

https://cdn.ozdisan.com/ETicaret_Dosya/585682_4418084.pdf

https://www.ozdisan.com/entegre-devreler-ics/guc-entegreleri/dc-dc-voltaj-regulatorleri/LM25011MYNOPB

https://ozdisan.com/pasif-komponentler/induktorler/sabit-induktorler/SRI0605-100M

https://ozdisan.com/pasif-komponentler/induktorler/sabit-induktorler/NR6028-100M

sqlite c# problem

https://www.youtube.com/watch?v=ayp3tHEkRc0

SMS SERVER Programında databaseden gelen datayı textboxta göstermek

https://www.codeguru.com/csharp/.net/net_data/using-sqlite-in-a-c-application.html

Çizimler

Visual Studio’da farklı formdayken farklı formdaki buton kontrolü için kullanılan site

https://social.msdn.microsoft.com/Forums/tr-TR/5f9ae3bf-ff5a-4249-b0aa-373157b48276/form2den-form1deki-butonu-nasl-pasif-yapabilir?forum=csharptr

Programların setup haline gelmesi için gerekli siteler

https://www.youtube.com/watch?v=YCCpHUaXEp8

Kısayollar iconları png to ico formatı olduğu için çevirmeyi sağlamak için yararlanılan site

https://www.freeconvert.com/png-to-ico/download

Yönetici olarak çalıştırmak için yararlanılan link:

https://www.karadasburak.com/c-ile-projeyi-yonetici-olarak-calistirma/