/// <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 SlaveSyncSruct() { var loggerconf = new XmlLoggingConfiguration("NLog.config"); logger = LogManager.GetCurrentClassLogger(); PropertiesSetting propertiesSetting = new PropertiesSetting(); slaveID = 1; serialPort = new SerialPort(propertiesSetting.PortName); serialPort.PortName = propertiesSetting.PortName; serialPort.BaudRate = propertiesSetting.BaudRate; serialPort.DataBits = propertiesSetting.DataBits; serialPort.Parity = Parity.None; serialPort.StopBits = StopBits.One; receivedpacket = new byte[count_send_packet * 2]; receive_packet_data = new ushort[count_send_packet]; //data_byte= new byte[count_send_packet*2]; metaClass = new MetaClassForStructandtherdata(); }