/// <summary> /// Серелизация класса /// </summary> private void Сlass_Deserialization(byte[] date) { try { logger.Info("Формирование класса:"); Stream stream = new MemoryStream(date); BinaryFormatter formatter = new BinaryFormatter(); metaClass = (MetaClassForStructandtherdata)formatter.Deserialize(stream); logger.Info("Сформирован мета-класс"); //После обработки статус меняется на свободный SignalFormedMetaClass?.Invoke(metaClass.struct_which_need_transfer); // 2.Вызов события logger.Info("Вызвано события на изменения"); //Контрольная сумма Crc16 crc16 = new Crc16(); byte[] crc16bytes = crc16.ComputeChecksumBytes(date); cr16 = crc16.convertoshort(crc16bytes); logger.Info("Сформирована контрольная сумма"); slave.DataStore.HoldingRegisters[1] = SlaveState.havechecktotime; logger.Info("В регистр состояние готов принимать пакеты" + slave.DataStore.HoldingRegisters[1]); } catch (Exception ex) { logger.Error(ex); Console.WriteLine(ex); } }
//Определение класса public void ExecutionProcessingReguest(object struct_which_need_transfer) { if (struct_which_need_transfer is MMS) { MMS ms = (MMS)struct_which_need_transfer; testSendStruct = ms.testSendStruct; test2SendStruct = ms.test2SendStruct; SignalFormedMetaClass?.Invoke(ms); } }
public void ExecutionProcessingReguest(object struct_which_need_transfer) { if (struct_which_need_transfer is VMS) { VMS vm = (VMS)struct_which_need_transfer; this.test3SendStruct = vm.test3SendStruct; this.test4SendStruct = vm.test4SendStruct; SignalFormedMetaClass?.Invoke(vm); } }