修正了app.py启动相关错误

This commit is contained in:
root 2025-08-13 16:57:28 +08:00
parent 9268a274d6
commit 99b3ea6158
11 changed files with 990 additions and 366963 deletions

2
.gitignore vendored
View File

@ -10018,3 +10018,5 @@ node_modules/date-fns/subMonths/package.json
node_modules/date-fns/subQuarters/index.d.ts
node_modules/date-fns/subQuarters/index.js
node_modules/date-fns/subQuarters/index.js.flow
Log/OrbbecSDK.log.txt
Log/OrbbecSDK.log.txt

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,440 @@
[08/06 16:05:29.947597][debug][29212][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/06 16:05:29.947770][debug][29212][Context.cpp:49] Config file version=1.1
[08/06 16:05:29.947818][debug][29212][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/06 16:05:29.947857][info][29212][Context.cpp:68] Context created with config: default config!
[08/06 16:05:29.948048][info][29212][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/06 16:05:29.948256][debug][29212][DeviceManager.cpp:30] DeviceManager init ...
[08/06 16:05:29.948529][info][29212][MfPal.cpp:105] createObPal: create WinPal!
[08/06 16:05:29.948659][debug][29212][MfPal.cpp:110] WmfPal init ...
[08/06 16:05:29.984405][debug][29212][MfPal.cpp:117] WmfPal created!
[08/06 16:05:29.984501][debug][29212][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/06 16:05:30.020645][debug][29212][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/06 16:05:30.021037][debug][29212][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/06 16:05:30.021274][debug][29212][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/06 16:05:30.021308][info][29212][DeviceManager.cpp:15] Current found device(s): (0)
[08/06 16:05:30.021507][debug][29212][DeviceManager.cpp:52] DeviceManager construct done!
[08/06 16:05:30.021539][debug][29212][Context.cpp:81] Context destroying ...
[08/06 16:05:30.021552][debug][29212][DeviceManager.cpp:56] DeviceManager destroy ...
[08/06 16:05:30.021562][debug][29212][DeviceManager.cpp:64] DeviceManager Destructors done
[08/06 16:05:30.030937][debug][29212][MfPal.cpp:128] WmfPal destroyed!
[08/06 16:05:30.031392][info][29212][Context.cpp:84] Context destroyed
[08/13 14:27:29.316369][debug][7144][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:27:29.316475][debug][7144][Context.cpp:49] Config file version=1.1
[08/13 14:27:29.316514][debug][7144][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:27:29.316541][info][7144][Context.cpp:68] Context created with config: default config!
[08/13 14:27:29.316670][info][7144][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:27:29.316811][debug][7144][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:27:29.317023][info][7144][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:27:29.317112][debug][7144][MfPal.cpp:110] WmfPal init ...
[08/13 14:27:29.343235][debug][7144][MfPal.cpp:117] WmfPal created!
[08/13 14:27:29.343270][debug][7144][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:27:29.371287][debug][7144][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:27:29.371526][debug][7144][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:27:29.371781][debug][7144][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:27:29.371806][info][7144][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:27:29.371935][debug][7144][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:27:29.371962][debug][7144][Context.cpp:81] Context destroying ...
[08/13 14:27:29.371975][debug][7144][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:27:29.371987][debug][7144][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:27:29.374600][debug][7144][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:27:29.374873][info][7144][Context.cpp:84] Context destroyed
[08/13 14:36:37.869763][debug][25952][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:36:37.869877][debug][25952][Context.cpp:49] Config file version=1.1
[08/13 14:36:37.869906][debug][25952][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:36:37.869925][info][25952][Context.cpp:68] Context created with config: default config!
[08/13 14:36:37.870123][info][25952][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:36:37.870307][debug][25952][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:36:37.870321][info][25952][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:36:37.870443][debug][25952][MfPal.cpp:110] WmfPal init ...
[08/13 14:36:37.898070][debug][25952][MfPal.cpp:117] WmfPal created!
[08/13 14:36:37.898114][debug][25952][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:36:37.925404][debug][25952][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:36:37.925753][debug][25952][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:36:37.926029][debug][25952][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:36:37.926063][info][25952][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:36:37.926269][debug][25952][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:36:37.926294][debug][25952][Context.cpp:81] Context destroying ...
[08/13 14:36:37.926304][debug][25952][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:36:37.926314][debug][25952][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:36:37.928899][debug][25952][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:36:37.929217][info][25952][Context.cpp:84] Context destroyed
[08/13 14:37:49.273206][debug][21940][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:37:49.273296][debug][21940][Context.cpp:49] Config file version=1.1
[08/13 14:37:49.273323][debug][21940][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:37:49.273339][info][21940][Context.cpp:68] Context created with config: default config!
[08/13 14:37:49.273476][info][21940][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:37:49.273649][debug][21940][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:37:49.273666][info][21940][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:37:49.273862][debug][21940][MfPal.cpp:110] WmfPal init ...
[08/13 14:37:49.300693][debug][21940][MfPal.cpp:117] WmfPal created!
[08/13 14:37:49.300743][debug][21940][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:37:49.326569][debug][21940][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:37:49.326889][debug][21940][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:37:49.327198][debug][21940][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:37:49.327231][info][21940][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:37:49.327462][debug][21940][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:37:49.327485][debug][21940][Context.cpp:81] Context destroying ...
[08/13 14:37:49.327496][debug][21940][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:37:49.327505][debug][21940][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:37:49.330168][debug][21940][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:37:49.330472][info][21940][Context.cpp:84] Context destroyed
[08/13 14:41:42.261641][debug][30308][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:41:42.261696][debug][30308][Context.cpp:49] Config file version=1.1
[08/13 14:41:42.261712][debug][30308][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:41:42.261726][info][30308][Context.cpp:68] Context created with config: default config!
[08/13 14:41:42.261802][info][30308][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:41:42.261961][debug][30308][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:41:42.261976][info][30308][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:41:42.262113][debug][30308][MfPal.cpp:110] WmfPal init ...
[08/13 14:41:42.289045][debug][30308][MfPal.cpp:117] WmfPal created!
[08/13 14:41:42.289078][debug][30308][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:41:42.314604][debug][30308][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:41:42.314942][debug][30308][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:41:42.315085][debug][30308][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:41:42.315104][info][30308][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:41:42.315463][debug][30308][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:41:42.315478][debug][30308][Context.cpp:81] Context destroying ...
[08/13 14:41:42.315486][debug][30308][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:41:42.315494][debug][30308][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:41:42.463906][debug][30308][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:41:42.464626][info][30308][Context.cpp:84] Context destroyed
[08/13 14:41:59.984275][debug][10764][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:41:59.984369][debug][10764][Context.cpp:49] Config file version=1.1
[08/13 14:41:59.984396][debug][10764][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:41:59.984414][info][10764][Context.cpp:68] Context created with config: default config!
[08/13 14:41:59.984503][info][10764][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:41:59.984632][debug][10764][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:41:59.984647][info][10764][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:41:59.984725][debug][10764][MfPal.cpp:110] WmfPal init ...
[08/13 14:42:00.012686][debug][10764][MfPal.cpp:117] WmfPal created!
[08/13 14:42:00.012724][debug][10764][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:42:00.041403][debug][10764][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:42:00.041664][debug][10764][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:42:00.041849][debug][10764][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:42:00.041882][info][10764][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:42:00.042008][debug][10764][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:42:00.042029][debug][10764][Context.cpp:81] Context destroying ...
[08/13 14:42:00.042040][debug][10764][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:42:00.042049][debug][10764][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:42:00.192739][debug][10764][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:42:00.193609][info][10764][Context.cpp:84] Context destroyed
[08/13 14:43:26.644864][debug][16552][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:43:26.644920][debug][16552][Context.cpp:49] Config file version=1.1
[08/13 14:43:26.644937][debug][16552][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:43:26.644951][info][16552][Context.cpp:68] Context created with config: default config!
[08/13 14:43:26.645094][info][16552][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:43:26.645244][debug][16552][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:43:26.645256][info][16552][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:43:26.645355][debug][16552][MfPal.cpp:110] WmfPal init ...
[08/13 14:43:26.674214][debug][16552][MfPal.cpp:117] WmfPal created!
[08/13 14:43:26.674249][debug][16552][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:43:26.705043][debug][16552][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:43:26.705366][debug][16552][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:43:26.705591][debug][16552][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:43:26.705618][info][16552][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:43:26.705796][debug][16552][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:43:26.705814][debug][16552][Context.cpp:81] Context destroying ...
[08/13 14:43:26.705825][debug][16552][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:43:26.705835][debug][16552][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:43:26.847152][debug][16552][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:43:26.847638][info][16552][Context.cpp:84] Context destroyed
[08/13 14:43:34.491937][debug][29464][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:43:34.492052][debug][29464][Context.cpp:49] Config file version=1.1
[08/13 14:43:34.492084][debug][29464][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:43:34.492105][info][29464][Context.cpp:68] Context created with config: default config!
[08/13 14:43:34.492264][info][29464][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:43:34.492425][debug][29464][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:43:34.492439][info][29464][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:43:34.492595][debug][29464][MfPal.cpp:110] WmfPal init ...
[08/13 14:43:34.523862][debug][29464][MfPal.cpp:117] WmfPal created!
[08/13 14:43:34.523908][debug][29464][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:43:34.558458][debug][29464][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:43:34.558702][debug][29464][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:43:34.558868][debug][29464][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:43:34.558898][info][29464][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:43:34.559045][debug][29464][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:43:34.559131][debug][29464][Context.cpp:81] Context destroying ...
[08/13 14:43:34.559148][debug][29464][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:43:34.559158][debug][29464][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:43:34.705299][debug][29464][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:43:34.706831][info][29464][Context.cpp:84] Context destroyed
[08/13 14:45:49.763055][debug][35516][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:45:49.763107][debug][35516][Context.cpp:49] Config file version=1.1
[08/13 14:45:49.763123][debug][35516][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:45:49.763137][info][35516][Context.cpp:68] Context created with config: default config!
[08/13 14:45:49.763228][info][35516][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:45:49.763352][debug][35516][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:45:49.763363][info][35516][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:45:49.763440][debug][35516][MfPal.cpp:110] WmfPal init ...
[08/13 14:45:49.790306][debug][35516][MfPal.cpp:117] WmfPal created!
[08/13 14:45:49.790361][debug][35516][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:45:49.814447][debug][35516][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:45:49.814705][debug][35516][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:45:49.814979][debug][35516][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:45:49.815001][info][35516][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:45:49.815156][debug][35516][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:45:49.815170][debug][35516][Context.cpp:81] Context destroying ...
[08/13 14:45:49.815178][debug][35516][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:45:49.815187][debug][35516][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:45:49.817740][debug][35516][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:45:49.817975][info][35516][Context.cpp:84] Context destroyed
[08/13 14:45:56.731392][debug][23340][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:45:56.731536][debug][23340][Context.cpp:49] Config file version=1.1
[08/13 14:45:56.731565][debug][23340][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:45:56.731584][info][23340][Context.cpp:68] Context created with config: default config!
[08/13 14:45:56.731719][info][23340][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:45:56.731906][debug][23340][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:45:56.731919][info][23340][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:45:56.731993][debug][23340][MfPal.cpp:110] WmfPal init ...
[08/13 14:45:56.759288][debug][23340][MfPal.cpp:117] WmfPal created!
[08/13 14:45:56.759346][debug][23340][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:45:56.788726][debug][23340][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:45:56.789125][debug][23340][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:45:56.789318][debug][23340][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:45:56.789361][info][23340][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:45:56.789521][debug][23340][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:45:56.789543][debug][23340][Context.cpp:81] Context destroying ...
[08/13 14:45:56.789554][debug][23340][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:45:56.789562][debug][23340][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:45:56.928705][debug][23340][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:45:56.929500][info][23340][Context.cpp:84] Context destroyed
[08/13 14:48:56.523017][debug][28892][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:48:56.523076][debug][28892][Context.cpp:49] Config file version=1.1
[08/13 14:48:56.523093][debug][28892][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:48:56.523106][info][28892][Context.cpp:68] Context created with config: default config!
[08/13 14:48:56.523199][info][28892][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:48:56.523318][debug][28892][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:48:56.523328][info][28892][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:48:56.523399][debug][28892][MfPal.cpp:110] WmfPal init ...
[08/13 14:48:56.548730][debug][28892][MfPal.cpp:117] WmfPal created!
[08/13 14:48:56.548760][debug][28892][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:48:56.577293][debug][28892][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:48:56.577605][debug][28892][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:48:56.577813][debug][28892][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:48:56.577839][info][28892][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:48:56.578016][debug][28892][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:48:56.578039][debug][28892][Context.cpp:81] Context destroying ...
[08/13 14:48:56.578053][debug][28892][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:48:56.578067][debug][28892][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:48:56.580988][debug][28892][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:48:56.581562][info][28892][Context.cpp:84] Context destroyed
[08/13 14:49:01.238723][debug][13816][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:49:01.238816][debug][13816][Context.cpp:49] Config file version=1.1
[08/13 14:49:01.238844][debug][13816][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:49:01.238862][info][13816][Context.cpp:68] Context created with config: default config!
[08/13 14:49:01.239005][info][13816][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:49:01.239166][debug][13816][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:49:01.239177][info][13816][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:49:01.239386][debug][13816][MfPal.cpp:110] WmfPal init ...
[08/13 14:49:01.266183][debug][13816][MfPal.cpp:117] WmfPal created!
[08/13 14:49:01.266223][debug][13816][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:49:01.294013][debug][13816][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:49:01.294318][debug][13816][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:49:01.294546][debug][13816][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:49:01.294581][info][13816][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:49:01.294731][debug][13816][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:49:01.294755][debug][13816][Context.cpp:81] Context destroying ...
[08/13 14:49:01.294766][debug][13816][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:49:01.294776][debug][13816][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:49:01.297120][debug][13816][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:49:01.297358][info][13816][Context.cpp:84] Context destroyed
[08/13 14:59:16.504070][debug][13268][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 14:59:16.504198][debug][13268][Context.cpp:49] Config file version=1.1
[08/13 14:59:16.504236][debug][13268][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 14:59:16.504263][info][13268][Context.cpp:68] Context created with config: default config!
[08/13 14:59:16.504426][info][13268][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 14:59:16.504723][debug][13268][DeviceManager.cpp:30] DeviceManager init ...
[08/13 14:59:16.504735][info][13268][MfPal.cpp:105] createObPal: create WinPal!
[08/13 14:59:16.504874][debug][13268][MfPal.cpp:110] WmfPal init ...
[08/13 14:59:16.531701][debug][13268][MfPal.cpp:117] WmfPal created!
[08/13 14:59:16.531754][debug][13268][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 14:59:16.558750][debug][13268][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 14:59:16.558996][debug][13268][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 14:59:16.559168][debug][13268][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 14:59:16.559199][info][13268][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 14:59:16.559318][debug][13268][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 14:59:16.559339][debug][13268][Context.cpp:81] Context destroying ...
[08/13 14:59:16.559350][debug][13268][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 14:59:16.559359][debug][13268][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 14:59:16.561338][debug][13268][MfPal.cpp:128] WmfPal destroyed!
[08/13 14:59:16.561603][info][13268][Context.cpp:84] Context destroyed
[08/13 15:00:11.217453][debug][7080][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 15:00:11.217538][debug][7080][Context.cpp:49] Config file version=1.1
[08/13 15:00:11.217563][debug][7080][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 15:00:11.217579][info][7080][Context.cpp:68] Context created with config: default config!
[08/13 15:00:11.217706][info][7080][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 15:00:11.217857][debug][7080][DeviceManager.cpp:30] DeviceManager init ...
[08/13 15:00:11.217867][info][7080][MfPal.cpp:105] createObPal: create WinPal!
[08/13 15:00:11.218109][debug][7080][MfPal.cpp:110] WmfPal init ...
[08/13 15:00:11.244544][debug][7080][MfPal.cpp:117] WmfPal created!
[08/13 15:00:11.244577][debug][7080][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 15:00:11.271647][debug][7080][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 15:00:11.271887][debug][7080][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 15:00:11.272078][debug][7080][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 15:00:11.272111][info][7080][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 15:00:11.272275][debug][7080][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 15:00:11.272298][debug][7080][Context.cpp:81] Context destroying ...
[08/13 15:00:11.272309][debug][7080][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 15:00:11.272319][debug][7080][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 15:00:11.407372][debug][7080][MfPal.cpp:128] WmfPal destroyed!
[08/13 15:00:11.407934][info][7080][Context.cpp:84] Context destroyed
[08/13 15:03:12.907291][debug][27056][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 15:03:12.907351][debug][27056][Context.cpp:49] Config file version=1.1
[08/13 15:03:12.907369][debug][27056][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 15:03:12.907384][info][27056][Context.cpp:68] Context created with config: default config!
[08/13 15:03:12.907487][info][27056][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 15:03:12.907640][debug][27056][DeviceManager.cpp:30] DeviceManager init ...
[08/13 15:03:12.907651][info][27056][MfPal.cpp:105] createObPal: create WinPal!
[08/13 15:03:12.907746][debug][27056][MfPal.cpp:110] WmfPal init ...
[08/13 15:03:12.934071][debug][27056][MfPal.cpp:117] WmfPal created!
[08/13 15:03:12.934144][debug][27056][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 15:03:12.962610][debug][27056][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 15:03:12.962822][debug][27056][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 15:03:12.963002][debug][27056][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 15:03:12.963026][info][27056][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 15:03:12.963163][debug][27056][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 15:03:12.963186][debug][27056][Context.cpp:81] Context destroying ...
[08/13 15:03:12.963201][debug][27056][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 15:03:12.963215][debug][27056][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 15:03:13.111556][debug][27056][MfPal.cpp:128] WmfPal destroyed!
[08/13 15:03:13.112429][info][27056][Context.cpp:84] Context destroyed
[08/13 15:03:35.494541][debug][18708][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 15:03:35.494643][debug][18708][Context.cpp:49] Config file version=1.1
[08/13 15:03:35.494672][debug][18708][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 15:03:35.494690][info][18708][Context.cpp:68] Context created with config: default config!
[08/13 15:03:35.494798][info][18708][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 15:03:35.494919][debug][18708][DeviceManager.cpp:30] DeviceManager init ...
[08/13 15:03:35.494930][info][18708][MfPal.cpp:105] createObPal: create WinPal!
[08/13 15:03:35.495019][debug][18708][MfPal.cpp:110] WmfPal init ...
[08/13 15:03:35.521562][debug][18708][MfPal.cpp:117] WmfPal created!
[08/13 15:03:35.521598][debug][18708][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 15:03:35.546840][debug][18708][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 15:03:35.547158][debug][18708][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 15:03:35.547378][debug][18708][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 15:03:35.547400][info][18708][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 15:03:35.547540][debug][18708][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 15:03:35.547561][debug][18708][Context.cpp:81] Context destroying ...
[08/13 15:03:35.547572][debug][18708][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 15:03:35.547597][debug][18708][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 15:03:35.686682][debug][18708][MfPal.cpp:128] WmfPal destroyed!
[08/13 15:03:35.687608][info][18708][Context.cpp:84] Context destroyed
[08/13 15:04:06.640772][debug][27600][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 15:04:06.640837][debug][27600][Context.cpp:49] Config file version=1.1
[08/13 15:04:06.640854][debug][27600][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 15:04:06.640868][info][27600][Context.cpp:68] Context created with config: default config!
[08/13 15:04:06.640957][info][27600][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 15:04:06.641094][debug][27600][DeviceManager.cpp:30] DeviceManager init ...
[08/13 15:04:06.641104][info][27600][MfPal.cpp:105] createObPal: create WinPal!
[08/13 15:04:06.641181][debug][27600][MfPal.cpp:110] WmfPal init ...
[08/13 15:04:06.665165][debug][27600][MfPal.cpp:117] WmfPal created!
[08/13 15:04:06.665223][debug][27600][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 15:04:06.691241][debug][27600][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 15:04:06.691463][debug][27600][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 15:04:06.691628][debug][27600][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 15:04:06.691648][info][27600][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 15:04:06.691846][debug][27600][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 15:04:06.691865][debug][27600][Context.cpp:81] Context destroying ...
[08/13 15:04:06.691874][debug][27600][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 15:04:06.691882][debug][27600][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 15:04:06.694066][debug][27600][MfPal.cpp:128] WmfPal destroyed!
[08/13 15:04:06.694286][info][27600][Context.cpp:84] Context destroyed
[08/13 15:31:51.724924][debug][22544][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 15:31:51.725011][debug][22544][Context.cpp:49] Config file version=1.1
[08/13 15:31:51.725036][debug][22544][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 15:31:51.725053][info][22544][Context.cpp:68] Context created with config: default config!
[08/13 15:31:51.725163][info][22544][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 15:31:51.725313][debug][22544][DeviceManager.cpp:30] DeviceManager init ...
[08/13 15:31:51.725324][info][22544][MfPal.cpp:105] createObPal: create WinPal!
[08/13 15:31:51.725445][debug][22544][MfPal.cpp:110] WmfPal init ...
[08/13 15:31:51.752139][debug][22544][MfPal.cpp:117] WmfPal created!
[08/13 15:31:51.752206][debug][22544][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 15:31:51.779713][debug][22544][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 15:31:51.779964][debug][22544][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 15:31:51.780103][debug][22544][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 15:31:51.780129][info][22544][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 15:31:51.780248][debug][22544][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 15:31:51.780270][debug][22544][Context.cpp:81] Context destroying ...
[08/13 15:31:51.780282][debug][22544][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 15:31:51.780290][debug][22544][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 15:31:51.921962][debug][22544][MfPal.cpp:128] WmfPal destroyed!
[08/13 15:31:51.923521][info][22544][Context.cpp:84] Context destroyed
[08/13 15:44:48.555062][debug][19212][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 15:44:48.555119][debug][19212][Context.cpp:49] Config file version=1.1
[08/13 15:44:48.555138][debug][19212][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 15:44:48.555152][info][19212][Context.cpp:68] Context created with config: default config!
[08/13 15:44:48.555234][info][19212][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 15:44:48.555346][debug][19212][DeviceManager.cpp:30] DeviceManager init ...
[08/13 15:44:48.555356][info][19212][MfPal.cpp:105] createObPal: create WinPal!
[08/13 15:44:48.555422][debug][19212][MfPal.cpp:110] WmfPal init ...
[08/13 15:44:48.581611][debug][19212][MfPal.cpp:117] WmfPal created!
[08/13 15:44:48.581645][debug][19212][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 15:44:48.607421][debug][19212][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 15:44:48.607807][debug][19212][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 15:44:48.608093][debug][19212][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 15:44:48.608115][info][19212][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 15:44:48.608260][debug][19212][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 15:44:48.608277][debug][19212][Context.cpp:81] Context destroying ...
[08/13 15:44:48.608285][debug][19212][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 15:44:48.608293][debug][19212][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 15:44:48.745856][debug][19212][MfPal.cpp:128] WmfPal destroyed!
[08/13 15:44:48.747096][info][19212][Context.cpp:84] Context destroyed
[08/13 15:44:54.555327][debug][23216][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 15:44:54.555441][debug][23216][Context.cpp:49] Config file version=1.1
[08/13 15:44:54.555485][debug][23216][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 15:44:54.555503][info][23216][Context.cpp:68] Context created with config: default config!
[08/13 15:44:54.555642][info][23216][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 15:44:54.555823][debug][23216][DeviceManager.cpp:30] DeviceManager init ...
[08/13 15:44:54.555850][info][23216][MfPal.cpp:105] createObPal: create WinPal!
[08/13 15:44:54.556002][debug][23216][MfPal.cpp:110] WmfPal init ...
[08/13 15:44:54.585912][debug][23216][MfPal.cpp:117] WmfPal created!
[08/13 15:44:54.585951][debug][23216][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 15:44:54.612393][debug][23216][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 15:44:54.612669][debug][23216][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 15:44:54.612836][debug][23216][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 15:44:54.612869][info][23216][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 15:44:54.613004][debug][23216][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 15:44:54.613032][debug][23216][Context.cpp:81] Context destroying ...
[08/13 15:44:54.613046][debug][23216][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 15:44:54.613059][debug][23216][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 15:44:54.746690][debug][23216][MfPal.cpp:128] WmfPal destroyed!
[08/13 15:44:54.747275][info][23216][Context.cpp:84] Context destroyed
[08/13 15:48:00.736201][debug][2084][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 15:48:00.736262][debug][2084][Context.cpp:49] Config file version=1.1
[08/13 15:48:00.736280][debug][2084][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 15:48:00.736296][info][2084][Context.cpp:68] Context created with config: default config!
[08/13 15:48:00.736403][info][2084][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 15:48:00.736556][debug][2084][DeviceManager.cpp:30] DeviceManager init ...
[08/13 15:48:00.736567][info][2084][MfPal.cpp:105] createObPal: create WinPal!
[08/13 15:48:00.736667][debug][2084][MfPal.cpp:110] WmfPal init ...
[08/13 15:48:02.068071][debug][2084][MfPal.cpp:117] WmfPal created!
[08/13 15:48:02.068102][debug][2084][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 15:48:03.404539][debug][2084][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 15:48:03.404707][debug][2084][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 15:48:03.404857][debug][2084][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 15:48:03.404878][info][2084][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 15:48:03.405001][debug][2084][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 15:48:03.405017][debug][2084][Context.cpp:81] Context destroying ...
[08/13 15:48:03.405028][debug][2084][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 15:48:03.405037][debug][2084][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 15:48:03.540518][debug][2084][MfPal.cpp:128] WmfPal destroyed!
[08/13 15:48:03.541452][info][2084][Context.cpp:84] Context destroyed
[08/13 15:48:06.995088][debug][19440][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 15:48:06.995201][debug][19440][Context.cpp:49] Config file version=1.1
[08/13 15:48:06.995232][debug][19440][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 15:48:06.995252][info][19440][Context.cpp:68] Context created with config: default config!
[08/13 15:48:06.995418][info][19440][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 15:48:06.995571][debug][19440][DeviceManager.cpp:30] DeviceManager init ...
[08/13 15:48:06.995585][info][19440][MfPal.cpp:105] createObPal: create WinPal!
[08/13 15:48:06.995728][debug][19440][MfPal.cpp:110] WmfPal init ...
[08/13 15:48:08.330063][debug][19440][MfPal.cpp:117] WmfPal created!
[08/13 15:48:08.330101][debug][19440][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 15:48:09.631039][debug][19440][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 15:48:09.631268][debug][19440][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 15:48:09.631413][debug][19440][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 15:48:09.631446][info][19440][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 15:48:09.631576][debug][19440][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 15:48:09.631600][debug][19440][Context.cpp:81] Context destroying ...
[08/13 15:48:09.631612][debug][19440][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 15:48:09.631621][debug][19440][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 15:48:09.764361][debug][19440][MfPal.cpp:128] WmfPal destroyed!
[08/13 15:48:09.765235][info][19440][Context.cpp:84] Context destroyed
[08/13 15:48:41.040272][debug][33028][Context.cpp:30] Context creating, work_dir=D:\Trae_space\BodyBalanceEvaluation\backend
[08/13 15:48:41.040448][debug][33028][Context.cpp:49] Config file version=1.1
[08/13 15:48:41.040498][debug][33028][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[08/13 15:48:41.040535][info][33028][Context.cpp:68] Context created with config: default config!
[08/13 15:48:41.040740][info][33028][Context.cpp:73] Work directory=D:\Trae_space\BodyBalanceEvaluation\backend, SDK version=v1.10.11-20240724-aeaa107e5
[08/13 15:48:41.041096][debug][33028][DeviceManager.cpp:30] DeviceManager init ...
[08/13 15:48:41.041115][info][33028][MfPal.cpp:105] createObPal: create WinPal!
[08/13 15:48:41.041278][debug][33028][MfPal.cpp:110] WmfPal init ...
[08/13 15:48:41.086748][debug][33028][MfPal.cpp:117] WmfPal created!
[08/13 15:48:41.086797][debug][33028][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[08/13 15:48:41.127243][debug][33028][EnumeratorLibusb.cpp:321] queryDevicesInfo done!
[08/13 15:48:41.127557][debug][33028][MfPal.cpp:216] Create WinEventDeviceWatcher!
[08/13 15:48:41.127750][debug][33028][UsbDeviceEnumerator.cpp:78] No matched usb device found!
[08/13 15:48:41.127781][info][33028][DeviceManager.cpp:15] Current found device(s): (0)
[08/13 15:48:41.127939][debug][33028][DeviceManager.cpp:52] DeviceManager construct done!
[08/13 15:48:41.127965][debug][33028][Context.cpp:81] Context destroying ...
[08/13 15:48:41.127982][debug][33028][DeviceManager.cpp:56] DeviceManager destroy ...
[08/13 15:48:41.127997][debug][33028][DeviceManager.cpp:64] DeviceManager Destructors done
[08/13 15:48:41.269764][debug][33028][MfPal.cpp:128] WmfPal destroyed!
[08/13 15:48:41.270601][info][33028][Context.cpp:84] Context destroyed

View File

@ -66,8 +66,14 @@ try:
logger=False,
engineio_logger=False,
ping_timeout=60,
ping_interval=25
ping_interval=25,
manage_session=False,
always_connect=False,
transports=['polling', 'websocket'], # 优先使用polling
allow_upgrades=True, # 允许升级到websocket
cookie=None # 禁用cookie
)
logger.info('SocketIO初始化成功')
except Exception as e:
logger.error(f'SocketIO初始化失败: {e}')
@ -91,7 +97,7 @@ if getattr(sys, 'frozen', False):
config_path = os.path.join(os.path.dirname(sys.executable), 'config.ini')
else:
# 如果是开发环境,配置文件在上级目录
config_path = os.path.join(os.path.dirname(__file__), '..', 'config.ini')
config_path = os.path.join(os.path.dirname(__file__), 'config.ini')
config.read(config_path, encoding='utf-8')
device_index = config.get('CAMERA', 'device_index', fallback=None)
@ -152,16 +158,38 @@ def init_app():
db_manager = DatabaseManager(db_path)
db_manager.init_database()
# 初始化设备管理器
# 初始化设备管理器(不自动初始化设备)
device_manager = DeviceManager(db_manager)
if socketio is not None:
logger.info('SocketIO已启用')
device_manager.set_socketio(socketio) # 设置WebSocket连接
# 初始化视频流管理器
video_stream_manager = VideoStreamManager(socketio, device_manager)
else:
logger.info('SocketIO未启用跳过WebSocket相关初始化')
video_stream_manager = None
# 可选:在后台线程中初始化设备,避免阻塞应用启动
def init_devices_async():
try:
device_manager._init_devices()
logger.info('后台设备初始化完成')
except Exception as e:
logger.error(f'后台设备初始化失败: {e}')
# 启动后台设备初始化线程
device_init_thread = threading.Thread(target=init_devices_async, daemon=True)
device_init_thread.start()
socketio.run(
app,
host='0.0.0.0', # 允许所有IP访问
port=5000,
debug=True,
use_reloader=False, # 禁用热重载以避免FemtoBolt设备资源冲突
log_output=True, # 输出详细日志
allow_unsafe_werkzeug=True
)
logger.info('应用初始化完成')
except Exception as e:
@ -173,13 +201,18 @@ def init_app():
@app.route('/health', methods=['GET'])
def health_check():
"""健康检查"""
"""健康检查接口"""
return jsonify({
'status': 'ok',
'status': 'healthy',
'timestamp': datetime.now().isoformat(),
'version': '1.0.0'
})
@app.route('/test-socketio')
def test_socketio():
"""SocketIO连接测试页面"""
return send_file('test_socketio_connection.html')
@app.route('/api/health', methods=['GET'])
def api_health_check():
"""API健康检查"""
@ -644,56 +677,6 @@ def calibrate_imu():
return jsonify({'success': False, 'error': str(e)}), 500
# ==================== 视频推流API ====================
@app.route('/api/streaming/start', methods=['POST'])
def start_video_streaming():
"""启动视频推流"""
try:
if not device_manager:
return jsonify({'success': False, 'error': '设备管理器未初始化'}), 500
# 设置WebSocket连接
device_manager.set_socketio(socketio)
result = device_manager.start_streaming()
logger.info(f'视频推流启动结果: {result}')
return jsonify({
'success': True,
'message': '视频推流已启动',
'streaming_status': result
})
except Exception as e:
logger.error(f'启动视频推流失败: {e}')
return jsonify({'success': False, 'error': str(e)}), 500
@app.route('/api/streaming/stop', methods=['POST'])
def stop_video_streaming():
"""停止视频推流"""
try:
if not device_manager:
return jsonify({'success': False, 'error': '设备管理器未初始化'}), 500
result = device_manager.stop_streaming()
if result:
logger.info('视频推流已停止')
return jsonify({
'success': True,
'message': '视频推流已停止'
})
else:
return jsonify({
'success': False,
'error': '停止推流失败'
}), 500
except Exception as e:
logger.error(f'停止视频推流失败: {e}')
return jsonify({'success': False, 'error': str(e)}), 500
# ==================== 检测API ====================
@app.route('/api/detection/start', methods=['POST'])
@ -1048,53 +1031,6 @@ def get_detection_sessions():
return jsonify({'success': False, 'error': str(e)}), 500
# ==================== 错误处理 ====================
@app.errorhandler(404)
def not_found(error):
return jsonify({'success': False, 'error': 'API接口不存在'}), 404
@app.errorhandler(500)
def internal_error(error):
return jsonify({'success': False, 'error': '服务器内部错误'}), 500
if __name__ == '__main__':
import argparse
# 解析命令行参数
parser = argparse.ArgumentParser(description='Body Balance Evaluation System Backend')
parser.add_argument('--host', default=None, help='Host address to bind to')
parser.add_argument('--port', type=int, default=None, help='Port number to bind to')
parser.add_argument('--debug', action='store_true', help='Enable debug mode')
args = parser.parse_args()
try:
# 初始化应用
init_app()
# 确定主机和端口
host = args.host if args.host else config.get('SERVER', 'host', fallback='127.0.0.1')
port = args.port if args.port else config.getint('SERVER', 'port', fallback=5000)
debug = args.debug if args.debug else config.getboolean('APP', 'debug', fallback=False)
# 启动Flask+SocketIO服务
logger.info(f'启动后端服务... Host: {host}, Port: {port}, Debug: {debug}')
socketio.run(app,
host=host,
port=port,
debug=debug,
use_reloader=False, # 禁用热重载以避免进程问题
log_output=True, # 启用详细日志
allow_unsafe_werkzeug=True
)
except KeyboardInterrupt:
logger.info('服务被用户中断')
except Exception as e:
logger.error(f'服务启动失败: {e}')
sys.exit(1)
finally:
logger.info('后端服务已停止')
# ==================== WebSocket 事件处理 ====================
# 只有当socketio不为None时才注册事件处理器
@ -1104,6 +1040,7 @@ if socketio is not None:
def handle_connect():
# print('CLIENT CONNECTED!!!', flush=True) # 控制台打印测试已关闭
logger.info('客户端已连接')
return True
@socketio.on('disconnect')
def handle_disconnect():
@ -1154,11 +1091,17 @@ if socketio is not None:
results['message'] = '所有相机启动成功'
logger.info(f'发送video_status事件: {results}')
emit('video_status', results)
try:
emit('video_status', results)
except Exception as emit_error:
logger.error(f'发送video_status事件失败: {emit_error}')
except Exception as e:
logger.error(f'启动视频流失败: {e}', exc_info=True)
emit('video_status', {'status': 'error', 'message': f'启动失败: {str(e)}'})
try:
emit('video_status', {'status': 'error', 'message': f'启动失败: {str(e)}'})
except Exception as emit_error:
logger.error(f'发送错误状态失败: {emit_error}')
@socketio.on('stop_video_stream')
def handle_stop_video(data=None):
@ -1192,11 +1135,17 @@ def handle_stop_video(data=None):
else:
results['message'] = '所有相机停止成功'
emit('video_status', results)
try:
emit('video_status', results)
except Exception as emit_error:
logger.error(f'发送video_status事件失败: {emit_error}')
except Exception as e:
logger.error(f'停止视频流失败: {e}')
emit('video_status', {'status': 'error', 'message': f'停止失败: {str(e)}'})
try:
emit('video_status', {'status': 'error', 'message': f'停止失败: {str(e)}'})
except Exception as emit_error:
logger.error(f'发送错误状态失败: {emit_error}')
@socketio.on('start_imu_streaming')
def handle_start_imu_streaming(data=None):
@ -1205,17 +1154,29 @@ def handle_start_imu_streaming(data=None):
if device_manager:
result = device_manager.start_imu_streaming()
if result:
emit('imu_status', {'status': 'success', 'message': 'IMU头部姿态数据推流已启动'})
try:
emit('imu_status', {'status': 'success', 'message': 'IMU头部姿态数据推流已启动'})
except Exception as emit_error:
logger.error(f'发送IMU状态失败: {emit_error}')
logger.info('IMU头部姿态数据推流已启动')
else:
emit('imu_status', {'status': 'error', 'message': 'IMU头部姿态数据推流启动失败'})
try:
emit('imu_status', {'status': 'error', 'message': 'IMU头部姿态数据推流启动失败'})
except Exception as emit_error:
logger.error(f'发送IMU状态失败: {emit_error}')
logger.error('IMU头部姿态数据推流启动失败')
else:
emit('imu_status', {'status': 'error', 'message': '设备管理器未初始化'})
try:
emit('imu_status', {'status': 'error', 'message': '设备管理器未初始化'})
except Exception as emit_error:
logger.error(f'发送IMU状态失败: {emit_error}')
logger.error('设备管理器未初始化')
except Exception as e:
logger.error(f'启动IMU数据推流失败: {e}')
emit('imu_status', {'status': 'error', 'message': f'启动失败: {str(e)}'})
try:
emit('imu_status', {'status': 'error', 'message': f'启动失败: {str(e)}'})
except Exception as emit_error:
logger.error(f'发送IMU状态失败: {emit_error}')
@socketio.on('stop_imu_streaming')
def handle_stop_imu_streaming(data=None):
@ -1224,17 +1185,29 @@ def handle_stop_imu_streaming(data=None):
if device_manager:
result = device_manager.stop_imu_streaming()
if result:
emit('imu_status', {'status': 'success', 'message': 'IMU头部姿态数据推流已停止'})
try:
emit('imu_status', {'status': 'success', 'message': 'IMU头部姿态数据推流已停止'})
except Exception as emit_error:
logger.error(f'发送IMU状态失败: {emit_error}')
logger.info('IMU头部姿态数据推流已停止')
else:
emit('imu_status', {'status': 'error', 'message': 'IMU头部姿态数据推流停止失败'})
try:
emit('imu_status', {'status': 'error', 'message': 'IMU头部姿态数据推流停止失败'})
except Exception as emit_error:
logger.error(f'发送IMU状态失败: {emit_error}')
logger.error('IMU头部姿态数据推流停止失败')
else:
emit('imu_status', {'status': 'error', 'message': '设备管理器未初始化'})
try:
emit('imu_status', {'status': 'error', 'message': '设备管理器未初始化'})
except Exception as emit_error:
logger.error(f'发送IMU状态失败: {emit_error}')
logger.error('设备管理器未初始化')
except Exception as e:
logger.error(f'停止IMU数据推流失败: {e}')
emit('imu_status', {'status': 'error', 'message': f'停止失败: {str(e)}'})
try:
emit('imu_status', {'status': 'error', 'message': f'停止失败: {str(e)}'})
except Exception as emit_error:
logger.error(f'发送IMU状态失败: {emit_error}')
@socketio.on('start_pressure_streaming')
def handle_start_pressure_streaming(data=None):
@ -1274,29 +1247,34 @@ def handle_stop_pressure_streaming(data=None):
logger.error(f'停止压力传感器数据推流失败: {e}')
emit('pressure_status', {'status': 'error', 'message': f'停止失败: {str(e)}'})
# 重复的事件处理器已删除,使用前面定义的版本
# ==================== 错误处理 ====================
@app.errorhandler(404)
def not_found(error):
return jsonify({'success': False, 'error': 'API接口不存在'}), 404
@app.errorhandler(500)
def internal_error(error):
return jsonify({'success': False, 'error': '服务器内部错误'}), 500
if __name__ == '__main__':
"""主入口点 - 用于直接运行和PyInstaller打包"""
import argparse
# 解析命令行参数
parser = argparse.ArgumentParser(description='Body Balance Evaluation System Backend')
parser.add_argument('--host', default=None, help='Host address to bind to')
parser.add_argument('--port', type=int, default=None, help='Port number to bind to')
parser.add_argument('--debug', action='store_true', help='Enable debug mode')
args = parser.parse_args()
try:
# 初始化应用
init_app()
# 启动服务器
logger.info("启动身体平衡评估系统后端服务...")
logger.info("服务器地址: http://localhost:5000")
socketio.run(
app,
host='0.0.0.0',
port=5000,
debug=False,
allow_unsafe_werkzeug=True
)
init_app()
except KeyboardInterrupt:
logger.info("用户中断,正在关闭服务器...")
logger.info('服务被用户中断')
except Exception as e:
logger.error(f"启动失败: {e}")
input("按回车键退出...")
sys.exit(1)
logger.error(f'服务启动失败: {e}')
sys.exit(1)
finally:
logger.info('后端服务已停止')

View File

@ -1,7 +1,8 @@
[APP]
name = Body Balance Evaluation System
version = 1.0.0
debug = false
debug = True
log_level = INFO
[SERVER]
@ -10,7 +11,7 @@ port = 5000
cors_origins = *
[DATABASE]
path = backend/data/body_balance.db
path = data/body_balance.db
backup_interval = 24
max_backups = 7
@ -19,9 +20,11 @@ camera_index = 0
camera_width = 640
camera_height = 480
camera_fps = 30
imu_port = COM3
imu_port = COM4
imu_baudrate = 9600
pressure_port = COM4
[DETECTION]
default_duration = 60
sampling_rate = 30
@ -35,7 +38,12 @@ chart_dpi = 300
export_format = csv
[SECURITY]
secret_key = 9179711d0d1bed10e105f39c9210cce273cbd73f85fbdfcd41e2d1e20d5c50bd
secret_key = 79fcc4983d478c2ee672f3305d5e12c7c84fd1b58a18acb650e9f8125bfa805f
session_timeout = 3600
max_login_attempts = 5
[DEFAULT]
# FemtoBolt深度相机配置
femtobolt_color_resolution = 720P
femtobolt_depth_range_min = 1400
femtobolt_depth_range_max = 1900

View File

@ -43,7 +43,7 @@ from database import DatabaseManager
try:
import pykinect_azure as pykinect
# 重新启用FemtoBolt功能使用正确的Orbbec SDK K4A Wrapper路径
FEMTOBOLT_AVAILABLE = True
FEMTOBOLT_AVAILABLE = False
print("信息: pykinect_azure库已安装FemtoBolt深度相机功能已启用")
print("使用Orbbec SDK K4A Wrapper以确保与FemtoBolt设备的兼容性")
except ImportError:
@ -125,21 +125,38 @@ class DeviceManager:
# WebSocket连接用于推流
self.socketio = None
# 初始化设备
self._init_devices()
# 延迟设备初始化,避免启动时阻塞
# self._init_devices() # 注释掉自动初始化,改为按需初始化
def _init_devices(self):
"""初始化所有设备"""
# 分别初始化各个设备,单个设备失败不影响其他设备
try:
self._init_camera()
self._init_femtobolt_camera()
self._init_imu()
self._init_pressure_sensor()
logger.info('设备初始化完成')
except Exception as e:
logger.error(f'设备初始化失败: {e}')
logger.error(f'摄像头初始化失败: {e}')
try:
if FEMTOBOLT_AVAILABLE:
self._init_femtobolt_camera()
except Exception as e:
logger.error(f'FemtoBolt深度相机初始化失败: {e}')
try:
logger.error('IMU传感器初始化!!!!!!!!!!!!!!!!')
self._init_imu()
except Exception as e:
logger.error(f'IMU传感器初始化失败: {e}')
try:
self._init_pressure_sensor()
except Exception as e:
logger.error(f'压力传感器初始化失败: {e}')
logger.info('设备初始化完成(部分设备可能初始化失败)')
def _init_camera(self):
"""初始化足部监视摄像头"""
@ -157,23 +174,10 @@ class DeviceManager:
except Exception as e:
logger.warning(f'读取摄像头设备索引配置失败使用默认值0: {e}')
else:
logger.warning('数据库管理器未初始化使用默认摄像头索引0')
# 尝试连接指定索引的摄像头
# self.camera = cv2.VideoCapture(device_index)
# if self.camera.isOpened():
# # 设置摄像头参数
# self.camera.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
# self.camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
# self.camera.set(cv2.CAP_PROP_FPS, 30)
# # 设置缓冲区大小为1避免帧积累
# self.camera.set(cv2.CAP_PROP_BUFFERSIZE, 1)
logger.warning('数据库管理器未初始化使用默认摄像头索引0')
self.device_status['camera'] = True
# logger.info(f'摄像头初始化成功,设备索引: {device_index}')
# else:
# logger.warning(f'摄像头连接失败,设备索引: {device_index}')
# self.camera = None
except Exception as e:
logger.error(f'摄像头初始化异常: {e}')
self.camera = None
@ -206,7 +210,7 @@ class DeviceManager:
# 从config.ini读取配置
import configparser
config = configparser.ConfigParser()
config.read(os.path.join(os.path.dirname(__file__), '..', 'config.ini'))
config.read(os.path.join(os.path.dirname(__file__), 'config.ini'))
# color_res_str = config.get('DEFAULT', 'femtobolt_color_resolution', fallback='1080P')
# depth_range_min = config.getint('DEFAULT', 'femtobolt_depth_range_min', fallback=500)
# depth_range_max = config.getint('DEFAULT', 'femtobolt_depth_range_max', fallback=4500)
@ -283,7 +287,7 @@ class DeviceManager:
# 从config.ini读取串口配置
config = configparser.ConfigParser()
# 优先读取根目录config.ini否则读取backend/config.ini
root_config_path = os.path.join(os.path.dirname(__file__), '..', 'config.ini')
root_config_path = os.path.join(os.path.dirname(__file__), 'config.ini')
app_root_config_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'config.ini')
logger.debug(f'尝试读取配置文件: {root_config_path}, {app_root_config_path}')
@ -1921,7 +1925,7 @@ class DeviceManager:
logger.error(f'清理过期帧失败: {e}')
class RealIMUDevice:
"""真实IMU设备通过串口读取姿态数据"""
def __init__(self, port: str = 'COM7', baudrate: int = 9600):
def __init__(self, port: str = 'COM4', baudrate: int = 9600):
self.port = port
self.baudrate = baudrate
self.ser = None
@ -2286,9 +2290,9 @@ class VideoStreamManager:
"""加载RTSP配置"""
try:
config = configparser.ConfigParser()
config_path = os.path.join(os.path.dirname(__file__), '..', 'config.ini')
config_path = os.path.join(os.path.dirname(__file__), 'config.ini')
config.read(config_path, encoding='utf-8')
device_index_str = config.get('CAMERA', 'device_index', fallback='0')
device_index_str = config.get('DEVICES', 'camera_index', fallback='0')
self.device_index = int(device_index_str) if device_index_str else 0
logger.info(f'视频监控设备配置加载完成,设备号: {self.device_index}')
except Exception as e:

