Exemple #1
0
    private void DeviceRead(Stream stream)
    {
        if (_Stream == null)
        {
            throw new InvalidDataException("Cannot read to null stream");
        }

        //장비에서 변수값만큼 데이터를 읽어옵니다.
        var buffer = new byte[10];
        int read   = _Stream.Read(buffer, 0, 10);

        if (read != 0)
        {
            //동기화가 된 버퍼일 경우 버퍼읽기로 넘어감
            if (buffer[0] == 165 && buffer[9] == 90)
            {
                bufferManager.BufferRead(buffer);
            }
            //동기화가 안됐을 경우 동기화를 위해 버퍼 1byte씩 넘김
            //조건넣어서 바로 맞추려는 것보다 1byte씩 동기화용 버퍼읽기가 효과적임
            else
            {
                print(_Stream.Read(buffer, 0, 1).ToString());
            }
        }
    }