Commit graph

1889 commits

Author SHA1 Message Date
Xia Xiaotian
526a3e49ed esp_wifi: When WiFi TSF is active, skip light sleep
* Add an API for peripherals to set callbacks to skip light sleep

* Make WiFi power save example work
2020-05-13 19:31:36 +08:00
morris
6020d6a5d4 ethernet: esp_eth_stop API should stop emac hardware 2020-05-13 15:58:42 +08:00
lly
6b9c0dda08 ble_mesh: Fix typos 2020-05-12 16:23:13 +08:00
fuzhibo
d91e64cea4 driver(gpio): fix gpio can't wakeup light sleep 2020-05-12 07:15:13 +00:00
Michael (XIAO Xufeng)
f7ec57b615 Merge branch 'feature/usb_wrap_headers' into 'master'
usb: add usb_wrap headers, move some code from LL to HAL

See merge request espressif/esp-idf!8395
2020-05-10 19:19:14 +08:00
Jan-Hendrik Frintrop
ff9c2dfa8c Fixed links to example directories for fast_scan and scan
Signed-off-by: ronghulin <ronghulin@espressif.com>

https://github.com/espressif/esp-idf/pull/5186
2020-05-08 14:22:39 +08:00
Jiang Jiang Jian
09d4767947 Merge branch 'mesh/power_save_function' into 'master'
mesh/ps: add duty control and support only transmit/receive on active duty

See merge request espressif/esp-idf!8152
2020-05-06 15:53:49 +08:00
Jiang Jiang Jian
62c36a0372 Merge branch 'feature/enable_wpa3_pmf_by_default' into 'master'
esp_wifi: Enable WPA3 & PMF by default

See merge request espressif/esp-idf!8600
2020-05-06 10:53:13 +08:00
Ivan Grokhotkov
d82b60905f Merge branch 'feature/jtag_examples' into 'master'
Add JTAG related example tests

Closes IDF-1147

See merge request espressif/esp-idf!8393
2020-05-05 21:40:38 +08:00
Mahavir Jain
ce2a99dc23 Merge branch 'bugfix/fix_ci_exception' into 'master'
Fix broken pipe exception in CI for OTA examples

See merge request espressif/esp-idf!8519
2020-05-05 18:08:42 +08:00
qiyuexia
4522ef8798 mesh: add duty cycle control and support only transmit/receive in actve duty cycle 2020-05-05 18:06:47 +08:00
Roland Dobai
79e58eff8f Add JTAG related example tests 2020-05-05 11:08:33 +02:00
Shubham Kulkarni
b1e29232ea example_test.py: Override SimpleHTTPRequestHandler to catch broken pipe exception 2020-05-05 14:07:51 +05:30
Ivan Grokhotkov
b0f448a972 Merge branch 'feature/console_no_empty_lines' into 'master'
console: allow not returning empty lines (Github PR)

Closes IDFGH-2869

See merge request espressif/esp-idf!8232
2020-05-05 16:12:50 +08:00
Nachiket Kukade
107cf56e20 esp_wifi: Enable WPA3 & PMF by default
In wifi station example, set PMF(Protected Management Frames)
configuration to capable. Set WPA3 Feature in menuconfig enabled
by default. This will allow device to establish more secured
connection with AP's that support these protocols.
2020-05-04 16:02:14 +05:30
Ivan Grokhotkov
79976e7370 Merge branch 'feature/storage_examples' into 'master'
examples: Add storage example tests and migrate "loadable elf" test to test_apps

Closes IDF-1150 and IDF-1586

See merge request espressif/esp-idf!8174
2020-04-30 14:34:34 +08:00
Angus Gratton
d041512022 Merge branch 'feature/mesh_ip_network_example' into 'master'
ESP-MESH: IP internal network example

