public void ArccCheckBinaryInputDumpEvent() { const string testMotherboardId = "TestMotherboard"; var arccProcessor = new ArccHardwareDataProcessor(testMotherboardId); // Длина пакета команды модулю кнопок - 5 байт var testDumpButtonsCommandForArccHardware = new byte[] { (byte)ArccModuleType.BinaryInput, // 2 - признак группы плат кнопочный ввод 2, // ID платы (byte)ArccBinaryInputCommand.DumpAllLines, // команда. 2 - дамп всех клавиш 0, // произвольные данные 0 // произвольные данные }; var dumpEvent = new DumpEvent { Hardware = new ControlProcessorHardware { MotherBoardId = testMotherboardId, ModuleType = HardwareModuleType.Button, ModuleId = 2 + ArccHardwareDataProcessor.IncreaseModuleIdForBinaryInput, BlockId = 0, ControlId = 100 } }; var byteArray = arccProcessor.ConvertEventToByteArrayForHardware(dumpEvent); Assert.IsTrue(byteArray.SequenceEqual(testDumpButtonsCommandForArccHardware)); }
/// <summary> /// Дамп всех клавиш /// </summary> /// <param name="allHardwareInUse">массив содержит упоминание всех модулей, которые нужно сдампить</param> public void Dump(ControlProcessorHardware[] allHardwareInUse) { // Если не сделать эту задержку, то дамп может не произойти. Почему - не понятно. Thread.Sleep(1000); var dumpEvents = new ControlEventBase[1]; var dumpEvent = new DumpEvent { Hardware = allHardwareInUse[0] }; dumpEvents[0] = dumpEvent; PostOutgoingEvents(dumpEvents); System.Diagnostics.Debug.Print("Dump: " + MotherboardId); }
private void EventListBoxOnSelectedIndexChanged(object sender, EventArgs e) { currentEvent = (DumpEvent)eventListBox.SelectedValue; if (currentEvent == null) { return; } propertyTextArea.Text = "Time: " + currentEvent.Time.ToString("g") + "\nType: " + currentEvent.Type + "\nData count: " + currentEvent.Data.Length; dataDropDown.DataStore = Enumerable.Range(-1, currentEvent.Data.Length + 1).Cast <object>(); if (currentEvent.Data.Any()) { dataDropDown.SelectedIndex = 0; } }