Пример #1
0
	def getBoardItemList(self, platform, board, board_type):
		item_list = []
		board_key = utils.genKey(board, platform)
		type_key = utils.genKey(board_type, board_key)
		if type_key in self.board_item_list_dict:
			item_list = self.board_item_list_dict[type_key]
		return item_list
Пример #2
0
	def getBoardItemList(self, platform, board, board_type):
		item_list = []
		board_key = utils.genKey(board, platform)
		type_key = utils.genKey(board_type, board_key)
		if type_key in self.board_item_list_dict:
			item_list = self.board_item_list_dict[type_key]
		return item_list
Пример #3
0
	def genSubMenuBlock(self, menu_caption, item_lists, command, menu_base = None, checkbox = False):
		submenu_text = '{"caption": "%s", "command": "not_enabled"},' % menu_caption
		if item_lists:
			submenu_text = ''
			submenu_text += '{\n'
			submenu_text += '\t'*4
			submenu_text += '"caption": "%s",\n' % menu_caption
			submenu_text += '\t'*4
			submenu_text += '"id": "%s",\n' % command
			submenu_text += '\t'*4
			submenu_text += '"children":\n'
			submenu_text += '\t'*4
			submenu_text += '[\n'
			for item_list in item_lists:
				for item in item_list:
					if menu_base:
						menu_str = utils.genKey(item, menu_base)
					else:
						menu_str = item
					submenu_text += '\t'*5
					submenu_text += '{"caption": "%s", "command": "%s", "args": {"menu_str": "%s"}' \
						% (item, command, menu_str)
					if checkbox:
						submenu_text += ', "checkbox": true'
					submenu_text += '},\n'
				submenu_text += '\t'*5
				submenu_text += '{"caption": "-"},\n'
			submenu_text = submenu_text[:-2] + '\n'
			submenu_text += '\t'*4
			submenu_text += ']\n'
			submenu_text += '\t'*3
			submenu_text += '},\n'
		return submenu_text
Пример #4
0
def genSubPathList(path, with_files = True, with_parent = True, with_button = False):
	path = os.path.normpath(path)
	file_list = listDir(path, with_files = with_files)
	if with_parent:
		file_list.insert(0, '..')
	path_list = [os.path.join(path, cur_file) for cur_file in file_list]
	if with_button:
		text = utils.genKey('Stino_Button', path)
		path_list.insert(0, text)
	return path_list
Пример #5
0
def genSubPathList(path, with_files=True, with_parent=True, with_button=False):
    path = os.path.normpath(path)
    file_list = listDir(path, with_files=with_files)
    if with_parent:
        file_list.insert(0, '..')
    path_list = [os.path.join(path, cur_file) for cur_file in file_list]
    if with_button:
        text = utils.genKey('Stino_Button', path)
        path_list.insert(0, text)
    return path_list
Пример #6
0
	def genBoardOptionMenuText(self):
		menu_text = ''
		command = 'select_board_type'
		platform = self.getPlatform()
		board = self.getBoard()
		board_type_list = self.arduino_info.getBoardTypeList(platform, board)
		for board_type in board_type_list:
			item_list = self.arduino_info.getBoardItemList(platform, board, board_type)
			type_caption = self.arduino_info.getPlatformTypeCaption(platform, board_type)
			menu_caption = replaceMenuCaption(type_caption)
			board_key = utils.genKey(board, platform)
			type_key = utils.genKey(board_type, board_key)
			menu_text += self.genSubMenuBlock(menu_caption, [item_list], command, menu_base = type_key, checkbox = True)

			type_value = const.settings.get(type_caption)
			if not type_value in item_list:
				type_value = item_list[0]
				const.settings.set(type_caption, type_value)
		return menu_text
