Compare commits
7 Commits
35-als-geb
...
53-als-geb
Author | SHA1 | Date | |
---|---|---|---|
|
a901c0f205 | ||
|
14f46775dd | ||
|
536c8c75af | ||
|
7dc0c7bc72 | ||
|
031d766205 | ||
|
54cf012288 | ||
|
01498b5643 |
4
.vscode/arduino.json
vendored
Normal file
4
.vscode/arduino.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"port": "COM3",
|
||||
"board": "esp32:esp32:esp32s3"
|
||||
}
|
593
.vscode/c_cpp_properties.json
vendored
Normal file
593
.vscode/c_cpp_properties.json
vendored
Normal file
@@ -0,0 +1,593 @@
|
||||
{
|
||||
"version": 4,
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Arduino",
|
||||
"compilerPath": "C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\bin\\xtensa-esp32s3-elf-g++",
|
||||
"compilerArgs": [
|
||||
"-mlongcalls",
|
||||
"-ffunction-sections",
|
||||
"-fdata-sections",
|
||||
"-Wno-error=unused-function",
|
||||
"-Wno-error=unused-variable",
|
||||
"-Wno-error=deprecated-declarations",
|
||||
"-Wno-unused-parameter",
|
||||
"-Wno-sign-compare",
|
||||
"-freorder-blocks",
|
||||
"-Wwrite-strings",
|
||||
"-fstack-protector",
|
||||
"-fstrict-volatile-bitfields",
|
||||
"-Wno-error=unused-but-set-variable",
|
||||
"-fno-jump-tables",
|
||||
"-fno-tree-switch-conversion",
|
||||
"-std=gnu++11",
|
||||
"-fexceptions",
|
||||
"-fno-rtti"
|
||||
],
|
||||
"intelliSenseMode": "gcc-x64",
|
||||
"includePath": [
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\newlib\\platform_include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freertos\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freertos\\include\\esp_additions\\freertos",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freertos\\port\\xtensa\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freertos\\include\\esp_additions",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include\\soc",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include\\soc\\esp32s3",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\port\\esp32s3",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\port\\esp32s3\\private_include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\heap\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\log\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\lwip\\include\\apps",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\lwip\\include\\apps\\sntp",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\lwip\\lwip\\src\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\lwip\\port\\esp32\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\lwip\\port\\esp32\\include\\arch",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\soc\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\soc\\esp32s3",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\soc\\esp32s3\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\hal\\esp32s3\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\hal\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\hal\\platform_port\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_rom\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_rom\\include\\esp32s3",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_rom\\esp32s3",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_common\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_system\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_system\\port\\soc",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_system\\port\\public_compat",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\xtensa\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\xtensa\\esp32s3\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\driver\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\driver\\esp32s3\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_pm\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_ringbuf\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\efuse\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\efuse\\esp32s3\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\vfs\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_wifi\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_event\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_netif\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_eth\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\tcpip_adapter\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_phy\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_phy\\esp32s3\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_ipc\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\app_trace\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_timer\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\mbedtls\\port\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\mbedtls\\mbedtls\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\mbedtls\\esp_crt_bundle\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\app_update\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\spi_flash\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bootloader_support\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\nvs_flash\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\pthread\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\xtensa",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\esp32s3",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espcoredump\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espcoredump\\include\\port\\xtensa",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\port\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\esp_supplicant\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\ieee802154\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\console",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\asio\\asio\\asio\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\asio\\port\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\common\\osi\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\include\\esp32c3\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\common\\api\\include\\api",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\common\\btc\\profile\\esp\\blufi\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\common\\btc\\profile\\esp\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\host\\bluedroid\\api\\include\\api",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_common\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_common\\tinycrypt\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core\\storage",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\btc\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\common\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\client\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\server\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api\\core\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api\\models\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\cbor\\port\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\unity\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\unity\\unity\\src",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\cmock\\CMock\\src",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\coap\\port\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\coap\\libcoap\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\nghttp\\port\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\nghttp\\nghttp2\\lib\\includes",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-tls",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-tls\\esp-tls-crypto",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_adc_cal\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hid\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\tcp_transport\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_http_client\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_http_server\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_https_ota\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_https_server\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_lcd\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_lcd\\interface",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\protobuf-c\\protobuf-c",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\common",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\security",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\transports",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\mdns\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_local_ctrl\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\sdmmc\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_serial_slave_link\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_websocket_client\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\expat\\expat\\expat\\lib",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\expat\\port\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\wear_levelling\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\fatfs\\diskio",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\fatfs\\vfs",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\fatfs\\src",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freemodbus\\freemodbus\\common\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\idf_test\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\idf_test\\include\\esp32s3",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\jsmn\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\json\\cJSON",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\libsodium\\libsodium\\src\\libsodium\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\libsodium\\port_include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\mqtt\\esp-mqtt\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\openssl\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\perfmon\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\spiffs\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\usb\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\ulp\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\wifi_provisioning\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\rmaker_common\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_diagnostics\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\rtc_store\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_insights\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\json_parser\\upstream\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\json_parser\\upstream",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\json_generator\\upstream",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_schedule\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp_secure_cert_mgr\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_rainmaker\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\gpio_button\\button\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\qrcode\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\ws2812_led",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freertos\\include\\freertos",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\arduino_tinyusb\\tinyusb\\src",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\arduino_tinyusb\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_littlefs\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\tool",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\typedef",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\image",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\math",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\nn",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\layer",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\detect",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\model_zoo",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp32-camera\\driver\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp32-camera\\conversions\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\dotprod\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\support\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\support\\mem\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\hann\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman_harris\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman_nuttall\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\nuttall\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\flat_top\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\iir\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\fir\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\add\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\sub\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\mul\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\addc\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\mulc\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\sqrt\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\mul\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\add\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\addc\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\mulc\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\sub\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\fft\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\dct\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\conv\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\common\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\mul\\test\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\kalman\\ekf\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\kalman\\ekf_imu13states\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\fb_gfx\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\qio_qspi\\include",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\cores\\esp32",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\variants\\esp32s3",
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\libraries\\BLE\\src",
|
||||
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0",
|
||||
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0\\xtensa-esp32s3-elf",
|
||||
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0\\backward",
|
||||
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\lib\\gcc\\xtensa-esp32s3-elf\\8.4.0\\include",
|
||||
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\lib\\gcc\\xtensa-esp32s3-elf\\8.4.0\\include-fixed",
|
||||
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\sys-include",
|
||||
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include"
|
||||
],
|
||||
"forcedInclude": [
|
||||
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\cores\\esp32\\Arduino.h"
|
||||
],
|
||||
"cStandard": "c11",
|
||||
"cppStandard": "c++11",
|
||||
"defines": [
|
||||
"HAVE_CONFIG_H",
|
||||
"MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"",
|
||||
"UNITY_INCLUDE_CONFIG_H",
|
||||
"WITH_POSIX",
|
||||
"_GNU_SOURCE",
|
||||
"IDF_VER=\"v4.4.7-dirty\"",
|
||||
"ESP_PLATFORM",
|
||||
"_POSIX_READER_WRITER_LOCKS",
|
||||
"F_CPU=240000000L",
|
||||
"ARDUINO=10607",
|
||||
"ARDUINO_ESP32S3_DEV",
|
||||
"ARDUINO_ARCH_ESP32",
|
||||
"ARDUINO_BOARD=\"ESP32S3_DEV\"",
|
||||
"ARDUINO_VARIANT=\"esp32s3\"",
|
||||
"ARDUINO_PARTITION_default",
|
||||
"ESP32",
|
||||
"CORE_DEBUG_LEVEL=0",
|
||||
"ARDUINO_RUNNING_CORE=1",
|
||||
"ARDUINO_EVENT_RUNNING_CORE=1",
|
||||
"ARDUINO_USB_MODE=1",
|
||||
"ARDUINO_USB_CDC_ON_BOOT=0",
|
||||
"ARDUINO_USB_MSC_ON_BOOT=0",
|
||||
"ARDUINO_USB_DFU_ON_BOOT=0",
|
||||
"__DBL_MIN_EXP__=(-1021)",
|
||||
"__FLT32X_MAX_EXP__=1024",
|
||||
"__cpp_attributes=200809",
|
||||
"__UINT_LEAST16_MAX__=0xffff",
|
||||
"__ATOMIC_ACQUIRE=2",
|
||||
"__FLT_MIN__=1.1754943508222875e-38F",
|
||||
"__GCC_IEC_559_COMPLEX=0",
|
||||
"__cpp_aggregate_nsdmi=201304",
|
||||
"__UINT_LEAST8_TYPE__=unsigned char",
|
||||
"__INTMAX_C(c)=c ## LL",
|
||||
"__CHAR_BIT__=8",
|
||||
"__UINT8_MAX__=0xff",
|
||||
"__WINT_MAX__=0xffffffffU",
|
||||
"__FLT32_MIN_EXP__=(-125)",
|
||||
"__cpp_static_assert=200410",
|
||||
"__ORDER_LITTLE_ENDIAN__=1234",
|
||||
"__SIZE_MAX__=0xffffffffU",
|
||||
"__WCHAR_MAX__=0xffff",
|
||||
"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1",
|
||||
"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1",
|
||||
"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1",
|
||||
"__DBL_DENORM_MIN__=double(4.9406564584124654e-324L)",
|
||||
"__GCC_ATOMIC_CHAR_LOCK_FREE=2",
|
||||
"__GCC_IEC_559=0",
|
||||
"__FLT32X_DECIMAL_DIG__=17",
|
||||
"__FLT_EVAL_METHOD__=0",
|
||||
"__cpp_binary_literals=201304",
|
||||
"__FLT64_DECIMAL_DIG__=17",
|
||||
"__GCC_ATOMIC_CHAR32_T_LOCK_FREE=2",
|
||||
"__cpp_variadic_templates=200704",
|
||||
"__UINT_FAST64_MAX__=0xffffffffffffffffULL",
|
||||
"__SIG_ATOMIC_TYPE__=int",
|
||||
"__DBL_MIN_10_EXP__=(-307)",
|
||||
"__FINITE_MATH_ONLY__=0",
|
||||
"__cpp_variable_templates=201304",
|
||||
"__GNUC_PATCHLEVEL__=0",
|
||||
"__FLT32_HAS_DENORM__=1",
|
||||
"__UINT_FAST8_MAX__=0xffffffffU",
|
||||
"__has_include(STR)=__has_include__(STR)",
|
||||
"__DEC64_MAX_EXP__=385",
|
||||
"__INT8_C(c)=c",
|
||||
"__INT_LEAST8_WIDTH__=8",
|
||||
"__UINT_LEAST64_MAX__=0xffffffffffffffffULL",
|
||||
"__SHRT_MAX__=0x7fff",
|
||||
"__LDBL_MAX__=1.7976931348623157e+308L",
|
||||
"__UINT_LEAST8_MAX__=0xff",
|
||||
"__GCC_ATOMIC_BOOL_LOCK_FREE=2",
|
||||
"__UINTMAX_TYPE__=long long unsigned int",
|
||||
"__DEC32_EPSILON__=1E-6DF",
|
||||
"__FLT_EVAL_METHOD_TS_18661_3__=0",
|
||||
"__CHAR_UNSIGNED__=1",
|
||||
"__UINT32_MAX__=0xffffffffU",
|
||||
"__GXX_EXPERIMENTAL_CXX0X__=1",
|
||||
"__LDBL_MAX_EXP__=1024",
|
||||
"__WINT_MIN__=0U",
|
||||
"__INT_LEAST16_WIDTH__=16",
|
||||
"__SCHAR_MAX__=0x7f",
|
||||
"__WCHAR_MIN__=0",
|
||||
"__INT64_C(c)=c ## LL",
|
||||
"__DBL_DIG__=15",
|
||||
"__GCC_ATOMIC_POINTER_LOCK_FREE=2",
|
||||
"__SIZEOF_INT__=4",
|
||||
"__SIZEOF_POINTER__=4",
|
||||
"__GCC_ATOMIC_CHAR16_T_LOCK_FREE=2",
|
||||
"__USER_LABEL_PREFIX__",
|
||||
"__STDC_HOSTED__=1",
|
||||
"__LDBL_HAS_INFINITY__=1",
|
||||
"__XTENSA_EL__=1",
|
||||
"__FLT32_DIG__=6",
|
||||
"__FLT_EPSILON__=1.1920928955078125e-7F",
|
||||
"__GXX_WEAK__=1",
|
||||
"__SHRT_WIDTH__=16",
|
||||
"__LDBL_MIN__=2.2250738585072014e-308L",
|
||||
"__DEC32_MAX__=9.999999E96DF",
|
||||
"__cpp_threadsafe_static_init=200806",
|
||||
"__FLT32X_HAS_INFINITY__=1",
|
||||
"__INT32_MAX__=0x7fffffff",
|
||||
"__INT_WIDTH__=32",
|
||||
"__SIZEOF_LONG__=4",
|
||||
"__UINT16_C(c)=c",
|
||||
"__PTRDIFF_WIDTH__=32",
|
||||
"__DECIMAL_DIG__=17",
|
||||
"__FLT64_EPSILON__=2.2204460492503131e-16F64",
|
||||
"__INTMAX_WIDTH__=64",
|
||||
"__FLT64_MIN_EXP__=(-1021)",
|
||||
"__has_include_next(STR)=__has_include_next__(STR)",
|
||||
"__LDBL_HAS_QUIET_NAN__=1",
|
||||
"__FLT64_MANT_DIG__=53",
|
||||
"__GNUC__=8",
|
||||
"__GXX_RTTI=1",
|
||||
"__cpp_delegating_constructors=200604",
|
||||
"__FLT_HAS_DENORM__=1",
|
||||
"__SIZEOF_LONG_DOUBLE__=8",
|
||||
"__BIGGEST_ALIGNMENT__=16",
|
||||
"__STDC_UTF_16__=1",
|
||||
"__FLT64_MAX_10_EXP__=308",
|
||||
"__FLT32_HAS_INFINITY__=1",
|
||||
"__DBL_MAX__=double(1.7976931348623157e+308L)",
|
||||
"__cpp_raw_strings=200710",
|
||||
"__INT_FAST32_MAX__=0x7fffffff",
|
||||
"__DBL_HAS_INFINITY__=1",
|
||||
"__DEC32_MIN_EXP__=(-94)",
|
||||
"__INTPTR_WIDTH__=32",
|
||||
"__FLT32X_HAS_DENORM__=1",
|
||||
"__INT_FAST16_TYPE__=int",
|
||||
"__LDBL_HAS_DENORM__=1",
|
||||
"__cplusplus=201402L",
|
||||
"__cpp_ref_qualifiers=200710",
|
||||
"__DEC128_MAX__=9.999999999999999999999999999999999E6144DL",
|
||||
"__INT_LEAST32_MAX__=0x7fffffff",
|
||||
"__DEC32_MIN__=1E-95DF",
|
||||
"__DEPRECATED=1",
|
||||
"__cpp_rvalue_references=200610",
|
||||
"__DBL_MAX_EXP__=1024",
|
||||
"__WCHAR_WIDTH__=16",
|
||||
"__FLT32_MAX__=3.4028234663852886e+38F32",
|
||||
"__DEC128_EPSILON__=1E-33DL",
|
||||
"__PTRDIFF_MAX__=0x7fffffff",
|
||||
"__FLT32_HAS_QUIET_NAN__=1",
|
||||
"__GNUG__=8",
|
||||
"__LONG_LONG_MAX__=0x7fffffffffffffffLL",
|
||||
"__SIZEOF_SIZE_T__=4",
|
||||
"__cpp_rvalue_reference=200610",
|
||||
"__cpp_nsdmi=200809",
|
||||
"__SIZEOF_WINT_T__=4",
|
||||
"__LONG_LONG_WIDTH__=64",
|
||||
"__cpp_initializer_lists=200806",
|
||||
"__FLT32_MAX_EXP__=128",
|
||||
"__cpp_hex_float=201603",
|
||||
"__GXX_ABI_VERSION=1013",
|
||||
"__FLT_MIN_EXP__=(-125)",
|
||||
"__cpp_lambdas=200907",
|
||||
"__INT_FAST64_TYPE__=long long int",
|
||||
"__FP_FAST_FMAF=1",
|
||||
"__FLT64_DENORM_MIN__=4.9406564584124654e-324F64",
|
||||
"__DBL_MIN__=double(2.2250738585072014e-308L)",
|
||||
"__FLT32X_EPSILON__=2.2204460492503131e-16F32x",
|
||||
"__FLT64_MIN_10_EXP__=(-307)",
|
||||
"__DEC128_MIN__=1E-6143DL",
|
||||
"__REGISTER_PREFIX__",
|
||||
"__UINT16_MAX__=0xffff",
|
||||
"__DBL_HAS_DENORM__=1",
|
||||
"__FLT32_MIN__=1.1754943508222875e-38F32",
|
||||
"__UINT8_TYPE__=unsigned char",
|
||||
"__NO_INLINE__=1",
|
||||
"__FLT_MANT_DIG__=24",
|
||||
"__LDBL_DECIMAL_DIG__=17",
|
||||
"__VERSION__=\"8.4.0\"",
|
||||
"__UINT64_C(c)=c ## ULL",
|
||||
"__cpp_unicode_characters=200704",
|
||||
"__cpp_decltype_auto=201304",
|
||||
"__GCC_ATOMIC_INT_LOCK_FREE=2",
|
||||
"__FLT32_MANT_DIG__=24",
|
||||
"__FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__",
|
||||
"__SCHAR_WIDTH__=8",
|
||||
"__INT32_C(c)=c",
|
||||
"__DEC64_EPSILON__=1E-15DD",
|
||||
"__ORDER_PDP_ENDIAN__=3412",
|
||||
"__DEC128_MIN_EXP__=(-6142)",
|
||||
"__FLT32_MAX_10_EXP__=38",
|
||||
"__INT_FAST32_TYPE__=int",
|
||||
"__UINT_LEAST16_TYPE__=short unsigned int",
|
||||
"__INT16_MAX__=0x7fff",
|
||||
"__cpp_rtti=199711",
|
||||
"__SIZE_TYPE__=unsigned int",
|
||||
"__UINT64_MAX__=0xffffffffffffffffULL",
|
||||
"__INT8_TYPE__=signed char",
|
||||
"__cpp_digit_separators=201309",
|
||||
"__ELF__=1",
|
||||
"__xtensa__=1",
|
||||
"__FLT_RADIX__=2",
|
||||
"__INT_LEAST16_TYPE__=short int",
|
||||
"__LDBL_EPSILON__=2.2204460492503131e-16L",
|
||||
"__UINTMAX_C(c)=c ## ULL",
|
||||
"__SIG_ATOMIC_MAX__=0x7fffffff",
|
||||
"__GCC_ATOMIC_WCHAR_T_LOCK_FREE=2",
|
||||
"__SIZEOF_PTRDIFF_T__=4",
|
||||
"__FLT32X_MANT_DIG__=53",
|
||||
"__FLT32X_MIN_EXP__=(-1021)",
|
||||
"__DEC32_SUBNORMAL_MIN__=0.000001E-95DF",
|
||||
"__INT_FAST16_MAX__=0x7fffffff",
|
||||
"__FLT64_DIG__=15",
|
||||
"__UINT_FAST32_MAX__=0xffffffffU",
|
||||
"__UINT_LEAST64_TYPE__=long long unsigned int",
|
||||
"__FLT_HAS_QUIET_NAN__=1",
|
||||
"__FLT_MAX_10_EXP__=38",
|
||||
"__LONG_MAX__=0x7fffffffL",
|
||||
"__DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL",
|
||||
"__FLT_HAS_INFINITY__=1",
|
||||
"__cpp_unicode_literals=200710",
|
||||
"__UINT_FAST16_TYPE__=unsigned int",
|
||||
"__DEC64_MAX__=9.999999999999999E384DD",
|
||||
"__INT_FAST32_WIDTH__=32",
|
||||
"__CHAR16_TYPE__=short unsigned int",
|
||||
"__PRAGMA_REDEFINE_EXTNAME=1",
|
||||
"__SIZE_WIDTH__=32",
|
||||
"__INT_LEAST16_MAX__=0x7fff",
|
||||
"__DEC64_MANT_DIG__=16",
|
||||
"__INT64_MAX__=0x7fffffffffffffffLL",
|
||||
"__UINT_LEAST32_MAX__=0xffffffffU",
|
||||
"__FLT32_DENORM_MIN__=1.4012984643248171e-45F32",
|
||||
"__GCC_ATOMIC_LONG_LOCK_FREE=2",
|
||||
"__SIG_ATOMIC_WIDTH__=32",
|
||||
"__INT_LEAST64_TYPE__=long long int",
|
||||
"__INT16_TYPE__=short int",
|
||||
"__INT_LEAST8_TYPE__=signed char",
|
||||
"__DEC32_MAX_EXP__=97",
|
||||
"__INT_FAST8_MAX__=0x7fffffff",
|
||||
"__INTPTR_MAX__=0x7fffffff",
|
||||
"__cpp_sized_deallocation=201309",
|
||||
"__cpp_range_based_for=200907",
|
||||
"__FLT64_HAS_QUIET_NAN__=1",
|
||||
"__FLT32_MIN_10_EXP__=(-37)",
|
||||
"__EXCEPTIONS=1",
|
||||
"__LDBL_MANT_DIG__=53",
|
||||
"__DBL_HAS_QUIET_NAN__=1",
|
||||
"__FLT64_HAS_INFINITY__=1",
|
||||
"__SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)",
|
||||
"__cpp_return_type_deduction=201304",
|
||||
"__INTPTR_TYPE__=int",
|
||||
"__UINT16_TYPE__=short unsigned int",
|
||||
"__WCHAR_TYPE__=short unsigned int",
|
||||
"__SIZEOF_FLOAT__=4",
|
||||
"__UINTPTR_MAX__=0xffffffffU",
|
||||
"__INT_FAST64_WIDTH__=64",
|
||||
"__DEC64_MIN_EXP__=(-382)",
|
||||
"__cpp_decltype=200707",
|
||||
"__FLT32_DECIMAL_DIG__=9",
|
||||
"__INT_FAST64_MAX__=0x7fffffffffffffffLL",
|
||||
"__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1",
|
||||
"__FLT_DIG__=6",
|
||||
"__UINT_FAST64_TYPE__=long long unsigned int",
|
||||
"__INT_MAX__=0x7fffffff",
|
||||
"__INT64_TYPE__=long long int",
|
||||
"__FLT_MAX_EXP__=128",
|
||||
"__DBL_MANT_DIG__=53",
|
||||
"__cpp_inheriting_constructors=201511",
|
||||
"__INT_LEAST64_MAX__=0x7fffffffffffffffLL",
|
||||
"__FP_FAST_FMAF32=1",
|
||||
"__DEC64_MIN__=1E-383DD",
|
||||
"__WINT_TYPE__=unsigned int",
|
||||
"__UINT_LEAST32_TYPE__=unsigned int",
|
||||
"__SIZEOF_SHORT__=2",
|
||||
"__LDBL_MIN_EXP__=(-1021)",
|
||||
"__FLT64_MAX__=1.7976931348623157e+308F64",
|
||||
"__WINT_WIDTH__=32",
|
||||
"__INT_LEAST8_MAX__=0x7f",
|
||||
"__FLT32X_MAX_10_EXP__=308",
|
||||
"__WCHAR_UNSIGNED__=1",
|
||||
"__LDBL_MAX_10_EXP__=308",
|
||||
"__ATOMIC_RELAXED=0",
|
||||
"__DBL_EPSILON__=double(2.2204460492503131e-16L)",
|
||||
"__XTENSA_WINDOWED_ABI__=1",
|
||||
"__UINT8_C(c)=c",
|
||||
"__FLT64_MAX_EXP__=1024",
|
||||
"__INT_LEAST32_TYPE__=int",
|
||||
"__SIZEOF_WCHAR_T__=2",
|
||||
"__INT_FAST8_TYPE__=int",
|
||||
"__GNUC_STDC_INLINE__=1",
|
||||
"__FLT64_HAS_DENORM__=1",
|
||||
"__FLT32_EPSILON__=1.1920928955078125e-7F32",
|
||||
"__DBL_DECIMAL_DIG__=17",
|
||||
"__STDC_UTF_32__=1",
|
||||
"__INT_FAST8_WIDTH__=32",
|
||||
"__DEC_EVAL_METHOD__=2",
|
||||
"__FLT32X_MAX__=1.7976931348623157e+308F32x",
|
||||
"__XTENSA__=1",
|
||||
"__ORDER_BIG_ENDIAN__=4321",
|
||||
"__cpp_runtime_arrays=198712",
|
||||
"__UINT64_TYPE__=long long unsigned int",
|
||||
"__UINT32_C(c)=c ## U",
|
||||
"__INTMAX_MAX__=0x7fffffffffffffffLL",
|
||||
"__cpp_alias_templates=200704",
|
||||
"__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__",
|
||||
"__FLT_DENORM_MIN__=1.4012984643248171e-45F",
|
||||
"__INT8_MAX__=0x7f",
|
||||
"__LONG_WIDTH__=32",
|
||||
"__UINT_FAST32_TYPE__=unsigned int",
|
||||
"__CHAR32_TYPE__=unsigned int",
|
||||
"__FLT_MAX__=3.4028234663852886e+38F",
|
||||
"__cpp_constexpr=201304",
|
||||
"__INT32_TYPE__=int",
|
||||
"__SIZEOF_DOUBLE__=8",
|
||||
"__cpp_exceptions=199711",
|
||||
"__FLT_MIN_10_EXP__=(-37)",
|
||||
"__FLT64_MIN__=2.2250738585072014e-308F64",
|
||||
"__INT_LEAST32_WIDTH__=32",
|
||||
"__INTMAX_TYPE__=long long int",
|
||||
"__DEC128_MAX_EXP__=6145",
|
||||
"__FLT32X_HAS_QUIET_NAN__=1",
|
||||
"__ATOMIC_CONSUME=1",
|
||||
"__GNUC_MINOR__=4",
|
||||
"__INT_FAST16_WIDTH__=32",
|
||||
"__UINTMAX_MAX__=0xffffffffffffffffULL",
|
||||
"__DEC32_MANT_DIG__=7",
|
||||
"__FLT32X_DENORM_MIN__=4.9406564584124654e-324F32x",
|
||||
"__DBL_MAX_10_EXP__=308",
|
||||
"__LDBL_DENORM_MIN__=4.9406564584124654e-324L",
|
||||
"__INT16_C(c)=c",
|
||||
"__cpp_generic_lambdas=201304",
|
||||
"__STDC__=1",
|
||||
"__FLT32X_DIG__=15",
|
||||
"__PTRDIFF_TYPE__=int",
|
||||
"__ATOMIC_SEQ_CST=5",
|
||||
"__UINT32_TYPE__=unsigned int",
|
||||
"__FLT32X_MIN_10_EXP__=(-307)",
|
||||
"__UINTPTR_TYPE__=unsigned int",
|
||||
"__DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD",
|
||||
"__DEC128_MANT_DIG__=34",
|
||||
"__LDBL_MIN_10_EXP__=(-307)",
|
||||
"__SIZEOF_LONG_LONG__=8",
|
||||
"__cpp_user_defined_literals=200809",
|
||||
"__GCC_ATOMIC_LLONG_LOCK_FREE=1",
|
||||
"__FLT32X_MIN__=2.2250738585072014e-308F32x",
|
||||
"__LDBL_DIG__=15",
|
||||
"__FLT_DECIMAL_DIG__=9",
|
||||
"__UINT_FAST16_MAX__=0xffffffffU",
|
||||
"__GCC_ATOMIC_SHORT_LOCK_FREE=2",
|
||||
"__INT_LEAST64_WIDTH__=64",
|
||||
"__UINT_FAST8_TYPE__=unsigned int",
|
||||
"__cpp_init_captures=201304",
|
||||
"__ATOMIC_ACQ_REL=4",
|
||||
"__ATOMIC_RELEASE=3",
|
||||
"USBCON"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
33
code/arduino/bluetoothEsp/bluetoothEsp.ino
Normal file
33
code/arduino/bluetoothEsp/bluetoothEsp.ino
Normal file
@@ -0,0 +1,33 @@
|
||||
#include <BLEDevice.h>
|
||||
#include <BLEServer.h>
|
||||
|
||||
// Define the service UUID
|
||||
#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
|
||||
|
||||
// Define the characteristic UUID
|
||||
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"
|
||||
|
||||
void setup() {
|
||||
// Create a BLE server
|
||||
BLEServer *pServer = BLEDevice::createServer();
|
||||
|
||||
// Create a BLE service
|
||||
BLEService *pService = pServer->createService(SERVICE_UUID);
|
||||
|
||||
// Create a BLE characteristic
|
||||
BLECharacteristic *pCharacteristic = pService->createCharacteristic(
|
||||
CHARACTERISTIC_UUID, BLECharacteristic::PROPERTY_READ);
|
||||
|
||||
// Set the characteristic value
|
||||
pCharacteristic->setValue("Hello, Bluetooth!");
|
||||
|
||||
// Start the service
|
||||
pService->start();
|
||||
|
||||
// Start advertising the service
|
||||
pServer->getAdvertising()->start();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// Nothing to do here
|
||||
}
|
2
code/src/Fitbot/.gitignore
vendored
2
code/src/Fitbot/.gitignore
vendored
@@ -13,5 +13,3 @@
|
||||
.externalNativeBuild
|
||||
.cxx
|
||||
local.properties
|
||||
.idea
|
||||
.vscode
|
17
code/src/Fitbot/.idea/deploymentTargetDropDown.xml
generated
17
code/src/Fitbot/.idea/deploymentTargetDropDown.xml
generated
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetDropDown">
|
||||
<targetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="QUICK_BOOT_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<type value="VIRTUAL_DEVICE_PATH" />
|
||||
<value value="C:\Users\sebas\.android\avd\Pepper_1.9_API_29.avd" />
|
||||
</Key>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</targetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2024-04-26T10:10:48.222593700Z" />
|
||||
</component>
|
||||
</project>
|
@@ -35,11 +35,7 @@ dependencies {
|
||||
implementation 'com.android.support:cardview-v7:28.0.0'
|
||||
implementation 'com.android.support:design:28.0.0'
|
||||
implementation 'org.joml:joml:1.10.5'
|
||||
implementation 'com.google.code.gson:gson:2.8.6'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter'
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter'
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter'
|
||||
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
||||
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
|
||||
implementation 'com.aldebaran:qisdk:1.7.5'
|
||||
|
@@ -7,6 +7,12 @@
|
||||
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||
<uses-feature android:name="android.hardware.bluetooth" android:required="true" />
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
@@ -15,9 +21,6 @@
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.Fitbot" >
|
||||
<activity
|
||||
android:name=".ui.activities.FitnessActivity"
|
||||
android:exported="true" />
|
||||
<activity
|
||||
android:name=".ui.activities.MainActivity"
|
||||
android:exported="true" >
|
||||
|
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
Copyright 2008 Nedim Jackman
|
||||
|
||||
This file is part of Wiiboard Simple
|
||||
|
||||
Wiiboard Simple is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Wiiboard Simple is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with Wiiboard Simple. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.example.fitbot.bluetooth;
|
||||
|
||||
/**
|
||||
* In very basic structure, all bluetooth devices have an address that the connection
|
||||
* is associated with.
|
||||
*/
|
||||
public interface BluetoothDevice {
|
||||
|
||||
/**
|
||||
* The fixed address of the device.
|
||||
* Constant throughout the connection of the device.
|
||||
*/
|
||||
public String getBluetoothAddress();
|
||||
|
||||
}
|
@@ -0,0 +1,133 @@
|
||||
package com.example.fitbot.bluetooth;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothSocket;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.UUID;
|
||||
|
||||
public class BluetoothManager {
|
||||
|
||||
private BluetoothAdapter bluetoothAdapter;
|
||||
private Context context;
|
||||
|
||||
public BluetoothManager(Context context) {
|
||||
this.context = context;
|
||||
this.bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
|
||||
}
|
||||
|
||||
public boolean isBluetoothSupported() {
|
||||
return bluetoothAdapter != null;
|
||||
}
|
||||
|
||||
public boolean isBluetoothEnabled() {
|
||||
return bluetoothAdapter.isEnabled();
|
||||
}
|
||||
|
||||
public void startDiscovery() {
|
||||
if (!isBluetoothEnabled()) {
|
||||
Log.e("BluetoothManager", "Bluetooth is not enabled");
|
||||
return;
|
||||
}
|
||||
|
||||
if (bluetoothAdapter.isDiscovering()) {
|
||||
bluetoothAdapter.cancelDiscovery();
|
||||
Log.d("BluetoothManager", "Cancelling current discovery process...");
|
||||
}
|
||||
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(BluetoothDevice.ACTION_FOUND);
|
||||
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
|
||||
context.registerReceiver(receiver, filter);
|
||||
|
||||
bluetoothAdapter.startDiscovery();
|
||||
Log.d("BluetoothManager", "Starting discovery process...");
|
||||
}
|
||||
|
||||
public final BroadcastReceiver receiver = new BroadcastReceiver() {
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
|
||||
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
|
||||
if (device.getName() != null && device.getName().contains("Nintendo RVL-WBC-01")) {
|
||||
Log.d("BluetoothManager", "Wii Balance Board found: " + device.getName() + " [" + device.getAddress() + "]");
|
||||
connectToDevice(device);
|
||||
}
|
||||
} else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
|
||||
context.unregisterReceiver(this);
|
||||
Log.d("BluetoothManager", "Discovery finished.");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public void connectToDevice(BluetoothDevice device) {
|
||||
new Thread(() -> {
|
||||
BluetoothSocket socket = null;
|
||||
final int MAX_RETRIES = 3;
|
||||
final long RETRY_DELAY_MS = 1000;
|
||||
boolean isConnected = false;
|
||||
|
||||
for (int attempt = 1; attempt <= MAX_RETRIES; attempt++) {
|
||||
try {
|
||||
UUID SPP_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
|
||||
socket = device.createRfcommSocketToServiceRecord(SPP_UUID);
|
||||
bluetoothAdapter.cancelDiscovery();
|
||||
|
||||
byte[] pinBytes = getPinBytes(device.getAddress());
|
||||
try {
|
||||
Method setPinMethod = device.getClass().getDeclaredMethod("setPin", byte[].class);
|
||||
setPinMethod.invoke(device, pinBytes);
|
||||
Log.d("BluetoothManager", "PIN set successfully");
|
||||
} catch (Exception e) {
|
||||
Log.e("BluetoothManager", "Failed to set PIN", e);
|
||||
}
|
||||
|
||||
socket.connect();
|
||||
Log.d("BluetoothManager", "Connected to Wii Balance Board");
|
||||
isConnected = true;
|
||||
break;
|
||||
} catch (IOException e) {
|
||||
Log.e("BluetoothManager", "Connection attempt " + attempt + " failed", e);
|
||||
if (attempt < MAX_RETRIES) {
|
||||
try {
|
||||
Thread.sleep(RETRY_DELAY_MS);
|
||||
} catch (InterruptedException ie) {
|
||||
Thread.currentThread().interrupt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
if (!isConnected && socket != null) {
|
||||
try {
|
||||
socket.close();
|
||||
} catch (IOException ex) {
|
||||
Log.e("BluetoothManager", "Could not close the client socket", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isConnected) {
|
||||
Log.e("BluetoothManager", "All connection attempts failed.");
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
private byte[] getPinBytes(String address) {
|
||||
String[] addrParts = address.split(":");
|
||||
byte[] pin = new byte[addrParts.length];
|
||||
for (int i = 0; i < addrParts.length; i++) {
|
||||
pin[i] = (byte) Integer.parseInt(addrParts[addrParts.length - 1 - i], 16);
|
||||
}
|
||||
Log.i("BluetoothManager", "PIN: " + pin);
|
||||
return pin;
|
||||
}
|
||||
}
|
@@ -1,104 +0,0 @@
|
||||
package com.example.fitbot.exercise;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.example.fitbot.util.path.GesturePath;
|
||||
import com.example.fitbot.util.server.IWebSocketHandler;
|
||||
import com.example.fitbot.util.server.WebSocket;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public abstract class AbstractExercise implements IWebSocketHandler {
|
||||
|
||||
private EMuscleGroup muscleGroup;
|
||||
private GesturePath path;
|
||||
|
||||
// Static fields.
|
||||
private static WebSocket webSocket;
|
||||
private static AbstractExercise currentExercise = null;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor for the AbstractExercise class.
|
||||
*
|
||||
* @param muscleGroup The muscle group of the exercise.
|
||||
* @param path The path of the exercise.
|
||||
*/
|
||||
public AbstractExercise(EMuscleGroup muscleGroup, GesturePath path) {
|
||||
this.muscleGroup = muscleGroup;
|
||||
this.path = path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the exercise.
|
||||
* This method starts a WebSocket server
|
||||
*/
|
||||
public final void startExercise() {
|
||||
|
||||
// Ensure no other exercise is active.
|
||||
if (currentExercise != null && currentExercise != this) {
|
||||
currentExercise.__stopExercise();
|
||||
Log.i("Exercises", "Another exercise was started when another was still running.");
|
||||
}
|
||||
|
||||
// If a WebSocket server is already running, change the event handler to be this class.
|
||||
if (webSocket != null && webSocket.isConnected()) {
|
||||
webSocket.setEventHandler(this);
|
||||
}
|
||||
|
||||
try {
|
||||
webSocket = WebSocket.createServer();
|
||||
Objects.requireNonNull(webSocket, "WebSocket server could not be created.");
|
||||
|
||||
webSocket.startListening();
|
||||
webSocket.setEventHandler(this);
|
||||
currentExercise = this;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method for ending this exercise and returning the grade of the performance
|
||||
* of this activity.
|
||||
*/
|
||||
public final double finishExercise() {
|
||||
this.__stopExercise();
|
||||
|
||||
// TODO: Implement grade calculation
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop the exercise.
|
||||
* This method stops the WebSocket server.
|
||||
*/
|
||||
private void __stopExercise() {
|
||||
if (webSocket != null && webSocket.isConnected()) {
|
||||
webSocket.stop();
|
||||
webSocket = null;
|
||||
}
|
||||
currentExercise = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the current exercise is the current activity.
|
||||
*/
|
||||
public final boolean isCurrentActivity() {
|
||||
return currentExercise == this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the muscle group of the exercise.
|
||||
*/
|
||||
public EMuscleGroup getMuscleGroup() {
|
||||
return muscleGroup;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the path of the exercise.
|
||||
*/
|
||||
public GesturePath getPath() {
|
||||
return path;
|
||||
}
|
||||
}
|
@@ -1,30 +0,0 @@
|
||||
package com.example.fitbot.exercise;
|
||||
|
||||
public enum EMuscleGroup {
|
||||
// TODO: Implement
|
||||
|
||||
TORSO(0),
|
||||
ARMS(1),
|
||||
LEGS(2),
|
||||
BALANCE(3);
|
||||
|
||||
int muscleGroupIdentifier;
|
||||
|
||||
EMuscleGroup(int identifier) {
|
||||
this.muscleGroupIdentifier = identifier;
|
||||
}
|
||||
|
||||
public int getIdentifier() {
|
||||
return this.muscleGroupIdentifier;
|
||||
}
|
||||
|
||||
public static EMuscleGroup parse(int identifier) {
|
||||
for (EMuscleGroup muscleGroup : EMuscleGroup.values()) {
|
||||
if (muscleGroup.getIdentifier() == identifier) {
|
||||
return muscleGroup;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@@ -1,53 +0,0 @@
|
||||
package com.example.fitbot.exercise;
|
||||
|
||||
|
||||
/**
|
||||
* The ExerciseUser class represents a user of the exercise application.
|
||||
* This contains all necessary information of the current user.
|
||||
*/
|
||||
public class ExerciseUser {
|
||||
|
||||
public float upperArmLength;
|
||||
public float lowerArmLength;
|
||||
public float upperLegLength;
|
||||
public float lowerLegLength;
|
||||
public float height;
|
||||
|
||||
/**
|
||||
* Constructor for the ExerciseUser class.
|
||||
* @param upperArmLength The length of the upper arm.
|
||||
* @param lowerArmLength The length of the lower arm.
|
||||
* @param height The height of the user.
|
||||
* @param upperLegLength The length of the upper leg.
|
||||
* @param lowerLegLength The length of the lower leg.
|
||||
*/
|
||||
public ExerciseUser(float upperArmLength, float lowerArmLength, float height, float upperLegLength, float lowerLegLength) {
|
||||
this.upperArmLength = upperArmLength;
|
||||
this.lowerArmLength = lowerArmLength;
|
||||
this.upperLegLength = upperLegLength;
|
||||
this.lowerLegLength = lowerLegLength;
|
||||
this.height = height;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor for the ExerciseUser class.
|
||||
* @param height The height of the user.
|
||||
*/
|
||||
public ExerciseUser(float height) {
|
||||
this.height = height;
|
||||
this.upperArmLength = height * 0.2f;
|
||||
this.lowerArmLength = height * 0.2f;
|
||||
this.upperLegLength = height * 0.3f;
|
||||
this.lowerLegLength = height * 0.3f;
|
||||
}
|
||||
|
||||
/**
|
||||
* Default constructor for the ExerciseUser class.
|
||||
* This sets the default height to 180.0f. (1.80m)
|
||||
*/
|
||||
public ExerciseUser() {
|
||||
this(180.0f);
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,113 +0,0 @@
|
||||
package com.example.fitbot.exercise;
|
||||
|
||||
import com.example.fitbot.util.path.GesturePath;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
|
||||
import org.joml.Vector3f;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
|
||||
public class FitnessManager {
|
||||
|
||||
private static final String HOST_ADDRESS = "http://145.92.8.132";
|
||||
|
||||
private static final String PROPERTY_DESC = "description";
|
||||
private static final String PROPERTY_VECTORS = "vector_data";
|
||||
private static final String PROPERTY_NAME = "name";
|
||||
private static final String PROPERTY_MUSCLE_GROUP = "muscle_group";
|
||||
|
||||
private static String sendHTTP(String url, String method, String contentType, String body) {
|
||||
try {
|
||||
URLConnection connection = new URL(url).openConnection();
|
||||
connection.addRequestProperty("Content-Type", contentType);
|
||||
connection.addRequestProperty("Request-Method", method);
|
||||
connection.getOutputStream().write(body.getBytes());
|
||||
connection.connect();
|
||||
InputStream stream = connection.getInputStream();
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
|
||||
StringBuilder builder = new StringBuilder();
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
builder.append(line);
|
||||
}
|
||||
return builder.toString();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function for retrieving an exercise from the Raspberry Pi Database.
|
||||
*
|
||||
* @param uniqueIdentifier The unique identifier of the exercise
|
||||
* @return The exercise, if it exists on the server. Otherwise null.
|
||||
*/
|
||||
public static <T extends AbstractExercise> AbstractExercise acquireExercise(String uniqueIdentifier, Class<T> referenceClass) {
|
||||
String response = sendHTTP(
|
||||
HOST_ADDRESS + "/acquire", "GET", "application/json", "{\"kind\":\"" + uniqueIdentifier + "\"}"
|
||||
);
|
||||
// Validate the response
|
||||
if (response != null) {
|
||||
try {
|
||||
JsonObject content = JsonParser.parseString(response).getAsJsonObject();
|
||||
Constructor<T> constructor = referenceClass.getConstructor(referenceClass);
|
||||
T instance = null;
|
||||
try {
|
||||
instance = constructor.newInstance(
|
||||
EMuscleGroup.parse(content.get(PROPERTY_MUSCLE_GROUP).getAsInt()),
|
||||
gesturePathFromString(content.get(PROPERTY_VECTORS).getAsString())
|
||||
);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return instance;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function for converting a string to a GesturePath object.
|
||||
* The input string bytes will be directly converted into 3d vectors.
|
||||
* Every coordinate is composed of 32 bits, so four characters per coordinate.
|
||||
*
|
||||
* @param input The string to convert
|
||||
* @return The GesturePath object
|
||||
*/
|
||||
private static GesturePath gesturePathFromString(String input) {
|
||||
byte[] bytes = input.getBytes();
|
||||
|
||||
// Check if the input string contains a valid amount of bytes (12 bytes per vector)
|
||||
if (input.length() % 12 != 0) {
|
||||
throw new IllegalArgumentException("Invalid input string length");
|
||||
}
|
||||
GesturePath.Builder builder = new GesturePath.Builder();
|
||||
|
||||
float[] xyz = new float[3];
|
||||
for (int i = 0; i < bytes.length; i += 12) {
|
||||
for (int j = 0; j < 3; j++) {
|
||||
xyz[j] = Float.intBitsToFloat(
|
||||
(bytes[i + j * 4] & 0xFF) << 24 |
|
||||
(bytes[i + j * 4 + 1] & 0xFF) << 16 |
|
||||
(bytes[i + j * 4 + 2] & 0xFF) << 8 |
|
||||
(bytes[i + j * 4 + 3] & 0xFF)
|
||||
);
|
||||
}
|
||||
builder.addVector(new Vector3f(
|
||||
xyz[0], xyz[1], xyz[2]
|
||||
));
|
||||
}
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,18 @@
|
||||
package com.example.fitbot.sports;
|
||||
|
||||
public enum ESportType {
|
||||
|
||||
FITNESS("Fitness"),
|
||||
POWER("Krachttrening");
|
||||
|
||||
private final String name;
|
||||
|
||||
ESportType(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
}
|
@@ -1,45 +1,93 @@
|
||||
package com.example.fitbot.ui.activities;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.os.Bundle;
|
||||
import android.support.design.widget.NavigationView;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v4.view.GravityCompat;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.support.v7.app.ActionBarDrawerToggle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.Manifest;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.widget.Button;
|
||||
|
||||
import com.example.fitbot.bluetooth.BluetoothDevice;
|
||||
import com.example.fitbot.wiiboard.WiiBoard;
|
||||
import com.example.fitbot.wiiboard.WiiBoardDiscoverer;
|
||||
import com.example.fitbot.wiiboard.WiiBoardDiscoveryListener;
|
||||
import com.example.fitbot.R;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
private static final int REQUEST_LOCATION_PERMISSION = 1;
|
||||
private WiiBoardDiscoverer wiiBoardDiscoverer;
|
||||
|
||||
//Variables
|
||||
DrawerLayout drawerLayout;
|
||||
NavigationView navigationView;
|
||||
Toolbar toolbar;
|
||||
Button startButton;
|
||||
|
||||
@SuppressLint("WrongViewCast")
|
||||
@Override
|
||||
protected void onCreate (Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main );
|
||||
setContentView(R.layout.activity_main);
|
||||
|
||||
// Check if the device supports Bluetooth
|
||||
if (BluetoothAdapter.getDefaultAdapter() == null) {
|
||||
Log.i("WiiBoardDiscoverer", "Device doesn't support Bluetooth. Exiting.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Request location permissions for Bluetooth discovery on Android 6.0 and above
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
|
||||
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION_PERMISSION);
|
||||
} else {
|
||||
// Initialize WiiBoardDiscoverer
|
||||
wiiBoardDiscoverer = new WiiBoardDiscoverer(this);
|
||||
}
|
||||
|
||||
setUpUi();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == REQUEST_LOCATION_PERMISSION && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
// Permission granted, initialize WiiBoardDiscoverer
|
||||
wiiBoardDiscoverer = new WiiBoardDiscoverer(this);
|
||||
} else {
|
||||
// Handle the case where the user denies the location permission
|
||||
Log.i("WiiBoardDiscoverer", "Location permission is required for Bluetooth discovery.");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (wiiBoardDiscoverer != null) {
|
||||
wiiBoardDiscoverer.startWiiBoardSearch();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
if (wiiBoardDiscoverer != null) {
|
||||
wiiBoardDiscoverer.stopWiiBoardSearch();
|
||||
}
|
||||
}
|
||||
|
||||
private void setUpUi() {
|
||||
/*---Hooks---*/
|
||||
drawerLayout = findViewById(R.id.drawer_layout);
|
||||
navigationView = findViewById(R.id.nav_view);
|
||||
toolbar = findViewById(R.id.toolbar);
|
||||
startButton = findViewById(R.id.startButton);
|
||||
|
||||
startButton.setOnClickListener(v -> {
|
||||
// Switch to fitness activity
|
||||
Log.i("MainActivity", "Switching to FitnessActivity");
|
||||
Intent intent = new Intent(MainActivity.this, FitnessActivity.class);
|
||||
startActivity(intent);
|
||||
});
|
||||
|
||||
/*---Tool Bar---*/
|
||||
// setSupportActionBar(toolbar);
|
||||
|
@@ -4,7 +4,6 @@ import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Path;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
|
||||
import com.example.fitbot.util.path.GesturePath;
|
||||
@@ -25,8 +24,6 @@ public class PersonalMotionPreviewElement extends View {
|
||||
private Path referencePath, performingPath;
|
||||
private Paint referencePaint, performingPaint;
|
||||
|
||||
private Paint backgroundColor = new Paint();
|
||||
|
||||
/**
|
||||
* Constants for the preview path projection.
|
||||
*/
|
||||
@@ -45,9 +42,6 @@ public class PersonalMotionPreviewElement extends View {
|
||||
*/
|
||||
public PersonalMotionPreviewElement(Context context, GesturePath path) {
|
||||
super(context);
|
||||
Log.i("PersonalMotionPreviewElement", "Creating new PersonalMotionPreviewElement.");
|
||||
this.backgroundColor = new Paint();
|
||||
this.backgroundColor.setColor(0xFF000000); // Black
|
||||
this.path = path;
|
||||
this.motionProcessor = new MotionProcessor();
|
||||
this.motionProcessor.startListening();
|
||||
@@ -164,7 +158,6 @@ public class PersonalMotionPreviewElement extends View {
|
||||
|
||||
@Override
|
||||
public void onDraw(Canvas canvas) {
|
||||
canvas.drawRect(0, 0, getWidth(), getHeight(), backgroundColor);
|
||||
// Draw the sport preview canvas
|
||||
canvas.drawPath(referencePath, referencePaint);
|
||||
canvas.drawPath(performingPath, performingPaint);
|
||||
|
@@ -10,6 +10,7 @@ public class GesturePath {
|
||||
|
||||
// The vectors that make up the path.
|
||||
private final PathSegment[] segments;
|
||||
private double curvature;
|
||||
|
||||
public GesturePath(Vector3f[] vectors) {
|
||||
this(vectors, 0.0D);
|
||||
@@ -26,6 +27,7 @@ public class GesturePath {
|
||||
if ( vectors.length < 2)
|
||||
throw new IllegalArgumentException("A path must have at least two points.");
|
||||
|
||||
this.curvature = curvature;
|
||||
this.segments = new PathSegment[vectors.length - 1];
|
||||
for ( int i = 0; i < vectors.length - 1; i++)
|
||||
segments[i] = new PathSegment(vectors[i], vectors[i + 1]);
|
||||
@@ -37,6 +39,7 @@ public class GesturePath {
|
||||
*/
|
||||
public GesturePath(PathSegment... segments) {
|
||||
this.segments = segments;
|
||||
this.curvature = 0.0d;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -25,9 +25,10 @@ public class PathSegment {
|
||||
* depending on the curvature of the curve. If the curvature is unset, or set to 0
|
||||
* then this method will use linear interpolation. Otherwise, it will use a curve.
|
||||
*
|
||||
* @param dst The destination vector to interpolate to.
|
||||
* @param t The interpolation value between 0 and 1.
|
||||
*/
|
||||
public Vector3f interpolate(double t) {
|
||||
public Vector3f interpolate(Vector3f dst, double t) {
|
||||
return new Vector3f(this.start)
|
||||
.lerp(this.end, (float) Math.min(1.0F, Math.max(0.0F, t)));
|
||||
}
|
||||
|
@@ -0,0 +1,48 @@
|
||||
package com.example.fitbot.wiiboard;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothSocket;
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class WiiBoard {
|
||||
private static final String TAG = "WiiBoard";
|
||||
|
||||
public static void connectToExtension(String address) {
|
||||
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
|
||||
BluetoothDevice device = bluetoothAdapter.getRemoteDevice(address);
|
||||
BluetoothSocket socket = null;
|
||||
final int maxTries = 3;
|
||||
int currentTry = 0;
|
||||
|
||||
while (currentTry < maxTries) {
|
||||
try {
|
||||
// Use reflection to create a BluetoothSocket without UUID
|
||||
Method m = device.getClass().getMethod("createRfcommSocket", new Class[]{int.class});
|
||||
socket = (BluetoothSocket) m.invoke(device, 1);
|
||||
|
||||
bluetoothAdapter.cancelDiscovery();
|
||||
socket.connect();
|
||||
|
||||
Log.i(TAG, "Connected to WiiBoard");
|
||||
// Handle your communication here
|
||||
|
||||
return; // Exit the method upon successful connection
|
||||
} catch (Exception e) { // Catching Exception to handle reflection exceptions too
|
||||
Log.e(TAG, "Attempt " + (currentTry + 1) + " failed to connect", e);
|
||||
currentTry++;
|
||||
try {
|
||||
// Wait a bit before retrying
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException ie) {
|
||||
Log.e(TAG, "Interrupted while waiting to retry connection", ie);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Log.e(TAG, "Could not connect to WiiBoard after " + maxTries + " attempts.");
|
||||
}
|
||||
}
|
@@ -0,0 +1,66 @@
|
||||
package com.example.fitbot.wiiboard;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.util.Log;
|
||||
|
||||
public class WiiBoardDiscoverer {
|
||||
private BluetoothAdapter bluetoothAdapter;
|
||||
private Context context;
|
||||
private String discoveredAddress;
|
||||
private boolean isSearching;
|
||||
|
||||
private final BroadcastReceiver receiver = new BroadcastReceiver() {
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
|
||||
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
|
||||
String name = device.getName();
|
||||
if ("Nintendo RVL-WBC-01".equals(name)) {
|
||||
discoveredAddress = device.getAddress();
|
||||
Log.i("WiiBoardDiscoverer", "Discovered " + name + " " + discoveredAddress + ".");
|
||||
isSearching = false;
|
||||
bluetoothAdapter.cancelDiscovery();
|
||||
context.unregisterReceiver(this); // Important to unregister
|
||||
WiiBoard.connectToExtension(discoveredAddress);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public WiiBoardDiscoverer(Context context) {
|
||||
this.context = context;
|
||||
this.bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
|
||||
if (bluetoothAdapter == null) {
|
||||
Log.i("WiiBoardDiscoverer", "Device doesn't support Bluetooth. Exiting.");
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
public void startWiiBoardSearch() {
|
||||
if (!isSearching && !bluetoothAdapter.isDiscovering()) {
|
||||
isSearching = true;
|
||||
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
|
||||
context.registerReceiver(receiver, filter);
|
||||
bluetoothAdapter.startDiscovery();
|
||||
Log.i("WiiBoardDiscoverer", "WiiBoard Discovery Started");
|
||||
}
|
||||
}
|
||||
|
||||
public void stopWiiBoardSearch() {
|
||||
if (bluetoothAdapter.isDiscovering()) {
|
||||
bluetoothAdapter.cancelDiscovery();
|
||||
}
|
||||
isSearching = false;
|
||||
try {
|
||||
context.unregisterReceiver(receiver);
|
||||
} catch (IllegalArgumentException e) {
|
||||
// This can happen if the receiver was not registered or already unregistered
|
||||
Log.i("WiiBoardDiscoverer", "Receiver was not registered or already unregistered");
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,13 @@
|
||||
package com.example.fitbot.wiiboard;
|
||||
|
||||
/**
|
||||
* Implement this interface to be notified of WiiBoards that are connected to. Register your
|
||||
* listener with an instance of WiiBoardDiscoverer.
|
||||
*/
|
||||
public interface WiiBoardDiscoveryListener {
|
||||
|
||||
/**
|
||||
* Is called by a WiiBoardDiscoverer when a WiiBoard has been found and successfully connected to.
|
||||
*/
|
||||
public void wiiBoardDiscovered(WiiBoard wiiboard);
|
||||
}
|
@@ -1,25 +1,10 @@
|
||||
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/drawer_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#232323"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context=".ui.activities.FitnessActivity"
|
||||
tools:openDrawer="start">
|
||||
|
||||
<LinearLayout
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.example.fitbot.ui.components.PersonalMotionPreviewElement
|
||||
android:id="@+id/personalMotionPreviewElement"
|
||||
android:visibility="visible"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.v4.widget.DrawerLayout>
|
||||
</android.support.constraint.ConstraintLayout>
|
@@ -1,37 +0,0 @@
|
||||
package com.example.fitbot;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.example.fitbot.util.path.GesturePath;
|
||||
import com.example.fitbot.util.path.PathSegment;
|
||||
|
||||
import org.joml.Vector3f;
|
||||
import org.junit.Test;
|
||||
|
||||
public class PathSegmentTest {
|
||||
|
||||
@Test
|
||||
public void testPathSegment() {
|
||||
// Test the PathSegment class
|
||||
Vector3f[] vectors = new Vector3f[2];
|
||||
vectors[0] = new Vector3f(0, 0, 0);
|
||||
vectors[1] = new Vector3f(1, 1, 1);
|
||||
GesturePath path = new GesturePath(vectors);
|
||||
PathSegment[] segments = path.getSegments();
|
||||
assertEquals(1, segments.length);
|
||||
assertEquals(new Vector3f(0, 0, 0), segments[0].getStart());
|
||||
assertEquals(new Vector3f(1, 1, 1), segments[0].getEnd());
|
||||
assertEquals(new Vector3f(0.5f, 0.5f, 0.5f), segments[0].interpolate(0.5));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void test_pathSegmentInterpolation() {
|
||||
Vector3f start = new Vector3f(0, 0, 0);
|
||||
Vector3f end = new Vector3f(1, 1, 1);
|
||||
PathSegment segment = new PathSegment(start, end);
|
||||
assertEquals(new Vector3f(0.5f, 0.5f, 0.5f), segment.interpolate(0.5));
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,109 +0,0 @@
|
||||
# Java class modifiers
|
||||
|
||||
## How are classes build in java?
|
||||
There are a lot of classes with a lot of parameters
|
||||
|
||||
A class always begins with either the public or default or abstract access modifier. Then comes the class name
|
||||
|
||||
Example:
|
||||
```java
|
||||
public class MyClass {
|
||||
//methods and atributes
|
||||
}
|
||||
|
||||
```
|
||||
Then in a class you can have Methods or Atributes where the actual code is.
|
||||
|
||||
```mermaid
|
||||
flowchart
|
||||
a[Access Modifiers] --> b[class] --> c[Class name]
|
||||
```
|
||||
|
||||
## Constructor
|
||||
A constructor in Java is a special method that is used to initialize objects. The constructor is called when an object of a class is created. It can be used to set initial values for object attributes.
|
||||
|
||||
The constructor Method is the first method that is called when a class is created. It has the same name as the class and no return type. It is automaticly called when a class is created.
|
||||
|
||||
### Methods
|
||||
A method is a block of code which only runs when it is called. You can pass data, known as parameters, into a method. Methods are used to perform certain actions, and they are also known as functions.
|
||||
|
||||
Methods are build like this
|
||||
```mermaid
|
||||
flowchart
|
||||
A[Access Modifiers] --> B[Method Modifier] --> C[Return Type] --> D[Method Name] --> E[Parameters] --> F[Method Body]
|
||||
```
|
||||
|
||||
|
||||
Example:
|
||||
```java
|
||||
public class MyClass {
|
||||
// Method
|
||||
static void myMethod() {
|
||||
// print Hello World!
|
||||
System.out.println("Hello World!");
|
||||
}
|
||||
// Main method
|
||||
//access modifier, Method Modifier, return type, method name, parameters, method body
|
||||
public static void main(String[] args) {
|
||||
// Call the method
|
||||
myMethod();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Atributes
|
||||
Attributes are variables within a class. When an object is created from a class, the object will have these attributes.
|
||||
|
||||
Example:
|
||||
```java
|
||||
public class MyClass {
|
||||
int x = 5;
|
||||
}
|
||||
```
|
||||
|
||||
## Classes
|
||||
### Class modifiers
|
||||
|
||||
#### Non-access modifiers
|
||||
| Modifier | Description | | | |
|
||||
|---|---|---|---|---|
|
||||
| final | The class cannot be inherited by other classes (You will learn more about inheritance in the Inheritance chapter) | | | |
|
||||
| abstract | The class cannot be used to create objects (To access an abstract class, it must be inherited from another class. You will learn more about inheritance and abstraction in the Inheritance and Abstraction chapters) | | | |
|
||||
||||
|
||||
|
||||
#### Access modifiers
|
||||
| Modifier | Description | | | |
|
||||
|---|---|---|---|---|
|
||||
| public | The code is accessible for all classes | | | |
|
||||
| private | The code is only accessible within the declared class | | | |
|
||||
| default | The code is only accessible in the same package. This is used when you don't specify a modifier. You will learn more about packages in the Packages chapter | | | |
|
||||
| protected | The code is accessible in the same package and subclasses. You will learn more about subclasses and superclasses in the Inheritance chapter | | | |
|
||||
| | | | | |
|
||||
|
||||
|
||||
## Methods and attributes
|
||||
#### non access modifiers
|
||||
| Modifier | Description | | | |
|
||||
|---|---|---|---|---|
|
||||
| final | Attributes and methods cannot be overridden/modified | | | |
|
||||
| static | Attributes and methods belongs to the class, rather than an object. You don't really wanna use this one. | | | |
|
||||
| abstract | Can only be used in an abstract class, and can only be used on methods. The method does not have a body, for example abstract void run();. The body is provided by the subclass (inherited from). You will learn more about inheritance and abstraction in the Inheritance and Abstraction chapters | | | |
|
||||
| transient | Attributes and methods are skipped when serializing the object containing them | | | |
|
||||
| synchronized | Methods can only be accessed by one thread at a time | | | |
|
||||
| volatile | The value of an attribute is not cached thread-locally, and is always read from the "main memory" | | | |
|
||||
||||
|
||||
|
||||
#### Access modifiers
|
||||
| Modifier | Description | | | |
|
||||
|---|---|---|---|---|
|
||||
| public | The code is accessible for all classes | | | |
|
||||
| private | The code is only accessible within the declared class | | | |
|
||||
| default | The code is only accessible in the same package. This is used when you don't specify a modifier. You will learn more about packages in the Packages chapter | | | |
|
||||
| protected | The code is accessible in the same package and subclasses. You will learn more about subclasses and superclasses in the Inheritance chapter | | | |
|
||||
| | | | | |
|
||||
|
||||
|
||||
## Sources
|
||||
|
||||
* https://www.w3schools.com/java/java_modifiers.asp
|
141
docs/documentation/diagrams/.$appDiagram.drawio.bkp
Normal file
141
docs/documentation/diagrams/.$appDiagram.drawio.bkp
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 99 KiB |
Binary file not shown.
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 99 KiB |
BIN
docs/documentation/diagrams/assets/appDiagramV2.png
Normal file
BIN
docs/documentation/diagrams/assets/appDiagramV2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 114 KiB |
BIN
docs/documentation/diagrams/assets/appDiagramV3.png
Normal file
BIN
docs/documentation/diagrams/assets/appDiagramV3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
@@ -6,8 +6,8 @@ For this project we want to design an embedded system that can track a users pos
|
||||
|
||||
## Objectives
|
||||
|
||||
- Design an embedded system that can track user position.
|
||||
- Develop an algorithm to process the data from the Wii Fit Board and determine the user's position.
|
||||
* Design an embedded system that can track user position.
|
||||
* Develop an algorithm to process the data from the Wii Fit Board and determine the user's position.
|
||||
|
||||
## Research and Analysis
|
||||
|
||||
@@ -80,10 +80,8 @@ To be added
|
||||
## References
|
||||
|
||||
[Wiiboard lib](https://code.google.com/archive/p/wiiboard-simple/wikis/Documentation.wiki)
|
||||
https://advanti-lab.sb.dfki.de/?page_id=64
|
||||
https://github.com/paulburton/fitscales
|
||||
https://github.com/micromu/WiiRemoteJ
|
||||
|
||||
## Appendices
|
||||
|
||||
To be added
|
||||
[BlueSoil](https://advanti-lab.sb.dfki.de/?page_id=64)
|
||||
[FitScales](https://github.com/paulburton/fitscales)
|
||||
[WiiRemoteJ](https://github.com/micromu/WiiRemoteJ)
|
||||
[Wiibrew Wiimote](https://wiibrew.org/wiki/Wiimote)
|
||||
[Wiibrew Balance Board](https://wiibrew.org/wiki/Wii_Balance_Board)
|
||||
|
@@ -214,17 +214,18 @@ Done
|
||||
|
||||
To do
|
||||
|
||||
-
|
||||
- Wii balance board research
|
||||
- Wii balance board relasation
|
||||
|
||||
Done
|
||||
|
||||
-
|
||||
- Wii balance board research
|
||||
|
||||
**16 May**
|
||||
|
||||
To do
|
||||
|
||||
-
|
||||
- Wii balance board realisation
|
||||
|
||||
Done
|
||||
|
||||
@@ -234,17 +235,30 @@ Done
|
||||
|
||||
To do
|
||||
|
||||
-
|
||||
- Expert review
|
||||
- Update from the last review
|
||||
- Add database
|
||||
- Add new OOP
|
||||
- Add new infrastructure apllication acrhitecture diagram
|
||||
- Add k4 and k5
|
||||
- Wii balance board realisation
|
||||
|
||||
Done
|
||||
|
||||
-
|
||||
- Expert review
|
||||
- Update from the last review
|
||||
- Add database
|
||||
- Add new OOP
|
||||
- Add new infrastructure apllication acrhitecture diagram
|
||||
- Add k4 and k5
|
||||
- Wii balance board realisation = LDR sensor
|
||||
|
||||
**18 May**
|
||||
|
||||
To do
|
||||
|
||||
-
|
||||
- LDR sensor
|
||||
- Ethics research
|
||||
|
||||
Done
|
||||
|
||||
|
@@ -1,165 +1,234 @@
|
||||
# Expert 2 Sprint 2
|
||||
|
||||
# User Testing
|
||||
---
|
||||
|
||||
## Table of Contents
|
||||
## K1: Je hebt object georiënteerde software gemaakt die samenwerkt met een database.
|
||||
|
||||
Voor het maken van object georiënteerde software die samenwerkt met een database maak ik gebruik van Java, NodeJs, phpMyAdmin en MariaDB.
|
||||
|
||||
### Database
|
||||
|
||||
## Introduction
|
||||
De database voor FitBot (ons project) zal dienen als opslag van de oefeningen die wij willen gebruiken. De database zelf zal niet uitgebreid zijn sinds wij inprincipe geen data op te hoefen slaan. De uitdaging van de database zal liggen bij het verbinden van de app en de database.
|
||||
|
||||
This is a user test document for the occupation page. The occupation page allows users to view the occupation of the silent booth.
|
||||
#### Apache en phpMyAdmin
|
||||
|
||||
Apache is een webserver die wordt gebruikt om websites te hosten. phpMyAdmin is een webapplicatie die wordt gebruikt om databases te beheren. Wij maken gebruik van Apache en phpMyAdmin om de database visueel te kunnen beheren. Apache dient als de server waar phpMyAdmin op draait, deze configuratie dient alleen voor het gemak van ons team.
|
||||
|
||||
##### MariaDB
|
||||
|
||||
MariaDB is een open-source database die vrij gemakelijk is om op te zetten. MariaDB dient als onze database om de oefeningen in op te slaan.
|
||||
|
||||
##### NodeJs
|
||||
|
||||
NodeJs wordt gebruikt om server-side scripting te doen. Wij maken gebruik van NodeJs om de app te verbinden met de database en om de oefeningen op te halen.
|
||||
|
||||
NodeJs is geinstalleerd op de Pi maar moet nog wel verder worden opgezet.
|
||||
|
||||
#### ERD
|
||||
|
||||
Een ERD (Entity Relationship Diagram) is een diagram dat de relaties tussen de entiteiten in een database weergeeft.
|
||||
|
||||
Meer informatie over de ERD is te vinden in de [ERD](../../../documentation/database/ERD.md) documentatie.
|
||||
|
||||
#### EERD
|
||||
|
||||
Een EERD (Entity Enhanced Relationship Diagram) is een diagram dat de relaties tussen de entiteiten in een database weergeeft. Het verschil tussen een ERD en een EERD is dat een EERD meer informatie bevat over de entiteiten en de relaties tussen de entiteiten zoals primary keys, foreign keys, enz.
|
||||
|
||||
Meer informatie over de ERD is te vinden in de [EERD](../../../documentation/database/EERD.md) documentatie.
|
||||
|
||||
### OOP
|
||||
|
||||
Object Oriented Programming is een programmeermethode dat gebruik maakt van objecten en classes. Het doel van OOP is om de code beter te structureren en te hergebruiken. Omdat wij gebruik maken van java voor het maken van de software, is het makkelijk om gebruik te maken van OOP. Java is een object georiënteerde programmeertaal en maakt het makkelijk om gebruik te maken van OOP sinds het een van de belangrijkste concepten is van Java.
|
||||
|
||||
#### Inheritance
|
||||
|
||||
Inheritance is een princiepe waarbij een nieuwe class wordt gemaakt met behulp van eigenschappen van een bestaande class. De nieuwe class wordt afgeleid van de bestaande class.
|
||||
|
||||
Voorbeeld: Een olifant is een dier. Een olifant heeft alle eigenschappen van een dier, zoals ademhalen, eten, slapen, enz. Een olifant heeft ook enkele specifieke eigenschappen, zoals grootte, gewicht, slurf, enz.
|
||||
|
||||
Use case:
|
||||
|
||||
```java
|
||||
|
||||
public class MainActivity extends RobotActivity implements RobotLifecycleCallbacks {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
// Register the RobotLifecycleCallbacks to this Activity.
|
||||
QiSDK.register(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
// Unregister the RobotLifecycleCallbacks for this Activity.
|
||||
QiSDK.unregister(this, this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRobotFocusGained(QiContext qiContext) {
|
||||
// The robot focus is gained.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRobotFocusLost() {
|
||||
// The robot focus is lost.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRobotFocusRefused(String reason) {
|
||||
// The robot focus is refused.
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
De MainActivity class erft van RobotActivity, dit zorgt ervoor dat MainActivity properties en methods kan gebruiken van RobotActivity.
|
||||
|
||||
#### Abstraction
|
||||
|
||||
Abstraction is een princiepe om de complexiteit van een object te verbergen en alleen de nodige kenmerken weer te geven.
|
||||
|
||||
Voorbeeld: Een auto bestaat uit verschillende onderdelen, zoals motor, versnellingsbak, wielen, enz. Maar we hoeven niet te weten hoe deze onderdelen werken om een auto te besturen. We moeten alleen weten hoe we de auto moeten besturen, zoals hoe we gas moeten geven, remmen, sturen, enz.
|
||||
|
||||
Use case:
|
||||
|
||||
```java
|
||||
|
||||
@Override
|
||||
protected void onCreate (Bundle savedInstanceState) {
|
||||
setUpUi();
|
||||
}
|
||||
|
||||
private void setUpUi() {
|
||||
/*---Hooks---*/
|
||||
drawerLayout = findViewById(R.id.drawer_layout);
|
||||
navigationView = findViewById(R.id.nav_view);
|
||||
|
||||
/*---Navigation Drawer Menu---*/
|
||||
navigationView.bringToFront();
|
||||
|
||||
ActionBarDrawerToggle toggle=new
|
||||
ActionBarDrawerToggle(this,drawerLayout,toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
|
||||
drawerLayout.addDrawerListener(toggle);
|
||||
toggle.syncState();
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
In de method `onCreate` wordt de method `setUpUi` aangeroepen. De gebruiker hoeft niet te weten hoe de method `setUpUi` werkt, maar kan deze gewoon gebruiken.
|
||||
|
||||
#### Encapsulation
|
||||
|
||||
Encapsulation is een princiepe om de interne gegevens van een object te verbergen en alleen toegang te geven via methods.
|
||||
|
||||
Voorbeeld: Een bank heeft verschillende methods om geld te storten, geld op te nemen, saldo te controleren, enz. We kunnen niet rechtstreeks toegang krijgen tot de interne gegevens van de bank, zoals de balans, de rekeningnummers, enz. We moeten de methods van de bank gebruiken om deze gegevens te krijgen.
|
||||
|
||||
Use case:
|
||||
|
||||
```java
|
||||
|
||||
To be added
|
||||
|
||||
```
|
||||
|
||||
Op dit moment is er nog geen gebruik gemaakt van encapsulation.
|
||||
|
||||
#### Polymorphism
|
||||
|
||||
Polymorfism is een princiepe waarmee een class verschillende vormen kan hebben. Het kan worden bereikt door methods te hebben met dezelfde naam, maar met verschillende parameters.
|
||||
|
||||
Voorbeeld: Een dier kan verschillende geluiden maken, zoals een hond kan blaffen, een kat kan miauwen, enz. Maar we kunnen een algemene method maken die `makeSound` heet en deze method in de dierclass implementeren. De hondclass kan deze method overschrijven en blaffen implementeren, en de katclass kan deze method overschrijven en miauwen implementeren.
|
||||
|
||||
Use case:
|
||||
|
||||
```java
|
||||
|
||||
To be added
|
||||
|
||||
```
|
||||
|
||||
Op dit moment is er nog geen gebruik gemaakt van polymorphism.
|
||||
|
||||
---
|
||||
|
||||
## ISO
|
||||
## K2: Je hebt de wensen en behoeften van gebruikers verwerkt in een goed doordacht prototype.
|
||||
|
||||
For testing user experience, the ISO (International Standard Organization) definition of quality in use is used.
|
||||
De wensen en behoeften van de gebruikers zijn op dit moment nog niet verwerkt in een prototype. Dit is omdat er nog niet genoeg informatie hebben over de wensen en behoeften van de gebruikers. In sprint 2 zal er een prototype worden gemaakt waarin de wensen en behoeften van de gebruikers zijn verwerkt.
|
||||
|
||||
“Quality in use is the degree to which a product or system can be used by specific users to meet their needs to achieve specific goals with effectiveness, efficiency, freedom from risk and satisfaction in specific contexts of use.”
|
||||
De manier waarop ik de wensen en behoeften van de gebruikers wil gaan verwerken in het prototype is door middel van Test/Learning cards. Dit is een manier om de gebruikerservaring te testen en te verbeteren.
|
||||
|
||||
---
|
||||
|
||||
### Effectiveness
|
||||
### ISO
|
||||
|
||||
#### Test Card
|
||||
Voor het testen van de gebruikerservaring wordt de ISO (International Standard Organization) definitie van kwaliteit in gebruik gebruikt.
|
||||
|
||||
Hypothesis: I think the page is very effective because it is easy to use and the user can easily find the information they are looking for.
|
||||
Test: Ask the user to find the last use of the a silent booth.
|
||||
Metrics: How long does it take for the user to find the information?
|
||||
Criteria: The user should be able to find the information within 10 seconds.
|
||||
“Qualiteit in gebruik is de mate waarin een product of systeem door specifieke gebruikers kan worden gebruikt om aan hun behoeften te voldoen om specifieke doelen te bereiken met effectiviteit, efficiëntie, vrijheid van risico en tevredenheid in specifieke gebruiksomstandigheden.”
|
||||
|
||||
#### Results
|
||||
#### Effectiviteit
|
||||
|
||||
Harrald: The user was able to find the information within 10 seconds.
|
||||
Olivier: The user was able to find the information within 10 seconds.
|
||||
Sietse: The user was able to find the information within 10 seconds.
|
||||
Dano: The user was able to find the information within 10 seconds.
|
||||
Bram: The user was able to find the information within 10 seconds.
|
||||
Effectiviteit is de mate waarin gebruikers specifieke doelen kunnen bereiken met nauwkeurigheid en volledigheid.
|
||||
|
||||
#### Learning Card
|
||||
##### Test Card
|
||||
|
||||
Hypothesis: I think the page is very effective because it is easy to use and the user can easily find the information they are looking for.
|
||||
Observation: The user was able to find the information within 10 seconds.
|
||||
Learning point & insight: The page is effective.
|
||||
Advice: None
|
||||
In de test card wordt de test beschreven die wordt uitgevoerd. De test card bestaat uit de volgende onderdelen:
|
||||
|
||||
Hypothese:
|
||||
Test:
|
||||
Meetmethode:
|
||||
Criteria:
|
||||
|
||||
##### Resulaat
|
||||
|
||||
In `Resultaat` worden de resultaten van de test beschreven. De resultaten worden beschreven aan de hand van de hypothese, test, meetmethode en criteria.
|
||||
|
||||
##### Learning Card
|
||||
|
||||
In de learning card wordt beschreven wat er is geleerd van de test. De learning card bestaat uit de volgende onderdelen:
|
||||
|
||||
Hypothese:
|
||||
Observatie:
|
||||
Leerpunt en inzicht:
|
||||
Advies:
|
||||
|
||||
---
|
||||
|
||||
### Efficiency
|
||||
|
||||
#### Test Card
|
||||
|
||||
Hypothesis: I think the efficiency of the page can be improved beacuse there is a lot of text on the page.
|
||||
Test: Ask the user to find a cretain time and day on the heatmap of the silent booth.
|
||||
Metrics: How long does it take for the user to understand the heatmap? How many clicks does the user need to understand the heatmap?
|
||||
Criteria: The user should be able to understand the heatmap within 30 seconds and with a maximum of 3 clicks.
|
||||
|
||||
#### Results
|
||||
|
||||
Harrald: The user was able to understand the heatmap within 30 seconds and 3 clicks.
|
||||
Olivier: The user was able to understand the heatmap within 30 seconds and 3 clicks.
|
||||
Sietse: The user was not able to understand the heatmap within 30 seconds and 3 clicks.
|
||||
Dano: The user was able to understand the heatmap within 30 seconds and 3 clicks.
|
||||
Bram: The user was not able to understand the heatmap within 30 seconds and 3 clicks.
|
||||
|
||||
#### Learning Card
|
||||
|
||||
Hypothesis: I think the efficiency of the page can be improved beacuse there is a lot of text on the page.
|
||||
Observation: Some users could not find the history. Most user found the legenda confusing.
|
||||
Learning point & insight: Imrpove the legenda and make the history more visible.
|
||||
Advice: Make the history a button and make the legenda more clear. Less text should be needed to understand the heatmap.
|
||||
De effectiviteit en tevredenheid worden op gelijke manieren getest. Zodra de test is uitgevoerd en de resultaten zijn geanalyseerd, wordt er een learning card gemaakt. In de learning card wordt beschreven wat er is geleerd van de test en wat er kan worden verbeterd. Na alle resultaten te hebben geanalyseerd, wordt er een prototype gemaakt waarin de wensen en behoeften van de gebruikers zijn verwerkt.
|
||||
|
||||
---
|
||||
|
||||
### Satisfaction
|
||||
## K3: Je hebt een infrastructuur ontworpen en gebouwd volgens zelf-gedefinieerde vereisten.
|
||||
|
||||
#### Test Card
|
||||
De infrastructuur voor FitBot (ons project) bestaat uit een database, een server en een app. De database wordt gebruikt om de oefeningen in op te slaan, de server wordt gebruikt om de app te verbinden met de database en de app wordt gebruikt om de oefeningen op te halen.
|
||||
|
||||
Hypothesis: I think the satisfaction of the page can be improved because the page is not very attractive.
|
||||
Test: Ask the user to give their opinion on the page (this will be done in a form).
|
||||
Metrics: What is the user's opinion on the page?
|
||||
Criteria: The user should give a opinion on the page.
|
||||
### Diagrams
|
||||
|
||||
#### Participants
|
||||
De infrastructuur van FitBot is weergegeven in de volgende diagrammen:
|
||||
|
||||
- Harrald
|
||||
- Olivier
|
||||
- Sietse
|
||||
- Dano
|
||||
- Bram
|
||||
Architecture diagram
|
||||
|
||||
#### Questions and Results
|
||||

|
||||
|
||||
1. **What is your first impression of the page?**
|
||||
Architecture diagram v2
|
||||
|
||||
Harrald: Duidelijk en overzichtelijk.
|
||||

|
||||
|
||||
Olivier: Simpel.
|
||||
Deployment diagram
|
||||
|
||||
Sietse: Ziet er prima uit, goed overzichtelijk.
|
||||

|
||||
|
||||
Dano: Ziet er strak uit, minimalisties design en duidelijk waar het over ging.
|
||||
## K4: Je ontwerpt een embedded systeem op basis van gegeven hardware.
|
||||
|
||||
Bram: Eerste pagina was relatief duidelijk, alleen de history pagina was ietwat lastig te overzien en te veel gevuld met tekst met uitleg in plaats van voorbeelden, verder goed uitgewerkt.
|
||||
Voor het embed systeem van FibBot is de volgende research gedaan om de positie van een gebruiker te kunnen tracken:
|
||||
|
||||
2. **Is the information on the page clear?**
|
||||
|
||||
Harrald: Prima.
|
||||
|
||||
Olivier: Ja, last update zou last use moeten zijn.
|
||||
|
||||
Sietse: Ja.
|
||||
|
||||
Dano: Ja, er staat kort en bondig waar het over gaat.
|
||||
|
||||
Bram: Na wat moeite met het overzicht was het goed beschikbaar.
|
||||
|
||||
3. **Is the history easy to find?**
|
||||
|
||||
Harrald: Ja.
|
||||
|
||||
Olivier: Ja heel duidelijk.
|
||||
|
||||
Sietse: Ja behalve dat je niet super snel ziet dat het een knop is.
|
||||
|
||||
Dano: Ja, fijn dat er een feedback kwam toen de muis er overheen ging
|
||||
|
||||
Bram: Jazeker, alleen inplaats van een knop er voor zou ik op het vakje zelf klikken in plaats van het tekstje.
|
||||
|
||||
4. **Is the history easy to understand?**
|
||||
|
||||
Harrald: Even wennen, uitlijning kan duidelijker en tijden niet schuin.
|
||||
|
||||
Olivier: Ja alleen wel veel kleur door elkaar.
|
||||
|
||||
Sietse: Na een uitleg wel, maar wat de waardes zelf betekenen is een beetje onduidelijk.
|
||||
|
||||
Dano: Het kan beter, beetje onduidelijk waar de tijd bij hoordt.
|
||||
|
||||
Bram: Net iets te lastig, persoonlijk.
|
||||
|
||||
5. **Do you miss any features on the page?**
|
||||
|
||||
Harrald: Nee.
|
||||
|
||||
Olivier: Nee.
|
||||
|
||||
Sietse: Het is moeilijk te zien wat booth 1 of 2 is.
|
||||
|
||||
Dano: Nee.
|
||||
|
||||
Bram: Niet dat ik zou weten.
|
||||
|
||||
#### Learning Card
|
||||
|
||||
Hypothesis: I think the satisfaction of the page can be improved because the page is not very attractive.
|
||||
Observation: All users gave a positive opinion on the page.
|
||||
Learning point & insight: The page is attractive because it is clear and easy to use. The heatmap can be improved.
|
||||
Advice: Improve the heatmap and make the history a button.
|
||||
[Wii Board](../../../documentation/research-questions/position-tracking-research.md)
|
||||
|
||||
---
|
||||
|
||||
## Conclusion
|
||||
## K5: Je kan software schrijven voor een intelligente controller voorzien van actuatoren en sensoren.
|
||||
|
||||
The occupation page is effective, efficient and satisfying. The page is easy to use and the user can easily find the information they are looking for. The efficiency of the page can be improved by making the legenda more clear and the history more visible. The satisfaction of the page can be improved by improving the heatmap and making the history a button.
|
||||
Voor het schrijven van software voor een intelligente controller voorzien van actuatoren en sensoren ben ik begonnen met het schrijven van software voor het Wii Balance Board. Het Wii Balance Board is een controller die wordt gebruikt om de positie van een gebruiker te tracken. De software die ik aan het schrijven ben verbind de android app met een Wii Balance Board en trackt de positie van de gebruiker.
|
||||
|
||||
Op dit moment kan het device nog niet worden verbonden met de app. Het is mogelijk om het board te discoveren maar de verbinding kan nog niet gemaakt worden.
|
||||
|
@@ -6,91 +6,51 @@
|
||||
- [Probleemstelling](#probleemstelling)
|
||||
- [Onderzoeksvraag](#onderzoeksvraag)
|
||||
* [Deelvragen](#deelvragen)
|
||||
+ [Vraag 1](#vraag-1)
|
||||
+ [Vraag 2](#vraag-2)
|
||||
+ [Vraag 3](#vraag-3)
|
||||
+ [Vraag 4](#vraag-4)
|
||||
+ [Hoe ervaren ouderen het om geholpen te worden door robots bij fitness?](#hoe-ervaren-ouderen-het-om-geholpen-te-worden-door-robots-bij-fitness)
|
||||
+ [Wat kunnen nadelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?](#wat-kunnen-nadelen-zijn-van-het-inzetten-van-robots-in-de-ouderenzorg-wat-fitness-betreft)
|
||||
+ [Wat kunnen voordelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?](#wat-kunnen-voordelen-zijn-van-het-inzetten-van-robots-in-de-ouderenzorg-wat-fitness-betreft)
|
||||
+ [Wat is het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft?](#wat-is-het-limiet-van-de-inzet-van-robots-in-de-zorg-voor-ouderen-wat-fitness-betreft)
|
||||
- [Conclusie](#conclusie)
|
||||
- [Bronnen](#bronnen)
|
||||
|
||||
## Inleiding
|
||||
|
||||
In dit onderzoek wordt er gekeken naar de ethische kant van het inzetten van robots in de ouderenzorg om ouderen te helpen met fitness. Hierbij wordt er gekeken naar de ervaing van ouderen, de voor en nadelen van het inzetten van robots en het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft.
|
||||
Ouderzorg is in deze tijd een belangrijk onderwerp. Door de vergrijzing van de bevolking neemt de vraag naar zorg toe. Tegelijkertijd is er een tekort aan zorgpersoneel. De zorg die ouderen nodig hebben kan variëren van lichte zorg tot zware zorg. Een manier om ouderen te helpen met zorg is het inzetten van robots. Robots kunnen ouderen helpen met verschillende taken, zoals bijvoorbeeld helpen met fitness. De hulp bij het fitnessen kan ervoor zorgen dat ouderen langer fit blijven en langer zelfstandig kunnen blijven wonen.
|
||||
|
||||
## Probleemstelling
|
||||
|
||||
Het inzetten van robots in de ouderenzorg om ouderen te helpen met fitness kan een oplossing zijn voor het tekort aan personeel in de zorg. Echter kan het ook een negatieve impact hebben op de ouderen. In dit onderzoek wordt er gekeken naar de ethische kant van het inzetten van robots in de ouderenzorg om ouderen te helpen met fitness.
|
||||
Het inzetten van robots in de ouderenzorg kan echter ook ethische vragen oproepen. Hoe ervaren ouderen het om geholpen te worden door robots? Wat zijn de nadelen van het inzetten van robots in de ouderenzorg? Wat zijn de voordelen? En wat is het limiet van de inzet van robots in de zorg voor ouderen? In dit onderzoek wordt gekeken naar de ethische aspecten van het inzetten van robots in de ouderenzorg om ouderen te helpen met fitness.
|
||||
|
||||
## Onderzoeksvraag
|
||||
|
||||
Hoofdvraag: In hoeverre is het etisch verantwoord om robots in te zetten in de ouderenzorg om ouderen te helpen met fitness?
|
||||
### Hoofdvraag
|
||||
|
||||
In hoeverre is het etisch verantwoord om robots in te zetten in de ouderenzorg om ouderen te helpen met fitness?
|
||||
|
||||
### Deelvragen
|
||||
|
||||
Deelvragen:
|
||||
1. Hoe ervaren ouderen het om geholpen te worden door robots bij fitness?
|
||||
2. Wat kunnen nadelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
|
||||
3. Wat kunnen voordelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
|
||||
4. Wat is het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft?
|
||||
|
||||
1. Hoe ervaren ouderen het om geholpen te worden door robots bij fitness?
|
||||
2. Wat kunnen nadelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
|
||||
3. Wat kunnen voordelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
|
||||
4. Wat is het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft?
|
||||
|
||||
#### Vraag 1
|
||||
|
||||
Hoe ervaren ouderen het om geholpen te worden door robots bij fitness?
|
||||
#### Hoe ervaren ouderen het om geholpen te worden door robots bij fitness?
|
||||
|
||||
De ervaring van ouderen die geholpen worden door robots bij fitness is een belanrijk aspect van het inzetten bij robots in de ouderenzorg wat fitness betreft. Het is belangrijk dat ouderen zich op hun gemak voelen bij het gebruik van robots. Uit onderzoek blijkt dat ouderen in het algemeen positief staan tegenover het gebruik van robots in de ouderenzorg. `The interviews provide a number of conclusions, such as: the elderly had positive attitudes toward humanoid robots and electronic devices whose shapes resembled things they knew (humans, animals, smartphones, healthcare equipment)` en `The 16 older adults in our study were generally accepting of robots for partner dance-based exercise, tending to perceive it as useful, easy to use, and enjoyable. Notably, participants perceived the robot as being easier to use after dancing with it. These results suggest that older adults are open to partner dancing with a robot to improve their health.`.
|
||||
|
||||
Niet alle ouderen zijn even positief over het gebruik van robots in de ouderenzorg. Sommige ouderen vinden het gebruik van robots in de ouderenzorg niet prettig. `However, some participants were not positive about the robot in terms of exercise and health, finding the activity to be too easy, boring, or lacking in physical exertion.`. Hier uit blijkt wel dat het mogelijk zou kunnen zijn voor deze ouderen om gebruik te maken van robots in de ouderenzorg, maar dat er nog wel verbeteringen nodig zijn. Een aantal verbeteringen die genoemd worden zijn `Participants suggested that a robot could actively encourage them to exercise and teach them dances.` en `Future robots for partner dance-based exercise could potentially be more engaging by increasing the complexity and variety of dances.`. Ook wordt er aangegeven dat er voorkeur is naar een robot die `voice-activated, a motion-activated and touch responsive robot with nice voices/sounds.`.
|
||||
|
||||
Bronnen:
|
||||
|
||||
Designing Robots for Elderly from the Perspective of Potential End-Users: A Sociological Approach (Vraag 1):
|
||||
|
||||
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_pubmedcentral_primary_oai_pubmedcentral_nih_gov_8948980&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl&search_scope=DN_and_CI_and_EXT&adaptor=Primo%20Central&tab=Everything&query=any,contains,fitness%20robots%20elderly&offset=0
|
||||
|
||||
Older adults' acceptance of a robot for partner dance-based exercise (Vraag 1):
|
||||
|
||||
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_gale_healthsolutions_A510237592&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl&search_scope=DN_and_CI_and_EXT&adaptor=Primo%20Central&tab=Everything&query=any,contains,fitness%20robots%20elderly&offset=0
|
||||
|
||||
#### Vraag 2
|
||||
|
||||
Wat kunnen nadelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
|
||||
#### Wat kunnen nadelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
|
||||
|
||||
|
||||
|
||||
Bronnen:
|
||||
|
||||
A Socially Assistive Robot for Elderly Exercise Promotion (Vraag 2-3):
|
||||
|
||||
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_proquest_journals_2455606148&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl&search_scope=DN_and_CI_and_EXT&adaptor=Primo%20Central&tab=Everything&query=any,contains,fitness%20robots%20elderly&offset=0
|
||||
|
||||
#### Vraag 3
|
||||
|
||||
Wat kunnen voordelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
|
||||
#### Wat kunnen voordelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
|
||||
|
||||
|
||||
|
||||
Bronnen:
|
||||
|
||||
A Socially Assistive Robot for Elderly Exercise Promotion (Vraag 2-3):
|
||||
|
||||
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_proquest_journals_2455606148&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl&search_scope=DN_and_CI_and_EXT&adaptor=Primo%20Central&tab=Everything&query=any,contains,fitness%20robots%20elderly&offset=0
|
||||
|
||||
#### Vraag 4
|
||||
|
||||
Wat is het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft?
|
||||
#### Wat is het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft?
|
||||
|
||||
|
||||
|
||||
Bronnen:
|
||||
|
||||
Robot-assisted movement training for the stroke-impaired arm: Does it matter what the robot does (Vraag 4)?
|
||||
|
||||
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_proquest_miscellaneous_68177256&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl&search_scope=DN_and_CI_and_EXT&adaptor=Primo%20Central&tab=Everything&query=any,contains,limit%20robot%20fitness&offset=0
|
||||
|
||||
The Image Processing Using Soft Robot Technology in Fitness Motion Detection under the Internet of Things (Vraag 4):
|
||||
|
||||
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_proquest_journals_2734392799&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl
|
||||
|
||||
## Conclusie
|
||||
|
||||
|
Reference in New Issue
Block a user