View File

@ -0,0 +1,79 @@
<!DOCTYPE html>
<html>
<head>
<title>SocketIO连接测试</title>
<script src="https://cdn.socket.io/4.0.0/socket.io.min.js"></script>
</head>
<body>
<h1>SocketIO连接测试</h1>
<div id="status">连接状态: 未连接</div>
<div id="messages"></div>
<button onclick="testConnection()">测试连接</button>
<button onclick="testEmit()">测试发送消息</button>
<script>
let socket;
const statusDiv = document.getElementById('status');
const messagesDiv = document.getElementById('messages');
function addMessage(msg) {
const div = document.createElement('div');
div.textContent = new Date().toLocaleTimeString() + ': ' + msg;
messagesDiv.appendChild(div);
}
function testConnection() {
try {
socket = io('http://127.0.0.1:5000', {
transports: ['polling', 'websocket'],
upgrade: true,
timeout: 10000
});
socket.on('connect', function() {
statusDiv.textContent = '连接状态: 已连接';
statusDiv.style.color = 'green';
addMessage('SocketIO连接成功');
});
socket.on('disconnect', function() {
statusDiv.textContent = '连接状态: 已断开';
statusDiv.style.color = 'red';
addMessage('SocketIO连接断开');
});
socket.on('connect_error', function(error) {
statusDiv.textContent = '连接状态: 连接错误';
statusDiv.style.color = 'red';
addMessage('连接错误: ' + error.message);
});
socket.on('video_status', function(data) {
addMessage('收到视频状态: ' + JSON.stringify(data));
});
socket.on('imu_status', function(data) {
addMessage('收到IMU状态: ' + JSON.stringify(data));
});
} catch (error) {
addMessage('连接异常: ' + error.message);
}
}
function testEmit() {
if (socket && socket.connected) {
socket.emit('start_video_stream', {});
addMessage('发送start_video_stream事件');
} else {
addMessage('Socket未连接无法发送消息');
}
}
// 自动测试连接
window.onload = function() {
testConnection();
};
</script>
</body>
</html>

