/// <summary> /// Reconstruct the database device into an app friendly device object. /// </summary> /// <returns>The device.</returns> /// <param name="db">Db.</param> /// <param name="device">Device.</param> public static Task <IDevice> ReconstructDevice(this IONDatabase db, DeviceRow device) { if (!device.serialNumber.IsValidSerialNumber()) { //throw new Exception("Failed to parse " + device.serialNumber + " into a serial number"); } var serialNumber = device.serialNumber.ParseSerialNumber(); var ret = db.ion.deviceManager.CreateDevice(serialNumber, device.connectionAddress, (EProtocolVersion)device.protocol); ret.name = device.name; return(Task.FromResult(ret)); }
private void setDevEntry(int band, int devType, DeviceEntry de) { appConf.devices[band][devType] = de; DeviceRow dr = blDevices[band]; if (devType == 0) { dr.run = de.name; } else { dr.run2 = de.name; } blDevices.ResetItem(band); }
/// <summary> /// Deconstructs the application's standard device into an ORM friendly object. /// </summary> /// <returns>The device.</returns> /// <param name="device">Device.</param> public static async Task <DeviceRow> DeconstructDevice(this IONDatabase db, IDevice device) { var ret = await db.QueryForUsingSerialNumberAsync(device.serialNumber); if (ret == null) { ret = new DeviceRow() { serialNumber = device.serialNumber.ToString(), protocol = (int)device.protocol.version, connectionAddress = device.connection.address, }; } ret.name = device.name; ret.lastConnected = device.connection.lastSeen; return(ret); }