An example of importing Embedded Coder code into the mbed IDE. Currently doesn't connect IO to PWM, ADC, and Encoder, instead provides random inputs and measures execution time.
Dependencies: mbed-dsp mbed Nucleo_pmsmfoc
html/html/js/coder_app.js
- Committer:
- paulcox
- Date:
- 2014-11-25
- Revision:
- 2:bbc155b0b886
File content as of revision 2:bbc155b0b886:
/* Copyright 2013-2014 The MathWorks, Inc. */ function queryByClassName(className, elem) { if (!elem) elem = document.body; if (typeof elem.querySelectorAll === "function") { return elem.querySelectorAll("."+className); } else { return elem.getElementsByClass(className); } } function nav_token_usage_details(direction) { var els = queryByClassName("token_usage_details_tabrow"); var selectedIdx = 0; var selectedClassName = "selected"; for (selectedIdx; selectedIdx < els.length; selectedIdx++) { if (els[selectedIdx].classList.contains(selectedClassName)) { break; } } var nextIdx = selectedIdx; if (direction === -1 && selectedIdx > 0) { nextIdx = selectedIdx-1; } else if (direction === 1 && selectedIdx < els.length - 1) { nextIdx = selectedIdx + 1; } if (nextIdx !== selectedIdx) { els[selectedIdx].classList.remove(selectedClassName); els[nextIdx].classList.add(selectedClassName); els[nextIdx].scrollIntoView(alignWithTop=false); } return false; } function tabrowClicked(event) { } function popupOnload() { var els = queryByClassName("token_usage_details_tabrow"); for (var i=0; i<els.length; i++) { els[i].onclick= tabrowClicked; } }; function tokenOnRightclick(event) { var filename = location.pathname.split(/\//); filename = filename[filename.length-1]; top.inspectToken(filename, location.pathname, event); top.hiliteClickedToken(event.currentTarget); return false; } function tokenOnclick(event) { tokenOnRightclick(event); if (event.currentTarget.href.length !== 0 && event.currentTarget.href.protocol !== "matlab:") { top.tokenLinkOnClick(event); return true; } return false; }; function tokenOnMouseOver(event) { var filename = location.pathname.split(/\//); filename = filename[filename.length-1]; createPopup(filename, event); }; function tokenOnMouseOut(event) { destroyPopup(event.currentTarget); }; function blkLinkOnClick(event) { top.hiliteClickedToken(event.currentTarget); return true; } // remove the code table; update tokens; insert back function updateToken(codeElement) { var filename = location.pathname.split(/\//); filename = filename[filename.length-1]; var srcFilename; if (top.RTW_TraceInfo) { srcFilename = top.RTW_TraceInfo.toSrcFileName(filename); } var els = queryByClassName("tk", codeElement); var elem; var hasTraceFlag = null; if (top.TraceInfoFlag && top.TraceInfoFlag.instance) hasTraceFlag = top.TraceInfoFlag.instance.traceFlag; else hasTraceFlag = false; var defObj; var traceObj; var codeDef = (top.CodeDefine && top.CodeDefine.instance) ? top.CodeDefine.instance : null; var aLink = top.document.createElement("a"); if (hasTraceFlag || (top.CodeDefine && top.CodeDefine.instance)) { for (var i=0; i<els.length; i++) { defObj = (codeDef) ? codeDef.def[els[i].text] : null; traceObj = hasTraceFlag && hasTraceFlag[srcFilename+":"+els[i].id]; if (traceObj || defObj) { els[i].onclick= tokenOnclick; els[i].oncontextmenu= tokenOnRightclick; els[i].onmouseover = tokenOnMouseOver; els[i].onmouseout = tokenOnMouseOut; els[i].className += " active"; els[i].target = "rtwreport_document_frame"; if (traceObj && top.reportModel) { els[i].href = "matlab:rtw.report.code2model(\'" + top.reportModel + "\',\'" + location.pathname + "\',\'" + els[i].id + "')"; } else { aLink.href = defObj.file; els[i].href = aLink.pathname + "#" + defObj.line; } } } } // update block path link in comments els = queryByClassName("blk", codeElement); var lineSid = null; if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance) { for (var i=0; i<els.length; i++) { lineSid = top.RTW_rtwnameSIDMap.instance.getSID(els[i].text); if (lineSid) { els[i].href = "matlab:coder.internal.code2model('" + lineSid.sid + "');"; els[i].id = "blkLink_" + i; els[i].onclick = blkLinkOnClick; els[i].className += " blk_active"; } } } // update requirement link in comments els = queryByClassName("req", codeElement); if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance) { for (var i=0; i<els.length; i++) { lineSid = top.RTW_rtwnameSIDMap.instance.getSID(els[i].getAttribute("blockpath")); if (lineSid) { var req_id = els[i].getAttribute("req_id"); els[i].href = "matlab:rtw.report.code2req('" + lineSid.sid + "'," + req_id + ");"; els[i].id = "req_" + i; els[i].onclick = top.reqOnClick; els[i].className += " req_active"; } } } // add link to source file if (top.Html2SrcLink && top.Html2SrcLink.instance) { filename = top.rtwGetFileName(location.href); var link2Src = top.Html2SrcLink.instance.getLink2Src(filename); var link = document.createElement("h4"); link.innerHTML = "File: <a href=\"" + link2Src + "\" target = \"rtwreport_document_frame\" id=\"linkToText_plain\">" + top.rtwGetFileName(link2Src) + "</a>"; var bodyNode = document.body; bodyNode.insertBefore(link, bodyNode.firstElementChild); } top.updateHyperlinks(); } function getInsertFunction(element) { var parentNode = element.parentNode; var nextSibling = element.nextSibling; parentNode.removeChild(element); var spinner = document.createElement("img"); spinner.src = "spinner.gif"; parentNode.appendChild(spinner); return function() { if (spinner) { parentNode.removeChild(spinner); } if (nextSibling) { parentNode.insertBefore(element, nextSibling); } else { parentNode.appendChild(element); } }; } // the onload function for source file function srcFileOnload() { var codeElement = document.getElementById("codeTbl"); var insertFunction = getInsertFunction(codeElement); try { updateToken(codeElement); } catch (err) {}; insertFunction(); // add code to model hyperlinks for all tokens var filename = location.pathname.split(/\//); filename = filename[filename.length-1]; // highlight the filename in the TOC frame if (top.rtwreport_contents_frame && top.hiliteByFileName(top.rtwreport_document_frame.document.location.href)) { // remove the highlights in the TOC frame if filename is hilite successfully top.removeHiliteTOC(top.rtwreport_contents_frame); } // annotate code with code coverage data if (typeof rtwannotate === 'function') { rtwannotate(filename.replace(/.html$/,"_cov.xml")); } // highlight token and row if (top.RTW_TraceInfo.instance && top.RTW_TraceArgs.instance) { var i; // find the highlight file name var fileIdx = top.RTW_TraceArgs.instance.getFileIdx(filename); var ids=[], rows=[]; if (typeof fileIdx !== "undefined") { ids = top.RTW_TraceArgs.instance.getIDs(fileIdx); rows = top.RTW_TraceArgs.instance.getRows(fileIdx); // highlight rows in file for (i=0; i<rows.length;i++) { elem = top.rtwreport_document_frame.document.getElementById(rows[i]); if (elem) elem.className += " hilite"; } // highlight tokens in file if (top.GlobalConfig.hiliteToken) { for (i=0; i<ids.length;i++) { elem = top.rtwreport_document_frame.document.getElementById(ids[i]); if (elem) elem.className += " hilite"; } } } // end of if current file has highlighted lines // if the loaded file is not currFile, call setInitLocation var currFileIdx = top.RTW_TraceInfo.instance.getCurrFileIdx(); var myFileIdx = top.RTW_TraceInfo.instance.getFileIdx(filename); // update navigation status if the file is loaded first time if (currFileIdx !== myFileIdx && document.location.hash === "") { if (rows.length > 0) top.RTW_TraceInfo.instance.setInitLocation(filename,rows[0]); else { top.toggleNavSideBar("off"); return; } } // display navigation side bar if (top.rtwreport_nav_frame) top.rtwreport_nav_frame.location.reload(); if (rows.length>0) { top.toggleNavSideBar("on"); top.toggleNavToolBar("on"); } else { top.toggleNavSideBar("off"); } } top.scrollToLineBasedOnHash(document.location.hash); function getHash() { var loc; var aHash=""; var topDocObj = top.window.document; // get the hash value from location. loc = topDocObj.location; loc = loc.search || loc.hash; aHash = loc.substring(1); aHash = decodeURI(aHash); return aHash; } } function createPopup(filename, evt) { var anchorObj = evt.currentTarget; if (anchorObj.children.length > 0) return; var filename = location.pathname.split(/\//); filename = filename[filename.length-1]; var windowObj = top.getInspectWindow(); var propObj = top.getInspectData(filename, anchorObj); var navObj = top.getInspectLink(filename, location.pathname, anchorObj); if (propObj) { windowObj.appendChild(propObj); windowObj.style.left = "0px"; if (anchorObj.parentElement.nodeName === "TD" && anchorObj.parentElement.parentElement.nodeName === "TR") { anchorObj.parentElement.parentElement.lastChild.insertBefore(windowObj, anchorObj.parentElement.parentElement.lastChild.lastChild.nextSibling); var left = Math.min(evt.clientX , window.innerWidth - windowObj.scrollWidth - 30); left = Math.max(0, left); windowObj.style.left = "" + left + "px"; } } }; function destroyPopup(anchorObj) { var popWindow = document.getElementById("popup_window"); if (popWindow) { popWindow.parentElement.removeChild(popWindow); } };