/// <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));
        }
Exemplo n.º 2
0
        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);
        }