Ejemplo n.º 1
0
        private void ReprogrammableAdded(CpDeviceVolkano aDevice)
        {
            UserLog.WriteLine(DateTime.Now + ": CpDeviceReprogramList: DeviceVolkano+             Udn{" + aDevice.Udn + "}, MacAddress{" + aDevice.MacAddress + "}");
            CpDeviceReprogrammable device = null;

            lock (iLock)
            {
                if (iDisposed)
                {
                    aDevice.Dispose();

                    return;
                }

                iDeviceListPending.Remove(aDevice);
                if (iDeviceListReprogrammable.ContainsKey(aDevice.MacAddress))
                {
                    iDeviceListReprogrammable[aDevice.MacAddress].SetDevice(aDevice);
                }
                else
                {
                    device = new CpDeviceReprogrammable(aDevice);
                    iDeviceListReprogrammable.Add(aDevice.MacAddress, device);
                }
            }

            if (device != null)
            {
                if (iAdded != null)
                {
                    iAdded(this, device);
                }
            }
        }
Ejemplo n.º 2
0
        private void Removed(CpDeviceReprogramList aList, CpDeviceReprogrammable aDevice)
        {
            CpDeviceFacDef device = null;

            lock (iLock)
            {
                if (iDisposed)
                {
                    return;
                }

                foreach (CpDeviceFacDef d in iDeviceFacDefList)
                {
                    if (d.MacAddress == aDevice.MacAddress)
                    {
                        UserLog.WriteLine(DateTime.Now + ": CpDeviceUpdateList: DeviceUpdateable-             MacAddress{" + aDevice.MacAddress + "}");

                        device = d;
                        iDeviceFacDefList.Remove(d);
                        break;
                    }
                }
            }

            if (device != null)
            {
                if (iRemoved != null)
                {
                    iRemoved(this, device);
                }

                device.Dispose();
            }
        }
Ejemplo n.º 3
0
        private void Added(CpDeviceReprogramList aList, CpDeviceReprogrammable aDevice)
        {
            CpDeviceFacDef device = null;

            lock (iLock)
            {
                if (iDisposed)
                {
                    return;
                }

                UserLog.WriteLine(DateTime.Now + ": CpDeviceUpdateList: DeviceUpdateable+             MacAddress{" + aDevice.MacAddress + "}");

                device = new CpDeviceFacDef(aDevice, iAdapterAddress, iUpdateListener);
                iDeviceFacDefList.Add(device);

                aDevice.Changed += HandleChanged;
            }

            if (device != null)
            {
                if (iAdded != null)
                {
                    iAdded(this, device);
                }
            }
        }
Ejemplo n.º 4
0
        private void HandleChanged(object sender, EventArgs e)
        {
            CpDeviceReprogrammable device        = sender as CpDeviceReprogrammable;
            CpDeviceUpdate         removedDevice = null;
            CpDeviceUpdate         addedDevice   = null;

            Firmware firmware = CheckForSoftwareUpdate(device);

            lock (iLock)
            {
                foreach (CpDeviceUpdate d in iDeviceUpdateList)
                {
                    if (d.MacAddress == device.MacAddress)
                    {
                        if ((firmware == null || d.Status == CpDeviceReprogrammable.EStatus.eOff) && !d.Updating)
                        {
                            UserLog.WriteLine(DateTime.Now + ": CpDeviceUpdateList: DeviceUpdateable-             MacAddress{" + device.MacAddress + "}");

                            removedDevice = d;
                            iDeviceUpdateList.Remove(removedDevice);
                            break;
                        }
                        else
                        {
                            return;
                        }
                    }
                }

                if (removedDevice == null && firmware != null && device.Status != CpDeviceReprogrammable.EStatus.eOff)
                {
                    UserLog.WriteLine(DateTime.Now + ": CpDeviceUpdateList: DeviceUpdateable+             MacAddress{" + device.MacAddress + "}");

                    addedDevice = new CpDeviceUpdate(device, firmware, iCache, iAdapterAddress, iUpdateListener);
                    iDeviceUpdateList.Add(addedDevice);
                }
            }

            if (removedDevice != null)
            {
                if (iRemoved != null)
                {
                    iRemoved(this, removedDevice);
                }

                removedDevice.Dispose();
            }

            if (addedDevice != null)
            {
                if (iAdded != null)
                {
                    iAdded(this, addedDevice);
                }
            }
        }
