Updating Simulator Pins (#75)

* 2.0.2

* this repo is empty (#2201)

* Update radio event parm usage descriptions (#2165)

* add browser db prefix for v2 (#2208)

* 2.0.3

* Releasing 2.0.3 to live (#2209)

* dynamically sniff offline app version (#2059)

* Revert "dynamically sniff offline app version (#2059)" (#2211)

This reverts commit b480b34f7e.

* Updating electron to 2.0.3 (#2210)

* Updating offline reference to 2.0.3 (#2212)

* Bumping version to 2.1.0

* 2.1.1

* Spelling (#2214)

* Update write-received-packet-to-serial.md (#2217)

A support ticket pointed out issues that they'd encountered when trying to follow this document:

- `sendValue` only supports an 8 character string. This is documented in the `sendValue` docs but a longer string had been used here
- Only `radio.onReceivedNumber` is used so the sample output is not consistent with the users experience. I've changed it so that all packets are handled

* Use gcPreAllocateBlock() to fix #2177, #2215 (#2216)

* Use gcPreAllocateBlock() to fix #2177, #2215
* bump pcp 6.9.4

* 2.1.2

* Correct dice example (#2262)

Changed random(6) to random(5) so the number reflect real dice.

* add 4tronix minibit (#2249)

* Update targetconfig.json (#2258)

remove mock-iot-extension as it is just an experimental development by The Foundation

* Update calibrate-compass.md (#2265)

Based on user feedback in Slack https://microbit-community.slack.com/archives/C1ZMKRFHD/p1563274019078400?thread_ts=1563268925.077500&cid=C1ZMKRFHD

* add wukong (#2239)

* Decrease size of GC heap to allow more DAL allocs (#2246)

* 2.1.3

* add Kitronik view text (#2125)

* Release 2.0.6 to live (#2308)

* Update nexus:bit entry  (#2315)

* update nexus:bit entry

* update nexus:bit entry

* Logic Lab mini-course (#2307)

* Logic Lab mini-course

* example syntax

* Updating Readme with branch information.

* bump pxt for ios <=9 fix (#2311)

* Update pxt/common-packages and fix build (#2323)

* fix build off of pxt/ and pxt-common-packages master

* check in generated files

* add-pxt-bmp280 (#2325)

* Bumping pxt-core to 5.19.8 & common-packages to 6.14.9

* 2.1.4

* Error codes page update (#2327)

* Start adding new codes

* few tiny edits

* Add more errors and rearrange

* Update docs/device/error-codes.md

Co-Authored-By: Michał Moskal <michal@moskal.me>

* juggle category

* set error range in hint

Co-Authored-By: Michał Moskal <michal@moskal.me>

* Update docs/device/error-codes.md

Co-Authored-By: Mark <mark@microbit.org>

* fix build (#2360)

* fix broken build

* just try the more 'official' fix if possible

* back to the way that actually works..

* bump pxt to include accessibility changes (#2404)

* 2.1.5

* make hc mode sim color have higher contrast (#2409)

* Show project settings (#2401)

* markdown link fix (#2400)

* add HTS221 (#2384)

* Editor controllers fixes (#2412)

* updated strings

* bump pxt

* anotehr attempt

* 2.1.6

* turn on samples when reading accelerometer (#2413)

* 2.1.7

* hide pin p19/p20 (#2268)

* Fix remove life animation causing microbit stuck (#2314)

On the real microbit board, if the program execute other game blocks while
the remove life animation is playing, it would cause strange behavior or
even make the game stuck.

* Port of Programmable Logic lesson for Logic Lab course (#2359)

* port of programmable logic lesson

* trigger rebuild

* express as logical equation in snippet

* go logical for snippet inputs

* emit enum as bitmask (#2414)

* 2.1.8

* add alt attributes to download screens (#2415)

* add alt attributes to download screens, fixes microsoft/pxt-microbit#2291

* better descriptions

* fixing links in translate page

* Modify the LED coordinates to be between 0 and 4. (#2416)

Without this change, there is a 11/36 chance no LED lights as [`Math.random(a,b)`](https://docs.python.org/2/library/random.html#random.uniform) (thus the `pick random` block) chooses a number in the (inclusive, closed) interval `[a, b]`.

* Set LED plot row/column ranges for 'Reaction Time' (#2420)

* add LIS2MDL (#2385)

* add LIS2DW12 (#2386)

* add LPS22 (#2387)

* add LSM6DSO (#2388)

* add gator environment (#2326)

* add STTS751 (#2389)

* add inventura extension (#2421)

* add new sparkfun extensions (#2238)

* add new sparkfun extensions

* remove gator environment pending fixes

* add dfplayer mini extension (#2417)

* Update 'servo calibrator' link (#2424)

* I2C Addressing Note (#2428)

* I2C on-board sensor address note

* note for 7bit to 8bit shift

* Add nested summaries for newer courses (#2425)

* bump pxt (#2432)

* bump pxt

* bump

* bump

* fix version

* 2.1.9

* bump package.json (#2433)

* 2.1.10

* bump pxt (#2434)

* 2.1.11

* bump for diff3 (#2435)

* enable experiment

* bump pxt

* 2.1.12

* Add the Stu Lowe coding cards (#2438)

* Add the Stu Lowe coding cards

* Move 'Coding Cards' below 'Hardware'

* Add isDeleted (#2445)

* add xinabox OD01 and breakout display section (#2397)

* add xinabox OD01 and breakout display section

* Update targetconfig.json

* Update extensions.md

* Link to power supply limitations (#2443)

Fixes: #2442

* Pxt v5.23.17 (#2446)

* bump pxt

* regen docs

* fix version syntax

* restore extension

* removed dup

* 2.1.13

* add-sw01 (#2393)

* Locking old issues

* add Keyestudio robot car (#2452)

* Allow globals in reclaimed bluetooth memory (#2455)

* isTouchingEdge() should not return true for deleted sprite (#2449)

* add query variant to hide toolbar (#2458)

* Adding link to stable refs (#2460)

* Update extensions.md (#2456)

Move the :VIEW Text32 from other to Display now there is a display sections

* 2.1.14

* fixing radio stack (#2461)

* fixing radio stack

* updated shims

* 2.1.15

* Stable points to latest 2.0.9 (#2469)

* Releasing 2.0.9 to live (#2470)

* Fixing signal strength (#2474)

* Pointing to 2.0.10

* Releasing 2.0.10 (#2476)

With radio strength signal fix for hot or cold

* Removing old bitbot as we have a new bitbot package (#2479)

* updated pxt (#2465)

* updated pxt

* bump pxt

* updated react

* updated ptx

* Remove empty variable element from XML

* Bump pxt-core to 5.25.15

* bump pxt

* Bump pxt to 5.25.17

* Add precision to music slider

* 2.1.16

* add drive:bit (#2484)

* micro:bit RSSI fix (#2480)

* read rssi from packet

* updated shims

* fix build

* fix help

* move deprecated function to ts

* some formatting

* restore rssi block

* restory notations

* actually copy bytes

* removing logging code

* simpler wake up code

* comment

* fix build

* bump pxt

* go back to safety

* bump microbit

* restor package.json

* revert jquery v

* use macro

* check length

* bump pxt (#2490)

* 2.1.17

* Use default resize function for microbit gesture dropdown (#2491)

* Name Badge project page (#2477)

* Name Bagde project page

* gotta please the summary check

* link typo, ugh

* Revert "Name Badge project page (#2477)"

This reverts commit 2e2860632b.

* add freenove starter kit (#2493)

* radio.setFrequencyBand support (#2495)

* setfrequencyband support

* revert line change

* add bounds check

* Name Badge project page (#2496)

* Name Bagde project page

* gotta please the summary check

* link typo, ugh

* get rid of the pptx

* Simplify the Fahrenheit from Celsius computation. (#2497)

As the micro:bit introduces floating point arithmetic for both the existing `f = 18 * c / 10 + 32` computation and the new `f = 1.8 * c + 32` computation, there isn't any benefit for the former.

* Enable Polish localization (#2499)

* bump package

* 2.1.18

* shrink maintenance gif

* 2.1.19

* Rotary phone dial (#2502)

* some write up

* adding images

* text

* more text

* adding vids

* adding escape room

* remove newer lesson

* remove .mp4

* Card page edits

* adding image

* adding to toys

* rotary edits

* fix typo

* bump pxt 5.28.7 (#2503)

* bump pxt

* bump to pxt 5.28.8

* 2.1.20

* bump pxt 5.28.9 (#2504)

* 2.1.21

* bump pxt 5.28.10

* 2.1.22

* bump pxt 5.28.11

* 2.1.23

* bump pxt 5.28.12

* 2.1.24

* Update README.md

* robot unicorn (#2512)

* robot unicorn

* Edits to the unicorn

* fix missing radio and boardname

* bump pxt 5.28.18 (#2517)

* bump pxt 5.28.18

* updated summary

* 2.1.25

* bump pxt 5.28.21

* 2.1.26

* bump to pxt5.28.23

* 2.1.27

* Add redirect to pins info to serial heading (#2520)

* Add redirect to pins info to serial heading

* adding links

* vump to pxt 5.28.24

* 2.1.28

* bump to pxt 5.28.26

* 2.1.29

* add build instructions

* updated build notes

* bump pxt 5.28.27

* 2.1.30

* missing svg

* remove crowdin project to disable upload from master branch

* reeanble crowdin, no upload

* 2.1.31

* bump pxt common to 6.16.25

* missing radio package

* Fix GC heap reclamation (#2528)

* bump to pxt 5.28.31

* bump pxt 5.28.32

* 2.1.32

* 2.1.33

* fix typo

* pxt-microbit-next? (#2543)

Since the repo https://github.com/microsoft/pxt-microbit-next doesn't exist, I am assuming that the word `next` is not meant to be here.

* Extensions: Add Inksmith Climate Action Kit (#2535)

* Fixes for typos found in Crowdin - 11252019 (#2538)

* Extension: add Kitronik Halo HD (#2541)

* Extension: Add EBOTICS MIBO (#2542)

* add Bright Wearables Brightboard (#2537)

* Docs: Change default value in Javascript. (#2540)

* Change default value in Javascript.

Per @microbit-mark 's suggestion, add an example of how to change the default interval value by switching to Javascript.

* edits to new example

* bump pxt 5.30.6

* 2.1.34

* update git and vscode settings

* revert changes to 2.1.28

* package-lock

* v2.1.34

* Change Hero Image

* add RVR (#2516)

* Extension: add minicruise (#2545)

* Fix minutes display for 'Digital Watch' project (#2547)

* Fix minutes display for 'Digital Watch' project

* minutes less than 10

* bump pxt

* 2.1.35

* updated pxt

* 2.1.36

* package lock

* Tutorial Typo Fix

* staging Servo library support

* bumppxt

* 2.1.37

* update error guide link (#2554)

* adding radio firefly (#2549)

* Update 'Metal Detector' example (#2559)

* bump pxt

* 2.1.38

* typoFix

* package lock

* Update Pins

* Update Pins

* Add C7, C8 and C9 Serial Pins

* Add C7, C8 and C9 Serial Pins

* Pins update

* Add maqueen (#2560)

* Extensions: Add DFRobot Maqueen

* fix

* revert pin C7, C8 and C9

* Update README.md

* add extension doc file

* revert pxt bump

* Docs: Extensions remove headliner

* Remove outdated #ifdef (#2564)

* Extensions: add servobit (#2557)

Co-authored-by: Abhijith Chatra <abchatra@microsoft.com>

* bump to pxt 5.31.8, common 6.18.2

* 2.1.39

* enable github editor experiment (#2568)

* Fix missing sim function

* bump to pxt 5.31.10

* 2.1.40

* Modify snippets/examples relying of fp div (#2571)

* Extensions: add DFRobot natural science board (#2574)

* Extensions: add Kitronik clip dtector (#2576)

Co-authored-by: Abhijith Chatra <abchatra@microsoft.com>

* missing image

* Fix lesson images

* fix images 2

* Add SpeedPicker to Motor Blocks

* add sixth motor pin (M_GND3)

* Fix Touch Pins in Simulator

* pinTexts type Update

Co-authored-by: Abhijith Chatra <abchatra@microsoft.com>
Co-authored-by: Peli de Halleux <pelikhan@users.noreply.github.com>
Co-authored-by: Galen Nickel <v-gani@microsoft.com>
Co-authored-by: Joey Wunderlich <jwunderl@users.noreply.github.com>
Co-authored-by: Danny Yates <danny@codeaholics.org>
Co-authored-by: Sam Kent <32453267+microbit-sam@users.noreply.github.com>
Co-authored-by: Michał Moskal <michal@moskal.me>
Co-authored-by: Daryl Zuniga <Daryl.Zuniga@gmail.com>
Co-authored-by: Eric Kimsey <ekimsey@users.noreply.github.com>
Co-authored-by: Mark <mark@microbit.org>
Co-authored-by: Richard Knoll <riknoll@users.noreply.github.com>
Co-authored-by: Peter Brodersen <peter@ter.dk>
Co-authored-by: Leo <leo881003@gmail.com>
Co-authored-by: Asher Kach <asher.kach@gmail.com>
Co-authored-by: Franklin Tse <FranklinWhale@users.noreply.github.com>
Co-authored-by: Neal McBurnett <nealmcb@gmail.com>
Co-authored-by: Kitronik Ltd  <design@kitronik.co.uk>
Co-authored-by: shakao <34112083+shakao@users.noreply.github.com>
Co-authored-by: Helen Leigh <48659173+helenleigh@users.noreply.github.com>
Co-authored-by: Gerard Braad <me@gbraad.nl>
Co-authored-by: Nicole Parrot <cleoqc1124@gmail.com>
This commit is contained in:
Amerlander 2020-01-22 21:17:07 +01:00 committed by Peli de Halleux
parent 3fcd625555
commit 2a30a2dd76
3 changed files with 122 additions and 56 deletions

32
package-lock.json generated
View File

@ -123,11 +123,11 @@
} }
}, },
"ajv": { "ajv": {
"version": "6.10.2", "version": "6.11.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
"requires": { "requires": {
"fast-deep-equal": "^2.0.1", "fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0", "fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1", "json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2" "uri-js": "^4.2.2"
@ -679,9 +679,9 @@
} }
}, },
"caniuse-db": { "caniuse-db": {
"version": "1.0.30001019", "version": "1.0.30001022",
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001019.tgz", "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001022.tgz",
"integrity": "sha512-AdQItnPLQ32qEWPAfp3lGIYXxjbHOtcabhmvqEv831kc8WyYdibpdnnUu+gQXxEwDf1Job597aCbqf+EYAnuTA==" "integrity": "sha512-2RQQgO+yDEaqF4ltwrCja7oZst+FVnXHQLSJgZ678tausEljBq3/U20Fedvze+Hxqm8XLV+9OgGbtdgS7ksnRw=="
}, },
"caseless": { "caseless": {
"version": "0.12.0", "version": "0.12.0",
@ -1237,9 +1237,9 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.328", "version": "1.3.338",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.328.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.338.tgz",
"integrity": "sha512-x4XefnFxDxFwaQ01d/pppJP9meWhOIJ/gtI6/4jqkpsadq79uL7NYSaX64naLmJqvzUBjSrO3IM2+1b/W9KdPg==" "integrity": "sha512-wlmfixuHEc9CkfOKgcqdtzBmRW4NStM9ptl5oPILY2UDyHuSXb3Yit+yLVyLObTgGuMMU36hhnfs2GDJId7ctA=="
}, },
"elliptic": { "elliptic": {
"version": "6.5.2", "version": "6.5.2",
@ -1419,9 +1419,9 @@
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
}, },
"fast-deep-equal": { "fast-deep-equal": {
"version": "2.0.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
}, },
"fast-json-stable-stringify": { "fast-json-stable-stringify": {
"version": "2.1.0", "version": "2.1.0",
@ -3518,9 +3518,9 @@
} }
}, },
"pxt-core": { "pxt-core": {
"version": "5.31.8", "version": "5.32.3",
"resolved": "https://registry.npmjs.org/pxt-core/-/pxt-core-5.31.8.tgz", "resolved": "https://registry.npmjs.org/pxt-core/-/pxt-core-5.32.3.tgz",
"integrity": "sha512-9+x7LGHER1C1X67G1F6VSSG1xpSDtuF5NoWVbel3zC7v/wzv2zHjn+CE4R2Mj4DM5fGp39vtfcTXKbPp/Kec8w==", "integrity": "sha512-5HnyCbkEbhgj+/o8Bv6ib07dEquhMYmXGo/DaSFXM3ZCN1XBqCiqRXlDo2t/nxZiAxvSRIUBy8uOaQl/CafvqQ==",
"requires": { "requires": {
"applicationinsights-js": "^1.0.20", "applicationinsights-js": "^1.0.20",
"bluebird": "3.5.1", "bluebird": "3.5.1",

View File

@ -61,7 +61,7 @@ namespace pxsim.pins {
let pin = getPin(pinId); let pin = getPin(pinId);
if (!pin) return; if (!pin) return;
pin.mode = PinFlags.Analog | PinFlags.Output; pin.mode = PinFlags.Analog | PinFlags.Output;
pin.value = value ? 1 : 0; pin.value = value ? value : 0;
runtime.queueDisplayUpdate(); runtime.queueDisplayUpdate();
} }

View File

@ -71,7 +71,7 @@ namespace pxsim.visuals {
.sim-text-pin { .sim-text-pin {
font-family:"Lucida Console", Monaco, monospace; font-family:"Lucida Console", Monaco, monospace;
font-size:20px; font-size:20px;
fill:#fff; fill:#3cb5b5;
pointer-events: none; pointer-events: none;
} }
@ -244,130 +244,191 @@ namespace pxsim.visuals {
<path id="C_GND1" class="st1" d="M165.3,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 <path id="C_GND1" class="st1" d="M165.3,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C170.3,436.8,167.9,434.6,165.3,434.6z M165.3,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5s2.5,1,2.5,2.5S166.6,441.9,165.3,441.9z"/> C170.3,436.8,167.9,434.6,165.3,434.6z M165.3,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5s2.5,1,2.5,2.5S166.6,441.9,165.3,441.9z"/>
<circle class="st5" cx="165.3" cy="439.6" r="2.5"/> <circle class="st5" cx="165.3" cy="439.6" r="2.5"/>
<path id="C_P0" class="st1" d="M182.2,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 <g id="C_P0">
<path class="st1" d="M182.2,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C187.5,436.8,185.1,434.6,182.2,434.6z M182.2,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C187.5,436.8,185.1,434.6,182.2,434.6z M182.2,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S183.6,441.9,182.2,441.9z"/> S183.6,441.9,182.2,441.9z"/>
<circle class="st5" cx="182.2" cy="439.6" r="2.5"/> <circle class="st5" cx="182.2" cy="439.6" r="2.5"/>
<path id="C_P2" class="st1" d="M199.3,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P2">
<path class="st1" d="M199.3,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C204.5,436.8,202.2,434.6,199.3,434.6z M199.3,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C204.5,436.8,202.2,434.6,199.3,434.6z M199.3,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S200.7,441.9,199.3,441.9z"/> S200.7,441.9,199.3,441.9z"/>
<circle class="st5" cx="199.3" cy="439.6" r="2.5"/> <circle class="st5" cx="199.3" cy="439.6" r="2.5"/>
<path id="C_P4" class="st1" d="M216.4,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P4">
<path class="st1" d="M216.4,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C221.4,436.8,219.3,434.6,216.4,434.6z M216.4,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C221.4,436.8,219.3,434.6,216.4,434.6z M216.4,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S217.6,441.9,216.4,441.9z"/> S217.6,441.9,216.4,441.9z"/>
<circle class="st5" cx="216.4" cy="439.6" r="2.5"/> <circle class="st5" cx="216.4" cy="439.6" r="2.5"/>
<path id="C_P6" class="st1" d="M233.5,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P6">
<path class="st1" d="M233.5,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C238.3,436.8,236.1,434.6,233.5,434.6z M233.5,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5s2.5,1,2.5,2.5S234.7,441.9,233.5,441.9z"/> C238.3,436.8,236.1,434.6,233.5,434.6z M233.5,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5s2.5,1,2.5,2.5S234.7,441.9,233.5,441.9z"/>
<circle class="st5" cx="233.5" cy="439.6" r="2.5"/> <circle class="st5" cx="233.5" cy="439.6" r="2.5"/>
<path id="C_P8" class="st1" d="M250.3,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P8">
<path class="st1" d="M250.3,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C255.5,436.8,253.3,434.6,250.3,434.6z M250.3,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C255.5,436.8,253.3,434.6,250.3,434.6z M250.3,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S251.8,441.9,250.3,441.9z"/> S251.8,441.9,250.3,441.9z"/>
<circle class="st5" cx="250.3" cy="439.6" r="2.5"/> <circle class="st5" cx="250.3" cy="439.6" r="2.5"/>
<path id="C_GND2" class="st1" d="M267.5,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="C_GND2">
<path class="st1" d="M267.5,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
C272.6,436.8,270.2,434.6,267.5,434.6z M267.5,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C272.6,436.8,270.2,434.6,267.5,434.6z M267.5,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S268.9,441.9,267.5,441.9z"/> S268.9,441.9,267.5,441.9z"/>
<circle class="st5" cx="267.5" cy="439.6" r="2.5"/> <circle class="st5" cx="267.5" cy="439.6" r="2.5"/>
<path id="C_P10" class="st1" d="M284.6,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P10">
<path class="st1" d="M284.6,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C289.7,436.8,287.4,434.6,284.6,434.6z M284.6,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C289.7,436.8,287.4,434.6,284.6,434.6z M284.6,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S285.8,441.9,284.6,441.9z"/> S285.8,441.9,284.6,441.9z"/>
<circle class="st5" cx="284.6" cy="439.6" r="2.5"/> <circle class="st5" cx="284.6" cy="439.6" r="2.5"/>
<path id="C_P12" class="st1" d="M301.5,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="C_P12">
<path class="st1" d="M301.5,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
C306.6,436.8,304.4,434.6,301.5,434.6z M301.5,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C306.6,436.8,304.4,434.6,301.5,434.6z M301.5,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S302.9,441.9,301.5,441.9z"/> S302.9,441.9,301.5,441.9z"/>
<circle class="st5" cx="301.5" cy="439.6" r="2.5"/> <circle class="st5" cx="301.5" cy="439.6" r="2.5"/>
<path id="C_P14" class="st1" d="M318.7,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P14">
<path class="st1" d="M318.7,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C323.5,436.8,321.3,434.6,318.7,434.6z M318.7,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S320,441.9,318.7,441.9 C323.5,436.8,321.3,434.6,318.7,434.6z M318.7,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S320,441.9,318.7,441.9
z"/> z"/>
<circle class="st5" cx="318.7" cy="439.6" r="2.5"/> <circle class="st5" cx="318.7" cy="439.6" r="2.5"/>
<path id="C_P16" class="st1" d="M335.4,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="C_P16">
<path class="st1" d="M335.4,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
C340.7,436.8,338.5,434.6,335.4,434.6z M335.4,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S337,441.9,335.4,441.9 C340.7,436.8,338.5,434.6,335.4,434.6z M335.4,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S337,441.9,335.4,441.9
z"/> z"/>
<circle class="st5" cx="335.4" cy="439.6" r="2.5"/> <circle class="st5" cx="335.4" cy="439.6" r="2.5"/>
<path id="C_P18" class="st1" d="M352.7,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="C_P18">
<path class="st1" d="M352.7,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
C357.8,436.8,355.5,434.6,352.7,434.6z M352.7,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C357.8,436.8,355.5,434.6,352.7,434.6z M352.7,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S354.1,441.9,352.7,441.9z"/> S354.1,441.9,352.7,441.9z"/>
<circle class="st5" cx="352.7" cy="439.6" r="2.5"/> <circle class="st5" cx="352.7" cy="439.6" r="2.5"/>
<path id="C_VCC1" class="st1" d="M369.7,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="C_VCC1">
<path class="st1" d="M369.7,434.6c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
C374.6,436.8,372.5,434.6,369.7,434.6z M369.7,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C374.6,436.8,372.5,434.6,369.7,434.6z M369.7,441.9c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S370.9,441.9,369.7,441.9z"/> S370.9,441.9,369.7,441.9z"/>
<circle class="st5" cx="369.7" cy="439.6" r="2.5"/> <circle class="st5" cx="369.7" cy="439.6" r="2.5"/>
<path id="C_VCC2" class="st1" d="M165.3,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_VCC2">
<path class="st1" d="M165.3,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C170.4,419.7,167.9,417.4,165.3,417.4z M165.3,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5s2.5,1,2.5,2.5 C170.4,419.7,167.9,417.4,165.3,417.4z M165.3,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5s2.5,1,2.5,2.5
C167.7,424,166.6,425,165.3,425z"/> C167.7,424,166.6,425,165.3,425z"/>
<circle class="st5" cx="165.3" cy="422.4" r="2.5"/> <circle class="st5" cx="165.3" cy="422.4" r="2.5"/>
<path id="C_P1" class="st1" d="M182.2,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P1">
<path class="st1" d="M182.2,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C187.4,419.7,185.1,417.4,182.2,417.4z M182.2,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C187.4,419.7,185.1,417.4,182.2,417.4z M182.2,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S183.6,425,182.2,425z"/> S183.6,425,182.2,425z"/>
<circle class="st5" cx="182.2" cy="422.4" r="2.5"/> <circle class="st5" cx="182.2" cy="422.4" r="2.5"/>
<path id="C_P3" class="st1" d="M199.3,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P3">
<path class="st1" d="M199.3,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C204.4,419.7,202.2,417.4,199.3,417.4z M199.3,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C204.4,419.7,202.2,417.4,199.3,417.4z M199.3,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
C201.9,424,200.7,425,199.3,425z"/> C201.9,424,200.7,425,199.3,425z"/>
<circle class="st5" cx="199.3" cy="422.4" r="2.5"/> <circle class="st5" cx="199.3" cy="422.4" r="2.5"/>
<path id="C_P5" class="st1" d="M216.4,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P5">
<path class="st1" d="M216.4,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C221.5,419.7,219.3,417.4,216.4,417.4z M216.4,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C221.5,419.7,219.3,417.4,216.4,417.4z M216.4,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
C218.7,424,217.6,425,216.4,425z"/> C218.7,424,217.6,425,216.4,425z"/>
<circle class="st5" cx="216.4" cy="422.4" r="2.5"/> <circle class="st5" cx="216.4" cy="422.4" r="2.5"/>
<path id="C_P7" class="st1" d="M233.5,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P7">
<path class="st1" d="M233.5,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C238.6,419.7,236.1,417.4,233.5,417.4z M233.5,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5s2.5,1,2.5,2.5 C238.6,419.7,236.1,417.4,233.5,417.4z M233.5,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5s2.5,1,2.5,2.5
C235.7,424,234.7,425,233.5,425z"/> C235.7,424,234.7,425,233.5,425z"/>
<circle class="st5" cx="233.5" cy="422.4" r="2.5"/> <circle class="st5" cx="233.5" cy="422.4" r="2.5"/>
<path id="C_P9" class="st1" d="M250.3,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P9">
<path class="st1" d="M250.3,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C255.4,419.7,253.3,417.4,250.3,417.4z M250.3,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C255.4,419.7,253.3,417.4,250.3,417.4z M250.3,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S251.8,425,250.3,425z"/> S251.8,425,250.3,425z"/>
<circle class="st5" cx="250.3" cy="422.4" r="2.5"/> <circle class="st5" cx="250.3" cy="422.4" r="2.5"/>
<path id="C_GND3" class="st1" d="M267.5,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="C_GND3">
<path class="st1" d="M267.5,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
C272.6,419.7,270.2,417.4,267.5,417.4z M267.5,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C272.6,419.7,270.2,417.4,267.5,417.4z M267.5,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S268.9,425,267.5,425z"/> S268.9,425,267.5,425z"/>
<circle class="st5" cx="267.5" cy="422.4" r="2.5"/> <circle class="st5" cx="267.5" cy="422.4" r="2.5"/>
<path id="C_P11" class="st1" d="M284.6,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P11">
<path class="st1" d="M284.6,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C289.7,419.7,287.4,417.4,284.6,417.4z M284.6,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C289.7,419.7,287.4,417.4,284.6,417.4z M284.6,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
C286.9,424,285.8,425,284.6,425z"/> C286.9,424,285.8,425,284.6,425z"/>
<circle class="st5" cx="284.6" cy="422.4" r="2.5"/> <circle class="st5" cx="284.6" cy="422.4" r="2.5"/>
<path id="C_P13" class="st1" d="M301.5,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="C_P13">
<path class="st1" d="M301.5,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
C306.6,419.7,304.4,417.4,301.5,417.4z M301.5,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C306.6,419.7,304.4,417.4,301.5,417.4z M301.5,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
C303.9,424,302.9,425,301.5,425z"/> C303.9,424,302.9,425,301.5,425z"/>
<circle class="st5" cx="301.5" cy="422.4" r="2.5"/> <circle class="st5" cx="301.5" cy="422.4" r="2.5"/>
<path id="C_P15" class="st1" d="M318.7,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1 </g>
<g id="C_P15">
<path class="st1" d="M318.7,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1
C323.8,419.7,321.3,417.4,318.7,417.4z M318.7,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C323.8,419.7,321.3,417.4,318.7,417.4z M318.7,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
C321,424,320,425,318.7,425z"/> C321,424,320,425,318.7,425z"/>
<circle class="st5" cx="318.7" cy="422.4" r="2.5"/> <circle class="st5" cx="318.7" cy="422.4" r="2.5"/>
<path id="C_P17" class="st1" d="M335.4,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="C_P17">
<path class="st1" d="M335.4,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
C340.6,419.7,338.5,417.4,335.4,417.4z M335.4,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C340.6,419.7,338.5,417.4,335.4,417.4z M335.4,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
C338.1,424,337,425,335.4,425z"/> C338.1,424,337,425,335.4,425z"/>
<circle class="st5" cx="335.4" cy="422.4" r="2.5"/> <circle class="st5" cx="335.4" cy="422.4" r="2.5"/>
<path id="C_P19" class="st1" d="M352.7,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="C_P19">
<path class="st1" d="M352.7,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
C357.8,419.7,355.5,417.4,352.7,417.4z M352.7,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C357.8,419.7,355.5,417.4,352.7,417.4z M352.7,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
S354.1,425,352.7,425z"/> S354.1,425,352.7,425z"/>
<circle class="st5" cx="352.7" cy="422.4" r="2.5"/> <circle class="st5" cx="352.7" cy="422.4" r="2.5"/>
<path id="C_GND4" class="st1" d="M369.7,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="C_GND4">
<path class="st1" d="M369.7,417.4c-2.8,0-5.1,2.3-5.1,5.1c0,2.8,2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
C374.8,419.7,372.5,417.4,369.7,417.4z M369.7,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5 C374.8,419.7,372.5,417.4,369.7,417.4z M369.7,425c-1.3,0-2.5-1-2.5-2.5c0-1.3,1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5
C372,424,370.9,425,369.7,425z"/> C372,424,370.9,425,369.7,425z"/>
<circle class="st5" cx="369.7" cy="422.5" r="2.5"/> <circle class="st5" cx="369.7" cy="422.5" r="2.5"/>
<path id="M_GND1" class="st1" d="M223.5,387.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1S226.1,387.8,223.5,387.8z </g>
<g id="M_GND1">
<path class="st1" d="M223.5,387.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1S226.1,387.8,223.5,387.8z
M223.5,395.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5s2.5,1,2.5,2.5S224.7,395.3,223.5,395.3z"/> M223.5,395.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5s2.5,1,2.5,2.5S224.7,395.3,223.5,395.3z"/>
<circle class="st5" cx="223.5" cy="392.7" r="2.5"/> <circle class="st5" cx="223.5" cy="392.7" r="2.5"/>
<path id="M_OUT1" class="st1" d="M239.3,385.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1S242.3,385.8,239.3,385.8z </g>
<g id="M_OUT1">
<path class="st1" d="M239.3,385.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1S242.3,385.8,239.3,385.8z
M239.3,393.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S240.8,393.3,239.3,393.3z"/> M239.3,393.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S240.8,393.3,239.3,393.3z"/>
<circle class="st5" cx="239.3" cy="390.7" r="2.5"/> <circle class="st5" cx="239.3" cy="390.7" r="2.5"/>
<path id="M_OUT2" class="st1" d="M256.5,387.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="M_OUT2">
<path class="st1" d="M256.5,387.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
S259.2,387.8,256.5,387.8z M256.5,395.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S257.9,395.3,256.5,395.3z"/> S259.2,387.8,256.5,387.8z M256.5,395.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S257.9,395.3,256.5,395.3z"/>
<circle class="st5" cx="256.5" cy="392.7" r="2.5"/> <circle class="st5" cx="256.5" cy="392.7" r="2.5"/>
<path id="M_GND2" class="st1" d="M271.6,385.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1S274.4,385.8,271.6,385.8z </g>
<g id="M_GND2">
<path class="st1" d="M271.6,385.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1S274.4,385.8,271.6,385.8z
M271.6,393.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S272.8,393.3,271.6,393.3z"/> M271.6,393.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S272.8,393.3,271.6,393.3z"/>
<circle class="st5" cx="271.6" cy="390.7" r="2.5"/> <circle class="st5" cx="271.6" cy="390.7" r="2.5"/>
<path id="M_VM" class="st1" d="M288.5,387.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1S291.4,387.8,288.5,387.8 </g>
<g id="M_VM">
<path class="st1" d="M288.5,387.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1S291.4,387.8,288.5,387.8
z M288.5,395.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S289.9,395.3,288.5,395.3z"/> z M288.5,395.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S289.9,395.3,288.5,395.3z"/>
<circle class="st5" cx="288.5" cy="392.7" r="2.5"/> <circle class="st5" cx="288.5" cy="392.7" r="2.5"/>
<path id="M_GND3" class="st1" d="M304.5,385.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1 </g>
<g id="M_GND3">
<path class="st1" d="M304.5,385.8c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1c2.8,0,5.1-2.3,5.1-5.1
S307.4,385.8,304.5,385.8z M304.5,393.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S305.9,393.3,304.5,393.3z"/> S307.4,385.8,304.5,385.8z M304.5,393.3c-1.3,0-2.5-1-2.5-2.5s1-2.5,2.5-2.5c1.3,0,2.5,1,2.5,2.5S305.9,393.3,304.5,393.3z"/>
<circle class="st5" cx="304.4" cy="390.7" r="2.5"/> <circle class="st5" cx="304.4" cy="390.7" r="2.5"/>
</g>
<path id="EDGE_P0" class="st1" d="M9.5,231.7c-2.1,0-4.2,0.2-6.2,0.6c-15.2,2.9-26.7,16.2-26.7,32.2c0,16.1,11.7,29.6,27,32.4 <path id="EDGE_P0" class="st1" d="M9.5,231.7c-2.1,0-4.2,0.2-6.2,0.6c-15.2,2.9-26.7,16.2-26.7,32.2c0,16.1,11.7,29.6,27,32.4
c1.9,0.3,3.9,0.5,5.9,0.5c18.2,0,32.9-14.7,32.9-32.9C42.5,246.1,27.7,231.7,9.5,231.7z M9.5,279.9c-0.5,0-1.1,0-1.6-0.1 c1.9,0.3,3.9,0.5,5.9,0.5c18.2,0,32.9-14.7,32.9-32.9C42.5,246.1,27.7,231.7,9.5,231.7z M9.5,279.9c-0.5,0-1.1,0-1.6-0.1
c-0.2,0-0.5-0.1-0.7-0.1c-0.3,0-0.6-0.1-0.9-0.1c-0.2,0-0.4-0.1-0.6-0.2c-0.3-0.1-0.6-0.1-0.9-0.2c-0.1,0-0.3-0.1-0.4-0.2 c-0.2,0-0.5-0.1-0.7-0.1c-0.3,0-0.6-0.1-0.9-0.1c-0.2,0-0.4-0.1-0.6-0.2c-0.3-0.1-0.6-0.1-0.9-0.2c-0.1,0-0.3-0.1-0.4-0.2
c-0.3-0.1-0.7-0.2-1-0.4c-0.1,0-0.1,0-0.1-0.1c-5.5-2.4-9.4-7.9-9.4-14.4c0-0.5,0-1.1,0.1-1.6c0-0.2,0.1-0.5,0.1-0.7 c-0.3-0.1-0.7-0.2-1-0.4c-0.1,0-0.1,0-0.1-0.1c-5.5-2.4-9.4-7.9-9.4-14.4c0-0.5,0-1.1,0.1-1.6c0-0.2,0.1-0.5,0.1-0.7
c0-0.3,0.1-0.6,0.1-0.9c0-0.2,0.1-0.4,0.2-0.6c0.1-0.3,0.1-0.6,0.2-0.9c0-0.1,0.1-0.3,0.2-0.4c0.1-0.3,0.2-0.7,0.4-1 c0-0.3,0.1-0.6,0.1-0.9c0-0.2,0.1-0.4,0.2-0.6c0.1-0.3,0.1-0.6,0.2-0.9c0-0.1,0.1-0.3,0.2-0.4c0.1-0.3,0.2-0.7,0.4-1
c0-0.1,0-0.1,0.1-0.2c2.4-5.5,7.9-9.4,14.4-9.4c8.8,0,15.7,6.9,15.7,15.7C25.4,272.9,18.3,279.9,9.5,279.9z"/> c0-0.1,0-0.1,0.1-0.2c2.4-5.5,7.9-9.4,14.4-9.4c8.8,0,15.7,6.9,15.7,15.7C25.4,272.9,18.3,279.9,9.5,279.9z"/>
<circle class="st10" cx="138" cy="487.1" r="15.7"/>
<rect id="LED_0_0" x="210.7" y="146.2" class="st6" width="5.1" height="12.9"/> <rect id="LED_0_0" x="210.7" y="146.2" class="st6" width="5.1" height="12.9"/>
<rect id="LED_1_0" x="236.8" y="146.2" class="st6" width="5.1" height="12.9"/> <rect id="LED_1_0" x="236.8" y="146.2" class="st6" width="5.1" height="12.9"/>
<rect id="LED_2_0" x="262.7" y="146.2" class="st6" width="5.1" height="12.9"/> <rect id="LED_2_0" x="262.7" y="146.2" class="st6" width="5.1" height="12.9"/>
@ -822,7 +883,7 @@ namespace pxsim.visuals {
private buttonsOuter: SVGElement[]; private buttonsOuter: SVGElement[];
private pins: SVGElement[]; private pins: SVGElement[];
private pinGradients: SVGLinearGradientElement[]; private pinGradients: SVGLinearGradientElement[];
private pinTexts: SVGTextElement[]; private pinTexts:{ [key: number]: SVGTextElement };
private ledsOuter: SVGElement[]; private ledsOuter: SVGElement[];
private leds: SVGElement[]; private leds: SVGElement[];
private systemLed: SVGCircleElement; private systemLed: SVGCircleElement;
@ -1210,7 +1271,7 @@ namespace pxsim.visuals {
private updatePin(pin: Pin, index: number) { private updatePin(pin: Pin, index: number) {
if (!pin) return; if (!pin) return;
let text = this.pinTexts[index]; let text = this.pinTexts[pin.id];
let v = ""; let v = "";
if (pin.mode & PinFlags.Analog) { if (pin.mode & PinFlags.Analog) {
v = Math.floor(100 - (pin.value || 0) / 1023 * 100) + "%"; v = Math.floor(100 - (pin.value || 0) / 1023 * 100) + "%";
@ -1222,10 +1283,10 @@ namespace pxsim.visuals {
} }
else if (pin.mode & PinFlags.Touch) { else if (pin.mode & PinFlags.Touch) {
v = pin.touched ? "0%" : "100%"; v = pin.touched ? "0%" : "100%";
if (text) text.textContent = ""; if (text) text.textContent = "TOUCHED";
} else { } else {
v = "100%"; v = "100%";
if (text) text.textContent = ""; if (text) text.textContent = "unused";
} }
if (v) svg.setGradientValue(this.pinGradients[index], v); if (v) svg.setGradientValue(this.pinGradients[index], v);
} }
@ -1452,7 +1513,12 @@ namespace pxsim.visuals {
return lg; return lg;
}) })
this.pinTexts = [67, 165, 275].map(x => <SVGTextElement>svg.child(this.g, "text", { class: "sim-text-pin", x: x, y: 345 })); this.pinTexts = {
[DigitalPin.P0]: <SVGTextElement>svg.child(this.g, "text", { class: "sim-text-pin", x: -20, y: 340 }),
[DigitalPin.P1]: <SVGTextElement>svg.child(this.g, "text", { class: "sim-text-pin", x: 50, y: 495 }),
[DigitalPin.P2]: <SVGTextElement>svg.child(this.g, "text", { class: "sim-text-pin", x: 450, y: 495 }),
[DigitalPin.P3]: <SVGTextElement>svg.child(this.g, "text", { class: "sim-text-pin", x: 500, y: 340 })
}
// BTN A, B // BTN A, B
const btnids = ["BTN_A", "BTN_B"]; const btnids = ["BTN_A", "BTN_B"];
@ -1593,7 +1659,7 @@ namespace pxsim.visuals {
return false; return false;
}); });
}) })
this.pins.slice(0, 3).forEach((btn, index) => { this.pins.slice(0, 2).forEach((btn, index) => {
pointerEvents.down.forEach(evid => btn.addEventListener(evid, ev => { pointerEvents.down.forEach(evid => btn.addEventListener(evid, ev => {
let state = this.board; let state = this.board;
state.edgeConnectorState.pins[index].touched = true; state.edgeConnectorState.pins[index].touched = true;