Commit graph

2386 commits

Author SHA1 Message Date
Kevin Andersen
20967fe768 changed wording of setMotorPower-block to use speed instead of power 2019-03-21 13:56:47 -04:00
Kevin Andersen
02d047cfbd Stabilized color-sensing by:
- Creating Boost._colorBucket will contains BoostColorSampleSize-amount of samples
- Boost._onMessage administers the _colorBucket and assigns Boost._sensors.color a value if all items in the bucket match.

E.g. if BoostColorSampleSize is set to 3, three continuous readings of the same color are required for the color to be detected by scratch-vm.
2019-03-21 13:46:51 -04:00
Eric Rosenbaum
1339841bc4 Remove Hindi from text2speech extension
Low quality speech synthesis, needs investigation
2019-03-21 11:00:43 -04:00
Kevin Andersen
bfb61c0df4 - Removed unused IOs
- Renamed BoostOutputCommandFeedback to BoostPortFeedback and its values for brevity
- Removed buf2hex-function
- Removed BoostMotor._pendingPositionOrigin (unused)
- Removed Boost._led (unused)
- Simplified _onMessage-handling of BoostPortFeedback-messages
- motorOnForRotation() now returns a Promise.all rather than a single promise. This solves  two bugs:
-- when running turn ABCD for 3 rotations without motors connected to CD, the block would finish yielding immediately.
-- when running turn C for X rotations without a motor connected to C, the motor would never finish yielding.
2019-03-20 13:50:24 -04:00
Evelyn Eastmond
35d255319b
Merge pull request #2055 from evhan55/extensions/disconnect-fixes
Fix hardware extension disconnect behavior
2019-03-20 11:01:36 -04:00
Eric Rosenbaum
6951151fd5
Merge pull request #2056 from ericrosenbaum/bugfix/text2speech-name-localization
Localize name of Text to Speech extension
2019-03-20 10:28:57 -04:00
Kevin Andersen
5f6c8b1efd Reworked motor-system to allow the setMotorPower- and setMotorDirection-blocks to modify the motor behavior if the motor is already running.
- BoostMotor-class now has pendingPositionDestination, the rotation-equivalent of pendingTimeout, that stores a destination the motor should reach. When using setMotorPower() or setMotorDirection() while a motorOnForRotation()-block is running, a new motorOnForRotation()-command will be run for the remaining amount of degrees but with new power/direction, cancelling the old command.
- BoostMotor._status is only affected by feedback from the hub.
- setMotorPower() and setMotorDirection() no longer yields, since they just set state.

From design meeting regarding block design:
- Renamed all motors-label to ABCD.
- Added 'AB' motor label to address built-in motor pair.
- use the word direction in the setMotorDirection-block
- moved argument label in motor position reporter
- changed wording of color-sensing block.
- removed isTilted-boolean reporter
- removed changeLightHueBy-block