Ejemplo n.º 5
0
        private void HandleChanged(object sender, EventArgs e)
        {
            CpDeviceReprogrammable device        = sender as CpDeviceReprogrammable;
            CpDeviceAdvanced       removedDevice = null;
            CpDeviceAdvanced       addedDevice   = null;

            lock (iLock)
            {
                foreach (CpDeviceAdvanced d in iDeviceListAdvanced)
                {
                    if (d.MacAddress == device.MacAddress)
                    {
                        if (d.Status == CpDeviceReprogrammable.EStatus.eOff && !d.Updating)
                        {
                            UserLog.WriteLine(DateTime.Now + ": CpDeviceAdvancedList: DeviceAdvanced-             MacAddress{" + device.MacAddress + "}");

                            removedDevice = d;
                            iDeviceListAdvanced.Remove(removedDevice);
                            break;
                        }
                        else
                        {
                            return;
                        }
                    }
                }

                if (removedDevice == null && device.Status != CpDeviceReprogrammable.EStatus.eOff)
                {
                    UserLog.WriteLine(DateTime.Now + ": CpDeviceAdvancedList: DeviceAdvanced+             MacAddress{" + device.MacAddress + "}");

                    addedDevice = new CpDeviceAdvanced(device, iVersionReader.GetDeviceVariant(device.PcbNumberList), iAdapterAddress, iUpdateListener);
                    iDeviceListAdvanced.Add(addedDevice);
                }
            }

            if (removedDevice != null)
            {
                if (iRemoved != null)
                {
                    iRemoved(this, removedDevice);
                }

                removedDevice.Dispose();
            }

            if (addedDevice != null)
            {
                if (iAdded != null)
                {
                    iAdded(this, addedDevice);
                }
            }
        }
Ejemplo n.º 6
0
        public CpDeviceFacDef(CpDeviceReprogrammable aDevice, IPAddress aAdapterAddress, IUpdateListener aUpdateListener)
        {
            iLock           = new object();
            iAdapterAddress = aAdapterAddress;

            iDevice          = aDevice;
            iDevice.Changed += HandleChanged;

            iUpdateListener = aUpdateListener;

            iUglyname = string.Format("linn-{0}", aDevice.MacAddress.Replace(":", "").Substring(6, 6));
        }
Ejemplo n.º 7
0
        private Firmware CheckForSoftwareUpdate(CpDeviceReprogrammable aDevice)
        {
            Firmware firmware = iVersionReader.GetFirmware(aDevice.Model, aDevice.PcbNumberList);

            if (firmware != null)
            {
                if (aDevice.IsFallback || firmware.CompareTo(aDevice.SoftwareVersion) > 0 || aDevice.SoftwareVersion.CompareTo(firmware.Version) > 0)
                {
                    return(firmware);
                }
            }

            return(null);
        }
