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; } }
private void InitializeDevice( MicroXDevice newDevice, MicroXDevice genericDevice) { hookUpDevice(newDevice, genericDevice); killOldDevice(genericDevice); }
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()); }
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); }
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); }
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); }
public FirmwareUploadDone(MicroXDevice device) : base(device) { }
public MicroXOpCode(MicroXDevice device) : base(device) { }
public DataPacket(MicroXDevice device) : base(device) { }
public Download(MicroXDevice device) : base(device) { }
public TimerRun(MicroXDevice device) : base(device) { }
public Status(MicroXDevice device) : base(device) { }
public MicroXOpCodeWrapper(MicroXDevice parent) : base(parent) { }
public SetBoomerang(MicroXDevice device) : base(device) { }
public MicroXBattery(MicroXDevice device) : base(device) { }
protected virtual bool checkPrerequisites(MicroXDevice genericDevice) { return(MinimumRequiredFirmwareVersion <= genericDevice.Version.FirmwareVersion && genericDevice.Configuration.PCBAssembly == Bits && genericDevice.Configuration.DeviceType == Type); }
public Setup(MicroXDevice device) : base(device) { }
private void hookUpDevice(MicroXDevice newDevice, MicroXDevice genericDevice) { newDevice.Offline = false; newDevice.InitializeInterfacer(genericDevice.UID, genericDevice.OpCodes.DeviceIO); newDevice.GetStatus(); }
private void killOldDevice(MicroXDevice device) { device.Dispose(); }
public MicroXHeaderNoParse(MicroXDevice device) : base(device) { }
public virtual bool CanCreateFrom(MicroXDevice device) { return(device.Configuration.DeviceType == Type && device.Version.FirmwareVersion >= MinimumRequiredFirmwareVersion); }
public DefaultCalibration(MicroXDevice device) : base(device) { }
public SetDefinedSensor(MicroXDevice device) : base(device) { }