See merge request espressif/esp-idf!7724
2020-04-30 14:33:16 +08:00
ChenJianxing
eda97d7e16 update esp32s2 iperf config 2020-04-30 14:00:34 +08:00
Ivan Grokhotkov
466998d487 examples/console: add note about Ctrl+C 2020-04-29 23:46:58 +02:00
Ivan Grokhotkov
19f6da99ed examples/console: match prompt to the target name 2020-04-29 23:44:46 +02:00
Ivan Grokhotkov
ece41b04e3 console: make empty line behavior run-time configurable 2020-04-29 23:44:46 +02:00
Michael 'ASAP' Weinrich
8a2413b5c0 Added filtering blank lines from history 2020-04-29 23:44:46 +02:00
MadnessASAP
8680394167 Break the input loop on error or EOF 2020-04-29 23:44:46 +02:00
me-no-dev
406d9d20a3 Update HID examples to comply with the new requirements 2020-04-29 20:51:16 +03:00
Jiang Jiang Jian
922a0fa485 Merge branch 'feature/esp-hid-component' into 'master'
ESP-HID Component

See merge request espressif/esp-idf!6908
2020-04-29 17:24:02 +08:00
Hristo Gochkov
25281ef4de Add HID Support to IDF
- Adds HID Host support in Buedroid
- Adds BLE HID Host and Device support
- Adds some general HID utilities and definitions to help integrate with other stacks and native USB
2020-04-29 17:24:01 +08:00
Ivan Grokhotkov
e0177eb252 examples/tusb_sample_descriptor: default to esp32s2 target 2020-04-29 10:04:13 +02:00
Roland Dobai
2d709c6384 Migrate "loadable elf" test from hello_world example to test_apps 2020-04-29 09:17:28 +02:00
Roland Dobai
819f7a4e57 examples: Add storage example tests 2020-04-29 09:16:18 +02:00
Roland Dobai
d5aeae9d48 examples: fix import error for the https_x509_bundle example 2020-04-29 09:16:18 +02:00
David Čermák
f04fd2976d Merge branch 'bugfix/modem_pattern_queue_size_fix' into 'master'
esp_modem: Fix misuse event_queue_size as pattern_queue_size

Closes IDFGH-3172

See merge request espressif/esp-idf!8539
2020-04-29 14:09:31 +08:00
Roland Dobai
e1dc92b60b Add system example tests 2020-04-28 14:52:15 +02:00
lly
fab9b944a4 ble_mesh: Add length check for some mesh operations 2020-04-27 14:24:07 +08:00
lly
c77b7394ed ble_mesh: Fix compile error when -O2 (performance) is chosen 2020-04-27 14:24:07 +08:00
Michael (XIAO Xufeng)
9d98111652 Merge branch 'bugfix/spi_bus_lock_missing_semphrstatic' into 'master'
spi: fix config break and reduce overhead of the bus lock on SPI1

Closes IDFGH-3017

See merge request espressif/esp-idf!8221
2020-04-27 12:57:19 +08:00
Island
1e12673b3c Merge branch 'feat/ble_mesh_sensor_model_example' into 'master'
ble_mesh: Add ble mesh sensor model examples

Closes BLEMESH-190

See merge request espressif/esp-idf!8253
2020-04-27 11:47:06 +08:00
Island
32cfcc77ed Merge branch 'bugfix/ble_mesh_use_sdkconfig_ci' into 'master'
ble_mesh: Add bluedroid and nimble example configurations

See merge request espressif/esp-idf!8172
2020-04-27 11:41:26 +08:00
lly
8d57ebf57d ble_mesh: Remove BLE_MESH_MAX_STORED_NODES option
Previously the BLE_MESH_MAX_STORED_NODES option is added for
internal mesh test, which will be a little confusing for the
users to understand.
Here we remove this option, instead the BLE_MESH_MAX_PROV_NODES
will be used for all the cases. For mesh internal test, when
the test function is called to add some nodes info, the info
will be stored in the array of provisioned nodes directly.
2020-04-26 06:25:08 +00:00
lly
fa40a1a0c7 ble_mesh: Add bluedroid and nimble example configurations 2020-04-26 06:12:22 +00:00
lly
2f28c97f06 ble_mesh: Add ble mesh sensor model examples 2020-04-26 06:08:44 +00:00
Axel Lin
85e9930071 esp_modem: Fix misuse event_queue_size as pattern_queue_size
Also remove event_queue_size from esp_modem_dte_t because
event_queue_size is only used in esp_modem_dte_init.

