Beispiel #1
0
        private bool Connect()
        {
            if (!_arduinoComm.Init(_selectedComPort.ComPort, ArduinoCommunication.DEFAULT_BAUDRATE, ArduinoCommunication.DEFAULT_TIMEOUT, true))
            {
                _logging.Error(MODUL_NAME, "ConnectBtn_Click", $"error connecting to Arduino");
                Helper.ControlInvokeRequired(FlasherVersionTb, () =>
                {
                    FlasherVersionTb.Text = "Error connecting to arduino";
                });
                return(false);
            }

            int majorVersion = 0;
            int minorVersion = 0;
            int apiVersion   = 0;

            SketchVersion.ArduinoType arduinoType;
            _currentSketchVersion = null;

            Debug.WriteLine("GetArduinoSketchVersion");
            if (!_arduinoComm.GetArduinoSketchVersion(out majorVersion, out minorVersion, out apiVersion, out arduinoType))
            {
                _logging.Error(MODUL_NAME, "ConnectBtn_Click", $"error reading Arduino sketch version");
                Helper.ControlInvokeRequired(FlasherVersionTb, () =>
                {
                    FlasherVersionTb.Text = "Error reading Arduino sketch version";
                });
                return(false);
            }

            _currentSketchVersion = new SketchVersion(majorVersion, minorVersion, apiVersion, arduinoType);

            Helper.ControlInvokeRequired(FlasherVersionTb, () =>
            {
                FlasherVersionTb.Text =
                    $"Arduino: Version={majorVersion}.{minorVersion}, " +
                    $"API-Version={apiVersion}, " +
                    $"Type={SketchVersion.ArduinoTypeToName(arduinoType)}";
            });

            Debug.WriteLine("GetTapecartInfo");
            _tapecartInfo = _arduinoComm.GetTapecartInfo();
            if (_tapecartInfo == null)
            {
                _logging.Error(MODUL_NAME, "ConnectBtn_Click", $"error reading tapecart info");
                Helper.ControlInvokeRequired(TapecartVersionTb, () =>
                {
                    TapecartVersionTb.Text = "Error reading Tapecart info";
                });
                return(true);
            }

            Helper.ControlInvokeRequired(TapecartVersionTb, () =>
            {
                TapecartVersionTb.Text =
                    $"Name={_tapecartInfo.TCrtName}, TotalSize={_tapecartInfo.TotalSize:X6}h, " +
                    $"PageSize={_tapecartInfo.PageSize:X}h, ErasePages={_tapecartInfo.ErasePages:X}h";
            });
            return(true);
        }
Beispiel #2
0
        //public bool SetCmdMode()
        //{
        //	byte[] cmd = new byte[] { CMD_PREFIX, (byte)CmdGroups.CMDGROUP_ARDUINO, (byte)ArduinoCmds.ARDUINOCMD_START_CMDMODE };
        //	return true;
        //}

        public TapecartInfo GetTapecartInfo()
        {
            if (_serialPort == null)
            {
                return(null);
            }

            int result = SendCmd(CmdGroups.CMDGROUP_ARDUINO, (int)ArduinoCmds.ARDUINOCMD_START_CMDMODE);

            if (result != 0)
            {
                return(null);
            }

            TapecartInfo info = new TapecartInfo();

            byte[] recvData;
            result = SendCmd(CmdGroups.CMDGROUP_TAPECART, (int)TapecartCmds.CMD_READ_DEVICEINFO, null, null, out recvData);
            if (result != 0 || recvData?.Length == 0)
            {
                return(null);
            }
            info.TCrtName = "";
            for (int i = 0; i < recvData.Length; i++)
            {
                info.TCrtName += (char)recvData[i];
            }
            info.TCrtName = info.TCrtName.Trim();

            result = SendCmd(CmdGroups.CMDGROUP_TAPECART, (int)TapecartCmds.CMD_READ_DEVICESIZES, null, 7, out recvData);
            if (result != 0)
            {
                return(null);
            }
            info.TotalSize  = (int)FromBuffer_u24(recvData, 0);
            info.PageSize   = FromBuffer_u16(recvData, 3);
            info.ErasePages = FromBuffer_u16(recvData, 2);

            return(info);
        }