Пример #1
0
        public void ExecutePackage(Package package)
        {
            _client = new TcpClient();
            _client.Connect(_endPoint);

            if (_client.Connected)
            {
                NetworkStream stream = _client.GetStream();
                stream.Write(package.ByteValue(), 0, package.Length());
            }
            _client.Close();
        }
Пример #2
0
        public string ExecuteQuestion(Package package, bool returnDecimal)
        {
            string response = "";
            _client = new TcpClient();
            _client.Connect(_endPoint);

            if (_client.Connected)
            {
                NetworkStream stream = _client.GetStream();
                stream.Write(package.ByteValue(), 0, package.Length());

                byte[] responseBuffer = new byte[128];
                stream.Read(responseBuffer, 0, responseBuffer.Length);

                int startPosition = findOccurence(responseBuffer, 0x21); // EOF byte
                int endPosition = findOccurence(responseBuffer, 0x1A); // EOF byte

                if(startPosition < endPosition)
                {
                    if (returnDecimal)
                    {
                        startPosition = endPosition - 2;
                    }

                    byte[] data = new byte[endPosition - startPosition];
                    Buffer.BlockCopy(responseBuffer, startPosition, data, 0, data.Length);
                    response = Encoding.ASCII.GetString(data);

                    if(returnDecimal)
                    {
                        response = Convert.ToInt32(response, 16).ToString();
                    }
                }

            }
            _client.Close();

            return response;
        }