From 9a1adc9e22b447785b6f5dbc1db387e728017322 Mon Sep 17 00:00:00 2001 From: Andrea Mah <31675041+andreamah@users.noreply.github.com> Date: Thu, 16 Apr 2020 15:08:00 -0700 Subject: [PATCH 1/2] moved tarball files to clue dir (#333) --- ...n-display-text-DSX_CUSTOM_MAR172020.tar.gz | Bin 126485 -> 0 bytes src/base_circuitpython/__init__.py | 2 + src/clue/adafruit_display_text/label.py | 280 ++++++++++++++++++ src/requirements.txt | 1 - 4 files changed, 282 insertions(+), 1 deletion(-) delete mode 100644 adafruit-circuitpython-display-text-DSX_CUSTOM_MAR172020.tar.gz create mode 100644 src/clue/adafruit_display_text/label.py diff --git a/adafruit-circuitpython-display-text-DSX_CUSTOM_MAR172020.tar.gz b/adafruit-circuitpython-display-text-DSX_CUSTOM_MAR172020.tar.gz deleted file mode 100644 index 85b10a468cf9ee20f2f94ad5348619c699710970..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126485 zcmV)4K+3-#iwFoHCW&4I0AXZdW^#3DbS-0Pa$|LAbZ~ieXm4&UWNCA7Y+-pVbY*yS zEksjTEkjjPR8LJUO+ivIH!?6XFfMdqasccd2VhjiGSYKW1W~E-xCBzjwN!E;0g_Mx zA>oq*kPyPLjeB4%t5kV0UEFkb_cK2OL z4w9hex2z7idvAAkw#@A8%8~A|anDLKUv^;UavhAlU_*#_9tU{C}p3jK4fj z|EDHFMaN$mp$d%*kHqnZ?A7C66{(`*pKs53;3-h~@sA9TimV?0sz{X?|01)sAlG0n z5-K?pDn0(8%80PA>hZ6N^kCzkW7ivWa);62Q<0=pDepJ_Vd3H7rN%!rEHc!GtCBJK zKOcXS#>lI=cpOhIA*q3+fy8W5bD0*q!H{j`hue9<7Q$KVLVgy$8)nWC)D0vYXM^YX z0g}~j5@cA&o?|!J>@tG}U($DijkgFapNyk*CEAS^u7}>%)1Jd=%_bW^0yC4un+h>A zOFfd(duGIEC#0sNcN>_l=KPC`Ih(ncU^WHP2^qwdlwfvB1yI0i^Ua*p-?O09v-)(a z#v~w(TtD7o=2GAx*WGMoU65`z8w4&_Z{RU^w#CZl>PLum=yht&3Wa3&&ZFW{PO2#l zYPG=IWM;d~Vz-fcW1Z#HYX3mb+@xW&MRLq0=xt`J1KQ?}R#Q~K$+~j^gB1Z>Krv^r z>PN`d8+`W)FL`pZT;yR!L!>+BM9SUA`Z{u3HiLX zzzm(4V7FR%lZ_0XcY?Jn>%EB;>^VlW&Tha`HmjY#M^!d57pxViDD)l`xkeL8F+rpX)#M{w&94WQy&nLUY2GJ)7K7&sko;Y~W;q}B7zvVL43FVB-hUX8^j z%j0co4*o$t3*mU1Hion4Eo#oQZX(cSq{Sf|^1a^58=;>Cxow0k28+pq?lp9R*>2VH zZlo&olsdVP?@4uEy@g}%V89J}6Ht_6&}a)nxb|F{C0}nEanJeTR#Ya-HA9UuEANRc zHdZB%mWNW5@FiNVQsyWbVoo4`WL6urGank~Nm{Z#$EpFYbIv{&8OWQ^(Sp{h&*7nR zo!)A5z+a7_NaGOTgH4kslxnCW8R)r3TNtℜ^1Nla7Ot!olVOIFe>%9H8LTES+8Pa%3!p~j%s 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%0AMly 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 *9+p3>Jp@wb|-Am_# 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

u6%N7vT);bg z#1|G9kIWujG>~I{d}i??V|LOQpSj4mU2*16(kR?;>^U< z(L-d%9z?;JSx9{m;tr^bvj#9KSjEBuL7OhjPaMJP_`%{-aq%JyVUxwh8G<@FJ8z5| zbK~=i#fhU+Q%{~{*X>BWBA!uUTl zk{u0?|D!|a{lDkrDKkq2X+HbZ8`(c26xu)2#}nmzD;b2XDVTdbe(X81Xd{e{{UJ zt@KdxmenwryMqTQ4*E@UnTeuc_8LOZ9GS_&;s$ukXf@u-0xr*jL``j$r0$%l4$%NK<#?ZFe?zOQ{rNss*Lo<_h_F8+_ozNQj?{nYFvg7 z0T^$28V&c)_O7j^jUWoY7y2KzEoCiq6R-HR*l3Z43W8dS6xqbhL|0?RW)d*}zTY`B zXLn|em!wp%WS+8fzt1`Ioy@n(Nzp#;;~xgoO&(ROb+S+bcdf=M#9K^DkQ751EqUZM z*Zg9n?LUE({TpQQsRK&vJr}4%31$LI9I_C&L<#EvQ{8v!`92Obag=*Hyy)?^5haT> zhCJ-~FjNnDqLGme##g-)LO0s~m;t*JQa@w&Tx4GO3!2_MJa5{!x|{bYfOv77tG-69 za<3IoBba)D^?`~neB7P7$|Fw0Ha^&aXV1HUPD~F=9u!#*p?+5pPhYD1IwH-i!_~N$ z6g~CW>yJ%lG)2Y<7Fc4SeDd$wq2&r~N;o<`p`#~3n0FF=uskWrRwjZ=)#Cq~>#N)AtLvoyE#LoqA@}}05M3VNvDO2_{7OCR;n-RE3_n&R*2uAH z*}icwdYq}A@>Sk*QVgPF;*@m}1@`0JreRUk2@j<`Fo}m=r9>uVAA-{H#{gReOK)=G zc&tb~F({kt2N)?t`7SejsJzTbL#lTHT0EIYj0$HfgER^Vjrju>0z(3AN;`v3j-JIa zxefI2!Y3H1_$ciK3Mx)gHwo5U1DorWE`}?X?KQ40TEIL~HX#+blZ>wWR=VWEGQTjO z_N*jZOo_W{#YUw{r}5+Jc>;0PBYHx2W+uPML{VotK^w$5XHFzA>94pNCrT2ZNhW?* zq%lFJmCA>X60_Q1->Gy$)|%9)fjZ4>Z(8?wAYSIkMYHkr7QMjN1b4~Ec#XvbsyJd} zqOnA^aH+1Cs>pT7XpqK#DQEj7wwSmET{MP1X{>LT{nB^_q=KYgluV(Ds82AGUwkRI zDykS_e;W+E0jso=xOVu*Ht5W&=ia5(#xa06yn=(|0|VPW@f(JXLM|9+g%{oq!QVR{ zH(K4?jv$t5#;jOHA4BbWq4Egp`W3qKK;M!O>h2jL=${)=619l>7ImoN;!=xwLeb5= zf}glYRF?tr4dR{voX8Pg!6#lx@OKPEg?cC%tNZlp8+1geJyTy~^Ly%J7VkHDkFG$#8tf zM!Z&2sOUXY?K;sp&#)+%vW`l;zVdlzuoh)vW9ZMYQ$1lK_p6B^`b(7qYvWy3js!;y zhAS7|%8Pzj*}_Op)`Gba9gYx#Go_6$JYQCXB2Ng`+xtLfc8^*|r_p}<07wkL4F-eu zz5|$v_8GwWENQGG7ztq=aHR5?%KK)c0V>N5a)mz^=K0#>p7+eV65eb7xrO-BE#1=n OukH^6(%#nqk^=xfm4&hZ diff --git a/src/base_circuitpython/__init__.py b/src/base_circuitpython/__init__.py index 5b5bbaf34..398a3936b 100644 --- a/src/base_circuitpython/__init__.py +++ b/src/base_circuitpython/__init__.py @@ -3,4 +3,6 @@ import sys abs_path = pathlib.Path(__file__).parent.absolute() +clue_path = os.path.join(abs_path, "../clue") sys.path.insert(0, os.path.join(abs_path)) +sys.path.insert(0, os.path.join(clue_path)) diff --git a/src/clue/adafruit_display_text/label.py b/src/clue/adafruit_display_text/label.py new file mode 100644 index 000000000..f7bab0b7f --- /dev/null +++ b/src/clue/adafruit_display_text/label.py @@ -0,0 +1,280 @@ +# The MIT License (MIT) +# +# Copyright (c) 2019 Scott Shawcroft for Adafruit Industries LLC +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +""" +`adafruit_display_text.label` +==================================================== + +Displays text labels using CircuitPython's displayio. + +* Author(s): Scott Shawcroft + +Implementation Notes +-------------------- + +**Hardware:** + +**Software and Dependencies:** + +* Adafruit CircuitPython firmware for the supported boards: + https://github.com/adafruit/circuitpython/releases + +""" + +import displayio + +__version__ = "0.0.0-auto.0" +__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Display_Text.git" + + +class Label(displayio.Group): + """A label displaying a string of text. The origin point set by ``x`` and ``y`` + properties will be the left edge of the bounding box, and in the center of a M + glyph (if its one line), or the (number of lines * linespacing + M)/2. That is, + it will try to have it be center-left as close as possible. + + :param Font font: A font class that has ``get_bounding_box`` and ``get_glyph``. + Must include a capital M for measuring character size. + :param str text: Text to display + :param int max_glyphs: The largest quantity of glyphs we will display + :param int color: Color of all text in RGB hex + :param double line_spacing: Line spacing of text to display""" + + def __init__( + self, + font, + *, + x=0, + y=0, + text=None, + max_glyphs=None, + color=0xFFFFFF, + background_color=None, + line_spacing=1.25, + **kwargs + ): + if not max_glyphs and not text: + raise RuntimeError("Please provide a max size, or initial text") + if not max_glyphs: + max_glyphs = len(text) + super().__init__(max_size=max_glyphs, auto_write=False, **kwargs) + self.width = max_glyphs + self.font = font + self._text = None + self._anchor_point = (0, 0) + self.x = x + self.y = y + + self.palette = displayio.Palette(2) + if background_color is not None: + self.palette[0] = background_color + self.palette.make_opaque(0) + self._transparent_background = False + else: + self.palette[0] = 0 + self.palette.make_transparent(0) + self._transparent_background = True + self.palette[1] = color + + bounds = self.font.get_bounding_box() + self.height = bounds[1] + self._line_spacing = line_spacing + self._boundingbox = None + + if text is not None: + self._update_text(str(text)) + + def _update_text(self, new_text): # pylint: disable=too-many-locals + x = 0 + y = 0 + i = 0 + old_c = 0 + y_offset = int( + ( + self.font.get_glyph(ord("M")).height + - new_text.count("\n") * self.height * self.line_spacing + ) + / 2 + ) + # print("y offset from baseline", y_offset) + left = right = top = bottom = 0 + for character in new_text: + if character == "\n": + y += int(self.height * self._line_spacing) + x = 0 + continue + glyph = self.font.get_glyph(ord(character)) + if not glyph: + continue + right = max(right, x + glyph.width) + if y == 0: # first line, find the Ascender height + top = min(top, -glyph.height + y_offset) + bottom = max(bottom, y - glyph.dy + y_offset) + position_y = y - glyph.height - glyph.dy + y_offset + position_x = x + glyph.dx + if ( + not self._text + or old_c >= len(self._text) + or character != self._text[old_c] + ): + try: + face = displayio.TileGrid( + glyph.bitmap, + pixel_shader=self.palette, + default_tile=glyph.tile_index, + tile_width=glyph.width, + tile_height=glyph.height, + position=(position_x, position_y), + ) + except TypeError: + face = displayio.TileGrid( + glyph.bitmap, + pixel_shader=self.palette, + default_tile=glyph.tile_index, + tile_width=glyph.width, + tile_height=glyph.height, + x=position_x, + y=position_y, + ) + if i < len(self): + self[i] = face + else: + self.append(face) + elif self._text and character == self._text[old_c]: + try: + self[i].position = (position_x, position_y) + except AttributeError: + self[i].x = position_x + self[i].y = position_y + + x += glyph.shift_x + + # TODO skip this for control sequences or non-printables. + i += 1 + old_c += 1 + # skip all non-prinables in the old string + while ( + self._text + and old_c < len(self._text) + and ( + self._text[old_c] == "\n" + or not self.font.get_glyph(ord(self._text[old_c])) + ) + ): + old_c += 1 + # Remove the rest + while len(self) > i: + self.pop() + self._text = new_text + self._boundingbox = (left, top, left + right, bottom - top) + + @property + def bounding_box(self): + """An (x, y, w, h) tuple that completely covers all glyphs. The + first two numbers are offset from the x, y origin of this group""" + return tuple(self._boundingbox) + + @property + def line_spacing(self): + """The amount of space between lines of text, in multiples of the font's + bounding-box height. (E.g. 1.0 is the bounding-box height)""" + return self._line_spacing + + @line_spacing.setter + def line_spacing(self, spacing): + if self._line_spacing != spacing: + self._line_spacing = spacing + self._Group__trigger_draw() + + @property + def color(self): + """Color of the text as an RGB hex number.""" + return self.palette[1] + + @color.setter + def color(self, new_color): + self.palette[1] = new_color + self._Group__trigger_draw() + + @property + def background_color(self): + """Color of the background as an RGB hex number.""" + if not self._transparent_background: + return self.palette[0] + return None + + @background_color.setter + def background_color(self, new_color): + if new_color is not None: + self.palette[0] = new_color + self.palette.make_opaque(0) + self._transparent_background = False + else: + self.palette[0] = 0 + self.palette.make_transparent(0) + self._transparent_background = True + + self._Group__trigger_draw() + + @property + def text(self): + """Text to display.""" + return self._text + + @text.setter + def text(self, new_text): + # APR 2, 2O2O -> + # Added manual trigger to update text since + # on-screen text updating is a lot faster this way. + + # Previously, the group was set to auto_write=True + # and each letter in the group was individually + # drawn and sent to the front-end display. + if new_text != self._text: + self._update_text(str(new_text)) + self._Group__trigger_draw() + + @property + def anchor_point(self): + """Point that anchored_position moves relative to. + Tuple with decimal percentage of width and height. + (E.g. (0,0) is top left, (1.0, 0.5): is middle right.)""" + return self._anchor_point + + @anchor_point.setter + def anchor_point(self, new_anchor_point): + if self._anchor_point != new_anchor_point: + self._Group__trigger_draw() + + @property + def anchored_position(self): + """Position relative to the anchor_point. Tuple containing x,y + pixel coordinates.""" + return ( + self.x - self._boundingbox[2] * self._anchor_point[0], + self.y - self._boundingbox[3] * self._anchor_point[1], + ) + + @anchored_position.setter + def anchored_position(self, new_position): + self.x = int(new_position[0] - (self._boundingbox[2] * self._anchor_point[0])) + self.y = int(new_position[1] - (self._boundingbox[3] * self._anchor_point[1])) + self._Group__trigger_draw() diff --git a/src/requirements.txt b/src/requirements.txt index 79749da82..66da4eb19 100644 --- a/src/requirements.txt +++ b/src/requirements.txt @@ -7,7 +7,6 @@ PyObjC; platform_system == "darwin" uflash==1.3.0 adafruit-circuitpython-fancyled==1.3.3 Pillow==7.0.0 -adafruit-circuitpython-display-text-DSX_CUSTOM_MAR172020.tar.gz adafruit-circuitpython-bitmap_font==1.1.0 adafruit-circuitpython-display-shapes==1.2.0 adafruit-circuitpython-neopixel==5.0.0 \ No newline at end of file From 242acdbc000c638710a66f59f59eb6ad561fb354 Mon Sep 17 00:00:00 2001 From: Kevin Nguyen Date: Tue, 21 Apr 2020 12:03:48 -0700 Subject: [PATCH 2/2] Minor update to production (#352) * Add precision to input slider * Fix inverse switch * Refactor * Switch default is false * Modify precision value for cpx and clue * Table of Contents for README (#349) * Slideshow Backwards/Forwards Bug Fix (#350) * slideshow nav fixed * Fixed print() statements for CLUE display in debug mode (#351) * fixed debug_user_code.py to capture print statements * added starting and ending print statements * new release note apr 21 * added a few fixes Co-authored-by: Vandy Liu <33995460+vandyliu@users.noreply.github.com> Co-authored-by: Andrea Mah <31675041+andreamah@users.noreply.github.com> Co-authored-by: andreamah --- README.md | 27 ++++++++- src/clue/adafruit_slideshow.py | 56 +++++++++++------- src/debug_user_code.py | 24 +++++++- src/latest_release_note.ts | 57 ++++++++++++------- src/view/components/cpx/CpxImage.tsx | 2 +- .../toolbar/GenericSliderComponent.tsx | 1 + src/view/components/toolbar/InputSlider.tsx | 11 +++- .../toolbar/clue/ClueSensorProperties.tsx | 23 +++++++- .../toolbar/cpx/CpxSensorProperties.tsx | 7 ++- .../microbit/MicrobitSensorProperties.tsx | 5 ++ src/view/viewUtils.tsx | 1 + 11 files changed, 163 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index f54889b18..0da43101b 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,32 @@ Make without limit! Device Simulator Express, a Microsoft Garage project, allows result when you plug in your actual microcontroller. Curious about the output of the device, the serial monitor allows you to observe the device output. -## Devices we support: +## Table of Contents + - [Devices we support](#devices-we-support) + - [Prerequisites](#prerequisites) + - [Adafruit Circuit Playground Express (CPX) Simulator](#adafruit-circuit-playground-express-cpx-simulator) + - [Features](#features) + - [Useful Links](#useful-links) + - [Keyboard Shortcuts](#keyboard-shortcuts) + - [BBC micro:bit Simulator](#bbc-microbit-simulator) + - [Features](#features-1) + - [Useful Links](#useful-links-1) + - [Keyboard Shortcuts](#keyboard-shortcuts-1) + - [Adafruit CLUE Simulator](#adafruit-clue-simulator) + - [Features](#features-2) + - [Useful Links](#useful-links-2) + - [Keyboard Shortcuts](#keyboard-shortcuts-2) + - [How to use](#how-to-use) + - [Commands](#commands) + - [Contribute](#contribute) + - [Provide feedback](#provide-feedback) + - [Privacy and Telemetry Notice](#privacy-and-telemetry-notice) + - [Third Party Notice](#third-party-notice) + - [Troubleshooting Tips](#troubleshooting-tips) + - [License](#license) + - [Notes](#notes) + +## Devices we support - [**Adafruit Circuit Playground Express (CPX)**](#adafruit-circuit-playground-express-cpx-simulator) diff --git a/src/clue/adafruit_slideshow.py b/src/clue/adafruit_slideshow.py index 7e5cecd2c..aa1fb6b65 100644 --- a/src/clue/adafruit_slideshow.py +++ b/src/clue/adafruit_slideshow.py @@ -5,7 +5,6 @@ from io import BytesIO from base_circuitpython import base_cp_constants as CONSTANTS import time -import collections from random import shuffle import common import board @@ -165,6 +164,7 @@ def __init__( self._order = order self._curr_img = "" + self._current_image_index = None # load images into main queue self.__load_images() @@ -219,41 +219,57 @@ def update(self): def __get_next_img(self): - # handle empty queue - if not len(self.pic_queue): - if self.loop: - self.__load_images() + if self.direction == PlayBackDirection.FORWARD: + if self._current_image_index == None: + self._current_image_index = 0 else: - return "" + self._current_image_index += 1 + + if self._current_image_index >= len(self.dir_imgs): + + if self.loop: + self._current_image_index = 0 + self.__load_images() + else: + self._current_image_index = len(self.dir_imgs) - 10 + return "" - if self.direction == PlayBackDirection.FORWARD: - return self.pic_queue.popleft() else: - return self.pic_queue.pop() + if self._current_image_index == None: + self._current_image_index = len(self.dir_imgs) - 1 + else: + self._current_image_index -= 1 + + if self._current_image_index < 0: + if self.loop: + self._current_image_index = len(self.dir_imgs) - 1 + self.__load_images() + else: + self._current_image_index = 0 + return "" + + img = self.dir_imgs[self._current_image_index] + return img def __load_images(self): - dir_imgs = [] + self.dir_imgs = [] for d in self.dirs: try: new_path = os.path.join(self.folder, d) # only add bmp imgs - if os.path.splitext(new_path)[1] == CONSTANTS.BMP_IMG_ENDING: - dir_imgs.append(new_path) + if os.path.splitext(new_path)[-1] == CONSTANTS.BMP_IMG_ENDING: + self.dir_imgs.append(new_path) except Image.UnidentifiedImageError as e: continue - if not len(dir_imgs): + if not len(self.dir_imgs): raise RuntimeError(CONSTANTS.NO_VALID_IMGS_ERR) if self._order == PlayBackOrder.RANDOM: - shuffle(dir_imgs) + shuffle(self.dir_imgs) else: - dir_imgs.sort() - - # convert list to queue - # (must be list beforehand for potential randomization) - self.pic_queue = collections.deque(dir_imgs) + self.dir_imgs.sort() def __advance_with_fade(self): if board.DISPLAY.active_group != self: @@ -265,6 +281,7 @@ def __advance_with_fade(self): while not advance_sucessful: new_path = self.__get_next_img() if new_path == "": + self._img_start = time.monotonic() return False try: @@ -323,6 +340,7 @@ def __advance_no_fade(self): while not advance_sucessful: new_path = self.__get_next_img() if new_path == "": + self._img_start = time.monotonic() return False try: diff --git a/src/debug_user_code.py b/src/debug_user_code.py index 7e534f479..8be4792fb 100644 --- a/src/debug_user_code.py +++ b/src/debug_user_code.py @@ -32,9 +32,15 @@ # Insert absolute path to Circuitpython libraries for CLUE into sys.path sys.path.insert(0, os.path.join(abs_path_to_parent_dir, CONSTANTS.CIRCUITPYTHON)) +# get board so we can get terminal handle +import board + # This import must happen after the sys.path is modified from common import debugger_communication_client +# get handle to terminal for clue +curr_terminal = board.DISPLAY.terminal + ## Execute User Code ## # Get user's code path @@ -56,12 +62,26 @@ utils.abs_path_to_user_file = abs_path_to_code_file utils.debug_mode = True +# overriding print function so that it shows on clue terminal +def print_decorator(func): + global curr_terminal + + def wrapped_func(*args, **kwargs): + curr_terminal.add_str_to_terminal("".join(str(e) for e in args)) + return func(*args, **kwargs) + + return wrapped_func + + +print = print_decorator(print) + # Execute the user's code file with open(abs_path_to_code_file, encoding="utf8") as user_code_file: + curr_terminal.add_str_to_terminal(CONSTANTS.CODE_START_MSG_CLUE) user_code = user_code_file.read() try: codeObj = compile(user_code, abs_path_to_code_file, CONSTANTS.EXEC_COMMAND) - exec(codeObj, {}) + exec(codeObj, {"print": print}) sys.stdout.flush() except Exception as e: exc_type, exc_value, exc_traceback = sys.exc_info() @@ -71,3 +91,5 @@ for frameIndex in range(2, len(stackTrace) - 1): errorMessage += "\t" + str(stackTrace[frameIndex]) print(e, errorMessage, file=sys.stderr, flush=True) + curr_terminal.add_str_to_terminal(CONSTANTS.CODE_FINISHED_MSG_CLUE) + board.DISPLAY.show(None) diff --git a/src/latest_release_note.ts b/src/latest_release_note.ts index 65547e1aa..3d9971054 100644 --- a/src/latest_release_note.ts +++ b/src/latest_release_note.ts @@ -1,26 +1,39 @@ // TODO: find a better way of loading html into a string -export const LATEST_RELEASE_NOTE = `

