public void ReadSketchList() { string exePath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); //string exePath = Application.StartupPath; SketchVersions = new List <SketchVersion>(); DirectoryInfo dirInfo = new DirectoryInfo(exePath); FileInfo[] files = dirInfo.GetFiles("TapecartFlasher*.hex"); foreach (FileInfo file in files) { string[] list = Path.GetFileNameWithoutExtension(file.Name).Split('_'); if (list.Length != 5) { continue; } SketchVersion.ArduinoType arduinoType = SketchVersion.ArduinoNameToType(list[1]); if (arduinoType == SketchVersion.ArduinoType.None) { continue; // invalid arduino type } int majorVersion; if (!int.TryParse(list[2], out majorVersion)) { continue; // invalid major version } int minorVersion; if (!int.TryParse(list[3], out minorVersion)) { continue; // invalid major version } int apiVersion; if (!int.TryParse(list[4], out apiVersion)) { continue; // invalid major version } SketchVersion version = new SketchVersion(majorVersion, minorVersion, apiVersion, arduinoType); version.Filename = file.Name; SketchVersions.Add(version); SketchVersions.Sort(delegate(SketchVersion x, SketchVersion y) { return(x.SortCompareTo(y)); }); } }
public static ArduinoModel?ArduinoTypeToModel(SketchVersion.ArduinoType arduinoType) { switch (arduinoType) { case SketchVersion.ArduinoType.ARDUINO_UNO: return(ArduinoModel.UnoR3); case SketchVersion.ArduinoType.ARDUINO_NANO: return(ArduinoModel.NanoR3); case SketchVersion.ArduinoType.ARDUINO_MEGA2560: return(ArduinoModel.Mega2560); case SketchVersion.ArduinoType.ARDUINO_PROMICRO: return(ArduinoModel.Micro); } return(null); }
public bool GetArduinoSketchVersion(out int majorVersion, out int minorVersion, out int apiVersion, out SketchVersion.ArduinoType arduinoType) { majorVersion = 0; minorVersion = 0; apiVersion = 0; arduinoType = SketchVersion.ArduinoType.None; if (_serialPort == null) { return(false); } byte[] recvData; _serialPort.ReadTimeout = 15000; // 15 seconds int result = SendCmd(CmdGroups.CMDGROUP_ARDUINO, (byte)ArduinoCmds.ARDUINOCMD_VERSION, null, 4, out recvData); _serialPort.ReadTimeout = CurrentTimeout; if (result != 0) { return(false); } minorVersion = recvData[0]; majorVersion = recvData[1]; apiVersion = recvData[2]; arduinoType = (SketchVersion.ArduinoType)recvData[3]; return(true); }