Fixes: 817c0e3019 ("esp_modem: UART runtime configuration of esp-modem")
Signed-off-by: Axel Lin <axel.lin@gmail.com>
2020-04-25 08:08:01 +08:00
Angus Gratton
bb0a95b17c spi_flash s2: Fix encrypted writes when legacy implementation disabled
ROM function didn't use correct Addr bitlen if legacy was disabled on ESP32-S2
2020-04-24 12:43:47 -03:00
Felipe Neves
6f27992430 flash_encryption: return more clear error codes when bootloader encryption fails 2020-04-24 12:43:47 -03:00
Felipe Neves
7635dce502 bootloader/flash_encrypt: added esp32s2 flash encryption code on build system and enabled example
flash_enctryption: enabled flash encryption example on esp32s2

bootloader: raise WDT overflow value providing sufficient interval to encrypt app partition

flash_ encrypt: Fixed the TODOs on flash encryption key generation for esp32s2

flash_encryption: added secure boot features to flash enctryption for esp32s2

bootloader: leave only esp32s2 compatible potentially insecure options on menuconfig.

flash_encryption: removed secure boot version 1 from esp32s2 encryption code

flash_encryption:  added  CONFIG_SECURE_FLASH_REQUIRE_ALREADY_ENABLED option for esp32s2

flash_encryption: fixed the count of left plaintext flash

flash_encryption: disable dcache and icache download when using encryption in release mode

flash_encryption:  add cache potentally insecure options for s2 chips

flash_encryption: fixed bug which bricked some chips in relase mode
2020-04-24 12:43:47 -03:00
Michael (XIAO Xufeng)
77d5e4b4e2 Merge branch 'bugfix/timer_group_intr_enable' into 'master'
Bugfix/timer group intr enable

Closes IDFGH-3082

See merge request espressif/esp-idf!8340
2020-04-24 18:28:36 +08:00
David Cermak
9e58d94a42 esp-mesh: Added example showing internal IP capable mesh network 2020-04-24 07:32:58 +02:00
Jiang Jiang Jian
741960d5ce Merge branch 'bugfix/Add_softap_example_channel_configuration' into 'master'
esp_wifi:Add softap example channel configuration

See merge request espressif/esp-idf!8387
2020-04-24 11:21:45 +08:00
morris
91e62f4e37 timer_group: update hal api && fix intr_enable
timer group interrupt enable is controled by level_int_ena instead of int_ena

Closes https://github.com/espressif/esp-idf/issues/5103
2020-04-23 19:29:15 +08:00
Ivan Grokhotkov
28efe511f4 Merge branch 'bugfix/semihosting_write' into 'master'
Semihosting fixes for write and the  semihost example

See merge request espressif/esp-idf!8290
2020-04-23 06:26:41 +08:00
michael
fdf983e0c4 spi: fix config break and reduce overhead of the bus lock on SPI1
The SPI bus lock on SPI1 introduces two side effects:

1. The device lock for the main flash requires the
`CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION` to be selected, however this
option is disabled by default in earlier IDF versions. Some developers
may find their project cannot be built by their old sdkconfig files.

2. Usually we don't need the lock on the SPI1 bus, due to it's
restrictions. However the overhead still exists in this case, the IRAM
cost for static version of semaphore functions, and the time cost when
getting and releasing the lock.

This commit:

1. Add a CONFIG_SPI_FLASH_BYPASS_MAIN_LOCK option, which will forbid the
space cost, as well as the initialization of the main bus lock.

2. When the option is not selected, the bus lock is used, the
`CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION` will be selected explicitly.

3. Revert default value of `CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION`
to `n`.

introduced in 49a48644e4.

Closes https://github.com/espressif/esp-idf/issues/5046
2020-04-22 16:06:13 +08:00
xiehang
2d6f7f25e3 esp_wifi:Add softap example channel configuration 2020-04-17 17:31:46 +08:00
Andrei Gramakov
283026a761 vfs: semihost driver bugfix 2020-04-15 15:46:47 +02:00
David Cermak
6aabfd50d5 pppos_client: support for PPPAUTHTYPE_NONE
Closes https://github.com/espressif/esp-idf/issues/4616
Closes WIFI-1652
2020-04-14 21:46:07 +02:00
David Cermak
817c0e3019 esp_modem: UART runtime configuration of esp-modem
Basic set of configuration related to UART moved from KConfig
to runtime configuration structure to simplify reusing the component for
testing and examples.
2020-04-14 21:46:07 +02:00
Axel Lin
0784426d6b esp_modem: Ensure uart_param_config and uart pins are set before uart_driver_install
Fixes Guru Meditation Error: Core 0 panic'ed (LoadProhibited) when config with
CONFIG_PM_ENABLE=y && CONFIG_PM_DFS_INIT_AUTO=y.

