|
|
@ -95,12 +95,7 @@ print('\nWorking\n')
|
|
|
|
|
|
|
|
|
|
|
|
python_ver = sys.version_info[0] # major version - 2 or 3
|
|
|
|
python_ver = sys.version_info[0] # major version - 2 or 3
|
|
|
|
|
|
|
|
|
|
|
|
if python_ver == 2:
|
|
|
|
print("python version " + str(sys.version_info[0]) + "." + str(sys.version_info[1]) + "." + str(sys.version_info[2]))
|
|
|
|
print("python version " + str(sys.version_info[0]) + "." + str(sys.version_info[1]) + "." + str(sys.version_info[2]))
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
print("python version " + str(sys.version_info[0]))
|
|
|
|
|
|
|
|
print("This script only runs under python 2")
|
|
|
|
|
|
|
|
exit()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import platform
|
|
|
|
import platform
|
|
|
|
current_OS = platform.system()
|
|
|
|
current_OS = platform.system()
|
|
|
@ -135,9 +130,9 @@ def get_answer(board_name, cpu_label_txt, cpu_a_txt, cpu_b_txt):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if python_ver == 2:
|
|
|
|
if python_ver == 2:
|
|
|
|
import Tkinter as tk
|
|
|
|
import Tkinter as tk
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
import tkinter as tk
|
|
|
|
import tkinter as tk
|
|
|
|
|
|
|
|
|
|
|
|
def CPU_exit_3(): # forward declare functions
|
|
|
|
def CPU_exit_3(): # forward declare functions
|
|
|
|
|
|
|
|
|
|
|
@ -615,9 +610,12 @@ def get_env(board_name, ver_Marlin):
|
|
|
|
# end - get_env
|
|
|
|
# end - get_env
|
|
|
|
|
|
|
|
|
|
|
|
# puts screen text into queue so that the parent thread can fetch the data from this thread
|
|
|
|
# puts screen text into queue so that the parent thread can fetch the data from this thread
|
|
|
|
import Queue
|
|
|
|
if python_ver == 2:
|
|
|
|
IO_queue = Queue.Queue()
|
|
|
|
import Queue as queue
|
|
|
|
PIO_queue = Queue.Queue()
|
|
|
|
else:
|
|
|
|
|
|
|
|
import queue as queue
|
|
|
|
|
|
|
|
IO_queue = queue.Queue()
|
|
|
|
|
|
|
|
#PIO_queue = queue.Queue() not used!
|
|
|
|
def write_to_screen_queue(text, format_tag = 'normal'):
|
|
|
|
def write_to_screen_queue(text, format_tag = 'normal'):
|
|
|
|
double_in = [text, format_tag]
|
|
|
|
double_in = [text, format_tag]
|
|
|
|
IO_queue.put(double_in, block = False)
|
|
|
|
IO_queue.put(double_in, block = False)
|
|
|
@ -940,9 +938,13 @@ def run_PIO(dummy):
|
|
|
|
raise SystemExit(0) # kill everything
|
|
|
|
raise SystemExit(0) # kill everything
|
|
|
|
|
|
|
|
|
|
|
|
# stream output from subprocess and split it into lines
|
|
|
|
# stream output from subprocess and split it into lines
|
|
|
|
for line in iter(pio_subprocess.stdout.readline, ''):
|
|
|
|
if python_ver == 2:
|
|
|
|
line_print(line.replace('\n', ''))
|
|
|
|
for line in iter(pio_subprocess.stdout.readline, ''):
|
|
|
|
|
|
|
|
line_print(line.replace('\n', ''))
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
for line in iter(pio_subprocess.stdout.readline, b''):
|
|
|
|
|
|
|
|
line = line.decode('utf-8')
|
|
|
|
|
|
|
|
line_print(line.replace('\n', ''))
|
|
|
|
|
|
|
|
|
|
|
|
# append info used to run PlatformIO
|
|
|
|
# append info used to run PlatformIO
|
|
|
|
write_to_screen_queue('\nBoard name: ' + board_name + '\n') # put build info at the bottom of the screen
|
|
|
|
write_to_screen_queue('\nBoard name: ' + board_name + '\n') # put build info at the bottom of the screen
|
|
|
@ -958,21 +960,22 @@ def run_PIO(dummy):
|
|
|
|
|
|
|
|
|
|
|
|
import time
|
|
|
|
import time
|
|
|
|
import threading
|
|
|
|
import threading
|
|
|
|
import Tkinter as tk
|
|
|
|
if python_ver == 2:
|
|
|
|
import ttk
|
|
|
|
import Tkinter as tk
|
|
|
|
import Queue
|
|
|
|
import Queue as queue
|
|
|
|
|
|
|
|
import ttk
|
|
|
|
|
|
|
|
from Tkinter import Tk, Frame, Text, Scrollbar, Menu
|
|
|
|
|
|
|
|
#from tkMessageBox import askokcancel this is not used: removed
|
|
|
|
|
|
|
|
import tkFileDialog as fileDialog
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
import tkinter as tk
|
|
|
|
|
|
|
|
import queue as queue
|
|
|
|
|
|
|
|
from tkinter import ttk, Tk, Frame, Text, Scrollbar, Menu
|
|
|
|
|
|
|
|
from tkinter import filedialog
|
|
|
|
import subprocess
|
|
|
|
import subprocess
|
|
|
|
import sys
|
|
|
|
import sys
|
|
|
|
que = Queue.Queue()
|
|
|
|
que = queue.Queue()
|
|
|
|
#IO_queue = Queue.Queue()
|
|
|
|
#IO_queue = queue.Queue()
|
|
|
|
|
|
|
|
|
|
|
|
from Tkinter import Tk, Frame, Text, Scrollbar, Menu
|
|
|
|
|
|
|
|
from tkMessageBox import askokcancel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import tkFileDialog
|
|
|
|
|
|
|
|
from tkMessageBox import askokcancel
|
|
|
|
|
|
|
|
import tkFileDialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class output_window(Text):
|
|
|
|
class output_window(Text):
|
|
|
|
# based on Super Text
|
|
|
|
# based on Super Text
|
|
|
@ -1177,7 +1180,7 @@ class output_window(Text):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _file_save_as(self):
|
|
|
|
def _file_save_as(self):
|
|
|
|
self.filename = tkFileDialog.asksaveasfilename(defaultextension = '.txt')
|
|
|
|
self.filename = fileDialog.asksaveasfilename(defaultextension = '.txt')
|
|
|
|
f = open(self.filename, 'w')
|
|
|
|
f = open(self.filename, 'w')
|
|
|
|
f.write(self.get('1.0', 'end'))
|
|
|
|
f.write(self.get('1.0', 'end'))
|
|
|
|
f.close()
|
|
|
|
f.close()
|
|
|
@ -1267,33 +1270,28 @@ class output_window(Text):
|
|
|
|
def main():
|
|
|
|
def main():
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##########################################################################
|
|
|
|
##########################################################################
|
|
|
|
# #
|
|
|
|
# #
|
|
|
|
# main program #
|
|
|
|
# main program #
|
|
|
|
# #
|
|
|
|
# #
|
|
|
|
##########################################################################
|
|
|
|
##########################################################################
|
|
|
|
|
|
|
|
|
|
|
|
global build_type
|
|
|
|
|
|
|
|
global target_env
|
|
|
|
|
|
|
|
global board_name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
board_name, Marlin_ver = get_board_name()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
target_env = get_env(board_name, Marlin_ver)
|
|
|
|
global build_type
|
|
|
|
|
|
|
|
global target_env
|
|
|
|
|
|
|
|
global board_name
|
|
|
|
|
|
|
|
|
|
|
|
os.environ["BUILD_TYPE"] = build_type # let sub processes know what is happening
|
|
|
|
board_name, Marlin_ver = get_board_name()
|
|
|
|
os.environ["TARGET_ENV"] = target_env
|
|
|
|
|
|
|
|
os.environ["BOARD_NAME"] = board_name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Re-use the VSCode terminal, if possible
|
|
|
|
target_env = get_env(board_name, Marlin_ver)
|
|
|
|
if os.environ.get('PLATFORMIO_CALLER', '') == 'vscode':
|
|
|
|
|
|
|
|
sys_PIO()
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
auto_build = output_window()
|
|
|
|
|
|
|
|
auto_build.start_thread() # executes the "run_PIO" function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
auto_build.root.mainloop()
|
|
|
|
# Re-use the VSCode terminal, if possible
|
|
|
|
|
|
|
|
if os.environ.get('PLATFORMIO_CALLER', '') == 'vscode':
|
|
|
|
|
|
|
|
sys_PIO()
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
auto_build = output_window()
|
|
|
|
|
|
|
|
auto_build.start_thread() # executes the "run_PIO" function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
auto_build.root.mainloop()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|