Compare commits

...

1039 Commits

Author SHA1 Message Date
8b1b1bb869 0.5.6 2016-10-12 04:50:08 -07:00
57deb1749f Bump pxt-core to 0.4.54 2016-10-12 04:50:06 -07:00
fb82b94f69 0.5.5 2016-10-12 04:03:19 -07:00
d321170da9 Bump pxt-core to 0.4.53 2016-10-12 04:03:17 -07:00
dff4f3adb3 basic motor block support 2016-10-11 22:58:53 -07:00
5d8a1b69f6 0.5.4 2016-10-11 19:42:10 -07:00
0b0c2c9466 merged latest pxt 2016-10-11 19:41:59 -07:00
895a099ebf 0.4.44 2016-10-11 19:36:36 -07:00
f7ed06108d Inputorg (#275)
* use typescript from workspace

* fixed tracking in localhost

* updated ordering of input/radio
2016-10-11 19:36:00 -07:00
0ffccdca85 Bump pxt-core to 0.4.52 2016-10-11 17:51:09 -07:00
9f5ebdfb78 Adding advanced attribute to blocks and categories (#273) 2016-10-11 13:48:25 -07:00
9319f10430 0.5.3 2016-10-11 11:43:38 -07:00
c4787e1028 support for rgb led in simulator 2016-10-11 11:41:51 -07:00
cb280af783 fix json in libs/hello 2016-10-11 10:13:30 -07:00
6e64e80c05 Revert "re-enabling sharing after bug has been fixed"
This reverts commit dde16fec14.
2016-10-11 09:37:53 -07:00
4201cb3070 0.5.2 2016-10-11 09:34:26 -07:00
dde16fec14 re-enabling sharing after bug has been fixed 2016-10-11 09:29:44 -07:00
ec7bade8f4 missed file in previous move 2016-10-11 09:21:24 -07:00
d738d8bbf5 0.5.1 2016-10-11 09:14:47 -07:00
a8b1e0bc04 bumping version number 2016-10-11 09:14:32 -07:00
114b7958bc 0.4.32 2016-10-11 09:13:05 -07:00
f45ae5950c 0.4.31 2016-10-11 09:09:25 -07:00
4cdfaf06c0 0.4.30 2016-10-11 09:08:41 -07:00
d48404eb37 integrated pxt-microbit 2016-10-11 09:08:31 -07:00
f4ac599ec2 Bump pxt-core to 0.4.51 2016-10-11 09:05:10 -07:00
a783cdda92 0.4.29 2016-10-11 13:33:35 +02:00
5900c8c9f5 update dependency 2016-10-11 13:32:42 +02:00
e1e8eab93f 0.4.43 2016-10-10 22:10:45 -07:00
dface9083f Bump pxt-core to 0.4.51 2016-10-10 22:10:43 -07:00
31d4afc897 0.4.42 2016-10-10 17:45:43 -07:00
8427e89eb6 updating to pxt 0.4.50 2016-10-10 16:31:47 -07:00
277d5a721c rename "microbit" package to "core" #414 (#270)
* rename "microbit" package to "core" #414

* shouldn't edit the package id.

* updating package.json

* updated the wrong version

* missed updating pxt.json of tests
2016-10-10 16:21:50 -07:00
3911c6522d integrate pxt-microbit changes 2016-10-10 14:43:33 -07:00
00cdb6f9f5 0.4.28 2016-10-10 13:35:54 -07:00
df14445320 updated travis file 2016-10-10 13:34:24 -07:00
553b692a9a 0.4.27 2016-10-10 13:19:17 -07:00
7f2fd0dd09 positioning systemled 2016-10-10 13:16:39 -07:00
ae6917c7b3 0.4.26 2016-10-10 13:03:20 -07:00
5c1d9a342b updated to core v0.5.4 2016-10-10 13:03:08 -07:00
d41724d239 0.4.25 2016-10-10 12:58:42 -07:00
d6a006d18f Bump pxt-core to 0.4.48 2016-10-10 11:25:24 -07:00
cace68acf4 updated hello sample 2016-10-10 11:20:25 -07:00
80131f2928 updated tilt tempo video 2016-10-10 11:04:00 -07:00
51bd8d57aa updated raspbian docs 2016-10-09 21:50:13 -07:00
68ef7c2fc2 fix initialization of Accelerometer (delayed in uBit.init()), enable DAL debugging 2016-10-08 15:15:01 +02:00
4c502f0825 bump pxt-calliope-core dependency 2016-10-08 12:23:29 +02:00
acd974b964 0.4.41 2016-10-07 18:20:56 -07:00
04e0529610 disabling embed 2016-10-07 18:20:42 -07:00
ee3f2e6470 0.4.40 2016-10-07 14:46:24 -07:00
29a4f3cf69 Bump pxt-core to 0.4.48 2016-10-07 14:46:22 -07:00
a2f1cef9ae Merge branch 'master' of github.com:Microsoft/pxt-calliope 2016-10-07 11:39:31 -07:00
e857a94e04 0.4.24 2016-10-07 18:48:34 +02:00
5649495a28 0.4.39 2016-10-07 09:22:29 -07:00
a8a9d7dcf0 Bump pxt-core to 0.4.47 2016-10-07 09:22:27 -07:00
09d7ebaf78 storing target id, version if available 2016-10-07 09:19:14 -07:00
5c6b4c454b 0.4.38 2016-10-07 02:53:34 -07:00
7e1408fc12 Bump pxt-core to 0.4.46 2016-10-07 02:53:32 -07:00
09dc67717c added nickname / github search flag 2016-10-07 02:53:18 -07:00
20dcd5ce34 0.4.37 2016-10-05 17:17:12 -07:00
e092961b5b Bump pxt-core to 0.4.45 2016-10-05 17:17:11 -07:00
28044af979 merge 2016-10-05 17:16:58 -07:00
a9ba0a8f90 adding sharing flags 2016-10-05 17:14:49 -07:00
871694f99f 0.4.36 2016-10-05 15:17:45 -07:00
8f6c81cd53 Bump pxt-core to 0.4.44 2016-10-05 15:17:44 -07:00
c819b815c4 adding sharing flag to pxtarget.json 2016-10-05 15:17:16 -07:00
a714970344 0.4.35 2016-10-04 08:42:57 -07:00
77df714a08 Bump pxt-core to 0.4.42 2016-10-04 08:42:57 -07:00
693a6ba8a9 Remove 3 converter tests with overflowing numbers 2016-10-04 08:20:30 -07:00
5a8122bc8a 0.4.34 2016-10-03 22:35:53 -07:00
c382fc5050 Bump pxt-core to 0.4.41 2016-10-03 22:35:51 -07:00
d69a82d167 updated telegraph project 2016-10-03 22:32:27 -07:00
a30ca46fef merging changes 2016-10-03 22:23:01 -07:00
a56226c08d updated hack-your-headphone lesson 2016-10-03 22:21:36 -07:00
87d34ba030 restructed banana lesson 2016-10-03 19:07:54 -07:00
091917b765 removed linking between projects 2016-10-03 18:55:09 -07:00
42a93a1682 updated accent color 2016-10-03 18:54:07 -07:00
aea09c1830 Minor fixes to guitar demo 2016-10-03 16:37:46 -07:00
5e9eec61c5 Reject promise when deploy to board fails (#267)
* Reject promise when deploy to board fails

* Change var to let
2016-10-03 15:26:41 -07:00
a34f765681 adding guitar to project list 2016-10-03 15:18:20 -07:00
2ae78fe6b8 Updated guitar lessons (#268)
* initial notes

* updated code samples

* splitting the page and preparing layout

* missing gamepad api

* added basic guitar activty md files

added initial draft of guitar lesson - in progress

* word smithing and adding detail for concepts listed

* word smithing and adding detail for concepts listed

* typo in file name

* missing macro

* replaced guitar.png with image from Julia Carlson

* adding a few pictures

* adding cards macros

* few tweaks

* image for accellerometer lesson xyz axis

* fixed the numbering buttons page
-fixed the numbering to restart for each section and asdded spaces after so they don't wrap

* adding a few video links

* pin-press - added circuit info

* more vids

* fixing latest commit

* edits to light sensor and pin-press

* updated descriptions, linking lesson

* pin-press and display-buttons updates
-added dode samples to pin press

* updated making video

* light-sensor updated numbering

* Clean up
Clean up of headings to template style, other fixes

* putting display in template
use h2 with "Step 1:" and image before text

* removed numbered lists for display & light
these topics are code complete

* more consistent formating
Acceleromenter, buttons, light sensosr

* Acceleration Lesson, added art
Lesson steps for Acceleration, art for degree F to C for Map anology+clean up of light sensor topic

* Pin Press code complete
some other basic fomats and edits

* Removed dashes in lesson names
renamed and fixed references to files with "-" in names

* rest of fles w/ dash in name changes

* fixed links to guitar activities

* updated acceleraomter section

* transparency 4 art, image text
added transarency and renamed art, added descriptive text for video and still images

* renamed art

* fixing the merge

* fixing hint

* moved step 2 outside ~hint block

* fixing snippets

* remove guitar from project list

* Duration/Materials consistent  format
moved out of ~avatar block
2016-10-03 14:59:58 -07:00
e983c76e2f Remove unneeded tests 2016-10-03 11:15:49 -07:00
ced4565d5c 0.4.23 2016-10-01 15:52:41 -07:00
2475058b94 0.4.22 2016-10-01 15:45:43 -07:00
c6ee0db81c Bump pxt-core to 0.4.39 2016-10-01 15:45:41 -07:00
1b96e6332a 0.4.21 2016-10-01 21:02:36 +02:00
1ceec1d3b4 0.4.20 2016-10-01 20:59:44 +02:00
2e9ddb48df 0.4.19 2016-10-01 20:58:45 +02:00
33207f33e5 0.4.33 2016-09-30 22:08:18 -07:00
a487e102ef Bump pxt-core to 0.4.39 2016-09-30 22:08:16 -07:00
a6ffa99ceb 0.4.32 2016-09-30 21:51:56 -07:00
d2aa02c259 Bump pxt-core to 0.4.37 2016-09-30 21:51:54 -07:00
563d76b90a 0.4.31 2016-09-30 10:56:30 -07:00
b433585403 disable persistence of cookies 2016-09-30 10:56:11 -07:00
576f37171a 0.4.30 2016-09-30 08:29:54 -07:00
0bd92a433d Bump pxt-core to 0.4.36 2016-09-30 08:29:52 -07:00
2d5f3421ba updated docs page tracking 2016-09-30 08:29:44 -07:00
7956c6e6a1 disable persistence when initializig mix panel 2016-09-30 08:14:13 -07:00
1f7a56a451 0.4.29 2016-09-29 22:46:54 -07:00
0ea4583b20 fix typo in tracking 2016-09-29 22:45:55 -07:00
4bccb435f7 0.4.28 2016-09-29 22:35:06 -07:00
749c2111d2 disaable user-voice, disable cookies in mixpanel 2016-09-29 22:31:10 -07:00
96991447f8 0.4.27 2016-09-29 22:15:19 -07:00
22f36a623b Bump pxt-core to 0.4.35 2016-09-29 22:15:17 -07:00
8a47793f48 reorg lesson 2016-09-29 22:15:04 -07:00
2296220ad7 updated logos 2016-09-29 16:23:37 -07:00
22864bd26a pointing to cloud compile service 2016-09-29 16:13:33 -07:00
574a9e01d5 updating pinmap 2016-09-29 15:25:57 -07:00
00278036a4 fixing pin mapping 2016-09-29 15:20:45 -07:00
5cfedf7343 0.4.26 2016-09-29 08:32:27 -07:00
13383e6232 adding sketeches 2016-09-29 08:32:15 -07:00
165cd0c67e Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-29 08:16:14 -07:00
9c8886116e fix for microsoft/pxt#396 2016-09-29 08:15:58 -07:00
fc495b928e Implement getPinAddress in simulator 2016-09-29 10:47:50 +01:00
17644d4947 0.4.25 2016-09-28 22:36:26 -07:00
068ea80a45 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-28 22:36:04 -07:00
7a86bbd6b9 Timingate (#265)
* draft lesson

* basic timing gates lesson
2016-09-28 22:35:53 -07:00
78fffe0e01 typos 2016-09-28 19:24:43 -07:00
7bf1a29c83 0.4.24 2016-09-28 18:08:18 -07:00
446ef4d7b7 Bump pxt-core to 0.4.33 2016-09-28 18:08:14 -07:00
ca3e3a43a5 0.4.23 2016-09-28 17:05:17 -07:00
2225be7af1 added org info 2016-09-28 15:25:58 -07:00
1ce863df96 0.4.22 2016-09-28 11:55:00 -07:00
68ae9864a9 Bump pxt-core to 0.4.32 2016-09-28 11:54:57 -07:00
8cd670b22a 0.4.21 2016-09-28 00:29:43 -07:00
a36038a048 Bump pxt-core to 0.4.30 2016-09-28 00:29:39 -07:00
9d4b31fe4d updated share docs 2016-09-28 00:29:27 -07:00
3ea6d1e6bb 0.4.20 2016-09-27 18:11:07 -07:00
1698c4a012 Bump pxt-core to 0.4.27 2016-09-27 18:11:06 -07:00
4b583e221b limited support for RGB led 2016-09-27 13:35:48 -07:00
c88645d0cd support for AB / Shake buttons 2016-09-27 11:00:21 -07:00
14e8eabd25 updated simulator ratio, domain names 2016-09-27 09:35:52 -07:00
5fab789763 merging microbit 2016-09-26 22:00:04 -07:00
2c39e249f9 New guitar project (#264) 2016-09-26 21:55:39 -07:00
c486a9db94 0.4.19 2016-09-26 16:31:02 -07:00
816438fa79 Bump pxt-core to 0.4.26 2016-09-26 16:30:58 -07:00
33eca3c507 tweaked colors 2016-09-26 15:10:37 -07:00
9ccfcf19d9 initial round of visual updates 2016-09-26 15:05:06 -07:00
5edd06c9b9 migrating instruction generation logic to pxt 2016-09-26 13:26:43 -07:00
a114dc32e7 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-26 10:00:13 -07:00
019bc34d90 Fixing hover text /help window for blocks are not correct 2016-09-26 09:59:52 -07:00
0676d780ab Fixing beat fraction typo (#263) 2016-09-23 22:27:57 -07:00
96e23d99b2 Merge pull request #261 from Microsoft/note_fix
Add annotation to Note.C in music enum
2016-09-23 12:56:41 -07:00
15b1f95394 Add annotation to Note.C in music enum 2016-09-22 14:36:37 -07:00
552b0d8165 0.4.18 2016-09-22 03:56:03 -07:00
faed492a87 Embed docs (#259)
* Generic instructions for embedding

* Wordpress instructions, update Markdown instructions

* Blogger instructions

* Squarespace instructions

* Google sites info

* Sway restrictions

* Correct order
2016-09-22 03:50:59 -07:00
0ce1738653 Remove comment re Safari in private mode 2016-09-22 09:27:46 +01:00
f5cabe6e94 0.4.17 2016-09-21 22:30:10 -07:00
f2e7a640f1 Bump pxt-core to 0.4.25 2016-09-21 22:30:08 -07:00
7fb057af66 0.4.16 2016-09-21 22:14:40 -07:00
c0b9329401 Bump pxt-core to 0.4.24 2016-09-21 22:14:33 -07:00
c04ddbb459 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-21 16:34:06 -07:00
4aac4ef92d Fixing hero lesson 2016-09-21 16:31:03 -07:00
979b2b892a avoid name collision (embed.md => share.md) 2016-09-21 15:01:43 -07:00
4c3f9910f7 0.4.15 2016-09-21 10:55:54 -07:00
9aef584966 Bump pxt-core to 0.4.21 2016-09-21 10:55:52 -07:00
e62d15ba85 Embed docs (#257)
* embed docs

* adding embed docs
2016-09-21 10:15:59 -07:00
adf97d9b5c Add information about Safari being unsupported in private browsing mode 2016-09-21 11:23:43 +01:00
2bb6c6ae27 0.4.14 2016-09-20 22:56:14 -07:00
0919eff0c5 Bump pxt-core to 0.4.18 2016-09-20 22:56:12 -07:00
e31279938b 0.4.13 2016-09-20 22:13:15 -07:00
2655843b74 Bump pxt-core to 0.4.17 2016-09-20 22:13:08 -07:00
527d323ea7 New electron client (#256) 2016-09-20 22:02:18 -07:00
5d40a48477 Merge pull request #255 from Microsoft/browser-versions
More detailed information about which browser versions are supported
2016-09-20 11:54:59 +01:00
850fb54f52 missing shims for devices namespace 2016-09-19 09:49:58 -07:00
6bb35c1a72 More detailed information about which browser versions are supported 2016-09-19 09:31:03 +01:00
6569231ba6 0.4.12 2016-09-16 00:05:53 -07:00
a3a1c8a480 Bump pxt-core to 0.4.15 2016-09-16 00:05:51 -07:00
c90dfaa6e7 added headphone part 2016-09-15 23:50:52 -07:00
02cd0e1da3 remove "receivednumberat" from blocks 2016-09-15 23:49:50 -07:00
0f9dde0c4e convert event source/value into TD_ID shims 2016-09-15 23:49:14 -07:00
1e0cd48316 updated docs 2016-09-15 11:04:45 -07:00
d959282c68 0.4.11 2016-09-15 10:50:25 -07:00
d513ad7713 Bump pxt-core to 0.4.13 2016-09-15 10:50:23 -07:00
b7da28285e adding stubs for bluetooth functions 2016-09-15 09:40:58 -07:00
dbaf406703 splitted usb transfer instructions 2016-09-15 08:35:01 -07:00
2cb467f22b 0.4.10 2016-09-15 07:26:32 -07:00
9585e2276d Bump pxt-core to 0.4.12 2016-09-15 07:26:29 -07:00
a591d9f072 Release build of Mac client 2016-09-15 09:25:33 +01:00
471a30ca3d Minimise memory usage in Mac app directory watcher 2016-09-15 09:24:09 +01:00
205b94afe8 Launch editor menu item in Mac app 2016-09-15 09:23:48 +01:00
18caf554e9 Use micro:bit image for Mac app icon
I’m continuing to use the same menu bar image, as usually these are black and white on OS X, compared to coloured images being common on the Windows task bar.
2016-09-15 09:17:54 +01:00
67cdf16fe4 Remove redundant values from MainMenu.xib
A small section of this file is still required to build and run the app (it contains metadata that declares that AppDelegate.m is the main implementation, for example).
2016-09-15 08:51:49 +01:00
bdbe8371dd 0.4.9 2016-09-14 22:50:29 -07:00
21a36eb9ee fixing broken image paths 2016-09-14 22:43:59 -07:00
376b20b035 0.4.8 2016-09-14 22:28:23 -07:00
7ce41b52aa fixing path in docs 2016-09-14 22:28:05 -07:00
46f7831e7c 0.4.7 2016-09-14 22:21:00 -07:00
dda29a5cb6 Bump pxt-core to 0.4.11 2016-09-14 22:20:58 -07:00
6e4f4595a2 updated usb images 2016-09-14 22:18:01 -07:00
cdbe1e513b 0.4.6 2016-09-14 20:38:49 -07:00
ae15c9a656 Bump pxt-core to 0.4.9 2016-09-14 20:38:47 -07:00
d993ff3a9d 0.4.5 2016-09-14 11:33:54 -07:00
13785a2438 OS X uploader (#252)
* Source for OS X uploader

* Readme for OS X uploader

* Export image

* .gitignore for Xcode project

* Remove redundant data

* Update readme instructions

* List formatting

* Remove personal copyright notice added by Xcode

* Added release build and updated readme

* point to doc cdn
2016-09-14 11:33:11 -07:00
4dfb77fcd7 0.4.4 2016-09-14 08:16:32 -07:00
70deffb665 Bump pxt-core to 0.4.8 2016-09-14 08:16:29 -07:00
41a148de28 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-14 08:14:41 -07:00
886e071d7f updated about to link to docs 2016-09-14 08:14:04 -07:00
8a58d664c3 adding clear image in stopanimation 2016-09-14 07:54:35 -07:00
71d1155f21 Add file forgotten in 50473255a8 2016-09-14 12:31:52 +03:00
167c1d8fce loading board definition from pxtarget.json 2016-09-13 15:32:12 -07:00
e59ae37954 moving neopixel state to pxt 2016-09-13 13:09:02 -07:00
72a621ec8b mvoing edge connector to pxt 2016-09-13 12:48:07 -07:00
d6ff930333 fix capitalized file names 2016-09-13 10:36:25 -07:00
54a7ac81ea Recommended browser documentation (#251)
* Documentation page for unsupported browsers

* Update unsupported documentation with mac info

* Blur irrelevant information in version screenshots

* Rename to Peli's suggested path

* Browser recommendation for each platform
2016-09-13 10:33:06 -07:00
e5d985dbf1 moving boardhost to pxt 2016-09-13 09:59:34 -07:00
9db91d89d6 refactor part global lists 2016-09-13 09:44:58 -07:00
1fa9bf12d5 refactoring dalboard 2016-09-12 21:29:55 -07:00
61bab257eb 0.4.3 2016-09-12 11:45:22 -07:00
2e90b351da updated other download picture 2016-09-12 11:33:16 -07:00
801bd6c7a0 udpated download pictures 2016-09-12 11:30:12 -07:00
777ba40899 0.4.2 2016-09-12 11:19:41 -07:00
0d11c16ecf Bump pxt-core to 0.4.3 2016-09-12 11:19:39 -07:00
9c1628b977 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-12 11:11:12 -07:00
953b362b34 Download instructions (#250)
* Images of micro:bit attached t ostuff

* Cropped and enhanced USB images

* Define paths for USB images

* Added new matching criteria for images

* Help URL

* Add paths for all images

* Cropped images so they look better on dialog

* Add link to uploader
2016-09-12 11:10:30 -07:00
8b40850a94 tweaks to neopixel rendering 2016-09-11 21:55:54 -07:00
fc3a02cc41 0.4.1 2016-09-11 18:07:11 +01:00
80f2ff6757 Bump to 0.4 to match pxt-core 2016-09-11 18:07:05 +01:00
6f790d167c 0.3.89 2016-09-11 18:06:20 +01:00
ac7502074a Bump pxt-core to 0.4.2 2016-09-11 18:06:20 +01:00
50473255a8 Utylize the new target.css file 2016-09-11 17:51:41 +01:00
910772d54e refacotring various simulator features into pxt 2016-09-09 22:56:26 -07:00
33f12f9ecc 0.3.88 2016-09-09 16:41:31 -07:00
01fa4ef53a Bump pxt-core to 0.3.102 2016-09-09 16:41:14 -07:00
3858b0a0a0 moving wiring to pxt 2016-09-09 15:01:29 -07:00
da30afb121 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-09 13:43:45 -07:00
086bcf372f remove dependencies on dal.d.ts 2016-09-09 13:43:41 -07:00
236e7337e2 0.3.87 2016-09-09 20:49:21 +01:00
4cf223271f Bump pxt-core to 0.3.100 2016-09-09 20:49:21 +01:00
10180f4729 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-09-09 20:49:19 +01:00
618dd33221 No longer used 2016-09-09 20:33:11 +01:00
7356e5e52e New index.html expansion 2016-09-09 20:26:18 +01:00
a59d148eb5 0.3.86 2016-09-09 12:23:25 -07:00
34ce687bbd Bump pxt-core to 0.3.98 2016-09-09 12:23:24 -07:00
5e241ed566 Use new doc templates 2016-09-09 20:19:52 +01:00
dcb2b21e66 removing dal dependency 2016-09-09 11:36:36 -07:00
95669e174a Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-09 09:59:21 -07:00
aca7d6113d enable streams in pxtarget 2016-09-09 09:59:07 -07:00
ef4b06a087 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-09 15:19:58 +01:00
afa69c23c4 0.3.85 2016-09-09 11:35:45 +01:00
8229e71d0a Bump pxt-core to 0.3.97 2016-09-09 11:35:45 +01:00
93770e5821 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-09-09 10:17:35 +01:00
cb8e28beb0 Bump pxt-microbit-core to 0.5.0 2016-09-09 10:17:28 +01:00
8c7e6055ff enabling parts in target 2016-09-09 01:39:52 -07:00
8450db55ac 0.3.84 2016-09-09 01:25:28 -07:00
c63e2c85f1 new part definitions (#247)
* working on new part definitions

* draft of new part definitions

* updates comments

* starting new allocator

* starting from the old allocator

* alloc internals renaming

* alloc minor renaming

* alloc internal renaming

* progress on new parts definition

* progress on new part defs allocator

* refactors BBLoc; progress on new allocator

* more progress on new allocator

* finishing new allocator

* deleting old allocator

* moves new allocator and part definitions

* porting to new part definitions

* refactors instructions for new definitions

* debugging new allocator

* fixes ground and power wire colros

* fixing new part definition bugs

* fixes wire end offsets; fixes NeoPixel placement

* fixes colorGroup issue

* fixes led matrix wiring

* naming tweaks

* fixes instructions regressions

* typo
2016-09-09 01:23:39 -07:00
d8fc11a688 0.3.83 2016-09-09 01:20:45 -07:00
847a29848d Bump pxt-core to 0.3.96 2016-09-09 01:20:43 -07:00
39f4372ee5 0.3.82 2016-09-08 23:39:26 -07:00
a8bbbea8ed Bump pxt-core to 0.3.95 2016-09-08 23:39:24 -07:00
91a8d05e45 updated loc strings 2016-09-08 23:11:58 -07:00
3ecedd3a32 0.3.81 2016-09-08 01:02:46 -07:00
b6390d77dd Bump pxt-core to 0.3.94 2016-09-08 01:02:40 -07:00
e8f9e0f023 lighter rendering of breadboard in grayed 2016-09-08 00:54:19 -07:00
2bacb58fdd simpler instructions 2016-09-08 00:46:43 -07:00
af8babfea2 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-08 00:03:33 -07:00
1ee6274100 added raspberry-pi instructions 2016-09-08 00:00:07 -07:00
7448db5b98 makes instruction panels inline-block 2016-09-07 15:00:42 -07:00
983645403b 0.3.80 2016-09-07 11:49:41 -07:00
7a9f382bee Merge pull request #240 from Microsoft/neopixel-improvement
improves neopixel simulator
2016-09-07 11:22:40 -07:00
e59fd8469b improves neopixel simulator 2016-09-07 10:58:44 -07:00
008c886de9 0.3.79 2016-09-07 16:51:08 +01:00
c87fa30738 Bump pxt-core to 0.3.93 2016-09-07 16:51:08 +01:00
dd9d1299fa Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-09-07 16:27:42 +01:00
6a7d1bd95c Support for object literals
bump pxt-microbit-core to 0.4.4
see https://github.com/Microsoft/pxt/issues/287
2016-09-07 16:27:28 +01:00
dfe270d259 Correct filename of data.csv in radio challenge 2016-09-07 11:32:41 +01:00
6deb0683b6 Add GitHub URL property 2016-09-07 10:33:36 +01:00
0a746f5bbe 0.3.78 2016-09-06 20:41:04 -07:00
066408c317 Bump pxt-core to 0.3.92 2016-09-06 20:41:02 -07:00
90f7b229d1 0.3.77 2016-09-06 13:41:41 -07:00
c54e0b0e9d Bump pxt-core to 0.3.90 2016-09-06 13:41:35 -07:00
ea088ac828 renaming docs image files 2016-09-06 13:31:47 -07:00
29cf4d3e53 uses croc clips in instructions only for micro:bit 2016-09-06 10:52:22 -07:00
6d637eefd7 scaling, cropping,blurring 2016-09-06 10:06:09 -07:00
6310e96ac2 Merge pull request #239 from Microsoft/usb-docs-update
.hex file download and USB transfer docs update
2016-09-06 09:10:06 -07:00
dbb1e31822 Remove DS_STORE 2016-09-06 10:01:12 +01:00
5376bc2dce Rename images, remove redundant images 2016-09-06 09:57:45 +01:00
57bd293df8 Move arrow position on doc image 2016-09-06 09:52:17 +01:00
e570d46755 Rewrite instructions on downloading files to make them more clear 2016-09-06 09:49:08 +01:00
d37f284fce Added arrows to images and updated instructions 2016-09-06 09:28:20 +01:00
b716226889 Images for Windows 2016-09-06 09:05:33 +01:00
1bd19cc1a0 support list micro:bit on linux 2016-09-06 00:12:57 -07:00
ac8c9c5e85 Updating editor screenshots in js/cal, fixes #230 2016-09-05 09:04:03 -07:00
057260c483 Update OS X Firefox screenshots and instructions 2016-09-05 16:46:56 +01:00
568ae32f81 Update screenshot and instructions for OS X Chrome 2016-09-05 16:32:41 +01:00
ae605ff829 Update OS X file transfer screenshot 2016-09-05 16:22:06 +01:00
f25ddb1085 OS X screenshot 2016-09-05 15:50:27 +01:00
f175f973f0 0.3.76 2016-09-05 14:26:24 +01:00
c7e5fa490e Bump pxt-core to 0.3.87 2016-09-05 14:26:24 +01:00
61a29f7c67 Always diplay sad face on errors; use nullCheck() function; see https://github.com/Microsoft/pxt/issues/302 2016-09-05 14:26:07 +01:00
50293fc654 don't repace spaces 2016-09-02 21:38:22 -07:00
a9ecadaf09 Merge pull request #238 from Microsoft/power-usage
Direct power wires for single usages
2016-09-02 21:13:15 -07:00
6e56107eb5 Merge branch 'master' into power-usage 2016-09-02 16:12:48 -07:00
1f077beb65 directly wires power if there is single usage 2016-09-02 16:11:58 -07:00
8fff762156 removed uwp info 2016-09-02 16:08:49 -07:00
cebded2526 Merge pull request #237 from Microsoft/power-usage
finer grain power wires based on usage
2016-09-02 16:07:02 -07:00
13f53d730a fixes instruction steps for finer power usage 2016-09-02 15:43:26 -07:00
8adcab1cab finer grain power wires based on usage 2016-09-02 15:24:16 -07:00
8cb5f442f9 0.3.75 2016-09-02 12:07:49 -07:00
96448d5237 Bump pxt-core to 0.3.86 2016-09-02 12:07:34 -07:00
30f01bb0ac 0.3.74 2016-09-02 17:32:54 +01:00
3d0b397de2 Bump pxt-core to 0.3.85 2016-09-02 17:32:54 +01:00
e0de55d689 Add pxtrt::runtimeWarning() support; see https://github.com/Microsoft/pxt/issues/31 2016-09-02 17:29:40 +01:00
7637a98f07 0.3.73 2016-09-02 16:54:27 +01:00
95f94e0886 Bump pxt-core to 0.3.84 2016-09-02 16:54:26 +01:00
9a2367cf8e Add dummy implementations for some bluetooth functions to avoid crashes 2016-09-02 16:03:55 +01:00
15fecb77c4 0.3.72 2016-09-01 23:23:16 -07:00
4f69bbabfb Bump pxt-core to 0.3.82 2016-09-01 23:23:13 -07:00
8351ed0513 Merge pull request #227 from Microsoft/max6675
adds MAX6675; adds general SPI & I2C support to sim
2016-09-01 22:48:33 -07:00
c34b0a1aeb Merge branch 'master' into max6675 2016-09-01 22:48:02 -07:00
9bcd44d7e4 0.3.71 2016-09-01 22:39:31 -07:00
3403da8ce8 Bump pxt-core to 0.3.81 2016-09-01 22:39:27 -07:00
39c146329f perf optimization 2016-09-01 22:18:36 -07:00
8d0d0a7e9a 0.3.70 2016-09-01 22:00:15 -07:00
61b3783dd4 Bump pxt-core to 0.3.80 2016-09-01 22:00:13 -07:00
da16428842 merging master 2016-09-01 21:12:03 -07:00
359c456577 adds full-page instruction printing 2016-09-01 19:07:01 -07:00
b3d9c167e1 0.3.69 2016-09-01 17:13:25 -07:00
78398b220f Bump pxt-core to 0.3.79 2016-09-01 17:13:24 -07:00
a656fbbd7b embedding parts svg files in pxt.json 2016-09-01 16:24:12 -07:00
e681cc8c97 added parts to microbit 2016-09-01 15:37:39 -07:00
03beec9c49 0.3.68 2016-09-01 12:13:07 -07:00
1600644be5 Bump pxt-core to 0.3.77 2016-09-01 12:13:06 -07:00
a3dd64eb4c Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-01 12:12:48 -07:00
b865cce44e embedding neopixel / speaker svgs 2016-09-01 10:56:06 -07:00
dc42900c7f merges with master 2016-09-01 10:08:32 -07:00
dcc3bd95fe ignores max6675 2016-09-01 10:07:11 -07:00
61e63831aa 0.3.67 2016-09-01 09:10:49 -07:00
5651c3b9ba Bump pxt-core to 0.3.76 2016-09-01 09:10:44 -07:00
a562557bca Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-01 08:59:31 -07:00
d890c05229 moving parts .svg under simulator 2016-09-01 08:57:20 -07:00
4340e1f7ed Rename instructions.html to siminstructions.html; fixes #234 2016-09-01 16:47:32 +01:00
e2e4c68f85 0.3.66 2016-09-01 08:05:39 -07:00
3f6a3089f1 Bump pxt-core to 0.3.75 2016-09-01 08:05:35 -07:00
84a0c0fe56 0.3.65 2016-09-01 06:59:50 -07:00
5237b86cf5 docs cleanup 2016-09-01 06:49:39 -07:00
473950e491 0.3.64 2016-09-01 05:50:27 -07:00
fd33610511 Bump pxt-core to 0.3.74 2016-09-01 05:50:25 -07:00
47ea4e01d2 more docs cleanup 2016-09-01 05:28:27 -07:00
16199cfcea Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-01 05:11:58 -07:00
8a4556e70c Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-01 05:08:35 -07:00
bfc2641637 various docs cleanup 2016-09-01 05:08:27 -07:00
ef7fdc2ef7 Rename pxsim.pxt to pxsim.pxtcore 2016-09-01 13:06:03 +01:00
a8b427fd89 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-09-01 12:13:54 +01:00
79c23e2e2a Bump pxt-microbit-core to 0.4.2 with class support 2016-09-01 12:13:40 +01:00
4070d4e691 Merge branch 'master' into max6675 2016-08-31 22:41:59 -07:00
7048156b46 draws small wires for small micro:bit pins 2016-08-31 22:41:30 -07:00
c11acce579 0.3.63 2016-08-31 22:30:24 -07:00
f79551073e Bump pxt-core to 0.3.72 2016-08-31 22:30:23 -07:00
232758805b removes "debugger" statement 2016-08-31 21:56:46 -07:00
211d4e5538 adds max6675 2016-08-31 21:55:55 -07:00
374d8c590d adds spi and i2c pins 2016-08-31 21:53:48 -07:00
c6c133ef9e Merge pull request #225 from Microsoft/generic-part
Adds support for generic parts; fixes generic boards to utilize BoardHost
2016-08-31 20:49:03 -07:00
817e86f5aa Merge branch 'master' into generic-part 2016-08-31 20:44:03 -07:00
19e33d029d removes dead code 2016-08-31 20:15:59 -07:00
e3671ca809 Merge branch 'arduino' into generic-part 2016-08-31 19:37:57 -07:00
1f3a2ab6fe adds generic parts to instructions parts list and requirements panels 2016-08-31 19:37:20 -07:00
dad3e89577 adds "extraColumnOffset" for generic parts 2016-08-31 19:28:28 -07:00
df9d3c4444 0.3.62 2016-08-31 19:22:39 -07:00
edc489c83d Merge pull request #223 from Microsoft/breadboarding
wires, breadboarding, hardware components and Arduino support
2016-08-31 19:17:23 -07:00
fb29af8011 Merge branch 'master' into breadboarding 2016-08-31 19:11:03 -07:00
516def7a3f 0.3.61 2016-08-31 19:10:31 -07:00
b5cb8deb93 Bump pxt-core to 0.3.71 2016-08-31 19:10:29 -07:00
658083b4eb removes all experimental boards 2016-08-31 19:03:11 -07:00
1441129355 adds support for generic components 2016-08-31 19:01:59 -07:00
2b87b26f00 adds support for arduino zero 2016-08-31 18:03:34 -07:00
741facc769 Merge branch 'master' into breadboarding 2016-08-31 16:47:40 -07:00
41a5bc72a1 0.3.60 2016-08-31 16:47:19 -07:00
9d5e93b879 Bump pxt-core to 0.3.69 2016-08-31 16:47:17 -07:00
32e0cb0fe8 Merge branch 'master' into breadboarding 2016-08-31 16:37:14 -07:00
a224259e74 0.3.59 2016-08-31 16:36:35 -07:00
c144f3a15d Bump pxt-core to 0.3.68 2016-08-31 16:36:34 -07:00
a3fa07463f Merge branch 'master' into breadboarding 2016-08-31 16:24:31 -07:00
aa20f2fa4d 0.3.58 2016-08-31 16:24:07 -07:00
4a1399de59 Bump pxt-core to 0.3.67 2016-08-31 16:24:06 -07:00
0b8e5c12c3 merging vnumber 2016-08-31 15:44:11 -07:00
445066776b 0.3.57 2016-08-31 15:42:18 -07:00
6cb204c548 Bump pxt-core to 0.3.66 2016-08-31 15:42:16 -07:00
6ed6a525fd 0.3.56 2016-08-31 15:41:46 -07:00
ba6dc9f136 Bump pxt-core to 0.3.66 2016-08-31 15:41:44 -07:00
98bc8d2a27 0.3.56 2016-08-31 15:20:34 -07:00
58d0e238e3 Bump pxt-core to 0.3.65 2016-08-31 15:20:33 -07:00
ae17d4380e re-adds arduino board definitino 2016-08-31 14:55:58 -07:00
f79b726f87 tiny progress on generic part support 2016-08-31 14:48:44 -07:00
0f3c7b8c0f Merge branch 'breadboarding' of https://github.com/Microsoft/pxt-microbit into breadboarding 2016-08-31 14:07:16 -07:00
dac6f5af73 specifying packages needed to render blocks 2016-08-31 14:07:10 -07:00
99fb074952 adds more padding under breadboard 2016-08-31 14:03:25 -07:00
66ba26586f fixes wire highlighting in instructions 2016-08-31 13:59:20 -07:00
e27c4de108 micro:bit wireframe 2016-08-31 13:39:47 -07:00
f19a110953 Merge branch 'breadboarding' of github.com:Microsoft/pxt-microbit into breadboarding 2016-08-31 11:34:58 -07:00
626055d3eb fixes microbit board height issue 2016-08-31 11:34:49 -07:00
9085c98c7f merging TD_ID 2016-08-31 11:23:30 -07:00
85e3148f23 Merge branch 'breadboarding' of https://github.com/Microsoft/pxt-microbit into breadboarding 2016-08-31 11:22:38 -07:00
60f8dd8228 annotating note with TD_ID 2016-08-31 11:22:07 -07:00
c2e37a2c6e refactoring instructions to work with boardHost 2016-08-31 11:14:16 -07:00
b4ad4819a5 adding additional built-in parts 2016-08-31 08:46:44 -07:00
d9f2c7cc42 don't show text cursor on labels 2016-08-31 05:31:09 -07:00
15638d2767 don't use 'let' in .html files 2016-08-31 04:55:26 -07:00
5ecd20583b Merge branch 'master' into breadboarding 2016-08-30 21:41:17 -07:00
4c27d62796 removing external boards 2016-08-30 21:15:27 -07:00
90da72a8de support for resizing simulator based on usage of parts 2016-08-30 17:18:03 -07:00
8f50beb938 adds new custom NeoPixel svg 2016-08-30 15:59:02 -07:00
52527dd584 fixes micro:bit + breadboard sim size issue 2016-08-30 15:33:57 -07:00
fc0faf5181 removes unused m:b params 2016-08-30 14:17:17 -07:00
cd9589e562 adds "boardhost" to handle composition of ...
... breadboard, board, wires, and definition allocation.
2016-08-30 14:13:44 -07:00
a34bcee7a2 added simulator 2016-08-30 13:39:31 -07:00
d011cdb37e updated cli / vscode docs 2016-08-30 13:34:05 -07:00
af7c51b954 renames state -> board 2016-08-30 12:42:30 -07:00
a65e71f3b1 moves all of pxt-arduino breadboarding here...
... see pxt-arduino history starting here: acd49bb795
2016-08-30 11:55:00 -07:00
89e899cc79 splits m:b simulator state 2016-08-30 11:51:32 -07:00
b37e823b57 0.3.55 2016-08-30 11:35:31 -07:00
8cb31daa48 Adding CLI pointer 2016-08-30 11:35:16 -07:00
a984778dfd renames simsvg and libmbit 2016-08-30 11:27:29 -07:00
008cbf543f adds "speaker" parts annotation 2016-08-30 11:17:15 -07:00
61ee841431 adds arduino & speaker svgs 2016-08-30 11:15:24 -07:00
e856d59235 0.3.54 2016-08-30 12:50:18 +02:00
32753d3395 Bump pxt-core to 0.3.61 2016-08-30 12:50:18 +02:00
7b11a04727 Upgrade pxt-microbit-core to 0.4.1 2016-08-30 12:48:58 +02:00
6d6c053e4f 0.3.53 2016-08-29 23:25:12 -07:00
1008fdd371 Bump pxt-core to 0.3.60 2016-08-29 23:25:11 -07:00
ddc2b7437b re-ordering of blocks in docs 2016-08-29 14:49:51 -07:00
b9c95ebb1e 0.3.52 2016-08-29 13:26:01 -07:00
b16d02ec66 Bump pxt-core to 0.3.59 2016-08-29 13:25:58 -07:00
38fb36087a fixing local deployment (pxtc import issue) 2016-08-26 17:51:15 -07:00
5dbbc2266f 0.3.51 2016-08-26 12:17:42 -07:00
2a22001e02 0.3.50 2016-08-26 12:12:32 -07:00
214ff25995 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-08-26 12:01:14 -07:00
f4768d99ff Merge pull request #220 from Microsoft/parts
adds "parts" annotations
2016-08-26 12:00:59 -07:00
8792f9fe36 0.3.49 2016-08-26 11:56:22 -07:00
3d45bef910 Bump pxt-core to 0.3.56 2016-08-26 11:56:20 -07:00
3de6b33163 added README.md in default blocks target 2016-08-26 09:58:13 -07:00
3f1c03ea51 added search / watch excludes 2016-08-26 09:31:06 -07:00
a4063d636d merging changes 2016-08-26 08:36:49 -07:00
92b5b76171 Add target-specific favicon; see https://github.com/Microsoft/pxt/issues/54 2016-08-26 16:35:13 +02:00
51d285b0b0 Set target-specific avatar; fixes https://github.com/Microsoft/pxt/issues/97 2016-08-26 16:15:58 +02:00
4d8afdd3ae Format 2016-08-26 16:12:22 +02:00
13b21ad275 0.3.48 2016-08-26 15:24:48 +02:00
d90a43a6d8 Bump pxt-core to 0.3.55 2016-08-26 15:24:48 +02:00
6fd14e718d Use the new pxtc namespace 2016-08-26 15:19:04 +02:00
c79f043529 0.3.47 2016-08-26 13:18:35 +02:00
3a676c7151 Bump pxt-core to 0.3.53 2016-08-26 13:18:34 +02:00
0023710209 String/ptr -> boolean helpers added 2016-08-26 13:14:48 +02:00
0756091e8c Remove st/ldglb (no longer used) 2016-08-26 11:09:18 +02:00
8144df0023 0.3.47 2016-08-25 22:19:12 -07:00
b2137e2622 Bump pxt-core to 0.3.52 2016-08-25 22:19:11 -07:00
39b30c8ae1 0.3.46 2016-08-25 16:02:54 -07:00
1c5d6316cc Bump pxt-core to 0.3.51 2016-08-25 16:02:53 -07:00
6d4d681898 Link to pxt package docs 2016-08-25 17:44:53 +02:00
7053fd1490 Ref-counting fix 2016-08-25 15:45:43 +02:00
e7a49acac0 0.3.45 2016-08-24 15:03:29 +03:00
d76cfb6e2e Bump pxt-core to 0.3.49 2016-08-24 15:03:28 +03:00
538f08052d Make Image ref-counted; fixes #171 2016-08-24 15:02:55 +03:00
b6fed71c58 0.3.44 2016-08-24 14:38:50 +03:00
6c86f98b66 Bump pxt-core to 0.3.48 2016-08-24 14:38:50 +03:00
26797545c6 0.3.43 2016-08-24 14:28:20 +03:00
3ce8aa1f47 Bump pxt-core to 0.3.47 2016-08-24 14:28:20 +03:00
8b46698f50 adds "parts" annotations...
...to libs/microbit and libs/microbit-bluetooth
2016-08-22 08:48:48 -07:00
47401e947c Missing a reference to the "Compile" button, changed to Download. 2016-08-19 11:09:12 -07:00
718cc9d530 Add script for running tests as in travis 2016-08-19 13:46:30 +03:00
b83d777144 0.3.42 2016-08-18 16:11:54 -07:00
cfb9acea34 Bump pxt-core to 0.3.46 2016-08-18 16:11:52 -07:00
53189830a1 Merge pull request #207 from Microsoft/microsoftsam/compiletodownload
Converting the term "Compile" to "Download" in the docs
2016-08-18 14:39:29 -07:00
67da22c135 Converting the term "Compile" to "Download" in the docs microsoft/pxt#236 2016-08-18 13:17:05 -07:00
7c7014a25f 0.3.41 2016-08-18 11:57:52 -07:00
851f395ec9 Bump pxt-core to 0.3.45 2016-08-18 11:57:51 -07:00
a343cbd065 0.3.40 2016-08-18 11:24:39 -07:00
a2c042f715 Bump pxt-core to 0.3.43 2016-08-18 11:24:33 -07:00
a4a97f31cb 0.3.39 2016-08-18 18:33:59 +03:00
5bd6a384ae Bump pxt-core to 0.3.42 2016-08-18 18:33:58 +03:00
943393dfa3 updated solution of uploader app 2016-08-18 08:32:36 -07:00
7089aa9c54 Merge pull request #206 from sgk/music-changeTempo-fix
Fix changeTempo() calculation
2016-08-18 07:45:49 -07:00
bd9e456bc5 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-08-18 07:43:39 -07:00
ea82d066c9 cleaning out old images 2016-08-18 07:23:26 -07:00
bb8338a0f0 launch editor with #uploader tag to notify client that uploader is available 2016-08-18 07:02:19 -07:00
b24b65abcd Call init() before using beatsPerMinute. 2016-08-18 22:19:03 +09:00
2cc0523f9a Fix changeTempo() calculation 2016-08-18 22:13:12 +09:00
a78f7f9601 0.3.38 2016-08-18 15:55:34 +03:00
b1cf3246ae Revert "Use embedded version of microbit to avoid yotta build"
This reverts commit 8eb3376cf5.
2016-08-18 15:55:23 +03:00
24eb6f64db 0.3.37 2016-08-18 15:31:31 +03:00
0c99eaf7bf Bump pxt-core to 0.3.40 2016-08-18 15:31:31 +03:00
8eb3376cf5 Use embedded version of microbit to avoid yotta build 2016-08-18 14:26:56 +03:00
b863d5663d Add buffer shift rotate tests (moved from pxt) 2016-08-18 10:52:19 +03:00
aeb4cb6a17 0.3.36 2016-08-17 23:27:03 -07:00
fd88e0b7f0 Bump pxt-core to 0.3.39 2016-08-17 23:27:00 -07:00
ea0d2d4d02 add i2c fram to package list 2016-08-17 18:23:08 -07:00
adff537013 0.3.35 2016-08-17 17:06:44 -07:00
19fc284884 Bump pxt-core to 0.3.38 2016-08-17 17:06:42 -07:00
5d9f85828d updated blocks template 2016-08-17 17:05:10 -07:00
9f31637000 support for max-duration in pulse-in 2016-08-17 11:35:54 -07:00
8e811b913e adding pins.pulseIn API 2016-08-17 11:18:15 -07:00
269254796d add descriptions 2016-08-17 09:44:15 -07:00
46995cbd54 Adding max6675 package in built-in list 2016-08-17 09:44:08 -07:00
380488528f Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-08-17 08:40:45 -07:00
aca863f436 adding translation docs 2016-08-17 08:39:50 -07:00
a1ec25fd79 0.3.34 2016-08-17 18:09:20 +03:00
3e9d6d5895 Bump pxt-core to 0.3.37 2016-08-17 18:09:19 +03:00
719370f6b0 Use the new lambdas 2016-08-17 18:08:46 +03:00
2780497d4f 0.3.33 2016-08-17 17:15:09 +03:00
3eeaf2eddc Bump pxt-core to 0.3.36 2016-08-17 17:15:09 +03:00
eb3e91420c 0.3.32 2016-08-17 15:09:56 +03:00
38cd913020 Bump pxt-core to 0.3.35 2016-08-17 15:08:24 +03:00
9159c297a5 added wait-micros function 2016-08-16 17:04:21 -07:00
851687dba8 0.3.31 2016-08-16 13:44:38 -07:00
28b8006ec5 removing spurious logging 2016-08-16 10:11:55 -07:00
271128c075 answering questions about saving 2016-08-16 09:21:41 -07:00
a04ca0d715 0.3.30 2016-08-16 07:46:43 -07:00
8b89fe721d Bump pxt-core to 0.3.34 2016-08-16 07:46:39 -07:00
1baf04b1fd added links to packages 2016-08-15 23:16:10 -07:00
6c7f0f911c 0.3.29 2016-08-15 15:44:05 -07:00
f2008f9263 Bump pxt-core to 0.3.33 2016-08-15 15:44:03 -07:00
62127f7269 Updated VS code instructions 2016-08-15 11:03:03 -07:00
740cedd978 added docs 2016-08-12 16:15:41 -07:00
4278ff2b37 0.3.28 2016-08-12 08:36:34 -07:00
e7bea34d95 Bump pxt-core to 0.3.32 2016-08-12 08:36:33 -07:00
825409b697 0.3.27 2016-08-12 04:03:06 -07:00
8f72ac0094 Bump pxt-core to 0.3.31 2016-08-12 04:03:03 -07:00
8a6bb610e3 updated description 2016-08-12 03:37:27 -07:00
94dc141062 0.3.26 2016-08-11 16:33:03 -07:00
286dd1e50b Bump pxt-core to 0.3.29 2016-08-11 16:33:00 -07:00
6451d9add9 0.3.25 2016-08-11 16:24:34 -07:00
fd1dcde86b Bump pxt-core to 0.3.28 2016-08-11 16:24:30 -07:00
99947a9e21 0.3.24 2016-08-11 16:07:31 -07:00
a69239abed Bump pxt-core to 0.3.27 2016-08-11 16:07:29 -07:00
fd06fae050 0.3.23 2016-08-11 15:05:30 -07:00
7fbb056edf Bump pxt-core to 0.3.26 2016-08-11 15:05:29 -07:00
06758863fb 0.3.22 2016-08-11 14:38:08 -07:00
ad8af16a5a 0.3.21 2016-08-11 14:15:02 -07:00
70dd6bcac5 Bump pxt-core to 0.3.25 2016-08-11 14:14:59 -07:00
b103423a53 0.3.20 2016-08-11 12:11:04 -07:00
a82a44e587 Bump pxt-core to 0.3.23 2016-08-11 12:11:02 -07:00
e6f612283f remove dead page 2016-08-11 11:41:59 -07:00
fcd60876ab Removing streaming menu dialog 2016-08-11 11:41:07 -07:00
5daa9a0bb6 broken links 2016-08-11 10:44:17 -07:00
4fb3926073 fix snippets 2016-08-11 10:40:48 -07:00
73932f4619 0.3.19 2016-08-10 23:27:46 -07:00
c99138b02e adding SPI support 2016-08-10 23:26:58 -07:00
64d584681a docs tweaks 2016-08-10 16:09:57 -07:00
9788dd49cc fix testsnippet crash 2016-08-10 14:06:26 -07:00
9d15c4e270 fixing docs issues 2016-08-10 13:46:11 -07:00
fe7b06d763 0.3.18 2016-08-10 13:12:26 -07:00
0e0275e496 doc fixes 2016-08-10 13:10:40 -07:00
ffd4d96539 properly escape values in json payload 2016-08-10 09:28:22 -07:00
a6b4c9645a Merge pull request #199 from Microsoft/ignore-snippets
-ignore snippet notation
2016-08-10 08:29:05 -07:00
a9141d027f Add package info for server side check 2016-08-10 13:44:10 +01:00
807e581c3d Addition of ignore notation
Some snippets are designed to show syntax errors or refer to earlier variables. In this case the automated checker needs to avoid compiling them
2016-08-10 13:43:48 +01:00
41a4dfeb68 Documentation snippet fixes 2016-08-10 10:51:55 +01:00
4430391e87 0.3.17 2016-08-09 22:16:31 -07:00
81667f4df5 Bump pxt-core to 0.3.22 2016-08-09 22:16:28 -07:00
835048132c adjustments to electron app 2016-08-09 22:08:46 -07:00
00217305c2 0.3.16 2016-08-09 12:38:30 -07:00
85e8a70f76 Bump pxt-core to 0.3.21 2016-08-09 12:38:28 -07:00
bbdf27de5a adding pxt-neopixel to pre-populated package list 2016-08-09 11:02:23 -07:00
3e63d4083e update title 2016-08-09 10:27:39 -07:00
d1b8e3c752 added electron host 2016-08-09 09:55:37 -07:00
1164feb754 More snippet types 2016-08-09 16:55:43 +01:00
9ebd9d4f04 Add more snippet types for better detection 2016-08-09 16:52:24 +01:00
9fd2a3a3e6 Remove trailing whitespace 2016-08-09 16:39:50 +01:00
7f40889103 Add package info to mic docs (for testing) 2016-08-09 16:35:45 +01:00
ee37b4a959 Add package info to radio docs (for testing) 2016-08-09 16:28:08 +01:00
99d05ec91b Merge branch 'master' of https://github.com/thomasdenney/pxt-microbit 2016-08-09 16:11:27 +01:00
412e5bd034 Fix doc comment 2016-08-09 16:10:53 +01:00
141420d337 Correct Bluetooth doc comment 2016-08-09 16:05:25 +01:00
084f83ba1b Merge branch 'master' of https://github.com/thomasdenney/pxt-microbit 2016-08-09 15:13:35 +01:00
8601eff170 fixed snippets 2016-08-08 20:44:43 -07:00
5da4d74a2a adding messenger project 2016-08-08 18:12:34 -07:00
4215574a7c 0.3.15 2016-08-08 16:58:02 -07:00
da9d986a3e Bump pxt-core to 0.3.19 2016-08-08 16:58:00 -07:00
7481b9c24c call receiveNumber in onDataReceived to flush queue if needed (startup race)
fixed simulator issue when event onDataReceived gets raised
2016-08-08 16:54:43 -07:00
de5def8dde adding led.toggle as a block 2016-08-08 16:53:55 -07:00
dd011b977a wired up onPinReleased to simulator 2016-08-08 15:27:13 -07:00
20d0dd91ad added input.onPinRelease. Fix for #294 2016-08-08 15:23:18 -07:00
825c6d57e7 testing fr jsdoc transtions 2016-08-08 13:47:45 -07:00
b3edb81d3c adding URL for SEO 2016-08-08 13:08:15 -07:00
78089da134 0.3.14 2016-08-05 08:37:58 -07:00
3aef765d35 Bump pxt-core to 0.3.18 2016-08-05 08:37:56 -07:00
f4727f12c9 0.3.13 2016-08-04 10:10:03 -07:00
a36cb65aa5 Bump pxt-core to 0.3.17 2016-08-04 10:09:56 -07:00
3b16e59ee1 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-08-04 10:09:42 -07:00
f2c43c74ac support for start/length in buffer methods 2016-08-04 08:42:47 -07:00
1c4c93dc60 0.3.12 2016-08-03 17:19:26 -07:00
d73847bfba Bump pxt-core to 0.3.15 2016-08-03 17:19:19 -07:00
4e46682489 keep older value longer 2016-08-02 15:35:33 -07:00
ab7aa00747 0.3.11 2016-08-02 13:25:13 -07:00
2bebb6056d Bump pxt-core to 0.3.14 2016-08-02 13:25:11 -07:00
22046c417c adding uservoice info 2016-08-02 13:18:07 -07:00
dc8afa6d45 0.3.10 2016-08-02 11:06:34 -07:00
22e2ab5ad9 Bump pxt-core to 0.3.13 2016-08-02 11:06:31 -07:00
f365726a8e fixed regfression in showleds
see 65594842fc
2016-08-02 11:04:49 -07:00
e329b3bd2e prepend all radio blocks with "radio" 2016-08-01 16:02:06 -07:00
d7b709e97b added screenshots 2016-08-01 16:01:45 -07:00
9714ec46e9 support page 2016-08-01 14:24:25 -07:00
20ef54f565 fixed win10 app 2016-08-01 14:23:40 -07:00
554df0bce9 0.3.9 2016-07-29 14:22:51 -07:00
6c89dddef6 Bump pxt-core to 0.3.12 2016-07-29 14:22:48 -07:00
23f91895f7 restore advanced section in reference 2016-07-29 14:19:21 -07:00
3f83cda087 mark serial messages as simulated 2016-07-29 13:42:21 -07:00
7e79635413 0.3.8 2016-07-29 10:49:38 -07:00
56e1cf91ac Bump pxt-core to 0.3.11 2016-07-29 10:49:36 -07:00
f9f96f33f0 0.3.7 2016-07-29 11:37:58 +01:00
0b33073be1 Bump pxt-core to 0.3.10 2016-07-29 11:37:57 +01:00
65594842fc Fix issue with multi digit numbers not scrolling all the way off screen as is the case on the physical pxt. 2016-07-28 15:54:10 -07:00
c6ed665f84 Fix for issue 176: basic.showNumber timing in the simulator
- updated basic.cpp::showNumber to use printChar instead of print.
2016-07-28 15:04:56 -07:00
79462deb24 Merge pull request #190 from Microsoft/microsoftsam/issue179
Fix for issue 179: Watch Challenges goes to Rock Paper Scissors instead of the challenges code
2016-07-28 14:21:18 -07:00
5c05f3e241 Fix for issue 179: Watch Challenges goes to Rock Paper Scissors instead of the challenges code 2016-07-28 13:13:33 -07:00
4f7dd75fbe Finished animation API 2016-07-28 12:16:18 -07:00
338e507b51 temporary fix for reference 2016-07-28 12:03:03 -07:00
601231a5dc 0.3.6 2016-07-28 11:54:23 -07:00
f0850336e5 Bump pxt-core to 0.3.9 2016-07-28 11:54:18 -07:00
a6b2187ec5 Edited advanced page 2016-07-28 10:56:37 -07:00
28ae4f4230 better board name detection 2016-07-28 10:22:05 -07:00
09933b6a8d advanced section 2016-07-28 09:15:31 -07:00
45bb6e7cb3 0.3.5 2016-07-28 12:47:58 +01:00
33c234a87e Bump pxt-core to 0.3.8 2016-07-28 12:47:57 +01:00
e9aa343d67 0.3.4 2016-07-28 11:51:44 +01:00
d83039430c Bump pxt-core to 0.3.7 2016-07-28 11:51:43 +01:00
5b2e877aef Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-07-28 11:49:04 +01:00
c5b28f5b8e Document testing 2016-07-28 11:47:45 +01:00
e765021bf9 Compile lang-tests to binary 2016-07-28 11:38:35 +01:00
dbcd9e535c Get generic part of lang-test from pxt-core package 2016-07-28 11:35:17 +01:00
cff88d67ad Update README.md 2016-07-27 13:48:57 -07:00
3f241e8bc9 Merge pull request #180 from Microsoft/snippetfixes
Fixes to documentation snippets
2016-07-27 13:30:39 -07:00
69c3d2d249 Update README.md 2016-07-27 13:28:57 -07:00
bc04d30595 some updates to setup instructions 2016-07-27 13:15:30 -07:00
63a26835b1 Format code 2016-07-27 19:32:58 +01:00
79113115e0 docs update 2016-07-27 10:57:18 -07:00
573ed7f6f2 updated localization strings in bundled packages 2016-07-27 08:42:58 -07:00
61da1032d6 0.3.3 2016-07-27 07:26:24 -07:00
36d455c693 Bump pxt-core to 0.3.5 2016-07-27 07:26:20 -07:00
42c766b6d7 updated shim definition 2016-07-26 16:17:54 -07:00
6f00384891 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-07-26 13:52:01 -07:00
8440f7c763 adding "pin is pressed" block 2016-07-26 13:51:41 -07:00
8a8e864f99 fix reference section 2016-07-26 14:18:44 -04:00
7a3402b782 add FAQ for language 2016-07-26 14:10:41 -04:00
5e9a5b29f4 fix formatting problem 2016-07-26 14:10:41 -04:00
aff9d1ee60 clean up docs 2016-07-26 09:03:42 -07:00
8add7e8efb updated radio strings / docs page 2016-07-26 08:47:45 -07:00
e7dfd0531b 0.3.2 2016-07-26 13:12:48 +01:00
d2b1f70ce2 Bump pxt-core to 0.3.2 2016-07-26 13:12:48 +01:00
fbf7513c44 0.3.1 2016-07-26 13:03:23 +01:00
e9bdc26d15 Bump to 0.3 2016-07-26 13:03:15 +01:00
52fafe9359 0.2.188 2016-07-26 12:59:11 +01:00
971dca6c96 0.2.187 2016-07-26 12:58:47 +01:00
a761c27b19 Bump pxt-core to 0.3.1 2016-07-26 12:58:47 +01:00
a062a85c7f Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-07-26 12:46:24 +01:00
a9865a731a Moved to separate repos 2016-07-26 12:41:30 +01:00
ba4095ac9c fix problem with semis 2016-07-26 00:45:39 -04:00
8606a00701 remove link to pxt 2016-07-26 00:37:14 -04:00
bf57ba2902 link to PXT 2016-07-25 20:05:27 -04:00
4cd61cd96a delete lang.md 2016-07-25 17:01:37 -04:00
c4139a862f some doc fixes 2016-07-25 17:00:51 -04:00
ca3cd1de22 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit
# Conflicts:
#	package.json
2016-07-25 16:53:33 -04:00
d7f22bc8e6 fix broken link 2016-07-25 11:33:14 -07:00
28b28d0b52 Change array declaration for first snippet in headbands 2016-07-25 11:11:51 +01:00
0ee2b285c0 Deleted list of bad snippets 2016-07-25 11:10:01 +01:00
d5cb085264 Rename function call in number documentation 2016-07-25 11:01:10 +01:00
c055a5d329 Syntax fixes to LED plotting docs 2016-07-25 11:00:34 +01:00
8fe8b78f4c Syntax fixes for hero lesson 2016-07-25 10:39:02 +01:00
f627f125c0 Syntax fixes for headbands lesson 2016-07-25 10:35:15 +01:00
7d3254477a Fix case of math in documentation snippet 2016-07-25 10:22:15 +01:00
3149ed4c1d Line numbers 2016-07-25 10:15:35 +01:00
baeafcdebe List of all snippets with errors 2016-07-25 09:39:34 +01:00
12754acc54 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-07-22 15:14:50 -07:00
329baaf9a4 0.2.192 2016-07-22 17:07:29 +01:00
47efcfb41f Bump pxt-core to 0.2.202 2016-07-22 17:07:29 +01:00
e2d1b8a55c Run tests 2016-07-22 17:06:56 +01:00
579eb29ce3 0.2.191 2016-07-22 15:22:50 +01:00
ada9560642 Bump pxt-core to 0.2.201 2016-07-22 15:22:49 +01:00
7b352b3a58 Use pre-cached TD scripts for testing 2016-07-22 15:21:16 +01:00
a5d5836ea2 Add some tests converted from TD 2016-07-22 15:18:38 +01:00
57dc26a127 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-07-22 07:15:57 -07:00
3e37b03808 0.2.190 2016-07-22 12:26:13 +01:00
d035713786 Bump pxt-core to 0.2.200 2016-07-22 12:26:13 +01:00
6e4a71b2f4 0.2.189 2016-07-22 12:12:21 +01:00
0b4dd534ab Bump pxt-core to 0.2.199 2016-07-22 12:12:20 +01:00
ed07f0baad 0.2.188 2016-07-22 11:57:15 +01:00
004d34b5df Bump pxt-core to 0.2.197 2016-07-22 11:57:15 +01:00
aa380baf1c 0.2.187 2016-07-22 11:39:39 +01:00
5123a962d9 Bump pxt-core to 0.2.196 2016-07-22 11:39:39 +01:00
7dcd770508 Cache sources for testconv in travis 2016-07-22 11:32:57 +01:00
ead4d32446 Update analog-read-pin.md 2016-07-21 16:36:33 -07:00
a51a14022a Update analog-pitch.md 2016-07-21 16:25:20 -07:00
05098252ed slightly more impressive about example 2016-07-21 15:32:59 -07:00
8e74965964 remove experiemental translations 2016-07-21 14:22:30 -07:00
63913c2182 updated getting-started intro 2016-07-21 13:46:22 -07:00
c55716e148 Control pages now link to Lancaster 2016-07-21 13:29:59 -07:00
dd94442555 Merge pull request #173 from gingemonster/master
fixing more help broken links
2016-07-21 11:10:55 -07:00
56f6a2fa56 Merge pull request #172 from gingemonster/patch-1
updated setPull help annotation
2016-07-21 11:10:15 -07:00
4ca9df141c Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-07-21 11:06:13 -07:00
a29e06abce removing dangling file 2016-07-21 11:06:02 -07:00
43e4d06fd9 Add tests (for pxt testdir) 2016-07-21 16:08:22 +01:00
3c8027425a Fix order of arguments for memset() 2016-07-21 09:54:53 +01:00
3f66870688 Getting started with Control 2016-07-20 16:25:09 -07:00
1f32a4851e Bump pxt-core to 0.2.195 2016-07-20 15:37:26 -07:00
478b1c84de Adding templates to Control directory 2016-07-20 11:31:14 -07:00
20ac14fdf6 fixing more help documentation links
set-accelerometer-range was wrong so fixing reference to help doc
2016-07-20 10:44:32 +01:00
c805d67cf6 fixing help for pins.pulseDuration
Help document at https://codethemicrobit.com/reference/pins/pulse-duration doesnt match the help annotation in the code so this fixes it
2016-07-20 06:29:44 +01:00
943c2e7716 Fixing help annotation on serial.redirect
Code currently points to help at https://codethemicrobit.com/reference/serial/redirect but the working url is https://codethemicrobit.com/reference/serial/redirect-to so fixed the help annotation
2016-07-20 06:21:15 +01:00
298a37e576 updated setPull help annotation
At some point Im guessing the help file has been renamed and its current url is https://codethemicrobit.com/reference/pins/set-pull. This change to the annotation of setPull removes the word "digital" so that the link should work again
2016-07-20 06:14:18 +01:00
327d52014c Misnamed, redundant file 2016-07-19 16:02:31 -07:00
6a5cfae5ff snake_case -> camelCase in docs 2016-07-19 11:42:42 +01:00
64ebb5c8c3 Correct assignment blocks in docs
Previously these blocks were not rendering.
2016-07-19 11:26:41 +01:00
bb97b57b01 Correct typo in string documentation
Note that currently you can't follow through with these instructions because string literals aren't supported, and there isn't support for converting the JS in this doc.
2016-07-19 09:25:48 +01:00
534e3723d2 Finishing fixing parameters 2016-07-18 15:51:28 -07:00
ad6ef04b1f Fixing parameters 2016-07-18 15:18:40 -07:00
2c09b7794f Fixing parameters 2016-07-18 14:23:05 -07:00
4941ce1694 Fixing parameters 2016-07-18 14:04:15 -07:00
aa6a965f59 Fixing parameters 2016-07-18 11:14:51 -07:00
1831c30050 Fixing parameters 2016-07-18 10:39:41 -07:00
df5989760c Make serial docs clearer, resolve issue #158 2016-07-18 17:17:16 +01:00
e942fb5733 Minor linting changes 2016-07-18 10:12:00 +01:00
6a7f65894c Added missing parameters sections 2016-07-15 16:43:26 -07:00
f56e9369dd Fixed some parameter names 2016-07-15 14:53:52 -07:00
e23c5e019f Fix param names 2016-07-15 14:12:10 -07:00
1aa08f63fe Another new Game topic and more fixes 2016-07-15 11:54:22 -07:00
8ef94d2854 update docs 2016-07-15 11:47:37 -07:00
797474063d New Game topic, some fixes 2016-07-15 10:24:16 -07:00
b76622542b Ensure title shows correctly for doc pages 2016-07-15 15:50:26 +01:00
6a1415b3e1 Default indentation for default project.
The editor lints the TS file every time it launches, might as well commit the change.
2016-07-15 15:39:16 +01:00
2d09aef287 Merge pull request #164 from thomasdenney/master
Fixed '@params' in Neopixel blocks' docs and 'about about'
2016-07-15 08:47:59 +01:00
3ce1fa9b6e New Game topic 2016-07-14 16:58:08 -07:00
155bbb25f7 New Game topic 2016-07-14 12:49:19 -07:00
5fb3da5a77 New Game topic 2016-07-14 12:47:33 -07:00
5b682cd8d9 some mods to the docs 2016-07-14 12:09:40 -07:00
4755f0953c update ignore file 2016-07-14 12:04:06 -07:00
bdcd299805 New Serial topic 2016-07-13 16:24:56 -07:00
3e23fe4814 New Game topic, some fixes 2016-07-13 15:04:10 -07:00
3782d26e64 New Game topic 2016-07-13 13:10:06 -07:00
84a29eec65 Merge remote-tracking branch 'upstream/master' 2016-07-13 09:17:32 +01:00
299efaf0f2 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-07-12 18:34:32 +02:00
33c60b467b Add ignore file for ptrcheck 2016-07-12 18:34:21 +02:00
81f74f07b2 Fix typo, resolve issue #165 2016-07-12 09:46:46 +01:00
583b08df28 Wrote new Serial topic 2016-07-11 12:54:28 -07:00
01f80b67bc Fix parameters 2016-07-11 11:13:13 -07:00
a890d2a357 Wrote new Serial topic 2016-07-11 10:58:16 -07:00
0d1b91afc3 0.2.186 2016-07-11 17:10:00 +02:00
5c0d37d718 Bump pxt-core to 0.2.194 2016-07-11 17:10:00 +02:00
c81e56613e Mark microbit DAL config as just defaults 2016-07-11 14:29:49 +02:00
4cc7215d35 Updated Linux (and Windows) instructions 2016-07-08 16:34:56 -07:00
8751d2aaa1 Rewrote one Serial topic; shifted some material 2016-07-08 15:29:14 -07:00
af91622dda Wrote new Serial topic 2016-07-08 12:45:31 -07:00
45d4caf595 Rewrote/expanded serial topic 2016-07-08 11:46:51 -07:00
a8e1d2a86c Fixed '@params' in Neopixel blocks' docs 2016-07-08 14:30:45 +01:00
5099b11823 remove hint 2016-07-06 20:37:43 -07:00
37e0307698 Wrote two new Game topics 2016-07-06 15:19:43 -07:00
1b15eefa5a Wrote new Game topic 2016-07-06 13:31:42 -07:00
a4eccaf4f9 Wrote new advanced topic 2016-07-06 11:54:42 -07:00
5981863e3f more intellisense 2016-07-05 17:35:37 -07:00
9ac7a4c522 Wrote new advanced topic 2016-07-05 16:36:09 -07:00
9f1c3ee13c Created advanced topic 2016-07-05 14:04:12 -07:00
8b9c3d71d5 Wrote new I2C topic. 2016-07-05 12:40:04 -07:00
6d726b7499 Wrote new I2C topic. 2016-07-05 12:30:28 -07:00
b5da5afd1d 0.2.185 2016-07-03 15:57:20 -07:00
420898e98c fix links in cards 2016-07-03 15:56:13 -07:00
f6b392356c 0.2.184 2016-07-02 19:05:57 -04:00
f4896f8d7c update doc 2016-07-02 18:55:00 -04:00
4dbd691146 update docs 2016-07-02 18:27:58 -04:00
2742dba0c4 update 2016-07-02 18:27:49 -04:00
5bea47a094 more on js 2016-07-02 10:18:45 -04:00
835a4b5cf0 Edited advanced topic. 2016-07-01 13:03:53 -07:00
055704b3ef 0.2.183 2016-07-01 15:16:43 +01:00
60107aa7ce Bump pxt-core to 0.2.193 2016-07-01 15:16:43 +01:00
787ab021a7 0.2.182 2016-07-01 15:03:49 +01:00
f56a70f502 Bump pxt-core to 0.2.192 2016-07-01 15:03:48 +01:00
4ec6749ee6 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-07-01 14:46:14 +01:00
8413b61397 Format code 2016-07-01 14:46:05 +01:00
ecbb970983 Add target-specific meta headers for social media 2016-07-01 09:26:54 +01:00
36e6570296 Edited advanced topic 2016-06-30 12:43:42 -07:00
92c63b615a Edited advanced topic. 2016-06-30 11:53:13 -07:00
f71267c988 Edited and expanded advanced topic. 2016-06-30 11:02:28 -07:00
38fc0f8099 Fix typo preventing docs upload 2016-06-30 18:10:15 +01:00
8c7238eab3 0.2.181 2016-06-30 16:36:17 +01:00
2baca30184 Bump pxt-core to 0.2.191 2016-06-30 16:36:17 +01:00
ac56979142 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-06-30 16:36:13 +01:00
ff72858c42 Use new index.html includes/overrides 2016-06-30 16:36:07 +01:00
deac587164 Rewrote in simple language. Added hint about average values. 2016-06-29 13:10:45 -07:00
7a0a2fbd0a Rewrote in simple language. Added hint about averaging read values. 2016-06-29 12:41:35 -07:00
79c32097b5 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-06-29 17:49:02 +01:00
26c20d9fc3 Set twitter card logo 2016-06-29 17:48:40 +01:00
fe826a508a start on doc for javascript 2016-06-28 13:35:40 -04:00
62d2140d24 Merge pull request #152 from bluetooth-mdw/master
Reordered links in See Also sections
2016-06-28 13:34:48 -04:00
499d619faf Reordered links in 'See also' sections 2016-06-27 13:54:44 +01:00
c178e58260 Added About Bluetooth page and links to profile reference and overview 2016-06-27 13:46:29 +01:00
d242501fe6 better aspect ratio 2016-06-25 20:21:33 -04:00
37a438735d add Next buttons to projects 2016-06-25 17:23:00 -04:00
b862cfc4ec Format code 2016-06-25 19:40:21 +01:00
31002ae1a8 Fix typo in onPulse; hook up createBuffer 2016-06-25 19:17:43 +01:00
e8a3a2f676 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-06-25 15:22:12 +01:00
e6baf8c35e bring streaming into menu 2016-06-24 19:37:05 -04:00
b72ff9fe4f New page for accelerometer range. 2016-06-24 15:42:21 -07:00
58f79ea617 0.2.180 2016-06-24 13:54:47 -07:00
ed6d343992 Bump pxt-core to 0.2.190 2016-06-24 13:54:45 -07:00
92b46d5c7b using button instead of large links 2016-06-24 13:27:34 -07:00
9cf7f08ae2 0.2.179 2016-06-24 11:31:22 -07:00
3b05b8f2f6 Bump pxt-core to 0.2.189 2016-06-24 11:31:20 -07:00
774d614d79 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-24 11:26:51 -07:00
545f715eeb fixing uarl docs 2016-06-24 11:03:39 -07:00
45b480c6dd Rewrote in simple language. Deleted an irrelevant example. 2016-06-24 10:25:47 -07:00
7cc93507d9 0.2.178 2016-06-24 09:48:44 -07:00
80d3f67e6c Bump pxt-core to 0.2.188 2016-06-24 09:48:42 -07:00
dfbea2719b updated project landing page 2016-06-24 09:41:51 -07:00
ce5da6bf80 updated projects link 2016-06-24 09:14:07 -07:00
d8d2129685 removed strings page 2016-06-24 09:02:31 -07:00
5dd37a1494 updated bluetooth docs page 2016-06-24 09:02:14 -07:00
6cfe39dac3 patching up bluetooth uart 2016-06-24 08:12:52 -07:00
660b22b398 Merge pull request #146 from bluetooth-mdw/master
UART blocks plus pairing documentation and updated hints section
2016-06-24 07:57:33 -07:00
b9a24a4542 Documentation for pairing. Hint section updated to reference this. 2016-06-24 11:09:56 +01:00
af5bf6e04e Documentation for the uartRead block 2016-06-24 09:35:31 +01:00
ecc71a3295 UART read block with string param unlimited length added 2016-06-24 08:46:05 +01:00
0834402b18 Pairing documentation worj in progress. UART write block added 2016-06-24 07:59:08 +01:00
8edd8ac73a Support macOS in automatic deployment 2016-06-23 23:55:36 -07:00
1207a91a7f 0.2.177 2016-06-23 23:53:58 -07:00
727490668c splitting the getting started page 2016-06-23 23:52:24 -07:00
f068b3d204 Merge remote-tracking branch 'upstream/master' 2016-06-24 07:37:21 +01:00
205a486e58 Bump pxt-core to 0.2.179 2016-06-24 07:28:23 +01:00
f3bfd41a75 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-23 23:23:16 -07:00
8d5c5daaaf added streaming page 2016-06-23 23:22:46 -07:00
83cfe8f534 Merge remote-tracking branch 'upstream/master' 2016-06-24 05:50:03 +01:00
9378e5e90c updated manifest 2016-06-23 16:29:26 -07:00
8617f0f3b4 Expanded stub. Rewrote in simple language. 2016-06-23 15:25:56 -07:00
0ecf3dc2b4 Rewrote in simple language. Updated example (needs work). 2016-06-23 14:29:32 -07:00
76005841fa Increased default power to 6, added UART write block 2016-06-23 11:38:23 +01:00
7bf00ff139 Merge remote-tracking branch 'upstream/master' 2016-06-23 08:06:34 +01:00
82e34d852c checking in 2016-06-23 08:05:49 +01:00
7cd8ee1e23 0.2.176 2016-06-22 20:25:02 -07:00
a91a87b628 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-22 20:24:53 -07:00
9d71f46e78 removed old test 2016-06-22 20:24:41 -07:00
ccf405e64c Rewrote in simple language 2016-06-22 16:24:14 -07:00
c0a75d1845 Rewrote in simpler language. Added another example. 2016-06-22 15:35:20 -07:00
e65a521bd4 Rewrote in simple language. Added second example. 2016-06-22 15:19:10 -07:00
1f203269ff updated chrome manifest 2016-06-22 14:48:51 -07:00
18feea45bb 0.2.175 2016-06-22 12:17:43 -07:00
597f0c895b Bump pxt-core to 0.2.187 2016-06-22 12:17:40 -07:00
5f21789d90 migration to codethemicrobit.com 2016-06-22 09:43:41 -07:00
64826db4aa importing chrome extension 2016-06-22 09:43:03 -07:00
b150ee873f updated bluetooth docs 2016-06-22 09:25:01 -07:00
34effcefc6 jsdoc on bluetooth 2016-06-21 14:30:05 -07:00
68be2384d9 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-21 13:19:40 -07:00
2629192bdb code of conduct 2016-06-21 13:17:42 -07:00
67b5afd73a integrating docs about "devices" namespace 2016-06-21 11:17:34 -07:00
5d8193301c adding reference pages for bluetooth 2016-06-21 09:46:13 -07:00
adf21fee6f 0.2.174 2016-06-21 09:35:55 -07:00
20f3e1d24e Bump pxt-core to 0.2.185 2016-06-21 09:35:51 -07:00
bf8f38fe38 docs formatting fixes 2016-06-21 09:17:46 -07:00
3e3b8ebec5 Merge pull request #142 from bluetooth-mdw/master
Documentation for Bluetooth LED service block
2016-06-21 09:12:11 -07:00
8faeeffecf Added documentation for on-bluetooth-connected and on-bluetooth-disconnected event handlers 2016-06-21 12:12:36 +01:00
343968cf09 Added documentation for Bluetooth temperature service 2016-06-21 10:10:02 +01:00
ca92f787e8 Added documentation for Bluetooth button service 2016-06-21 09:55:52 +01:00
49a67e73be Added documentation for Bluetooth accelerometer service 2016-06-21 09:40:51 +01:00
11af897c3d Added documentation for Bluetooth magnetometer service 2016-06-21 08:45:00 +01:00
08cd04b2c8 Merge remote-tracking branch 'upstream/master' 2016-06-21 08:08:12 +01:00
c1656cf441 Added documentation for Bluetooth LED service 2016-06-21 08:01:33 +01:00
8f3c585588 updated devices docs 2016-06-20 22:06:19 -07:00
dd181e4178 0.2.173 2016-06-20 13:39:34 -07:00
ff3689e92d Bump pxt-core to 0.2.184 2016-06-20 13:39:31 -07:00
fffcf0f809 added config section 2016-06-20 13:39:18 -07:00
240162370e Rewrote in simple language. New example. 2016-06-20 13:18:41 -07:00
98238caffb updated translations 2016-06-20 11:28:52 -07:00
f55977a51d Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-20 11:07:20 -07:00
91938f156a Merge pull request #136 from bluetooth-mdw/master
Documentation for Bluetooth IO Pin service block++
2016-06-20 11:07:04 -07:00
eb01245cce Added sig section 2016-06-20 18:11:02 +01:00
17cbea9989 refreshing localizations 2016-06-20 08:37:17 -07:00
22c03dfd7a Documentation for Bluetooth IO Pin service block.
Addition of event handler blocks for Bluetooth connection state changes.
2016-06-20 08:39:51 +01:00
cf3e8684d5 all pix are 300px wide 2016-06-19 17:50:56 -07:00
cd0b2a646f fixing various doc links 2016-06-19 05:28:46 -07:00
d7528c09e3 updated transmit power default value 2016-06-19 05:15:13 -07:00
e055484492 updated loc strings 2016-06-19 05:14:46 -07:00
947d69da48 added strings for block in microbit project 2016-06-17 22:11:32 -07:00
07822c47a3 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-17 21:57:51 -07:00
25d6746b7e Rewrote in simple language. Fixed broken links. 2016-06-17 16:20:17 -07:00
7cb85ff459 New page for 'create big image' 2016-06-17 15:00:24 -07:00
73d18c8d39 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-17 13:55:55 -07:00
74b6d99ab1 Rewrote in simple language. Added blocks example. 2016-06-17 13:42:01 -07:00
491ff29e40 0.2.172 2016-06-17 12:45:55 -07:00
d1db619c8d added entry to troubleshoot 2016-06-17 11:44:05 -07:00
733996f83e 0.2.171 2016-06-17 11:40:07 -07:00
4a624cb365 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-17 11:34:21 -07:00
637ea17f8e removing large image 2016-06-17 11:34:10 -07:00
f8d6bd280e change typescript to javascript 2016-06-17 09:02:06 -07:00
b91de5bad2 moving win10 app, bringing back uploader 2016-06-16 23:11:00 -07:00
d7c3433bb2 updated project page 2016-06-16 22:42:29 -07:00
43456e9a53 0.2.170 2016-06-16 16:09:22 -07:00
081244218f Bump pxt-core to 0.2.182 2016-06-16 16:09:20 -07:00
6ae39f192b Examples now set to same radio group 2016-06-16 15:33:35 -07:00
ed5263f248 First draft; need to debug examples 2016-06-16 15:15:14 -07:00
f1ee861eb4 0.2.169 2016-06-16 13:24:54 -07:00
2ce2fd95ba Bump pxt-core to 0.2.181 2016-06-16 13:24:52 -07:00
741f94ce6c typo fixed 2016-06-16 16:21:59 -04:00
4b7e415ae7 fixing package 2016-06-16 13:18:37 -07:00
3efbb4fbde Merge remote-tracking branch 'origin/master'
# Conflicts:
#	package.json
2016-06-16 16:16:08 -04:00
4d9450dd06 getting started 2016-06-16 16:15:24 -04:00
910870e46f Edited for simpler language 2016-06-16 12:52:47 -07:00
b664df4208 0.2.168 2016-06-16 12:12:48 -07:00
c660277a23 Bump pxt-core to 0.2.180 2016-06-16 12:12:46 -07:00
0416d88d59 Merge remote-tracking branch 'origin/master' 2016-06-16 14:56:37 -04:00
4f822e3cda update 2016-06-16 14:46:48 -04:00
20d4e473ff finishing with link to projects 2016-06-16 09:50:12 -07:00
e45190922e 0.2.167 2016-06-16 08:51:37 -07:00
1df118fa19 more docs on running locally 2016-06-16 08:01:28 -07:00
8ba27ccc2d 0.2.166 2016-06-15 23:18:13 -07:00
ff646d32b5 Bump pxt-core to 0.2.179 2016-06-15 23:18:09 -07:00
75d99b324c Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-15 23:14:30 -07:00
ece91d980a updated bundled translations 2016-06-15 23:12:44 -07:00
a6a9f25e86 updated docs and strings 2016-06-15 22:50:23 -07:00
cc5330bf3d removed broken cross link 2016-06-15 22:22:10 -07:00
4a9e1466e6 Added Parameters section. 2016-06-15 17:56:41 -07:00
fa947036f0 Rewrote in simple language, added xrefs, etc. 2016-06-15 17:01:18 -07:00
0b0884a7eb 0.2.165 2016-06-15 16:54:16 -07:00
d5b2a21d16 Bump pxt-core to 0.2.178 2016-06-15 16:54:14 -07:00
fe28dd9b92 0.2.164 2016-06-15 16:15:51 -07:00
cfcbe8fb41 Bump pxt-core to 0.2.177 2016-06-15 16:15:48 -07:00
d86f820a57 Rewrote in simple language. Replaced screenshot. Added xrefs. 2016-06-15 15:58:35 -07:00
ace1ddb00b 0.2.163 2016-06-15 15:35:15 -07:00
96be411ba2 Bump pxt-core to 0.2.176 2016-06-15 15:35:14 -07:00
f24f7c2279 Rewrote in simple language. Streamlined. Added example. 2016-06-15 14:56:58 -07:00
0130a7753e Rewrote in simple language. Streamlined. Added cross-refs. 2016-06-15 14:14:15 -07:00
54b72ba312 reduce to 5 menu items 2016-06-15 14:04:06 -04:00
7bced60466 fix more broken links 2016-06-15 08:09:40 -04:00
041b10ef04 fix broken links 2016-06-15 07:55:19 -04:00
0e08b58f84 add basic typescript page 2016-06-15 06:31:18 -04:00
dd14489f47 0.2.162 2016-06-14 21:06:14 -07:00
6d6c2b5e99 Bump pxt-core to 0.2.173 2016-06-14 21:06:13 -07:00
251f382e8e remove old stuff 2016-06-14 22:06:55 -04:00
887a652a06 more remapping 2016-06-14 21:44:51 -04:00
bbbb1ea6bc moving stuff around 2016-06-14 21:37:55 -04:00
2c399f198a move LED namespace after music 2016-06-14 19:16:08 -04:00
54213cf554 put lessons back for Michael 2016-06-14 17:28:08 -04:00
0c67cd8e8b Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-14 17:21:02 -04:00
a0a23a261c restructuring to separate language from API 2016-06-14 17:20:45 -04:00
20c7a16524 Used Dimension.X in sample instead of string 2016-06-14 14:01:00 -07:00
0a722b2196 0.2.161 2016-06-14 13:57:46 -07:00
4a537b1ce8 updated bluetooth library 2016-06-14 13:57:27 -07:00
cf0372aeaa adding bluetooth button service. fix for #106 2016-06-14 13:53:05 -07:00
918d2f1a3a support for bluetooth accelerometer service. fix for #105 2016-06-14 13:47:18 -07:00
c1a6c1c66a support for magnetometer service. fix for #112 2016-06-14 13:39:24 -07:00
7a2c4f0056 updated shims 2016-06-14 13:27:21 -07:00
23eefb28d2 support for starting the temperature service #113 2016-06-14 13:24:55 -07:00
2ab2535966 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-14 13:18:43 -07:00
bb20c1780b Add Bluetooth LED service. fix for #111 2016-06-14 13:17:20 -07:00
764505d2ca Rewrite in simple language. Improve code examples. 2016-06-14 12:51:21 -07:00
62b6b8e9eb Second pass. Clarify API's functionality. 2016-06-14 12:12:26 -07:00
beac252620 renaming... 2016-06-14 14:39:31 -04:00
6e62acb384 fixed typo 2016-06-14 12:17:54 -04:00
b5afe25387 avatar for flashing heart 2016-06-14 12:11:29 -04:00
ebea6b29f3 added device section 2016-06-14 11:58:01 -04:00
f4eca66648 move lessons out of web site
will move select lessons back to "educators" section
2016-06-14 11:49:58 -04:00
a6e6dd8287 10 projects, first draft complete 2016-06-14 11:30:25 -04:00
d94c7e0157 lessons to projects 2016-06-14 11:12:13 -04:00
4657263abb minor mods 2016-06-14 10:55:13 -04:00
a6c2b24e8d minor change 2016-06-14 10:31:21 -04:00
31651f9a11 more work on LED screen doc 2016-06-14 10:31:21 -04:00
43c7692a8f 0.2.160 2016-06-14 06:40:57 -07:00
7f05de734c Bump pxt-core to 0.2.171 2016-06-14 06:40:55 -07:00
fe39eec686 fixing color, help of io pin service 2016-06-14 06:40:44 -07:00
655fa0fde8 updated annotations 2016-06-14 06:33:18 -07:00
2841df6950 added 'microbit-bluetooth' package 2016-06-14 06:30:07 -07:00
713dfec949 pass over LED screen 2016-06-13 21:43:01 -04:00
23c4087830 Rewrote in simple language. 2016-06-13 15:47:08 -07:00
de293be4fc Rewrote (2nd pass). Changed to . 2016-06-13 14:15:39 -07:00
4e54649ce7 Rewrote in simpler language 2016-06-13 13:39:05 -07:00
caeef2f1e1 Rewrote in simple language 2016-06-13 12:57:42 -07:00
f3d7693a26 typos 2016-06-13 14:53:08 -04:00
2ceece6cdf typos 2016-06-13 14:49:07 -04:00
c2913aea82 fix typos 2016-06-13 14:41:08 -04:00
bf90e01e7e 0.2.159 2016-06-12 06:26:57 -07:00
bbee53607b updated square image 2016-06-12 06:26:45 -07:00
e94e2e7dc4 remove references to language primitives 2016-06-12 08:16:04 -04:00
02a0839a4e typos 2016-06-11 22:37:09 -04:00
67ea6c01f2 remove linksto lessons from references 2016-06-11 22:28:57 -04:00
5b5cac878b starting to reorganize lessons 2016-06-11 22:15:36 -04:00
56301d2d6f linking in maker activities 2016-06-11 21:12:08 -04:00
f8e80e6a9d pics for music 2016-06-11 20:54:12 -04:00
d1f314d790 added compass 2016-06-11 19:43:54 -04:00
27f39b4458 move rock paper scissors to correct position 2016-06-11 18:08:05 -04:00
0c40f79dec three projects down 2016-06-11 17:12:12 -04:00
346ec3d1a6 finish second lesson 2016-06-11 14:40:09 -04:00
5a2896808e fix up pics 2016-06-10 23:39:30 -04:00
4a34edeab0 get it in the menu 2016-06-10 23:15:12 -04:00
5c2833978b name change 2016-06-10 23:10:32 -04:00
edfc2274a2 change name 2016-06-10 23:10:00 -04:00
899c9fd8d6 finish first lesson 2016-06-10 23:09:18 -04:00
13f63c2f46 Rewrote in simple language. Purged legacy example. 2016-06-10 16:13:37 -07:00
8841c47638 Rewrote in simple language. Fixed some typos. 2016-06-10 14:44:49 -07:00
c6f5a8dcc6 updated help links. fix for #90 2016-06-09 21:41:41 -07:00
786c5f9733 0.2.158 2016-06-09 21:14:54 -07:00
0cdedd02b4 updated rendering of buttons 2016-06-09 21:14:33 -07:00
aba028b1e8 Rewrote in simple language. Updated code example. 2016-06-09 18:25:59 -07:00
3049c88d5b Simulator warnings, etc. 2016-06-09 15:30:47 -07:00
8239329c2e Rewrote with simple language 2016-06-09 15:09:48 -07:00
c9d4807f25 0.2.157 2016-06-09 14:08:27 -07:00
5f4ff08c09 Bump pxt-core to 0.2.170 2016-06-09 14:08:25 -07:00
b99be68ea5 display bolts on simulator button 2016-06-09 14:08:15 -07:00
c639cc3f83 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-09 13:05:21 -07:00
cd56181703 Rewrote in simple language. API might not be functional. 2016-06-09 12:34:56 -07:00
5b1a807443 updated windows 10 app manifest 2016-06-09 11:49:40 -07:00
e604b27c4f various docs updates 2016-06-09 11:10:01 -07:00
4727b105c4 Rewrote in simple language. May be an obsolete API. 2016-06-08 18:14:00 -07:00
4063b5aac8 Rewrote in simple language. Deleted redundant material. 2016-06-08 16:59:20 -07:00
ee8505b4f1 0.2.156 2016-06-08 14:52:16 -07:00
ab4e2c458a Bump pxt-core to 0.2.168 2016-06-08 14:52:15 -07:00
126c236b14 New topic. Double-checked example. 2016-06-08 11:21:58 -07:00
532abadb6b 0.2.155 2016-06-07 14:35:49 -07:00
eea179e07c Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-07 14:21:28 -07:00
f94015803f fixing some docs on microbit-devices 2016-06-07 14:21:19 -07:00
f085253306 bundling and fixing microbit-devices 2016-06-07 14:06:13 -07:00
6de2f22542 Deleted loop around event handlers in coin flipper 2016-06-07 11:44:42 -07:00
3051e09bcf updated yotta settings for neopixel package 2016-06-07 10:53:44 -07:00
bd835a8a6e Rewrote in simple language; added examples 2016-06-06 17:29:23 -07:00
f75a034a3f Rewrote in simple language 2016-06-06 17:02:15 -07:00
71b3b6bb22 0.2.154 2016-06-06 16:38:09 -07:00
b868bd1e09 Bump pxt-core to 0.2.167 2016-06-06 16:38:06 -07:00
02e48f196c Rewritten in simple language 2016-06-06 15:41:17 -07:00
742eb7ea2f 0.2.153 2016-06-06 14:58:07 -07:00
f1904143b6 Bump pxt-core to 0.2.165 2016-06-06 14:58:05 -07:00
e621252f3b Added boolean picker / coin flipper example. 2016-06-06 14:49:36 -07:00
3633d39f57 updated readme.md 2016-06-06 10:14:56 -07:00
21bbf8fc86 css tweaks 2016-06-04 07:41:49 -07:00
dd5124f660 0.2.152 2016-06-04 00:23:34 -07:00
966ad1f503 0.2.151 2016-06-04 00:11:51 -07:00
d94f394d24 Bump pxt-core to 0.2.163 2016-06-04 00:11:50 -07:00
40ddd896cf 0.2.150 2016-06-03 23:53:51 -07:00
5a8815c4fc removed "open editor" from getting started 2016-06-03 23:51:40 -07:00
9a04eb1790 0.2.149 2016-06-03 23:40:28 -07:00
906e2a2fff Bump pxt-core to 0.2.162 2016-06-03 23:40:27 -07:00
781339026e 0.2.148 2016-06-03 23:16:45 -07:00
bd23de14e1 Merge pull request #88 from Microsoft/setpull
Setpull
2016-06-03 23:16:25 -07:00
e6ca366d20 full support for setPull 2016-06-03 23:15:51 -07:00
e2ce49d94b Merge remote-tracking branch 'origin/master' into setpull 2016-06-03 22:23:35 -07:00
e3b6350785 upgraded to lancaster 2.0.0-rc4 (core 0.1.11) 2016-06-03 22:22:13 -07:00
66aba696dc tweaks to getting started 2016-06-03 22:19:43 -07:00
5206f1f8e8 0.2.147 2016-06-03 21:10:03 -07:00
f9a7ec89e4 Bump pxt-core to 0.2.161 2016-06-03 21:09:59 -07:00
97894511dd Spot reminders to click COMPILE. 2016-06-03 15:42:18 -07:00
e785ece9bd Numerous requested changes. Still missing heads/tails. 2016-06-03 15:15:24 -07:00
63035b3d5c Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-03 14:25:31 -07:00
1f8ea7ad30 removed dangling link. 2016-06-03 14:24:39 -07:00
899ca47a77 Rewritten for clarity. Already has great example! 2016-06-03 14:06:24 -07:00
84f14182bf 0.2.146 2016-06-03 13:43:13 -07:00
ca3702b4fe Bump pxt-core to 0.2.159 2016-06-03 13:43:10 -07:00
45690215dd Merge branch 'master' of https://github.com/Microsoft/pxt-microbit into setpull 2016-06-03 10:35:05 -07:00
af42dbf30a support for setpull 2016-06-03 10:34:20 -07:00
767 changed files with 18767 additions and 8815 deletions

15
.gitignore vendored
View File

@ -1,14 +1,21 @@
node_modules
yotta_modules
yotta_targets
pxt_modules
built
typings
tmp
temp
projects/**
win10/app/bin
win10/app/bld
win10/*.opendb
clients/win10/app/AppPackages
clients/win10/app/BundlePackages
clients/win10/app/BundleArtifacts
clients/win10/app/bin
clients/win10/app/bld
clients/win10/*.opendb
clients/**/bin/**
clients/**/obj/**
clients/electron/projects
*.user
*.sw?
@ -16,4 +23,4 @@ win10/*.opendb
*.tgz
*.db
*.suo
*.log
*.log

View File

@ -3,15 +3,15 @@ node_js:
- "5.7.0"
script:
- "node node_modules/pxt-core/built/pxt.js travis"
- "(cd libs/lang-test0; node ../../node_modules/pxt-core/built/pxt.js run)"
- "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 ../../testconv.json)"
sudo: false
notifications:
email:
- touchdevelop-build@microsoft.com
- kindscript@microsoft.com
cache:
directories:
- node_modules
- built/cache
- libs/hello/built/cache

18
.vscode/settings.json vendored
View File

@ -1,5 +1,21 @@
// Place your settings in this file to overwrite default and user settings.
{
"file.autoSave": "afterDelay",
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/built/**": true,
"**/node_modules/**": true,
"**/yotta_modules/**": true,
"**/yotta_targets": true,
"**/pxt_modules/**": true
},
"search.exclude": {
"**/node_modules": true,
"**/yotta_modules/**": true,
"**/yotta_targets": true,
"**/pxt_modules/**": true
},
"tslint.enable": true,
"tslint.rulesDirectory": "node_modules/tslint-microsoft-contrib"
"tslint.rulesDirectory": "node_modules/tslint-microsoft-contrib",
"typescript.tsdk": "./node_modules/typescript/lib"
}

View File

@ -3,17 +3,25 @@
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)).
* [Try it live](https://m.pxt.io)
* [Try it live](https://codethemicrobit.com)
[![Build Status](https://travis-ci.org/Microsoft/pxt-microbit.svg?branch=master)](https://travis-ci.org/Microsoft/pxt-microbit)
## Local server
The local server allows to run the editor and the documentation from your computer.
### Setup
The following commands are a 1-time setup after synching the repo on your machine.
* install the PXT command line
* if not yet installed, install [Node.js 4.4.5 or higher](https://nodejs.org/en/download/)
* [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
cd pxt-microbit
```
* install the PXT command line (add ``sudo`` for Mac/Linux shells).
```
npm install -g pxt
```
@ -24,32 +32,49 @@ npm install
### Running
Run this command to open a local web server:
Run this command to open a local web server (add ``sudo`` for Mac/Linux shells)
```
pxt serve
```
If the local server opens in the wrong browser, make sure to copy the URL containing the local token.
Otherwise, the editor will not be able to load the projects.
If you need modify the `.cpp` files, turn on yotta compilation with the ``-yt`` flag:
If you need modify the `.cpp` files, turn on yotta compilation with the ``-yt`` flag (add ``sudo`` for Mac/Linux shells):
```
pxt serve -yt
```
To make sure you're running the latest tools, run
```
npm update
```
## Updates
To update your PXT version and make sure you're running the latest tools, run (add ``sudo`` for Mac/Linux shells)
```
pxt update
```
More instructions at https://github.com/Microsoft/pxt#running-a-target-from-localhost
## Universal Windows App
The Windows 10 app is a [Universal Windows Hosted Web App](https://microsoftedge.github.io/WebAppsDocs/en-US/win10/CreateHWA.htm)
that wraps ``m.pxt.io`` and provides additional features.
### 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 ``m.pxt.io`` project.
* open the ``win10/app.sln`` solution and launch the ``codethemicrobit`` project.
## Testing
The build automatically runs the following:
* make sure the built-in packages compile
* `pxt run` in `libs/lang-test*` - this will run the test in command line runner;
there is a number of asserts in both of these
* `pxt testdir` in `tests` - this makes sure all the files compile and generates .hex files
* run the TD->TS converter on a number of test scripts from `microbit.co.uk` and make sure the results compile
To test something on the device:
* do a `pxt deploy` in `libs/lang-test*` - they should show `1` or `2` on the screen (and not unhappy face)
* run `pxt testdir` in `tests` and deploy some of the hex files from `tests/built`
The `lang-test0` source comes from the `pxt-core` package. It's also tested with `pxt run` there.
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

26
clients/chrome/README.md Normal file
View File

@ -0,0 +1,26 @@
# microbit-chrome
Prototype chrome addon that exposes the micro:bit's serial output to webpages.
* watch the [demo video](https://vimeo.com/146207766)
# Installation
See [developer.chrome.com](https://developer.chrome.com/extensions/getstarted#unpacked)
for instructions on how to install the local version into your chrome browser.
# Requirements
* Chrome 48 or later.
# Sample page
The `demo.html` webpage goes along with the
https://github.com/Microsoft/microbit-touchdevelop/blob/master/examples/tcs34725.cpp
program. Run `http-server` from this directory, then visit
http://localhost:8080/demo.html
(keep in mind that pages served from `file://` cannot open ports).
# Building
Open a command prompt and run the following commands.
````
npm install
typings update
````

View File

@ -0,0 +1,68 @@
///<reference path='typings/browser.d.ts'/>
var connections = [];
// 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.
var ports = [];
function byPath(path) {
return connections.filter(function (x) { return x.path == path; });
}
function byId(id) {
return connections.filter(function (x) { return x.id == id; });
}
function onReceive(data, id) {
if (ports.length == 0)
return;
var view = new DataView(data);
var decoder = new TextDecoder("utf-8");
var decodedString = decoder.decode(view);
ports.forEach(function (port) { return port.postMessage({
type: "serial",
data: decodedString,
id: id
}); });
}
function findNewDevices() {
chrome.serial.getDevices(function (serialPorts) {
serialPorts.forEach(function (serialPort) {
if (byPath(serialPort.path).length == 0 &&
serialPort.displayName == "mbed Serial Port") {
chrome.serial.connect(serialPort.path, { bitrate: 115200 }, function (info) {
// In case the [connect] operation takes more than five seconds...
if (info && byPath(serialPort.path).length == 0)
connections.push({
id: info.connectionId,
path: serialPort.path
});
});
}
});
});
}
function main() {
// Register new clients in the [ports] global variable.
chrome.runtime.onConnectExternal.addListener(function (port) {
if (/^(micro:bit|touchdevelop|yelm|pxt|codemicrobit|codethemicrobit)$/.test(port.name)) {
ports.push(port);
port.onDisconnect.addListener(function () {
ports = ports.filter(function (x) { return x != port; });
});
}
});
// When receiving data for one of the connections that we're tracking, forward
// it to all connected clients.
chrome.serial.onReceive.addListener(function (info) {
if (byId(info.connectionId).length > 0)
onReceive(info.data, info.connectionId);
});
// When it looks like we've been disconnected, drop the corresponding
// connection object from the [connections] global variable.
chrome.serial.onReceiveError.addListener(function (info) {
if (info.error == "system_error" || info.error == "disconnected" || info.error == "device_lost")
connections = connections.filter(function (x) { return x.id != info.connectionId; });
});
// Probe serial connections at regular intervals. In case we find an mbed port
// we haven't yet connected to, connect to it.
setInterval(findNewDevices, 5000);
findNewDevices();
}
document.addEventListener("DOMContentLoaded", main);

View File

@ -0,0 +1,92 @@
// A list of: {
// id: number;
// path: string;
// } where [id] is the [connectionId] (internal to Chrome) and [path] is the
// OS' name for the device (e.g. "COM4").
interface Connection {
id: string;
path: string;
}
let connections: Connection[] = [];
// 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.
let ports = [];
interface Message {
type: string;
data: string;
id: string;
}
function byPath(path: string): Connection[] {
return connections.filter((x) => x.path == path);
}
function byId(id: string): Connection[] {
return connections.filter((x) => x.id == id);
}
function onReceive(data, id: string) {
if (ports.length == 0) return;
let view = new DataView(data);
let decoder = new TextDecoder("utf-8");
let decodedString = decoder.decode(view);
ports.forEach(port => port.postMessage(<Message>{
type: "serial",
data: decodedString,
id: id,
}));
}
function findNewDevices() {
chrome.serial.getDevices(function (serialPorts) {
serialPorts.forEach(function (serialPort) {
if (byPath(serialPort.path).length == 0 &&
serialPort.displayName == "mbed Serial Port") {
chrome.serial.connect(serialPort.path, { bitrate: 115200 }, function (info) {
// In case the [connect] operation takes more than five seconds...
if (info && byPath(serialPort.path).length == 0)
connections.push({
id: info.connectionId,
path: serialPort.path
});
});
}
});
});
}
function main() {
// Register new clients in the [ports] global variable.
chrome.runtime.onConnectExternal.addListener(function (port) {
if (/^(micro:bit|touchdevelop|yelm|pxt|codemicrobit|codethemicrobit)$/.test(port.name)) {
ports.push(port);
port.onDisconnect.addListener(function () {
ports = ports.filter(function (x) { return x != port });
});
}
});
// When receiving data for one of the connections that we're tracking, forward
// it to all connected clients.
chrome.serial.onReceive.addListener(function (info) {
if (byId(info.connectionId).length > 0)
onReceive(info.data, info.connectionId);
});
// When it looks like we've been disconnected, drop the corresponding
// connection object from the [connections] global variable.
chrome.serial.onReceiveError.addListener(function (info) {
if (info.error == "system_error" || info.error == "disconnected" || info.error == "device_lost")
connections = connections.filter((x) => x.id != info.connectionId);
});
// Probe serial connections at regular intervals. In case we find an mbed port
// we haven't yet connected to, connect to it.
setInterval(findNewDevices, 5000);
findNewDevices();
}
document.addEventListener("DOMContentLoaded", main);

BIN
clients/chrome/logo128.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
clients/chrome/logo48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,30 @@
{
"app": {
"background": {
"scripts": [ "background.js" ]
}
},
"manifest_version": 2,
"name": "code the micro:bit",
"version": "0.6.0",
"author": "Microsoft Corporation",
"short_name": "code the micro:bit",
"description": "Extension for https://codethemicrobit.com.",
"homepage_url": "https://codethemicrobit.com",
"offline_enabled": "true",
"icons": {
"48": "logo48.png",
"128": "logo128.png"
},
"permissions": [
"serial",
"usb"
],
"externally_connectable": {
"matches": [ "*://localhost/*", "https://codethemicrobit.com/*", "https://*.codethemicrobit.com/*" ]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

View File

@ -0,0 +1,7 @@
{
"compiler-options": {
"target": "ES5",
"module": "amd",
"sourceMap": false
}
}

2
clients/electron/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
node_modules
projects

View 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`.

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

39
clients/electron/main.js Normal file
View File

@ -0,0 +1,39 @@
const {app, BrowserWindow, Menu} = require('electron')
const pxt = require('pxt-core')
const path = require('path')
let win
const cliPath = path.join(process.cwd(), "node_modules/pxt-microbit")
function startServerAndCreateWindow() {
pxt.mainCli(cliPath, ["serve", "-no-browser"])
createWindow()
}
function createWindow () {
win = new BrowserWindow({
width: 800,
height: 600,
title: "code the micro:bit"
})
Menu.setApplicationMenu(null)
win.loadURL(`file://${__dirname}/index.html#local_token=${pxt.globalConfig.localToken}`)
win.on('closed', () => {
win = null
})
}
app.on('ready', startServerAndCreateWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (win === null) {
createWindow()
}
})

View File

@ -0,0 +1,14 @@
{
"name" : "code-the-microbit",
"version" : "1.0.0",
"description": "Blocks / Javascript editor",
"author": "Microsoft",
"main" : "main.js",
"scripts": {
"start": "node_modules/.bin/electron ."
},
"devDependencies": {
"electron": "*",
"pxt-microbit": "*"
}
}

137
clients/macuploader/.gitignore vendored Normal file
View File

@ -0,0 +1,137 @@
# Created by https://www.gitignore.io/api/osx,xcode,objective-c,vim
### OSX ###
*.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Xcode ###
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Build generated
build/
DerivedData/
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/
## Other
*.moved-aside
*.xccheckout
*.xcscmblueprint
### Objective-C ###
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Build generated
build/
DerivedData/
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/
## Other
*.moved-aside
*.xcuserstate
## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode
iOSInjectionProject/
### Objective-C Patch ###
*.xcscmblueprint
### Vim ###
# swap
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]
# session
Session.vim
# temporary
.netrwhist
*~
# auto-generated tag files
tags

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

View File

@ -0,0 +1,307 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
E93040071D895D1F00D931CA /* DirectoryWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E93040061D895D1F00D931CA /* DirectoryWatcher.m */; };
E930400A1D89620900D931CA /* Uploader.m in Sources */ = {isa = PBXBuildFile; fileRef = E93040091D89620900D931CA /* Uploader.m */; };
E9F4FEE21D8709980071D783 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F4FEE11D8709980071D783 /* AppDelegate.m */; };
E9F4FEE51D8709980071D783 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F4FEE41D8709980071D783 /* main.m */; };
E9F4FEE71D8709980071D783 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E9F4FEE61D8709980071D783 /* Assets.xcassets */; };
E9F4FEEA1D8709980071D783 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F4FEE81D8709980071D783 /* MainMenu.xib */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
E93040051D895D1F00D931CA /* DirectoryWatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectoryWatcher.h; sourceTree = "<group>"; };
E93040061D895D1F00D931CA /* DirectoryWatcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DirectoryWatcher.m; sourceTree = "<group>"; };
E93040081D89620900D931CA /* Uploader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Uploader.h; sourceTree = "<group>"; };
E93040091D89620900D931CA /* Uploader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Uploader.m; sourceTree = "<group>"; };
E9F4FEDD1D8709980071D783 /* Microbit Uploader.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Microbit Uploader.app"; sourceTree = BUILT_PRODUCTS_DIR; };
E9F4FEE01D8709980071D783 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
E9F4FEE11D8709980071D783 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
E9F4FEE41D8709980071D783 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
E9F4FEE61D8709980071D783 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
E9F4FEE91D8709980071D783 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
E9F4FEEB1D8709980071D783 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
E9F4FEDA1D8709980071D783 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
E9F4FED41D8709980071D783 = {
isa = PBXGroup;
children = (
E9F4FEDF1D8709980071D783 /* Microbit Uploader */,
E9F4FEDE1D8709980071D783 /* Products */,
);
sourceTree = "<group>";
};
E9F4FEDE1D8709980071D783 /* Products */ = {
isa = PBXGroup;
children = (
E9F4FEDD1D8709980071D783 /* Microbit Uploader.app */,
);
name = Products;
sourceTree = "<group>";
};
E9F4FEDF1D8709980071D783 /* Microbit Uploader */ = {
isa = PBXGroup;
children = (
E9F4FEE01D8709980071D783 /* AppDelegate.h */,
E9F4FEE11D8709980071D783 /* AppDelegate.m */,
E9F4FEE61D8709980071D783 /* Assets.xcassets */,
E9F4FEE81D8709980071D783 /* MainMenu.xib */,
E9F4FEEB1D8709980071D783 /* Info.plist */,
E9F4FEE31D8709980071D783 /* Supporting Files */,
E93040051D895D1F00D931CA /* DirectoryWatcher.h */,
E93040061D895D1F00D931CA /* DirectoryWatcher.m */,
E93040081D89620900D931CA /* Uploader.h */,
E93040091D89620900D931CA /* Uploader.m */,
);
path = "Microbit Uploader";
sourceTree = "<group>";
};
E9F4FEE31D8709980071D783 /* Supporting Files */ = {
isa = PBXGroup;
children = (
E9F4FEE41D8709980071D783 /* main.m */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
E9F4FEDC1D8709980071D783 /* Microbit Uploader */ = {
isa = PBXNativeTarget;
buildConfigurationList = E9F4FEEE1D8709980071D783 /* Build configuration list for PBXNativeTarget "Microbit Uploader" */;
buildPhases = (
E9F4FED91D8709980071D783 /* Sources */,
E9F4FEDA1D8709980071D783 /* Frameworks */,
E9F4FEDB1D8709980071D783 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Microbit Uploader";
productName = "Microbit Uploader";
productReference = E9F4FEDD1D8709980071D783 /* Microbit Uploader.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
E9F4FED51D8709980071D783 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = thomasdenney;
TargetAttributes = {
E9F4FEDC1D8709980071D783 = {
CreatedOnToolsVersion = 7.3.1;
};
};
};
buildConfigurationList = E9F4FED81D8709980071D783 /* Build configuration list for PBXProject "Microbit Uploader" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = E9F4FED41D8709980071D783;
productRefGroup = E9F4FEDE1D8709980071D783 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
E9F4FEDC1D8709980071D783 /* Microbit Uploader */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
E9F4FEDB1D8709980071D783 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
E9F4FEE71D8709980071D783 /* Assets.xcassets in Resources */,
E9F4FEEA1D8709980071D783 /* MainMenu.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
E9F4FED91D8709980071D783 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
E9F4FEE51D8709980071D783 /* main.m in Sources */,
E930400A1D89620900D931CA /* Uploader.m in Sources */,
E9F4FEE21D8709980071D783 /* AppDelegate.m in Sources */,
E93040071D895D1F00D931CA /* DirectoryWatcher.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
E9F4FEE81D8709980071D783 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
E9F4FEE91D8709980071D783 /* Base */,
);
name = MainMenu.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
E9F4FEEC1D8709980071D783 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
E9F4FEED1D8709980071D783 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
};
name = Release;
};
E9F4FEEF1D8709980071D783 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
INFOPLIST_FILE = "Microbit Uploader/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "org.thomasdenney.Microbit-Uploader";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
E9F4FEF01D8709980071D783 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
INFOPLIST_FILE = "Microbit Uploader/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "org.thomasdenney.Microbit-Uploader";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
E9F4FED81D8709980071D783 /* Build configuration list for PBXProject "Microbit Uploader" */ = {
isa = XCConfigurationList;
buildConfigurations = (
E9F4FEEC1D8709980071D783 /* Debug */,
E9F4FEED1D8709980071D783 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
E9F4FEEE1D8709980071D783 /* Build configuration list for PBXNativeTarget "Microbit Uploader" */ = {
isa = XCConfigurationList;
buildConfigurations = (
E9F4FEEF1D8709980071D783 /* Debug */,
E9F4FEF01D8709980071D783 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = E9F4FED51D8709980071D783 /* Project object */;
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:Microbit Uploader.xcodeproj">
</FileRef>
</Workspace>

View File

@ -0,0 +1,6 @@
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@end

View File

@ -0,0 +1,130 @@
#import "AppDelegate.h"
#import "DirectoryWatcher.h"
#import "Uploader.h"
@interface AppDelegate ()<DirectoryWatcherDelegate, UploaderDelegate, NSUserNotificationCenterDelegate>
@property DirectoryWatcher * watcher;
@property Uploader * uploader;
@property NSStatusItem * menubarItem;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
self.watcher = [[DirectoryWatcher alloc] initWithPath:[self downloadsDirectory]];
self.watcher.delegate = self;
[self.watcher startWatching];
self.uploader = [[Uploader alloc] init];
self.uploader.delegate = self;
[NSUserNotificationCenter defaultUserNotificationCenter].delegate = self;
[self createMenuBarIcon];
[self configureVolumeMountNotifications];
[self showActiveMicroBits];
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
[self.watcher stopWatching];
}
- (void)dealloc {
[[NSWorkspace sharedWorkspace].notificationCenter removeObserver:self];
}
#pragma mark - Directory
- (void)watcher:(DirectoryWatcher *)watcher observedNewFileAtPath:(NSString *)path {
NSString * fullPath = [watcher.path stringByAppendingPathComponent:path];
if ([self.uploader shouldUploadFileAtPath:fullPath]) {
[self.uploader uploadFile:fullPath];
}
}
- (NSString*)downloadsDirectory {
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDownloadsDirectory, NSUserDomainMask, YES);
return paths.firstObject;
}
#pragma mark - Uploader delegate
- (void)uploader:(Uploader *)uploader transferredFile:(NSString *)file toMicroBit:(NSString *)microbit {
[self showNotification:@"micro:bit upload" withDescription:[NSString stringWithFormat:@"%@ uploaded to %@", file.lastPathComponent, microbit]];
}
- (void)uploader:(Uploader *)uploader failedToTransferFile:(NSString *)file toMicroBit:(NSString *)microbit {
[self showNotification:@"micro:bit upload failed" withDescription:[NSString stringWithFormat:@"Couldn't transfer %@ to %@", file.lastPathComponent, microbit]];
}
- (void)showNotification:(NSString*)title withDescription:(NSString*)description {
NSUserNotification * notification = [NSUserNotification new];
notification.title = title;
notification.informativeText = description;
notification.soundName = NSUserNotificationDefaultSoundName;
[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification];
}
#pragma mark - NSUserNotificationCenterDelegate
- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *)notification {
return YES;
}
#pragma mark - Volume mount/unmount notification
- (void)configureVolumeMountNotifications {
[[NSWorkspace sharedWorkspace].notificationCenter addObserver:self selector:@selector(volumeMountNotification:) name:NSWorkspaceDidRenameVolumeNotification object:nil];
[[NSWorkspace sharedWorkspace].notificationCenter addObserver:self selector:@selector(volumeMountNotification:) name:NSWorkspaceDidMountNotification object:nil];
[[NSWorkspace sharedWorkspace].notificationCenter addObserver:self selector:@selector(volumeMountNotification:) name:NSWorkspaceDidUnmountNotification object:nil];
}
- (void)volumeMountNotification:(NSNotification*)sender {
//Delay upadting the menu to give the chance for the disk to fully mount or unmount
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self showActiveMicroBits];
});
}
#pragma mark - Menu bar app
- (void)createMenuBarIcon {
self.menubarItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength];
self.menubarItem.button.image = [NSImage imageNamed:@"menubar"];
}
- (void)showActiveMicroBits {
NSMenu * menu = [NSMenu new];
NSString * countString;
NSUInteger count = self.uploader.microBitPaths.count;
if (count == 0) {
countString = @"No connect micro:bits";
}
else if (count == 1) {
countString = @"1 connected micro:bit";
}
else {
countString = [NSString stringWithFormat:@"%lu connected micro:bits", count];
}
NSMenuItem * microBitCount = [[NSMenuItem alloc] initWithTitle:countString action:nil keyEquivalent:@""];
microBitCount.enabled = NO;
[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"];
[menu addItem:quitItem];
self.menubarItem.menu = menu;
}
- (void)launchEditor:(id)sender {
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"https://codethemicrobit.com/"]];
}
@end

View File

@ -0,0 +1,68 @@
{
"images" : [
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "icon_16x16.png",
"scale" : "1x"
},
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "icon_16x16@2x.png",
"scale" : "2x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "icon_32x32.png",
"scale" : "1x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "icon_32x32@2x.png",
"scale" : "2x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "icon_128x128.png",
"scale" : "1x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "icon_128x128@2x.png",
"scale" : "2x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "icon_256x256.png",
"scale" : "1x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "icon_256x256@2x.png",
"scale" : "2x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "icon_512x512.png",
"scale" : "1x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "icon_512x512@2x.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

View File

@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -0,0 +1,15 @@
{
"images" : [
{
"idiom" : "mac",
"filename" : "menubar.pdf"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"template-rendering-intent" : "template"
}
}

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11201" systemVersion="15G1004" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11201"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
<connections>
<outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customObject id="Voe-Tx-rLC" customClass="AppDelegate"/>
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
</objects>
</document>

View File

@ -0,0 +1,24 @@
#import <Foundation/Foundation.h>
@class DirectoryWatcher;
@protocol DirectoryWatcherDelegate <NSObject>
- (void)watcher:(DirectoryWatcher*)watcher observedNewFileAtPath:(NSString*)path;
@end
@interface DirectoryWatcher : NSObject
- (instancetype)initWithPath:(NSString*)path;
@property (readonly) NSString * path;
@property id<DirectoryWatcherDelegate> delegate;
- (void)startWatching;
//Automatically called when deallocated
- (void)stopWatching;
@end

View File

@ -0,0 +1,75 @@
#import "DirectoryWatcher.h"
#import <CoreServices/CoreServices.h>
void callback(ConstFSEventStreamRef streamRef, void * info, size_t numEvents, void * eventPaths, const FSEventStreamEventFlags eventFlags[], const FSEventStreamEventId eventIds[]);
@interface DirectoryWatcher ()
@property NSString * path;
@property NSMutableSet<NSString*>* knownFiles;
@property FSEventStreamRef stream;
- (void)rescanPathWithEvents:(BOOL)sendEvents;
@end
@implementation DirectoryWatcher
- (instancetype)initWithPath:(NSString *)path {
if (!path) {
return nil;
}
self = [super init];
if (self) {
self.path = path;
}
return self;
}
- (void)dealloc {
[self stopWatching];
}
- (void)startWatching {
self.knownFiles = [NSMutableSet new];
[self rescanPathWithEvents:NO];
CFStringRef path = (__bridge CFStringRef)(self.path);
CFArrayRef pathsToWatch = CFArrayCreate(NULL, (const void**)&path, 1, NULL);
CFAbsoluteTime latency = 1;
FSEventStreamContext context = { 0, (__bridge void * _Nullable)(self), NULL, NULL, NULL };
self.stream = FSEventStreamCreate(NULL, &callback, &context, pathsToWatch, kFSEventStreamEventIdSinceNow, latency, kFSEventStreamCreateFlagNone);
FSEventStreamScheduleWithRunLoop(self.stream, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
FSEventStreamStart(self.stream);
}
- (void)stopWatching {
if (self.stream) {
FSEventStreamStop(self.stream);
FSEventStreamInvalidate(self.stream);
FSEventStreamRelease(self.stream);
self.stream = nil;
}
}
- (void)rescanPathWithEvents:(BOOL)sendEvents {
NSArray<NSString*>* downloadFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:self.path error:nil];
NSMutableSet<NSString*>* fullSet = [NSMutableSet new];
for (NSString * file in downloadFiles) {
[fullSet addObject:file];
if (![self.knownFiles containsObject:file]) {
if (sendEvents) {
[self.delegate watcher:self observedNewFileAtPath:file];
}
}
}
self.knownFiles = fullSet;
}
@end
void callback(ConstFSEventStreamRef streamRef, void * info, size_t numEvents, void * eventPaths, const FSEventStreamEventFlags eventFlags[], const FSEventStreamEventId eventIds[]) {
DirectoryWatcher * watcher = (__bridge DirectoryWatcher*)info;
[watcher rescanPathWithEvents:YES];
}

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.01</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>2</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<key>LSUIElement</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2016 Thomas Denney. All rights reserved.</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>

View File

@ -0,0 +1,21 @@
#import <Foundation/Foundation.h>
@class Uploader;
@protocol UploaderDelegate <NSObject>
- (void)uploader:(Uploader*)uploader transferredFile:(NSString*)file toMicroBit:(NSString*)microbit;
- (void)uploader:(Uploader*)uploader failedToTransferFile:(NSString*)file toMicroBit:(NSString*)microbit;
@end
@interface Uploader : NSObject
@property id<UploaderDelegate> delegate;
- (BOOL)shouldUploadFileAtPath:(NSString*)path;
- (NSArray<NSString*>*)microBitPaths;
- (void)uploadFile:(NSString*)file;
- (void)uploadFile:(NSString*)file toMicroBit:(NSString*)path;
@end

View File

@ -0,0 +1,74 @@
#import "Uploader.h"
@interface Uploader ()
@property NSOperationQueue * backgroundCopyQueue;
@end
@implementation Uploader
- (instancetype)init {
self = [super init];
if (self) {
self.backgroundCopyQueue = [NSOperationQueue new];
}
return self;
}
- (BOOL)shouldUploadFileAtPath:(NSString *)path {
//Whilst Safari is downloading the file it appends .download to the name
NSRegularExpression * ignoreDownload = [NSRegularExpression regularExpressionWithPattern:@".download$" options:NSRegularExpressionCaseInsensitive error:nil];
if ([ignoreDownload numberOfMatchesInString:path.lastPathComponent options:0 range:NSMakeRange(0, path.lastPathComponent.length)] > 0) {
return NO;
}
//Chrome and Firefox create .hex files
NSRegularExpression * hexFiles = [NSRegularExpression regularExpressionWithPattern:@".hex$" options:NSRegularExpressionCaseInsensitive error:nil];
if ([hexFiles numberOfMatchesInString:path.lastPathComponent options:0 range:NSMakeRange(0, path.lastPathComponent.length)] > 0) {
return YES;
}
//Safari tends to just name files 'Unknown X'
NSRegularExpression * unknownFiles = [NSRegularExpression regularExpressionWithPattern:@"^Unknown(( |-)[0-9]+)?" options:NSRegularExpressionCaseInsensitive error:nil];
if ([unknownFiles numberOfMatchesInString:path.lastPathComponent options:0 range:NSMakeRange(0, path.lastPathComponent.length)]) {
return YES;
}
return NO;
}
- (NSArray<NSString*>*)microBitPaths {
NSArray<NSURL*>* allVolumes = [[NSFileManager defaultManager] mountedVolumeURLsIncludingResourceValuesForKeys:nil options:NSVolumeEnumerationSkipHiddenVolumes];
NSMutableArray<NSString*>* microbitPaths = [NSMutableArray new];
NSRegularExpression * microbitRegex = [NSRegularExpression regularExpressionWithPattern:@"^MICROBIT" options:NSRegularExpressionCaseInsensitive error:nil];
for (NSURL * volume in allVolumes) {
NSString * lastPathComponent = volume.lastPathComponent;
if ([microbitRegex numberOfMatchesInString:lastPathComponent options:0 range:NSMakeRange(0, lastPathComponent.length)] > 0) {
[microbitPaths addObject:volume.path];
}
}
return microbitPaths;
}
- (void)uploadFile:(NSString *)file {
for (NSString * microbit in [self microBitPaths]) {
[self uploadFile:file toMicroBit:microbit];
}
}
- (void)uploadFile:(NSString *)file toMicroBit:(NSString *)path {
[self.backgroundCopyQueue addOperationWithBlock:^{
NSError * copyError;
NSString * destination = [path stringByAppendingPathComponent:file.lastPathComponent];
if (![[NSFileManager defaultManager] copyItemAtPath:file toPath:destination error:&copyError]) {
[self.delegate uploader:self failedToTransferFile:file toMicroBit:path.lastPathComponent];
}
else {
[self.delegate uploader:self transferredFile:file toMicroBit:path.lastPathComponent];
}
}];
}
@end

View File

@ -0,0 +1,5 @@
#import <Cocoa/Cocoa.h>
int main(int argc, const char * argv[]) {
return NSApplicationMain(argc, argv);
}

View File

@ -0,0 +1,40 @@
# micro:bit uploader for OS X
![](Microbit Uploader/Assets.xcassets/AppIcon.appiconset/icon_256x256.png)
This project is a clone of the [Windows
uploader](https://codethemicrobit.com/uploader), but for OS X. Once launched,
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
that can run [codethemicrobit.com](http://codethemicrobit.com).
## Install the built version
1. Download the latest `.zip` release from the `Release` directory
2. Unzip it
3. Drag `Microbit Uploader` to your Applications folder and launch it
## Building
To build the project you'll need a copy of OS X 10.11 or higher and Xcode 8 or
higher (you may be able to build on earlier OSes or versions of Xcode, but this
remains untested). Once you have a development environment set up, just build
and run `Microbit Uploader.xcodeproj`.
## Distributing
1. Open the Xcode project
2. Product > Archive
3. Export:
![Export](Graphics/export.png)
4. You will then have the option of either signing or not-signing the
application:
a) If you have an Apple developer account, select 'Export a Developer
ID-signed Application'
b) If you don't have a developer ID, select 'Export as a macOS App'
5. Zip the produced app and upload to CDN or equivalent

Binary file not shown.

View File

@ -20,22 +20,18 @@
<ProjectConfiguration Include="Release|AnyCPU">
<Configuration>Release</Configuration>
<Platform>AnyCPU</Platform>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x86">
<Configuration>Release</Configuration>
<Platform>x86</Platform>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">

View File

@ -0,0 +1,48 @@

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

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -1,9 +1,9 @@
<?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.4.0" Publisher="CN=jhalleux" />
<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>codemicrobitapp</DisplayName>
<DisplayName>codethemicrobit</DisplayName>
<PublisherDisplayName>Microsoft</PublisherDisplayName>
<Logo>images\storelogo.png</Logo>
</Properties>
@ -14,12 +14,14 @@
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="App" StartPage="https://m.pxt.io/">
<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="m.pxt.io" Description="Code editors for the BBC micro:bit" BackgroundColor="white" Square150x150Logo="images\Square150x150Logo.png" Square44x44Logo="images\Square44x44Logo.png">
<uap:DefaultTile Wide310x150Logo="images\Wide310x150Logo.png" ShortName="m.pxt.io">
<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>
@ -27,7 +29,6 @@
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name="microbithex">
<uap:DisplayName>BBC micro:bit binary file</uap:DisplayName>
<uap:InfoTip>.hex file created with m.pxt.io or microbit.co.uk</uap:InfoTip>
<uap:SupportedFileTypes>
<uap:FileType ContentType="application/x-microbit-hex">.hex</uap:FileType>
</uap:SupportedFileTypes>

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -0,0 +1,40 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeTheMicrobit", "Microbit.Uploader\CodeTheMicrobit.csproj", "{7DC6CA45-FD75-44BC-805E-708C812CD4BF}"
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
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|ARM.ActiveCfg = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|ARM.Build.0 = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|x64.ActiveCfg = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|x64.Build.0 = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|x86.ActiveCfg = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|x86.Build.0 = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|Any CPU.Build.0 = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|ARM.ActiveCfg = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|ARM.Build.0 = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|x64.ActiveCfg = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|x64.Build.0 = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|x86.ActiveCfg = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{7DC6CA45-FD75-44BC-805E-708C812CD4BF}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Microsoft.MicroBit</RootNamespace>
<AssemblyName>CodeTheMicrobit</AssemblyName>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<RunCodeAnalysis>true</RunCodeAnalysis>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>
</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>false</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<DelaySign>false</DelaySign>
</PropertyGroup>
<PropertyGroup />
<ItemGroup>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Management" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Settings.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Settings.Designer.cs">
<DependentUpon>Settings.cs</DependentUpon>
</Compile>
<Compile Include="GlobalSuppressions.cs" />
<Compile Include="KnownFolders.cs" />
<Compile Include="LicenseDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="LicenseDialog.Designer.cs">
<DependentUpon>LicenseDialog.cs</DependentUpon>
</Compile>
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SingleInstanceAppHelper.cs" />
<Compile Include="SingleInstanceAppStarter.cs" />
<EmbeddedResource Include="LicenseDialog.resx">
<DependentUpon>LicenseDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<EmbeddedResource Include="Settings.resx">
<DependentUpon>Settings.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MSFT_logo_png.png" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="Resources\MSR-LA - 2576.rtf" />
</ItemGroup>
<ItemGroup>
<Content Include="favicon.ico" />
<EmbeddedResource Include="microbit.red.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,33 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.Management;
using System.Runtime.InteropServices;
using System.Security;
namespace Microsoft.MicroBit
{
/// <summary>
/// Class containing methods to retrieve specific file system paths.
/// </summary>
internal static class KnownFoldersNativeMethods
{
[SecurityCritical]
[SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
public static string GetDownloadPath()
{
IntPtr outPath;
int result = SHGetKnownFolderPath(new Guid("{374DE290-123F-4565-9164-39C4925E467B}"), 0x00004000, new IntPtr(0), out outPath);
if (result >= 0)
return Marshal.PtrToStringUni(outPath);
else return null;
}
[SuppressMessage("Microsoft.Security", "CA5122:PInvokesShouldNotBeSafeCriticalFxCopRule")]
[DllImport("Shell32.dll")]
[SecurityCritical]
private static extern int SHGetKnownFolderPath(
[MarshalAs(UnmanagedType.LPStruct)]Guid rfid, uint dwFlags, IntPtr hToken,
out IntPtr ppszPath);
}
}

View File

@ -0,0 +1,93 @@
namespace Microsoft.MicroBit
{
partial class LicenseDialog
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.textBox = new System.Windows.Forms.RichTextBox();
this.acceptButton = new System.Windows.Forms.Button();
this.exitButton = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// textBox
//
this.textBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBox.Location = new System.Drawing.Point(13, 13);
this.textBox.Name = "textBox";
this.textBox.ReadOnly = true;
this.textBox.Size = new System.Drawing.Size(465, 438);
this.textBox.TabIndex = 0;
this.textBox.Text = "";
//
// acceptButton
//
this.acceptButton.Location = new System.Drawing.Point(322, 457);
this.acceptButton.Name = "acceptButton";
this.acceptButton.Size = new System.Drawing.Size(75, 23);
this.acceptButton.TabIndex = 1;
this.acceptButton.Text = "Accept";
this.acceptButton.UseVisualStyleBackColor = true;
this.acceptButton.Click += new System.EventHandler(this.acceptButton_Click);
//
// exitButton
//
this.exitButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.exitButton.Location = new System.Drawing.Point(403, 457);
this.exitButton.Name = "exitButton";
this.exitButton.Size = new System.Drawing.Size(75, 23);
this.exitButton.TabIndex = 2;
this.exitButton.Text = "Exit";
this.exitButton.UseVisualStyleBackColor = true;
this.exitButton.Click += new System.EventHandler(this.exitButton_Click);
//
// LicenseDialog
//
this.AcceptButton = this.acceptButton;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.exitButton;
this.ClientSize = new System.Drawing.Size(490, 492);
this.ControlBox = false;
this.Controls.Add(this.exitButton);
this.Controls.Add(this.acceptButton);
this.Controls.Add(this.textBox);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "LicenseDialog";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "code the micro:bit terms of use";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.RichTextBox textBox;
private System.Windows.Forms.Button acceptButton;
private System.Windows.Forms.Button exitButton;
}
}

View File

@ -0,0 +1,32 @@
using Microsoft.MicroBit.Properties;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Microsoft.MicroBit
{
public partial class LicenseDialog : Form
{
public LicenseDialog()
{
InitializeComponent();
this.textBox.Text = Resources.MSR_LA___2576;
}
private void acceptButton_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Yes;
this.Close();
}
private void exitButton_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.No;
this.Close();
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -0,0 +1,173 @@
namespace Microsoft.MicroBit
{
partial class MainForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.statusLabel = new System.Windows.Forms.Label();
this.backgroundPictureBox = new System.Windows.Forms.PictureBox();
this.trayIcon = new System.Windows.Forms.NotifyIcon(this.components);
this.versionLabel = new System.Windows.Forms.LinkLabel();
this.label1 = new System.Windows.Forms.Label();
this.SettingsLabel = new System.Windows.Forms.LinkLabel();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
((System.ComponentModel.ISupportInitialize)(this.backgroundPictureBox)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// statusLabel
//
this.statusLabel.BackColor = System.Drawing.SystemColors.Window;
this.statusLabel.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.statusLabel.Location = new System.Drawing.Point(11, 30);
this.statusLabel.Name = "statusLabel";
this.statusLabel.Size = new System.Drawing.Size(364, 23);
this.statusLabel.TabIndex = 1;
this.statusLabel.Text = "loading...";
//
// backgroundPictureBox
//
this.backgroundPictureBox.BackColor = System.Drawing.Color.White;
this.backgroundPictureBox.Cursor = System.Windows.Forms.Cursors.Hand;
this.backgroundPictureBox.Image = global::Microsoft.MicroBit.Properties.Resources.MSFT_logo_png;
this.backgroundPictureBox.InitialImage = null;
this.backgroundPictureBox.Location = new System.Drawing.Point(226, 91);
this.backgroundPictureBox.Name = "backgroundPictureBox";
this.backgroundPictureBox.Size = new System.Drawing.Size(149, 52);
this.backgroundPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.backgroundPictureBox.TabIndex = 0;
this.backgroundPictureBox.TabStop = false;
this.backgroundPictureBox.Click += new System.EventHandler(this.backgroundPictureBox_Click);
//
// trayIcon
//
this.trayIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("trayIcon.Icon")));
this.trayIcon.Visible = true;
this.trayIcon.Click += new System.EventHandler(this.trayIcon_Click);
//
// versionLabel
//
this.versionLabel.AutoSize = true;
this.versionLabel.Location = new System.Drawing.Point(12, 121);
this.versionLabel.Name = "versionLabel";
this.versionLabel.Size = new System.Drawing.Size(28, 13);
this.versionLabel.TabIndex = 2;
this.versionLabel.TabStop = true;
this.versionLabel.Text = "v0.9";
this.versionLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.versionLabel_LinkClicked);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(12, 103);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(169, 15);
this.label1.TabIndex = 3;
this.label1.Text = "Automatic upload of .hex files.";
//
// SettingsLabel
//
this.SettingsLabel.AutoSize = true;
this.SettingsLabel.Location = new System.Drawing.Point(151, 121);
this.SettingsLabel.Name = "SettingsLabel";
this.SettingsLabel.Size = new System.Drawing.Size(43, 13);
this.SettingsLabel.TabIndex = 4;
this.SettingsLabel.TabStop = true;
this.SettingsLabel.Text = "settings";
this.SettingsLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.SettingsLabel_LinkClicked);
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.Color.White;
this.pictureBox1.Cursor = System.Windows.Forms.Cursors.Hand;
this.pictureBox1.Image = global::Microsoft.MicroBit.Properties.Resources.microbit_red;
this.pictureBox1.InitialImage = null;
this.pictureBox1.Location = new System.Drawing.Point(226, 6);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(149, 79);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 5;
this.pictureBox1.TabStop = false;
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
//
// linkLabel1
//
this.linkLabel1.AutoSize = true;
this.linkLabel1.Location = new System.Drawing.Point(62, 121);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(60, 13);
this.linkLabel1.TabIndex = 6;
this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "open editor";
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(388, 143);
this.Controls.Add(this.linkLabel1);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.SettingsLabel);
this.Controls.Add(this.label1);
this.Controls.Add(this.versionLabel);
this.Controls.Add(this.statusLabel);
this.Controls.Add(this.backgroundPictureBox);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "MainForm";
this.ShowInTaskbar = false;
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "code the micro:bit";
this.Load += new System.EventHandler(this.MainForm_Load);
((System.ComponentModel.ISupportInitialize)(this.backgroundPictureBox)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.PictureBox backgroundPictureBox;
private System.Windows.Forms.Label statusLabel;
private System.Windows.Forms.NotifyIcon trayIcon;
private System.Windows.Forms.LinkLabel versionLabel;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.LinkLabel SettingsLabel;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.LinkLabel linkLabel1;
}
}

View File

@ -0,0 +1,267 @@
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Security;
using System.Threading;
using System.Windows.Forms;
namespace Microsoft.MicroBit
{
internal partial class MainForm : Form
{
FileSystemWatcher watcher;
private string customcopypath = "";
public MainForm()
{
InitializeComponent();
var v = typeof(MainForm).Assembly.GetName().Version;
this.versionLabel.Text = "v" + v.Major + "." + v.Minor;
}
private void MainForm_Load(object sender, EventArgs e)
{
this.initializeFileWatch();
customcopypath = (string)Application.UserAppDataRegistry.GetValue("CustomDirectory", "");
this.openEditor();
}
private void openEditor()
{
// lanch editor
try { Process.Start("https://codethemicrobit.com#uploader"); } catch (Exception) { }
}
private void initializeFileWatch()
{
if (!checkTOU()) return;
var downloads = KnownFoldersNativeMethods.GetDownloadPath();
if (downloads == null)
{
this.updateStatus("oops, can't find the `Downloads` folder");
return;
}
this.watcher = new FileSystemWatcher(downloads);
this.watcher.Renamed += (sender, e) => this.handleFileEvent(e);
this.watcher.Created += (sender, e) => this.handleFileEvent(e);
this.watcher.EnableRaisingEvents = true;
this.waitingForHexFileStatus();
}
private void waitingForHexFileStatus()
{
this.updateStatus("waiting for .hex file...");
this.trayIcon.ShowBalloonTip(3000, "ready...", "waiting for .hex file...", ToolTipIcon.None);
}
static bool checkTOU()
{
var v = (int)Application.UserAppDataRegistry.GetValue("TermOfUse", 0);
if (v != 1)
{
using (var f = new LicenseDialog())
{
var r = f.ShowDialog();
if (r != DialogResult.Yes)
{
Application.Exit();
return false;
}
}
Application.UserAppDataRegistry.SetValue("TermOfUse", 1, RegistryValueKind.DWord);
}
return true;
}
delegate void Callback();
private void updateStatus(string value)
{
Callback a = (Callback)(() =>
{
this.statusLabel.Text = value;
this.trayIcon.Text = value;
});
this.Invoke(a);
}
void handleFileEvent(FileSystemEventArgs e)
{
this.handleFile(e.FullPath);
}
volatile int copying;
void handleFile(string fullPath)
{
try
{
// In case this is data-url download, at least Chrome will not rename file, but instead write to it
// directly. This mean we may catch it in the act. Let's leave it some time to finish writing.
Thread.Sleep(500);
var info = new System.IO.FileInfo(fullPath);
Trace.WriteLine("download: " + info.FullName);
if (info.Extension != ".hex") return;
var infoName = info.Name;
Trace.WriteLine("download name: " + info.Name);
if (!infoName.StartsWith("microbit-", StringComparison.OrdinalIgnoreCase)) return;
if (info.Name.EndsWith(".uploaded.hex", StringComparison.OrdinalIgnoreCase)) return;
if (info.Length > 1000000) return; // make sure we don't try to copy large files
// already copying?
if (Interlocked.Exchange(ref this.copying, 1) == 1)
return;
try
{
var driveletters = getMicrobitDrives();
List<String> drives = new List<String>();
foreach (var d in driveletters)
{
drives.Add(d.RootDirectory.FullName);
}
if (!String.IsNullOrEmpty(customcopypath) && Directory.Exists(customcopypath))
{
drives.Add(customcopypath);
}
if (drives.Count == 0)
{
this.updateStatus("no board found");
this.trayIcon.ShowBalloonTip(3000, "cancelled uploading...", "no board found", ToolTipIcon.None);
return;
}
this.updateStatus("uploading .hex file");
this.trayIcon.ShowBalloonTip(3000, "uploading...", "uploading .hex file", ToolTipIcon.None);
// copy to all boards
copyFirmware(info.FullName, drives);
// move away hex file
var temp = System.IO.Path.ChangeExtension(info.FullName, ".uploaded.hex");
try
{
File.Copy(info.FullName, temp, true);
File.Delete(info.FullName);
}
catch (IOException) { }
catch (NotSupportedException) { }
catch (UnauthorizedAccessException) { }
catch (ArgumentException) { }
// update ui
this.updateStatus("uploading done");
this.waitingForHexFileStatus();
}
finally
{
Interlocked.Exchange(ref this.copying, 0);
}
}
catch (IOException) { }
catch (NotSupportedException) { }
catch (UnauthorizedAccessException) { }
catch (ArgumentException) { }
}
static void copyFirmware(string file, List<string> drives)
{
var waitHandles = new List<WaitHandle>();
foreach (var drive in drives)
{
var ev = new AutoResetEvent(false);
waitHandles.Add(ev);
ThreadPool.QueueUserWorkItem((state) =>
{
try
{
var trg = System.IO.Path.Combine(drive, "firmware.hex");
File.Copy(file, trg, true);
}
catch (IOException) { }
catch (NotSupportedException) { }
catch (UnauthorizedAccessException) { }
catch (ArgumentException) { }
ev.Set();
}, ev);
}
//waits for all the threads (waitHandles) to call the .Set() method
//and inform that the execution has finished.
WaitHandle.WaitAll(waitHandles.ToArray());
}
static DriveInfo[] getMicrobitDrives()
{
var drives = System.IO.DriveInfo.GetDrives();
var r = new System.Collections.Generic.List<DriveInfo>();
foreach (var di in drives)
{
var label = getVolumeLabel(di);
if (label.StartsWith("MICROBIT", StringComparison.Ordinal))
r.Add(di);
}
return r.ToArray();
}
static string getVolumeLabel(DriveInfo di)
{
try { return di.VolumeLabel; }
catch (IOException) { }
catch (SecurityException) { }
catch (UnauthorizedAccessException) { }
return "";
}
private void trayIcon_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
this.WindowState = FormWindowState.Normal;
this.Show();
this.Activate();
}
private void versionLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
try
{
Process.Start("https://codethemicrobit.com/uploader");
}
catch (IOException) { }
}
private void backgroundPictureBox_Click(object sender, EventArgs e)
{
this.openEditor();
}
private void SettingsLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
var settings = new Settings(customcopypath);
settings.ShowDialog();
customcopypath = settings.CustomCopyPath;
Application.UserAppDataRegistry.SetValue("CustomDirectory", customcopypath, RegistryValueKind.String);
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
this.openEditor();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
this.openEditor();
}
}
}

View File

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="trayIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="trayIcon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAMIOAADCDgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAN6bIZTOkxoUtj62FL5W1hTWpzYUvlbWFLY+thTKgwoUxnb+FLY6shS6TsoUzpMaFL5a1hS2P
rYUxnb6FNZ2+ZTCTsvkriaf/KYKe/yuIpf8uk7L/K4il/ymBnP8tjqz/K4qn/yiBnP8qhaL/KoWh/yqG
o/8ogJv/JXeQ/yqDnvkRMjz/Di02/wofJv8MJS3/Di02/wskLP8HGB3/Di43/w0qM/8HFxz/CyMr/w4s
Nv8MJi7/CiAm/w4sNv8RMTv/BQsN/wUQE/8BAgL/AQQF/wYRFP8EBgf/AgIA/xAYJv8TGy3/AgIA/wMF
Bv8HEhX/AQUG/wECAv8FEBT/BQsN/wYFD/8LByT/AQAC/wAAAP8CAgL/AwMD/woKEv8LCxT/DAwY/woK
Ev8DAwT/AgIC/wAAAP8AAAD/AAAA/wICAv8JCA//IBs//wwMEP8AAAD/AgIC/wQEBv8bGzf/BgYK/wQE
Bf8bGzj/BgYJ/wMDA/8AAAD/CgoK/xEREf8HBwf/Li4u/1FRUf9ERET/AQEA/wwMGf8UFCj/BAQE/wMD
Av8DAwL/BAQE/xAQIP8RESL/AAAA/z8/P/9SUlH/NTU1/y4uLv9QUFD/QUFB/wEBAP8LCxf/EhIk/wIC
Af8JCRH/CwsV/wICAf8PDx3/Dw8f/wAAAP89PT3/UVFQ/zQ0M/8FBQX/DAwM/wgICP8AAAD/CwsW/xIS
JP8FBQb/Dg4b/xERIv8FBQb/Dw8d/w8PHv8AAAD/CAgK/xwXO/8KCRT/BAMI/wAAAP8AAAD/AAAA/wIC
Av8EBAX/HR06/wgIEP8GBgv/HR07/wYGCf8DAwL/AAAA/wAAAP8JBh3/BwUS/y0fhf8FBBD/AAAA/wAA
AP8AAAD/AAAA/xIOMv8fFVz/HhVa/xQPOP8AAQD/AAAA/wAAAP8AAAD/AAAA/wICAv9UO/v/MiKX/wUD
D/8FAw7/AwIK/wAAAP8RCzP/IBZi/yAWYP8TDTr/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/VTz/+FQ6
/P8yI5j/IBZg/ywehf8MCCX/BAMN/wUEEP8GBBH/AQED/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIC9Vc+
/2BVOv9+Ujj0fTwptH5ONul9OCapfRUOPn4AAAB+AAAAfQAAAH4AAAB+AAAAfQAAAH4AAAB+AAAAfgQE
BFkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA//8AAA==
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAMIOAADCDgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAN6bIZTOkxoUtj62FL5W1hTWpzYUvlbWFLY+thTKgwoUxnb+FLY6shS6TsoUzpMaFL5a1hS2P
rYUxnb6FNZ2+ZTCTsvkriaf/KYKe/yuIpf8uk7L/K4il/ymBnP8tjqz/K4qn/yiBnP8qhaL/KoWh/yqG
o/8ogJv/JXeQ/yqDnvkRMjz/Di02/wofJv8MJS3/Di02/wskLP8HGB3/Di43/w0qM/8HFxz/CyMr/w4s
Nv8MJi7/CiAm/w4sNv8RMTv/BQsN/wUQE/8BAgL/AQQF/wYRFP8EBgf/AgIA/xAYJv8TGy3/AgIA/wMF
Bv8HEhX/AQUG/wECAv8FEBT/BQsN/wYFD/8LByT/AQAC/wAAAP8CAgL/AwMD/woKEv8LCxT/DAwY/woK
Ev8DAwT/AgIC/wAAAP8AAAD/AAAA/wICAv8JCA//IBs//wwMEP8AAAD/AgIC/wQEBv8bGzf/BgYK/wQE
Bf8bGzj/BgYJ/wMDA/8AAAD/CgoK/xEREf8HBwf/Li4u/1FRUf9ERET/AQEA/wwMGf8UFCj/BAQE/wMD
Av8DAwL/BAQE/xAQIP8RESL/AAAA/z8/P/9SUlH/NTU1/y4uLv9QUFD/QUFB/wEBAP8LCxf/EhIk/wIC
Af8JCRH/CwsV/wICAf8PDx3/Dw8f/wAAAP89PT3/UVFQ/zQ0M/8FBQX/DAwM/wgICP8AAAD/CwsW/xIS
JP8FBQb/Dg4b/xERIv8FBQb/Dw8d/w8PHv8AAAD/CAgK/xwXO/8KCRT/BAMI/wAAAP8AAAD/AAAA/wIC
Av8EBAX/HR06/wgIEP8GBgv/HR07/wYGCf8DAwL/AAAA/wAAAP8JBh3/BwUS/y0fhf8FBBD/AAAA/wAA
AP8AAAD/AAAA/xIOMv8fFVz/HhVa/xQPOP8AAQD/AAAA/wAAAP8AAAD/AAAA/wICAv9UO/v/MiKX/wUD
D/8FAw7/AwIK/wAAAP8RCzP/IBZi/yAWYP8TDTr/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/VTz/+FQ6
/P8yI5j/IBZg/ywehf8MCCX/BAMN/wUEEP8GBBH/AQED/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIC9Vc+
/2BVOv9+Ujj0fTwptH5ONul9OCapfRUOPn4AAAB+AAAAfQAAAH4AAAB+AAAAfQAAAH4AAAB+AAAAfgQE
BFkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA//8AAA==
</value>
</data>
</root>

View File

@ -0,0 +1,30 @@
using Microsoft.VisualBasic.ApplicationServices;
using System;
using System.Windows.Forms;
namespace Microsoft.MicroBit
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SingleInstanceAppStarter.Start(new MainForm(), StartNewInstance);
}
// The handler when attempting to start another instance of this application
// We can customize the logic here for which form to activate in different
// conditions. Like in this sample, we will be selectively activate the LoginForm
// or MainForm based on the login state of the user.
static void StartNewInstance(object sender, StartupNextInstanceEventArgs e)
{
e.BringToForeground = true;
}
}
}

View File

@ -0,0 +1,40 @@
using System;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Code The micro:bit Uploader")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("MicrosoftMicrobitUploader")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("7dc6ca45-fd75-44bc-805e-708c812cd4bf")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.10.0.0")]
[assembly: AssemblyFileVersion("0.10.0.0")]
[assembly: CLSCompliant(true)]
[assembly: NeutralResourcesLanguage("en-US")]

Some files were not shown because too many files have changed in this diff Show More