Пример #7
0
def parseLibraryExampleInfo(platform, library_path_list):
	example_list = []
	example_path_dict = {}
	for library_path in library_path_list:
		examples_path = os.path.join(library_path, 'examples')
		if os.path.isdir(examples_path):
			example_name = os.path.split(library_path)[1]
			example_list.append(example_name)
			key = utils.genKey(example_name, platform)
			example_path_dict[key] = examples_path
	return (example_list, example_path_dict)
Пример #8
0
def parseExampleInfo(platform, root):
	example_list = []
	example_path_dict = {}
	examples_path = os.path.join(root, 'examples')
	dir_list = osfile.listDir(examples_path, with_files = False)
	for cur_dir in dir_list:
		example_list.append(cur_dir)
		key = utils.genKey(cur_dir, platform)
		cur_dir_path = os.path.join(examples_path, cur_dir)
		example_path_dict[key] = cur_dir_path
	return (example_list, example_path_dict)
Пример #9
0
def parseLibraryExampleInfo(platform, library_path_list):
	example_list = []
	example_path_dict = {}
	for library_path in library_path_list:
		examples_path = os.path.join(library_path, 'examples')
		if os.path.isdir(examples_path):
			example_name = os.path.split(library_path)[1]
			example_list.append(example_name)
			key = utils.genKey(example_name, platform)
			example_path_dict[key] = examples_path
	return (example_list, example_path_dict)
Пример #10
0
def parseExampleInfo(platform, root):
	example_list = []
	example_path_dict = {}
	examples_path = os.path.join(root, 'examples')
	dir_list = osfile.listDir(examples_path, with_files = False)
	for cur_dir in dir_list:
		example_list.append(cur_dir)
		key = utils.genKey(cur_dir, platform)
		cur_dir_path = os.path.join(examples_path, cur_dir)
		example_path_dict[key] = cur_dir_path
	return (example_list, example_path_dict)
Пример #11
0
def parseLibraryInfo(platform, root):
	library_list = []
	library_path_dict = {}
	libraries_path = os.path.join(root, 'libraries')
	dir_list = osfile.listDir(libraries_path, with_files = False)
	for cur_dir in dir_list:
		cur_dir_path = os.path.join(libraries_path, cur_dir)
		if isLibraryFolder(cur_dir_path):
			library_list.append(cur_dir)
			key = utils.genKey(cur_dir, platform)
			library_path_dict[key] = cur_dir_path
	return (library_list, library_path_dict)
Пример #12
0
def parseLibraryInfo(platform, root):
	library_list = []
	library_path_dict = {}
	libraries_path = os.path.join(root, 'libraries')
	dir_list = osfile.listDir(libraries_path, with_files = False)
	for cur_dir in dir_list:
		cur_dir_path = os.path.join(libraries_path, cur_dir)
		if isLibraryFolder(cur_dir_path):
			library_list.append(cur_dir)
			key = utils.genKey(cur_dir, platform)
			library_path_dict[key] = cur_dir_path
	return (library_list, library_path_dict)
Пример #13
0
def parseBoardFile(platform, boards_file_path):
	board_list = []
	board_file_dict = {}
	board_type_list_dict = {}
	board_item_list_dict = {}
	type_caption_dict = {}

	(boards_file_header_block, boards_file_body_block) = splitBoardsFile(boards_file_path)
	(board_type_list, board_type_caption_dict) = parseBoardHeader(boards_file_header_block)

	for board_type in board_type_caption_dict:
		type_key = utils.genKey(board_type, platform)
		type_caption_dict[type_key] = board_type_caption_dict[board_type]

	board_info_block_list = utils.splitToBlocks(boards_file_body_block, sep = '.name', none_sep = 'menu.')
	for board_info_block in board_info_block_list:
		board_name_line = board_info_block[0]
		(key, board) = utils.getKeyValue(board_name_line)
		if not board in board_list:
			board_list.append(board)

			board_key = utils.genKey(board, platform)
			board_file_dict[board_key] = boards_file_path
			board_type_list_dict[board_key] = []

			for board_type in board_type_list:
				item_list = []
				board_type_info_block = utils.getTypeInfoBlock(board_info_block, board_type)
				item_blocks = utils.splitToBlocks(board_type_info_block, sep = '.name', key_length = 4)
				for item_block in item_blocks:
					item_name_line = item_block[0]
					(key, item) = utils.getKeyValue(item_name_line)
					if not item in item_list:
						item_list.append(item)
				if item_list:
					board_type_list_dict[board_key].append(board_type)
					key = utils.genKey(board_type, board_key)
					board_item_list_dict[key] = item_list
	return (board_list, board_file_dict, board_type_list_dict, board_item_list_dict, type_caption_dict)
