コード例 #1
0
        internal SetDeviceProgrammingParametersRequest(IMcu mcu)
        {
            var flashMem      = mcu.Flash;
            var eepromMem     = mcu.Eeprom;
            var flashPageSize = flashMem.PageSize;
            var flashSize     = flashMem.Size;
            var epromSize     = eepromMem.Size;

            Bytes     = new byte[22];
            Bytes[0]  = Constants.CmdStkSetDevice;
            Bytes[1]  = mcu.DeviceCode;
            Bytes[2]  = mcu.DeviceRevision;
            Bytes[3]  = mcu.ProgType;
            Bytes[4]  = mcu.ParallelMode;
            Bytes[5]  = mcu.Polling;
            Bytes[6]  = mcu.SelfTimed;
            Bytes[7]  = mcu.LockBytes;
            Bytes[8]  = mcu.FuseBytes;
            Bytes[9]  = flashMem.PollVal1;
            Bytes[10] = flashMem.PollVal2;
            Bytes[11] = eepromMem.PollVal1;
            Bytes[12] = eepromMem.PollVal2;
            Bytes[13] = (byte)((flashPageSize >> 8) & 0x00ff);
            Bytes[14] = (byte)(flashPageSize & 0x00ff);
            Bytes[15] = (byte)((epromSize >> 8) & 0x00ff);
            Bytes[16] = (byte)(epromSize & 0x00ff);
            Bytes[17] = (byte)((flashSize >> 24) & 0xff);
            Bytes[18] = (byte)((flashSize >> 16) & 0xff);
            Bytes[19] = (byte)((flashSize >> 8) & 0xff);
            Bytes[20] = (byte)(flashSize & 0xff);
            Bytes[21] = Constants.SyncCrcEop;
        }
コード例 #2
0
 /// <summary>
 /// Initialize the control view model
 /// </summary>
 public ControlViewModel(IListenerTcp listenerTcp, ITcpClient tcpClient, IMcu mcu)
 {
     SendDeveloperCommand      = new DelegateCommand(DeveloperCommandToMcuAsync);
     StartTcpListenerCommand   = new DelegateCommand(ToggleTcpListener);
     ConnectToTcpServerCommand = new DelegateCommand(ConnectToTcp);
     Mcu         = mcu;
     ListenerTcp = listenerTcp;
     TcpClient   = tcpClient;
 }
コード例 #3
0
 internal EnableProgrammingModeRequest(IMcu mcu)
 {
     byte[] cmdBytes = mcu.CommandBytes[Command.PgmEnable];
     Bytes = new[] {
         Constants.CmdEnterProgrmodeIsp,
         mcu.Timeout,
         mcu.StabDelay,
         mcu.CmdExeDelay,
         mcu.SynchLoops,
         mcu.ByteDelay,
         mcu.PollValue,
         mcu.PollIndex,
         cmdBytes[0],
         cmdBytes[1],
         cmdBytes[2],
         cmdBytes[3]
     };
 }
コード例 #4
0
        public void InitializeDevice()
        {
            Debug.WriteLine("Initialize Device Start");
            Mcu = new AtMega328P();
            Debug.WriteLine("Get STK Sw Major Version ");
            var majorVersion = GetParameterValue(Constants.ParmStkSwMajor);

            Debug.WriteLine("Get STK Sw Minor Version ");
            var minorVersion = GetParameterValue(Constants.ParmStkSwMinor);

            Debug.WriteLine($"Retrieved software version: {majorVersion}.{minorVersion}.");

            Debug.WriteLine("Setting device programming parameters...");
            SendWithSyncRetry(new SetDeviceProgrammingParametersRequest(Mcu));
            var nextByte = ReceiveNext();

            if (nextByte != Constants.RespStkOk)
            {
                throw new ArduinoUploaderException("Unable to set device programming parameters!");
            }
        }
コード例 #5
0
 public Stk500V2BootloaderProgrammer(SerialPortConfig serialPortConfig, IMcu mcu)
     : base(serialPortConfig, mcu)
 {
 }
コード例 #6
0
 public Avr109BootloaderProgrammer(SerialPortConfig serialPortConfig, IMcu mcu)
     : base(serialPortConfig, mcu)
 {
 }
コード例 #7
0
 protected BootloaderProgrammer(IMcu mcu)
 {
     Mcu = mcu;
 }
コード例 #8
0
 internal Stk500V1BootloaderProgrammer(SerialPortConfig serialPortConfig, IMcu mcu)
     : base(serialPortConfig, mcu)
 {
 }
コード例 #9
0
 protected ArduinoBootloaderProgrammer(SerialPortConfig serialPortConfig, IMcu mcu)
     : base(mcu)
 {
     SerialPortConfig = serialPortConfig;
 }