Compare commits
333 Commits
Author | SHA1 | Date | |
---|---|---|---|
eae2f0436d | |||
287c9da3bd | |||
056ec1bc96 | |||
16439bfca3 | |||
7117ba771e | |||
633522c800 | |||
3f94033c7d | |||
1bc00f476c | |||
0269ffa5ae | |||
c64225982e | |||
29eef560b0 | |||
90e191c4ca | |||
efd310f0b4 | |||
0a5c2e4df9 | |||
1d6eaf0370 | |||
b4b789422e | |||
cf982d7c52 | |||
2dafe5d253 | |||
63422bf696 | |||
56dc8571b7 | |||
d9190369b7 | |||
ea4bc7f4e8 | |||
7aa136d01c | |||
4eeae7e239 | |||
11b6ba0862 | |||
349a385f97 | |||
48afb52ef1 | |||
e5dc046fcc | |||
7f7aa1c60b | |||
584aaf8c6d | |||
029b5cda2b | |||
ed2f6d05ad | |||
26e20d75a4 | |||
31f5db32d1 | |||
107fe2aefa | |||
171f578b0b | |||
90756557f2 | |||
1e89d142ec | |||
002f08ca37 | |||
054501ace0 | |||
980fbc9c1e | |||
dab48cf42d | |||
652abe0892 | |||
781472e7ce | |||
1e4197b4fa | |||
8ec20b87d7 | |||
3a6e132c7f | |||
41c7e88928 | |||
19f757e159 | |||
fb222fd732 | |||
937bcc61ad | |||
7d61e5fe7c | |||
773dae8fc8 | |||
511f399d90 | |||
633ce491af | |||
8193c4790f | |||
21e64d01e3 | |||
641d8fcb9b | |||
84736554b9 | |||
e2c7579dd4 | |||
e0cf776591 | |||
da38ca2234 | |||
682ae92a08 | |||
f5f36d9cca | |||
19775e307a | |||
89406330cf | |||
9bc1e38345 | |||
85d5073fbb | |||
d76d92e041 | |||
6799721c9b | |||
16cf45aa7c | |||
4963bf776a | |||
237c5c019b | |||
cf37baa337 | |||
7303a1235f | |||
38ee5efdd4 | |||
474d5bb762 | |||
f045942297 | |||
7936517a03 | |||
ee60396e35 | |||
307d25ce7d | |||
ec48474231 | |||
524bcee5ed | |||
83cfd5738f | |||
83b8ba1102 | |||
2169cb044c | |||
76adc3c00a | |||
c6e38bd7a9 | |||
c60a4cb359 | |||
298382c19f | |||
ef849b645b | |||
78e8c9f176 | |||
57aadd0b27 | |||
e60c163b08 | |||
95e4c609a4 | |||
f2e1bc0168 | |||
5c818980ed | |||
172aa6a4d7 | |||
c5b9d0876a | |||
4716d06fe6 | |||
a2aaed2923 | |||
38aa6439a2 | |||
f078d59bb5 | |||
dffbe5dcb4 | |||
d0821710f6 | |||
2291f8b899 | |||
2bc5db517e | |||
f191d9033d | |||
7d912110f4 | |||
ae882a0107 | |||
367e80cb77 | |||
c3865afe8c | |||
6b9b636ae6 | |||
9a20841c6e | |||
9e95f1a442 | |||
c6ce36065e | |||
27f28032fb | |||
2dc9cffa99 | |||
376512f704 | |||
3813fba899 | |||
84816f4f39 | |||
2b095dfe21 | |||
2e3cdee2a2 | |||
ec404e5887 | |||
ba69563bf4 | |||
cc6594921f | |||
bf1269b82e | |||
79c89b832a | |||
3ccc8b7db3 | |||
7c8bae3cf0 | |||
000f784011 | |||
d85446d34d | |||
06641d4e5c | |||
a705c4882b | |||
784565b24e | |||
b59e4effff | |||
2db2741b08 | |||
66a46e4046 | |||
2f11d603e7 | |||
8089fe262e | |||
7d7d13f3ab | |||
bd1536132d | |||
fcefe1ed36 | |||
748581d76d | |||
f21f9e6e88 | |||
3f1817037e | |||
4bcba9b9e5 | |||
b3b836d77c | |||
a2cb2c2ed0 | |||
44e2ffc874 | |||
64b68c7439 | |||
198b24c6a4 | |||
a90a43d719 | |||
f9d138cb42 | |||
13089f92a8 | |||
0b1b312e76 | |||
958ff2ef40 | |||
eaf982903f | |||
cbfbcd080a | |||
9c389e290e | |||
4dd26f854c | |||
66444b886c | |||
0c01fdb30b | |||
75c2ccdea9 | |||
2dff5c1140 | |||
0ab28076f3 | |||
8030f27fb7 | |||
33c4b2b9b7 | |||
2463faf8d6 | |||
6db78761c4 | |||
a0893cdaff | |||
c6fa997f02 | |||
76d236e4d9 | |||
0f7323f2da | |||
23d30484d4 | |||
6ad59e04a6 | |||
ae5d5c74a7 | |||
75baca4a97 | |||
58ae4945cb | |||
fba37d96b2 | |||
5eb8704382 | |||
81b66664ef | |||
135aaf4855 | |||
1fbf257619 | |||
932c01f394 | |||
c3b2b99d7c | |||
ec910cb10f | |||
a19d1c848b | |||
790b9f557a | |||
0b469f69b6 | |||
1a3c31c9f3 | |||
5d4bd77bf4 | |||
c83d7e9f07 | |||
efee05c7f5 | |||
cc9ab86181 | |||
ef8d7185ee | |||
b0392da8b1 | |||
c817f9e3ff | |||
5f78f98f94 | |||
395b6184b9 | |||
3274964a11 | |||
f5e8b35df4 | |||
996073728c | |||
1e964ba1ea | |||
895a099ebf | |||
f7ed06108d | |||
0ffccdca85 | |||
9f5ebdfb78 | |||
6e64e80c05 | |||
dde16fec14 | |||
e1e8eab93f | |||
dface9083f | |||
31d4afc897 | |||
8427e89eb6 | |||
277d5a721c | |||
80131f2928 | |||
51bd8d57aa | |||
acd974b964 | |||
04e0529610 | |||
ee3f2e6470 | |||
29a4f3cf69 | |||
5649495a28 | |||
a8a9d7dcf0 | |||
09d7ebaf78 | |||
5c6b4c454b | |||
7e1408fc12 | |||
09dc67717c | |||
20dcd5ce34 | |||
e092961b5b | |||
28044af979 | |||
a9ba0a8f90 | |||
871694f99f | |||
8f6c81cd53 | |||
c819b815c4 | |||
a714970344 | |||
77df714a08 | |||
693a6ba8a9 | |||
5a8122bc8a | |||
c382fc5050 | |||
d69a82d167 | |||
a30ca46fef | |||
a56226c08d | |||
87d34ba030 | |||
091917b765 | |||
aea09c1830 | |||
5e9eec61c5 | |||
a34f765681 | |||
2ae78fe6b8 | |||
33207f33e5 | |||
a487e102ef | |||
a6ffa99ceb | |||
d2aa02c259 | |||
563d76b90a | |||
b433585403 | |||
576f37171a | |||
0bd92a433d | |||
2d5f3421ba | |||
7956c6e6a1 | |||
1f7a56a451 | |||
0ea4583b20 | |||
4bccb435f7 | |||
749c2111d2 | |||
96991447f8 | |||
22f36a623b | |||
8a47793f48 | |||
5cfedf7343 | |||
13383e6232 | |||
165cd0c67e | |||
9c8886116e | |||
fc495b928e | |||
17644d4947 | |||
068ea80a45 | |||
7a86bbd6b9 | |||
78fffe0e01 | |||
7bf1a29c83 | |||
446ef4d7b7 | |||
ca3e3a43a5 | |||
2225be7af1 | |||
1ce863df96 | |||
68ae9864a9 | |||
8cd670b22a | |||
a36038a048 | |||
9d4b31fe4d | |||
3ea6d1e6bb | |||
1698c4a012 | |||
2c39e249f9 | |||
c486a9db94 | |||
816438fa79 | |||
5edd06c9b9 | |||
a114dc32e7 | |||
019bc34d90 | |||
0676d780ab | |||
96e23d99b2 | |||
15b1f95394 | |||
552b0d8165 | |||
faed492a87 | |||
0ce1738653 | |||
f5cabe6e94 | |||
f2e7a640f1 | |||
7fb057af66 | |||
c0b9329401 | |||
c04ddbb459 | |||
4aac4ef92d | |||
979b2b892a | |||
4c3f9910f7 | |||
9aef584966 | |||
e62d15ba85 | |||
adf97d9b5c | |||
2bb6c6ae27 | |||
0919eff0c5 | |||
e31279938b | |||
2655843b74 | |||
527d323ea7 | |||
5d40a48477 | |||
850fb54f52 | |||
6bb35c1a72 | |||
6569231ba6 | |||
a3a1c8a480 | |||
c90dfaa6e7 | |||
02cd0e1da3 | |||
0f9dde0c4e | |||
1e0cd48316 | |||
d959282c68 | |||
d513ad7713 | |||
b7da28285e | |||
dbaf406703 | |||
2cb467f22b | |||
9585e2276d | |||
a591d9f072 | |||
471a30ca3d | |||
205b94afe8 | |||
18caf554e9 | |||
67cdf16fe4 |
3
.gitignore
vendored
@ -16,6 +16,7 @@ clients/win10/*.opendb
|
|||||||
clients/**/bin/**
|
clients/**/bin/**
|
||||||
clients/**/obj/**
|
clients/**/obj/**
|
||||||
clients/electron/projects
|
clients/electron/projects
|
||||||
|
hexcache
|
||||||
|
|
||||||
*.user
|
*.user
|
||||||
*.sw?
|
*.sw?
|
||||||
@ -24,3 +25,5 @@ clients/electron/projects
|
|||||||
*.db
|
*.db
|
||||||
*.suo
|
*.suo
|
||||||
*.log
|
*.log
|
||||||
|
.vscode/.BROWSE.VC.DB-shm
|
||||||
|
.vscode/.BROWSE.VC.DB-wal
|
||||||
|
@ -8,8 +8,7 @@ script:
|
|||||||
- "(cd libs/lang-test0; node ../../node_modules/pxt-core/built/pxt.js test)"
|
- "(cd libs/lang-test0; node ../../node_modules/pxt-core/built/pxt.js test)"
|
||||||
- "(cd libs/lang-test1; node ../../node_modules/pxt-core/built/pxt.js test)"
|
- "(cd libs/lang-test1; node ../../node_modules/pxt-core/built/pxt.js test)"
|
||||||
- "node node_modules/pxt-core/built/pxt.js testdir tests"
|
- "node node_modules/pxt-core/built/pxt.js testdir tests"
|
||||||
- "node node_modules/pxt-core/built/pxt.js uploaddoc"
|
- "(cd libs/hello; node ../../node_modules/pxt-core/built/pxt.js testconv https://az851932.vo.msecnd.net/files/td-converter-tests-v1.json)"
|
||||||
- "(cd libs/hello; node ../../node_modules/pxt-core/built/pxt.js testconv https://az851932.vo.msecnd.net/files/td-converter-tests-v0.json)"
|
|
||||||
sudo: false
|
sudo: false
|
||||||
notifications:
|
notifications:
|
||||||
email:
|
email:
|
||||||
|
3
.vscode/settings.json
vendored
@ -16,5 +16,6 @@
|
|||||||
"**/pxt_modules/**": true
|
"**/pxt_modules/**": true
|
||||||
},
|
},
|
||||||
"tslint.enable": true,
|
"tslint.enable": true,
|
||||||
"tslint.rulesDirectory": "node_modules/tslint-microsoft-contrib"
|
"tslint.rulesDirectory": "node_modules/tslint-microsoft-contrib",
|
||||||
|
"typescript.tsdk": "./node_modules/typescript/lib"
|
||||||
}
|
}
|
@ -3,7 +3,7 @@
|
|||||||
This target allow to program a [BBC micro:bit](https://www.microbit.co.uk/) using
|
This target allow to program a [BBC micro:bit](https://www.microbit.co.uk/) using
|
||||||
PXT ([Microsoft Programming Experience Toolkit](https://github.com/Microsoft/pxt)).
|
PXT ([Microsoft Programming Experience Toolkit](https://github.com/Microsoft/pxt)).
|
||||||
|
|
||||||
* [Try it live](https://codethemicrobit.com)
|
* [Try it live](https://pxt.microbit.org)
|
||||||
|
|
||||||
[](https://travis-ci.org/Microsoft/pxt-microbit)
|
[](https://travis-ci.org/Microsoft/pxt-microbit)
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ The local server allows to run the editor and the documentation from your comput
|
|||||||
|
|
||||||
The following commands are a 1-time setup after synching the repo on your machine.
|
The following commands are a 1-time setup after synching the repo on your machine.
|
||||||
|
|
||||||
* if not yet installed, install [Node.js 4.4.5 or higher](https://nodejs.org/en/download/)
|
* See requirements for [pxt](https://github.com/Microsoft/pxt)
|
||||||
* [clone this repo](https://help.github.com/articles/cloning-a-repository/) to your computer and go in the project folder
|
* [clone this repo](https://help.github.com/articles/cloning-a-repository/) to your computer and go in the project folder
|
||||||
```
|
```
|
||||||
git clone https://github.com/microsoft/pxt-microbit
|
git clone https://github.com/microsoft/pxt-microbit
|
||||||
@ -53,11 +53,6 @@ pxt update
|
|||||||
|
|
||||||
More instructions at https://github.com/Microsoft/pxt#running-a-target-from-localhost
|
More instructions at https://github.com/Microsoft/pxt#running-a-target-from-localhost
|
||||||
|
|
||||||
### Building
|
|
||||||
|
|
||||||
* Install Visual Studio 2015 Update 2 or higher. Make sure the Windows 10 templates are installed.
|
|
||||||
* open the ``win10/app.sln`` solution and launch the ``codethemicrobit`` project.
|
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
The build automatically runs the following:
|
The build automatically runs the following:
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
///<reference path='typings/browser.d.ts'/>
|
|
||||||
var connections = [];
|
var connections = [];
|
||||||
// A list of "ports", i.e. connected clients (such as web pages). Multiple web
|
// A list of "ports", i.e. connected clients (such as web pages). Multiple web
|
||||||
// pages can connect to our service: they all receive the same data.
|
// pages can connect to our service: they all receive the same data.
|
||||||
@ -41,7 +40,7 @@ function findNewDevices() {
|
|||||||
function main() {
|
function main() {
|
||||||
// Register new clients in the [ports] global variable.
|
// Register new clients in the [ports] global variable.
|
||||||
chrome.runtime.onConnectExternal.addListener(function (port) {
|
chrome.runtime.onConnectExternal.addListener(function (port) {
|
||||||
if (/^(micro:bit|touchdevelop|yelm|pxt|codemicrobit|codethemicrobit)$/.test(port.name)) {
|
if (/^(micro:bit|touchdevelop|yelm|pxt|codemicrobit|codethemicrobit|pxt.microbit.org)$/.test(port.name)) {
|
||||||
ports.push(port);
|
ports.push(port);
|
||||||
port.onDisconnect.addListener(function () {
|
port.onDisconnect.addListener(function () {
|
||||||
ports = ports.filter(function (x) { return x != port; });
|
ports = ports.filter(function (x) { return x != port; });
|
||||||
|
@ -61,7 +61,7 @@ function findNewDevices() {
|
|||||||
function main() {
|
function main() {
|
||||||
// Register new clients in the [ports] global variable.
|
// Register new clients in the [ports] global variable.
|
||||||
chrome.runtime.onConnectExternal.addListener(function (port) {
|
chrome.runtime.onConnectExternal.addListener(function (port) {
|
||||||
if (/^(micro:bit|touchdevelop|yelm|pxt|codemicrobit|codethemicrobit)$/.test(port.name)) {
|
if (/^(micro:bit|touchdevelop|yelm|pxt|codemicrobit|codethemicrobit|pxt.microbit.org)$/.test(port.name)) {
|
||||||
ports.push(port);
|
ports.push(port);
|
||||||
port.onDisconnect.addListener(function () {
|
port.onDisconnect.addListener(function () {
|
||||||
ports = ports.filter(function (x) { return x != port });
|
ports = ports.filter(function (x) { return x != port });
|
||||||
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.6 KiB |
@ -6,13 +6,13 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "code the micro:bit",
|
"name": "pxt.microbit.org",
|
||||||
"version": "0.6.0",
|
"version": "0.7.0",
|
||||||
"author": "Microsoft Corporation",
|
"author": "Microsoft Corporation",
|
||||||
"short_name": "code the micro:bit",
|
"short_name": "pxt.microbit.org",
|
||||||
|
|
||||||
"description": "Extension for https://codethemicrobit.com.",
|
"description": "Extension for https://pxt.microbit.org.",
|
||||||
"homepage_url": "https://codethemicrobit.com",
|
"homepage_url": "https://pxt.microbit.org",
|
||||||
"offline_enabled": "true",
|
"offline_enabled": "true",
|
||||||
"icons": {
|
"icons": {
|
||||||
"48": "logo48.png",
|
"48": "logo48.png",
|
||||||
@ -25,6 +25,6 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"externally_connectable": {
|
"externally_connectable": {
|
||||||
"matches": [ "*://localhost/*", "https://codethemicrobit.com/*", "https://*.codethemicrobit.com/*" ]
|
"matches": [ "*://localhost/*", "https://pxt.microbit.org/*", "https://*.microbit.org/*" ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
clients/electron/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
node_modules
|
||||||
|
projects
|
5
clients/electron/README.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# PXT micro:bit Electron app
|
||||||
|
|
||||||
|
A very basic wrapper around the web app. To install, copy the contents of this
|
||||||
|
directory to somewhere outside the main `pxt-microbit` repository. Then run `npm
|
||||||
|
install && npm start`.
|
15
clients/electron/index.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>code the micro:bit</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<webview id="webview" style="position:absolute; left:0; top:0; right:0; bottom:0"/>
|
||||||
|
<script>
|
||||||
|
const webview = document.getElementById("webview")
|
||||||
|
const url = `http://localhost:3232/${window.location.hash}`
|
||||||
|
webview.src = url
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -1,67 +1,39 @@
|
|||||||
const electron = require('electron')
|
const {app, BrowserWindow, Menu} = require('electron')
|
||||||
// Module to control application life.
|
|
||||||
const app = electron.app
|
|
||||||
// Module to create native browser window.
|
|
||||||
const BrowserWindow = electron.BrowserWindow
|
|
||||||
// pxt toolchain
|
|
||||||
const pxt = require('pxt-core')
|
const pxt = require('pxt-core')
|
||||||
|
const path = require('path')
|
||||||
|
|
||||||
// Keep a global reference of the window object, if you don't, the window will
|
let win
|
||||||
// be closed automatically when the JavaScript object is garbage collected.
|
|
||||||
let mainWindow
|
|
||||||
|
|
||||||
function createWindow() {
|
const cliPath = path.join(process.cwd(), "node_modules/pxt-microbit")
|
||||||
console.log('starting app...')
|
|
||||||
// Create the browser window.
|
function startServerAndCreateWindow() {
|
||||||
mainWindow = new BrowserWindow({
|
pxt.mainCli(cliPath, ["serve", "-no-browser"])
|
||||||
width: 800, height: 600,
|
createWindow()
|
||||||
webPreferences: {
|
}
|
||||||
nodeIntegration: false,
|
|
||||||
}
|
function createWindow () {
|
||||||
|
win = new BrowserWindow({
|
||||||
|
width: 800,
|
||||||
|
height: 600,
|
||||||
|
title: "code the micro:bit"
|
||||||
})
|
})
|
||||||
|
Menu.setApplicationMenu(null)
|
||||||
ts.pxt.Util.debug = true;
|
win.loadURL(`file://${__dirname}/index.html#local_token=${pxt.globalConfig.localToken}`)
|
||||||
pxt.mainCli("C:/gh/pxt-microbit/clients/electron/node_modules/pxt-microbit", ["serve", "-just"]);
|
win.on('closed', () => {
|
||||||
|
win = null
|
||||||
// no menu
|
|
||||||
mainWindow.setMenu(null);
|
|
||||||
|
|
||||||
// and load the index.html of the app.
|
|
||||||
mainWindow.loadURL(`http://localhost:3232/#local_token=08ba9b8f-6ccb-4202-296d-28fac7a553d9`)
|
|
||||||
|
|
||||||
// Open the DevTools.
|
|
||||||
mainWindow.webContents.openDevTools()
|
|
||||||
|
|
||||||
// Emitted when the window is closed.
|
|
||||||
mainWindow.on('closed', function () {
|
|
||||||
// Dereference the window object, usually you would store windows
|
|
||||||
// in an array if your app supports multi windows, this is the time
|
|
||||||
// when you should delete the corresponding element.
|
|
||||||
mainWindow = null
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method will be called when Electron has finished
|
app.on('ready', startServerAndCreateWindow)
|
||||||
// initialization and is ready to create browser windows.
|
|
||||||
// Some APIs can only be used after this event occurs.
|
|
||||||
app.on('ready', createWindow)
|
|
||||||
|
|
||||||
// Quit when all windows are closed.
|
app.on('window-all-closed', () => {
|
||||||
app.on('window-all-closed', function () {
|
|
||||||
// On OS X it is common for applications and their menu bar
|
|
||||||
// to stay active until the user quits explicitly with Cmd + Q
|
|
||||||
if (process.platform !== 'darwin') {
|
if (process.platform !== 'darwin') {
|
||||||
app.quit()
|
app.quit()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
app.on('activate', function () {
|
app.on('activate', () => {
|
||||||
// On OS X it's common to re-create a window in the app when the
|
if (win === null) {
|
||||||
// dock icon is clicked and there are no other windows open.
|
|
||||||
if (mainWindow === null) {
|
|
||||||
createWindow()
|
createWindow()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// In this file you can include the rest of your app's specific main process
|
|
||||||
// code. You can also put them in separate files and require them here.
|
|
@ -1,19 +1,14 @@
|
|||||||
{
|
{
|
||||||
"name": "codethemicrobit",
|
"name" : "code-the-microbit",
|
||||||
"version": "0.1.0",
|
"version" : "1.0.0",
|
||||||
"description": "A Blocks / JavaScript editor for the micro:bit",
|
"description": "Blocks / Javascript editor",
|
||||||
"main": "main.js",
|
|
||||||
"scripts": {
|
|
||||||
"start": "electron ."
|
|
||||||
},
|
|
||||||
"author": "Microsoft",
|
"author": "Microsoft",
|
||||||
"license": "MIT",
|
"main" : "main.js",
|
||||||
"devDependencies": {
|
"scripts": {
|
||||||
"electron-prebuilt": "^1.2.0"
|
"start": "node_modules/.bin/electron ."
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"devDependencies": {
|
||||||
"typescript": "1.8.7",
|
"electron": "*",
|
||||||
"pxt-core": "*",
|
"pxt-microbit": "*"
|
||||||
"pxt-microbit": "*"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
@interface AppDelegate ()<DirectoryWatcherDelegate, UploaderDelegate, NSUserNotificationCenterDelegate>
|
@interface AppDelegate ()<DirectoryWatcherDelegate, UploaderDelegate, NSUserNotificationCenterDelegate>
|
||||||
|
|
||||||
@property (weak) IBOutlet NSWindow *window;
|
|
||||||
@property DirectoryWatcher * watcher;
|
@property DirectoryWatcher * watcher;
|
||||||
@property Uploader * uploader;
|
@property Uploader * uploader;
|
||||||
@property NSStatusItem * menubarItem;
|
@property NSStatusItem * menubarItem;
|
||||||
@ -115,10 +114,17 @@
|
|||||||
microBitCount.enabled = NO;
|
microBitCount.enabled = NO;
|
||||||
[menu addItem:microBitCount];
|
[menu addItem:microBitCount];
|
||||||
|
|
||||||
|
NSMenuItem * websiteItem = [[NSMenuItem alloc] initWithTitle:@"Editor" action:@selector(launchEditor:) keyEquivalent:@"e"];
|
||||||
|
[menu addItem:websiteItem];
|
||||||
|
|
||||||
NSMenuItem * quitItem = [[NSMenuItem alloc] initWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@"q"];
|
NSMenuItem * quitItem = [[NSMenuItem alloc] initWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@"q"];
|
||||||
[menu addItem:quitItem];
|
[menu addItem:quitItem];
|
||||||
|
|
||||||
self.menubarItem.menu = menu;
|
self.menubarItem.menu = menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)launchEditor:(id)sender {
|
||||||
|
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"https://pxt.microbit.org/"]];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 744 B After Width: | Height: | Size: 574 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 435 KiB After Width: | Height: | Size: 136 KiB |
@ -12,670 +12,7 @@
|
|||||||
</customObject>
|
</customObject>
|
||||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||||
<customObject id="Voe-Tx-rLC" customClass="AppDelegate">
|
<customObject id="Voe-Tx-rLC" customClass="AppDelegate"/>
|
||||||
<connections>
|
|
||||||
<outlet property="window" destination="QvC-M9-y7g" id="gIp-Ho-8D9"/>
|
|
||||||
</connections>
|
|
||||||
</customObject>
|
|
||||||
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
||||||
<menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Microbit Uploader" id="1Xt-HY-uBw">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Microbit Uploader" systemMenu="apple" id="uQy-DD-JDr">
|
|
||||||
<items>
|
|
||||||
<menuItem title="About Microbit Uploader" id="5kV-Vb-QxS">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="orderFrontStandardAboutPanel:" target="-1" id="Exp-CZ-Vem"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
|
|
||||||
<menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
|
|
||||||
<menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
|
|
||||||
<menuItem title="Services" id="NMo-om-nkz">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
|
|
||||||
<menuItem title="Hide Microbit Uploader" keyEquivalent="h" id="Olw-nP-bQN">
|
|
||||||
<connections>
|
|
||||||
<action selector="hide:" target="-1" id="PnN-Uc-m68"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Show All" id="Kd2-mp-pUS">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
|
|
||||||
<menuItem title="Quit Microbit Uploader" keyEquivalent="q" id="4sb-4s-VLi">
|
|
||||||
<connections>
|
|
||||||
<action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="File" id="dMs-cI-mzQ">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="File" id="bib-Uj-vzu">
|
|
||||||
<items>
|
|
||||||
<menuItem title="New" keyEquivalent="n" id="Was-JA-tGl">
|
|
||||||
<connections>
|
|
||||||
<action selector="newDocument:" target="-1" id="4Si-XN-c54"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Open…" keyEquivalent="o" id="IAo-SY-fd9">
|
|
||||||
<connections>
|
|
||||||
<action selector="openDocument:" target="-1" id="bVn-NM-KNZ"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Open Recent" id="tXI-mr-wws">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Open Recent" systemMenu="recentDocuments" id="oas-Oc-fiZ">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Clear Menu" id="vNY-rz-j42">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="clearRecentDocuments:" target="-1" id="Daa-9d-B3U"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="m54-Is-iLE"/>
|
|
||||||
<menuItem title="Close" keyEquivalent="w" id="DVo-aG-piG">
|
|
||||||
<connections>
|
|
||||||
<action selector="performClose:" target="-1" id="HmO-Ls-i7Q"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Save…" keyEquivalent="s" id="pxx-59-PXV">
|
|
||||||
<connections>
|
|
||||||
<action selector="saveDocument:" target="-1" id="teZ-XB-qJY"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Save As…" keyEquivalent="S" id="Bw7-FT-i3A">
|
|
||||||
<connections>
|
|
||||||
<action selector="saveDocumentAs:" target="-1" id="mDf-zr-I0C"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Revert to Saved" id="KaW-ft-85H">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="revertDocumentToSaved:" target="-1" id="iJ3-Pv-kwq"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="aJh-i4-bef"/>
|
|
||||||
<menuItem title="Page Setup…" keyEquivalent="P" id="qIS-W8-SiK">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="runPageLayout:" target="-1" id="Din-rz-gC5"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Print…" keyEquivalent="p" id="aTl-1u-JFS">
|
|
||||||
<connections>
|
|
||||||
<action selector="print:" target="-1" id="qaZ-4w-aoO"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Edit" id="5QF-Oa-p0T">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Edit" id="W48-6f-4Dl">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Undo" keyEquivalent="z" id="dRJ-4n-Yzg">
|
|
||||||
<connections>
|
|
||||||
<action selector="undo:" target="-1" id="M6e-cu-g7V"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Redo" keyEquivalent="Z" id="6dh-zS-Vam">
|
|
||||||
<connections>
|
|
||||||
<action selector="redo:" target="-1" id="oIA-Rs-6OD"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="WRV-NI-Exz"/>
|
|
||||||
<menuItem title="Cut" keyEquivalent="x" id="uRl-iY-unG">
|
|
||||||
<connections>
|
|
||||||
<action selector="cut:" target="-1" id="YJe-68-I9s"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Copy" keyEquivalent="c" id="x3v-GG-iWU">
|
|
||||||
<connections>
|
|
||||||
<action selector="copy:" target="-1" id="G1f-GL-Joy"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Paste" keyEquivalent="v" id="gVA-U4-sdL">
|
|
||||||
<connections>
|
|
||||||
<action selector="paste:" target="-1" id="UvS-8e-Qdg"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Paste and Match Style" keyEquivalent="V" id="WeT-3V-zwk">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="pasteAsPlainText:" target="-1" id="cEh-KX-wJQ"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Delete" id="pa3-QI-u2k">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="delete:" target="-1" id="0Mk-Ml-PaM"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Select All" keyEquivalent="a" id="Ruw-6m-B2m">
|
|
||||||
<connections>
|
|
||||||
<action selector="selectAll:" target="-1" id="VNm-Mi-diN"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="uyl-h8-XO2"/>
|
|
||||||
<menuItem title="Find" id="4EN-yA-p0u">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Find" id="1b7-l0-nxx">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Find…" tag="1" keyEquivalent="f" id="Xz5-n4-O0W">
|
|
||||||
<connections>
|
|
||||||
<action selector="performFindPanelAction:" target="-1" id="cD7-Qs-BN4"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="YEy-JH-Tfz">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="performFindPanelAction:" target="-1" id="WD3-Gg-5AJ"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Find Next" tag="2" keyEquivalent="g" id="q09-fT-Sye">
|
|
||||||
<connections>
|
|
||||||
<action selector="performFindPanelAction:" target="-1" id="NDo-RZ-v9R"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Find Previous" tag="3" keyEquivalent="G" id="OwM-mh-QMV">
|
|
||||||
<connections>
|
|
||||||
<action selector="performFindPanelAction:" target="-1" id="HOh-sY-3ay"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="buJ-ug-pKt">
|
|
||||||
<connections>
|
|
||||||
<action selector="performFindPanelAction:" target="-1" id="U76-nv-p5D"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Jump to Selection" keyEquivalent="j" id="S0p-oC-mLd">
|
|
||||||
<connections>
|
|
||||||
<action selector="centerSelectionInVisibleArea:" target="-1" id="IOG-6D-g5B"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Spelling and Grammar" id="Dv1-io-Yv7">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Spelling" id="3IN-sU-3Bg">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Show Spelling and Grammar" keyEquivalent=":" id="HFo-cy-zxI">
|
|
||||||
<connections>
|
|
||||||
<action selector="showGuessPanel:" target="-1" id="vFj-Ks-hy3"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Check Document Now" keyEquivalent=";" id="hz2-CU-CR7">
|
|
||||||
<connections>
|
|
||||||
<action selector="checkSpelling:" target="-1" id="fz7-VC-reM"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="bNw-od-mp5"/>
|
|
||||||
<menuItem title="Check Spelling While Typing" id="rbD-Rh-wIN">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="toggleContinuousSpellChecking:" target="-1" id="7w6-Qz-0kB"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Check Grammar With Spelling" id="mK6-2p-4JG">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="toggleGrammarChecking:" target="-1" id="muD-Qn-j4w"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Correct Spelling Automatically" id="78Y-hA-62v">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="toggleAutomaticSpellingCorrection:" target="-1" id="2lM-Qi-WAP"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Substitutions" id="9ic-FL-obx">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Substitutions" id="FeM-D8-WVr">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Show Substitutions" id="z6F-FW-3nz">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="orderFrontSubstitutionsPanel:" target="-1" id="oku-mr-iSq"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="gPx-C9-uUO"/>
|
|
||||||
<menuItem title="Smart Copy/Paste" id="9yt-4B-nSM">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="toggleSmartInsertDelete:" target="-1" id="3IJ-Se-DZD"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Smart Quotes" id="hQb-2v-fYv">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="toggleAutomaticQuoteSubstitution:" target="-1" id="ptq-xd-QOA"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Smart Dashes" id="rgM-f4-ycn">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="toggleAutomaticDashSubstitution:" target="-1" id="oCt-pO-9gS"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Smart Links" id="cwL-P1-jid">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="toggleAutomaticLinkDetection:" target="-1" id="Gip-E3-Fov"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Data Detectors" id="tRr-pd-1PS">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="toggleAutomaticDataDetection:" target="-1" id="R1I-Nq-Kbl"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Text Replacement" id="HFQ-gK-NFA">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="toggleAutomaticTextReplacement:" target="-1" id="DvP-Fe-Py6"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Transformations" id="2oI-Rn-ZJC">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Transformations" id="c8a-y6-VQd">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Make Upper Case" id="vmV-6d-7jI">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="uppercaseWord:" target="-1" id="sPh-Tk-edu"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Make Lower Case" id="d9M-CD-aMd">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="lowercaseWord:" target="-1" id="iUZ-b5-hil"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Capitalize" id="UEZ-Bs-lqG">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="capitalizeWord:" target="-1" id="26H-TL-nsh"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Speech" id="xrE-MZ-jX0">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Speech" id="3rS-ZA-NoH">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Start Speaking" id="Ynk-f8-cLZ">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="startSpeaking:" target="-1" id="654-Ng-kyl"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Stop Speaking" id="Oyz-dy-DGm">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="stopSpeaking:" target="-1" id="dX8-6p-jy9"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Format" id="jxT-CU-nIS">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Format" id="GEO-Iw-cKr">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Font" id="Gi5-1S-RQB">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Font" systemMenu="font" id="aXa-aM-Jaq">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Show Fonts" keyEquivalent="t" id="Q5e-8K-NDq">
|
|
||||||
<connections>
|
|
||||||
<action selector="orderFrontFontPanel:" target="YLy-65-1bz" id="WHr-nq-2xA"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Bold" tag="2" keyEquivalent="b" id="GB9-OM-e27">
|
|
||||||
<connections>
|
|
||||||
<action selector="addFontTrait:" target="YLy-65-1bz" id="hqk-hr-sYV"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Italic" tag="1" keyEquivalent="i" id="Vjx-xi-njq">
|
|
||||||
<connections>
|
|
||||||
<action selector="addFontTrait:" target="YLy-65-1bz" id="IHV-OB-c03"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Underline" keyEquivalent="u" id="WRG-CD-K1S">
|
|
||||||
<connections>
|
|
||||||
<action selector="underline:" target="-1" id="FYS-2b-JAY"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="5gT-KC-WSO"/>
|
|
||||||
<menuItem title="Bigger" tag="3" keyEquivalent="+" id="Ptp-SP-VEL">
|
|
||||||
<connections>
|
|
||||||
<action selector="modifyFont:" target="YLy-65-1bz" id="Uc7-di-UnL"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Smaller" tag="4" keyEquivalent="-" id="i1d-Er-qST">
|
|
||||||
<connections>
|
|
||||||
<action selector="modifyFont:" target="YLy-65-1bz" id="HcX-Lf-eNd"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="kx3-Dk-x3B"/>
|
|
||||||
<menuItem title="Kern" id="jBQ-r6-VK2">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Kern" id="tlD-Oa-oAM">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Use Default" id="GUa-eO-cwY">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="useStandardKerning:" target="-1" id="6dk-9l-Ckg"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Use None" id="cDB-IK-hbR">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="turnOffKerning:" target="-1" id="U8a-gz-Maa"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Tighten" id="46P-cB-AYj">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="tightenKerning:" target="-1" id="hr7-Nz-8ro"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Loosen" id="ogc-rX-tC1">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="loosenKerning:" target="-1" id="8i4-f9-FKE"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Ligatures" id="o6e-r0-MWq">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Ligatures" id="w0m-vy-SC9">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Use Default" id="agt-UL-0e3">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="useStandardLigatures:" target="-1" id="7uR-wd-Dx6"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Use None" id="J7y-lM-qPV">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="turnOffLigatures:" target="-1" id="iX2-gA-Ilz"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Use All" id="xQD-1f-W4t">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="useAllLigatures:" target="-1" id="KcB-kA-TuK"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Baseline" id="OaQ-X3-Vso">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Baseline" id="ijk-EB-dga">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Use Default" id="3Om-Ey-2VK">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="unscript:" target="-1" id="0vZ-95-Ywn"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Superscript" id="Rqc-34-cIF">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="superscript:" target="-1" id="3qV-fo-wpU"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Subscript" id="I0S-gh-46l">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="subscript:" target="-1" id="Q6W-4W-IGz"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Raise" id="2h7-ER-AoG">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="raiseBaseline:" target="-1" id="4sk-31-7Q9"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Lower" id="1tx-W0-xDw">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="lowerBaseline:" target="-1" id="OF1-bc-KW4"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="Ndw-q3-faq"/>
|
|
||||||
<menuItem title="Show Colors" keyEquivalent="C" id="bgn-CT-cEk">
|
|
||||||
<connections>
|
|
||||||
<action selector="orderFrontColorPanel:" target="-1" id="mSX-Xz-DV3"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="iMs-zA-UFJ"/>
|
|
||||||
<menuItem title="Copy Style" keyEquivalent="c" id="5Vv-lz-BsD">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="copyFont:" target="-1" id="GJO-xA-L4q"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Paste Style" keyEquivalent="v" id="vKC-jM-MkH">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="pasteFont:" target="-1" id="JfD-CL-leO"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Text" id="Fal-I4-PZk">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Text" id="d9c-me-L2H">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Align Left" keyEquivalent="{" id="ZM1-6Q-yy1">
|
|
||||||
<connections>
|
|
||||||
<action selector="alignLeft:" target="-1" id="zUv-R1-uAa"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Center" keyEquivalent="|" id="VIY-Ag-zcb">
|
|
||||||
<connections>
|
|
||||||
<action selector="alignCenter:" target="-1" id="spX-mk-kcS"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Justify" id="J5U-5w-g23">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="alignJustified:" target="-1" id="ljL-7U-jND"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Align Right" keyEquivalent="}" id="wb2-vD-lq4">
|
|
||||||
<connections>
|
|
||||||
<action selector="alignRight:" target="-1" id="r48-bG-YeY"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="4s2-GY-VfK"/>
|
|
||||||
<menuItem title="Writing Direction" id="H1b-Si-o9J">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Writing Direction" id="8mr-sm-Yjd">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Paragraph" enabled="NO" id="ZvO-Gk-QUH">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem id="YGs-j5-SAR">
|
|
||||||
<string key="title"> Default</string>
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="makeBaseWritingDirectionNatural:" target="-1" id="qtV-5e-UBP"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem id="Lbh-J2-qVU">
|
|
||||||
<string key="title"> Left to Right</string>
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="makeBaseWritingDirectionLeftToRight:" target="-1" id="S0X-9S-QSf"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem id="jFq-tB-4Kx">
|
|
||||||
<string key="title"> Right to Left</string>
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="makeBaseWritingDirectionRightToLeft:" target="-1" id="5fk-qB-AqJ"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="swp-gr-a21"/>
|
|
||||||
<menuItem title="Selection" enabled="NO" id="cqv-fj-IhA">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem id="Nop-cj-93Q">
|
|
||||||
<string key="title"> Default</string>
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="makeTextWritingDirectionNatural:" target="-1" id="lPI-Se-ZHp"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem id="BgM-ve-c93">
|
|
||||||
<string key="title"> Left to Right</string>
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="makeTextWritingDirectionLeftToRight:" target="-1" id="caW-Bv-w94"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem id="RB4-Sm-HuC">
|
|
||||||
<string key="title"> Right to Left</string>
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="makeTextWritingDirectionRightToLeft:" target="-1" id="EXD-6r-ZUu"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="fKy-g9-1gm"/>
|
|
||||||
<menuItem title="Show Ruler" id="vLm-3I-IUL">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="toggleRuler:" target="-1" id="FOx-HJ-KwY"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Copy Ruler" keyEquivalent="c" id="MkV-Pr-PK5">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="copyRuler:" target="-1" id="71i-fW-3W2"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Paste Ruler" keyEquivalent="v" id="LVM-kO-fVI">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="pasteRuler:" target="-1" id="cSh-wd-qM2"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="View" id="H8h-7b-M4v">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="View" id="HyV-fh-RgO">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Show Toolbar" keyEquivalent="t" id="snW-S8-Cw5">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="toggleToolbarShown:" target="-1" id="BXY-wc-z0C"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Customize Toolbar…" id="1UK-8n-QPP">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="runToolbarCustomizationPalette:" target="-1" id="pQI-g3-MTW"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Window" id="aUF-d1-5bR">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
|
|
||||||
<connections>
|
|
||||||
<action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Zoom" id="R4o-n2-Eq4">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
|
|
||||||
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
<menuItem title="Help" id="wpr-3q-Mcd">
|
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
|
||||||
<menu key="submenu" title="Help" systemMenu="help" id="F2S-fz-NVQ">
|
|
||||||
<items>
|
|
||||||
<menuItem title="Microbit Uploader Help" keyEquivalent="?" id="FKE-Sm-Kum">
|
|
||||||
<connections>
|
|
||||||
<action selector="showHelp:" target="-1" id="y7X-2Q-9no"/>
|
|
||||||
</connections>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
</menuItem>
|
|
||||||
</items>
|
|
||||||
</menu>
|
|
||||||
<window title="Microbit Uploader" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="QvC-M9-y7g">
|
|
||||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
|
|
||||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
|
||||||
<rect key="contentRect" x="335" y="390" width="480" height="360"/>
|
|
||||||
<rect key="screenRect" x="0.0" y="0.0" width="1280" height="777"/>
|
|
||||||
<view key="contentView" id="EiT-Mj-1SZ">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="480" height="360"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
</view>
|
|
||||||
</window>
|
|
||||||
</objects>
|
</objects>
|
||||||
</document>
|
</document>
|
||||||
|
@ -55,14 +55,16 @@ void callback(ConstFSEventStreamRef streamRef, void * info, size_t numEvents, vo
|
|||||||
|
|
||||||
- (void)rescanPathWithEvents:(BOOL)sendEvents {
|
- (void)rescanPathWithEvents:(BOOL)sendEvents {
|
||||||
NSArray<NSString*>* downloadFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:self.path error:nil];
|
NSArray<NSString*>* downloadFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:self.path error:nil];
|
||||||
|
NSMutableSet<NSString*>* fullSet = [NSMutableSet new];
|
||||||
for (NSString * file in downloadFiles) {
|
for (NSString * file in downloadFiles) {
|
||||||
|
[fullSet addObject:file];
|
||||||
if (![self.knownFiles containsObject:file]) {
|
if (![self.knownFiles containsObject:file]) {
|
||||||
if (sendEvents) {
|
if (sendEvents) {
|
||||||
[self.delegate watcher:self observedNewFileAtPath:file];
|
[self.delegate watcher:self observedNewFileAtPath:file];
|
||||||
}
|
}
|
||||||
[self.knownFiles addObject:file];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
self.knownFiles = fullSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>LSUIElement</key>
|
|
||||||
<true/>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
@ -19,13 +17,15 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>1.0</string>
|
<string>1.01</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1</string>
|
<string>2</string>
|
||||||
<key>LSMinimumSystemVersion</key>
|
<key>LSMinimumSystemVersion</key>
|
||||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
||||||
|
<key>LSUIElement</key>
|
||||||
|
<true/>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>Copyright © 2016 Thomas Denney. All rights reserved.</string>
|
<string>Copyright © 2016 Thomas Denney. All rights reserved.</string>
|
||||||
<key>NSMainNibFile</key>
|
<key>NSMainNibFile</key>
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||

|

|
||||||
|
|
||||||
This project is a clone of the [Windows
|
This project is a clone of the [Windows
|
||||||
uploader](https://codethemicrobit.com/uploader), but for OS X. Once launched,
|
uploader](https://pxt.microbit.org/uploader), but for OS X. Once launched,
|
||||||
the app runs in your menu bar and will automatically deploy any HEX files to
|
the app runs in your menu bar and will automatically deploy any HEX files to
|
||||||
your `micro:bit`. Like the Windows version, it is compatible with any browser
|
your `micro:bit`. Like the Windows version, it is compatible with any browser
|
||||||
that can run [codethemicrobit.com](http://codethemicrobit.com).
|
that can run [pxt.microbit.org](http://pxt.microbit.org).
|
||||||
|
|
||||||
## Install the built version
|
## Install the built version
|
||||||
|
|
||||||
|
BIN
clients/macuploader/Release/Microbit Uploader v1.01.zip
Normal file
@ -1,48 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 14
|
|
||||||
VisualStudioVersion = 14.0.25123.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{262852C6-CD72-467D-83FE-5EEB1973A190}") = "m.pxt.io", "app\m.pxt.io.jsproj", "{39122940-AB16-4CD4-A0CE-79A3EB863ECF}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Debug|ARM = Debug|ARM
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Debug|x86 = Debug|x86
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
Release|ARM = Release|ARM
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
Release|x86 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|ARM.Deploy.0 = Debug|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x64.Deploy.0 = Debug|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x86.Build.0 = Debug|x86
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x86.Deploy.0 = Debug|x86
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|ARM.Deploy.0 = Release|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x64.Build.0 = Release|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x64.Deploy.0 = Release|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x86.Build.0 = Release|x86
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x86.Deploy.0 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@ -1 +0,0 @@
|
|||||||
MainPackage=C:\gh\pxt-microbit\win10\app\bin\Debug\m.pxt.io_0.1.4.0_AnyCPU_Debug.appx
|
|
@ -1,85 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|AnyCPU">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>AnyCPU</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|ARM">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x86">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x86</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|AnyCPU">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>AnyCPU</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x86">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x86</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>39122940-ab16-4cd4-a0ce-79a3eb863ecf</ProjectGuid>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0'">
|
|
||||||
<VisualStudioVersion>14.0</VisualStudioVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\$(WMSJSProjectDirectory)\Microsoft.VisualStudio.$(WMSJSProject).Default.props" />
|
|
||||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\$(WMSJSProjectDirectory)\Microsoft.VisualStudio.$(WMSJSProject).props" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
|
||||||
<TargetPlatformVersion>10.0.10586.0</TargetPlatformVersion>
|
|
||||||
<TargetPlatformMinVersion>10.0.10240.0</TargetPlatformMinVersion>
|
|
||||||
<MinimumVisualStudioVersion>$(VersionNumberMajor).$(VersionNumberMinor)</MinimumVisualStudioVersion>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<PackageCertificateKeyFile>pxtwinapp_TemporaryKey.pfx</PackageCertificateKeyFile>
|
|
||||||
<AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>
|
|
||||||
<AppxBundle>Always</AppxBundle>
|
|
||||||
<AppxBundlePlatforms>neutral</AppxBundlePlatforms>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<AppxManifest Include="package.appxmanifest">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</AppxManifest>
|
|
||||||
<Content Include="msapp-error.js" />
|
|
||||||
<Content Include="msapp-error.css" />
|
|
||||||
<Content Include="msapp-error.html" />
|
|
||||||
<Content Include="images\LockScreenLogo.scale-200.png" />
|
|
||||||
<Content Include="images\SplashScreen.scale-200.png" />
|
|
||||||
<Content Include="images\Square150x150Logo.scale-200.png" />
|
|
||||||
<Content Include="images\Square44x44Logo.scale-200.png" />
|
|
||||||
<Content Include="images\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
|
||||||
<Content Include="images\StoreLogo.png" />
|
|
||||||
<Content Include="images\Wide310x150Logo.scale-200.png" />
|
|
||||||
<None Include="pxtwinapp_TemporaryKey.pfx" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\$(WMSJSProjectDirectory)\Microsoft.VisualStudio.$(WMSJSProject).targets" />
|
|
||||||
<!-- To modify your build process, add your task inside one of the targets below then uncomment
|
|
||||||
that target and the DisableFastUpToDateCheck PropertyGroup.
|
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
|
||||||
<Target Name="BeforeBuild">
|
|
||||||
</Target>
|
|
||||||
<Target Name="AfterBuild">
|
|
||||||
</Target>
|
|
||||||
<PropertyGroup>
|
|
||||||
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
|
|
||||||
</PropertyGroup>
|
|
||||||
-->
|
|
||||||
</Project>
|
|
@ -1,48 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 14
|
|
||||||
VisualStudioVersion = 14.0.25123.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{262852C6-CD72-467D-83FE-5EEB1973A190}") = "codethemicrobitapp", "codethemicrobitapp.jsproj", "{39122940-AB16-4CD4-A0CE-79A3EB863ECF}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Debug|ARM = Debug|ARM
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Debug|x86 = Debug|x86
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
Release|ARM = Release|ARM
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
Release|x86 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|ARM.Deploy.0 = Debug|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x64.Deploy.0 = Debug|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x86.Build.0 = Debug|x86
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x86.Deploy.0 = Debug|x86
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|ARM.Deploy.0 = Release|ARM
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x64.Build.0 = Release|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x64.Deploy.0 = Release|x64
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x86.Build.0 = Release|x86
|
|
||||||
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x86.Deploy.0 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 8.4 KiB |
@ -1,17 +0,0 @@
|
|||||||
body {
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tip {
|
|
||||||
font-size: 90%;
|
|
||||||
padding-left: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.paramName {
|
|
||||||
font-size: 100%;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.paramValue {
|
|
||||||
color: black;
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Navigation Error</title>
|
|
||||||
<link href="msapp-error.css" rel="stylesheet" type="text/css"/>
|
|
||||||
<script src="msapp-error.js" type="text/javascript"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Navigation Error</h1>
|
|
||||||
<div id="failureUrl" class="param">
|
|
||||||
<span>-</span><span class="paramName">failureUrl</span><span>=</span>
|
|
||||||
<span id="failureUrlValue" class="paramValue"></span>
|
|
||||||
<span class="tip">(indicates the url where the error occurred)</span><br/>
|
|
||||||
</div><br/>
|
|
||||||
<div id="httpStatus" class="param">
|
|
||||||
<span>-</span><span class="paramName">httpStatus</span><span>=</span>
|
|
||||||
<span id="httpStatusValue" class="paramValue"></span>
|
|
||||||
<span class="tip">(available when the error has an http status code)</span><br/>
|
|
||||||
</div><br/>
|
|
||||||
<div id="failureName">
|
|
||||||
<span>-</span><span class="paramName">failureName</span><span>=</span>
|
|
||||||
<span id="failureNameValue" class="paramValue"></span>
|
|
||||||
<span class="tip">(available only when the error does not have a http status code)</span><br/>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,22 +0,0 @@
|
|||||||
(function () {
|
|
||||||
var validParameterNames = [ "httpStatus", "failureName", "failureUrl" ];
|
|
||||||
|
|
||||||
function parseQueryParameters() {
|
|
||||||
var query = location.search.slice(1);
|
|
||||||
return query.split("&").reduce(function (queryParameters, rawPair) {
|
|
||||||
var pair = rawPair.split("=").map(decodeURIComponent);
|
|
||||||
queryParameters[pair[0]] = pair[1];
|
|
||||||
return queryParameters;
|
|
||||||
}, {});
|
|
||||||
}
|
|
||||||
|
|
||||||
function initialize() {
|
|
||||||
var queryParameters = parseQueryParameters();
|
|
||||||
validParameterNames.forEach(function (parameterName) {
|
|
||||||
var parameterValue = queryParameters[parameterName] || "N/A";
|
|
||||||
document.getElementById(parameterName + "Value").textContent = parameterValue;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", initialize);
|
|
||||||
}());
|
|
@ -1,50 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap mp">
|
|
||||||
<Identity Name="39122940-ab16-4cd4-a0ce-79a3eb863ecf" Version="0.1.5.0" Publisher="CN=jhalleux" />
|
|
||||||
<mp:PhoneIdentity PhoneProductId="39122940-ab16-4cd4-a0ce-79a3eb863ecf" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
|
|
||||||
<Properties>
|
|
||||||
<DisplayName>codethemicrobit</DisplayName>
|
|
||||||
<PublisherDisplayName>Microsoft</PublisherDisplayName>
|
|
||||||
<Logo>images\storelogo.png</Logo>
|
|
||||||
</Properties>
|
|
||||||
<Dependencies>
|
|
||||||
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
|
||||||
</Dependencies>
|
|
||||||
<Resources>
|
|
||||||
<Resource Language="x-generate" />
|
|
||||||
</Resources>
|
|
||||||
<Applications>
|
|
||||||
<Application Id="App" StartPage="https://codethemicrobit.com">
|
|
||||||
<uap:ApplicationContentUriRules>
|
|
||||||
<uap:Rule Match="https://m.pxt.io/" Type="include" WindowsRuntimeAccess="all" />
|
|
||||||
<uap:Rule Match="https://codemicrobit.com/" Type="include" WindowsRuntimeAccess="all" />
|
|
||||||
<uap:Rule Match="https://codethemicrobit.com/" Type="include" WindowsRuntimeAccess="all" />
|
|
||||||
</uap:ApplicationContentUriRules>
|
|
||||||
<uap:VisualElements DisplayName="code the micro:bit" Description="A code editor for the BBC micro:bit with Blocks or Javascript." BackgroundColor="white" Square150x150Logo="images\Square150x150Logo.png" Square44x44Logo="images\Square44x44Logo.png">
|
|
||||||
<uap:DefaultTile Wide310x150Logo="images\Wide310x150Logo.png" ShortName="code the micro:bit">
|
|
||||||
</uap:DefaultTile>
|
|
||||||
<uap:SplashScreen Image="images\splashscreen.png" />
|
|
||||||
</uap:VisualElements>
|
|
||||||
<Extensions>
|
|
||||||
<uap:Extension Category="windows.fileTypeAssociation">
|
|
||||||
<uap:FileTypeAssociation Name="microbithex">
|
|
||||||
<uap:DisplayName>BBC micro:bit binary file</uap:DisplayName>
|
|
||||||
<uap:SupportedFileTypes>
|
|
||||||
<uap:FileType ContentType="application/x-microbit-hex">.hex</uap:FileType>
|
|
||||||
</uap:SupportedFileTypes>
|
|
||||||
</uap:FileTypeAssociation>
|
|
||||||
</uap:Extension>
|
|
||||||
</Extensions>
|
|
||||||
</Application>
|
|
||||||
</Applications>
|
|
||||||
<Capabilities>
|
|
||||||
<Capability Name="internetClient" />
|
|
||||||
<uap:Capability Name="removableStorage" />
|
|
||||||
<DeviceCapability Name="bluetooth" />
|
|
||||||
<DeviceCapability Name="serialcommunication">
|
|
||||||
<Device Id="any">
|
|
||||||
<Function Type="name:serialPort" />
|
|
||||||
</Device>
|
|
||||||
</DeviceCapability>
|
|
||||||
</Capabilities>
|
|
||||||
</Package>
|
|
Before Width: | Height: | Size: 172 KiB |
Before Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 54 KiB |
@ -32,7 +32,7 @@ namespace Microsoft.MicroBit
|
|||||||
private void openEditor()
|
private void openEditor()
|
||||||
{
|
{
|
||||||
// lanch editor
|
// lanch editor
|
||||||
try { Process.Start("https://codethemicrobit.com#uploader"); } catch (Exception) { }
|
try { Process.Start("https://pxt.microbit.org#uploader"); } catch (Exception) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeFileWatch()
|
private void initializeFileWatch()
|
||||||
@ -236,7 +236,7 @@ namespace Microsoft.MicroBit
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Process.Start("https://codethemicrobit.com/uploader");
|
Process.Start("https://pxt.microbit.org/uploader");
|
||||||
}
|
}
|
||||||
catch (IOException) { }
|
catch (IOException) { }
|
||||||
}
|
}
|
||||||
|
23
cmds/cmds.ts
@ -13,17 +13,20 @@ export function deployCoreAsync(res: ts.pxtc.CompileResult) {
|
|||||||
return getBitDrivesAsync()
|
return getBitDrivesAsync()
|
||||||
.then(drives => {
|
.then(drives => {
|
||||||
if (drives.length == 0) {
|
if (drives.length == 0) {
|
||||||
console.log("cannot find any drives to deploy to")
|
console.log("cannot find any drives to deploy to");
|
||||||
} else {
|
return Promise.resolve(0);
|
||||||
console.log(`copy ${ts.pxtc.BINARY_HEX} to ` + drives.join(", "))
|
|
||||||
}
|
}
|
||||||
return Promise.map(drives, d =>
|
|
||||||
writeFileAsync(d + ts.pxtc.BINARY_HEX, res.outfiles[ts.pxtc.BINARY_HEX])
|
console.log(`copy ${ts.pxtc.BINARY_HEX} to ` + drives.join(", "));
|
||||||
.then(() => {
|
|
||||||
console.log("wrote hex file to " + d)
|
let writeHexFile = (filename: string) => {
|
||||||
}))
|
return writeFileAsync(filename + ts.pxtc.BINARY_HEX, res.outfiles[ts.pxtc.BINARY_HEX])
|
||||||
})
|
.then(() => console.log("wrote hex file to " + filename));
|
||||||
.then(() => { })
|
};
|
||||||
|
|
||||||
|
return Promise.map(drives, d => writeHexFile(d))
|
||||||
|
.then(() => drives.length);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBitDrivesAsync(): Promise<string[]> {
|
function getBitDrivesAsync(): Promise<string[]> {
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
<meta name="twitter:card" content="summary" />
|
|
||||||
<meta name="twitter:site" content="@codethemicrobit" />
|
|
||||||
<meta name="twitter:title" content="code the micro:bit" />
|
|
||||||
<meta name="twitter:description" content="Blocks+JavaScript for programming your micro:bit" />
|
|
||||||
<meta name="twitter:image" content="https://az851932.vo.msecnd.net/pub/drbwxcth" />
|
|
||||||
|
|
||||||
<meta property="og:title" content="micro:bit editor" />
|
|
||||||
<meta property="og:description" content="Blocks+JavaScript for programming your micro:bit" />
|
|
||||||
<meta property="og:site_name" content="code the micro:bit" />
|
|
||||||
<meta property="og:image" content="https://az851932.vo.msecnd.net/pub/drbwxcth" />
|
|
||||||
<!--
|
|
||||||
Canonical URL needs to wait until main release is updated.
|
|
||||||
<meta property="og:url" content="https://codethemicrobit.com" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="fb:app_id" content="" />
|
|
||||||
-->
|
|
@ -1,13 +0,0 @@
|
|||||||
<script type="text/javascript">
|
|
||||||
var appInsights=window.appInsights||function(config){
|
|
||||||
function r(config){t[config]=function(){var i=arguments;t.queue.push(function(){t[config].apply(t,i)})}}var t={config:config},u=document,e=window,o="script",s=u.createElement(o),i,f;for(s.src=config.url||"//az416426.vo.msecnd.net/scripts/a/ai.0.js",u.getElementsByTagName(o)[0].parentNode.appendChild(s),t.cookie=u.cookie,t.queue=[],i=["Event","Exception","Metric","PageView","Trace"];i.length;)r("track"+i.pop());return r("setAuthenticatedUserContext"),r("clearAuthenticatedUserContext"),config.disableExceptionTracking||(i="onerror",r("_"+i),f=e[i],e[i]=function(config,r,u,e,o){var s=f&&f(config,r,u,e,o);return s!==!0&&t["_"+i](config,r,u,e,o),s}),t
|
|
||||||
}({
|
|
||||||
instrumentationKey:"e9ae05ca-350b-427a-9775-3ba3f6efabce"
|
|
||||||
});window.appInsights=appInsights;
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
|
|
||||||
for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f)}})(document,window.mixpanel||[]);
|
|
||||||
|
|
||||||
mixpanel.init("762fef19c053a0ea4cec43d2fecae76e");
|
|
||||||
</script>
|
|
@ -1,21 +0,0 @@
|
|||||||
<meta name="twitter:card" content="summary" />
|
|
||||||
<meta name="twitter:site" content="@codethemicrobit" />
|
|
||||||
<meta name="twitter:title" content="@name@" />
|
|
||||||
<meta name="twitter:description" content="@description@" />
|
|
||||||
<meta name="twitter:image" content="@cardLogo@" />
|
|
||||||
|
|
||||||
<meta property="og:title" content="@name@" />
|
|
||||||
<meta property="og:site_name" content="code the micro:bit" />
|
|
||||||
<meta property="og:description" content="@description@" />
|
|
||||||
<meta property="og:image" content="@cardLogo@" />
|
|
||||||
<!--
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="fb:app_id" content="" />
|
|
||||||
-->
|
|
||||||
|
|
||||||
<link rel="apple-touch-icon" href="@appLogo@">
|
|
||||||
<link rel="icon" type="image/png" href="@appLogo@">
|
|
||||||
<link rel="mask-icon" href="https://az851932.vo.msecnd.net/pub/zwxazere/safari-pinned-tab.svg" color="#000000">
|
|
||||||
<link rel="shortcut icon" href="@appLogo@">
|
|
||||||
<meta name="theme-color" content="@accentColor@">
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
|||||||
#root .avatar .avatar-image {
|
|
||||||
background-image: url(https://az851932.vo.msecnd.net/pub/jovrytni/microbit.simplified.svg);
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
<script type="text/javascript">
|
|
||||||
var appInsights=window.appInsights||function(config){
|
|
||||||
function r(config){t[config]=function(){var i=arguments;t.queue.push(function(){t[config].apply(t,i)})}}var t={config:config},u=document,e=window,o="script",s=u.createElement(o),i,f;for(s.src=config.url||"//az416426.vo.msecnd.net/scripts/a/ai.0.js",u.getElementsByTagName(o)[0].parentNode.appendChild(s),t.cookie=u.cookie,t.queue=[],i=["Event","Exception","Metric","PageView","Trace"];i.length;)r("track"+i.pop());return r("setAuthenticatedUserContext"),r("clearAuthenticatedUserContext"),config.disableExceptionTracking||(i="onerror",r("_"+i),f=e[i],e[i]=function(config,r,u,e,o){var s=f&&f(config,r,u,e,o);return s!==!0&&t["_"+i](config,r,u,e,o),s}),t
|
|
||||||
}({
|
|
||||||
instrumentationKey:"e9ae05ca-350b-427a-9775-3ba3f6efabce"
|
|
||||||
});window.appInsights=appInsights;
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
|
|
||||||
for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f)}})(document,window.mixpanel||[]);
|
|
||||||
|
|
||||||
mixpanel.init("762fef19c053a0ea4cec43d2fecae76e");
|
|
||||||
</script>
|
|
@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "koduj z micro:bit",
|
|
||||||
"title": "koduj z micro:bit",
|
|
||||||
"docMenu": [
|
|
||||||
{
|
|
||||||
"name": "O nas",
|
|
||||||
"path": "/about"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Lekcje",
|
|
||||||
"path": "/lessons"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Instrukcja obsługi",
|
|
||||||
"path": "/reference"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Urządzenie",
|
|
||||||
"path": "/device"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
# Dokumentacja
|
|
||||||
|
|
||||||
Witamy na stronach dokumentacji!
|
|
||||||
|
|
||||||
* Przeglądnij [instrukcje obsługi](/reference)
|
|
||||||
* Dowiedz się więcej o [urządzeniu](/device)
|
|
||||||
* Wystartuj z [lekcjami](/lessons)
|
|
@ -79,7 +79,7 @@ When code is compiled to ARM machine code, the calls to JavaScript micro:bit fun
|
|||||||
|
|
||||||
## [Command Line Tools](/cli)
|
## [Command Line Tools](/cli)
|
||||||
|
|
||||||
Looking to use codethemicrobit.com in your favorite editor? Install the [command line tools](/cli) and get rolling!
|
Looking to use pxt.microbit.org in your favorite editor? Install the [command line tools](/cli) and get rolling!
|
||||||
|
|
||||||
## [Packages](/packages)
|
## [Packages](/packages)
|
||||||
|
|
||||||
|
3
docs/beta-ref.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"appref": "v"
|
||||||
|
}
|
@ -1,7 +1,6 @@
|
|||||||
# Unsupported configuration
|
# Unsupported configuration
|
||||||
|
|
||||||
[codethemicrobit.com](https://codethemicrobit.com) doesn't currently support
|
Your browser is currently not supported. The following configurations are supported:
|
||||||
your browser or operating system. The following configurations are supported:
|
|
||||||
|
|
||||||
## Windows
|
## Windows
|
||||||
|
|
||||||
@ -99,3 +98,6 @@ latest version of OS X then you'll be using the latest version of Safari.
|
|||||||
* Click 'About Safari'
|
* Click 'About Safari'
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
IT administrators should check which browser versions are supported
|
||||||
|
[here](/browsers/technical).
|
||||||
|
@ -1,6 +1,16 @@
|
|||||||
# Unsupported configuration
|
# Recommended browser for Linux
|
||||||
|
|
||||||
As you are using Linux, it is recommended that you use Mozilla Firefox or Google
|
As you are using Linux, it is recommended that you use [Mozilla
|
||||||
Chrome.
|
Firefox][firefox] or [Google Chrome][chrome].
|
||||||
|
|
||||||
Please see [here](/browsers) for more information.
|
Please see [here][technical] for technical information on which browsers are
|
||||||
|
supported, or [here][versions] to check which version you are using.
|
||||||
|
|
||||||
|
[edge]: https://www.microsoft.com/en-us/windows/microsoft-edge
|
||||||
|
[ie]: https://www.microsoft.com/en-us/download/internet-explorer.aspx
|
||||||
|
[firefox]: https://www.mozilla.org/en-US/firefox/new/
|
||||||
|
[chrome]: https://www.google.com/chrome/
|
||||||
|
[opera]: https://www.opera.com
|
||||||
|
[safari]: http://www.apple.com/safari/
|
||||||
|
[technical]: /browsers/technical
|
||||||
|
[versions]: /browsers
|
||||||
|
@ -1,6 +1,16 @@
|
|||||||
# Unsupported configuration
|
# Recommended browser for Mac
|
||||||
|
|
||||||
As you are using OS X, it is recommended that you use Safari. Alternatively,
|
As you are using a Mac, it is recommended that you use [Safari][]. Alternatively,
|
||||||
Google Chrome and Mozilla Firefox are also supported.
|
[Google Chrome][chrome] and [Mozilla Firefox][firefox] are also supported.
|
||||||
|
|
||||||
Please see [here](/browsers) for more information.
|
Please see [here][technical] for technical information on which browsers are
|
||||||
|
supported, or [here][versions] to check which version you are using.
|
||||||
|
|
||||||
|
[edge]: https://www.microsoft.com/en-us/windows/microsoft-edge
|
||||||
|
[ie]: https://www.microsoft.com/en-us/download/internet-explorer.aspx
|
||||||
|
[firefox]: https://www.mozilla.org/en-US/firefox/new/
|
||||||
|
[chrome]: https://www.google.com/chrome/
|
||||||
|
[opera]: https://www.opera.com
|
||||||
|
[safari]: http://www.apple.com/safari/
|
||||||
|
[technical]: /browsers/technical
|
||||||
|
[versions]: /browsers
|
||||||
|
36
docs/browsers/technical.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# Technical information about browser support
|
||||||
|
|
||||||
|
[pxt.microbit.org][] requires that you use a recent version of a modern
|
||||||
|
browser, such as Microsoft Edge, Google Chrome, Mozilla Firefox, Safari, Opera,
|
||||||
|
or IE11. This is because the editor uses modern web technologies such as [web
|
||||||
|
workers][] to enable compiling [TypeScript][] in the browser, or the using the
|
||||||
|
same [Monaco][] editor that powers [Visual Studio Code][].
|
||||||
|
|
||||||
|
[pxt.microbit.org]: https://pxt.microbit.org
|
||||||
|
[web workers]: http://www.w3.org/TR/workers/
|
||||||
|
[typescript]: http://www.typescriptlang.org
|
||||||
|
[monaco]: https://microsoft.github.io/monaco-editor/
|
||||||
|
[visual studio code]: http://code.visualstudio.com
|
||||||
|
|
||||||
|
Most modern browsers automatically update themselves, but in some environments
|
||||||
|
such as schools these automatic updates are disabled for security. **We
|
||||||
|
strongly recommend that you use the most recent version of any of these
|
||||||
|
browsers**, but if you can't then you must use at least:
|
||||||
|
|
||||||
|
| Browser | Minimum version | Release date | Windows | Mac |
|
||||||
|
| ----------------- | --------------- | -------------- | ----------- | ---------- |
|
||||||
|
| Edge | 12 | March 2015 | Windows 10+ | N/A |
|
||||||
|
| Internet Explorer | 11 | October 2013 | Windows 7+ | N/A |
|
||||||
|
| Mozilla Firefox | 31 ESR | July 2014 | Windows XP+ | OS X 10.6+ |
|
||||||
|
| Google Chrome | 38 | October 2014 | Windows XP+ | OS X 10.6+ |
|
||||||
|
| Safari | 9 | September 2015 | N/A | OS X 10.9+ |
|
||||||
|
| Opera | 21 | May 2014 | Windows 7+ | OS X 10.9+ |
|
||||||
|
|
||||||
|
|
||||||
|
Please see our information for which browsers are recommended for [Windows][],
|
||||||
|
[Mac][], [Linux][], or [Raspberry Pi][].
|
||||||
|
|
||||||
|
[Windows]: /browsers/windows
|
||||||
|
[Mac]: /browsers/mac
|
||||||
|
[Linux]: /browsers/linux
|
||||||
|
[Raspberry Pi]: /raspberry-pi
|
@ -1,8 +1,18 @@
|
|||||||
# Unsupported configuration
|
# Recommended browser for Windows
|
||||||
|
|
||||||
As you are using Windows, it is recommended that you use Microsoft Edge. If you
|
We recommend [Microsoft Edge][edge] if you are running Windows 10, but users on
|
||||||
are running a version of Windows prior to Windows 10, you can use Internet
|
Windows 7 or higher can use [Internet Explorer 11][ie] or recent versions of
|
||||||
Explorer 11. Alternatively, Google Chrome and Mozilla Firefox are also
|
[Mozilla Firefox][firefox], [Google Chrome][chrome], or [Opera][opera].
|
||||||
supported.
|
|
||||||
|
|
||||||
Please see [here](/browsers) for more information.
|
|
||||||
|
Please see [here][technical] for technical information on which browsers are
|
||||||
|
supported, or [here][versions] to check which version you are using.
|
||||||
|
|
||||||
|
[edge]: https://www.microsoft.com/en-us/windows/microsoft-edge
|
||||||
|
[ie]: https://www.microsoft.com/en-us/download/internet-explorer.aspx
|
||||||
|
[firefox]: https://www.mozilla.org/en-US/firefox/new/
|
||||||
|
[chrome]: https://www.google.com/chrome/
|
||||||
|
[opera]: https://www.opera.com
|
||||||
|
[safari]: http://www.apple.com/safari/
|
||||||
|
[technical]: /browsers/technical
|
||||||
|
[versions]: /browsers
|
||||||
|
@ -6,7 +6,7 @@ basic.forever(() => {
|
|||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
It is possible to use the codethemicrobit tools from a command line interface (CLI). The PXT CLI allows to
|
It is possible to use the tools from a command line interface (CLI). The PXT CLI allows to
|
||||||
* edit, compile or deploy JavaScript programs
|
* edit, compile or deploy JavaScript programs
|
||||||
* can easily be integrated in most IDEs. It comes with built-in support for [Visual Studio Code](/code)!
|
* can easily be integrated in most IDEs. It comes with built-in support for [Visual Studio Code](/code)!
|
||||||
* run a local web server for the web editor
|
* run a local web server for the web editor
|
||||||
|
@ -1,11 +1,40 @@
|
|||||||
# crocodile clips
|
# crocodile clips
|
||||||
|
|
||||||
The large holes at the bottom of the board are designed to attach alligator/crocodile clips.
|
The large holes at the bottom of the board are designed to attach alligator/crocodile clips
|
||||||
Register an event that will execute whenever the user attaches one side of the crocodile clip to the `GND` pin, then connects and disconnects the unattached side of the crocodile clip to pin `0`, `1`, or `2`.
|
to create electrical circuit with other components.
|
||||||
|
|
||||||
### Example: on pin pressed with random numbers
|
# ~hint
|
||||||
|
|
||||||
This example displays a random number every time the crocodile clip holds `GND` then connects and disconnects the `P0` pin. Each time the crocodile clip is firmly connected and disconnected from pin `P0`, the micro:bit will return a random Number between 0 and the parameter limit
|
**No crocodile clips!?!?!** Use wires or Aluminium foil! [Read more...](/device/foil-circuits)
|
||||||
|
|
||||||
|
# ~
|
||||||
|
|
||||||
|
|
||||||
|
## Connecting Crocodile Clips
|
||||||
|
|
||||||
|
The hole for ``P0`` and ``GND`` allow to grab the board on the side which makes for a great grip.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Pass one jaw in the hole and grab the side of the board with the other jaw.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
For the center holes, ``P1`` and ``P2``, you can also grab the bottom of the board but they are a bit harder to grip.
|
||||||
|
|
||||||
|
You can also grip the board between the jaws. In which case, you will want to make sure to avoid overlapping the jaws
|
||||||
|
with the other pins as it will create short-circuit in the board.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Adding a little tape helps keeping the crocodile clips in place.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Example: on pin pressed with random numbers
|
||||||
|
|
||||||
|
This example displays a random number every time the crocodile clip holds `GND` then connects and disconnects the `P0` pin.
|
||||||
|
Each time the crocodile clip is firmly connected and disconnected from pin `P0`, the micro:bit will return a random Number between 0 and the parameter limit.
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
input.onPinPressed(TouchPin.P0, () => {
|
input.onPinPressed(TouchPin.P0, () => {
|
||||||
@ -13,11 +42,6 @@ input.onPinPressed(TouchPin.P0, () => {
|
|||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
### Connecting Crocodile Clips
|
## See also
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### See also
|
|
||||||
|
|
||||||
[micro:bit pins](/device/pins), [pin is pressed](/reference/input/pin-is-pressed), [analog read pin](/reference/pins/analog-read-pin), [analog write pin](/reference/pins/analog-write-pin), [digital read pin](/reference/pins/digital-read-pin), [digital write pin](/reference/pins/digital-write-pin)
|
|
||||||
|
|
||||||
|
[micro:bit pins](/device/pins)
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
# Error codes
|
# Error codes
|
||||||
|
|
||||||
The micro:bit error codes
|
|
||||||
|
|
||||||
Your micro:bit may encounter a situation that prevents it from running your code. When this happens, a frowny face will appear on your micro:bit screen (see picture) followed by an error number.
|
Your micro:bit may encounter a situation that prevents it from running your code. When this happens, a frowny face will appear on your micro:bit screen (see picture) followed by an error number.
|
||||||
|
|
||||||
Below is a list of error numbers and what they mean:
|
Below is a list of error numbers and what they mean:
|
||||||
|
52
docs/device/foil-circuits.md
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# foil circuits
|
||||||
|
|
||||||
|
The large holes at the bottom of the board are designed to attach alligator/crocodile clips
|
||||||
|
to create electrical circuit with other components.
|
||||||
|
|
||||||
|
If you do not have crocodile clips at hand, dyou can use wires or even Aluminium foil to acheive the same result.
|
||||||
|
We will show you how to connect the micro:bit to headphones using Alumunium foil and tape.
|
||||||
|
|
||||||
|
https://youtu.be/mhXYyPuvpz0
|
||||||
|
|
||||||
|
### Materials
|
||||||
|
|
||||||
|
* micro:bit and battery pack (you can also power it via USB)
|
||||||
|
* a small piece of cardboard
|
||||||
|
* Aluminium foil
|
||||||
|
* tape
|
||||||
|
|
||||||
|
### Assembly instructions
|
||||||
|
|
||||||
|
Tape the micro:bit and battery pack to the card board. Make sure to remove the batteries while you are building your circuit.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Cut the thinest strip of foil possible and roll it into a cable. You can also try to fold, whatever works for you.
|
||||||
|
Build two of those wires.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Place the foil wire on the ``GND`` pin and attach with a piece of tape. Press hard to get the best connection between
|
||||||
|
the foil and the pin board. Make sure the foil is not overlapping with the other pins!
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Place the second wire on the ``P0`` pin the same way. Make sure the wire does not overlap with the other pins!
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Tape the headphone jack connector to the cardboard and roll the wire coming from ``GND`` around the metal base.
|
||||||
|
Make sure the wire does not touch the other metal rings on the jack.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Tape the second wire on the head of the jack connector.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
## See also
|
||||||
|
|
||||||
|
[micro:bit pins](/device/pins)
|
@ -91,3 +91,10 @@ basic.showString("d", 150)
|
|||||||
|
|
||||||
You will not see the LED at position `0,0` lit up because the `show string` function overwrites the whole display buffer.
|
You will not see the LED at position `0,0` lit up because the `show string` function overwrites the whole display buffer.
|
||||||
|
|
||||||
|
|
||||||
|
### Pins: P3, P4, P6, P7, P9, P10
|
||||||
|
|
||||||
|
These pins are coupled to the LED matrix display, and also it’s associated ambient light sensing mode.
|
||||||
|
To disable the display driver feature (which will automatically disable the light sensing feature) use the function [led.enable](/reference/led/enable).
|
||||||
|
|
||||||
|
More information at http://tech.microbit.org/hardware/edgeconnector_ds/ .
|
||||||
|
@ -29,7 +29,7 @@ Unfortunately, using the serial library requires quite a bit of a setup.
|
|||||||
If you are using the Google Chrome browser, you can use our extension to get serial data streaming in the editor.
|
If you are using the Google Chrome browser, you can use our extension to get serial data streaming in the editor.
|
||||||
|
|
||||||
* Install the [Extension for BBC micro:bit](https://chrome.google.com/webstore/detail/extension-for-bbc-microbi/cihhkhnngbjlhahcfmhekmbnnjcjdbge?hl=en-US) on the Chrome Web Store.
|
* Install the [Extension for BBC micro:bit](https://chrome.google.com/webstore/detail/extension-for-bbc-microbi/cihhkhnngbjlhahcfmhekmbnnjcjdbge?hl=en-US) on the Chrome Web Store.
|
||||||
* Restart Chrome and open the [web editor](https://codethemicrobit.com)
|
* Restart Chrome and open the [web editor](https://pxt.microbit.org)
|
||||||
* The serial data will show below the simulator
|
* The serial data will show below the simulator
|
||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
# Running programs on your micro:bit
|
# Uploading programs on your micro:bit
|
||||||
|
|
||||||
How to compile, transfer, and run a program on your micro:bit.
|
|
||||||
|
|
||||||
While you're writing and testing your programs, you'll mostly be [running them
|
While you're writing and testing your programs, you'll mostly be [running them
|
||||||
in the simulator](/device/simulator), but once you've finished your program you
|
in the simulator](/device/simulator), but once you've finished your program you
|
||||||
@ -12,173 +10,22 @@ The basic steps are:
|
|||||||
2. Click **Download** and download the `.hex` file
|
2. Click **Download** and download the `.hex` file
|
||||||
3. Copy the `.hex` file from your computer onto the micro:bit drive
|
3. Copy the `.hex` file from your computer onto the micro:bit drive
|
||||||
|
|
||||||
## Requirements
|

|
||||||
|
|
||||||
You need the following things to transfer and run a script on your micro:bit:
|
## Instructions
|
||||||
|
|
||||||
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
|
Pick the instructions for your operating system and browser:
|
||||||
the same cable that is commonly used to connect a smart phone to a computer.
|
|
||||||
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
|
|
||||||
|
|
||||||
## Step 1: Connect your micro:bit to your computer
|
* [Windows - Microsoft Edge](/device/usb/windows-edge)
|
||||||
|
* [Windows - Internet Explorer](/device/usb/windows-ie)
|
||||||
|
* [Windows - Chrome](/device/usb/windows-chrome)
|
||||||
|
* [Windows - Firefox](/device/usb/windows-firefox)
|
||||||
|
* [Mac - Safari](/device/usb/mac-safari)
|
||||||
|
* [Mac - Chrome](/device/usb/mac-chrome)
|
||||||
|
* [Mac - Firefox](/device/usb/mac-firefox)
|
||||||
|
|
||||||
First, connect the micro:bit:
|
### ~hint
|
||||||
|
|
||||||
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
|
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
|
||||||
|
|
||||||
2. Connect the other end of the USB cable to a USB port on your computer.
|
|
||||||
|
|
||||||
Your computer should recognise your micro:bit as a new drive. On computers
|
|
||||||
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
|
|
||||||
it appears as a new drive under Devices.
|
|
||||||
|
|
||||||
**Windows**
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
**Mac**
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Step 2: Download your program
|
|
||||||
|
|
||||||
1. Open your project on [codethemicrobit.com](https://codethemicrobit.com)
|
|
||||||
2. Click **Download**
|
|
||||||
3. When prompted, choose to **save** the compiled file onto your computer. The
|
|
||||||
prompt will be different depending on which browser you are using, or
|
|
||||||
whether you are using a Windows computer or a Mac
|
|
||||||
|
|
||||||
### Windows
|
|
||||||
|
|
||||||
#### Chrome
|
|
||||||
|
|
||||||
Your `.hex` file appears as a download at the bottom of the browser. Click on
|
|
||||||
the arrow next to the name of the file and then click **Show in folder**.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Drag and drop the `.hex` file from the download folder onto the `MICROBIT` drive.
|
|
||||||
|
|
||||||
#### Firefox
|
|
||||||
|
|
||||||
A window will appear asking whether you want to save or open the `.hex` file.
|
|
||||||
Select **Save File** and then select **OK**.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
The file will then appear in your downloads in the top right of your browser.
|
|
||||||
Click the **folder icon** next to the filename to open it in Windows Explorer.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Drag and drop the `.hex` file from the download folder onto the `MICROBIT` drive.
|
|
||||||
|
|
||||||
#### Microsoft Edge
|
|
||||||
|
|
||||||
A message will appear at the bottom of the browser asking what you want to do
|
|
||||||
with the file. Click **Save**:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Then click **Open folder** and drag and drop the file from your Downloads to
|
|
||||||
your `MICROBIT` drive.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
#### Internet Explorer
|
|
||||||
|
|
||||||
A message will appear at the bottom of the browser asking what you want to do
|
|
||||||
with the file. Click **Save**:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Then click **Open folder** and drag and drop the file from your Downloads to
|
|
||||||
your `MICROBIT` drive.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### Mac
|
|
||||||
|
|
||||||
#### Safari
|
|
||||||
|
|
||||||
When you select **Download** in Safari a file called `Unknown` will be
|
|
||||||
downloaded into your Downloads folder. Open your Downloads folder and drag and
|
|
||||||
drop the file onto your `MICROBIT` drive, under Devices:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
#### Firefox
|
|
||||||
|
|
||||||
A dialogue box will appear, asking whether you would like to open or save your
|
|
||||||
hex file. Select **Save file** and click **OK** and the file will then appear in
|
|
||||||
your downloads in the top right of your browser. Right click on the file and
|
|
||||||
click on **Show in Finder** and the file will appear in your downloads folder.
|
|
||||||
Select the file and drag and drop it onto your `MICROBIT` drive.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
#### Chrome
|
|
||||||
|
|
||||||
When you select **Download** in Chrome, the file will appear at the bottom of
|
|
||||||
the browser. Click on the small arrow and select **Show in Finder**. This will
|
|
||||||
show the file in your download folder. Drag and drop the file onto your
|
|
||||||
`MICROBIT` drive.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Step 3: Transfer the file to your micro:bit
|
|
||||||
|
|
||||||
* Once you've found the folder containing your `.hex` file, drag and drop it
|
|
||||||
onto your `MICROBIT` drive
|
|
||||||
* If you're using Windows, you can use **Send to** as described below
|
|
||||||
* The LED on the back of your micro:bit flashes during the transfer (which
|
|
||||||
should only take a few seconds).
|
|
||||||
* Once transferred, the code will run automatically on your micro:bit. To rerun
|
|
||||||
your program, press the reset button on the back of your micro:bit. The reset
|
|
||||||
button automatically runs the newest file on the micro:bit.
|
|
||||||
|
|
||||||
**Send to**: If you're using Windows you use *Send to* in File Explorer:
|
|
||||||
|
|
||||||
- In File Explorer, right-click on the hex file (created in Step 2 above), choose **Send to**, and then **MICROBIT**.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
By copying the script onto the `MICROBIT` drive, you have programmed it into the
|
|
||||||
flash memory on the micro:bit, which means even after you unplug the micro:bit,
|
|
||||||
your program will still run if the micro:bit is powered by battery.
|
|
||||||
|
|
||||||
If you want to save time, you can use the [micro:bit uploader](/uploader) to
|
|
||||||
automatically deploy hex files to your micro:bit. It works on Windows and is
|
|
||||||
compatible with any browser.
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
You can’t drag and drop more than one hex file at once onto your micro:bit. If
|
|
||||||
you try to drag and drop a second hex file onto your micro:bit before the first
|
|
||||||
file has finished downloading, then the second file may fail in different ways.
|
|
||||||
|
|
||||||
When the first program has been written to the micro:bit, the drive will
|
|
||||||
disengage. If you drag and drop a second file at this point it may not find the
|
|
||||||
drive and the second write will fail.
|
|
||||||
|
|
||||||
The errors may look like this:
|
|
||||||
|
|
||||||
**Windows**
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
**Mac**
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Or it may appear that there are two hex files on your micro:bit so the micro:bit
|
|
||||||
won’t be able to run multiple files. To rectify this, unplug your micro:bit and
|
|
||||||
plug it in again. Make sure that your micro:bit appears as `MICROBIT` and not
|
|
||||||
`MAINTENANCE`.
|
|
||||||
|
|
||||||
### See also
|
|
||||||
|
|
||||||
[Run code in a browser](/device/simulator)
|
|
||||||
|
|
||||||
|
### ~
|
||||||
|
69
docs/device/usb/mac-chrome.md
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Uploading from Chrome for Mac
|
||||||
|
|
||||||
|
While you're writing and testing your programs, you'll mostly be [running them
|
||||||
|
in the simulator](/device/simulator), but once you've finished your program you
|
||||||
|
can **compile** it and run it on your micro:bit.
|
||||||
|
|
||||||
|
The basic steps are:
|
||||||
|
|
||||||
|
1. Connect your micro:bit to your computer via USB
|
||||||
|
2. Click **Download** and download the `.hex` file
|
||||||
|
3. Copy the `.hex` file from your computer onto the micro:bit drive
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
You need the following things to transfer and run a script on your micro:bit:
|
||||||
|
|
||||||
|
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
|
||||||
|
the same cable that is commonly used to connect a smart phone to a computer.
|
||||||
|
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
|
||||||
|
|
||||||
|
## Step 1: Connect your micro:bit to your computer
|
||||||
|
|
||||||
|
First, connect the micro:bit:
|
||||||
|
|
||||||
|
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
|
||||||
|
|
||||||
|
2. Connect the other end of the USB cable to a USB port on your computer.
|
||||||
|
|
||||||
|
Your computer should recognise your micro:bit as a new drive. On computers
|
||||||
|
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
|
||||||
|
it appears as a new drive under Devices.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 2: Download your program
|
||||||
|
|
||||||
|
1. Open your project on [pxt.microbit.org](https://pxt.microbit.org)
|
||||||
|
2. Click **Download**
|
||||||
|
3. When prompted, choose to **save** the compiled file onto your computer. The
|
||||||
|
prompt will be different depending on which browser you are using, or
|
||||||
|
whether you are using a Windows computer or a Mac
|
||||||
|
|
||||||
|
When you select **Download** in Chrome, the file will appear at the bottom of
|
||||||
|
the browser. Click on the small arrow and select **Show in Finder**. This will
|
||||||
|
show the file in your download folder. Drag and drop the file onto your
|
||||||
|
`MICROBIT` drive.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 3: Transfer the file to your micro:bit
|
||||||
|
|
||||||
|
* Once you've found the folder containing your `.hex` file, drag and drop it
|
||||||
|
onto your `MICROBIT` drive
|
||||||
|
* The LED on the back of your micro:bit flashes during the transfer (which
|
||||||
|
should only take a few seconds).
|
||||||
|
* Once transferred, the code will run automatically on your micro:bit. To rerun
|
||||||
|
your program, press the reset button on the back of your micro:bit. The reset
|
||||||
|
button automatically runs the newest file on the micro:bit.
|
||||||
|
|
||||||
|
By copying the script onto the `MICROBIT` drive, you have programmed it into the
|
||||||
|
flash memory on the micro:bit, which means even after you unplug the micro:bit,
|
||||||
|
your program will still run if the micro:bit is powered by battery.
|
||||||
|
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
|
||||||
|
|
||||||
|
### ~
|
71
docs/device/usb/mac-firefox.md
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# Uploading from Firefox for Mac
|
||||||
|
|
||||||
|
While you're writing and testing your programs, you'll mostly be [running them
|
||||||
|
in the simulator](/device/simulator), but once you've finished your program you
|
||||||
|
can **compile** it and run it on your micro:bit.
|
||||||
|
|
||||||
|
The basic steps are:
|
||||||
|
|
||||||
|
1. Connect your micro:bit to your computer via USB
|
||||||
|
2. Click **Download** and download the `.hex` file
|
||||||
|
3. Copy the `.hex` file from your computer onto the micro:bit drive
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
You need the following things to transfer and run a script on your micro:bit:
|
||||||
|
|
||||||
|
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
|
||||||
|
the same cable that is commonly used to connect a smart phone to a computer.
|
||||||
|
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
|
||||||
|
|
||||||
|
## Step 1: Connect your micro:bit to your computer
|
||||||
|
|
||||||
|
First, connect the micro:bit:
|
||||||
|
|
||||||
|
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
|
||||||
|
|
||||||
|
2. Connect the other end of the USB cable to a USB port on your computer.
|
||||||
|
|
||||||
|
Your computer should recognise your micro:bit as a new drive. On computers
|
||||||
|
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
|
||||||
|
it appears as a new drive under Devices.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 2: Download your program
|
||||||
|
|
||||||
|
1. Open your project on [pxt.microbit.org](https://pxt.microbit.org)
|
||||||
|
2. Click **Download**
|
||||||
|
3. When prompted, choose to **save** the compiled file onto your computer. The
|
||||||
|
prompt will be different depending on which browser you are using, or
|
||||||
|
whether you are using a Windows computer or a Mac
|
||||||
|
|
||||||
|
A dialogue box will appear, asking whether you would like to open or save your
|
||||||
|
hex file. Select **Save file** and click **OK** and the file will then appear in
|
||||||
|
your downloads in the top right of your browser. Right click on the file and
|
||||||
|
click on **Show in Finder** and the file will appear in your downloads folder.
|
||||||
|
Select the file and drag and drop it onto your `MICROBIT` drive.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 3: Transfer the file to your micro:bit
|
||||||
|
|
||||||
|
* Once you've found the folder containing your `.hex` file, drag and drop it
|
||||||
|
onto your `MICROBIT` drive
|
||||||
|
* The LED on the back of your micro:bit flashes during the transfer (which
|
||||||
|
should only take a few seconds).
|
||||||
|
* Once transferred, the code will run automatically on your micro:bit. To rerun
|
||||||
|
your program, press the reset button on the back of your micro:bit. The reset
|
||||||
|
button automatically runs the newest file on the micro:bit.
|
||||||
|
|
||||||
|
By copying the script onto the `MICROBIT` drive, you have programmed it into the
|
||||||
|
flash memory on the micro:bit, which means even after you unplug the micro:bit,
|
||||||
|
your program will still run if the micro:bit is powered by battery.
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
|
||||||
|
|
||||||
|
### ~
|
68
docs/device/usb/mac-safari.md
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# Uploading from Safari for Mac
|
||||||
|
|
||||||
|
While you're writing and testing your programs, you'll mostly be [running them
|
||||||
|
in the simulator](/device/simulator), but once you've finished your program you
|
||||||
|
can **compile** it and run it on your micro:bit.
|
||||||
|
|
||||||
|
The basic steps are:
|
||||||
|
|
||||||
|
1. Connect your micro:bit to your computer via USB
|
||||||
|
2. Click **Download** and download the `.hex` file
|
||||||
|
3. Copy the `.hex` file from your computer onto the micro:bit drive
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
You need the following things to transfer and run a script on your micro:bit:
|
||||||
|
|
||||||
|
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
|
||||||
|
the same cable that is commonly used to connect a smart phone to a computer.
|
||||||
|
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
|
||||||
|
|
||||||
|
## Step 1: Connect your micro:bit to your computer
|
||||||
|
|
||||||
|
First, connect the micro:bit:
|
||||||
|
|
||||||
|
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
|
||||||
|
|
||||||
|
2. Connect the other end of the USB cable to a USB port on your computer.
|
||||||
|
|
||||||
|
Your computer should recognise your micro:bit as a new drive. On computers
|
||||||
|
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
|
||||||
|
it appears as a new drive under Devices.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 2: Download your program
|
||||||
|
|
||||||
|
1. Open your project on [pxt.microbit.org](https://pxt.microbit.org)
|
||||||
|
2. Click **Download**
|
||||||
|
3. When prompted, choose to **save** the compiled file onto your computer. The
|
||||||
|
prompt will be different depending on which browser you are using, or
|
||||||
|
whether you are using a Windows computer or a Mac
|
||||||
|
|
||||||
|
When you select **Download** in Safari a file called `Unknown` will be
|
||||||
|
downloaded into your Downloads folder. Open your Downloads folder and drag and
|
||||||
|
drop the file onto your `MICROBIT` drive, under Devices:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 3: Transfer the file to your micro:bit
|
||||||
|
|
||||||
|
* Once you've found the folder containing your `.hex` file, drag and drop it
|
||||||
|
onto your `MICROBIT` drive
|
||||||
|
* The LED on the back of your micro:bit flashes during the transfer (which
|
||||||
|
should only take a few seconds).
|
||||||
|
* Once transferred, the code will run automatically on your micro:bit. To rerun
|
||||||
|
your program, press the reset button on the back of your micro:bit. The reset
|
||||||
|
button automatically runs the newest file on the micro:bit.
|
||||||
|
|
||||||
|
By copying the script onto the `MICROBIT` drive, you have programmed it into the
|
||||||
|
flash memory on the micro:bit, which means even after you unplug the micro:bit,
|
||||||
|
your program will still run if the micro:bit is powered by battery.
|
||||||
|
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
|
||||||
|
|
||||||
|
### ~
|
24
docs/device/usb/troubleshooting.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Troubleshooting Transfer
|
||||||
|
|
||||||
|
You can’t drag and drop more than one hex file at once onto your micro:bit. If
|
||||||
|
you try to drag and drop a second hex file onto your micro:bit before the first
|
||||||
|
file has finished downloading, then the second file may fail in different ways.
|
||||||
|
|
||||||
|
When the first program has been written to the micro:bit, the drive will
|
||||||
|
disengage. If you drag and drop a second file at this point it may not find the
|
||||||
|
drive and the second write will fail.
|
||||||
|
|
||||||
|
The errors may look like this:
|
||||||
|
|
||||||
|
**Windows**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Mac**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Or it may appear that there are two hex files on your micro:bit so the micro:bit
|
||||||
|
won’t be able to run multiple files. To rectify this, unplug your micro:bit and
|
||||||
|
plug it in again. Make sure that your micro:bit appears as `MICROBIT` and not
|
||||||
|
`MAINTENANCE`.
|
79
docs/device/usb/windows-chrome.md
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
# Uploading from Chrome for Windows
|
||||||
|
|
||||||
|
While you're writing and testing your programs, you'll mostly be [running them
|
||||||
|
in the simulator](/device/simulator), but once you've finished your program you
|
||||||
|
can **compile** it and run it on your micro:bit.
|
||||||
|
|
||||||
|
The basic steps are:
|
||||||
|
|
||||||
|
1. Connect your micro:bit to your computer via USB
|
||||||
|
2. Click **Download** and download the `.hex` file
|
||||||
|
3. Copy the `.hex` file from your computer onto the micro:bit drive
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
You can use the [micro:bit uploader](/uploader) to automatically deploy ``.hex`` files to your micro:bit!
|
||||||
|

|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
You need the following things to transfer and run a script on your micro:bit:
|
||||||
|
|
||||||
|
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
|
||||||
|
the same cable that is commonly used to connect a smart phone to a computer.
|
||||||
|
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
|
||||||
|
|
||||||
|
## Step 1: Connect your micro:bit to your computer
|
||||||
|
|
||||||
|
First, connect the micro:bit:
|
||||||
|
|
||||||
|
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
|
||||||
|
|
||||||
|
2. Connect the other end of the USB cable to a USB port on your computer.
|
||||||
|
|
||||||
|
Your computer should recognise your micro:bit as a new drive. On computers
|
||||||
|
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
|
||||||
|
it appears as a new drive under Devices.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 2: Download your program
|
||||||
|
|
||||||
|
1. Open your project on [pxt.microbit.org](https://pxt.microbit.org)
|
||||||
|
2. Click **Download**
|
||||||
|
3. When prompted, choose to **save** the compiled file onto your computer. The
|
||||||
|
prompt will be different depending on which browser you are using, or
|
||||||
|
whether you are using a Windows computer or a Mac
|
||||||
|
|
||||||
|
Your `.hex` file appears as a download at the bottom of the browser. Click on
|
||||||
|
the arrow next to the name of the file and then click **Show in folder**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Drag and drop the `.hex` file from the download folder onto the `MICROBIT` drive.
|
||||||
|
|
||||||
|
## Step 3: Transfer the file to your micro:bit
|
||||||
|
|
||||||
|
* Once you've found the folder containing your `.hex` file, drag and drop it
|
||||||
|
onto your `MICROBIT` drive
|
||||||
|
* The LED on the back of your micro:bit flashes during the transfer (which
|
||||||
|
should only take a few seconds).
|
||||||
|
* Once transferred, the code will run automatically on your micro:bit. To rerun
|
||||||
|
your program, press the reset button on the back of your micro:bit. The reset
|
||||||
|
button automatically runs the newest file on the micro:bit.
|
||||||
|
|
||||||
|
In File Explorer, right-click on the hex file (created in Step 2 above), choose **Send to**, and then **MICROBIT**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
By copying the script onto the `MICROBIT` drive, you have programmed it into the
|
||||||
|
flash memory on the micro:bit, which means even after you unplug the micro:bit,
|
||||||
|
your program will still run if the micro:bit is powered by battery.
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
|
||||||
|
|
||||||
|
### ~
|
89
docs/device/usb/windows-edge.md
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
# Uploading from Edge on Windows
|
||||||
|
|
||||||
|
How to compile, transfer, and run a program on your micro:bit on **Microsoft Edge**.
|
||||||
|
|
||||||
|
While you're writing and testing your programs, you'll mostly be [running them
|
||||||
|
in the simulator](/device/simulator), but once you've finished your program you
|
||||||
|
can **compile** it and run it on your micro:bit.
|
||||||
|
|
||||||
|
The basic steps are:
|
||||||
|
|
||||||
|
1. Connect your micro:bit to your computer via USB
|
||||||
|
2. Click **Download** and download the `.hex` file
|
||||||
|
3. Copy the `.hex` file from your computer onto the micro:bit drive
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
You can use the [micro:bit uploader](/uploader) to automatically deploy ``.hex`` files to your micro:bit!
|
||||||
|

|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
You need the following things to transfer and run a script on your micro:bit:
|
||||||
|
|
||||||
|
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
|
||||||
|
the same cable that is commonly used to connect a smart phone to a computer.
|
||||||
|
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
|
||||||
|
|
||||||
|
## Step 1: Connect your micro:bit to your computer
|
||||||
|
|
||||||
|
First, connect the micro:bit:
|
||||||
|
|
||||||
|
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
|
||||||
|
|
||||||
|
2. Connect the other end of the USB cable to a USB port on your computer.
|
||||||
|
|
||||||
|
Your computer should recognise your micro:bit as a new drive. On computers
|
||||||
|
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
|
||||||
|
it appears as a new drive under Devices.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 2: Download your program
|
||||||
|
|
||||||
|
1. Open your project on [pxt.microbit.org](https://pxt.microbit.org)
|
||||||
|
2. Click **Download**
|
||||||
|
3. When prompted, choose to **save** the compiled file onto your computer. The
|
||||||
|
prompt will be different depending on which browser you are using, or
|
||||||
|
whether you are using a Windows computer or a Mac
|
||||||
|
|
||||||
|
A message will appear at the bottom of the browser asking what you want to do
|
||||||
|
with the file. Click **Save**:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Then click **Open folder** and drag and drop the file from your Downloads to
|
||||||
|
your `MICROBIT` drive.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 3: Transfer the file to your micro:bit
|
||||||
|
|
||||||
|
* Once you've found the folder containing your `.hex` file, drag and drop it
|
||||||
|
onto your `MICROBIT` drive
|
||||||
|
* If you're using Windows, you can use **Send to** as described below
|
||||||
|
* The LED on the back of your micro:bit flashes during the transfer (which
|
||||||
|
should only take a few seconds).
|
||||||
|
* Once transferred, the code will run automatically on your micro:bit. To rerun
|
||||||
|
your program, press the reset button on the back of your micro:bit. The reset
|
||||||
|
button automatically runs the newest file on the micro:bit.
|
||||||
|
|
||||||
|
In File Explorer, right-click on the hex file (created in Step 2 above), choose **Send to**, and then **MICROBIT**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
By copying the script onto the `MICROBIT` drive, you have programmed it into the
|
||||||
|
flash memory on the micro:bit, which means even after you unplug the micro:bit,
|
||||||
|
your program will still run if the micro:bit is powered by battery.
|
||||||
|
|
||||||
|
If you want to save time, you can use the [micro:bit uploader](/uploader) to
|
||||||
|
automatically deploy hex files to your micro:bit. It works on Windows and is
|
||||||
|
compatible with any browser.
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
|
||||||
|
|
||||||
|
### ~
|
86
docs/device/usb/windows-firefox.md
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
# Uploading from Firefox on Windows
|
||||||
|
|
||||||
|
How to compile, transfer, and run a program on your micro:bit on **Firefox for Windows**.
|
||||||
|
|
||||||
|
While you're writing and testing your programs, you'll mostly be [running them
|
||||||
|
in the simulator](/device/simulator), but once you've finished your program you
|
||||||
|
can **compile** it and run it on your micro:bit.
|
||||||
|
|
||||||
|
The basic steps are:
|
||||||
|
|
||||||
|
1. Connect your micro:bit to your computer via USB
|
||||||
|
2. Click **Download** and download the `.hex` file
|
||||||
|
3. Copy the `.hex` file from your computer onto the micro:bit drive
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
You can use the [micro:bit uploader](/uploader) to automatically deploy ``.hex`` files to your micro:bit!
|
||||||
|

|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
You need the following things to transfer and run a script on your micro:bit:
|
||||||
|
|
||||||
|
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
|
||||||
|
the same cable that is commonly used to connect a smart phone to a computer.
|
||||||
|
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
|
||||||
|
|
||||||
|
## Step 1: Connect your micro:bit to your computer
|
||||||
|
|
||||||
|
First, connect the micro:bit:
|
||||||
|
|
||||||
|
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
|
||||||
|
|
||||||
|
2. Connect the other end of the USB cable to a USB port on your computer.
|
||||||
|
|
||||||
|
Your computer should recognise your micro:bit as a new drive. On computers
|
||||||
|
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
|
||||||
|
it appears as a new drive under Devices.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 2: Download your program
|
||||||
|
|
||||||
|
1. Open your project on [pxt.microbit.org](https://pxt.microbit.org)
|
||||||
|
2. Click **Download**
|
||||||
|
3. When prompted, choose to **save** the compiled file onto your computer. The
|
||||||
|
prompt will be different depending on which browser you are using, or
|
||||||
|
whether you are using a Windows computer or a Mac
|
||||||
|
|
||||||
|
A window will appear asking whether you want to save or open the `.hex` file.
|
||||||
|
Select **Save File** and then select **OK**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The file will then appear in your downloads in the top right of your browser.
|
||||||
|
Click the **folder icon** next to the filename to open it in Windows Explorer.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Drag and drop the `.hex` file from the download folder onto the `MICROBIT` drive.
|
||||||
|
## Step 3: Transfer the file to your micro:bit
|
||||||
|
|
||||||
|
* Once you've found the folder containing your `.hex` file, drag and drop it
|
||||||
|
onto your `MICROBIT` drive
|
||||||
|
* If you're using Windows, you can use **Send to** as described below
|
||||||
|
* The LED on the back of your micro:bit flashes during the transfer (which
|
||||||
|
should only take a few seconds).
|
||||||
|
* Once transferred, the code will run automatically on your micro:bit. To rerun
|
||||||
|
your program, press the reset button on the back of your micro:bit. The reset
|
||||||
|
button automatically runs the newest file on the micro:bit.
|
||||||
|
|
||||||
|
In File Explorer, right-click on the hex file (created in Step 2 above), choose **Send to**, and then **MICROBIT**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
By copying the script onto the `MICROBIT` drive, you have programmed it into the
|
||||||
|
flash memory on the micro:bit, which means even after you unplug the micro:bit,
|
||||||
|
your program will still run if the micro:bit is powered by battery.
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
|
||||||
|
|
||||||
|
### ~
|
86
docs/device/usb/windows-ie.md
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
# Uploading from Internet Explorer on Windows
|
||||||
|
|
||||||
|
While you're writing and testing your programs, you'll mostly be [running them
|
||||||
|
in the simulator](/device/simulator), but once you've finished your program you
|
||||||
|
can **compile** it and run it on your micro:bit.
|
||||||
|
|
||||||
|
The basic steps are:
|
||||||
|
|
||||||
|
1. Connect your micro:bit to your computer via USB
|
||||||
|
2. Click **Download** and download the `.hex` file
|
||||||
|
3. Copy the `.hex` file from your computer onto the micro:bit drive
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
You can use the [micro:bit uploader](/uploader) to automatically deploy ``.hex`` files to your micro:bit!
|
||||||
|

|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
You need the following things to transfer and run a script on your micro:bit:
|
||||||
|
|
||||||
|
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
|
||||||
|
the same cable that is commonly used to connect a smart phone to a computer.
|
||||||
|
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
|
||||||
|
|
||||||
|
## Step 1: Connect your micro:bit to your computer
|
||||||
|
|
||||||
|
First, connect the micro:bit:
|
||||||
|
|
||||||
|
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
|
||||||
|
|
||||||
|
2. Connect the other end of the USB cable to a USB port on your computer.
|
||||||
|
|
||||||
|
Your computer should recognise your micro:bit as a new drive. On computers
|
||||||
|
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
|
||||||
|
it appears as a new drive under Devices.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 2: Download your program
|
||||||
|
|
||||||
|
1. Open your project on [pxt.microbit.org](https://pxt.microbit.org)
|
||||||
|
2. Click **Download**
|
||||||
|
3. When prompted, choose to **save** the compiled file onto your computer. The
|
||||||
|
prompt will be different depending on which browser you are using, or
|
||||||
|
whether you are using a Windows computer or a Mac
|
||||||
|
|
||||||
|
A message will appear at the bottom of the browser asking what you want to do
|
||||||
|
with the file. Click **Save**:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Then click **Open folder** and drag and drop the file from your Downloads to
|
||||||
|
your `MICROBIT` drive.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Step 3: Transfer the file to your micro:bit
|
||||||
|
|
||||||
|
* Once you've found the folder containing your `.hex` file, drag and drop it
|
||||||
|
onto your `MICROBIT` drive
|
||||||
|
* If you're using Windows, you can use **Send to** as described below
|
||||||
|
* The LED on the back of your micro:bit flashes during the transfer (which
|
||||||
|
should only take a few seconds).
|
||||||
|
* Once transferred, the code will run automatically on your micro:bit. To rerun
|
||||||
|
your program, press the reset button on the back of your micro:bit. The reset
|
||||||
|
button automatically runs the newest file on the micro:bit.
|
||||||
|
|
||||||
|
**Send to**: If you're using Windows you use *Send to* in File Explorer:
|
||||||
|
|
||||||
|
In File Explorer, right-click on the hex file (created in Step 2 above), choose **Send to**, and then **MICROBIT**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
By copying the script onto the `MICROBIT` drive, you have programmed it into the
|
||||||
|
flash memory on the micro:bit, which means even after you unplug the micro:bit,
|
||||||
|
your program will still run if the micro:bit is powered by battery.
|
||||||
|
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
|
||||||
|
|
||||||
|
### ~
|
13
docs/docs.md
@ -5,26 +5,27 @@
|
|||||||
### Things to do
|
### Things to do
|
||||||
|
|
||||||
* **[Getting Started](/getting-started)**
|
* **[Getting Started](/getting-started)**
|
||||||
* [Ten projects](/projects)
|
* [Projects](/projects)
|
||||||
|
* [Lessons](/lessons)
|
||||||
|
|
||||||
### Micro:bit reference
|
### @boardname@ reference
|
||||||
|
|
||||||
* [The micro:bit APIs](/reference)
|
* [The @boardname@ APIs](/reference)
|
||||||
* [The micro:bit device](/device)
|
* [The @boardname@ device](/device)
|
||||||
|
|
||||||
### Language and data reference
|
### Language and data reference
|
||||||
|
|
||||||
* [Blocks language](/blocks)
|
* [Blocks language](/blocks)
|
||||||
* [JavaScript language](/javascript)
|
* [JavaScript language](/javascript)
|
||||||
* [Streaming data](/streaming)
|
|
||||||
|
|
||||||
### More questions?
|
### More questions?
|
||||||
|
|
||||||
* [Frequently Asked Question](/faq)
|
* [Frequently Asked Question](/faq)
|
||||||
* [Help Translate](/translate)
|
* [Help Translate](/translate)
|
||||||
* [Release notes](/release-notes)
|
* [Embedding project](/share)
|
||||||
|
|
||||||
### Developers
|
### Developers
|
||||||
|
|
||||||
* [Command Line Interface](/cli)
|
* [Command Line Interface](/cli)
|
||||||
* Learn about [packages](/packages)
|
* Learn about [packages](/packages)
|
||||||
|
|
||||||
|