예제 #1
0
        public byte[] ReadSramPage()
        {
            Console.WriteLine("ReadSramPage");

            byte[] cmdData = new byte[] {
                (byte)Commands.SramRead
            };

            StxEtxPacket packet = new StxEtxPacket(cmdData);

            byte[]    bytes        = packet.GetBytes();
            uint      bytesWritten = 0;
            FT_STATUS status       = _Ftdi.Write(bytes, bytes.Length, ref bytesWritten);

            if (status != FT_STATUS.FT_OK)
            {
                throw new Exception("Error writing data (ReadSramPage)");
            }
            if (bytesWritten != bytes.Length)
            {
                throw new Exception("Wrong number of bytes written (ReadSramPage)");
            }

            return(ReceiveResponse());
        }
예제 #2
0
        public FirmwareIdentity ReadVersion()
        {
            byte[] cmdData = new byte[] {
                (byte)Commands.ReadVersion
            };

            StxEtxPacket packet = new StxEtxPacket(cmdData);

            byte[]    bytes        = packet.GetBytes();
            uint      bytesWritten = 0;
            FT_STATUS status       = _Ftdi.Write(bytes, bytes.Length, ref bytesWritten);

            if (status != FT_STATUS.FT_OK)
            {
                throw new Exception("Error writing data (ReadVersion)");
            }
            if (bytesWritten != bytes.Length)
            {
                throw new Exception("Wrong number of bytes written (ReadVersion)");
            }

            byte[] result = ReceiveResponse();

            _FirmwareIdentity.Id    = result[0];
            _FirmwareIdentity.Major = result[1];
            _FirmwareIdentity.Minor = result[2];
            _FirmwareIdentity.Debug = result[3];

            return(_FirmwareIdentity);
        }
예제 #3
0
        public UInt32 GetSramSize()
        {
            byte[] cmdData = new byte[] {
                (byte)Commands.GetSramAddrWidth
            };

            StxEtxPacket packet = new StxEtxPacket(cmdData);

            byte[]    bytes        = packet.GetBytes();
            uint      bytesWritten = 0;
            FT_STATUS status       = _Ftdi.Write(bytes, bytes.Length, ref bytesWritten);

            if (status != FT_STATUS.FT_OK)
            {
                throw new Exception("Error writing data (GetFlashSize)");
            }
            if (bytesWritten != bytes.Length)
            {
                throw new Exception("Wrong number of bytes written (GetFlashSize)");
            }

            byte[] resp = ReceiveResponse();
            return((UInt32)(Math.Pow(2, resp[0])));
        }