Device Simulator Express Release Notes 📝(April 20, 2020)

-

-

We're back with a full release for the Adafruit CLUE 🐍🔍.

+export const LATEST_RELEASE_NOTE = `

Device Simulator Express Release Notes 🤖

+

Device Simulator Express, a Microsoft Garage project, allows you to code microcontrollers without the hardware on hand! You can program your Adafruit Circuit Playground Express (CPX), your BBC micro:bit or the Adafruit CLUE!

+
+ LIGHTGESTUREPROXIMITY +
+ +

📝 April 21, 2020

+ +

Changes:

+
    +
  • Increased precision for certain sensors on the CLUE and CPX.
  • +
+

Fixes:

+
    +
  • Fixed bugs within the CLUE slideshow library and debugger.
  • +
-
- LIGHTGESTUREPROXIMITY -
-

-

Changes:

-
    -
  • The Adafruit CLUE is enabled by default.
  • -
  • The "Getting Started" page now includes some guidance on the debugger.
  • -
-

Fixes:

-
    -
  • Implemented fix for the switch on the CPX.
  • -
  • The CLUE debugger's LEDs can now correctly show on the UI.
  • -
  • The dependency installation process is fixed, and users without Git installed can now run setup.
  • -
+

📝 April 20, 2020

+

+

We're back with a full release for the Adafruit CLUE 🐍🔍.

+

+

Changes:

+
    +
  • The Adafruit CLUE is enabled by default.
  • +
  • The "Getting Started" page now includes some guidance on the debugger.
  • +
+

Fixes:

+
    +
  • Implemented fix for the switch on the CPX.
  • +
  • The CLUE debugger's LEDs can now correctly show on the UI.
  • +
  • The dependency installation process is fixed, and users without Git installed can now run setup.
  • +
-

+

-

PS: You can read about the DSX team in the article here!

-

Create something wonderful ✨🙌,
-       - The Device Simulator Express Team

`; +