Пример #14
0
def parseBoardFile(platform, boards_file_path):
	board_list = []
	board_file_dict = {}
	board_type_list_dict = {}
	board_item_list_dict = {}
	type_caption_dict = {}

	(boards_file_header_block, boards_file_body_block) = splitBoardsFile(boards_file_path)
	(board_type_list, board_type_caption_dict) = parseBoardHeader(boards_file_header_block)

	for board_type in board_type_caption_dict:
		type_key = utils.genKey(board_type, platform)
		type_caption_dict[type_key] = board_type_caption_dict[board_type]

	board_info_block_list = utils.splitToBlocks(boards_file_body_block, sep = '.name', none_sep = 'menu.')
	for board_info_block in board_info_block_list:
		board_name_line = board_info_block[0]
		(key, board) = utils.getKeyValue(board_name_line)
		if not board in board_list:
			board_list.append(board)

			board_key = utils.genKey(board, platform)
			board_file_dict[board_key] = boards_file_path
			board_type_list_dict[board_key] = []

			for board_type in board_type_list:
				item_list = []
				board_type_info_block = utils.getTypeInfoBlock(board_info_block, board_type)
				item_blocks = utils.splitToBlocks(board_type_info_block, sep = '.name', key_length = 4)
				for item_block in item_blocks:
					item_name_line = item_block[0]
					(key, item) = utils.getKeyValue(item_name_line)
					if not item in item_list:
						item_list.append(item)
				if item_list:
					board_type_list_dict[board_key].append(board_type)
					key = utils.genKey(board_type, board_key)
					board_item_list_dict[key] = item_list
	return (board_list, board_file_dict, board_type_list_dict, board_item_list_dict, type_caption_dict)
Пример #15
0
def parseBoardFile150(platform, boards_file_path):
	board_list = []
	board_file_dict = {}
	board_type_list_dict = {}
	board_item_list_dict = {}

	board_type = 'menu.cpu'
	board_type_list = [board_type]
	type_key = utils.genKey(board_type, platform)
	type_caption_dict = {type_key:'Processor'}

	lines = osfile.readFileLines(boards_file_path)
	board_info_block_list = utils.splitToBlocks(lines, sep = '.name')
	for board_info_block in board_info_block_list:
		cpu = ''
		for line in board_info_block:
			if '.name' in line:
				(key, board) = utils.getKeyValue(line)
			if '.cpu' in line:
				(key, cpu) = utils.getKeyValue(line)
			if '.container' in line:
				(key, board) = utils.getKeyValue(line)
				break

		board_key = utils.genKey(board, platform)
		key = utils.genKey(board_type, board_key)

		if not board in board_list:
			board_list.append(board)

			board_file_dict[board_key] = boards_file_path
			if cpu:
				board_type_list_dict[board_key] = board_type_list
				board_item_list_dict[key] = [cpu]
		else:
			if cpu and (not cpu in board_item_list_dict[key]):
				board_item_list_dict[key].append(cpu)
	return (board_list, board_file_dict, board_type_list_dict, board_item_list_dict, type_caption_dict)