Ejemplo n.º 8
0
        //private void Removed(CpDeviceReprogramList aList, CpDeviceReprogrammable aDevice)
        private void Removed(object sender, CpDeviceReprogramListRepeater.CpDeviceReprogrammableEventArgs e)
        {
            CpDeviceReprogrammable aDevice = e.Device;
            CpDeviceUpdate         device  = null;

            lock (iLock)
            {
                if (iDisposed)
                {
                    return;
                }

                foreach (CpDeviceReprogrammable d in iPendingList)
                {
                    if (d.Udn == aDevice.Udn)
                    {
                        iPendingList.Remove(d);

                        aDevice.Changed -= HandleChanged;

                        break;
                    }
                }

                foreach (CpDeviceUpdate d in iDeviceUpdateList)
                {
                    if (d.MacAddress == aDevice.MacAddress)
                    {
                        UserLog.WriteLine(DateTime.Now + ": CpDeviceUpdateList: DeviceUpdateable-             MacAddress{" + aDevice.MacAddress + "}");

                        device = d;

                        iDeviceUpdateList.Remove(d);

                        break;
                    }
                }
            }

            if (device != null)
            {
                if (iRemoved != null)
                {
                    iRemoved(this, device);
                }

                device.Dispose();
            }
        }
Ejemplo n.º 9
0
        private void RemovedHandler(CpDeviceReprogramList aList, CpDeviceReprogrammable aDevice)
        {
            lock (iLock)
            {
                if (iDisposed)
                {
                    return;
                }
            }

            if (Removed != null)
            {
                Removed(this, new CpDeviceReprogrammableEventArgs(aDevice));
            }
        }
Ejemplo n.º 10
0
        public CpDeviceAdvanced(CpDeviceReprogrammable aDevice, string aVariant, IPAddress aAdapterAddress, IUpdateListener aUpdateListener)
        {
            iLock     = new object();
            iDisposed = false;

            iDevice                  = aDevice;
            iDevice.Changed         += HandleChanged;
            iDevice.ProgressChanged += HandleProgressChanged;
            iDevice.MessageChanged  += HandleMessageChanged;

            iVariant = aVariant;

            iAdapterAddress = aAdapterAddress;
            iUpdateListener = aUpdateListener;

            iUglyname = string.Format("linn-{0}", aDevice.MacAddress.Replace(":", "").Substring(6, 6));
        }
Ejemplo n.º 11
0
        public CpDeviceUpdate(CpDeviceReprogrammable aDevice, Firmware aFirmware, IFirmwareManager aFirmwareManager, IPAddress aAdapterAddress, IUpdateListener aUpdateListener)
        {
            iLock           = new object();
            iDisposed       = false;
            iAdapterAddress = aAdapterAddress;

            iDevice                  = aDevice;
            iDevice.Changed         += HandleChanged;
            iDevice.ProgressChanged += HandleProgressChanged;
            iDevice.MessageChanged  += HandleMessageChanged;

            iUpdateListener = aUpdateListener;

            iUglyname = string.Format("linn-{0}", aDevice.MacAddress.Replace(":", "").Substring(6, 6));

            iFirmware        = aFirmware;
            iFirmwareManager = aFirmwareManager;
        }
Ejemplo n.º 12
0
        //private void Added(CpDeviceReprogramList aList, CpDeviceReprogrammable aDevice)
        private void Added(object sender, CpDeviceReprogramListRepeater.CpDeviceReprogrammableEventArgs e)
        {
            CpDeviceReprogrammable aDevice = e.Device;
            CpDeviceUpdate         device  = null;

            lock (iLock)
            {
                if (iDisposed)
                {
                    return;
                }

                if (iVersionInfoAvailable)
                {
                    Firmware firmware = CheckForSoftwareUpdate(aDevice);
                    if (firmware != null)
                    {
                        UserLog.WriteLine(DateTime.Now + ": CpDeviceUpdateList: DeviceUpdateable+             MacAddress{" + aDevice.MacAddress + "}");

                        device = new CpDeviceUpdate(aDevice, firmware, iCache, iAdapterAddress, iUpdateListener);
                        iDeviceUpdateList.Add(device);
                    }
                }

                iPendingList.Add(aDevice);

                aDevice.Changed += HandleChanged;
            }

            if (device != null)
            {
                if (iAdded != null)
                {
                    iAdded(this, device);
                }
            }
        }
Ejemplo n.º 13
0
 public CpDeviceReprogrammableEventArgs(CpDeviceReprogrammable aDevice)
 {
     iDevice = aDevice;
 }