Skip to content

Dokumentace: Společné funkce

papouch.com edited this page Jun 13, 2018 · 7 revisions

Hlavní části této stránky:

Funkce popsané na této stránce jsou společné pro téměř všechna zařízení, která komunikují protokolem Spinel. Mohou nastat určité výjimky, ale spíše jen u zakázkových aplikací nebo úzce specializovaných zařízení.

Níže uvedené příklady používají objekt MyDevice tak, jak je definován v Základním příkladu použití. Funkce, které nejsou v knihovně implementovány můžete snadno sestavit pomocí této funkce SendAndReceive().

CmdGetInfo() - čtení verze zařízení

Deklarace:

public bool CmdGetInfo(out SpinelDeviceVersion version);

Příklad:

if (MyDevice.CmdGetInfo(out SpinelDeviceVersion ver))
    Console.WriteLine($"Description: {ver.Description}\nProductId: {ver.ProductId}\nHardwareId: {ver.HardwareId}\nFirmwareId: {ver.SoftwareId}");
else
    Console.WriteLine("CmdGetInfo: Error");

Výstup:

Description: Quido ETH 4/4
ProductId: 254
HardwareId: 3
SoftwareId: 35

CmdGetSN() - čtení sériového čísla

Deklarace:

public bool CmdGetSN(out SpinelDeviceSN dev_sn);

Příklad:

if (MyDevice.CmdGetSN(out SpinelDeviceSN sn) && sn.Valid)
    Console.WriteLine($"S/N: {sn.SerialNumber}\nType: {sn.DeviceType}\nFactory data: {sn.FactoryData}");
else
    Console.WriteLine("CmdGetSN: Error");

Výstup:

S/N: 254
Type: 3569
Factory data: 538444585

CmdGetStatus() - čtení statusu zařízení

Status je uživatelsky definované číslo, které lze využít k zjištění stavu přístroje. Po zapnutí přístroje, nebo po resetu (i softwarovém) je automaticky nastaven status 0x00. Pokud je instrukcí CmdSetStatus přestaven na jinou hodnotu, lze později snadno identifikovat, v jakém stavu se přístroj nachází.

Deklarace:

public Boolean CmdGetStatus(out int dev_status)

dev_status Int s platným rozsahem 0 až 255. Pokud je -1, čtení se nepodařilo a i výstupem instrukce je false.

Příklad:

if (MyDevice.CmdGetStatus(out int sts))
    Console.WriteLine($"Status is {sts}");
else
    MessageBox.Show("Error");

Výstup:

Status is 42

CmdSetStatus() - nastavení statusu zařízení

Deklarace:

public Boolean CmdSetStatus(byte dev_status)

Příklad:

if (MyDevice.CmdSetStatus(42))
    Console.WriteLine("Ok");
else
    MessageBox.Show("Error");

Výstup:

Ok