Signed-off-by: Axel Lin <axel.lin@gmail.com>

Merges https://github.com/espressif/esp-idf/pull/4904
2020-04-14 21:46:07 +02:00
David Cermak
636621d1c5 pppos_client: Add a test application for pppos_client
Adding testing facilities for pppos-client including esp-modem component
and PPP client in lwip. Testing is provided with PPP server running on
rpi.
2020-04-14 21:46:07 +02:00
David Cermak
745f062e07 esp_modem: pppos_client modem to use uart with REF_TICK
pppos_client example used the UART default clock configuration which might
cause issues if power management enabled. Settings updated to UART_SCLK_REF_TICK
Also need to explicitly disable RX interrupts in UART pattern detection
mode.

Closes https://github.com/espressif/esp-idf/issues/4801
2020-04-14 21:46:07 +02:00
Krzysztof Budzynski
e1ab4b6711 Merge branch 'bugfix/uart_echo_readme' into 'master'
example: Remove duplicate commands and invalid serial port information

Closes IDFGH-3022

See merge request espressif/esp-idf!8295
2020-04-11 01:52:01 +08:00
Jiang Jiang Jian
4d9bb3ca71 Merge branch 'bugfix/wifi_station_examples_event_error' into 'master'
Fix instance names for event handler unregister

Closes WIFI-2122

See merge request espressif/esp-idf!8282
2020-04-10 20:56:39 +08:00
Fu Hanxi
5b2fa1a5ad build_app: make multi target support readable 2020-04-09 16:40:57 +08:00
Roland Dobai
6adb1a0609 example: Remove duplicate commands and invalid serial port information
Closes https://github.com/espressif/esp-idf/issues/5049
2020-04-08 13:17:48 +02:00
Ivan Grokhotkov
651dbe48e7 Merge branch 'feature/gcovr' into 'master'
app_trace: Add coverage generations by gcovr

Closes IDF-780

See merge request espressif/esp-idf!8168
2020-04-08 15:57:08 +08:00
ronghulin
f0744184f5 fix: add event unregister comment 2020-04-07 21:53:50 +08:00
Jari Jokinen
266b0c3889 Fix instance names for event handler unregister
Signed-off-by: ronghulin <ronghulin@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/5064
2020-04-07 20:30:19 +08:00
Anton Maklakov
fa3131b870 Merge branch 'bugfix/bash_bin_env' into 'master'
global: use '/usr/bin/env bash' instead of '/usr/bin/bash' in shebangs

Closes IDFGH-708

See merge request espressif/esp-idf!8235
2020-04-06 17:51:43 +08:00
David Cermak
e57dbf7c27 http-server-example: correction of regex waiting to acquire IP address
Since the recent refactoring of spi bus_lock comonent introduced heavy logging under debug/verbose level of verbosity, the http-server test executed in the CI became less stable due to complicated regex. Fixed by removing the first optional group
2020-04-05 20:07:27 +02:00
David Čermák
0f6b0f13b0 Merge branch 'bugfix/ws_example_test_format' into 'master'
Fix format string in websocket example

Closes IDFGH-3025

