loader
Foto

Egyszerű CAN analizátor készítésének alapjai .NET 6 környezetben C# nyelven

A piacon különböző professzionális CAN analizátorok kaphatók, az árak széles skálán mozognak. Elkészítjük most egy CAN analizátornak az alapjait C# nyelven, azért, hogy akinek kedve van, tudjon készíteni olyan .NET-es alkalmazást, amelynek használatával az Arduino IDE Serial Monitor elhagyható.

Korábbi cikkünkben létrehoztunk kommunikációr két CAN-ECU között, az adatforgalmat az Arduino IDE Serial Monitor-án követtük nyomon. Most megnézzük azt, hogy hogyan lehet egy olyan alkalmazást készíteni, amelynek a segítségével a "Serial Monitor" elhagyható.

Először keressük meg azt a nyitott portot, amelyen keresztül csatlakozik a CAN-ECU-kból álló hálózatunkra a számítógépünk.
Indítsuk el a Visual Studio 2022 fejlesztőkörnyzetünket, és válasszuk ki a "Console Application" template-et, illetve a .NET6-ot. A "Program.cs" file-ba (tehát a "Program" osztályba) másoljuk be a következő programrészletet.

using System.IO.Ports;

Console.WriteLine("Hello, World!");

SerialPort sp = new SerialPort();
sp.BaudRate = 9600;

foreach (var item in SerialPort.GetPortNames())
{
    Console.WriteLine(item);
}

Ahhoz, hogy megjelenítésre kerüljön a virtuális soros port neve, szükséges a "SerialPort" osztály alkalmazása, amely a "System.IO.Ports" névtérben található. Ebben az osztályban található meg a "GetPortNames()" metódus, amely visszaadja a nyitott portok listáját. Ez a lista egy olyan gyűjtemény, amely megvalósítja a "GetEnumerator()" metódust. A "GetPortNames()" metódusnak futtatásához nem kell a fent említett osztálynak a példányosítása, mert ez a metódus static.
Ahhoz, hogy kipróbáljuk ezt a programrészletet, megfelel a 9600 Baud. Futtassuk most debug üzemmódban az alkalmazásunkat, és a következő eredményt kapjuk (1. ábra).

kep
1. ábra   Futási eredmény
 

Látható, hogy a CAN hálózatunk a "COM4"-en keresztül csatlakozik a számítógépünk. (A "Hello, World!" a VS2022 által létrehozott projektből maradt meg.)
A következő cél az, hogy a forgalmat meg tudjuk jeleníteni a képernyőn, azaz a "Debug Console"-on.

Módosítsuk az alkalmazásunkat a következő prorgramrészlettel. Ami rögtön szembetúnik az az, hogy a programunk tartalmaz egy "sp.DataReceived" nevű eseményt, amely akkor aktivizálódik, amikor a CAN buszon változás (új adat) történik.

using System.IO.Ports;

Console.WriteLine("Hello, World!");

string portName = null;

SerialPort sp = new SerialPort();
sp.BaudRate = 9600;

foreach (var item in SerialPort.GetPortNames())
{
    Console.WriteLine(item);
    portName = item.ToString();
}

sp.PortName = portName;

try
{
    sp.Open();
    sp.DataReceived += Sp_DataReceived;
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

Console.ReadLine();

sp.Close();
void Sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    string adat = sp.ReadLine();
    Console.WriteLine(adat);
}

A módosított alkamazás futási eredménye látható a következő ábrán.

kep
2. ábra   Futási eredmény, megjelenítésre kerülnek a CAN buszon küldött értékek
 

 



Egyéb cikkek

További cikkeink ebben a témakörben

Régebbi cikkeink

Az nmap (grafikus megjelenítésnél a ZenMap) használata az IT biztonság, illetve az üzemeltetés területén dolgozó szakembereknél szinte elkerülhetetlen. Az ingyenes szoftver segítségével tesztelhetők a számítógépeink, a számítógéphálózatunk, vizsgálha. . . .

A Python programozási nyelv nagyon elterjedt a fejlesztők körében. Használják beágyazott rendszereknél, webes alkalmazásoknál, IT biztonság különböző területein, stb. Látható, hogy nagyon széles a felhasználási területe ennek a nyelvnek, ideje volt m. . . .

Bemutatjuk most a saját (!) Wifi-s hálózatunk tesztelésének az alapjait. Megnézzük, hogy hogyan lehet biztonságos jelszót választani. Feltörhetetlen rendszer nem létezik, de megismerve a tesztelés folyamatát, válaszokat kaphatunk arra vonatkozólag, h. . . .