- fixed pingDevice-function bug.
2019-03-19 18:34:12 -04:00
Michael "Z" Goddard
f6616eb2b8
Merge pull request #2009 from mzgoddard/sb3-load-assets-first
Deserialize sb3 assets before loading data
2019-03-19 17:24:58 -04:00
Eric Rosenbaum
55257c0bf7 Localize name of Text to Speech extension 2019-03-19 12:24:51 -04:00
Evelyn Eastmond
65b05a9da4 Fixing disconnect to handle different cases differently. 2019-03-19 10:44:33 -04:00
Eric Rosenbaum
68e7f24bb9
Revert "Rate limiting for micro:bit using TaskQueue" 2019-03-18 10:16:50 -04:00
Eric Rosenbaum
7f69e0ce3f
Merge pull request #2046 from ericrosenbaum/feature/tts-add-single-language-voices2
Add eight new languages to Text to Speech extension
2019-03-14 16:42:07 -04:00
Evelyn Eastmond
94ca11f721
Merge pull request #2024 from evhan55/extensions/microbit-rate-limiting
Rate limiting for micro:bit using TaskQueue
2019-03-13 22:02:26 -04:00
Evelyn Eastmond
7d7193cb29
Merge pull request #2043 from evhan55/bug/extensions-device-scan
Device scan discovery fix
2019-03-13 19:39:07 -04:00
Paul Kaplan
8d4be4eec5
Merge pull request #2045 from paulkaplan/fix-adding-custom-input
Allow for situation where we get a move event to attach a shadow.
2019-03-13 17:04:15 -04:00
picklesrus
7807dcecb4
Merge pull request #2042 from ktbee/clamp-graphics-effect
add clampEffect for limiting range of brightness and ghost effects
2019-03-13 15:23:18 -04:00
Kevin Andersen
55ccc4e77a Implemented pingDevice() which, like the WeDo 2.0 extension, tries to read from the Boost Hub at a given interval. If it doesn't hear back from the hub, it assumes the device has been disconnected. 2019-03-13 14:35:53 -04:00
Kevin Andersen
873b56c985 - Motor-power functionality changed!
-- Using a max-power setting of 100 rather than following the speed in the motor-commands will allow motors to run at really slow speeds.
-- As a result, motor-commands now use max-power of 100 regardless of speed and setMotorPower no longer scales according to a minimum speed of 20.
- BLE-rate enums consolidated into BoostBLE enum
2019-03-12 17:35:43 -04:00
Michael "Z" Goddard
f4e49563d6
start loading sb3 assets before handling sb3 data 2019-03-12 17:16:13 -04:00
Michael "Z" Goddard
82d19bac4d
Merge pull request #1956 from mzgoddard/lazy-eval-big-dependencies
Lazy eval big dependencies
2019-03-12 17:11:26 -04:00
Eric Rosenbaum
bed0b05bc9 Log error instead of returning null 2019-03-12 14:29:39 -04:00
Katie Broida
92c1711937 add clampEffect for limiting range of brightness and ghost effects 2019-03-12 11:14:11 -04:00
Paul Kaplan
2b53b8b647 Allow for situation where we get a move event to attach a shadow.
This happens after adding a custom procedure input to an existing custom procedure call block.
2019-03-11 14:52:40 -04:00
unknown
80196093a4 Changing disconnect connection check to websocket open status instead of peripheral connection. 2019-03-11 11:59:33 -04:00
Eric Rosenbaum
580e93d15a fix norwegian id 2019-03-07 17:00:48 -05:00
Eric Rosenbaum
9455112d74 improve variable name 2019-03-07 17:00:40 -05:00
Katie Broida
c37745e97e Cast sprite name to string before getSpriteTargetByName 2019-03-07 16:09:46 -05:00
unknown
c603e0d653 Fixing linting errors. 2019-03-07 08:38:52 -05:00
unknown
0a9f629fb4 Comment out console logs. 2019-03-07 08:26:38 -05:00
unknown
43fde03f57 Fixing the comment yet again. 2019-03-06 13:17:06 -05:00
unknown
f1fc54bfaf Fixing comment based on cwf suggestion. 2019-03-06 13:13:57 -05:00
unknown
2148e9ead1 Adding stopAll binding back in after un-rebased merge. 2019-03-06 13:08:55 -05:00
unknown
54ed67ac22 Adding TaskQueue import back in after un-rebased merge. 2019-03-06 12:57:32 -05:00
unknown
7a14dad668 Removing console logs that came in accidentally via un-rebased merge. 2019-03-06 12:55:04 -05:00
unknown
fed43e1841 Removing busy flag again which was reintroduced via a un-rebased merge. 2019-03-06 12:53:17 -05:00
unknown
b31a1f0e98 Move argument processing outside of TaskQueue.do calls. 2019-03-06 12:47:44 -05:00
Evelyn Eastmond
f5dc90f729 Fixing comment again. 2019-03-06 12:47:44 -05:00
Evelyn Eastmond
d2c14f872c Fixing comment. 2019-03-06 12:47:44 -05:00
Evelyn Eastmond
00d1a407ac Fixing some comments. 2019-03-06 12:47:44 -05:00
Evelyn Eastmond
3c77f82238 Changing maxTokens and refillRate for microbit test. 2019-03-06 12:47:44 -05:00
Evelyn Eastmond
fb36731ce4 Add catches for task queue Promise rejections, and some debug console logs. 2019-03-06 12:47:44 -05:00
Evelyn Eastmond
eecd508464 Fix usage of task queue with an opcode that has its own promise/time delay resolution (i.e. displayText in microbit). 2019-03-06 12:46:56 -05:00
Evelyn Eastmond
dbb884ddef Removing task queue constructor hacks. 2019-03-06 12:46:08 -05:00
Evelyn Eastmond
6688106852 Continuing to test the newest TaskQueue with microbit. 2019-03-06 12:44:22 -05:00
Eric Rosenbaum
59586291d7 Comments 2019-03-06 12:03:54 -05:00
Eric Rosenbaum
ee0d395b9c Cleanup check supported and get extension locale 2019-03-06 12:03:46 -05:00
Michael "Z" Goddard
882a83db9a
do not evaluate text-encoding until it is needed
text-encoding has about ~700KB of data that is great to skip decoding
for systems that have a browser provided TextDecoder.
2019-03-06 11:11:44 -05:00
Michael "Z" Goddard
bc5605cf80
lazy evaluate project loading related code 2019-03-06 11:11:44 -05:00
Michael "Z" Goddard
a5009b4c59
delay extension evaluation until that extension is installed
Reduce the amount of code that needs to evaluated before we can
starting the target project if there is one. It is key to note that the
music extension includes ~2MB of base64 encoded sound samples. This
skips evaluating those samples and decoding base64 into binary typed
arrays.
2019-03-06 11:11:44 -05:00
Michael "Z" Goddard
d05a414439
turn getCanvas into a class CanvasPool 2019-03-06 10:53:15 -05:00
Eric Rosenbaum
8fc3111b21 use id for default language 2019-03-06 10:51:08 -05:00
Michael "Z" Goddard
c01175613b
load-costume: idiomatic promise and createImageBitmap 2019-03-06 10:49:27 -05:00
Michael "Z" Goddard
9bd1bc5915
load-costume: use one canvas pool 2019-03-06 10:49:27 -05:00
Eric Rosenbaum
65d0a3aa11 cleanup 2019-03-06 10:37:36 -05:00
Eric Rosenbaum
d059f8baa6 Check and set language, handling many-to-one mapping 2019-03-06 10:37:36 -05:00
Eric Rosenbaum
ab633d3448 WIP updating to use new language info data 2019-03-06 10:37:36 -05:00
Eric Rosenbaum
bc9e215ee8 Fill in language info data 2019-03-06 10:37:36 -05:00
Eric Rosenbaum
04c6bc189a Add language ids 2019-03-06 10:37:36 -05:00
Eric Rosenbaum
da212bcf06 wip switching from using locales to language IDs internally 2019-03-06 10:37:36 -05:00
Eric Rosenbaum
920096d061 Add romanian and fix ordering 2019-03-06 10:37:36 -05:00
Eric Rosenbaum
3996cc0c6b Add Welsh, Swedish and Turkish 2019-03-06 10:37:36 -05:00
Eric Rosenbaum
f33e07132e Add hindi, korean, norwegian, and adjust rates 2019-03-06 10:37:36 -05:00
Eric Rosenbaum
5b5c0d80eb Set tenor playback rate for single gender languages 2019-03-06 10:37:36 -05:00
Eric Rosenbaum
0d12cead31 key language info by locale id, and add chinese 2019-03-06 10:37:36 -05:00
Kevin Andersen
a4e005cf2b Merge branch 'develop' of https://github.com/LLK/scratch-vm into boostextension 2019-03-04 18:11:26 -05:00
Kevin Andersen
6cf00a4235 Linted 2019-03-04 17:39:02 -05:00
Evelyn Eastmond
cd85e8ddfa
Merge pull request #2014 from evhan55/extensions/microbit-timeout
Fix micro:bit auto-disconnect from setInterval to setTimeout
2019-03-04 15:29:38 -05:00
Michael "Z" Goddard
33f4482127
Merge pull request #1972 from mzgoddard/sound-bank-over-sprite
Sound bank over sprite
2019-03-04 12:51:10 -05:00
Michael "Z" Goddard
9350c2a9c2
Merge pull request #1947 from mzgoddard/sb2-load-assets-first
Deserialize sb2 assets before other sprite data and blocks
2019-03-04 12:50:09 -05:00
Kevin Andersen
852ae43348 This commit is a combination of changes after an internal play test with the Scratch Team, as well as code cleanup.
Motors:
- motor position will now initially report 0 instead of false
- removed remaining motor position zeroing functions.
- removed startBraking().
- turnOn() and turnOnForDegrees() are now using an absolute max power as per the protocol documentation.
- the "turn for rotations"-block now accepts negative values.
-- turnOnForDegrees() accepts a direction to reflect the change above. The direction from the block is calculated against the motors current direction.
- commented EV3 tacho calculation code for motor positioning removed.
- Changed BoostMotorLabel to reflect actual motor block argument.
- startMotorPower() renamed to setMotorPower() since it doesn't start the motor.
- setMotorPower() will not start the motor.
- Max number of rotations for a motor-block is clamped to 100 rotations.
- 'Default' removed from BoostMotorLabel-enum as it wasn't used.

