private void FetchResource(Object stateInfo)
        {
            bool result = false;

            try
            {
                Uri uri = new Uri(mResource);
                if (uri.Scheme == "file")
                {
                    mBlockData = GetResourceFromUri(mResource);
                }
                else
                {
                    mBlockData = mResDownLoader.AquireResource();
                }
                if (mBlockData != null)
                {
                    // got the data, now calculate the CRC
                    mBlockCRC = CRC16.CRCArray(ref mBlockData);
                    CNXLog.InfoFormat("Block resource aquired length {0} CRC 0x{1:x} ({2})", mBlockData.Length, mBlockCRC, mBlockCRC);
                    result = true;
                }
            }
            catch (Exception e)
            {
                CNXLog.Error("FetchResource:", e);
            }

            BlockStateMachine(result ? BlockEvent.AquireComplete : BlockEvent.AquireFailed);
        }
 private void InitCommon(CANClient client, byte blockId, byte[] blockData)
 {
     mBlockData = blockData;
     //calculate the crc
     mCrc     = CRC16.CRCArray(ref mBlockData);
     mClient  = client;
     mBlockId = blockId;
 }