Пример #16
0
def parseBoardFile150(platform, boards_file_path):
	board_list = []
	board_file_dict = {}
	board_type_list_dict = {}
	board_item_list_dict = {}

	board_type = 'menu.cpu'
	board_type_list = [board_type]
	type_key = utils.genKey(board_type, platform)
	type_caption_dict = {type_key:'Processor'}

	lines = osfile.readFileLines(boards_file_path)
	board_info_block_list = utils.splitToBlocks(lines, sep = '.name')
	for board_info_block in board_info_block_list:
		cpu = ''
		for line in board_info_block:
			if '.name' in line:
				(key, board) = utils.getKeyValue(line)
			if '.cpu' in line:
				(key, cpu) = utils.getKeyValue(line)
			if '.container' in line:
				(key, board) = utils.getKeyValue(line)
				break

		board_key = utils.genKey(board, platform)
		key = utils.genKey(board_type, board_key)

		if not board in board_list:
			board_list.append(board)

			board_file_dict[board_key] = boards_file_path
			if cpu:
				board_type_list_dict[board_key] = board_type_list
				board_item_list_dict[key] = [cpu]
		else:
			if cpu and (not cpu in board_item_list_dict[key]):
				board_item_list_dict[key].append(cpu)
	return (board_list, board_file_dict, board_type_list_dict, board_item_list_dict, type_caption_dict)
Пример #17
0
	def genBoardOptionMenuText(self):
		menu_text = ''
		command = 'select_board_type'
		platform = self.getPlatform()
		board = self.getBoard()
		board_type_list = self.arduino_info.getBoardTypeList(platform, board)
		for board_type in board_type_list:
			item_list = self.arduino_info.getBoardItemList(platform, board, board_type)
			menu_caption = self.arduino_info.getPlatformTypeCaption(platform, board_type)
			menu_caption = menu_caption.replace('Processor', '%(Processor)s')
			menu_caption = menu_caption.replace('USB Type', '%(USB_Type)s')
			menu_caption = menu_caption.replace('CPU Speed', '%(CPU_Speed)s')
			menu_caption = menu_caption.replace('Keyboard Layout', '%(Keyboard_Layout)s')
			board_key = utils.genKey(board, platform)
			type_key = utils.genKey(board_type, board_key)
			menu_text += self.genSubMenuBlock(menu_caption, [item_list], command, menu_base = type_key, checkbox = True)

			type_value = const.settings.get(menu_caption)
			if not type_value in item_list:
				type_value = item_list[0]
				const.settings.set(menu_caption, type_value)
				const.save_settings()
		return menu_text
Пример #18
0
    def genBoardOptionMenuText(self):
        menu_text = ''
        command = 'select_board_type'
        platform = self.getPlatform()
        board = self.getBoard()
        board_type_list = self.arduino_info.getBoardTypeList(platform, board)
        for board_type in board_type_list:
            item_list = self.arduino_info.getBoardItemList(
                platform, board, board_type)
            type_caption = self.arduino_info.getPlatformTypeCaption(
                platform, board_type)
            menu_caption = replaceMenuCaption(type_caption)
            board_key = utils.genKey(board, platform)
            type_key = utils.genKey(board_type, board_key)
            menu_text += self.genSubMenuBlock(menu_caption, [item_list],
                                              command,
                                              menu_base=type_key,
                                              checkbox=True)

            type_value = const.settings.get(type_caption)
            if not type_value in item_list:
                type_value = item_list[0]
                const.settings.set(type_caption, type_value)
        return menu_text
Пример #19
0
def parseProgrammerInfo(platform, core_root):
	programmer_list = []
	programmer_file_dict = {}
	programmers_file_path = os.path.join(core_root, 'programmers.txt')
	if os.path.isfile(programmers_file_path):
		lines = osfile.readFileLines(programmers_file_path)
		programmer_info_block_list = utils.splitToBlocks(lines, sep = '.name')
		for programmer_info_block in programmer_info_block_list:
			programmer_name_line = programmer_info_block[0]
			(key, programmer) = utils.getKeyValue(programmer_name_line)
			if not programmer in programmer_list:
				programmer_list.append(programmer)

				programmer_key = utils.genKey(programmer, platform)
				programmer_file_dict[programmer_key] = programmers_file_path
	return (programmer_list, programmer_file_dict)