See merge request espressif/esp-idf!8239
2020-04-03 16:40:48 +08:00
Ivan Grokhotkov
e94288da31 global: use '/usr/bin/env bash' instead of '/usr/bin/bash' in shebangs
Using the method from @cemeyer
(https://github.com/espressif/esp-idf/pull/3166):

find . -name \*.sh -exec sed -i "" -e 's|^#!.*bin/bash|#!/usr/bin/env bash|' {} +

Closes https://github.com/espressif/esp-idf/pull/3166.
2020-04-03 01:10:02 +02:00
Elia Bieri
5288a797ef Fix format string in websocket example 2020-04-02 22:48:58 +02:00
Jiang Jiang Jian
59660c67cd Merge branch 'mesh/power_save_function_with_local_duty' into 'master'
mesh/ps: add mesh network power save function

See merge request espressif/esp-idf!8203
2020-04-02 19:43:12 +08:00
Mahavir Jain
6866f9c996 Merge branch 'bugfix/eth2ap' into 'master'
example/eth2ap: Fix station multi-connection problem

See merge request espressif/esp-idf!8051
2020-04-02 13:18:42 +08:00
qiyuexia
6d01dc4cfa mesh/ps: add mesh network power save function 2020-04-01 22:09:23 +08:00
InfiniteYuan
1f43f025d8 example/eth2ap: fix station multi-connection problem and add channel config item.
Closes https://github.com/espressif/esp-idf/issues/5029
2020-04-01 19:20:30 +08:00
fuzhibo
baa7898e35 driver(adc/dac): fix adc dac driver for esp32s2
1. update register file about adc; 2. fix adc driver; 3. add UT for adc/dac;

See merge request espressif/esp-idf!7776
2020-04-01 12:41:51 +08:00
David Cermak
abcc3fe6da spi: fix spi eeprom example build
Fix GNU make build error introduced in f53812d27a
2020-03-31 17:48:01 +02:00
Michael (XIAO Xufeng)
4a005a02f9 Merge branch 'bugfix/spi_eeprom_example_make_build' into 'master'
spi: fix the component.mk for eeprom example

See merge request espressif/esp-idf!8187
2020-03-31 22:33:07 +08:00
David Čermák
8b0063588f Merge branch 'bugfix/udp_client_build_error' into 'master'
socket examples: Fix udp_client build error

Closes IDFGH-2982

See merge request espressif/esp-idf!8176
2020-03-31 22:25:48 +08:00
Michael (XIAO Xufeng)
6998257514 spi: fix the component.mk for eeprom example
introduced in f53812d27a.
2020-03-31 18:18:18 +08:00
Michael (XIAO Xufeng)
1cdbaf5b50 Merge branch 'bugfix/freemodbus_fix_long_frame_buffer_issue' into 'master'
freemodbus: fix long buffer failure (no temp frame buffer)

Closes IDFGH-2371

See merge request espressif/esp-idf!7418
2020-03-30 22:05:49 +08:00
Alex Lisitsyn
3abdd2207d freemodbus: fix long buffer failure
check master read write functions with array of registers)
fix master serial processing code and modbus controller to work with register array
modbus_master: add reading and writing of test value array (58 registers) to check failure is gone
remove parameter temporary buffer from modbus controller to allow more than 24 byte writes
driver: fix issue with TOUT feature
driver: fix uart_rx_timeout issue
driver: fix issue with rxfifo_tout_int_raw not triggered when received fifo_len = 120 byte and all bytes read out of fifo as result of rxfifo_full_int_raw
driver: add function uart_internal_set_always_rx_timeout() to always handle tout interrupt
examples: call uart_internal_set_always_rx_timeout() to handle tout interrupt correctly
examples: update examples to use tout feature
driver: reflect changes of uart_set_always_rx_timeout() function, change uart.c
driver: change conditions to trigger workaround for tout feature in uart.c
driver: change uart_set_always_rx_timeout()
freemodbus: fix tabs, remove commented code
driver: remove uart_ll_is_rx_idle()
2020-03-30 22:05:48 +08:00
Roland Dobai
26695df5c8 app_trace: Add coverage generation by gcovr 2020-03-30 13:34:06 +02:00
Anton Maklakov
0fee085b67 Merge branch 'bugfix/update_esp32s2_iperf_config' into 'master'
examples: update esp32s2 config for wifi iperf

See merge request espressif/esp-idf!8084
2020-03-30 16:45:11 +08:00
Michael (XIAO Xufeng)
135aa51d06 Merge branch 'feat/spi1_host_eeprom' into 'master'
spi: add eeprom example on SPI1 host

See merge request espressif/esp-idf!7130
2020-03-30 12:14:59 +08:00
Michael (XIAO Xufeng)
de310764c6 Merge branch 'bugfix/fix_i2s_example_sample_calculation_incorrect_bug' into 'master'
bugfix (I2S): Fixed I2S example sine wave sample calculation incorrect bug

Closes IDFGH-2947

