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); }
//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); }