public void OnSeaLevelDigitalOutput(DigitalOutputDevice digitalOutput) { var outputs = BitConverter.GetBytes(Convert.ToInt32(string.Join("", DigitalOutput.Select(c => Convert.ToInt32(c.Value))), 2)); SM_WriteDigitalOutputs(0, DigitalOutput.Count, outputs); if (SeaLevelDigitalOutput != null) { SeaLevelDigitalOutput.Invoke(this, digitalOutput); } }
private void OnSeaLevelDigitalOutputEvent(object sender, DigitalOutputDevice digitalOutput) { var seaio420Device = (SeaLevel420Device)sender; var seaio420Index = _deviceRepository.SeaMaxDeviceRepository.SeaLevel420Device.IndexOf(seaio420Device); var digitaloutputindex = seaio420Device.DigitalOutput.IndexOf(digitalOutput); var seaio420 = DeviceViewModel.SeaMaxViewModelRepository.SeaLevel420[seaio420Index]; var seaio420Digitaloutput = DeviceViewModel.SeaMaxViewModelRepository.SeaLevel420[seaio420Index].DigitalOutput[digitaloutputindex]; seaio420Digitaloutput.DigitalOutputEvent -= seaio420.OnSeaLevelDigitalOutput; seaio420.SeaLevelDigitalOutput -= DeviceViewModel.SeaMaxViewModelRepository.OnSeaIoDigitalOutput <SeaLevel420>; DeviceViewModel.SeaMaxViewModelRepository.SeaLevel420[seaio420Index].DigitalOutput[digitaloutputindex].Value = digitalOutput.Value; seaio420Digitaloutput.DigitalOutputEvent += seaio420.OnSeaLevelDigitalOutput; seaio420.SeaLevelDigitalOutput += DeviceViewModel.SeaMaxViewModelRepository.OnSeaIoDigitalOutput <SeaLevel420>; }