PS: You can read about the DSX team in the article here!

+

Create something wonderful ✨🙌,
+       - The Device Simulator Express Team

`; diff --git a/src/view/components/cpx/CpxImage.tsx b/src/view/components/cpx/CpxImage.tsx index 7163b67c3..48aef4e64 100644 --- a/src/view/components/cpx/CpxImage.tsx +++ b/src/view/components/cpx/CpxImage.tsx @@ -380,7 +380,7 @@ export const updateSwitch = (switchState: boolean): void => { if (switchElement && switchInner) { svg.addClass(switchInner, "sim-slide-switch-inner"); - if (switchState) { + if (!switchState) { svg.addClass(switchInner, "on"); switchInner.setAttribute("transform", "translate(-5,0)"); } else { diff --git a/src/view/components/toolbar/GenericSliderComponent.tsx b/src/view/components/toolbar/GenericSliderComponent.tsx index 48e2ec091..273896621 100644 --- a/src/view/components/toolbar/GenericSliderComponent.tsx +++ b/src/view/components/toolbar/GenericSliderComponent.tsx @@ -29,6 +29,7 @@ export const GenericSliderComponent: React.FC = props => { value={ props.axisValues[sliderProperties.axisLabel] } + step={sliderProperties.step} />
diff --git a/src/view/components/toolbar/InputSlider.tsx b/src/view/components/toolbar/InputSlider.tsx index d98e118cc..9d163aca3 100644 --- a/src/view/components/toolbar/InputSlider.tsx +++ b/src/view/components/toolbar/InputSlider.tsx @@ -21,6 +21,9 @@ class InputSlider extends React.Component { render() { const isInputDisabled = this.context === VIEW_STATE.PAUSE; + + const nbDecimals = + this.props.step.toString().split(".")[1]?.length || 0; return (
{this.props.axisLabel} @@ -31,8 +34,9 @@ class InputSlider extends React.Component { onInput={this.handleOnChange} defaultValue={this.props.minValue.toLocaleString()} pattern={`^-?[0-9]{0,${ - this.props.maxValue.toString().length - }}$`} + (this.props.maxValue / this.props.step).toString() + .length + }}[.]{0,${nbDecimals > 0 ? 1 : 0}}[0-9]{0,${nbDecimals}}$`} onKeyUp={this.handleOnChange} aria-label={`${this.props.type} sensor input ${this.props.axisLabel}`} /> @@ -56,6 +60,7 @@ class InputSlider extends React.Component { aria-label={`${this.props.type} sensor`} defaultValue={this.props.minValue.toLocaleString()} disabled={isInputDisabled} + step={this.props.step} /> {this.props.minLabel} @@ -100,7 +105,7 @@ class InputSlider extends React.Component { }; private validateRange = (valueString: string) => { - let valueInt = parseInt(valueString, 10); + let valueInt = parseFloat(valueString); if (valueInt < this.props.minValue) { valueInt = this.props.minValue; this.setState({ value: valueInt }); diff --git a/src/view/components/toolbar/clue/ClueSensorProperties.tsx b/src/view/components/toolbar/clue/ClueSensorProperties.tsx index 2e2b9975a..e1f124557 100644 --- a/src/view/components/toolbar/clue/ClueSensorProperties.tsx +++ b/src/view/components/toolbar/clue/ClueSensorProperties.tsx @@ -4,28 +4,31 @@ import { ISensorProps, ISliderProps } from "../../../viewUtils"; const CLUE_SLIDER_R: ISliderProps = { axisLabel: "R", maxLabel: "Max", - maxValue: 255, + maxValue: 65535, minLabel: "Min", minValue: 0, type: SENSOR_LIST.LIGHT_R, + step: 1, }; const CLUE_SLIDER_G: ISliderProps = { axisLabel: "G", maxLabel: "Max", - maxValue: 255, + maxValue: 65535, minLabel: "Min", minValue: 0, type: SENSOR_LIST.LIGHT_G, + step: 1, }; const CLUE_SLIDER_B: ISliderProps = { axisLabel: "B", maxLabel: "Max", - maxValue: 255, + maxValue: 65535, minLabel: "Min", minValue: 0, type: SENSOR_LIST.LIGHT_B, + step: 1, }; const CLUE_SLIDER_C: ISliderProps = { axisLabel: "C", @@ -34,6 +37,7 @@ const CLUE_SLIDER_C: ISliderProps = { minLabel: "Min", minValue: 0, type: SENSOR_LIST.LIGHT_C, + step: 1, }; export const CLUE_LIGHT_PROPERTIES: ISensorProps = { @@ -50,6 +54,7 @@ const CLUE_MAGNET_X: ISliderProps = { maxValue: 1000, minValue: -1000, type: SENSOR_LIST.MAGNET_X, + step: 0.1, }; const CLUE_MAGNET_Y: ISliderProps = { axisLabel: "Y", @@ -58,6 +63,7 @@ const CLUE_MAGNET_Y: ISliderProps = { maxValue: 1000, minValue: -1000, type: SENSOR_LIST.MAGNET_Y, + step: 0.1, }; const CLUE_MAGNET_Z: ISliderProps = { axisLabel: "Z", @@ -66,6 +72,7 @@ const CLUE_MAGNET_Z: ISliderProps = { maxValue: 1000, minValue: -1000, type: SENSOR_LIST.MAGNET_Z, + step: 0.1, }; export const CLUE_MAGNET_PROPERTIES: ISensorProps = { @@ -80,6 +87,7 @@ const CLUE_GYRO_X: ISliderProps = { maxValue: 1000, minValue: -1000, type: SENSOR_LIST.GYRO_X, + step: 0.1, }; const CLUE_GYRO_Y: ISliderProps = { axisLabel: "Y", @@ -88,6 +96,7 @@ const CLUE_GYRO_Y: ISliderProps = { maxValue: 1000, minValue: -1000, type: SENSOR_LIST.GYRO_Y, + step: 0.1, }; const CLUE_GYRO_Z: ISliderProps = { axisLabel: "Z", @@ -96,6 +105,7 @@ const CLUE_GYRO_Z: ISliderProps = { maxValue: 1000, minValue: -1000, type: SENSOR_LIST.GYRO_Z, + step: 0.1, }; export const CLUE_GYRO_PROPERTIES: ISensorProps = { @@ -114,6 +124,7 @@ export const CLUE_HUMIDITY_PROPERTIES: ISensorProps = { minLabel: "Min", minValue: 0, type: SENSOR_LIST.HUMIDITY, + step: 0.1, }, ], unitLabel: "%", @@ -128,6 +139,7 @@ export const CLUE__PROXIMITY_PROPERTIES: ISensorProps = { minLabel: "Min", minValue: 0, type: SENSOR_LIST.PROXIMITY, + step: 1, }, ], unitLabel: "", @@ -142,6 +154,7 @@ export const CLUE_PRESSURE_PROPERTIES: ISensorProps = { minLabel: "Min", minValue: 800, type: SENSOR_LIST.PRESSURE, + step: 0.1, }, ], unitLabel: "hPa", @@ -153,6 +166,7 @@ const MOTION_SLIDER_PROPS_X: ISliderProps = { minLabel: "Left", minValue: -1023, type: SENSOR_LIST.MOTION_X, + step: 0.1, }; const MOTION_SLIDER_PROPS_Y: ISliderProps = { @@ -162,6 +176,7 @@ const MOTION_SLIDER_PROPS_Y: ISliderProps = { minLabel: "Back", minValue: -1023, type: SENSOR_LIST.MOTION_Y, + step: 0.1, }; const MOTION_SLIDER_PROPS_Z: ISliderProps = { @@ -171,6 +186,7 @@ const MOTION_SLIDER_PROPS_Z: ISliderProps = { minLabel: "Up", minValue: -1023, type: SENSOR_LIST.MOTION_Z, + step: 0.1, }; export const MOTION_SENSOR_PROPERTIES: ISensorProps = { @@ -190,6 +206,7 @@ const TEMPERATURE_SLIDER_PROPS: ISliderProps = { minLabel: "Cold", minValue: -55, type: SENSOR_LIST.TEMPERATURE, + step: 0.1, }; export const TEMPERATURE_SENSOR_PROPERTIES: ISensorProps = { diff --git a/src/view/components/toolbar/cpx/CpxSensorProperties.tsx b/src/view/components/toolbar/cpx/CpxSensorProperties.tsx index 6a5a9990a..f91f91469 100644 --- a/src/view/components/toolbar/cpx/CpxSensorProperties.tsx +++ b/src/view/components/toolbar/cpx/CpxSensorProperties.tsx @@ -2,12 +2,13 @@ import { SENSOR_LIST } from "../../../constants"; import { ISensorProps, ISliderProps } from "../../../viewUtils"; const LIGHT_SLIDER_PROPS: ISliderProps = { - maxValue: 255, + maxValue: 320, minValue: 0, minLabel: "Dark", maxLabel: "Bright", type: "light", axisLabel: "L", + step: 1, }; export const LIGHT_SENSOR_PROPERTIES: ISensorProps = { @@ -23,6 +24,7 @@ const TEMPERATURE_SLIDER_PROPS: ISliderProps = { minLabel: "Cold", minValue: -55, type: SENSOR_LIST.TEMPERATURE, + step: 0.1, }; export const TEMPERATURE_SENSOR_PROPERTIES: ISensorProps = { LABEL: "Temperature sensor", @@ -37,6 +39,7 @@ const MOTION_SLIDER_PROPS_X: ISliderProps = { minLabel: "Left", minValue: -78, type: SENSOR_LIST.MOTION_X, + step: 1, }; const MOTION_SLIDER_PROPS_Y: ISliderProps = { axisLabel: "Y", @@ -45,6 +48,7 @@ const MOTION_SLIDER_PROPS_Y: ISliderProps = { minLabel: "Back", minValue: -78, type: SENSOR_LIST.MOTION_Y, + step: 1, }; const MOTION_SLIDER_PROPS_Z: ISliderProps = { axisLabel: "Z", @@ -53,6 +57,7 @@ const MOTION_SLIDER_PROPS_Z: ISliderProps = { minLabel: "Up", minValue: -78, type: SENSOR_LIST.MOTION_Z, + step: 1, }; export const MOTION_SENSOR_PROPERTIES: ISensorProps = { diff --git a/src/view/components/toolbar/microbit/MicrobitSensorProperties.tsx b/src/view/components/toolbar/microbit/MicrobitSensorProperties.tsx index 42470ce44..c32b00477 100644 --- a/src/view/components/toolbar/microbit/MicrobitSensorProperties.tsx +++ b/src/view/components/toolbar/microbit/MicrobitSensorProperties.tsx @@ -8,6 +8,7 @@ const LIGHT_SLIDER_PROPS: ISliderProps = { maxLabel: "Bright", type: "light", axisLabel: "L", + step: 1, }; export const LIGHT_SENSOR_PROPERTIES: ISensorProps = { @@ -23,6 +24,7 @@ const MOTION_SLIDER_PROPS_X: ISliderProps = { minLabel: "Left", minValue: -1023, type: SENSOR_LIST.MOTION_X, + step: 1, }; const MOTION_SLIDER_PROPS_Y: ISliderProps = { @@ -32,6 +34,7 @@ const MOTION_SLIDER_PROPS_Y: ISliderProps = { minLabel: "Back", minValue: -1023, type: SENSOR_LIST.MOTION_Y, + step: 1, }; const MOTION_SLIDER_PROPS_Z: ISliderProps = { @@ -41,6 +44,7 @@ const MOTION_SLIDER_PROPS_Z: ISliderProps = { minLabel: "Up", minValue: -1023, type: SENSOR_LIST.MOTION_Z, + step: 1, }; export const MOTION_SENSOR_PROPERTIES: ISensorProps = { @@ -60,6 +64,7 @@ const TEMPERATURE_SLIDER_PROPS: ISliderProps = { minLabel: "Cold", minValue: -55, type: SENSOR_LIST.TEMPERATURE, + step: 1, }; export const TEMPERATURE_SENSOR_PROPERTIES: ISensorProps = { diff --git a/src/view/viewUtils.tsx b/src/view/viewUtils.tsx index cc12abd59..1335d039f 100644 --- a/src/view/viewUtils.tsx +++ b/src/view/viewUtils.tsx @@ -11,6 +11,7 @@ export interface ISliderProps { axisLabel: string; value?: number; onUpdateValue?: (sensor: SENSOR_LIST, value: number) => void; + step: number; } export interface ISensorButtonProps {