See merge request espressif/esp-idf!8108
2020-03-30 12:02:31 +08:00
Michael (XIAO Xufeng)
f53812d27a spi: add eeprom example 2020-03-29 12:52:29 +08:00
Michael (XIAO Xufeng)
0f1041cc04 example: move spi master example to a subfolder 2020-03-29 12:52:29 +08:00
Axel Lin
8592f14a93 socket examples: Fix udp_client build error
Fix below build error:
../main/udp_client.c: In function 'udp_client_task':
../main/udp_client.c:58:41: error: 'addr_str' undeclared (first use in this function); did you mean 'caddr_t'?

Fixes: 995ef85e85 ("socket examples: add tests for server and client applications")
Signed-off-by: Axel Lin <axel.lin@gmail.com>
2020-03-28 11:29:20 +08:00
Jiang Jiang Jian
79e92b0e6a Merge branch 'bugfix/ble_mesh_add_test_function' into 'master'
ble_mesh: Add ble mesh white list test function

See merge request espressif/esp-idf!8046
2020-03-27 19:53:54 +08:00
Angus Gratton
2415531f44 Merge branch 'refactor/esp_event_examples_new_interface' into 'master'
Examples: esp event examples use new register API

See merge request espressif/esp-idf!7928
2020-03-27 18:05:45 +08:00
Alex Lisitsyn
16e6e63694 driver: fix driver set rx timeout feature of uart
tout_thr - move calculation and masking into hal layer update driver and uart_ll (add uart_ll_set_rx_tout)
move tout calculation into uart_ll
move calculation of time out in bit time for esp32s2 into low level uart_ll.h file
move uart_hal_get_symb_len() into hal
update set_rx_timeout() to warn user about incorrect value
update HAL, LL 1
fix uart_xx_set_rx_tout() to convert symbol time into bit time
update param description
update tout calculation in LL
update uart_hal_get_max_rx_timeout_thrd() and uart_ll_get_max_rx_timeout_thrd()
2020-03-27 16:20:21 +08:00
Prasad Alatkar
2bc28bbd5a NimBLE: Fix NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT in esp_nimble_cfg and bleprph README 2020-03-27 14:05:32 +08:00
Angus Gratton
88bf21b21e Merge branch 'nimble/iram_allocation_strategy' into 'master'
NimBLE: Add support to IRAM allocation strategy

See merge request espressif/esp-idf!8015
2020-03-27 13:54:25 +08:00
Mahavir Jain
7cbc593ef6 Merge branch 'bugfix/http2_request_example' into 'master'
Fixed broken http2_request example.

See merge request espressif/esp-idf!8000
2020-03-26 19:45:10 +08:00
fuzhibo
340563f479 Driver(touch): fix touch sensor driver for esp32s2.
1.update touch sensor driver for esp32s2;
2.update unit test for touch sensor;
3.update register files about touch sensor;
2020-03-25 22:45:57 +08:00
lly
45d43f005a ble_mesh: Add ble mesh white list test function
Using the ble mesh white list test functions, a node can choose to
only receive mesh messages from a specific node and relay the
messages for it. Messages from other nodes will be ignored.
2020-03-25 11:30:08 +08:00
Jakob Hasse
1cf2312734 Examples: some examples use new event register API
* getting started - station
* softap
* iperf
* fast scan
* Power save
2020-03-25 10:36:47 +08:00
Angus Gratton
62426a6c90 Merge branch 'refactor/use_new_component_registration_functions' into 'master'
CMake: Use new component registration function

See merge request espressif/esp-idf!8068
2020-03-25 08:02:42 +08:00
houwenxiang
0304ba906f Example(I2S): Fixed I2S example sine wave sample calculation incorrect bug.
closes https://github.com/espressif/esp-idf/issues/4980
2020-03-25 01:35:01 +08:00
Ivan Grokhotkov
55c3c2b73d Merge branch 'feature/vfs_optional' into 'master'
vfs: add option to disable VFS layer, saving some RAM and code size

See merge request espressif/esp-idf!7950
2020-03-24 21:11:28 +08:00
David Čermák
e50a7a97da Merge branch 'bugfix/ipv6_examples' into 'master'
IPv6 related updates: esp-netif, common-connect, socket-examples

See merge request espressif/esp-idf!7500
2020-03-24 19:32:33 +08:00