Beispiel #1
0
    public bool Read(out string value)
    {
        if (_offset + 1 > _len)
        {
            ViDebuger.Warning("Read Fail string");
            value   = string.Empty;
            _offset = _len;
            return(false);
        }
        Int32 len = ViBitConverter.ToUInt8(_buffer, _offset);

        _offset += 1;
        if (len == 255)
        {
            if (_offset + 2 > _len)
            {
                ViDebuger.Warning("Read Fail string");
                value   = string.Empty;
                _offset = _len;
                return(false);
            }
            len      = ViBitConverter.ToUInt16(_buffer, _offset);
            _offset += 2;
        }
        value = ViBitConverter.ToString(_buffer, _offset, len);
        _Print("string", value);
        _offset += len;
        return(true);
    }
Beispiel #2
0
    bool UpdateStream(out UInt16 flag, out ViIStream IS)
    {
        flag = 0;
        IS   = null;
        NetworkStream stream = _client.GetStream();

        if (_receiver.Size == 0)
        {
            if (_client.Available < RECEIVE_HEAD_SIZE)
            {
                return(false);
            }
            SetConnectState(true);
            int    bufferSize = stream.Read(_receiveHead, 0, RECEIVE_HEAD_SIZE);
            UInt16 flag_      = ViBitConverter.ToUInt16(_receiveHead, 0);
            UInt32 size       = ViBitConverter.ToUInt32(_receiveHead, RECEIVE_SIZE_OFFSET);
            _receiver.SetCompleteSize(flag_, size);
        }
        _receiver.Read(stream);
        if (_receiver.IsComplete == false)
        {
            return(false);
        }
        _IS.Init(_receiver.Data, _receiver.Size);
        _receiver.Clear();
        IS = _IS;
        return(true);
    }
Beispiel #3
0
 public bool Read(out Int8 value)
 {
     if (_offset + 1 > _len)
     {
         ViDebuger.Warning("Read Fail Int8");
         value = (Int8)0;
         return(false);
     }
     value = ViBitConverter.ToInt8(_buffer, _offset);
     _Print("Int8", value);
     _offset += 1;
     return(true);
 }
Beispiel #4
0
    public ViTcpClient()
    {
        UInt16 index = 0;
        UInt32 size  = 0;

        _indexBytes  = ViBitConverter.GetBytes(index);
        _lengthBytes = ViBitConverter.GetBytes(size);
        _receiveHead = new byte[RECEIVE_HEAD_SIZE];

        _OS.Append(_indexBytes);
        _OS.Append(_lengthBytes);

        _receiver = new ViTcpCLientReceiver(RECEIVE_BYTES_SIZE);
    }
Beispiel #5
0
 public bool Read(out Int32 value)
 {
     if (_offset + 4 > _len)
     {
         ViDebuger.Warning("Read Fail Int32");
         value   = 0;
         _offset = _len;
         return(false);
     }
     value = ViBitConverter.ToInt32(_buffer, _offset);
     _Print("Int32", value);
     _offset += 4;
     return(true);
 }
Beispiel #6
0
 public bool Read(out UInt16 value)
 {
     if (_offset + 2 > _len)
     {
         ViDebuger.Warning("Read Fail UInt16");
         value   = (UInt16)0;
         _offset = _len;
         return(false);
     }
     value = ViBitConverter.ToUInt16(_buffer, _offset);
     _Print("UInt16", value);
     _offset += 2;
     return(true);
 }
Beispiel #7
0
 public bool Read(out double value)
 {
     if (_offset + 8 > _len)
     {
         ViDebuger.Warning("Read Fail double");
         value   = 0;
         _offset = _len;
         return(false);
     }
     value = ViBitConverter.ToDouble(_buffer, _offset);
     _Print("double", value);
     _offset += 8;
     return(true);
 }
Beispiel #8
0
 public bool Read(out float value)
 {
     if (_offset + 4 > _len)
     {
         ViDebuger.Warning("Read Fail float");
         value   = 0;
         _offset = _len;
         return(false);
     }
     value = ViBitConverter.ToFloat(_buffer, _offset);
     _Print("float", value);
     _offset += 4;
     return(true);
 }
Beispiel #9
0
 public bool Read(out Int64 value)
 {
     if (_offset + 8 > _len)
     {
         ViDebuger.Warning("Read Fail Int64");
         value   = (Int64)0;
         _offset = _len;
         return(false);
     }
     value = ViBitConverter.ToInt64(_buffer, _offset);
     _Print("Int64", value);
     _offset += 8;
     return(true);
 }
Beispiel #10
0
 public void Update()
 {
     try
     {
         NetworkStream stream = _client.GetStream();
         _lengthBytes = ViBitConverter.GetBytes(_OS.Length - SEND_HEAD_SIZE);
         _OS._SetValue(SEND_SIZE_OFFSET, _lengthBytes, _lengthBytes.Length);
         stream.Write(_OS.Cache, 0, _OS.Length);
         _OS.Reset();
         _OS.Append(_indexBytes);
         _OS.Append(_lengthBytes);
     }
     catch (System.ObjectDisposedException ex)
     {
         SetConnectState(false);
     }
     catch (Exception ex)
     {
         SetConnectState(false);
     }
 }