コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        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();
        }