Vlastní driver
Driver je .NET knihovna (DLL). QInsight ji objeví automaticky — stačí, aby
třída implementovala rozhraní IDriverBase a DLL ležela ve složce
Drivers vedle QInsight.exe. Žádná další registrace není potřeba.
Kostra driveru
Prakticky se dědí z hotové základní třídy DriverBase, která obstará
společné věci (protokoly, stavy, nastavení):
public class MyDeviceDriver : DriverBase, ITransportSource<byte[]>
{
public MyDeviceDriver() // bezparametrový konstruktor je povinný
{
Specification = new SpecificationBase
{
Name = "MyDeviceDriver",
Label = "My Device",
};
}
public override void SetConfiguration()
{
// rozparsovat RawSettings ("klíč=hodnota;...") do vlastních polí
}
public override async Task StartAsync(CancellationToken ct)
{
// otevřít spojení, spustit čtecí smyčku,
// přijatá data předávat protokolům
}
public override async Task StopAsync(CancellationToken ct)
{
// ukončit komunikaci a uvolnit spojení
}
public override void Send<T>(T data) { /* odeslání dat zařízení */ }
public override Task SendAsync<T>(T data, CancellationToken ct)
=> Task.Run(() => Send(data), ct);
public override void Dispose() { /* úklid */ }
}
ITransportSource<T> deklaruje typ dat, který driver předává protokolům
(byte[] pro bajtové proudy, CanFrame pro CAN rámce, …). Nemá žádné
členy — slouží jen k tomu, aby Project Configuration nabídla k driveru
pouze protokoly stavěné na stejné T (nekompatibilní se zašedí). Driver
bez deklarace se bere jako neomezený.
O stavu driver informuje voláním SetState(...) — stav se propisuje do
okna Logs i do UI.
Šablonu nastavení si driver nese sám: přepište property
DefaultRawSettings a vraťte řetězec se všemi parametry
a reprezentativními hodnotami — předvyplní se uživateli při přidání
driveru v Project Configuration.
Volitelné schopnosti
Podle potřeby driver implementuje další rozhraní:
ITransportSource<T>— deklaruje typ přenášených dat pro kompatibilitu protokolů (viz kostra výše),IReplayDriver— driver umí přehrávat záznam (pauza, seek, rychlost…),IProtocolVariableSinkDriver— driver hodnoty odebírá (např. logger),IProtocolVariableCommandDriver— driver přijímá příkazy proměnných.
Nasazení
Zkompilovanou DLL nakopírujte do složky Drivers. Po restartu QInsight se
driver objeví v nabídce Home → Project Configuration → Drivers.
Do projektu se ukládá jen reference (jméno + verze), takže projekt lze
přenést na jiný počítač se stejnou sadou driverů.
Dále
Vlastní protokol — funkční dvojice driver + protokol pak najdete ve dvou kapitolách: nejmenší možnou v Ukázce ISS a plný vzor včetně zápisu v Ukázce teploměr.