View File

@ -30,7 +30,7 @@ class CameraViewer:
if __name__ == "__main__":
# 修改这里的数字可以切换不同摄像头设备
viewer = CameraViewer(device_index=3)
viewer = CameraViewer(device_index=0)
viewer.start_stream()
# import ctypes

View File

@ -19,11 +19,9 @@ camera_index = 0
camera_width = 640
camera_height = 480
camera_fps = 30
imu_port = COM9
imu_baudrate = 9600
imu_port = COM3
pressure_port = COM4
[DETECTION]
default_duration = 60
sampling_rate = 30
@ -37,15 +35,7 @@ chart_dpi = 300
export_format = csv
[SECURITY]
secret_key = 79fcc4983d478c2ee672f3305d5e12c7c84fd1b58a18acb650e9f8125bfa805f
secret_key = 4bfd3d60ddecef23973b64d761371610130034f23ce90dd6f405756ad2f89495
session_timeout = 3600
max_login_attempts = 5
[CAMERA]
device_index = 3
[DEFAULT]
# FemtoBolt深度相机配置
femtobolt_color_resolution = 720P
femtobolt_depth_range_min = 1400
femtobolt_depth_range_max = 1900

View File

@ -1,278 +0,0 @@
{
"app": {
"name": "身体平衡评估系统",
"version": "1.0.0",
"description": "基于多传感器融合技术的专业平衡能力评估与分析系统",
"author": "身体平衡评估系统开发团队",
"language": "zh-CN",
"theme": "light",
"auto_start": false,
"auto_update": true,
"window": {
"width": 1200,
"height": 800,
"min_width": 1000,
"min_height": 600,
"resizable": true,
"center": true,
"show": true,
"frame": true,
"transparent": false,
"always_on_top": false
}
},
"server": {
"host": "0.0.0.0",
"port": 5000,
"debug": false,
"cors": {
"enabled": true,
"origins": ["http://192.168.1.38:3000"]
},
"ssl": {
"enabled": false,
"cert_file": "",
"key_file": ""
},
"rate_limit": {
"enabled": true,
"requests_per_minute": 100
}
},
"database": {
"type": "sqlite",
"path": "backend/data/body_balance.db",
"backup": {
"enabled": true,
"interval_hours": 24,
"max_backups": 7
},
"connection": {
"timeout": 30,
"pool_size": 10
}
},
"devices": {
"camera": {
"enabled": true,
"device_id": 0,
"resolution": {
"width": 1280,
"height": 720
},
"fps": 30,
"format": "MJPG",
"auto_exposure": true,
"brightness": 0,
"contrast": 0,
"saturation": 0,
"calibration": {
"enabled": false,
"matrix": null,
"distortion": null
}
},
"imu": {
"enabled": true,
"port": "COM3",
"baudrate": 115200,
"timeout": 1.0,
"sample_rate": 100,
"range": {
"accelerometer": 16,
"gyroscope": 2000,
"magnetometer": 4800
},
"calibration": {
"enabled": false,
"offset": {
"accel": [0, 0, 0],
"gyro": [0, 0, 0],
"mag": [0, 0, 0]
},
"scale": {
"accel": [1, 1, 1],
"gyro": [1, 1, 1],
"mag": [1, 1, 1]
}
}
},
"pressure": {
"enabled": true,
"port": "COM4",
"baudrate": 9600,
"timeout": 1.0,
"sample_rate": 50,
"sensors": 4,
"range": {
"min": 0,
"max": 1000
},
"calibration": {
"enabled": false,
"zero_offset": [0, 0, 0, 0],
"scale_factor": [1, 1, 1, 1]
}
}
},
"detection": {
"default_duration": 60,
"min_duration": 10,
"max_duration": 300,
"sample_rate": 30,
"recording": {
"enabled": true,
"format": "mp4",
"quality": "medium",
"fps": 30
},
"analysis": {
"real_time": true,
"pose_detection": {
"enabled": true,
"model": "mediapipe",
"confidence": 0.5,
"tracking": true
},
"balance_metrics": {
"cop_analysis": true,
"sway_analysis": true,
"stability_index": true,
"frequency_analysis": true
},
"filters": {
"low_pass": {
"enabled": true,
"cutoff": 10.0
},
"median": {
"enabled": true,
"window_size": 5
}
}
},
"alerts": {
"enabled": true,
"thresholds": {
"excessive_sway": 50.0,
"instability": 0.8,
"device_disconnect": 5.0
}
}
},
"data": {
"storage": {
"base_path": "data",
"patients_path": "data/patients",
"sessions_path": "data/sessions",
"exports_path": "data/exports",
"backups_path": "data/backups",
"temp_path": "temp",
"logs_path": "logs"
},
"cleanup": {
"enabled": true,
"temp_files_days": 7,
"log_files_days": 30,
"session_files_days": 365
},
"compression": {
"enabled": true,
"algorithm": "gzip",
"level": 6
},
"export": {
"formats": ["csv", "json", "pdf"],
"include_raw_data": true,
"include_analysis": true,
"include_charts": true
}
},
"logging": {
"level": "INFO",
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
"file": {
"enabled": true,
"path": "logs/app.log",
"max_size": "10MB",
"backup_count": 5,
"rotation": "daily"
},
"console": {
"enabled": true,
"level": "INFO"
},
"modules": {
"flask": "WARNING",
"werkzeug": "WARNING",
"urllib3": "WARNING",
"matplotlib": "WARNING"
}
},
"security": {
"session": {
"timeout_minutes": 60,
"secret_key": "your-secret-key-here",
"secure_cookies": false
},
"api": {
"rate_limiting": true,
"request_timeout": 30,
"max_request_size": "100MB"
},
"data": {
"encryption": false,
"backup_encryption": false,
"anonymization": {
"enabled": false,
"fields": ["name", "phone", "email"]
}
}
},
"ui": {
"language": "zh-CN",
"theme": "light",
"animations": true,
"sound_effects": true,
"notifications": {
"enabled": true,
"position": "top-right",
"duration": 5000
},
"charts": {
"default_type": "line",
"colors": {
"primary": "#409EFF",
"success": "#67C23A",
"warning": "#E6A23C",
"danger": "#F56C6C",
"info": "#909399"
},
"animation_duration": 1000
},
"table": {
"page_size": 20,
"show_pagination": true,
"sortable": true,
"filterable": true
}
},
"performance": {
"monitoring": {
"enabled": true,
"interval_seconds": 60,
"metrics": ["cpu", "memory", "disk", "network"]
},
"optimization": {
"image_compression": true,
"data_caching": true,
"lazy_loading": true,
"batch_processing": true
},
"limits": {
"max_concurrent_sessions": 5,
"max_file_size_mb": 100,
"max_session_duration_minutes": 300
}
}
}

View File

@ -74,7 +74,7 @@ def check_debug_environment():
# 检查必要文件
required_files = [
'backend/app.py',
'config.ini',
'backend/config.ini',
'backend/requirements.txt'
]
@ -120,15 +120,15 @@ def start_debug_server():
logger.info('按 Ctrl+C 停止服务器')
# 启动SocketIO服务器支持调试和远程访问
socketio.run(
app,
host='0.0.0.0', # 允许所有IP访问
port=5000,
debug=True,
use_reloader=False, # 禁用热重载以避免FemtoBolt设备资源冲突
log_output=True, # 输出详细日志
allow_unsafe_werkzeug=True
)
# socketio.run(
# app,
# host='0.0.0.0', # 允许所有IP访问
# port=5000,
# debug=True,
# use_reloader=False, # 禁用热重载以避免FemtoBolt设备资源冲突
# log_output=True, # 输出详细日志
# allow_unsafe_werkzeug=True
# )
except KeyboardInterrupt:
logger.info('服务器被用户中断')