Ejemplo n.º 1
0
        public override byte[] GetBytes()
        {
            var t1 = DateTime.UtcNow;

            Debug.WriteLine($"MessageOperation: ${t1}");
            return(PlcClass <MessageOperation> .GetBytes(this));
        }
Ejemplo n.º 2
0
 public virtual byte[] GetBytes()
 {
     return(PlcClass <Message> .GetBytes(this));
 }
Ejemplo n.º 3
0
 public override byte[] GetBytes()
 {
     return(PlcClass <MessageResponse> .GetBytes(this));
 }
Ejemplo n.º 4
0
        public async Task Reader(NetworkStream stream, CancellationToken token)
        {
            Debug.WriteLine("Запуск PLC Reader");
            while (!token.IsCancellationRequested)
            {
                byte[]  messageBytes;
                Message header;
                try {
                    var headerBytes = await ReadFromStreamAsync(PlcClass <Message> ._Size, stream, token);

                    header = PlcClass <Message> .GetMessage(headerBytes);

                    switch (header.Type)
                    {
                    case Messages.CURRENT_DATA: {
                        var bodyBytes = await ReadFromStreamAsync(PlcClass <MessageCyclic> ._Size - PlcClass <Message> ._Size, stream, token);

                        messageBytes = Combine(headerBytes, bodyBytes);
                    }
                    break;

                    case Messages.ERRORS_WARNINGS: {
                        var bodyBytes = await ReadFromStreamAsync(PlcClass <MessageErrors> ._Size - PlcClass <Message> ._Size, stream, token);

                        messageBytes = Combine(headerBytes, bodyBytes);
                    }
                    break;

                    case Messages.SERVICE:
                    {
                        var bodyBytes = await ReadFromStreamAsync(154 - PlcClass <Message> ._Size, stream, token);
                    }
                        continue;

                    case Messages.AXIS_SERVICE:
                    {
                        var bodyBytes = await ReadFromStreamAsync(271 - PlcClass <Message> ._Size, stream, token);
                    }
                        continue;

                    default: continue;
                    }
                }

                catch (OperationCanceledException) {
                    return;
                }
                catch (Exception e) {
                    Debug.WriteLine(
                        $"Reader() Exception{Environment.NewLine}{e.Message}{Environment.NewLine}{e.StackTrace}");
                    Task.Run(Connect);
                    return;
                }

                try
                {
                    switch (header.Type)
                    {
                    case Messages.CURRENT_DATA:
                    {
                        var message = PlcClass <MessageCyclic> .GetMessage(messageBytes);

                        Zones[message.Zone].Update(message);
                    }
                    break;

                    case Messages.ERRORS_WARNINGS:
                    {
                        var message = PlcClass <MessageErrors> .GetMessage(messageBytes);

                        Zones[message.Zone].Update(message);
                    }
                    break;
                    }
                }
                catch (Exception e) {
                    Debug.WriteLine(
                        $"Reader() Exception{Environment.NewLine}{e.Message}{Environment.NewLine}{e.StackTrace}");
                }
            }
        }
Ejemplo n.º 5
0
 public override byte[] GetBytes()
 {
     return(PlcClass <MessageCyclic> .GetBytes(this));
 }
Ejemplo n.º 6
0
 public override byte[] GetBytes()
 {
     return(PlcClass <MessageChangeMode> .GetBytes(this));
 }