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
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
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
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
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
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)
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)
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)
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)
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)
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
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
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)
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)
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
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
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
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
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
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
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
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
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