public string arduinoUploading() { isUploading = true; arduinoBoardInterface.CloseArduinoConnection(); arduinoBoardInterface.arduinoDataReceived -= serialData_NewarduinoDataReceived; bool isLocked = true; if (File.Exists(Path.Combine(batchFilePath, arduinoSourceFile) + ".upload")) { while (isLocked) { try { File.Delete(Path.Combine(batchFilePath, arduinoSourceFile) + ".upload"); isLocked = false; } catch { } } //File.Delete(Path.Combine(batchFilePath, arduinoSourceFile) + ".upload"); } Thread.Sleep(500); Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.FileName = Path.Combine(batchFilePath, arduinoSourceFile) + "_Upload.bat"; p.StartInfo.CreateNoWindow = true; //p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; p.Start(); string filename = Path.Combine(batchFilePath, arduinoSourceFile) + ".upload"; string filename2 = Path.Combine(batchFilePath, arduinoSourceFile) + "_temp.upload"; isLocked = true; while (isLocked) { try { File.Move(filename, filename2); isLocked = false; } catch { } } File.Move(filename2, filename); Thread.Sleep(1000); arduinoBoardInterface = new ArduinoBoard(arduinoPort); arduinoBoardInterface.OpenArduinoConnection(); arduinoBoardInterface.arduinoDataReceived += serialData_NewarduinoDataReceived; isUploading = false; string str = filterOutputUpload(File.OpenText(filename).ReadToEnd()); return str; }
public void arduinoStart(string loginName, string aPort, string lID, string cID, string userPermission, ref DateTime date) { lastDevType = "arduino"; startCheckUserTimer(); if (clientUserBuffer != null) { if (clientUserBuffer.FindIndex(p => p.LoginName == loginName) >= 0) { clientUserBuffer.RemoveAll(p => p.LoginName == loginName); clientID--; } } clientID++; lastLabID = lID; lastDevID = cID; AddUserToUserLiveLog(loginName); Console.WriteLine(string.Format("\n{0} , client : {1} , Name : {2}", DateTime.Now.ToShortTimeString(), clientID, loginName)); date = DateTime.Now; if (clientID == 1) { arduinoSourceCodeBuffer = new List<bufferTextList>(); arduinoSerialDataBuffer = new List<bufferTextList>(); clientUserBuffer = new List<bufferUserList>(); bufferUserList newuser = new bufferUserList() { LoginName = loginName, Permission = userPermission, DateIn = date, DateStamp = date }; clientUserBuffer.Add(newuser); if (userPermission == "rw") { arduinoPort = aPort; arduinoSourceFile = getArduinoTempFile(loginName); batchFilePath = createBatchFiles(arduinoSourceFile, aPort); } arduinoBoardInterface = new ArduinoBoard(arduinoPort); arduinoBoardInterface.OpenArduinoConnection(); arduinoBoardInterface.arduinoDataReceived += serialData_NewarduinoDataReceived; return; } if (clientUserBuffer.FindIndex(p => p.LoginName == loginName) >= 0) clientUserBuffer.RemoveAll(p => p.LoginName == loginName); bufferUserList mynewuser = new bufferUserList() { LoginName = loginName, DateIn = date, Permission = userPermission, DateStamp = date }; clientUserBuffer.Add(mynewuser); if (userPermission == "rw") { arduinoPort = aPort; arduinoSourceFile = getArduinoTempFile(loginName); batchFilePath = createBatchFiles(arduinoSourceFile, aPort); } }