Пример #1
0
        protected void ReportDevice(MicroXDevice device, DeviceStateEnum state)
        {
            if (!(device is T))
            {
                return;
            }

            var e = new DeviceEventArgs <T>
            {
                Device = device as T,
                State  = state
            };

            switch (state)
            {
            case DeviceStateEnum.RECONNECTED:
            case DeviceStateEnum.FOUND:
                if (OnDeviceConnected != null)
                {
                    OnDeviceConnected(this, e);
                }
                break;

            case DeviceStateEnum.REMOVED:
                if (OnDeviceRemoved != null)
                {
                    OnDeviceRemoved(this, e);
                }
                break;

            default:
                break;
            }
        }
Пример #2
0
 private void InitializeDevice(
     MicroXDevice newDevice,
     MicroXDevice genericDevice)
 {
     hookUpDevice(newDevice, genericDevice);
     killOldDevice(genericDevice);
 }
Пример #3
0
        private Type lookUpCorrectType(MicroXDevice device)
        {
            Assembly asm        = this.GetType().Assembly;
            var      candidates = (from type in asm.GetTypes()
                                   where isOfType(type) &&
                                   isOfSubtype(type, device.Configuration.DeviceType) &&
                                   isVersionCompatible(type, device.Version.FirmwareVersion)
                                   select type).ToArray();

            return(candidates.OrderByDescending(t => getMinFirmwareVersion(t)).First());
        }
Пример #4
0
        public virtual void CreateFromAndReport(MicroXDevice genericDevice)
        {
            if (!CanCreateFrom(genericDevice))
            {
                throw new ArgumentException("Device cannot be created using this interfacer", "device");
            }

            Type type   = lookUpCorrectType(genericDevice);
            T    device = (T)Activator.CreateInstance(type, ParentDeviceManager);

            InitializeDevice(device, genericDevice);
            ReportDevice(device, DeviceStateEnum.FOUND);
        }
Пример #5
0
        public bool AttachToExistingDevice(MicroXDevice microxDevice)
        {
            T existingDevice = checkForExistingDevice(microxDevice);

            if (existingDevice != null)
            {
                existingDevice.Initialize();
                InitializeDevice(existingDevice, microxDevice);
                ReportDevice(existingDevice, DeviceStateEnum.RECONNECTED);
                return(true);
            }

            return(false);
        }
Пример #6
0
        private T checkForExistingDevice(MicroXDevice newDevice)
        {
            if (newDevice != null)
            {
                var existingDevices = ParentDeviceManager.FindDevices <T>(newDevice.Status.SerialNumber);

                foreach (T existingDevice in existingDevices)
                {
                    if (existingDevice.IsOfSameType(newDevice))
                    {
                        if (existingDevice.Offline)
                        {
                            return(existingDevice);
                        }
                        else
                        {
                            throwOnMultipleSerialNumbers();
                        }
                    }
                }
            }

            return(null);
        }
Пример #7
0
 public FirmwareUploadDone(MicroXDevice device)
     : base(device)
 {
 }
Пример #8
0
 public MicroXOpCode(MicroXDevice device)
     : base(device)
 {
 }
Пример #9
0
 public DataPacket(MicroXDevice device)
     : base(device)
 {
 }
Пример #10
0
 public Download(MicroXDevice device)
     : base(device)
 {
 }
Пример #11
0
 public TimerRun(MicroXDevice device)
     : base(device)
 {
 }
Пример #12
0
 public Status(MicroXDevice device)
     : base(device)
 {
 }
Пример #13
0
 public MicroXOpCodeWrapper(MicroXDevice parent)
     : base(parent)
 {
 }
Пример #14
0
 public SetBoomerang(MicroXDevice device)
     : base(device)
 {
 }
Пример #15
0
 public MicroXBattery(MicroXDevice device)
     : base(device)
 {
 }
Пример #16
0
 protected virtual bool checkPrerequisites(MicroXDevice genericDevice)
 {
     return(MinimumRequiredFirmwareVersion <= genericDevice.Version.FirmwareVersion &&
            genericDevice.Configuration.PCBAssembly == Bits &&
            genericDevice.Configuration.DeviceType == Type);
 }
Пример #17
0
 public Setup(MicroXDevice device)
     : base(device)
 {
 }
Пример #18
0
 private void hookUpDevice(MicroXDevice newDevice, MicroXDevice genericDevice)
 {
     newDevice.Offline = false;
     newDevice.InitializeInterfacer(genericDevice.UID, genericDevice.OpCodes.DeviceIO);
     newDevice.GetStatus();
 }
Пример #19
0
 private void killOldDevice(MicroXDevice device)
 {
     device.Dispose();
 }
Пример #20
0
 public MicroXHeaderNoParse(MicroXDevice device)
     : base(device)
 {
 }
Пример #21
0
 public virtual bool CanCreateFrom(MicroXDevice device)
 {
     return(device.Configuration.DeviceType == Type &&
            device.Version.FirmwareVersion >= MinimumRequiredFirmwareVersion);
 }
Пример #22
0
 public DefaultCalibration(MicroXDevice device)
     : base(device)
 {
 }
Пример #23
0
 public SetDefinedSensor(MicroXDevice device)
     : base(device)
 {
 }