Пример #20
0
def parseProgrammerInfo(platform, core_root):
	programmer_list = []
	programmer_file_dict = {}
	programmers_file_path = os.path.join(core_root, 'programmers.txt')
	if os.path.isfile(programmers_file_path):
		lines = osfile.readFileLines(programmers_file_path)
		programmer_info_block_list = utils.splitToBlocks(lines, sep = '.name')
		for programmer_info_block in programmer_info_block_list:
			programmer_name_line = programmer_info_block[0]
			(key, programmer) = utils.getKeyValue(programmer_name_line)
			if not programmer in programmer_list:
				programmer_list.append(programmer)

				programmer_key = utils.genKey(programmer, platform)
				programmer_file_dict[programmer_key] = programmers_file_path
	return (programmer_list, programmer_file_dict)
Пример #21
0
def parseKeywordList(platform, lib_path_list):
	keyword_list = []
	keyword_type_dict = {}
	keyword_ref_dict = {}

	for lib_path in lib_path_list:
		keywords_file_path = os.path.join(lib_path, 'keywords.txt')
		if os.path.isfile(keywords_file_path):
			(keyword_list_form_file, keyword_type_dict_from_file, keyword_ref_dict_from_file) = parseKeywordListFromFile(keywords_file_path)
			for keyword in keyword_list_form_file:
				if not keyword in keyword_list:
					keyword_list.append(keyword)
					key = utils.genKey(keyword, platform)
					keyword_type_dict[key] = keyword_type_dict_from_file[keyword]
					keyword_ref_dict[key] = keyword_ref_dict_from_file[keyword]
	return (keyword_list, keyword_type_dict, keyword_ref_dict)
Пример #22
0
def parseKeywordList(platform, lib_path_list):
	keyword_list = []
	keyword_type_dict = {}
	keyword_ref_dict = {}

	for lib_path in lib_path_list:
		keywords_file_path = os.path.join(lib_path, 'keywords.txt')
		if os.path.isfile(keywords_file_path):
			(keyword_list_form_file, keyword_type_dict_from_file, keyword_ref_dict_from_file) = parseKeywordListFromFile(keywords_file_path)
			for keyword in keyword_list_form_file:
				if not keyword in keyword_list:
					keyword_list.append(keyword)
					key = utils.genKey(keyword, platform)
					keyword_type_dict[key] = keyword_type_dict_from_file[keyword]
					keyword_ref_dict[key] = keyword_ref_dict_from_file[keyword]
	return (keyword_list, keyword_type_dict, keyword_ref_dict)
Пример #23
0
 def genSubMenuBlock(self,
                     menu_caption,
                     item_lists,
                     command,
                     menu_base=None,
                     checkbox=False):
     submenu_text = '{"caption": "%s", "command": "not_enabled"},' % menu_caption
     if item_lists:
         submenu_text = ''
         submenu_text += '{\n'
         submenu_text += '\t' * 4
         submenu_text += '"caption": "%s",\n' % menu_caption
         submenu_text += '\t' * 4
         submenu_text += '"id": "%s",\n' % command
         submenu_text += '\t' * 4
         submenu_text += '"children":\n'
         submenu_text += '\t' * 4
         submenu_text += '[\n'
         for item_list in item_lists:
             for item in item_list:
                 if menu_base:
                     menu_str = utils.genKey(item, menu_base)
                 else:
                     menu_str = item
                 submenu_text += '\t' * 5
                 submenu_text += '{"caption": "%s", "command": "%s", "args": {"menu_str": "%s"}' \
                  % (item, command, menu_str)
                 if checkbox:
                     submenu_text += ', "checkbox": true'
                 submenu_text += '},\n'
             submenu_text += '\t' * 5
             submenu_text += '{"caption": "-"},\n'
         submenu_text = submenu_text[:-2] + '\n'
         submenu_text += '\t' * 4
         submenu_text += ']\n'
         submenu_text += '\t' * 3
         submenu_text += '},\n'
     return submenu_text