Sensors:
- removed remaining distance-related functions.
- color-reporters default value is now none rather than black.
- tilt-angles left and right switched to reflect the hubs orientation.
2019-03-04 12:38:02 -05:00
Kevin Andersen
669ff1abf1 - Boost-icon added to blocks
- Added BoostColorLabel-enum for color sensing block argument labels
- Regrouped blocks to be grouped by functionality, promoting color sensing
- Added 'any' to whenColor hat-block which triggers if the color sensor reports a value that is not none. Implemented an oldColor-value that allows the hat-block to trigger between color-changes, even if the sensor doesnt see 'none' in the meantime.
2019-03-01 11:36:57 -05:00
Evelyn Eastmond
59ab3b717d Fixing clearInterval > clearTimeout. 2019-03-01 10:04:56 -05:00
Evelyn Eastmond
7a1367d81a Change from setInterval to setTimeout for auto disconnect feature. 2019-03-01 10:02:30 -05:00
Kevin Andersen
ed051cdd82 Changed color-sensing values to be strings instead of LEGO numbering, which seems more intuitive. 2019-02-27 15:49:24 -05:00
Kevin Andersen
d2d236d282 After discussion with @ericrosenbaum, decided to change the following:
- Regroup blocks by functionality, i.e. motors, led, color-sensing, etc.
- Remove motor position zero-ing as concept and use MathUtil.wrapClamp to instead wrap everything around 360 degrees.
- WIP: "Set motor power to"-block should update motors that are currently running to emphasize principle that blocks have actions.
2019-02-27 15:19:40 -05:00
Kevin Andersen
7fc705b741 - Consolidated BLE enums for brevity
- Added IOs from documentation to BoostIO enumotor follows the speed set by Scratch and not the highest possible speed.
- Cleaned up line breaks in codebrake rather than float when stopping.
- Cleaned up documentationensors
- Deleted unused MOTOR_OUTPUT from BoostMode-enumbased on BoostMode-enum
- Set default-value for "set motor power to"-block to be all motors after feedback from @ericrosenbaum
- Implemented check in getMotorPosition() to see if motor is actually there before reporting position
2019-02-26 14:44:13 -05:00
Chris Willis-Ford
bb42c0019c
Merge pull request #1998 from cwillisf/task-queue-enhancements
Task queue enhancements
2019-02-25 21:28:05 -05:00
Katie Broida
cff1c2c0a4
Merge pull request #1959 from ktbee/declare-const-once
Declare const once to be reused in for loop
2019-02-25 15:57:52 -05:00
Karishma Chadha
475eaf3dfa
Merge pull request #1969 from mzgoddard/benchmark-more-data
Benchmark more data
2019-02-25 11:38:09 -05:00
Michael "Z" Goddard
0e9357b062
benchmark load now
This is a slight ergonomics improvement for faster benchmark loading.
We should be able to apply this to gui as well if it already does do
the same thing.
2019-02-22 16:01:09 -05:00
Michael "Z" Goddard
991acbb36a
benchmark more loading stats
- Display time to load just the (json) data
- Display progress and time for content
- Display progress and time hydrating the downloaded assets
2019-02-22 16:01:08 -05:00
Kevin Andersen
40c022ca8e - Refactoring of output commands:
- Simplified generateOutputCommand() to follow the LEGO Wireless Protocol command-structure. Every output-command must have a portID, execution information, sub-command, and then followed by a custom payload which must be defined according to the protocol documentation mentioned in the extension.
- Simple motor commands now use the above subcommand-structure rather than the former primitive command structure.
- stopLED()-function removed since it's not used
- Implemented check of pendingPromiseFunction() for motors before firing.
2019-02-22 12:50:19 -05:00
Kevin Andersen
9767d72188 - Cleaned up TODOs!
- Added and made use of more enums rather than hardcoded bytes
2019-02-21 14:47:30 -05:00
Kevin Andersen
a3dcdd01dd Merge branch 'develop' of https://github.com/LLK/scratch-vm into boostextension 2019-02-21 14:00:43 -05:00
Kevin Andersen
1d72b3b971 - Removed unused distance-mode from BoostMode-enum
- Added descriptions to BoostMode-enums
- Improved motor-position handling
- Added helper-functions for converting to/from motor position values
- Added default value to BoostMotor._pendingPromiseFunction
- Added changeLedColorBy-block
- Only motors will now try to resolve motor-promises
- Changed motor position wording from 'zero' to 'reset'
- Modified tilt-thresholds to improve tilt-handling
2019-02-21 13:35:21 -05:00
Eric Rosenbaum
c0e80edfcc Update block and menu icons 2019-02-20 11:13:00 -05:00
Eric Rosenbaum
931d7e9a62 More re-ordering 2019-02-20 11:00:21 -05:00
Eric Rosenbaum
9e650279a6 Re-order blocks 2019-02-20 10:59:07 -05:00
Eric Rosenbaum
7da54dd067 Add tilted any option 2019-02-20 10:49:03 -05:00
Eric Rosenbaum
a19585af75 Add tilt blocks 2019-02-19 16:09:58 -05:00
Eric Rosenbaum
ba548701e2 Set update rate to 80ms 2019-02-19 15:14:37 -05:00
Eric Rosenbaum
f4662f833f rename “tilt angle” and “spin speed” reporters 2019-02-19 15:06:03 -05:00
Eric Rosenbaum
ec2ca32ffa Remove “moved” gesture 2019-02-19 13:55:24 -05:00
Christopher Willis-Ford
e6dd3f1175 Fix TaskQueue constructor when no options passed 2019-02-15 15:20:38 -08:00
Michael "Z" Goddard
146e93e4ec
start loading sb2 sounds before handling sb2 data 2019-02-15 17:43:55 -05:00
Michael "Z" Goddard
d4320f1c26
start loading sb2 assets before handling sb2 data 2019-02-15 17:34:14 -05:00
Karishma Chadha
a86dc5bb58
Merge pull request #1944 from mzgoddard/benchmark-load-time
Benchmark load time
2019-02-15 13:52:48 -05:00
Kevin Andersen
e99a217ba5 Merge branch 'develop' of https://github.com/LLK/scratch-vm into boostextension 2019-02-14 13:31:13 -05:00
Kevin Andersen
32a9674b5d Added disconnect-handling per new extensions-spec. Motor-commands that fail will now also cause their blocks to complete 2019-02-14 13:30:58 -05:00
unknown
ac571ece5a Fixing comment. 2019-02-13 14:14:05 -05:00