-
Notifications
You must be signed in to change notification settings - Fork 2
Dokumentace: Společné funkce
- Ostatní instrukce - verze, sériové číslo, status
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()
.
public bool CmdGetInfo(out SpinelDeviceVersion version);
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");
Description: Quido ETH 4/4
ProductId: 254
HardwareId: 3
SoftwareId: 35
public bool CmdGetSN(out SpinelDeviceSN dev_sn);
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");
S/N: 254
Type: 3569
Factory data: 538444585
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í.
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.
if (MyDevice.CmdGetStatus(out int sts))
Console.WriteLine($"Status is {sts}");
else
MessageBox.Show("Error");
Status is 42
public Boolean CmdSetStatus(byte dev_status)
if (MyDevice.CmdSetStatus(42))
Console.WriteLine("Ok");
else
MessageBox.Show("Error");
Ok