From 747e65d528f617e416e1dc99d9ec165a377c6347 Mon Sep 17 00:00:00 2001 From: Alberto Casas Ortiz Date: Tue, 10 Dec 2024 10:21:44 -0800 Subject: [PATCH 01/11] Fixes #369. Selected trial is selected by default in kinematics dashboard. --- src/components/pages/Dashboard.vue | 54 +++++++++++++++++------------- src/components/pages/Session.vue | 2 +- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/src/components/pages/Dashboard.vue b/src/components/pages/Dashboard.vue index 98cbe132..d44dba47 100644 --- a/src/components/pages/Dashboard.vue +++ b/src/components/pages/Dashboard.vue @@ -189,20 +189,7 @@ export default { }, // This function is executed once the page has been loaded. created: function () { - // Indicates if the current logged in user owns the session. - this.session_owned = false - // If the user is logged in, select session from list of sessions. - if(this.loggedIn) { - // If a session id has been passed as a parameter, set it as the default session. - this.sessionsIds.forEach(sessionId => { - if (sessionId.includes(this.$route.params.id)) { - this.session_selected = sessionId; - this.onSessionSelected(this.session_selected); - this.session_owned = true - } - }); - } }, methods: { ...mapActions('data', ['loadSession']), @@ -521,6 +508,7 @@ export default { return { current_session_id: "", session_selected: "", + session_owned: false, trial_selected: "", trial_names: [], trial_ids: [], @@ -651,7 +639,6 @@ export default { return value !== ""; }); return filtered_sessions; - }, sessionsIds() { var result_sessions = this.sessions.map(function (obj) { @@ -677,14 +664,32 @@ export default { } }, async mounted () { - // Set session as current session. - this.current_session_id = this.$route.params.id; - // Show spinner and hide chart until finished. - document.getElementById("spinner-layer").style.display = "block"; - document.getElementById("chart").style.display = "None"; + // Set session as current session. + this.current_session_id = this.$route.params.id; - // If not logged in, load session from params and show trials. - await this.loadSession(this.$route.params.id) + // First check ownership. + // Indicates if the current logged in user owns the session. + this.session_owned = false + + // If the user is logged in, select session from list of sessions. + if(this.loggedIn) { + // If a session id has been passed as a parameter, set it as the default session. + this.sessionsIds.forEach(sessionId => { + if (sessionId.includes(this.current_session_id)) { + this.session_selected = sessionId; + this.onSessionSelected(this.session_selected); + this.session_owned = true + } + }); + } + + // Show spinner and hide chart until finished. + document.getElementById("spinner-layer").style.display = "block"; + document.getElementById("chart").style.display = "None"; + + // If not logged in, load session from params and show trials. + if (this.$route.params.id) + await this.loadSession(this.$route.params.id) var trials = this.session['trials']; // Filter trials by name. @@ -696,8 +701,11 @@ export default { this.trial_names.push(element.name); this.trial_ids.push(element.id) }); - this.trial_selected = this.trial_names[0]; - + if (this.$route.params.trialId && this.trial_names.includes(this.$route.params.trialId)){ + this.trial_selected = this.$route.params.trialId; + } else { + this.trial_selected = this.trial_names[0]; + } // Load data from this trial. this.onTrialSelected(this.trial_selected); diff --git a/src/components/pages/Session.vue b/src/components/pages/Session.vue index cfcfd072..bf902c55 100644 --- a/src/components/pages/Session.vue +++ b/src/components/pages/Session.vue @@ -320,7 +320,7 @@ Download data (old) - + Dashboard kinematics From 17b6765f0a44be990c08776db88cd6301a53385a Mon Sep 17 00:00:00 2001 From: Alberto Casas Ortiz Date: Tue, 10 Dec 2024 15:09:20 -0800 Subject: [PATCH 02/11] Fix #389. Button on neutral page dissapears when processing. --- src/components/pages/Neutral.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/pages/Neutral.vue b/src/components/pages/Neutral.vue index 30d50e8e..955b69e8 100644 --- a/src/components/pages/Neutral.vue +++ b/src/components/pages/Neutral.vue @@ -450,6 +450,7 @@ export default { done: "Confirm", error: "Re-record", stopped: "Processing", + processing: "Processing", }, checkboxRule: (v) => !!v || 'The subject must agree to continue!', From 791e35d6822f3d2c8606f42a0ce840f7f6547979 Mon Sep 17 00:00:00 2001 From: Antoine Falisse Date: Thu, 12 Dec 2024 16:39:47 +0100 Subject: [PATCH 03/11] support for checkerboard lying on the floor --- src/components/pages/Calibration.vue | 49 ++++++++++++++++++++++++---- src/components/pages/Session.vue | 1 + src/store/data.js | 4 ++- 3 files changed, 47 insertions(+), 7 deletions(-) diff --git a/src/components/pages/Calibration.vue b/src/components/pages/Calibration.vue index 91dc26cc..cc948631 100644 --- a/src/components/pages/Calibration.vue +++ b/src/components/pages/Calibration.vue @@ -21,9 +21,13 @@
    -
  • It should be visible by all cameras (nothing in the way of cameras' view when hitting Calibrate)
  • -
  • It should be horizontal (longer side on the floor)
  • -
  • It should be perpendicular to the floor (not lying on the floor)
  • +
  • It should be visible by all cameras (nothing in the way of cameras' view when hitting Calibrate)
  • +
  • It can be either perpendicular to the floor (default) or lying on the floor (beta feature; select Lying placement below)
  • +
  • If perpendicular to the floor, then: +
      +
    • Place it horizontally (longer side on the floor)
    • +
    +
@@ -51,7 +55,38 @@ + label="Square size (mm)" + class="mr-3"/> + + + + + +
+ The origin of the world frame is the top-left black-to-black corner of the board (red dot with a blue outline in the picture on the right). +

+ When positioned perpendicular to the floor, transformations are applied so that in the processed data: +
    +
  • The forward axis of the world frame is perpendicular to the board (coming out).
  • +
  • The vertical axis of the world frame is parallel to the board (going up).
  • +
+
+ When positioned lying on the floor, transformations are applied so that in the processed data: +
    +
  • The forward axis of the world frame is parallel to the board (along the shorter side).
  • +
  • The vertical axis of the world frame is perpendicular to the board (going up).
  • +
+
+ To align movement with the forward axis of the world frame when the board is lying on the floor, place the board such that its forward axis is parallel to the direction of movement. + For example, for walking, place the board with the longer side perpendicular to the walking direction. Note that this alignment is optional, as the system can operate with the board in any orientation. +
+
@@ -79,6 +114,7 @@ export default { rows: 4, cols: 5, squareSize: 35, + placement: 'Perpendicular', busy: false, imgs: null, lastPolledStatus: "", @@ -108,7 +144,8 @@ export default { this.setCalibration({ rows: this.rows, cols: this.cols, - squareSize: this.squareSize + squareSize: this.squareSize, + placement: this.placement }) try { const resUpdate = await axios.get(`/sessions/${this.session.id}/set_metadata/`, { @@ -116,7 +153,7 @@ export default { cb_rows: this.rows, cb_cols: this.cols, cb_square: this.squareSize, - cb_placement: "backWall" + cb_placement: this.placement } }) diff --git a/src/components/pages/Session.vue b/src/components/pages/Session.vue index cfcfd072..89196637 100644 --- a/src/components/pages/Session.vue +++ b/src/components/pages/Session.vue @@ -693,6 +693,7 @@ rows: state => state.data.rows, cols: state => state.data.cols, squareSize: state => state.data.squareSize, + placement: state => state.data.placement, // step Neutral data identifier: state => state.data.identifier, diff --git a/src/store/data.js b/src/store/data.js index d5750ddc..69c78b9f 100644 --- a/src/store/data.js +++ b/src/store/data.js @@ -31,6 +31,7 @@ export default { rows: 4, cols: 5, squareSize: 35, + placement: 'Perpendicular', // step 3 trialId: '', @@ -220,10 +221,11 @@ export default { setConnectDevices (state, { cameras }) { state.cameras = cameras }, - setCalibration (state, { rows, cols, squareSize }) { + setCalibration (state, { rows, cols, squareSize, placement }) { state.rows = rows state.cols = cols state.squareSize = squareSize + state.placement = placement }, setTrialId (state, trialId) { state.trialId = trialId From 1f6944035f6d835bdf9bd4caaaa055b5db7b7d17 Mon Sep 17 00:00:00 2001 From: Alberto Casas Ortiz Date: Tue, 7 Jan 2025 14:23:22 -0800 Subject: [PATCH 04/11] Checking if devices connected before changing to recording status. --- src/components/pages/Session.vue | 41 ++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/src/components/pages/Session.vue b/src/components/pages/Session.vue index 89196637..9998c64a 100644 --- a/src/components/pages/Session.vue +++ b/src/components/pages/Session.vue @@ -856,23 +856,38 @@ // add to the list this.trialInProcess = res.data this.addTrial(this.trialInProcess) - - - this.recordingStarted = moment() - this.recordingTimePassed = 0 - this.recordingTimer = window.setTimeout(this.recordTimerHandler, 500) - - this.state = 'recording' - - // Wait for cameras to start actually recording. - await new Promise(r => setTimeout(r, 1500)); - + // Get n_cameras_connected. const res_status = await axios.get(`/sessions/${this.session.id}/status/`, {}) - this.n_videos_uploaded = res_status.data.n_videos_uploaded this.n_cameras_connected = res_status.data.n_cameras_connected - + + // If no calibrated cameras... + if (this.n_calibrated_cameras === 0) + throw new Error("There are no calibrated cameras for this trial."); + + // Check if the appropriate number of cameras is connected. + const startTime = Date.now(); + while (this.n_cameras_connected !== this.n_calibrated_cameras) { + console.log("WAITING CAMERA CONNECTION...") + if (Date.now() - startTime > 5000) { // 5-second timeout + throw new Error("Connected cameras do not match calibrated cameras. Timeout while waiting for cameras to connect."); + } + + // Retry fetching the status + await new Promise(r => setTimeout(r, 500)); // Wait before retrying + const retryRes = await axios.get(`/sessions/${this.session.id}/status/`, {}); + this.n_cameras_connected = retryRes.data.n_cameras_connected; + } + + // Start recording timer. + this.recordingStarted = moment() + this.recordingTimePassed = 0 + this.recordingTimer = window.setTimeout(this.recordTimerHandler, 500) + + // Transition to recording state + this.state = 'recording'; + } catch (error) { apiError(error) } From 4c15b40d278e1faa70c0314740136645bfe8f38f Mon Sep 17 00:00:00 2001 From: Alberto Casas Ortiz Date: Tue, 7 Jan 2025 16:00:18 -0800 Subject: [PATCH 05/11] Properly canceling and erroring trial when any of the cameras are not connected/recording. --- src/components/pages/Session.vue | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/pages/Session.vue b/src/components/pages/Session.vue index 9998c64a..f104f6fa 100644 --- a/src/components/pages/Session.vue +++ b/src/components/pages/Session.vue @@ -866,11 +866,19 @@ if (this.n_calibrated_cameras === 0) throw new Error("There are no calibrated cameras for this trial."); + // Transition to recording state + this.state = 'recording'; + // Check if the appropriate number of cameras is connected. const startTime = Date.now(); while (this.n_cameras_connected !== this.n_calibrated_cameras) { console.log("WAITING CAMERA CONNECTION...") if (Date.now() - startTime > 5000) { // 5-second timeout + const res_stop = await axios.get(`/sessions/${this.session.id}/stop/`, {}) + const res_cancel = await axios.get(`/sessions/${this.session.id}/cancel_trial/`, {}) + this.cancelPoll() + this.state = 'ready' + this.trialInProcess.status = "error" throw new Error("Connected cameras do not match calibrated cameras. Timeout while waiting for cameras to connect."); } @@ -885,9 +893,6 @@ this.recordingTimePassed = 0 this.recordingTimer = window.setTimeout(this.recordTimerHandler, 500) - // Transition to recording state - this.state = 'recording'; - } catch (error) { apiError(error) } From 398b0a0e107f5da816a6ee897d5cc3802240a81f Mon Sep 17 00:00:00 2001 From: Alberto Casas Ortiz Date: Tue, 7 Jan 2025 16:13:00 -0800 Subject: [PATCH 06/11] Added sound effects when neutral finished and when recording started. --- public/sounds/success.ogg | Bin 0 -> 58364 bytes src/components/pages/Neutral.vue | 3 ++- src/components/pages/Session.vue | 4 +++- src/util/ErrorMessage.js | 10 +++++++++- 4 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 public/sounds/success.ogg diff --git a/public/sounds/success.ogg b/public/sounds/success.ogg new file mode 100644 index 0000000000000000000000000000000000000000..761468a7fc52eba661905f739f2096e48905aadd GIT binary patch literal 58364 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 OxZyNoFWAaGjvS~5DFWl&Um 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 import axios from "axios"; import { mapMutations, mapActions, mapState } from "vuex"; -import { apiError, apiSuccess, apiErrorRes, apiWarning, apiInfo, clearToastMessages } from "@/util/ErrorMessage.js"; +import { apiError, apiSuccess, apiErrorRes, apiWarning, apiInfo, clearToastMessages, playSuccessSound } from "@/util/ErrorMessage.js"; import MainLayout from "@/layout/MainLayout"; import ExampleImage from "@/components/ui/ExampleImage"; import DialogComponent from '@/components/ui/SubjectDialog.vue' @@ -832,6 +832,7 @@ export default { ) { clearToastMessages(); apiInfo("Processing: the subject can relax.", 5000); + playSuccessSound() } this.lastPolledStatus = res.data.status; window.setTimeout(this.pollStatus, 1000); diff --git a/src/components/pages/Session.vue b/src/components/pages/Session.vue index f104f6fa..ba0e8368 100644 --- a/src/components/pages/Session.vue +++ b/src/components/pages/Session.vue @@ -548,7 +548,7 @@ import momentDurationFormatSetup from 'moment-duration-format' import axios from 'axios' import { mapState, mapMutations, mapActions } from 'vuex' - import { apiError, apiErrorRes, apiSuccess } from '@/util/ErrorMessage.js' + import { apiError, apiErrorRes, apiSuccess, playSuccessSound } from '@/util/ErrorMessage.js' import Status from '@/components/ui/Status' import * as THREE from 'three' import * as THREE_OC from '@/orbitControls' @@ -893,6 +893,8 @@ this.recordingTimePassed = 0 this.recordingTimer = window.setTimeout(this.recordTimerHandler, 500) + // Play sound indicating the subject can start motion. + playSuccessSound() } catch (error) { apiError(error) } diff --git a/src/util/ErrorMessage.js b/src/util/ErrorMessage.js index 00e76cff..97d1bb01 100644 --- a/src/util/ErrorMessage.js +++ b/src/util/ErrorMessage.js @@ -124,6 +124,13 @@ function clearToastMessages() { Vue.toasted.clear() } +function playSuccessSound() { + const audio = new Audio('/sounds/success.ogg'); + audio.play().catch((error) => { + console.error('Error playing sound:', error); + }); +} + export { processErrorMessage, apiError, @@ -131,5 +138,6 @@ export { apiWarning, apiErrorRes, apiInfo, - clearToastMessages + clearToastMessages, + playSuccessSound } From e2926375ae45c27492932b8b5afb65081db10ef8 Mon Sep 17 00:00:00 2001 From: Alberto Casas Ortiz Date: Thu, 9 Jan 2025 15:30:38 -0800 Subject: [PATCH 07/11] Added sound effects for calibration finished, neutral finished, recording started and recording stopped. --- public/sounds/calibration_finished.ogg | Bin 0 -> 12963 bytes public/sounds/neutral_finished.ogg | Bin 0 -> 14360 bytes public/sounds/recording.ogg | Bin 0 -> 21133 bytes public/sounds/recording_finished.ogg | Bin 0 -> 11861 bytes src/components/pages/Calibration.vue | 4 +++ src/components/pages/Neutral.vue | 5 ++-- src/components/pages/Session.vue | 10 +++++-- src/util/ErrorMessage.js | 10 +------ src/util/SoundMessage.js | 40 +++++++++++++++++++++++++ 9 files changed, 55 insertions(+), 14 deletions(-) create mode 100644 public/sounds/calibration_finished.ogg create mode 100644 public/sounds/neutral_finished.ogg create mode 100644 public/sounds/recording.ogg create mode 100644 public/sounds/recording_finished.ogg create mode 100644 src/util/SoundMessage.js diff --git a/public/sounds/calibration_finished.ogg b/public/sounds/calibration_finished.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7f1bf1731b2156f3abf7970c6057256711c3f20c GIT binary patch literal 12963 zcmch7by$>7)abj^(jd~(Qj4UZbR)5V;DW@`p^_4dbV^D~cSuRMbV)ZzN+T^GAPUm= z#ozb)zURC5d+u}py62glop;a7nNxGl%+9O!>Xin72K)!yyPWxT+uWxm&VkTDob4P< zEm5~WK-vue;06TWrhmQ*A!@fH{}XOULcpiel2B|ysoS3aLO1$9WC%d4iiz{fM?%~W zg}M27d2hSZgP#|#&FsuyIEsTvGZ6Vm;16Hb_&92T$@DZCZq7|Hh!me3J)+s}_wA=IIO5^UwtfUS?WEnB|27{?J| zu(in$jBqS_bc>~YMd*lkOQq+Q-tH~s@JDr%|MdIY`EM0|Oa5=`HQyFFs_d2u_(=25 zZwvzFWI!|kWM#95eq$#jrmn&T`T&4f%7IkjJ*jdf&EPmQ0XBgyCTIr$8|ZnMw>>HJ?>KV+z&2(N%@K-R*NMr~ z&4303m7oE>0DuAZ!&j&zRXt)J{V6tj{J)ofrey#C;4Qm3CHlW6z-FYTl1)dD=;M;h z(A<%wl^KyO%=2G?1+tiZ(I}C|X7oG|KV9-T_{Rjq0ANBY6yn#*jLjHeO3EhZkk0_N zHkfq=+_ssq7yXH4>eD<18^95NRRPM_&JaK>1NH$cSZ*9b5tg518Vc*BK@IWsGWg>^ z+|G)9D$<`D^HgMjIVTcf4XY*9P^sJ?H!H23PD7PT!_30@dMN*^y8l-VpuogfROZnj zg8`&}i8_MxX#NokMBc6gnkNWm1xIFu80P*MPNi6}!Rp(hIw_}0_I&EO?aYa-(TVNy z)Qjbl7xPmu3=&=}*4i3O8yL*I`S0bg=)M?$Z{#|tb+9N#<|^X;HBK}HAO?JMghJO8 zL3>29=*F;GCcJV>C~!;p_>S&x7tk=E)G3hi zR7GUJPzDPIZ3u=l=4DMRJ08sFQmpv9u29ZhwpQBNseAsu)h-GkKf$E5&wAe4wN`?M02&KaA7({qH z3L%06dqaZYfOYF2Lb-A^%`CZQz91sFdeZd5TY}9aPw((>`H%dfc=K ztTb=hO0{%qPRWuhciPmFt7qDD7}k@<4=W8!Fnv(iJ!?Ans5S`&k|H%5h4o}umo)UI z`SX@er6C7}yOTVIDz}nQL@}s1kklIlQn_?01zG$k_6yRov?m%Fb~||(-zx-?v#?tS z8Oqn4gbL%D8AFzVb7+JK_agmcDo+fN#kZtFOF>e+k9#vj;SCAX?%bun4N=@O(+go1 zTw9Y?L>xUCsF9A@1%KkwjWnx0@$OlVAHtOLsKe6f6}{mneQEw<4S(`Ic;%<&{D*3> zlTpMX+e}V}{jPCV+@%}($X)SiYR_R|>~Z7|SkID1Sj$XCYDEi_5jhBw@(<09H z!g-Vda2R%WK%5La?0L9SUy^?eA6s4=0*TF13tBDN4DqlxH-H4m!BRs4w=9hNf@IID zO+bdjYRP3`g@FjkH~907-w#v_o$G_f&!?1lc(a2Tu`fd~Wb z{BZlD6EU2luuBtRS(^I=0m}m&zy{W>sTWoobgSwvErbnvVotI0>znKeq-vC1n0(6-?5)F_mkW^moG%~z4e-g>XQVWu*j3c=v zMXsz0x(u9y51hlAZ!-lM#s?x`u$~yWO=)+Eo{jK-Ob)lIoJugWuH2kNM8Il6L_<%U zMpW%d8t56dnzslYJv%UHih@oCO3u=qgbb?$-IAT<)8EM{!4aRx&4{vVbU;$MBxc}j zlzNecwMY<=KWSQ8dqSi4T0D>3I;?UN^zcVBOJ=IVWB|as0w87g)Ga~6OY%w3e7 zlxD=#d1>Gh^^Zf1DD|g-fgcXKhKwQ%^;8DV^3l{Bm0pAl~A%}ttJ^6<2M#jC3RW_tw(~Oxv zjzz}jN_S>kUy$0Oj1Eb+u}-1J;cIBsFCCIUO%DO!e&B{v3qjEw`w=EcF`EKUd+ z4p<(zatq^#;fk=lr(n*@C6!@k3=NNR2Jh z|FH`Do@)IeKuTRj0)RUasW_);%K{}PY`!PSYy_|#hT2@tPGXIicSodV;lk|lvV?r= zag-Er>}-EiG1hq50rh7Mb(6xF-Q;GT2bC1ywg4LqzzDzqC>hw3AOIE=`#uzn7J@-& z3;6nBC*$DbW_L)l0%B5fikQGVoX{_U+}Mn7o$i<)wFll6%&1=tAhi8wvqcOXLV##> z;Le@#q31gK#^x3__D-&zz98*ezy>@4fSE~3PEG(tMovLVMSYKkmX4l*@%AM17o?=5 z{(dunwUpFKzae>g(txZ)0tt=O6gi zC&KPc%)7`;JCgvfKovWi5YM+krkZB2q5_mntpHp?5Iz;0HH7dH-_E?AF9N6uK>z{h zHgH!;a!=fHSxM-k4P`!EJ(W)%`$Y{(SLz|(wS}q_9GT;J?Bp{1zd(zlVNk0V>Ks@mDZQGB`-1$0}os)gR{8)WbiDjR1@8vM= z-o&a*9}%O7jZ)=rt<(WN5E@Af`xi5WK;pYClLiCD63j)@hJ2TstH~3K+zGu(yU6Lz zZezaMYf&}P-SyS4x$~oJ%@x-bSZw|D^G5z$sV>KX-qj7mQsH9h&Wp-L=`NWUPpRjR z9Y1f|NBo-KWv&>cB2PI#c%3__cE|UHLvw!78y;^HJH`-D%{0=&F2Z+#6#yWt%gPcp zR+j&4fBf@n;&9&8GEZx!p+)zT#;NVM@AGD>ID;E|%{R`H7mZCe-`o$gEUiOEY7AOV zAYr@L(|9|I5#m_%$KDq#&hvqG;#BSO-Zt|P-|iUS-ZkoH_$)@31O&b~P{>1@9k1-PI`(@9>>g(`SnL0N)Vlm9j@rZUKHXUfb z$;bOOzU}3(!dsj9`P;4kqFbW~A0Js$1qxuS^NqaBTF5N!+dUp!h`y8oy#;p;uC$o8KeZ}{wkB8I{~QAw8z z?Ob(_WHV!OYrD!B=vzV>y6E7Gmp#R^{6h8%Q?hm!-;)gb#sIEXd-UR*^;XIk_O+_` z8Sl~v0b=Py$=#p>hx-%V0%Q0!w#Z`D&rt3gf&|a_`z6g3wL+P>zaG3BV1R6nLSkFe z@TB|H2ebn#Vk*qjr@FrvIVrY$^l$orD=>}zRDEMDoL75ZEp@awS~2ly+3(lYT*rfL zoevAp?RmtA(ABqs(3SBh0fhr=Z=~+$M)Zs`Jt{vX4h!$O=TKlJjna1lLkMjJ&sSO^ zoOryR^lILOc>zi|)OJ6)Sj+Qt5L*I${nt44^PI;c7Q|WOlgoL+(SGQT)wj}7_fSeHKGI$nsvtDrv=K?>J9FRe>Cn~p6I!hcbUJvk2zlr|h;04p4YS1R zw!h<;AV5-%$E&!9?lLF-@JGU?P3uES$#mR~nf`%(!|X}u>aRWrV#SJ)l%RsCbrvZ3 zy*M*3BU&A2l>CoqHNxRjjgSbRo3Gx|u30aISP|=9Y$65+l;}8vqig)HkLFRG3*G*B zABVu~WIeE~5TdZ8)zHN|LJ1gBAJb|cXOQ4;_AD{ab-hx}GMk|q$n6NGIfjvE_R{x% z-;cU)x9HAP596k|HtcV#S}a^7y0bSq!WK*Y=E>8f#WW3UOu%xyXxka)N~V7{7ytf) zU6Yzej_)Bxw0PE3Y>&G3vxEcvTwNIq^f)O#{!#--yG*R4-m14Q@&Y|WSeF0Uu)#gv zrQWvBQ0%=pxep|yWxZv~Q3FKIhDMF4aa!v*djjHLc}P<2qt=h=!%c7u%=CsiAB$Mc znp3Ax1;_4{@Q)UIZ|grBeP@60zTaRjB^6>4&#CVg3S-4Ai8m2=6 z<`Y@5cN|_DBtz*jbR!gQVxEa(ng&CBH3e_B(cfwq`hAl*6Nl_^xQZ>@sQ_Nl13JDx ze=hE;UN9Yr)F{m~+gUBOeWY&v6Lv=yxs_t9#TRANRR~KJjmV!8D2+`tl_Cxy%zeW3 z>u0)|Gz0qDPLZJ)xn~MSb?~zkg}cDRjEKWd4L^uv_}p&Q>P<#&vkt&4jICpAiPb*o zS4zQMe&M4&dZAnAjnIWh~xR{@UPKP?Mt&E zbW5lC=W+3(T$Yt3^*r-`XafAFP7e7J2&b3mjU>g~qApl+{M%l$C;q%XM+5Zlw@Ne@ z1OmRCQv8^{b7j{pe@^pGjLofgo)Pib*qs=({u#6K-si>YiMgZYLLYQy(S%44CAVxf z{NBkT$C9$4!jxPdoHh33M^7cUTAD`Z)r^r|{)==Be@QoeGbzZ5_3_J{Gzef*njz{Y zp=XDmB}G)1PS|y=g_hgAIc(%%=ceKRXR=oonzH3>F;Qn4P)njNPn?jZ7d-muDXZ6F z112EW*68WBel{zfN;G`Cp*t8x^A&Nk+T1SxOxB7HAd%IyAEzVR%V%20xi6Xbu~_}| zwhCs0a*Y5RL41kFHxSPTySllNrQsguPSY|+Fh#Hh*%Df2mq z+Sd4zQoMJqpDnKYb(s|LcKMh1j`2KNy5U}c#K4%upS_81?e`gGD>&qz;U`Dm$FeMa zC5OHO2<%1)HR%*w?p*YGE{jEsS3~NjE7WRUCx5`5bVe%%=#X;2+rcxekr^*p^ty5H zwkn5qbimcUitN;HSt8~9YU=yZy*lPlm3L}>&_H%#tM_f6PrT6%(itdH&gaTBftGen zwU1L2xU=8Rx%RoLYDSEOD0bfaKEc$v@Rs-7G6=Z2^iPgUJTkZ#7%xYm1H76LOgbln zhc$a2v)`Ap(c^iGIK|v=ouRk6=n?1;zZ9UwmI||FQ#iqDjhp6pM7t{}Xy{#IT#frR zKIKE_spCB;zti(MrBKd>h75GH5EN5qflNo7X0k#1;x9sd9pIX>3I);1y#9U8klyfY zK6K(oMzsaySs8y*k5yKc6O^c-iAiUU2e!eYZu&Bb6408Pw?px1&-W$Ud8YRix+4|a zF{K`wP;|bXYFrMSNhP%XF)0Rj~*{rmwg_z9CS~%vX|LkYFVpV^$Yc8D|RAgY{MS}&fI(zYR0Tg z$@vyq&T}>RofI^e*(@AhD$m5wQ};Y7Ml)a+P?H^O`R)V%pd zkS@Q}*+=4fs4A)KlOO?n*TYm{>&E#;tk&*g>EO={YWI7>9nQCR>|_M;STO=kGW?IW ziEXWdY3WOhT346`FLJ~b9f(FP@cs0_9Tii&All7cJH)l zk<`8&Q^2r0Hc1p%QlT#^mryo1M-}0)%&nx}L|*JX-E>q3p7+cMp03V5PwMf>`6kF) z3;h6*B~4fCfDy2gA@V8A4ytV3`K>K%gY z%i1fcbER*AsZ&!7T)1K#;z!F@&;eJTjK=33pGDc)0pIndY3?P>#O-g_^%N56@;fwK z#yDT;sv!fk-^mTW+p4^7LpIIN^RcI;g>9`hP?9dcMh~i7WsJNp+6v8L_3v@1@Yne2 zZglzRCrxs7(V#Tot)O{heuu`)zT~HA?ily)n)G}@)#5WTfwWIlqGpMvpF{NH<{@f2 z_)KI)RKnJiGD0HS3BIMA865P#b=ZDJy}8p>iJa0(4ZJV9uDR;4V`BV}Dq-g<6ScA5 zeX}p>Cn)en4TtmUm-7w&>|6_S`rO&3hnz#O)yh6_tA)o&ZlOnbG=#@1#{I|6o*!#M z(mjb_R}2EVC2xMfb=K;WNc+drFB2;64ycpMk@+U5Xm)979>r_#77vz%t-XZKXg+P! zv|7P%X4jKb#h;SBZ#49z$iyHzJMPOf`&*d37uO^|qORD7da~acM5OC3Z~%wwbv|?6 zED`+;JdQ5eY$8CKu4(VI0$|gzkd)aQn6e`w-GJ8K0(h5u_Y$0}m)|Lg41>Ia1g{e^ z1NtqRZob!_zMB9i=_ArjF)9prE70ib^53hm&IfJnq~rtFN2i|?W1$|`P5Dy>Ytvm3 zXq8`_Gh-HlJx+t!VD>xT}nESuKU2BT!Q z5BHYUV*vG9n;R=R-A8o$dcUc+y~hcEvK~EhU>u$Y{~iIPx-dxo%%8Lf>m?}xfIwL$ zM&rO9_R6#XGxEGQg79_9{&z>;Ehj)9c=_PHyIIrzV;+oYuQH=IOWaLtHwQD!b*q** z`QIYO8pZgIel4?AQPQ)>6KSk7iT<(oxOrp%Ze#)T#_pMA@sf}#plpdpc}Y%yD#)$; zx^hwJ9K(D>-35rE74H}wl!WjW*|y$&kmW>yvy}XRYV3pfiqbA?%G*)WyT)CzP5BKF z3xO;fJ!=mQ$tGUEM>s~M$FeSGwK&pp72N$B78QKHNTY4;mjHC!L5L$U}J5+KdGYM%2&F1m_A6_69y zz2witnoLKkUi_J>H`Q}eEwuFjesf>3gzInUK)15v3yN@0Q@sQ7ls1(g5EkrR&(=~~ z(I1P;CddIPTuaBL(Y_6V)b~-38?;|N8xjJn43&O~LYbkqRpX(F?C1cyNVQwSf%ao_ z6IDa^LGFY_N{Ik9tbmH2mls|4U5tJ<7v2R_1Wh}wZ0u@%8I&noY+D{pUW|riqnDa& z^?Y{u9Y-b0Gx{}WI#0>sI8$dlv3Q(eq-a^-+n34G>4-e6Uq0t*CoXpHYJZgPSq}jK zDZlxuC@s(qY0nV`e4C;gk180R4y0cxeOMrSN3}RX)`j^HpP)KpNN<>ndikvWB+UQR z|IyC$2u)@gJ^mOUd1uE5yD(TU#b*H6qzi z#GRb-7i&})q7u*6yrB3M?S)Xl-gPUsV8Vmz*gt$DeX2b=vCipoY5MZ@fsmzYg}D17 z2D<<5vZw3sWs0qcv1fmhEsCW%qwZpCHYQBG1#@sAYKh8~ux+J^&X!DvMjE(f!AQv8cV)bDe*Urb{ zt?OY4IgV22rOx~hs=?X}`TguSri>>06W3ijQiKHA zJCkYs3M!y)b3Hnn(7JeYsQcrd+gxj0>3nbtwX8=bogq}RC6htYx|NPZ`CIK_#-_o* z!urIK#dJ{c)fCV3tkrRHy>6|wR(Aa=ccU0>w>~!Xks22gHStY?tHn%CDygG^<9xZL zJcdD-RET|J|3Tx6Uo6@VcK{ont^NWk*IB!KeJ|#$YtK*aWi4&4M(moZ#g?T@-)UMr zxAx8CQH~d{2I=;c3;ZY{K+(oinJ39Uk6ejZMMfphxZIFe5>xvxSNBcan2c&PSk=?? zdd~qVpU;o=V(yMVvw^*~T3y~^t6zM=x9rG@e0&N-|9*TTc6l}(@Fa$L-8X<*RP^h? zn{jxi&d-#wPuUnZ!hf!}x~*KB#~SDp! zcq>G-&`J6%+!mu5g{N!ty7y(=NDXPzN-k#O?XT-NBlb55=lwfZD!A8{obBBvc+@0H zJ8{;#aCWUF=iiKB$9XtbTUg(G%{W+56Qeeh7X{jdzKI=mG-FV6km9m8QrmxD9%7>t zVJ{@DCr(W&OswfnJx4!in^%+@ubU}&@%849k%&)35xFH6AEEzCzL3pz<(~QBABU36 z#ANT+SkWM-F4HX%_*CZT+|G1rdEw$kzpiXoZ4ni0+62=2`>WT#h5gjkm($AE+#~$3 zDo&}CE5wsT-zh={+Ow9uJ@spFx1Uwij-hD{JRnoo)HmKqZKrxlTj8j~dZ+V>U%$SYr!dH~rFiy43VX|Z5)ZN*<`|Lu zoyhqaUrL}8KQBwdWr2@A@lhLHH!BHJDk+KSB`1kr6Y%R!Jlg%N{b#d-Ma7BflCPK8 zjbAa#i8sw$U!MuIOF>LIPUA0*)}#Ad8V~Gf6aUoxuBGBm=~4ZrX)6$&!tVKrqc7rK zV@s#rc$30UhS3W>Y#VvnmEqU+-u?4ss9kjZT0WfD7q~z{GP&7(F1W_U>-3(v zMfMHke8KYE4Kw5PZoNWM5h*+;0L<%5-rK#hgERr;PW)^TqlNUCBDRThhU}7;#A0c? zb2k$ig9(9Caqr(x$Nt{O(DUEXtYh0dD79Ta)#t9E*D^}-ag933TgJ-!c?E&pX-bNqfQZK#z^{j&mz6xp6Zz5VX7hE48&MgS{|}$ z!bO+7)YCh^KbN+1u}s)CeNVX<(#YA-UFjwgo@RvOb#pwC{!+@kLWSRx{N8fpN5V8R zxv-#3iw<@D=8EpBMcD#!8rdxf&c396WKiJP1P3#DQ^U$=ujIj^d2*c>;$2VU);j^ zHSw|4C?76_CMhlbU9~ArN1Y6|C>B($F9@Bd`#0lb3uw5%Y1H! zV$sU67n9JHpYD9$WzyF^aI|W3no{9QxCM|VQ9)=gosOsK2s9@IgCRBi%(j_BpMPx# zoG{0?PT6ru_!Cvy9KNpb#nCui{QX2&^g5%0Sj$OI#A|bpy1M7CJJYgwki59;#8vjP zmC2MqxqRW}bHle{=m=~}0{&fJ$G5i4r+^2~l$*KuFOHvr7f2jB;VzhcEZg=y9*@iM zypH^x@o^Q_DmA7hm6kBE;Et(6j}vaB5!onP%fT;cmPBsv5@kAzBeFj4PnfkRp4M1= zl15!Ef5G>%9zIbssiCnd8&zsbJZ_HPa;_Ip!&Yq(T6ZlV)uj;Menwfc8=X;_jK~Q* z?2Au34=@$^2~%t`J)~wH#@7R4IK_c-NBND^sjhmXTh8)o`ZLRBW)iWwLtfJ_HG_h` zF-sP?_!UGW`k3HCpIv2NyEjcGoLFx|$rmG?1z>#`=VyUOyDsv0^`E#)TE}{rbe`AU zR0q3HjgRitgKpXGShseCc!E6oJZsb3nic}#Y@@wIv`Nmr!vu_z$)m?PGTW15f2TiY z{GOf9y-()eoGZ((g7F5tLYFYukztT^rs5gasg6-&Zue$r+h2bEslYgq;yFMnY&O?w zga+6fcLYx1|EWcbBoa)ODHZfeY>i@KtQ)T9ktg@rU(o9bo|16K|Fm=N|Q8`-5B$mSo<>%Q=f_hTvoUHxU{SUmvnYnBeEzmb_jq5W#r zeWFo34^+f+VL(gSAWs2cXLmhL-kO*6#up z2mmQqq&JwP=>gx(uQoDX0yJZDC6?@)mALJ?pX-wsCez>b7S|B;U7frQlf+Do6k(Nc zCVvF9uZ=dub$DyS0OCF6_g~yC5}&JdEzz_y8*9UHw-;|ZCV`cqu0#zdSNQhrVA>@pY zEgw3iyOU=;)qmH+$Dr!rikxQ*?Cs)wL@YLYVMFooX?Zlg(D=lI*@4qnpC50Yy@$AV zEOoDbm>(aa;fn2PyxBYRd+zxpr{wTwRzy@G-ya?HjNnvBDhMgdPUjq1(Q|9Q4zDDI z;9_Ny&2GUJOGPFqMOS0c3sHfBF z`=f@dWkL)6Xrso)fMUg4*QpbwJU6}Ns!gco?}>i*)l=EQW_~?+?!~62AzZ+@x3T%_ zz0PpC>x}{`Wbs@c7qr=HT4FV?+PI)j=MyJq8DZ+iG+DXFIUUy-a+&y7IFZQ?woHu) zyhax{3#y}aZG%oq@w3}ek!M)~sKc^-iQrj(?n}FJ5tGL1J&Ga1?u#lD#!sNMT4N?Eq4#}q)a~1PEeDwT@?f2gU2DZxA>&APzWS+?- z-XHl6Xur>+SN^!}LMj*GXx9h&m#(wQMTv?#Hb}r}x*M zS6>5*dG21jubwEwe4<#JJ?prQe3D-i=ZLHSE^gE&?V`g z7>{|boB!6xuAA6YFN4hp18Zx6E@9fCWB=WYghY)~Xn23cLd+pV!b2+nFp&Svhlc=XCL@9oF{= zv%X7mhy_!Yy|D6+YN!-*tX;&Fw{<_hM50V>1XhSCcTj0Ey1LP^ISISrj1h(#-QvX= zZD|ww#- zKD4*kaP}x4x}Q>36S&p?>@JSt(%xJP@c5l}1L|}A9;6Vn`~(Gf2U{&becAil+Oei` zdryc-6^vg0TuqW_<985LX$k!qpjnoiJ0(^5bm1f0&|nK);oVwu{OjTkrc+}&8sj_s zcSyAKq*8yPpK^?CZkaUNnQ%96;Z5TOPIBrpgKziobiCmX#vDXRp@0mRhMy#WSPj>l zb4V6o9~dB9f8&@}KN!!vXRvB3*TqGo60LeQ;r6)9-rF@&hMVQF>dBzSYO5FjSAZ*@ zHO}$;8=m+*@;T(|*G0azW+YbSz`d!ny3Qgr?_f7Zh_C-Ae}26YG^rb!*j!hffzmIu z3-XfE#o5C=z2RhA_8N&_$I=U&nTsyy0k* zZNDZP>-Q?VrQ#mvADly`;GEb63o;a;cbyyf$_`->S#jFiw>*Q|FX`FqJBJmraoSV4 zjo`i)EA4iP^0j~o<&5KJqW=D38lK{_&w6dIj8qh5-i7@%r17Y<(%f?R@Bs%O|4!<~ z)d%*X2xvxuTWB~bCZV766Ws?msc1>LUyyefh17F+#kGHo>M<3TQy`@+an_YWW>T60 z;jMdo55B$d@ar#HApPi7;u&qF(IpZrS4>-2wNSG3MO{1*S2acX(LN-`3L|Ge+I zhzHJq?gNCVYu6;F6m^M~*(5_gJcyt+nnf@b(iq2u;CuA$P6827)96#q5ue*v8Ll!pKS literal 0 HcmV?d00001 diff --git a/public/sounds/neutral_finished.ogg b/public/sounds/neutral_finished.ogg new file mode 100644 index 0000000000000000000000000000000000000000..be6e8d7b260d681ef636e72066f32d0ae3c6b1b0 GIT binary patch literal 14360 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 gNpj=i`9CKk4)sk1>HO@NB{r; literal 0 HcmV?d00001 diff --git a/public/sounds/recording.ogg b/public/sounds/recording.ogg new file mode 100644 index 0000000000000000000000000000000000000000..94d8eaea6b02e6ea06b695f9fc234de3150319aa GIT binary patch literal 21133 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 literal 0 HcmV?d00001 diff --git a/public/sounds/recording_finished.ogg b/public/sounds/recording_finished.ogg new file mode 100644 index 0000000000000000000000000000000000000000..36aecfceda9754f58e9304c98baf73bc82c52c13 GIT binary patch literal 11861 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 MUr@nR3mo;o0Ig0G3;+NC literal 0 HcmV?d00001 diff --git a/src/components/pages/Calibration.vue b/src/components/pages/Calibration.vue index cc948631..24477a67 100644 --- a/src/components/pages/Calibration.vue +++ b/src/components/pages/Calibration.vue @@ -103,6 +103,7 @@ import axios from 'axios' import {mapActions, mapMutations, mapState} from 'vuex' import { apiError, apiSuccess, apiErrorRes, apiInfo} from '@/util/ErrorMessage.js' import MainLayout from '@/layout/MainLayout' +import { playCalibrationFinishedSound } from "@/util/SoundMessage.js"; export default { name: 'Calibration', @@ -184,6 +185,9 @@ export default { apiError(this.n_calibrated_cameras + " device(s) connected to the session and 2+ devices are required, please re-pair your devices using qr code at top of page.", 10000); this.busy = false } else { + // Play sound indicating calibration finished. + playCalibrationFinishedSound(); + apiSuccess(this.n_calibrated_cameras + " devices calibrated successfully.", 5000); this.$router.push(`/${this.session.id}/neutral`) } diff --git a/src/components/pages/Neutral.vue b/src/components/pages/Neutral.vue index 287c366a..9be66c08 100644 --- a/src/components/pages/Neutral.vue +++ b/src/components/pages/Neutral.vue @@ -365,7 +365,8 @@ diff --git a/src/store/data.js b/src/store/data.js index 69c78b9f..5b14f525 100644 --- a/src/store/data.js +++ b/src/store/data.js @@ -441,19 +441,23 @@ export default { } } }, - async loadSubjects({ state, commit }) { + async loadSubjects({ state, commit }, {session_id}) { try { let subjects = [] let start = 0 - let quantity = 20 + let quantity = 100 let moreDataAvailable = true while (moreDataAvailable) { - let res = await axios.get('/subjects/', { - params: { + let r_params = { start: start, quantity: quantity - } + } + if (session_id) { + r_params.session_id = session_id + } + let res = await axios.get('/subjects/', { + params: r_params }) let tagPromises = [] @@ -472,8 +476,8 @@ export default { tagPromises.push(tagPromise); } - subjects = subjects.concat(res.data) - if (res.data.length < quantity) { + subjects = subjects.concat(res.data.subjects) + if (res.data.subjects.length < quantity) { moreDataAvailable = false } else { start += quantity From 0c6de301762dda8ded98f0f1e11054568209ef50 Mon Sep 17 00:00:00 2001 From: Oleh Korkh Date: Wed, 2 Apr 2025 10:15:17 +0300 Subject: [PATCH 10/11] added TrialSelect component --- src/components/ui/TrialSelect.vue | 197 ++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 src/components/ui/TrialSelect.vue diff --git a/src/components/ui/TrialSelect.vue b/src/components/ui/TrialSelect.vue new file mode 100644 index 00000000..ae664a85 --- /dev/null +++ b/src/components/ui/TrialSelect.vue @@ -0,0 +1,197 @@ + + \ No newline at end of file From 5b737989b0166d75626b16dc141d7ce48717acc5 Mon Sep 17 00:00:00 2001 From: Alberto Casas Ortiz Date: Tue, 8 Apr 2025 15:39:35 -0700 Subject: [PATCH 11/11] Changed 'Discard Changes' in settings to 'Go Back'. --- src/components/pages/ProfilePage.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/components/pages/ProfilePage.vue b/src/components/pages/ProfilePage.vue index aebf2367..5c0a1d70 100644 --- a/src/components/pages/ProfilePage.vue +++ b/src/components/pages/ProfilePage.vue @@ -328,10 +328,9 @@ Delete Account - - - Discard Changes + + Go Back @@ -476,6 +475,9 @@ export default { handleEditSettings() { this.editing_settings = true; }, + handleFinished() { + this.editing_settings = false; + }, handleDiscard() { this.editing_profile = false; this.editing_settings = false;