Пример #24
0
	def getKeywordRef(self, platform, keyword):
		keyword_ref = ''
		key = utils.genKey(keyword, platform)
		if key in self.keyword_ref_dict:
			keyword_ref = self.keyword_ref_dict[key]
		return keyword_ref
Пример #25
0
	def getExamplePath(self, platform, example):
		path = ''
		key = utils.genKey(example, platform)
		if key in self.example_path_dict:
			path = self.example_path_dict[key]
		return path
Пример #26
0
	def getKeywordType(self, platform, keyword):
		keyword_type = ''
		key = utils.genKey(keyword, platform)
		if key in self.keyword_type_dict:
			keyword_type = self.keyword_type_dict[key]
		return keyword_type
Пример #27
0
	def getProgrammerFile(self, platform, programmer):
		file_path = ''
		key = utils.genKey(programmer, platform)
		if key in self.programmer_file_dict:
			file_path = self.programmer_file_dict[key]
		return file_path
Пример #28
0
	def getLibraryPath(self, platform, library):
		path = ''
		key = utils.genKey(library, platform)
		if key in self.library_path_dict:
			path = self.library_path_dict[key]
		return path
Пример #29
0
	def getBoardFile(self, platform, board):
		file_path = ''
		key = utils.genKey(board, platform)
		if key in self.board_file_dict:
			file_path = self.board_file_dict[key]
		return file_path
Пример #30
0
	def getPlatformTypeCaption(self, platform, board_type):
		caption = ''
		key = utils.genKey(board_type, platform)
		if key in self.type_caption_dict:
			caption = self.type_caption_dict[key]
		return caption
Пример #31
0
	def getBoardFile(self, platform, board):
		file_path = ''
		key = utils.genKey(board, platform)
		if key in self.board_file_dict:
			file_path = self.board_file_dict[key]
		return file_path
Пример #32
0
	def getBoardTypeList(self, platform, board):
		type_list = []
		key = utils.genKey(board, platform)
		if key in self.board_type_list_dict:
			type_list = self.board_type_list_dict[key]
		return type_list
Пример #33
0
	def getPlatformTypeCaption(self, platform, board_type):
		caption = ''
		key = utils.genKey(board_type, platform)
		if key in self.type_caption_dict:
			caption = self.type_caption_dict[key]
		return caption
Пример #34
0
	def getBoardTypeList(self, platform, board):
		type_list = []
		key = utils.genKey(board, platform)
		if key in self.board_type_list_dict:
			type_list = self.board_type_list_dict[key]
		return type_list
Пример #35
0
	def getProgrammerFile(self, platform, programmer):
		file_path = ''
		key = utils.genKey(programmer, platform)
		if key in self.programmer_file_dict:
			file_path = self.programmer_file_dict[key]
		return file_path
Пример #36
0
	def getLibraryPath(self, platform, library):
		path = ''
		key = utils.genKey(library, platform)
		if key in self.library_path_dict:
			path = self.library_path_dict[key]
		return path
Пример #37
0
	def getExamplePath(self, platform, example):
		path = ''
		key = utils.genKey(example, platform)
		if key in self.example_path_dict:
			path = self.example_path_dict[key]
		return path
Пример #38
0
	def getKeywordType(self, platform, keyword):
		keyword_type = ''
		key = utils.genKey(keyword, platform)
		if key in self.keyword_type_dict:
			keyword_type = self.keyword_type_dict[key]
		return keyword_type
Пример #39
0
	def getKeywordRef(self, platform, keyword):
		keyword_ref = ''
		key = utils.genKey(keyword, platform)
		if key in self.keyword_ref_dict:
			keyword_ref = self.keyword_ref_dict[key]
		return keyword_ref