diff --git a/frozen/Adafruit_CircuitPython_APDS9960 b/frozen/Adafruit_CircuitPython_APDS9960 index 13856be616..f91ffb1a3e 160000 --- a/frozen/Adafruit_CircuitPython_APDS9960 +++ b/frozen/Adafruit_CircuitPython_APDS9960 @@ -1 +1 @@ -Subproject commit 13856be616eee2eb84280b7c4914951c1ddbfd36 +Subproject commit f91ffb1a3e77802349f233964e0faed9708a04fe diff --git a/frozen/Adafruit_CircuitPython_BLE b/frozen/Adafruit_CircuitPython_BLE index 7d9635ba1d..5c1a51f8ad 160000 --- a/frozen/Adafruit_CircuitPython_BLE +++ b/frozen/Adafruit_CircuitPython_BLE @@ -1 +1 @@ -Subproject commit 7d9635ba1dda31ce45b84519c4da76ff86d0debe +Subproject commit 5c1a51f8ad505e90a6c1b58c4d7926c59dd627d6 diff --git a/frozen/Adafruit_CircuitPython_BLE_Apple_Notification_Center b/frozen/Adafruit_CircuitPython_BLE_Apple_Notification_Center index e5cf8206c0..810232a6df 160000 --- a/frozen/Adafruit_CircuitPython_BLE_Apple_Notification_Center +++ b/frozen/Adafruit_CircuitPython_BLE_Apple_Notification_Center @@ -1 +1 @@ -Subproject commit e5cf8206c0173228252ae74367cab85b0531488e +Subproject commit 810232a6df1c5342b9c89268893025bca2645a0f diff --git a/frozen/Adafruit_CircuitPython_BusDevice b/frozen/Adafruit_CircuitPython_BusDevice index 9addf6a26f..5f6ac40707 160000 --- a/frozen/Adafruit_CircuitPython_BusDevice +++ b/frozen/Adafruit_CircuitPython_BusDevice @@ -1 +1 @@ -Subproject commit 9addf6a26fef3a32c78d574c66452b6210eca5c5 +Subproject commit 5f6ac407074c61806c9bf0b78987e1c0ed234dd0 diff --git a/frozen/Adafruit_CircuitPython_CircuitPlayground b/frozen/Adafruit_CircuitPython_CircuitPlayground index 843def7dae..f5351add4b 160000 --- a/frozen/Adafruit_CircuitPython_CircuitPlayground +++ b/frozen/Adafruit_CircuitPython_CircuitPlayground @@ -1 +1 @@ -Subproject commit 843def7daee741c8fb04fe21c3c7b98f22862471 +Subproject commit f5351add4bfc2aae1ba8f9078f4a734a0893e8ba diff --git a/frozen/Adafruit_CircuitPython_Crickit b/frozen/Adafruit_CircuitPython_Crickit index 0a045871d3..62113618a0 160000 --- a/frozen/Adafruit_CircuitPython_Crickit +++ b/frozen/Adafruit_CircuitPython_Crickit @@ -1 +1 @@ -Subproject commit 0a045871d3da681d1c9c9578f09174bfc6d84f1d +Subproject commit 62113618a07dd4f33310e8454bd59915b376e3cb diff --git a/frozen/Adafruit_CircuitPython_DRV2605 b/frozen/Adafruit_CircuitPython_DRV2605 index 6a429bcd0e..f7bc753d37 160000 --- a/frozen/Adafruit_CircuitPython_DRV2605 +++ b/frozen/Adafruit_CircuitPython_DRV2605 @@ -1 +1 @@ -Subproject commit 6a429bcd0e6b22ee181197ce0477ae70f5adb80d +Subproject commit f7bc753d37b840d0c1dcbdd977a97d1f68fac306 diff --git a/frozen/Adafruit_CircuitPython_DS3231 b/frozen/Adafruit_CircuitPython_DS3231 index 22931594bc..f70254c588 160000 --- a/frozen/Adafruit_CircuitPython_DS3231 +++ b/frozen/Adafruit_CircuitPython_DS3231 @@ -1 +1 @@ -Subproject commit 22931594bc52ab259eaf313d26219a507703c315 +Subproject commit f70254c588e4be37d92960c8067905ac57243aa2 diff --git a/frozen/Adafruit_CircuitPython_Display_Shapes b/frozen/Adafruit_CircuitPython_Display_Shapes index cdef09114d..bcd9e5c085 160000 --- a/frozen/Adafruit_CircuitPython_Display_Shapes +++ b/frozen/Adafruit_CircuitPython_Display_Shapes @@ -1 +1 @@ -Subproject commit cdef09114d2b43d2e461d066a5b56697ab567abc +Subproject commit bcd9e5c085081175f2dc1b2ce1eba75cfe4be062 diff --git a/frozen/Adafruit_CircuitPython_Display_Text b/frozen/Adafruit_CircuitPython_Display_Text index bb9cb75e15..c82b8138e1 160000 --- a/frozen/Adafruit_CircuitPython_Display_Text +++ b/frozen/Adafruit_CircuitPython_Display_Text @@ -1 +1 @@ -Subproject commit bb9cb75e15b4bfce3063a94b40dfad2375d5605e +Subproject commit c82b8138e13f4e3d580081929fb34afdb56f59fc diff --git a/frozen/Adafruit_CircuitPython_DotStar b/frozen/Adafruit_CircuitPython_DotStar index f9469d26ed..1b39a6990c 160000 --- a/frozen/Adafruit_CircuitPython_DotStar +++ b/frozen/Adafruit_CircuitPython_DotStar @@ -1 +1 @@ -Subproject commit f9469d26ed9eb95d43982de88c035ac3862dd258 +Subproject commit 1b39a6990c7d18a1c883b5721f2e49cd5fbfc64e diff --git a/frozen/Adafruit_CircuitPython_ESP32SPI b/frozen/Adafruit_CircuitPython_ESP32SPI index f3d504be1d..9cca65bd52 160000 --- a/frozen/Adafruit_CircuitPython_ESP32SPI +++ b/frozen/Adafruit_CircuitPython_ESP32SPI @@ -1 +1 @@ -Subproject commit f3d504be1dc82cc4a8e4ea9b38bd5c2ce74d59ba +Subproject commit 9cca65bd52f1b0be672fa8c1ea74b278366851a9 diff --git a/frozen/Adafruit_CircuitPython_FakeRequests b/frozen/Adafruit_CircuitPython_FakeRequests index 2ea025b1b6..3198742a78 160000 --- a/frozen/Adafruit_CircuitPython_FakeRequests +++ b/frozen/Adafruit_CircuitPython_FakeRequests @@ -1 +1 @@ -Subproject commit 2ea025b1b68b0be95a0514732d4bc623f313fd75 +Subproject commit 3198742a78996db3118e0e4db3d142e37b7f58a1 diff --git a/frozen/Adafruit_CircuitPython_FocalTouch b/frozen/Adafruit_CircuitPython_FocalTouch index b637c47423..04608edb68 160000 --- a/frozen/Adafruit_CircuitPython_FocalTouch +++ b/frozen/Adafruit_CircuitPython_FocalTouch @@ -1 +1 @@ -Subproject commit b637c47423eb85233ba614424aadadace37fcfb1 +Subproject commit 04608edb68bc72c015de570b6edf6cc598920acc diff --git a/frozen/Adafruit_CircuitPython_HID b/frozen/Adafruit_CircuitPython_HID index 47cc914748..4d68643dcd 160000 --- a/frozen/Adafruit_CircuitPython_HID +++ b/frozen/Adafruit_CircuitPython_HID @@ -1 +1 @@ -Subproject commit 47cc91474823677218239b5b37901590755cac4c +Subproject commit 4d68643dcd779e63b4eada09fa84b1ad43c83362 diff --git a/frozen/Adafruit_CircuitPython_IRRemote b/frozen/Adafruit_CircuitPython_IRRemote index a2491a806b..9464b4cad1 160000 --- a/frozen/Adafruit_CircuitPython_IRRemote +++ b/frozen/Adafruit_CircuitPython_IRRemote @@ -1 +1 @@ -Subproject commit a2491a806b636f66caf670527c49b864923f125c +Subproject commit 9464b4cad1f252807cd431a39984182bdd7a0cce diff --git a/frozen/Adafruit_CircuitPython_IS31FL3731 b/frozen/Adafruit_CircuitPython_IS31FL3731 index b4a0461889..8e2069de65 160000 --- a/frozen/Adafruit_CircuitPython_IS31FL3731 +++ b/frozen/Adafruit_CircuitPython_IS31FL3731 @@ -1 +1 @@ -Subproject commit b4a0461889ead5da69f4ed6d0118276b01613981 +Subproject commit 8e2069de65e1b2002ca375e9046ba6e608052c87 diff --git a/frozen/Adafruit_CircuitPython_LC709203F b/frozen/Adafruit_CircuitPython_LC709203F index 72367f37cd..80f1d250f4 160000 --- a/frozen/Adafruit_CircuitPython_LC709203F +++ b/frozen/Adafruit_CircuitPython_LC709203F @@ -1 +1 @@ -Subproject commit 72367f37cd221c7af7822ba3a9cd21cd3cd70292 +Subproject commit 80f1d250f4caef3e81760dc7df56bd250210f29b diff --git a/frozen/Adafruit_CircuitPython_LIS3DH b/frozen/Adafruit_CircuitPython_LIS3DH index a06c8a116e..0a26239184 160000 --- a/frozen/Adafruit_CircuitPython_LIS3DH +++ b/frozen/Adafruit_CircuitPython_LIS3DH @@ -1 +1 @@ -Subproject commit a06c8a116e5767a8481b9018239fe729e01760a6 +Subproject commit 0a262391849fa75671c999e9374bf6b160771246 diff --git a/frozen/Adafruit_CircuitPython_LSM6DS b/frozen/Adafruit_CircuitPython_LSM6DS index 5acf8a850d..87f8b1ddff 160000 --- a/frozen/Adafruit_CircuitPython_LSM6DS +++ b/frozen/Adafruit_CircuitPython_LSM6DS @@ -1 +1 @@ -Subproject commit 5acf8a850d98789a79fe37836b2ac7b623d95913 +Subproject commit 87f8b1ddff699b98e7b58d1c969c0c3633661a08 diff --git a/frozen/Adafruit_CircuitPython_MIDI b/frozen/Adafruit_CircuitPython_MIDI index d3f9adce6e..1107fe1520 160000 --- a/frozen/Adafruit_CircuitPython_MIDI +++ b/frozen/Adafruit_CircuitPython_MIDI @@ -1 +1 @@ -Subproject commit d3f9adce6e48d37222ef171a280cfa3122faf15b +Subproject commit 1107fe1520406c20bc561535d72df9ac6ae4d172 diff --git a/frozen/Adafruit_CircuitPython_Motor b/frozen/Adafruit_CircuitPython_Motor index df61e7b0be..b0aca1110b 160000 --- a/frozen/Adafruit_CircuitPython_Motor +++ b/frozen/Adafruit_CircuitPython_Motor @@ -1 +1 @@ -Subproject commit df61e7b0be9dc0c6a1bbe60f526fbdc01b6c2819 +Subproject commit b0aca1110b4446bc7952d66233b559256cd4377d diff --git a/frozen/Adafruit_CircuitPython_NeoPixel b/frozen/Adafruit_CircuitPython_NeoPixel index 015eb1ccd5..a4e11ce3a7 160000 --- a/frozen/Adafruit_CircuitPython_NeoPixel +++ b/frozen/Adafruit_CircuitPython_NeoPixel @@ -1 +1 @@ -Subproject commit 015eb1ccd5eb5364d8e1cf20358e7dcda9f12efc +Subproject commit a4e11ce3a7f5886c706da5778baf1dd653172c94 diff --git a/frozen/Adafruit_CircuitPython_PortalBase b/frozen/Adafruit_CircuitPython_PortalBase index 217af2bc7d..b9201eb175 160000 --- a/frozen/Adafruit_CircuitPython_PortalBase +++ b/frozen/Adafruit_CircuitPython_PortalBase @@ -1 +1 @@ -Subproject commit 217af2bc7de658ff2f6380a066d99a149e69693e +Subproject commit b9201eb175823b82d56168b0b539847093866090 diff --git a/frozen/Adafruit_CircuitPython_ProgressBar b/frozen/Adafruit_CircuitPython_ProgressBar index 1c39469bac..0af8820605 160000 --- a/frozen/Adafruit_CircuitPython_ProgressBar +++ b/frozen/Adafruit_CircuitPython_ProgressBar @@ -1 +1 @@ -Subproject commit 1c39469bac98eea022af695ac42e5096dae6130c +Subproject commit 0af8820605c0858f50f3242fbd1ce3a576bec819 diff --git a/frozen/Adafruit_CircuitPython_RFM69 b/frozen/Adafruit_CircuitPython_RFM69 index 74ea48f7a5..2fc2bfb8f5 160000 --- a/frozen/Adafruit_CircuitPython_RFM69 +++ b/frozen/Adafruit_CircuitPython_RFM69 @@ -1 +1 @@ -Subproject commit 74ea48f7a5d85591f5af804cacb57e9cfaab46c6 +Subproject commit 2fc2bfb8f52afc2ec1f31e8d860358547b2f8a9a diff --git a/frozen/Adafruit_CircuitPython_RFM9x b/frozen/Adafruit_CircuitPython_RFM9x index 13cdb9912b..6b018cbeb6 160000 --- a/frozen/Adafruit_CircuitPython_RFM9x +++ b/frozen/Adafruit_CircuitPython_RFM9x @@ -1 +1 @@ -Subproject commit 13cdb9912ba31f6e267f1afb9f71fddf5b1c139c +Subproject commit 6b018cbeb60d6a30088c866a9b1bc46166209735 diff --git a/frozen/Adafruit_CircuitPython_Register b/frozen/Adafruit_CircuitPython_Register index d1e8ac7ad9..9c71a86d54 160000 --- a/frozen/Adafruit_CircuitPython_Register +++ b/frozen/Adafruit_CircuitPython_Register @@ -1 +1 @@ -Subproject commit d1e8ac7ad9dcd65ab83749db3e5c96ffee80ebb7 +Subproject commit 9c71a86d54015260bd40ad4bc8d0258c930bcc64 diff --git a/frozen/Adafruit_CircuitPython_Requests b/frozen/Adafruit_CircuitPython_Requests index b168b28fc5..9ad59c3bc5 160000 --- a/frozen/Adafruit_CircuitPython_Requests +++ b/frozen/Adafruit_CircuitPython_Requests @@ -1 +1 @@ -Subproject commit b168b28fc58973cf20269cc87a655d7812659fd0 +Subproject commit 9ad59c3bc5e2fdc341779ccbbe2d78560c5d681f diff --git a/frozen/Adafruit_CircuitPython_SD b/frozen/Adafruit_CircuitPython_SD index 332143d4ca..ab504a86af 160000 --- a/frozen/Adafruit_CircuitPython_SD +++ b/frozen/Adafruit_CircuitPython_SD @@ -1 +1 @@ -Subproject commit 332143d4ca5762d2d351ceb170c0b4e37dd42793 +Subproject commit ab504a86afb583bbe9008884bc01b33f0654a0dd diff --git a/frozen/Adafruit_CircuitPython_ST7789 b/frozen/Adafruit_CircuitPython_ST7789 index 995959d5dc..4a094ea8e0 160000 --- a/frozen/Adafruit_CircuitPython_ST7789 +++ b/frozen/Adafruit_CircuitPython_ST7789 @@ -1 +1 @@ -Subproject commit 995959d5dca23fbe49590700d1aa26a96dca1df7 +Subproject commit 4a094ea8e0ca902e7c61822060e149d73fa18ce5 diff --git a/frozen/Adafruit_CircuitPython_SimpleIO b/frozen/Adafruit_CircuitPython_SimpleIO index d238fe99e2..60d9df0ca0 160000 --- a/frozen/Adafruit_CircuitPython_SimpleIO +++ b/frozen/Adafruit_CircuitPython_SimpleIO @@ -1 +1 @@ -Subproject commit d238fe99e24ea4cdb472f1d8a9c99dd189b0aeca +Subproject commit 60d9df0ca09b5005ea0c03b94daae854983d79bd diff --git a/frozen/Adafruit_CircuitPython_SimpleMath b/frozen/Adafruit_CircuitPython_SimpleMath index 632655b8f5..1156062b06 160000 --- a/frozen/Adafruit_CircuitPython_SimpleMath +++ b/frozen/Adafruit_CircuitPython_SimpleMath @@ -1 +1 @@ -Subproject commit 632655b8f5f6f62e3b4d0b6161213634e0ae74e9 +Subproject commit 1156062b06771afd37da54d0b690a84ef611a78b diff --git a/frozen/Adafruit_CircuitPython_Thermistor b/frozen/Adafruit_CircuitPython_Thermistor index 3816a4f4c9..79ff12be05 160000 --- a/frozen/Adafruit_CircuitPython_Thermistor +++ b/frozen/Adafruit_CircuitPython_Thermistor @@ -1 +1 @@ -Subproject commit 3816a4f4c997b03d4a7ebfe35a617d1e50124b04 +Subproject commit 79ff12be057ff5975e52ad273e087d74deb147ab diff --git a/frozen/Adafruit_CircuitPython_Ticks b/frozen/Adafruit_CircuitPython_Ticks index 6757c5b37c..704cac4af3 160000 --- a/frozen/Adafruit_CircuitPython_Ticks +++ b/frozen/Adafruit_CircuitPython_Ticks @@ -1 +1 @@ -Subproject commit 6757c5b37cf26458448930042cb0a41f8ad0a5ef +Subproject commit 704cac4af3dccf8e452e69eb8f9f22fe8db26f83 diff --git a/frozen/Adafruit_CircuitPython_asyncio b/frozen/Adafruit_CircuitPython_asyncio index c496cfb576..339e037bf6 160000 --- a/frozen/Adafruit_CircuitPython_asyncio +++ b/frozen/Adafruit_CircuitPython_asyncio @@ -1 +1 @@ -Subproject commit c496cfb5768cd506d61100284fdab94dd439ec3b +Subproject commit 339e037bf6cf30e03fab6fa5b1b9f669821f7685 diff --git a/frozen/Adafruit_CircuitPython_seesaw b/frozen/Adafruit_CircuitPython_seesaw index 148345d232..73b78e2424 160000 --- a/frozen/Adafruit_CircuitPython_seesaw +++ b/frozen/Adafruit_CircuitPython_seesaw @@ -1 +1 @@ -Subproject commit 148345d232c83133de3649fb70b471f11501b3d2 +Subproject commit 73b78e242424b865785d5e66ccef949bdacf7214 diff --git a/frozen/mixgo_cp_lib b/frozen/mixgo_cp_lib index 4ba6956d49..d5e3e809d7 160000 --- a/frozen/mixgo_cp_lib +++ b/frozen/mixgo_cp_lib @@ -1 +1 @@ -Subproject commit 4ba6956d49752f2d0cdc73903b86a34c225934ef +Subproject commit d5e3e809d7aa938b233b49526c55bfd2e314272c diff --git a/locale/zh_Latn_pinyin.po b/locale/zh_Latn_pinyin.po index 2edd1eef17..b0988669b3 100644 --- a/locale/zh_Latn_pinyin.po +++ b/locale/zh_Latn_pinyin.po @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: circuitpython-cn\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-04 12:55-0600\n" -"PO-Revision-Date: 2022-08-05 14:18+0000\n" -"Last-Translator: River Wang \n" +"PO-Revision-Date: 2022-08-20 14:09+0000\n" +"Last-Translator: hexthat \n" "Language-Team: Chinese Hanyu Pinyin\n" "Language: zh_Latn_pinyin\n" "MIME-Version: 1.0\n" @@ -85,7 +85,7 @@ msgstr "" #: ports/raspberrypi/common-hal/analogio/AnalogOut.c #: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/rtc/RTC.c msgid "%q" -msgstr "" +msgstr "%q" #: shared-bindings/microcontroller/Pin.c msgid "%q and %q contain duplicate pins" @@ -93,7 +93,7 @@ msgstr "%q hé %q bāo hán chóng fù yǐn jiǎo" #: ports/atmel-samd/common-hal/audioio/AudioOut.c msgid "%q and %q must be different" -msgstr "" +msgstr "%q hé %q bìxū bùtóng" #: shared-bindings/microcontroller/Pin.c msgid "%q contains duplicate pins" @@ -117,11 +117,11 @@ msgstr "%q suǒyǐn bìxū shì zhěngshù, ér bùshì %s" #: shared-module/bitbangio/SPI.c msgid "%q init failed" -msgstr "" +msgstr "%q chūshǐhuà shībài" #: py/argcheck.c msgid "%q length must be %d" -msgstr "" +msgstr "%q de chángdù bìxū shì %d" #: py/argcheck.c msgid "%q length must be %d-%d" @@ -129,19 +129,19 @@ msgstr "%q cháng dù bì xū wéi %d-%d" #: py/argcheck.c msgid "%q length must be <= %d" -msgstr "" +msgstr "%q chángdù bìxū <= %d" #: py/argcheck.c msgid "%q length must be >= %d" -msgstr "" +msgstr "%q chángdù bìxū >= %d" #: shared-bindings/busio/I2C.c msgid "%q length must be >= 1" -msgstr "%q cháng dù bì xū >= 1" +msgstr "%q cháng dù bìxū >= 1" #: py/argcheck.c msgid "%q must be %d" -msgstr "" +msgstr "%q bìxū %d" #: py/argcheck.c msgid "%q must be %d-%d" @@ -149,19 +149,19 @@ msgstr "%q bì xū wéi %d-%d" #: shared-bindings/displayio/Display.c msgid "%q must be 1 when %q is True" -msgstr "" +msgstr "sāng %q wèi True shí, %q bìxū wèi 1" #: py/argcheck.c shared-bindings/gifio/GifWriter.c msgid "%q must be <= %d" -msgstr "%q bì xū <= %d" +msgstr "%q bìxū <= %d" #: py/argcheck.c msgid "%q must be >= %d" -msgstr "%q bì xū >= %d" +msgstr "%q bìxū >= %d" #: py/argcheck.c msgid "%q must be >= 0" -msgstr "%q Bìxū > = 0" +msgstr "%q bìxū > = 0" #: shared-bindings/vectorio/Circle.c shared-bindings/vectorio/Rectangle.c msgid "%q must be >= 1" @@ -169,11 +169,11 @@ msgstr "%q bìxū >= 1" #: py/argcheck.c msgid "%q must be a string" -msgstr "%q bì xū shì yí gè zì fú chuàn" +msgstr "%q bìxū shì yí gè zì fú chuàn" #: py/argcheck.c msgid "%q must be an int" -msgstr "" +msgstr "%q bìxū shì zhěng xíng" #: py/argcheck.c msgid "%q must be of type %q" @@ -218,7 +218,7 @@ msgstr "%q, %q, hé %q bì xū cháng dù xiāng tóng" #: py/objint.c msgid "%q=%q" -msgstr "" +msgstr "%q=%q" #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #, c-format @@ -415,7 +415,7 @@ msgstr "suǒyǒu I2C wàishè dōu zài shǐyòng zhōng" #: ports/espressif/common-hal/i2ctarget/I2CTarget.c msgid "All I2C targets are in use" -msgstr "" +msgstr "suǒyǒu I2C mùbiāo dōu zài shǐyòng zhōng" #: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c @@ -484,9 +484,8 @@ msgid "Already advertising." msgstr "Mùqián zhèngzài guǎngbō." #: ports/atmel-samd/common-hal/canio/Listener.c -#, fuzzy msgid "Already have all-matches listener" -msgstr "yǐjīng yǒu all-matches jiāntīngqì" +msgstr "yǐjīng yǒu all-matches jiāntīng qì" #: shared-module/memorymonitor/AllocationAlarm.c #: shared-module/memorymonitor/AllocationSize.c @@ -561,23 +560,20 @@ msgid "Below minimum frame rate" msgstr "dīyú zuìdī zhēnlǜ" #: ports/raspberrypi/common-hal/audiobusio/I2SOut.c -#, fuzzy msgid "Bit clock and word select must be sequential pins" -msgstr "wèi shí zhōng hé dān cí xuǎn zé bì xū shì shùn xù yǐn jiǎo" +msgstr "wèi shízhōng hé zì xuǎnzé bìxū shì liánxù de yǐn jiǎo" #: ports/atmel-samd/common-hal/audiobusio/I2SOut.c -#, fuzzy msgid "Bit clock and word select must share a clock unit" -msgstr "Bǐtè shízhōng hé dānzì xuǎnzé bìxū gòngxiǎng shízhōng dānwèi" +msgstr "wèi shízhōng hé zì xuǎnzé bìxū gòngxiǎng yīgè shízhōng dānyuán" #: shared-bindings/audiobusio/PDMIn.c msgid "Bit depth must be multiple of 8." msgstr "wèi shēndù bìxū shì 8 de zhěngshùbèi." #: shared-bindings/bitmaptools/__init__.c -#, fuzzy msgid "Bitmap size and bits per value must match" -msgstr "wèitú dàxiǎo hé měigè zhí de wèi bìxū pǐpèi" +msgstr "wèi tú dàxiǎo hé měi gè zhí de wèi shù bìxū pǐpèi" #: supervisor/shared/safe_mode.c msgid "Boot device must be first device (interface #0)." @@ -674,24 +670,22 @@ msgstr "Zài fǎngwèn yuánshēn dùixiàng zhīqián diàoyòng super().__init #: ports/cxd56/common-hal/camera/Camera.c msgid "Camera init" -msgstr "" +msgstr "xiàngjī chūshǐhuà" #: ports/espressif/common-hal/alarm/pin/PinAlarm.c -#, fuzzy msgid "Can only alarm on RTC IO from deep sleep." -msgstr "zhǐ néng zài RTC IO shàng cóng shēndù shuìmián zhōng bào jǐng." +msgstr "Zhǐ néng cóng shēndù shuìmián zhōng duì RTC IO jìnxíng bàojǐng." #: ports/espressif/common-hal/alarm/pin/PinAlarm.c -#, fuzzy msgid "Can only alarm on one low pin while others alarm high from deep sleep." msgstr "" -"Zhǐ néng zài yīgè dī diàn píng yǐn jiǎo shàng fāchū jǐngbào, ér qítā yǐn " -"jiǎo cóng shēndù shuìmián zhōng fāchū gāo diàn píng jǐngbào." +"Zhǐ néng zài yīgè dī yǐn jiǎo shàng bàojǐng, ér qítā yǐn jiǎo cóng shēndù " +"shuìmián zhōng fāchū gāo diàn píng bàojǐng." #: ports/espressif/common-hal/alarm/pin/PinAlarm.c -#, fuzzy msgid "Can only alarm on two low pins from deep sleep." -msgstr "zhǐ néng cóng shēn dù shuì mián zhōng bào jǐng liǎng gè dī yǐn jiǎo." +msgstr "" +"Zhǐ néng cóng shēndù shuìmián zhōng de liǎng gè dī yǐn jiǎo shàng bàojǐng." #: ports/espressif/common-hal/_bleio/Characteristic.c #: ports/nrf/common-hal/_bleio/Characteristic.c @@ -744,8 +738,7 @@ msgstr "tōng guò USB kě jiàn shí wú fǎ chóng xīn ān zhuāng '/'." #: ports/cxd56/common-hal/microcontroller/__init__.c #: ports/mimxrt10xx/common-hal/microcontroller/__init__.c msgid "Cannot reset into bootloader because no bootloader is present" -msgstr "" -"wúfǎ chóngxīn qǐdòng dào yǐdǎo chéngxù, yīnwéi yǐdǎo chéngxù bù cúnzài." +msgstr "wúfǎ chóngxīn qǐdòng dào yǐdǎo chéngxù, yīnwéi yǐdǎo chéngxù bù cúnzài" #: ports/espressif/common-hal/socketpool/Socket.c msgid "Cannot set socket options" @@ -762,11 +755,11 @@ msgstr "wú fǎ zài RS485 mó shì xià zhǐ dìng RTS huò CTS" #: py/objslice.c msgid "Cannot subclass slice" -msgstr "Wúfǎ zi fēnlèi" +msgstr "bùnéng zi lèi huà qiēpiàn" #: shared-module/bitbangio/SPI.c msgid "Cannot transfer without MOSI and MISO pins" -msgstr "" +msgstr "méiyǒu MOSI hé MISO yǐn jiǎo wúfǎ chuánshū" #: shared-bindings/pwmio/PWMOut.c msgid "Cannot vary frequency on a timer that is already in use" @@ -774,7 +767,7 @@ msgstr "Wúfǎ gēnggǎi yǐ zài shǐyòng de jìshí qì shàng de pínlǜ" #: ports/nrf/common-hal/alarm/pin/PinAlarm.c msgid "Cannot wake on pin edge, only level" -msgstr "" +msgstr "wúfǎ zài yǐn jiǎo biānyuán huànxǐng, zhǐ néng diàn píng" #: ports/espressif/common-hal/alarm/pin/PinAlarm.c msgid "Cannot wake on pin edge. Only level." @@ -808,11 +801,11 @@ msgstr "Liánjiē yǐ duàn kāi, wúfǎ zài shǐyòng. Chuàngjiàn yīgè xī #: py/persistentcode.c msgid "Corrupt .mpy file" -msgstr "Fǔbài de .mpy wénjiàn" +msgstr "sǔnhuài de .mpy wénjiàn" #: ports/espressif/common-hal/neopixel_write/__init__.c msgid "Could not retrieve clock" -msgstr "Wúfǎ huòqǔ shízhōng" +msgstr "wúfǎ jiǎnsuǒ shízhōng" #: shared-bindings/_bleio/Adapter.c msgid "Could not set address" @@ -891,7 +884,7 @@ msgstr "Xiǎnshì xuánzhuǎn bìxū 90 dù jiā xīn" #: main.c msgid "Done" -msgstr "" +msgstr "zuò" #: shared-bindings/digitalio/DigitalInOut.c msgid "Drive mode not used when direction is input." @@ -965,7 +958,7 @@ msgstr "Wúfǎ huòdé mutex, err 0x%04x" #: shared-module/rgbmatrix/RGBMatrix.c msgid "Failed to allocate %q buffer" -msgstr "" +msgstr "wèi néng fēnpèi %q huǎnchōng qū" #: ports/espressif/common-hal/wifi/__init__.c msgid "Failed to allocate Wifi memory" @@ -1051,7 +1044,7 @@ msgstr "Hánshù xūyào suǒdìng" #: ports/cxd56/common-hal/gnss/GNSS.c msgid "GNSS init" -msgstr "" +msgstr "GNSS chūshǐhuà" #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c msgid "Generic Failure" @@ -1086,7 +1079,7 @@ msgstr "Wénjiàn shàng de I/ O cāozuò" #: ports/stm/common-hal/busio/I2C.c msgid "I2C init error" -msgstr "" +msgstr "I2C qǐdòng cuòwù" #: ports/raspberrypi/common-hal/busio/I2C.c msgid "I2C peripheral in use" @@ -1202,7 +1195,7 @@ msgstr "nèi bù cuò wù #%d" #: supervisor/shared/safe_mode.c msgid "Internal watchdog timer expired." -msgstr "" +msgstr "Nèibù kān mén gǒu dìngshí qì chāoshí." #: py/argcheck.c msgid "Invalid %q" @@ -1285,11 +1278,11 @@ msgstr "Guānjiàn zì arg de LHS bìxū shì id" #: shared-module/displayio/Group.c msgid "Layer already in a group" -msgstr "" +msgstr "tú céng yǐ zài zǔ zhōng" #: shared-module/displayio/Group.c msgid "Layer must be a Group or TileGrid subclass" -msgstr "" +msgstr "tú céng bìxū shì zǔ huò píng pū wǎng gé zi lèi" #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c msgid "MAC address was invalid" @@ -1311,11 +1304,11 @@ msgstr "Màikèfēng qǐdòng yánchí bìxū zài 0.0 Dào 1.0 De fànwéi nèi #: ports/raspberrypi/bindings/rp2pio/StateMachine.c #: ports/raspberrypi/common-hal/rp2pio/StateMachine.c msgid "Mismatched data size" -msgstr "" +msgstr "shùjù dàxiǎo bù pǐpèi" #: ports/raspberrypi/common-hal/rp2pio/StateMachine.c msgid "Mismatched swap flag" -msgstr "" +msgstr "jiāohuàn biāozhì bù pǐpèi" #: ports/mimxrt10xx/common-hal/busio/SPI.c msgid "Missing MISO or MOSI Pin" @@ -1323,7 +1316,7 @@ msgstr "Quēshǎo MISO huò MOSI yǐn jiǎo" #: ports/stm/common-hal/busio/SPI.c msgid "Missing MISO or MOSI pin" -msgstr "" +msgstr "quēshǎo MISO huò MOSI yǐn jiǎo" #: ports/raspberrypi/common-hal/rp2pio/StateMachine.c #, c-format @@ -1388,7 +1381,7 @@ msgstr "Míngchēng tài zhǎng" #: shared-bindings/displayio/TileGrid.c msgid "New bitmap must be same size as old bitmap" -msgstr "" +msgstr "xīn wèi tú de dàxiǎo bìxū yǔ jiù wèi tú xiāngtóng" #: ports/espressif/common-hal/_bleio/__init__.c msgid "Nimble out of memory" @@ -1422,7 +1415,7 @@ msgstr "dì zhǐ: 0x%x shí méi yǒu I2C qì jiàn" #: supervisor/shared/web_workflow/web_workflow.c msgid "No IP" -msgstr "" +msgstr "wú IP" #: ports/espressif/common-hal/busio/SPI.c #: ports/mimxrt10xx/common-hal/busio/SPI.c @@ -1431,7 +1424,7 @@ msgstr "Méiyǒu MISO yǐn jiǎo" #: ports/stm/common-hal/busio/SPI.c shared-module/bitbangio/SPI.c msgid "No MISO pin" -msgstr "" +msgstr "wú MISO pin" #: ports/espressif/common-hal/busio/SPI.c #: ports/mimxrt10xx/common-hal/busio/SPI.c @@ -1440,7 +1433,7 @@ msgstr "Méiyǒu MOSI yǐn jiǎo" #: ports/stm/common-hal/busio/SPI.c shared-module/bitbangio/SPI.c msgid "No MOSI pin" -msgstr "" +msgstr "wú MOSI pin" #: ports/atmel-samd/common-hal/busio/UART.c #: ports/espressif/common-hal/busio/UART.c @@ -1526,7 +1519,7 @@ msgstr "Shèbèi shàng méiyǒu kònggé" #: py/moduerrno.c msgid "No such device" -msgstr "" +msgstr "wú cǐ shèbèi" #: py/moduerrno.c msgid "No such file/directory" @@ -1580,11 +1573,11 @@ msgstr "Bù zhīchí jīshù" #: supervisor/shared/bluetooth/bluetooth.c msgid "Off" -msgstr "" +msgstr "guānbì" #: supervisor/shared/bluetooth/bluetooth.c msgid "Ok" -msgstr "" +msgstr "hái hǎo" #: ports/atmel-samd/common-hal/audiobusio/PDMIn.c #: ports/raspberrypi/common-hal/audiobusio/PDMIn.c @@ -1640,7 +1633,7 @@ msgstr "zhǐ yǔn xǔ yí gè dì zhǐ" #: ports/nrf/common-hal/alarm/time/TimeAlarm.c #: ports/stm/common-hal/alarm/time/TimeAlarm.c msgid "Only one alarm.time alarm can be set" -msgstr "" +msgstr "zhǐ néng shèzhì yīgè nào líng shíjiān nào líng" #: ports/espressif/common-hal/alarm/time/TimeAlarm.c #: ports/raspberrypi/common-hal/alarm/time/TimeAlarm.c @@ -1653,7 +1646,7 @@ msgstr "Yīcì zhǐ néng yǒuyī zhǒng yánsè shì tòumíng de" #: py/moduerrno.c msgid "Operation not permitted" -msgstr "" +msgstr "bù yǔnxǔ cāozuò" #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c msgid "Operation or feature not supported" @@ -1690,7 +1683,7 @@ msgstr "Dāng biànliàng_pínlǜ shì False zài jiànzhú shí PWM pínlǜ bù #: ports/stm/common-hal/pwmio/PWMOut.c msgid "PWM restart" -msgstr "" +msgstr "PWM chóngqǐ" #: ports/raspberrypi/common-hal/countio/Counter.c msgid "PWM slice already in use" @@ -1815,7 +1808,7 @@ msgstr "RNG chūshǐhuà cuòwù" #: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c #: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c msgid "RS485" -msgstr "" +msgstr "RS485" #: ports/espressif/common-hal/busio/UART.c #: ports/mimxrt10xx/common-hal/busio/UART.c @@ -1849,7 +1842,7 @@ msgstr "shōu dào de xiǎng yìng wú xiào" #: supervisor/shared/bluetooth/bluetooth.c msgid "Reconnecting" -msgstr "" +msgstr "chóngxīn liánjiē" #: shared-bindings/displayio/EPaperDisplay.c msgid "Refresh too soon" @@ -1881,7 +1874,7 @@ msgstr "Bù zhīchí SD kǎ CSD géshì" #: ports/cxd56/common-hal/sdioio/SDCard.c msgid "SDCard init" -msgstr "" +msgstr "SDCard chūshǐhuà" #: ports/stm/common-hal/sdioio/SDCard.c #, c-format @@ -1899,7 +1892,7 @@ msgstr "SPI pèi zhì shī bài" #: ports/stm/common-hal/busio/SPI.c msgid "SPI init error" -msgstr "" +msgstr "SPI chūshǐhuà cuòwù" #: ports/raspberrypi/common-hal/busio/SPI.c msgid "SPI peripheral in use" @@ -1907,7 +1900,7 @@ msgstr "SPI wài shè zhèng zài shǐ yòng zhōng" #: ports/stm/common-hal/busio/SPI.c msgid "SPI re-init" -msgstr "" +msgstr "SPI chóngxīn qǐdòng" #: shared-bindings/is31fl3741/FrameBuffer.c msgid "Scale dimensions must divide by 3" @@ -2076,7 +2069,7 @@ msgstr "Yào tuìchū, qǐng chóng zhì bǎnkuài ér bùyòng " #: ports/atmel-samd/common-hal/audiobusio/I2SOut.c msgid "Too many channels in sample" -msgstr "" +msgstr "yàngběn zhōng de tōngdào tài duō" #: ports/raspberrypi/common-hal/audiobusio/I2SOut.c msgid "Too many channels in sample." @@ -2111,20 +2104,20 @@ msgstr "Xūyào Tuple huò struct_time cānshù" #: ports/stm/common-hal/busio/UART.c msgid "UART de-init" -msgstr "" +msgstr "UART qù chūshǐhuà" #: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c #: ports/espressif/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c msgid "UART init" -msgstr "" +msgstr "UART chūshǐhuà" #: ports/stm/common-hal/busio/UART.c msgid "UART re-init" -msgstr "" +msgstr "UART chóngxīn qǐdòng" #: ports/stm/common-hal/busio/UART.c msgid "UART write" -msgstr "" +msgstr "UART xiě rù" #: shared-module/usb_hid/Device.c msgid "USB busy" @@ -2276,7 +2269,7 @@ msgstr "Bù zhīchí de géshì" #: shared-bindings/hashlib/__init__.c msgid "Unsupported hash algorithm" -msgstr "" +msgstr "bù zhīchí de hā xī suànfǎ" #: ports/espressif/common-hal/dualbank/__init__.c msgid "Update Failed" @@ -2344,7 +2337,7 @@ msgstr "" #: supervisor/shared/web_workflow/web_workflow.c msgid "Wi-Fi: " -msgstr "" +msgstr "Wi-Fi: " #: main.c msgid "Woken up by alarm.\n" @@ -2441,7 +2434,7 @@ msgstr "shù zǔ hé suǒ yǐn cháng dù bì xū xiāng děng" #: extmod/ulab/code/numpy/io/io.c msgid "array has too many dimensions" -msgstr "" +msgstr "shùzǔ yǒu tài duō wéidù" #: py/objarray.c shared-bindings/alarm/SleepMemory.c #: shared-bindings/nvm/ByteArray.c @@ -2560,7 +2553,7 @@ msgstr "jiàozhǔn zhǐ dú dào" #: shared-module/vectorio/Circle.c shared-module/vectorio/Polygon.c #: shared-module/vectorio/Rectangle.c msgid "can only have one parent" -msgstr "" +msgstr "zhǐ néng yǒu yīgè fù xiàng" #: py/emitinlinethumb.c msgid "can only have up to 4 parameters to Thumb assembly" @@ -2733,7 +2726,7 @@ msgstr "tóuyǐng" #: ports/stm/common-hal/pwmio/PWMOut.c msgid "channel re-init" -msgstr "" +msgstr "tōngdào chóngxīn chūshǐhuà" #: shared-bindings/_stage/Text.c msgid "chars buffer too small" @@ -2816,7 +2809,7 @@ msgstr "juàn jī cān shǔ bùnéng wéi kōng" #: extmod/ulab/code/numpy/io/io.c msgid "corrupted file" -msgstr "" +msgstr "wénjiàn sǔnhuài" #: extmod/ulab/code/numpy/poly.c msgid "could not invert Vandermonde matrix" @@ -2913,7 +2906,7 @@ msgstr "kòngxián" #: extmod/ulab/code/numpy/io/io.c msgid "empty file" -msgstr "" +msgstr "kōng de wénjiàn" #: extmod/moduasyncio.c extmod/moduheapq.c extmod/modutimeq.c msgid "empty heap" @@ -3186,7 +3179,7 @@ msgstr "suǒyǐn bìxū shì zhěngshù, qiēpiàn huò bù'ěr zhí lièbiǎo" #: ports/espressif/common-hal/busio/I2C.c msgid "init I2C" -msgstr "" +msgstr "chūshǐhuà I2C" #: extmod/ulab/code/scipy/optimize/optimize.c msgid "initial values must be iterable" @@ -3235,7 +3228,7 @@ msgstr "shūrù jǔzhèn shì qíyì de" #: extmod/ulab/code/numpy/create.c msgid "input must be 1- or 2-d" -msgstr "" +msgstr "shūrù bìxū shì 1- huò 2-d" #: extmod/ulab/code/numpy/carray/carray.c msgid "input must be a 1D ndarray" @@ -3327,7 +3320,7 @@ msgstr "wúxiào de MicroPython zhuāngshì qì" #: ports/espressif/common-hal/esp32_camera/Camera.c msgid "invalid setting" -msgstr "" +msgstr "shèzhì wúxiào" #: shared-bindings/random/__init__.c msgid "invalid step" @@ -3448,11 +3441,11 @@ msgstr "jǔzhèn bùshì zhèngdìng de" #: ports/nrf/common-hal/_bleio/Descriptor.c #, c-format msgid "max_length must be 0-%d when fixed_length is %s" -msgstr "dāng fixed_length de zhí wéi %s shí, max_length bì xū wéi 0-%d" +msgstr "max_length bìxū shì 0-%d, dāng fixed_length shì %s" #: extmod/ulab/code/ndarray.c msgid "maximum number of dimensions is " -msgstr "" +msgstr "zuìdà wéi shù shì " #: py/runtime.c msgid "maximum recursion depth exceeded" @@ -3698,7 +3691,7 @@ msgstr "jīshù zìfú chuàn" #: supervisor/shared/web_workflow/web_workflow.c msgid "off" -msgstr "" +msgstr "guānbì" #: extmod/ulab/code/utils/utils.c msgid "offset is too large" @@ -3851,15 +3844,15 @@ msgstr "pow() yǒu 3 cānshù xūyào zhěngshù" #: ports/espressif/boards/adafruit_qtpy_esp32_pico/mpconfigboard.h msgid "pressing BOOT button at start up.\n" -msgstr "" +msgstr "zài qǐdòng shí àn BOOT ànniǔ.\n" #: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h msgid "pressing SW38 button at start up.\n" -msgstr "" +msgstr "zài qǐdòng shí àn SW38 ànniǔ.\n" #: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h msgid "pressing VOLUME button at start up.\n" -msgstr "" +msgstr "zài qǐdòng shí àn SW38 ànniǔ.\n" #: ports/espressif/boards/adafruit_qtpy_esp32c3/mpconfigboard.h #: ports/espressif/boards/beetle-esp32-c3/mpconfigboard.h @@ -4132,7 +4125,7 @@ msgstr "děngdài v2 kǎ chāoshí" #: ports/stm/common-hal/pwmio/PWMOut.c msgid "timer re-init" -msgstr "" +msgstr "dìngshí qì chóngxīn chūshǐhuà" #: shared-bindings/time/__init__.c msgid "timestamp out of range for platform time_t" @@ -4306,11 +4299,11 @@ msgstr "%q bù zhīchí de lèixíng: '%q', '%q'" #: extmod/ulab/code/numpy/io/io.c msgid "usecols is too high" -msgstr "" +msgstr "Usecols tài gāo" #: extmod/ulab/code/numpy/io/io.c msgid "usecols keyword must be specified" -msgstr "" +msgstr "bìxū zhǐdìng usecols guānjiàn zì" #: py/objint.c #, c-format @@ -4355,7 +4348,7 @@ msgstr "zhǐ dìng de zhóu cuò wù" #: extmod/ulab/code/numpy/io/io.c msgid "wrong dtype" -msgstr "" +msgstr "cuòwù de shùjù lèixíng" #: extmod/ulab/code/numpy/transform.c msgid "wrong index type" @@ -4373,7 +4366,7 @@ msgstr "tiáo jiàn shù zǔ de cháng dù cuò wù" #: extmod/ulab/code/numpy/transform.c msgid "wrong length of index array" -msgstr "" +msgstr "suǒyǐn shùzǔ de chángdù cuòwù" #: extmod/ulab/code/numpy/create.c py/objarray.c py/objstr.c msgid "wrong number of arguments" diff --git a/shared-bindings/is31fl3741/IS31FL3741.h b/shared-bindings/is31fl3741/IS31FL3741.h index 2b81b01617..62302a3ac2 100644 --- a/shared-bindings/is31fl3741/IS31FL3741.h +++ b/shared-bindings/is31fl3741/IS31FL3741.h @@ -46,4 +46,4 @@ void common_hal_is31fl3741_send_reset(is31fl3741_IS31FL3741_obj_t *self); void common_hal_is31fl3741_set_current(is31fl3741_IS31FL3741_obj_t *self, uint8_t current); uint8_t common_hal_is31fl3741_get_current(is31fl3741_IS31FL3741_obj_t *self); void common_hal_is31fl3741_set_led(is31fl3741_IS31FL3741_obj_t *self, uint16_t led, uint8_t level, uint8_t page); -void common_hal_is31fl3741_draw_pixel(is31fl3741_IS31FL3741_obj_t *self, int16_t x, int16_t y, uint32_t color, uint16_t *mapping); +void common_hal_is31fl3741_draw_pixel(is31fl3741_IS31FL3741_obj_t *self, int16_t x, int16_t y, uint32_t color, uint16_t *mapping, uint8_t display_height); diff --git a/shared-bindings/rotaryio/IncrementalEncoder.c b/shared-bindings/rotaryio/IncrementalEncoder.c index 0fe22be262..fe1b0b171b 100644 --- a/shared-bindings/rotaryio/IncrementalEncoder.c +++ b/shared-bindings/rotaryio/IncrementalEncoder.c @@ -74,7 +74,8 @@ STATIC mp_obj_t rotaryio_incrementalencoder_make_new(const mp_obj_type_t *type, const mcu_pin_obj_t *pin_a = validate_obj_is_free_pin(args[ARG_pin_a].u_obj); const mcu_pin_obj_t *pin_b = validate_obj_is_free_pin(args[ARG_pin_b].u_obj); - rotaryio_incrementalencoder_obj_t *self = m_new_obj(rotaryio_incrementalencoder_obj_t); + // Make long-lived because some implementations use a pointer to the object as interrupt-handler data. + rotaryio_incrementalencoder_obj_t *self = m_new_ll_obj(rotaryio_incrementalencoder_obj_t); self->base.type = &rotaryio_incrementalencoder_type; common_hal_rotaryio_incrementalencoder_construct(self, pin_a, pin_b); diff --git a/shared-module/is31fl3741/FrameBuffer.c b/shared-module/is31fl3741/FrameBuffer.c index 400f6f843d..d795c0d5e7 100644 --- a/shared-module/is31fl3741/FrameBuffer.c +++ b/shared-module/is31fl3741/FrameBuffer.c @@ -141,8 +141,7 @@ void common_hal_is31fl3741_FrameBuffer_refresh(is31fl3741_FrameBuffer_obj_t *sel if (!self->paused) { common_hal_is31fl3741_begin_transaction(self->is31fl3741); - uint8_t dirty_row_flags = 0xFF; // only supports 8 rows gotta fix - + uint8_t dirty_row_flags = 0xFF; if (self->scale) { // Based on the Arduino IS31FL3741 driver code // dirtyrows flag current not implemented for scaled displays @@ -173,7 +172,7 @@ void common_hal_is31fl3741_FrameBuffer_refresh(is31fl3741_FrameBuffer_obj_t *sel } else { color = (rsum << 16) + (gsum << 8) + bsum; } - common_hal_is31fl3741_draw_pixel(self->is31fl3741, x, y, color, self->mapping); + common_hal_is31fl3741_draw_pixel(self->is31fl3741, x, y, color, self->mapping, self->height); } } } else { @@ -194,9 +193,11 @@ void common_hal_is31fl3741_FrameBuffer_refresh(is31fl3741_FrameBuffer_obj_t *sel color = *buffer; } - common_hal_is31fl3741_draw_pixel(self->is31fl3741, x, y, color, self->mapping); + common_hal_is31fl3741_draw_pixel(self->is31fl3741, x, y, color, self->mapping, self->height); buffer++; } + } else { + buffer += self->width; // row did not have to be redrawn, skip it in the buffer } } } diff --git a/shared-module/is31fl3741/IS31FL3741.c b/shared-module/is31fl3741/IS31FL3741.c index bb92b5b32c..08598743b7 100644 --- a/shared-module/is31fl3741/IS31FL3741.c +++ b/shared-module/is31fl3741/IS31FL3741.c @@ -148,16 +148,17 @@ void common_hal_is31fl3741_set_led(is31fl3741_IS31FL3741_obj_t *self, uint16_t l common_hal_busio_i2c_write(self->i2c, self->device_address, cmd, 2); } -void common_hal_is31fl3741_draw_pixel(is31fl3741_IS31FL3741_obj_t *self, int16_t x, int16_t y, uint32_t color, uint16_t *mapping) { +void common_hal_is31fl3741_draw_pixel(is31fl3741_IS31FL3741_obj_t *self, int16_t x, int16_t y, uint32_t color, uint16_t *mapping, uint8_t display_height) { uint8_t r = color >> 16 & 0xFF; uint8_t g = color >> 8 & 0xFF; uint8_t b = color & 0xFF; - int16_t x1 = (x * 5 + y) * 3; + int16_t x1 = (x * display_height + y) * 3; uint16_t ridx = mapping[x1 + 2]; if (ridx != 65535) { uint16_t gidx = mapping[x1 + 1]; uint16_t bidx = mapping[x1 + 0]; + common_hal_is31fl3741_set_led(self, ridx, r, 0); common_hal_is31fl3741_set_led(self, gidx, g, 0); common_hal_is31fl3741_set_led(self, bidx, b, 0); diff --git a/supervisor/shared/display.c b/supervisor/shared/display.c index fdd0a0341a..336819e10c 100644 --- a/supervisor/shared/display.c +++ b/supervisor/shared/display.c @@ -67,7 +67,7 @@ void supervisor_start_terminal(uint16_t width_px, uint16_t height_px) { bool reset_tiles = false; uint16_t width_in_tiles = width_px / scroll_area->tile_width; // determine scale based on width - if (width_in_tiles < 80) { + if (width_in_tiles <= 80) { scale = 1; } @@ -133,7 +133,7 @@ void supervisor_start_terminal(uint16_t width_px, uint16_t height_px) { #else scroll_area->y = title_bar->tile_height; #endif - int16_t extra_height = (scroll_area->pixel_height + scroll_area->y) - height_px; + int16_t extra_height = (scroll_area->pixel_height + scroll_area->y) - (height_px / scale); // Subtract extra height so that the bottom line fully shows. The top line will be under the // title bar and Blinka logo. scroll_area->y -= extra_height; diff --git a/supervisor/shared/web_workflow/web_workflow.c b/supervisor/shared/web_workflow/web_workflow.c index 5d1cbe1c76..3f942b91d3 100644 --- a/supervisor/shared/web_workflow/web_workflow.c +++ b/supervisor/shared/web_workflow/web_workflow.c @@ -49,6 +49,7 @@ #include "shared-bindings/hashlib/Hash.h" #include "shared-bindings/mdns/RemoteService.h" #include "shared-bindings/mdns/Server.h" +#include "shared-bindings/microcontroller/Processor.h" #include "shared-bindings/socketpool/__init__.h" #include "shared-bindings/socketpool/Socket.h" #include "shared-bindings/socketpool/SocketPool.h" @@ -768,8 +769,17 @@ static void _reply_with_version_json(socketpool_socket_obj_t *socket, _request * "\"creator_id\": %u, " "\"creation_id\": %u, " "\"hostname\": \"%s\", " - "\"port\": %d, " - "\"ip\": \"%s\"}", CIRCUITPY_CREATOR_ID, CIRCUITPY_CREATION_ID, hostname, web_api_port, _our_ip_encoded); + "\"port\": %d, ", CIRCUITPY_CREATOR_ID, CIRCUITPY_CREATION_ID, hostname, web_api_port, _our_ip_encoded); + #if CIRCUITPY_MICROCONTROLLER && COMMON_HAL_MCU_PROCESSOR_UID_LENGTH > 0 + uint8_t raw_id[COMMON_HAL_MCU_PROCESSOR_UID_LENGTH]; + common_hal_mcu_processor_get_uid(raw_id); + mp_printf(&_socket_print, "\"UID\": \""); + for (uint8_t i = 0; i < COMMON_HAL_MCU_PROCESSOR_UID_LENGTH; i++) { + mp_printf(&_socket_print, "%02X", raw_id[i]); + } + mp_printf(&_socket_print, "\", "); + #endif + mp_printf(&_socket_print, "\"ip\": \"%s\"}", _our_ip_encoded); // Empty chunk signals the end of the response. _send_chunk(socket, ""); }