Compare commits

...

659 Commits

Author SHA1 Message Date
peterlu14 07c3f6c9a6 [update] file show working mode 2022-08-13 22:41:00 +08:00
peterlu14 7fb30ffa0a [update] remove replay Axis option cycle 2022-08-13 22:05:14 +08:00
peterlu14 d501d2e01d [update] change default unit & change idiot to not support 2022-08-13 21:53:00 +08:00
peterlu14 99d903dcbf [debug] fix init Time-X Graph change xAxis to other cause chart crush problem (cost lots time) 2022-08-13 21:52:24 +08:00
peterlu14 599838adc5 [debug] fix init not showing data 2022-08-13 21:51:05 +08:00
peterlu14 c9593e2a6e [update] remove old code & refreshformatter no need to refreshChart 2022-08-13 21:50:24 +08:00
peterlu14 16e3e49168 [debug] fix cycle not showing & data null & rules followed by controlPanel 2022-08-13 20:38:45 +08:00
peterlu14 fb0d8bd3f2 [update] replay hide old methods 2022-08-12 21:34:33 +08:00
peterlu14 2f1fe88a60 [update] remove 456456 2022-08-12 21:10:28 +08:00
peterlu14 1eca3c0e72 [update] chart ui resize & mac address to uppercase 2022-08-12 21:09:57 +08:00
peterlu14 1f72708e69 [update] chart name uppercase 2022-08-12 21:08:20 +08:00
peterlu14 8efeb6572d Merge remote-tracking branch 'origin/dev/replayControlPanelFix' into release/v1.3.1/issue_fixed 2022-08-12 19:00:23 +08:00
nthu1080112244 3fce79d6c9 [update] replay control panel & real time layout 2022-08-12 18:57:42 +08:00
peterlu14 52d93f7fad Merge remote-tracking branch 'origin/dev/adjust_button' into release/v1.3.1/issue_fixed 2022-08-12 18:51:33 +08:00
sss28072637 4178842ba3 [update] update button icon 2022-08-12 18:06:33 +08:00
sss28072637 625908053b [fix] fix select-box of device 2022-08-12 11:05:48 +08:00
peterlu14 94eb83ec24 [update] fix replay legend label not showing 2022-08-11 20:33:45 +08:00
peterlu14 4bd25148de [update] hide overview chart legend name 2022-08-11 19:14:37 +08:00
sss28072637 17feeb893e [update] device automatically connect when clicking project 2022-08-11 18:19:28 +08:00
peterlu14 f6b66f0114 [update] hide control panel 2022-08-11 17:36:39 +08:00
peterlu14 a256112c6b [update] refresh timer speed up 2022-08-11 15:20:14 +08:00
sss28072637 0ad6b39f96 [update] add button of each task & add close btn 2022-08-11 15:18:11 +08:00
peterlu14 bad7406b10 [update] remove duplicate router 2022-08-11 13:33:05 +08:00
peterlu14 957e806abb [debug] fix last data not show 2022-08-11 13:32:38 +08:00
peterlu14 0824a6b534 [update] remove max limit & short max range 2022-08-11 11:20:45 +08:00
peterlu14 95f1e05b7e [debug] fix databufferstream not clear problem 2022-08-11 11:19:30 +08:00
peterlu14 1fae8538e8 Merge branch 'dev/debug' into release/v1.3.0/replay-capture-sgFilter 2022-08-11 01:04:28 +08:00
peterlu14 f92ba3d098 Merge remote-tracking branch 'origin/dev/scheduler-function' into release/v1.3.0/replay-capture-sgFilter 2022-08-11 01:04:25 +08:00
peterlu14 28b6ee9aa8 Merge remote-tracking branch 'origin/dev/task_button_scheduler' into release/v1.3.0/replay-capture-sgFilter 2022-08-11 01:04:08 +08:00
peterlu14 1a028c1595 Merge remote-tracking branch 'origin/dev/replayControlPanelFix' into release/v1.3.0/replay-capture-sgFilter 2022-08-11 01:02:25 +08:00
peterlu14 b3a745252f [update] add show datastream buffer in dev mode 2022-08-11 00:59:14 +08:00
peterlu14 d229e1be28 [update] add debug button (show data) 2022-08-11 00:51:58 +08:00
peterlu14 c95bc79096 [update] rename developer mode & bind key 2022-08-10 23:56:38 +08:00
peterlu14 ac19737527 [update] default time unit ms -> s 2022-08-10 22:21:18 +08:00
peterlu14 69e4af91af [update] remove x-axis interval and select all buttons & resize grid and dataZoom and asixLabel 2022-08-10 22:20:54 +08:00
peterlu14 cd961f70f9 [warning] remove warning of e-charts update 2022-08-10 22:13:53 +08:00
nthu1080112244 fc5c222dc7 [update] unit and functional can works 2022-08-10 18:09:38 +08:00
sss28072637 ff3a9061de [update] add setting button to the row of Task 2022-08-10 17:59:33 +08:00
108000207 89e80a67af [update] add the router for Project(scheduler) 2022-08-10 14:02:44 +08:00
nthu1080112244 868577de7d [update] new comtrol panel block 2022-08-10 12:06:35 +08:00
sss28072637 82dfb8a5ff Merge branch 'release/v1.3.0/replay-capture-sgFilter' of https://gitlab.com/wisetop/controller/wisetopvue into release/v1.3.0/replay-capture-sgFilter 2022-08-09 17:49:08 +08:00
peterlu14 8b7b92bffb [update] add eis ca mode 2022-08-09 14:54:32 +08:00
peterlu14 1b38bd1c00 [debug] fix library rename cause scheduler not showing problem 2022-08-09 14:53:12 +08:00
sss28072637 726e262124 [debug] fix dataZoom of Slider 2022-08-09 11:16:25 +08:00
peterlu14 ab630b88e6 [update] fix replay show panel (x-axis not yet) 2022-08-09 09:11:56 +08:00
peterlu14 d83ae9370f remove brush in factory & hide value 2022-08-08 17:51:51 +08:00
peterlu14 a11393f512 Merge branch 'dev/sg-filter' into release/v1.3.0/replay-capture-sgFilter 2022-08-08 17:34:02 +08:00
peterlu14 69d604045e Merge remote-tracking branch 'origin/testing/echarts-update' into release/v1.3.0/replay-capture-sgFilter 2022-08-08 17:32:09 +08:00
peterlu14 26cb680e6f Merge remote-tracking branch 'origin/dev/capture_chartData' into release/v1.3.0/replay-capture-sgFilter 2022-08-08 17:31:50 +08:00
peterlu14 815754ddf6 [debug] fix file name not refresh problem 2022-08-08 17:25:55 +08:00
peterlu14 d29a5a11e1 [update] fix ca mode naming problem 2022-08-08 17:05:42 +08:00
peterlu14 f1781037be [update] sg-filter 2022-08-08 17:03:42 +08:00
108000207 cfab65e4a0 [update] check the calculation of specific integral done 2022-08-08 16:43:52 +08:00
sss28072637 fdd8c29bfb [update] finish capture data & boundaryGap 2022-08-08 16:36:09 +08:00
108000207 ad4d31ce64 [update] SpecificIntegral component works 2022-08-08 10:29:21 +08:00
sss28072637 5a9349d903 [update] add boundaryGap (need to be adjustable) 2022-08-05 18:23:10 +08:00
108000207 e1453cf107 [update] new component for Specific Integral, but haven't connect with TopControlPanel 2022-08-05 18:18:44 +08:00
108000207 1453e70915 [update] add auto refresh after blur the va-input 2022-08-05 18:00:37 +08:00
108000207 2791d20173 [update] add va-input for the brush boundary 2022-08-05 17:36:52 +08:00
108000207 bd314b03dc [update] add specific integral on replay 2022-08-05 11:33:11 +08:00
sss28072637 a801c0626a [update] add the new function of capturing chart to a new chart 2022-08-04 17:47:34 +08:00
peterlu14 5f3f3110d9 [update] fix loading 2022-08-04 13:33:38 +08:00
peterlu14 41b00129ef [update] echarts update version 5.3.3 2022-08-04 10:39:27 +08:00
peterlu14 13cb610302 Merge branch 'release/v1.2.8/realtime-tool' into testing/echarts-update 2022-08-04 10:14:54 +08:00
peterlu14 b7b70b86e2 Merge remote-tracking branch 'origin/dev/fix_dataZoom' into release/v1.2.8/realtime-tool 2022-08-03 14:50:36 +08:00
sss28072637 2575a97894 [debug] fix real-time dataZoom bug 2022-08-03 14:45:38 +08:00
peterlu14 a1f09942d9 Merge branch 'release/v1.2.9/fix-testing-bugs' into release/v1.2.8/realtime-tool 2022-08-02 18:42:49 +08:00
peterlu14 e9dc718d85 [update] fix cache with controller id 2022-08-02 16:25:47 +08:00
108000207 2f7a6b97e7 Merge branch 'dev/replay-calculation' into release/v1.2.8/realtime-tool 2022-08-02 14:35:31 +08:00
108000207 11a6de5e57 [update] add the getPanelInfo for tooltips formatter 2022-08-02 14:21:13 +08:00
peterlu14 7630951470 Merge remote-tracking branch 'origin/dev/realTimeDisplay_realTimeCalculation' into release/v1.2.8/realtime-tool 2022-08-02 12:52:16 +08:00
nthu1080112244 eb672d9c0a [update] real time cycle display 2022-08-02 12:51:19 +08:00
sss28072637 566f59e29c fix replay bugs, add integral in I-V mode(replay & realtime) and fix integral bugs 2022-08-01 18:22:01 +08:00
peterlu14 f06003304a Merge branch 'release/v1.2.9/fix-testing-bugs' into release/v1.2.8/realtime-tool 2022-07-29 14:54:26 +08:00
peterlu14 c0fc13c451 [update] cp-mode rename 2022-07-29 14:54:07 +08:00
peterlu14 ab1df2cfe1 [update] add time duration in excel and replay & add cp mode volt unit 2022-07-29 10:16:05 +08:00
peterlu14 0b01d6c785 [update] fix display problem & help pic 2022-07-28 16:56:26 +08:00
peterlu14 d769a50459 [debug] charge/discharge value error 2022-07-28 14:58:47 +08:00
peterlu14 dac276c9de [debug] fix cc mode charge display error 2022-07-28 14:40:36 +08:00
peterlu14 65c00031e3 [debug] fix volt step unit error 2022-07-28 10:35:51 +08:00
peterlu14 0ff3dd556f [update] remove vue warn 2022-07-28 10:30:09 +08:00
peterlu14 968c578cee Merge branch 'dev/realTimeDisplay_realTimeCalculation' into 'release/v1.2.8/realtime-tool'
[debug]  fix the conflict between display tool and funtional tool

See merge request wisetop/controller/wisetopvue!1
2022-07-28 02:22:44 +00:00
peterlu14 b3510b1990 [debug] fix volt step unit error 2022-07-28 10:05:47 +08:00
108000207 7fc8d24a71 [update] add replay functional, need to check the time gap 2022-07-27 18:31:52 +08:00
nthu1080112244 35d45a36a4 [update] time-axis formatter 2022-07-27 18:31:16 +08:00
nthu1080112244 f1a55c3cd1 [debug] remove useless code 2022-07-27 14:09:20 +08:00
nthu1080112244 2577dcba9a [update] 1. built and use CanvasChartTable.js
2. merge real time functional amd real time display
                3. tooltip update
2022-07-27 13:41:33 +08:00
108000207 f2709241d2 [init] add CanvasChartReplayCalculation component 2022-07-27 09:56:20 +08:00
ROY 632762ce14 [update] library EliteEIS rename cause replay problem 2022-07-26 18:29:34 +08:00
sss28072637 63b627622b [update] use setTimeOut to make the emit from changeScale work 2022-07-26 18:07:30 +08:00
ROY e4e89a414a [update] fix library rename replay nameing bug 2022-07-26 14:00:15 +08:00
ROY 921166cdc7 [update] update library name & change global chart setting 2022-07-26 11:05:50 +08:00
peterlu14 a3e7c7e2a6 Merge remote-tracking branch 'origin/dev/realTimeDisplayNew' into release/v1.2.8/realtime-tool 2022-07-26 09:53:25 +08:00
peterlu14 7469d270d0 Merge remote-tracking branch 'origin/dev/realtime-tool-fixed' into release/v1.2.8/realtime-tool 2022-07-26 09:53:21 +08:00
nthu1080112244 3c4676ec2c [update] construct new table for chart axis unit 2022-07-26 09:45:49 +08:00
sss28072637 265c363858 fix real-time tooltips 2022-07-25 14:14:26 +08:00
peterlu14 89da594392 Merge remote-tracking branch 'origin/dev/haolung' into release/v1.2.8/realtime-tool 2022-07-22 16:24:33 +08:00
sss28072637 436ed27479 fix button bug 2022-07-22 14:55:42 +08:00
peterlu14 ea14ee2f3e [update] remove redundence code 2022-07-22 14:31:16 +08:00
peterlu14 4416367acf [update] fix replay tooltip problem 2022-07-22 14:31:13 +08:00
peterlu14 e44c1e4c18 [update] fix merge config table problem 2022-07-22 14:31:09 +08:00
peterlu14 4910719aa4 Merge remote-tracking branch 'origin/dev/real_time_value' into release/v1.2.8/realtime-tool 2022-07-22 14:30:32 +08:00
peterlu14 223e898d5e [update] fix config-table rename problem ( download, replay ) 2022-07-22 14:25:05 +08:00
sss28072637 1e80731438 separate the calculation file 2022-07-22 14:17:09 +08:00
peterlu14 d3d080eb08 [update] add EIS mimi 2022-07-22 10:34:07 +08:00
nthu1080112244 0bd84d865f [update] integrate axis unit, tooltip information 2022-07-22 09:41:40 +08:00
sss28072637 b14488cf49 simplify the code (ver1) 2022-07-21 17:08:49 +08:00
peterlu14 4dda2d0a6a [update] switch page remove cache fix 2022-07-21 17:02:16 +08:00
sss28072637 3460a0bfa0 fix time axisLabel 2022-07-21 11:46:47 +08:00
sss28072637 90738611eb (07/20) finish differential, log, integral, add additional function, fix bugs and clear console log 2022-07-20 17:12:30 +08:00
peterlu14 35ba66ddd6 Merge branch 'release/v1.2.5/task_configuration' into release/v1.2.7/scheduler-parameter 2022-07-20 09:53:03 +08:00
peterlu14 4c3c63a0ba [update] schedule parameter fix & config-table add default value 2022-07-20 09:52:40 +08:00
sss28072637 d22653a5a5 clear console error 2022-07-19 16:38:39 +08:00
sss28072637 05cae92b12 finish integral, differential and log 2022-07-19 14:59:08 +08:00
sss28072637 adbf30f08d Merge remote-tracking branch 'origin/release/v1.2.5/task_configuration' into dev/haolung 2022-07-19 11:32:16 +08:00
nthu1080112244 5fe321828a Merge remote-tracking branch 'origin/release/v1.2.5/task_configuration' into dev/real_time_value 2022-07-19 11:30:21 +08:00
peterlu14 ca823d174b [update] reset series data type error fix 2022-07-19 11:26:46 +08:00
nthu1080112244 2e573e2c72 [update] add coment 2022-07-19 11:22:55 +08:00
nthu1080112244 84d136d4cf [update] real time display modularization 2022-07-18 18:28:23 +08:00
nthu1080112244 9b296c45bd [update] complete real time value display 2022-07-18 15:13:16 +08:00
nthu1080112244 ef9db8bee2 Merge commit 'bcf7b51dc6f0c241ab2f8bd3fdffb4173a5e7693' into dev/real_time_value 2022-07-18 14:15:23 +08:00
sss28072637 175f4ef23e Merge remote-tracking branch 'origin/release/v1.2.5/task_configuration' into dev/haolung 2022-07-18 10:28:38 +08:00
sss28072637 eba7c080b4 merge_0718 2022-07-18 09:55:05 +08:00
nthu1080112244 7c4515521d [update] unit correction, real time value bar 2022-07-15 19:40:34 +08:00
peterlu14 3db09734d2 [update] use deviceParameterWindow instead 2022-07-15 10:08:24 +08:00
peterlu14 c0e3a9c61a [update] rename param-table to config-table & add api to config 2022-07-15 10:08:24 +08:00
peterlu14 bcf7b51dc6 [update] mapping unify format string 2022-07-15 10:05:24 +08:00
peterlu14 ba660ac952 [update] fix girdsource not clear problem 2022-07-14 10:21:39 +08:00
sss28072637 1062aea8db fix tooltip constructor parameters, start / stop clicked reset, clear console errors, add differential function, get timeIndex automatically 2022-07-13 16:33:17 +08:00
sss28072637 b1f9edc624 Merge remote-tracking branch 'origin/release/v1.2.5/task_configuration' into dev/haolung 2022-07-13 09:37:41 +08:00
sss28072637 9210646611 add comments 2022-07-12 18:17:38 +08:00
sss28072637 de2315cd5b finish integral and log 2022-07-12 17:33:01 +08:00
sss28072637 ec231aa368 fix stop mode intergration 2022-07-12 15:33:21 +08:00
nthu1080112244 7b6948d027 Merge remote-tracking branch 'origin/release/v1.2.5/task_configuration' into dev/real_time_value 2022-07-12 15:15:12 +08:00
nthu1080112244 28f1aef82c [update] default real time representation 2022-07-12 15:14:31 +08:00
sss28072637 908db19110 finish mode switch button 2022-07-12 14:06:12 +08:00
sss28072637 9520e5102c finish integral of VT_mode 2022-07-12 12:02:58 +08:00
peterlu14 d171d8b572 [update] only refresh chart which device running 2022-07-12 10:41:43 +08:00
peterlu14 1e57bde1df [update] chartID uuid && fix mappingID -1 && reset series data && chart created manual or default 2022-07-12 10:38:04 +08:00
peterlu14 0946b01a41 [update] prop chartID add new type 2022-07-12 10:30:36 +08:00
peterlu14 a25e784fd4 Merge branch 'release/v1.2.4/develop_env_var' 2022-07-07 09:35:39 +08:00
peterlu14 ff18fdd8bd [update] add development env variable to control websocket ip 2022-06-29 15:58:23 +08:00
peterlu14 4c4631e89b [update] add debug page 2022-06-29 11:42:03 +08:00
peterlu14 7480717cac Merge branch 'release/v1.2.2/led_testing&download_all' 2022-06-24 15:11:44 +08:00
peterlu14 a29d32fd0f [update] add download all 2022-06-23 20:01:41 +08:00
peterlu14 942e98199e [update] add developer page with LED testing 2022-06-23 20:00:40 +08:00
peterlu14 482caf9650 Merge branch 'release/v.1.2.1/restruct_taskInfo_and_param' 2022-06-23 17:50:36 +08:00
peterlu14 3dfbf809e0 [update] fix chart source name with memory board 2022-06-23 17:35:11 +08:00
peterlu14 e15b1ea27c [update] add frontend version 2022-06-22 22:01:52 +08:00
peterlu14 5829c6c0f4 [update] cut old new file 2022-06-22 19:24:27 +08:00
peterlu14 eeb0775aa3 [update] replace item with new item 2022-06-22 17:23:29 +08:00
peterlu14 fbf8fe1a19 [update] fix eis replay mode problem (temp) 2022-06-22 16:31:41 +08:00
peterlu14 1172b1220c [update] fix pulse sensing replay parameter 2022-06-22 16:12:07 +08:00
peterlu14 f6ef173edb [update] fix eis equation correction 2022-06-22 13:36:56 +08:00
peterlu14 5d03d156e1 [update] fix unit μ encoding problem 2022-06-22 11:20:16 +08:00
peterlu14 7eaf49e19e [update] fix pulseing download 2022-06-21 16:14:01 +08:00
peterlu14 704b3bf0af [update] remove resource error 2022-06-17 19:49:48 +08:00
peterlu14 a44e96a96c [update] add input range slider component 2022-06-17 19:48:31 +08:00
peterlu14 a69b980684 [update] add pulse sensing mode 2022-06-17 19:48:09 +08:00
peterlu14 280951aa05 [update] remove key && fix isNaN('') equal false problem 2022-06-14 18:04:44 +08:00
peterlu14 f0af54aacd [update] add new component MultiInputField 2022-06-14 18:01:17 +08:00
peterlu14 05dc4d278c [update] recover FREQ component & fix current range option 2022-06-14 18:00:02 +08:00
peterlu14 cab5f91a18 [update] add new component for display and update 2022-06-14 16:59:15 +08:00
peterlu14 cd0665dbb3 [update] add EIS & EliteZM15 DPV mode 2022-06-14 16:58:41 +08:00
peterlu14 9265a45371 [update] fix disable HIGHZ & guide show in ZM15 2022-06-14 16:56:18 +08:00
peterlu14 a8663fc9b9 [update] paramTable MODE_OPTIONS replace local options 2022-06-14 16:51:38 +08:00
peterlu14 5acbab5b37 [update] add memory info 2022-06-07 15:03:39 +08:00
peterlu14 31680a6360 [fix] download export header error 2022-06-07 14:45:02 +08:00
peterlu14 5beaaf2d3d [fix] replay showing parameter errror 2022-06-07 14:44:27 +08:00
peterlu14 8519f70fb3 [update] remove taskInfo use newDeviceList instead & new parameter table 2022-06-07 14:43:52 +08:00
peterlu14 52c391fea1 [update] add new parameter response speed 2022-05-20 14:03:04 +08:00
peterlu14 7cb1286af3 [update] cp mode download timestamp fix 2022-05-18 13:14:33 +08:00
peterlu14 4b7961a388 Merge branch 'feature/time_control' into release/v1.1.4_merge_with_configuration 2022-05-18 10:42:17 +08:00
peterlu14 f3841c1008 [update] add new parameter time_duration 2022-05-18 10:23:44 +08:00
peterlu14 66673ff3cb Merge branch 'feature/merge_with_config' into release/v1.1.4_merge_with_configuration 2022-05-11 19:23:25 +08:00
peterlu14 e222a6a5d4 Revert "[update] fix chart source duplicate problem"
This reverts commit d7d49db966.
2022-05-11 19:23:06 +08:00
peterlu14 6985bf79ba Merge branch 'feature/merge_with_config' into release/1.1.4_merge_with_comfiguration 2022-05-11 18:23:32 +08:00
peterlu14 6fa80c4e47 [update] append formula function in dev mode 2022-05-11 17:57:50 +08:00
peterlu14 0d13a10a99 [update] disable chart show filter & cursor change 2022-05-11 17:57:24 +08:00
peterlu14 5781e7398b [update] change legend & axis label color 2022-05-11 17:56:51 +08:00
peterlu14 d7d49db966 [update] fix chart source duplicate problem 2022-05-11 17:56:07 +08:00
peterlu14 f86c82825e [update] fix html element end tag error 2022-05-11 17:54:33 +08:00
peterlu14 ebdc2355f9 [update] fix merge configuration causing problems 2022-05-11 17:25:54 +08:00
peterlu14 5a56aedfd0 [update] fix header value not follwing unit error 2022-05-10 19:37:06 +08:00
peterlu14 dbaefcb6bb Merge branch 'feature/configuration_1.0' into release/v1.1.3_csv_header 2022-05-10 10:50:19 +08:00
peterlu14 e60e17fa28 [update] fix replay eis unit error 2022-05-09 17:20:11 +08:00
peterlu14 32ee3b815e [update] change cg mode sample rate display 2022-05-09 17:02:28 +08:00
peterlu14 4dbc8bddfd [update] add export controller info 2022-05-09 17:01:58 +08:00
peterlu14 ce376fd5a9 [update] update pulse mode parameter setting 2022-05-09 16:58:38 +08:00
peterlu14 3bfabb8333 [update] update eis parameter table 2022-05-09 16:57:35 +08:00
peterlu14 2232c1e17c [update] header-param & showName enable call func 2022-05-09 16:56:51 +08:00
peterlu14 06386fff2a [update] sample_rate name from string to function 2022-05-09 16:55:12 +08:00
peterlu14 5a45d33d63 [update] change headerParameter from array to func 2022-05-09 16:53:41 +08:00
peterlu14 a27503c09b [update] fix download data spacing problem (when data is not defined) 2022-05-06 21:53:38 +08:00
peterlu14 1282b10c34 [update] add same func to offline (change data scale) & fix empty data error 2022-05-06 21:28:34 +08:00
peterlu14 8f718b7372 [update] add all channel mode & data scale can follow unit in param-table 2022-05-06 21:12:00 +08:00
peterlu14 5714bce5c0 [update] download remove duplicate data (time) 2022-05-06 21:08:58 +08:00
peterlu14 ce374a5a4c [update] add readable header & title with flexiable way 2022-05-06 21:06:29 +08:00
peterlu14 8e493c9ec1 [update] add param-table EliteZM15 key to handle download header issue 2022-05-06 21:00:52 +08:00
peterlu14 ddffa2a212 [update] temp chart label color 2022-05-06 10:48:36 +08:00
peterlu14 bd646fafc0 [update] add cp_mode & change parameter order & change cg mode name 2022-05-06 10:48:10 +08:00
peterlu14 1a69bb5822 [update] disable hover stop 2022-05-04 18:36:08 +08:00
peterlu14 0e2ecc763d [update] split project list into config & running & stop project & add lockMode 2022-05-04 18:34:08 +08:00
peterlu14 8a785ca15a [update] consistency parameter name 2022-05-04 18:16:27 +08:00
peterlu14 e2c5845bb8 [update] add running project list 2022-05-03 17:37:56 +08:00
peterlu14 782176bc29 [update] edit project & task name & styling 2022-04-29 17:09:30 +08:00
peterlu14 cd3a2d66a2 [update] fix multi same devices error 2022-04-29 17:07:28 +08:00
peterlu14 829fce435d [update] show device mac_address 2022-04-29 17:06:51 +08:00
peterlu14 b457aa5496 [update] task name solate from project 2022-04-29 17:01:58 +08:00
peterlu14 0cfa124f00 [update] realtime refresh chart 2022-04-29 13:43:15 +08:00
peterlu14 e8b175de7b [update] add new feature project saving & styling 2022-04-29 13:33:22 +08:00
peterlu14 4c2a398841 [update] add key enter event 2022-04-29 13:30:55 +08:00
peterlu14 8bf5c4befc [update] hide filter with developer mode 2022-04-28 13:01:39 +08:00
peterlu14 57b1dcc8d5 [update] add new font roboto 2022-04-28 11:08:04 +08:00
peterlu14 7140ba345c [update] style format 2022-04-28 11:07:34 +08:00
peterlu14 5905e34697 [update] reorder & remove ocp & fix mode & highz error 2022-04-28 10:59:43 +08:00
peterlu14 40ffe28ac7 [update] fix device status problem 2022-04-27 16:03:41 +08:00
peterlu14 bf3f08629e [update] add broadcast change device status 2022-04-27 15:00:09 +08:00
peterlu14 ed3cd23dc1 [update] disable highz on first & switch mode change highz 2022-04-27 13:52:39 +08:00
peterlu14 2708a5f8bf [update] change mode reset highz 2022-04-26 19:10:19 +08:00
peterlu14 c71e00b89e [update] sample rate default & volt param show error 2022-04-26 16:05:28 +08:00
peterlu14 75bab13768 [update] add new parameter table & remove edit icon 2022-04-26 15:06:54 +08:00
peterlu14 bb4020d2d0 [update] project deviceList into device 2022-04-25 11:58:03 +08:00
peterlu14 7e902c3236 [update] project taskList to task 2022-04-25 11:41:42 +08:00
peterlu14 c7a5689023 [update] add project api 2022-04-25 11:40:50 +08:00
peterlu14 7a303f2da2 [update] add after project & task run & previous task run condition & broadcast mes from backend 2022-04-18 01:46:27 +08:00
peterlu14 e49af9ccbd [update] pair device status in backend 2022-04-17 23:43:43 +08:00
peterlu14 49e5c206dc [update] fix project param show error & able to change & restruct param 2022-04-17 23:43:19 +08:00
peterlu14 0d83011474 [update] add developer mode 2022-04-15 20:11:22 +08:00
peterlu14 229fa15d15 [update] get file meta info faster 2022-04-15 15:21:29 +08:00
peterlu14 ac243f926b [update] improve init filetable & fix delete 2022-04-15 15:13:03 +08:00
peterlu14 b7e1315a1e [update] getParmDone fix 2022-04-13 10:50:40 +08:00
peterlu14 a5804d24e7 [update] replace task page api call & file control change 2022-04-12 13:59:56 +08:00
peterlu14 4177c2c706 [update] change pic size 2022-03-24 16:54:09 +08:00
peterlu14 9b212398ce [update] project device & select all & delete task 2022-03-24 16:53:52 +08:00
peterlu14 e2161f02bd [update] fix offline download 2022-03-24 11:01:20 +08:00
peterlu14 039a8efad8 [update] update wire connect pics 2022-03-22 18:35:53 +08:00
peterlu14 841de96a78 [update] excel headstage add memoryboard number 2022-03-14 13:32:08 +08:00
peterlu14 19922faa6b [update] improve download 2022-03-08 13:04:19 +08:00
peterlu14 e96e759081 Merge branch 'feature/project' into dev/merge_replay/help_pic/sample_rate 2022-03-07 14:34:27 +08:00
Roy 29124b43a2 Merge remote-tracking branch 'origin/bug/elite_replay_download' into dev/test_csv 2022-03-04 18:07:23 +08:00
peterlu14 81e59b6147 [update] folder delete 2022-03-04 18:06:46 +08:00
peterlu14 2af8710afc [update] replay download 2022-03-04 16:38:49 +08:00
Roy 99ab06b64f Merge remote-tracking branch 'origin/bug/elite_download_sample_rate_wrong' into dev/test_csv 2022-03-04 15:58:42 +08:00
Roy a42d6b678c Merge remote-tracking branch 'origin/feature/working_mode_help_pic' into dev/test_csv 2022-03-04 15:58:33 +08:00
peterlu14 80105a80dc [update] elite download sample rate wrong 2022-03-04 15:18:33 +08:00
peterlu14 29aa7ddb8e [update] help_doc show 2022-03-04 14:25:28 +08:00
peterlu14 982ac7804b [update] temp save 2022-03-02 16:08:36 +08:00
peterlu14 dc81c3d387 [update] fix parameter_set 2022-02-15 16:59:48 +08:00
Jordan Hsu 0ecd2b50dd [fix] configuration refresh bug 2022-02-12 17:17:34 +08:00
peterlu14 922816cb04 [update] getSelectProject 2022-02-09 10:22:05 +08:00
peterlu14 e53c260a69 [update] project device 2022-01-21 20:15:41 +08:00
peterlu14 3ced97eede [update] license check disable * 2022-01-20 15:54:29 +08:00
peterlu14 5e54ed8701 [update] export csv title Elite EIS added 2022-01-20 15:06:14 +08:00
peterlu14 d02a6c0fbc [update] project action add delete & style change 2022-01-20 10:41:06 +08:00
peterlu14 6c09a62546 [fix] spelling error & parameter name 2022-01-19 17:06:54 +08:00
peterlu14 74a1740b2f [update] button size small 2022-01-19 16:24:41 +08:00
peterlu14 cd18165270 [update] task-view rename & path change 2022-01-19 16:09:51 +08:00
peterlu14 4e5055f344 [update] path rename & change 2022-01-19 15:50:15 +08:00
peterlu14 0f4df7d473 [update] fix parameter not change 2022-01-19 15:45:03 +08:00
peterlu14 3332cf8b8e [update] project condition & action & parameter 2022-01-19 14:46:02 +08:00
Jordan Hsu c984bebf6f [modify] separate chartKey and panelKey 2022-01-14 17:26:13 +08:00
Jordan Hsu 06766f1ac4 [add] can save chart source setting 2022-01-14 15:54:06 +08:00
peterlu14 716a624fb5 [update] parameter set temp save 2022-01-14 14:24:38 +08:00
Jordan Hsu 9981958160 typo 2022-01-12 18:06:11 +08:00
Jordan Hsu e1d6dbd38e fix chart data display bug 2022-01-12 18:01:06 +08:00
Jordan Hsu 96b38e5570 fix cache chart bug 2022-01-12 15:52:23 +08:00
peterlu14 dccd1d960d [update] project task device action condition done 2022-01-12 15:50:29 +08:00
Jordan Hsu ffd246124f tmp 2022-01-10 17:12:27 +08:00
Jordan Hsu 834bcbc4df add missing code 2022-01-10 15:56:25 +08:00
Jordan Hsu 8f6f437f14 [add] missing localforage package dependency 2022-01-10 15:49:17 +08:00
Jordan Hsu e5bc63e5d5 [add] real-time chart add / remove update with cache 2022-01-10 15:38:55 +08:00
Jordan Hsu 5d3dbbac4f [modify] real-time chart data object to vuex 2022-01-10 12:56:35 +08:00
Jordan Hsu 9a77e6dcff [modify] neulive 3.5 sti constraint 2022-01-06 13:09:52 +08:00
peterlu14 5328bd76ba [fix] sd data from api 2022-01-04 14:13:38 +08:00
Jordan Hsu 9d19fd3fc9 add neu 3.1 sample rate option 2022-01-04 11:14:46 +08:00
Alan Lin 1e2bf182bf neu31 update adc_clk ratio formula 2022-01-04 11:03:23 +08:00
Roy e811f6a510 fix eis dc_volt value 2022-01-03 15:49:56 +08:00
Alan Lin 288f9b325c update download SD function 2021-12-27 18:22:03 +08:00
peterlu14 444663def3 Merge branch 'feature/dpv' into testing/security 2021-12-22 13:36:39 +08:00
Alan Lin 0afd9edd7b [fix] download & sd_card click 2021-12-15 17:32:51 +08:00
TommyXin 44d2ba6b41 fix google font error 2021-12-14 18:50:53 +08:00
TommyXin d567186240 fix sti3.5ex channel display 2021-12-07 13:38:46 +08:00
TommyXin cbb81add56 fix 3.5 sti ex ch error 2021-12-07 13:31:50 +08:00
TommyXin c8dded35f5 neulive3.5 sti ex 2021-12-06 18:26:50 +08:00
TommyXin d5dac7a9b3 Merge branch 'neulive_hide_gimer' into testing/security 2021-12-01 16:31:27 +08:00
TommyXin 1a183322ab fix device id not found 2021-12-01 10:55:54 +08:00
TommyXin 7e401621c7 fix default chart generator only consider RECORDING_CH 2021-12-01 10:45:10 +08:00
TommyXin 1485eba2b3 fix check ch number 2021-11-30 10:31:59 +08:00
TommyXin e908f73857 fix file can not show data 2021-11-29 18:40:30 +08:00
TommyXin f587f2b689 fix sd-card api 2021-11-29 18:20:32 +08:00
TommyXin 12eb41fcad fix sd-card icon 2021-11-29 17:38:34 +08:00
TommyXin 4a2b3f6a94 fix font error & auto get controller id 2021-11-29 17:03:34 +08:00
TommyXin 8e9dd79002 change id 2021-11-26 10:34:33 +08:00
TommyXin ea2f9c6748 Merge branch 'neulive_hide_gimer' into testing/security 2021-11-26 10:31:42 +08:00
TommyXin 4af2178225 Merge remote-tracking branch 'origin/feature/AS_wish' into testing/security 2021-11-26 10:31:26 +08:00
peterlu14 cc451f53cc [update] fix realtime filter channel & collapse open 2021-11-25 15:15:14 +08:00
Jordan Hsu 419b8e373f [add] sti pattern sketch map 2021-11-25 15:13:55 +08:00
peterlu14 ffd2b611d3 [update] fix realtime filter channel & collapse open 2021-11-25 14:43:57 +08:00
Jordan Hsu e05fa1c26b [add] chart pointer 2021-11-25 11:00:19 +08:00
Jordan Hsu 98d431fac0 [modify] filter popup without confirm button 2021-11-25 10:31:50 +08:00
Jordan Hsu c1fb4e3488 [add] select all / inverse select button 2021-11-24 18:17:55 +08:00
Jordan Hsu 3239728b0d [add] auto-resize real-time grid 2021-11-24 17:54:06 +08:00
Jordan Hsu 8941e827c1 [add] individual grid iir filter 2021-11-24 15:14:06 +08:00
Jordan Hsu d2eb180381 tmp 2021-11-23 18:14:59 +08:00
peterlu14 01a55781dd [update] sdcard filename change & modal style 2021-11-23 16:39:39 +08:00
warren30815 c2e8aaae06 fix EliteDataReplay overview bug 2021-11-23 02:04:50 +00:00
peterlu14 594fc9da13 [update] update message & api server fail not show 2021-11-22 18:38:06 +08:00
Jordan Hsu 721bab177b [fix] replay bug 2021-11-22 17:11:55 +08:00
peterlu14 6b7828a944 [update] sd card upload show message 2021-11-19 18:03:14 +08:00
Roy c388474952 update global chart lib 2021-11-19 11:42:52 +08:00
peterlu14 75db0a3c13 [update] new module vue notification 2021-11-18 20:42:15 +08:00
Alan Lin 802d6f7d3a swap stop all ins 2021-11-18 17:22:10 +08:00
peterlu14 830e93d9d1 [update] notify rebuild 2021-11-18 14:15:52 +08:00
Jordan Hsu 09c46a282b Merge remote-tracking branch 'origin/feature/download_offline' into neulive_hide_gimer 2021-11-18 12:04:44 +08:00
peterlu14 50693075f9 [update] add sercurity feature 2021-11-17 19:06:48 +08:00
Jordan Hsu 9d22f80c0e [add] elite replay can set window start and size 2021-11-16 16:32:05 +08:00
Jordan Hsu 41a7991255 Merge remote-tracking branch 'origin/feature/dpv' into feature/dpv 2021-11-16 16:31:06 +08:00
peterlu14 623ff914bf Merge branch 'feature/download_offline' into feature/dpv 2021-11-16 14:49:53 +08:00
peterlu14 99dc8d7996 [update] excel format fix 2021-11-16 14:47:36 +08:00
peterlu14 e30416e910 Merge branch 'feature/download_offline' into feature/dpv 2021-11-16 11:37:35 +08:00
peterlu14 72a9ded776 [update] recover controller id 2021-11-15 15:59:06 +08:00
peterlu14 dfbbcdedf1 [update] remove download time limit 2021-11-12 11:01:30 +08:00
Jordan Hsu 1bcbfa953d [add] dpv cycle & check E final 2021-11-11 16:53:39 +08:00
peterlu14 282e435217 [update] add user guide 2021-11-10 16:22:23 +08:00
peterlu14 23d45cfa2f [update] remove device store 2021-11-10 16:19:02 +08:00
peterlu14 da4049bf77 [update] remove guide doc 2021-11-10 16:08:52 +08:00
peterlu14 73ccc68220 [update] connection timeout 2021-11-10 13:24:36 +08:00
Jordan Hsu 25f36a54dd [fix] pdf path error 2021-11-10 11:59:31 +08:00
peterlu14 0bfba093fd [update] download 2021-11-10 10:49:16 +08:00
Jordan Hsu 5e0b14c8e0 [add] device guideline pdf 2021-11-09 20:23:50 +08:00
Jordan Hsu df6e05c8c0 fix trigger UI bug 2021-11-08 14:33:00 +08:00
peterlu14 36c72e27a6 Merge branch 'feature/download_offline' into neulive_hide_gimer 2021-11-05 18:40:24 +08:00
peterlu14 a141535fc9 Merge remote-tracking branch 'origin/feature/neulive31_35_sti_1104' into neulive_hide_gimer 2021-11-05 18:40:11 +08:00
peterlu14 50a2254d44 [update] hide gimer icon 2021-11-05 18:39:55 +08:00
Jordan Hsu 3aaefa6529 bug fix 2021-11-05 17:53:50 +08:00
peterlu14 74d8fdb077 [update] add package file-saver 2021-11-04 22:25:38 +08:00
peterlu14 5b655b2cd0 [update] offline download 2021-11-04 21:51:22 +08:00
Jordan Hsu 8e7f0ecb71 [modify] neulive 3.1/3.5 sti 2021-11-04 14:08:16 +08:00
peterlu14 c8aae625e5 [update] remove offline download directory 2021-11-04 13:58:17 +08:00
peterlu14 a1bb7517f7 [update] offline download excel format & memory & data loss 2021-11-03 10:12:29 +08:00
TommyXin fc65108051 fix bug repeat interval 2021-11-02 17:05:12 +08:00
TommyXin ff0be97176 hide repeatNumber when unlimit cycle 2021-11-02 17:00:29 +08:00
TommyXin 6cdd0f772e fix check recording channels 2021-11-02 16:29:34 +08:00
TommyXin b61f51cab2 cycle unlimited no setStiTimeout & check recording one channel at least 2021-11-02 15:43:26 +08:00
Jordan Hsu b00649f03e bug fix 2021-11-01 18:34:45 +08:00
Jordan Hsu 755525dc28 [fix] elite replay cycle bug 2021-11-01 17:36:34 +08:00
Jordan Hsu 91929c0a34 Merge branch 'release/AS_1027' into feature/dpv 2021-11-01 17:04:30 +08:00
Jordan Hsu 389040a98a [add] elite replay param table 2021-11-01 16:49:50 +08:00
Jordan Hsu 2908f2c510 [modify] replay UI layout 2021-11-01 16:04:32 +08:00
Jordan Hsu 08c732ace8 toggle color to green 2021-10-29 18:54:19 +08:00
Jordan Hsu 73fbaf92ab adjust trigger UI 2021-10-29 18:50:49 +08:00
Jordan Hsu 80d8bdf7f9 [add] trigger block 2021-10-29 17:15:53 +08:00
Jordan Hsu 40c09de1dd [modify] UI disable mode color 2021-10-29 16:00:17 +08:00
Jordan Hsu 1541a57b1b [modify] dpv UI and switch 2021-10-29 15:32:19 +08:00
Jordan Hsu 2f5ef791e4 [modify] dpv rule 2021-10-29 15:18:25 +08:00
Jordan Hsu cc64f62335 Merge branch 'feature/elite_trigger' into feature/dpv 2021-10-28 14:52:33 +08:00
Jordan Hsu 66c19ab51b [modify] dpv slider two pins 2021-10-28 14:51:48 +08:00
Jordan Hsu fa7b51143b [update] neulive 3.5 repeatIntervalCheck with cycle 2021-10-28 09:54:45 +08:00
peterlu14 7c300a4ce2 [update] neulive3.5 repeatIntervalCheck 2021-10-28 00:04:32 +08:00
TommyXin e6a9a3fbd6 Merge branch 'neulive_sunpower' into release/AS_1027 2021-10-27 22:16:35 +08:00
TommyXin f523c189dc remove console.log 2021-10-27 22:15:42 +08:00
TommyXin bc86b2f541 Merge branch 'neulive_sunpower' into release/gimer_1026 2021-10-27 22:14:05 +08:00
peterlu14 5ea023df43 [update] remove filetable get sd card uuidList 2021-10-27 22:08:57 +08:00
TommyXin ebf912a971 clear stiTimeOut 2021-10-27 21:59:15 +08:00
TommyXin d440dfbe39 clear stiTimeOut 2021-10-27 21:51:52 +08:00
Jordan Hsu 8257a30118 [modify] elite replay layout 2021-10-27 16:29:50 +08:00
Jordan Hsu 68cec7d482 [fix] abs toggle bug 2021-10-27 16:28:42 +08:00
TommyXin e61d4340a7 gimer id 2021-10-27 16:12:33 +08:00
TommyXin 810e8c46e9 update 2021-10-27 16:12:12 +08:00
TommyXin 1c32850990 remove gimer routes 2021-10-27 16:02:46 +08:00
TommyXin 21bb7440f1 Merge remote-tracking branch 'origin/release/gimer_1026' into release/gimer_1026 2021-10-27 15:50:32 +08:00
TommyXin 505a2a9e03 Merge branch 'neulive_sunpower' into release/gimer_1026 2021-10-27 15:48:13 +08:00
TommyXin f6a6c4101d update gimer icon 2021-10-27 15:47:34 +08:00
TommyXin c4fc506f9f ch number for filter 2021-10-27 15:28:20 +08:00
TommyXin 3a8315339a Merge remote-tracking branch 'origin/neulive_sunpower' into neulive_sunpower 2021-10-27 15:27:06 +08:00
TommyXin 08b3904cb9 channel number & amplitude change 2021-10-27 15:26:55 +08:00
peterlu14 b2ba658e6e [update] add library name list 2021-10-27 15:12:21 +08:00
peterlu14 76a16cae1a [update] ampgain diff from library 2021-10-27 15:01:21 +08:00
peterlu14 04d564afd8 [update] offline download 2021-10-27 14:49:47 +08:00
TommyXin 9c42c05621 [bug] sti ex time = interval * number 2021-10-27 14:46:33 +08:00
Jordan Hsu 42925bec2d Merge branch 'release/neulive_elite_1012' into feature/dpv 2021-10-27 13:56:51 +08:00
Jordan Hsu 5be30fc910 [modify] elite replay abs button style 2021-10-27 13:55:36 +08:00
Jordan Hsu c26a72749e [fix] dpv bug 2021-10-27 13:21:23 +08:00
Jordan Hsu ca41619338 [modify] elite replay UI layout 2021-10-27 12:10:28 +08:00
Jordan Hsu 4e119b5eaf [modify] dpv UI layout 2021-10-27 11:16:56 +08:00
TommyXin 468c5a2567 regular 3.5 check sti done 2021-10-27 11:01:43 +08:00
TommyXin 70651f55c0 [update] neulive regular 3.5 UI 2021-10-27 10:33:19 +08:00
Jordan Hsu 02aff9f02c [fix] typo 2021-10-27 10:21:42 +08:00
Jordan Hsu c1dbf93d65 [add] missing formula 2021-10-27 00:29:26 +08:00
Jordan Hsu 6effc08904 [init] trigger UI 2021-10-27 00:03:39 +08:00
TommyXin f237efc430 Merge remote-tracking branch 'origin/feature/sd_card_check_and_init' into release/gimer_1026 2021-10-26 18:45:34 +08:00
TommyXin ab15129100 Merge branch 'neulive_sunpower' into release/gimer_1026 2021-10-26 18:43:46 +08:00
TommyXin 38f440ea67 add gimer icon to app sidebar 2021-10-26 18:32:18 +08:00
peterlu14 6c9fb2e513 [update] update transmission_type status 2021-10-26 17:15:05 +08:00
peterlu14 92e8c15308 [update] restruct download 2021-10-26 17:13:42 +08:00
TommyXin 7c6a05ecc4 amplitude * 10 (for UI) 2021-10-26 16:15:54 +08:00
TommyXin f63fca5fc4 remove console.log 2021-10-26 14:46:21 +08:00
TommyXin b59262643f Merge remote-tracking branch 'origin/feature/sd_card_check_and_init' into neulive_sunpower 2021-10-26 14:36:20 +08:00
TommyXin 2650ba10fb Merge branch 'feature/dpv' into neulive_sunpower 2021-10-26 14:35:56 +08:00
TommyXin 578578a312 multi filter & check stimulation 2021-10-26 14:35:04 +08:00
peterlu14 6e700e7201 [update] disable device_update_usb 2021-10-26 11:31:01 +08:00
TommyXin 99ef7bfe04 Merge branch 'neulive_sunpower' into feature/dpv 2021-10-26 11:07:52 +08:00
TommyXin 0d88866001 sti check exTime 2021-10-26 11:07:25 +08:00
TommyXin 0150eebb0c fix amp gain bug 2021-10-26 10:36:31 +08:00
Jordan Hsu f885812258 [add] missing code 2021-10-26 09:21:40 +08:00
Jordan Hsu 21f5c75836 [init] dpv front end with formula 2021-10-25 16:34:38 +08:00
TommyXin bf20a50107 realtime filter [notch] 2021-10-25 15:36:28 +08:00
TommyXin d72e59bb81 amp gain change 500&300 2021-10-22 22:00:48 +08:00
TommyXin 69058bd0f0 deviceList vuex 2021-10-22 21:25:45 +08:00
TommyXin 6639560dd4 Merge remote-tracking branch 'origin/release/neulive_elite_1012' into neulive_sunpower 2021-10-22 17:26:42 +08:00
Jordan Hsu 3ed4253b13 [update] gimer / 3.5 t range constraint rule 2021-10-22 11:27:25 +08:00
Jordan Hsu c6555cb4f3 Merge branch 'neulive_sunpower' into release/neulive_elite_1012 2021-10-21 14:18:55 +08:00
TommyXin 62d4b634c2 set power enable while record 2021-10-21 14:09:35 +08:00
Jordan Hsu a8e2ec509e [add] repeat interval rule 2021-10-21 13:51:24 +08:00
Jordan Hsu 5c35bff99f [add] gimer t range rule 2021-10-20 18:15:01 +08:00
TommyXin 2e76071ea6 Merge branch 'iir_filter' into neulive_sunpower 2021-10-20 15:21:38 +08:00
TommyXin ce9cac1f02 gimer ui 2021-10-20 15:20:18 +08:00
Jordan Hsu feb9c84488 [add] abs toggle 2021-10-19 19:37:04 +08:00
TommyXin ac0aef6109 [TODO] filter by chart and detect device from ch (get fs) 2021-10-19 18:47:47 +08:00
Jordan Hsu 1b424bcfd2 [fix] elite replay param panel mode bug 2021-10-19 15:15:05 +08:00
Jordan Hsu 05b33bd9bf [fix] neulive replay missing code 2021-10-19 15:14:12 +08:00
Jordan Hsu 62424e3438 [modify] replay axis log scale 2021-10-19 14:46:57 +08:00
TommyXin 16799a85bd Merge branch 'neulive_sunpower' into iir_filter 2021-10-19 14:11:35 +08:00
TommyXin 7f295cc86e Merge remote-tracking branch 'origin/feature/sd_card_check_and_init' into iir_filter 2021-10-19 14:11:16 +08:00
TommyXin 5651cb68a5 fix button 256 2021-10-19 08:57:43 +08:00
TommyXin 80e1841776 repeat num 255 2021-10-18 19:17:26 +08:00
TommyXin af337bdde6 check stimulating & auto close save power node while recording 2021-10-18 16:27:20 +08:00
TommyXin 9e59da8fd1 gimer start condition 2021-10-18 14:23:45 +08:00
TommyXin df2815eb0e sti check recording status 2021-10-15 19:05:11 +08:00
TommyXin 70750de23d taskDeviceList doesn't destroy deviceList 2021-10-15 18:12:57 +08:00
TommyXin 89f45520d3 fix hide device panel bug 2021-10-15 17:31:17 +08:00
peterlu14 8b08cd899b [update] usb & rename api & check sd usb when connect 2021-10-15 16:02:11 +08:00
TommyXin e808352244 electrode site support double color button 2021-10-15 16:00:19 +08:00
TommyXin 4e777fff1b check device status 2021-10-14 19:00:19 +08:00
peterlu14 3e9db25dad [update] recover controller id 2021-10-14 11:03:51 +08:00
peterlu14 033088ddde [update] sdcard check and init 2021-10-13 22:01:50 +08:00
peterlu14 47712e5ff1 [update] fix spike first timemark 2021-10-13 21:59:26 +08:00
Alan Lin 5e883ef672 Merge branch 'neulive_sunpower' of gitlab.com:bioproscientific/bioprovue into neulive_sunpower 2021-10-13 16:17:07 +08:00
Alan Lin a7591860cf update T2, T4 counter 2021-10-13 16:16:44 +08:00
Jordan Hsu 68510b3c42 [fix] import path error 2021-10-13 16:11:21 +08:00
TommyXin 1f102c3816 route task Gimer 2021-10-13 15:27:16 +08:00
Alan Lin 1b1ee5f58a update Giner STI.vue 2021-10-13 13:55:20 +08:00
Jordan Hsu a20f24c45f [fix] t range rounding and GM channel bug 2021-10-13 11:55:17 +08:00
peterlu14 e29e0caee6 Merge branch 'feature/spike_UI_enhance' into release/neulive_elite_1012 2021-10-12 17:38:41 +08:00
peterlu14 715f1ef1d0 [update] align controller_id 2021-10-12 17:30:40 +08:00
Jordan Hsu 537b668d1e click stop to click native stop 2021-10-12 16:03:12 +08:00
Jordan Hsu a658203c0a Protect recording channels button add parasend event 2021-10-12 15:50:12 +08:00
Alan Lin 63e00b91f6 update t3t4 counter formula 2021-10-12 15:08:52 +08:00
peterlu14 cc7e2adc81 Merge branch 'feature/add_sd_icon' into feature/spike_UI_enhance 2021-10-12 12:16:05 +08:00
peterlu14 98738bcb10 [update] remove export info 2021-10-12 12:09:02 +08:00
peterlu14 e34605c488 [update] spike update 2021-10-12 11:29:19 +08:00
TommyXin 887ebc0907 real time iir filter 2021-10-08 18:08:11 +08:00
Jordan Hsu 91e4acbcb0 [fix] real time chart mode 2021-10-08 17:11:57 +08:00
Jordan Hsu 4bb59d5c87 [add] elite replay circle dot 2021-10-08 16:54:23 +08:00
peterlu14 ed3d8a81ff Merge branch 'feature/neulive3.5-sti-amp' into feature/spike_UI_enhance 2021-10-08 10:14:55 +08:00
peterlu14 87c9cba03c [update] spike data mqtt add 2021-10-08 10:09:25 +08:00
Jordan Hsu 1a08d7ff28 [modify] 3.5 & gm t range 2021-10-08 10:08:18 +08:00
TommyXin 641b001b88 fix realtime lose data 2021-10-07 19:44:02 +08:00
Jordan Hsu aeb265b206 [fix] eis param bug 2021-10-07 18:39:54 +08:00
Jordan Hsu 932b8c8025 [fix] freq start and end bug 2021-10-07 17:42:10 +08:00
Alan Lin f040150ac3 updata repeat time formula 2021-10-07 17:02:45 +08:00
Alan Lin 956f84476f Merge branch 'neulive_sunpower' of gitlab.com:bioproscientific/bioprovue into neulive_sunpower 2021-10-07 16:46:25 +08:00
TommyXin c028d14ade repeat number & interval 2021-10-07 16:44:54 +08:00
Alan Lin 5108c7ffd9 Merge branch 'neulive_sunpower' of gitlab.com:bioproscientific/bioprovue into neulive_sunpower 2021-10-07 15:38:33 +08:00
TommyXin 33f78b0f83 save power mode bool to number 2021-10-07 15:36:36 +08:00
Alan Lin c12ded4834 Merge branch 'neulive_sunpower' of gitlab.com:bioproscientific/bioprovue into neulive_sunpower 2021-10-07 15:34:06 +08:00
TommyXin ad3553a68e fix save power mode 2021-10-07 15:33:50 +08:00
Alan Lin 6608ee9e86 Merge branch 'neulive_sunpower' of gitlab.com:bioproscientific/bioprovue into neulive_sunpower 2021-10-07 15:17:53 +08:00
Alan Lin 2388e82c5d T3, T4 counter use correct formula 2021-10-07 15:17:42 +08:00
TommyXin 72d87712b3 save power mode & protect channels 2021-10-07 15:15:42 +08:00
Alan Lin 2e1c3237f4 add new parameter 2021-10-07 14:08:10 +08:00
Jordan Hsu dec21dfee0 [modify] eis ui 2021-10-07 14:06:02 +08:00
Jordan Hsu 7bde032cf6 [fix] eis param typo 2021-10-07 13:49:21 +08:00
Jordan Hsu f83ad1efbf Merge branch 'feature/eis_replay' into release/elite_1007 2021-10-07 13:47:24 +08:00
TommyXin b04d9ff29e fix Trange_CH0 cannot refresh 2021-10-06 15:57:46 +08:00
TommyXin 86e3cee7ec add save power mode / protect channel 2021-10-06 15:03:46 +08:00
TommyXin 6a96620549 fix bug 2021-10-05 18:15:20 +08:00
TommyXin 1d5813c8fa window 2021-10-05 18:00:39 +08:00
TommyXin b717bf8906 electrode site 2021-10-05 16:42:17 +08:00
peterlu14 de8fbc9bbe [update] spike button eventproof 2021-10-05 15:33:33 +08:00
peterlu14 403be30139 Merge branch 'release/merge_SD_card_UI_0924_2' into feature/neulive3.5-sti-amp 2021-10-05 11:09:59 +08:00
Jordan Hsu c307735dc3 [done] eis replay 2021-10-04 18:39:01 +08:00
TommyXin f88e28616e sti pos 2021-10-04 18:00:22 +08:00
TommyXin a102567dea recording site 2021-10-04 17:51:23 +08:00
peterlu14 46017134d8 [update] spike optimize 2021-10-01 14:21:12 +08:00
peterlu14 e2298a6ccc [update] download excel bug fix 2021-09-27 20:21:01 +08:00
peterlu14 5a61e24495 [update] icon usb to sd card & remove ! 2021-09-24 19:37:38 +08:00
peterlu14 c4007b7930 Merge branch 'feature/SD_card_UI' into release/merge_SD_card_UI_0924 2021-09-24 12:52:21 +08:00
peterlu14 2fe1cd6e00 [update] add progress bar & controller sd_uploading check 2021-09-24 12:50:29 +08:00
peterlu14 4cc7b9e12f [update] mac address change & get sync to async 2021-09-22 14:33:06 +08:00
peterlu14 8b4f210f95 Merge commit '1af50d0bfc7ec75a6aaf1aa493b31b29fc20882a' into feature/SD_card_UI 2021-09-22 14:31:46 +08:00
peterlu14 1af50d0bfc [update] databatch 2021-09-17 13:26:36 +08:00
TommyXin 99b2b9dfce remove check param 2021-09-16 17:05:24 +08:00
TommyXin 1004c7075e [update] EIS unit ch4&8, window by elite lib ver. 2021-09-16 17:05:16 +08:00
peterlu14 8f4cbc0eeb Merge remote-tracking branch 'origin/feature/neulive_replay_wish' into release/neulive_elite_0913 2021-09-15 19:07:12 +08:00
TommyXin f741a2d018 fix x-axis unit 2021-09-15 19:06:46 +08:00
TommyXin 008897830d fix source X 2021-09-15 19:06:41 +08:00
TommyXin 5c297687f1 multi channel & unit 2021-09-15 19:06:32 +08:00
Jordan Hsu 213caf9796 [fix] replay window can't zoom bug 2021-09-15 17:10:21 +08:00
peterlu14 0fda2141dd [update] add record_in_sd option 2021-09-15 02:36:16 +08:00
peterlu14 3761493ec1 [update] remove sd card delete 2021-09-15 01:04:18 +08:00
peterlu14 87300e7a43 Merge remote-tracking branch 'origin/feature/SD_card_UI' into release/neulive_elite_0913 2021-09-15 00:59:47 +08:00
peterlu14 85103f5f12 [update] expand action width & change order 2021-09-15 00:56:58 +08:00
Jordan Hsu 1059a98c27 [add] sd button confirm modal before uploading 2021-09-14 15:54:57 +08:00
Jordan Hsu 8150afc624 Merge remote-tracking branch 'origin/feature/SD_card_UI' into feature/SD_card_UI 2021-09-14 14:13:30 +08:00
Jordan Hsu b0de357d89 [add] replay check if sd uploaded 2021-09-14 14:12:53 +08:00
peterlu14 44c1a41d99 Merge branch 'feature/SD_card_UI' into release/neulive_elite_0913 2021-09-14 14:00:28 +08:00
peterlu14 a6a9b64da2 [update] getSDuuidList 2021-09-14 13:05:05 +08:00
Jordan Hsu a4ccee71a8 [fix] sd card UI bug 2021-09-14 11:47:45 +08:00
Jordan Hsu 2cbdab696c Merge branch 'feature/neulive_replay_wish' into release/neulive_elite_0913 2021-09-13 18:48:35 +08:00
Jordan Hsu 3fe5e4af0c adjust UI 2021-09-13 18:42:51 +08:00
Jordan Hsu 577cf09951 [add] replay custom window start and size 2021-09-13 17:48:11 +08:00
peterlu14 0c18ce1829 Merge remote-tracking branch 'origin/feature/elite_replay_down_scale' into release/neulive_0913 2021-09-13 14:52:03 +08:00
peterlu14 7c336d4bd3 Merge remote-tracking branch 'origin/feature/neulive_replay_wish' into release/neulive_0913 2021-09-13 14:51:31 +08:00
Jordan Hsu 95955e23e0 [add] lock button 2021-09-13 14:07:44 +08:00
peterlu14 d387f83f87 [update] setting pic update & display fix 2021-09-10 20:03:13 +08:00
Jordan Hsu 0e1695bb4e [modify] elite replay will detect resample rate and auto down rate 2021-09-10 20:02:53 +08:00
peterlu14 fba42100d8 Merge branch 'feature/setting_update' into devlop/neulive_merge_sd_card 2021-09-10 12:39:56 +08:00
peterlu14 acd1b300d7 Merge branch 'feature/SD_card_UI' into devlop/neulive_merge_sd_card 2021-09-10 12:39:26 +08:00
Jordan Hsu 3f4d5de662 [modify] nprogress color to red 2021-09-10 12:09:49 +08:00
Jordan Hsu 56f4f0274c [remove] elite sd card button 2021-09-10 11:51:31 +08:00
Jordan Hsu e6aeb9203d [fix] sd card UI won't re-render after changing page bug 2021-09-09 21:02:41 +08:00
Jordan Hsu da7581de63 [update] shell script readme 2021-09-09 18:29:14 +08:00
Jordan Hsu 6d9294775d clean up sd card code 2021-09-09 18:08:14 +08:00
Jordan Hsu 3a7d685d31 [fix] monophasic checkpoint bug 2021-09-09 17:50:51 +08:00
peterlu14 16df8514ba [update] setting pic update & display fix 2021-09-09 13:39:21 +08:00
Jordan Hsu a5085cbbe6 sd card UI 2021-09-08 21:29:55 +08:00
peterlu14 1fbf8c0022 [update] download replay data 2021-09-08 20:07:28 +08:00
peterlu14 0f5cbaf778 [update] sd_data download & replay 2021-09-08 16:26:49 +08:00
Jordan Hsu 2b5b42dd61 tmp for api debug 2021-09-08 13:52:59 +08:00
Jordan Hsu 4221a35f00 Merge remote-tracking branch 'origin/develop/neulive_0901' into feature/SD_card_UI 2021-09-08 11:06:41 +08:00
peterlu14 c3fc287b0f [update] add sdcard api & get sd data 2021-09-08 11:02:44 +08:00
Jordan Hsu 047a72e9c6 [add] SD card init func 2021-09-07 16:56:29 +08:00
Jordan Hsu b79a4a2091 [init] SD card UI 2021-09-07 15:44:44 +08:00
Jordan Hsu 4a8be436ce [fix] monophasic bug 2021-09-06 15:53:52 +08:00
peterlu14 102d39b4b5 [update] add sample rate 2021-09-06 14:11:14 +08:00
peterlu14 e8479f80ca [update] support past replay & data:axis 75:1 2021-09-06 13:18:17 +08:00
peterlu14 3aa5db1455 [update] sti channel support 16 channel 2021-09-06 11:44:47 +08:00
peterlu14 2e33ef7abb [update] fix download bug & add 0 ~ 11 device 2021-09-06 11:41:28 +08:00
Jordan Hsu 78ec2fd492 [modify] spike UI with lttb algo. 2021-09-03 21:09:09 +08:00
peterlu14 d12084324a [update] spike ui save 2021-09-03 19:14:18 +08:00
Jordan Hsu b3580bfa76 [modify] neulive replay unit uV and clear redundant code 2021-09-03 16:15:18 +08:00
peterlu14 5b57e40575 [update] remove 3.5 rf & led 2021-09-02 20:26:38 +08:00
peterlu14 14679182df [update] move mem RF & RF & led to setting 2021-09-02 20:20:44 +08:00
peterlu14 db0111d1db [update] amplitude rebuild & fix STI_T4 2021-09-01 10:57:35 +08:00
peterlu14 21cb382a1f [update] replace ADC_CLOCK to SAMPLE_RATE & 3.5 RECORDING_CH 2021-09-01 10:55:58 +08:00
peterlu14 1d8ef94ec6 Merge remote-tracking branch 'origin/feature/spike_UI' into release/0824_test 2021-08-27 19:08:52 +08:00
peterlu14 e49b6fb791 [update] export fix & subplot message & download 2021-08-27 19:07:57 +08:00
peterlu14 52e3d70dc8 [update] neulive ui switch & STI cycle amplitude T1-T4 fix 2021-08-26 16:59:39 +08:00
Roy a33bbd0581 fix current input value 2021-08-26 11:58:43 +08:00
Roy cd97260230 fix volt input value 2021-08-26 11:38:38 +08:00
Roy b9242764ab Merge branch 'e_0824_func_gen_bug' into release/0824_test 2021-08-26 10:46:36 +08:00
Jordan Hsu e8d75b9877 [init] spike ui 2021-08-26 02:03:30 +08:00
TommyXin 433e567e74 neulive 3.5 UI 2021-08-25 20:44:28 +08:00
TommyXin fbbebb3423 fix grid uV 2021-08-25 16:33:40 +08:00
Roy 6f2aab5276 OCP mode add current range button 2021-08-25 16:12:44 +08:00
TommyXin d82b1cb735 grid support input 'auto' 2021-08-25 01:17:07 +08:00
Roy 8aa87d587f update elite1.5 button 2021-08-24 17:40:32 +08:00
TommyXin 38503e198e EIS volt range 2021-08-24 04:35:02 +08:00
Jordan Hsu 8b78cdcdbd Merge remote-tracking branch 'origin/release/0812_test' into feature/spike_UI 2021-08-20 16:08:37 +08:00
peterlu14 94feff568a Merge remote-tracking branch 'origin/release/0812_test' into release/0812_test 2021-08-20 15:49:07 +08:00
peterlu14 06336bbd61 [update] add api spikeDetect 2021-08-20 15:48:18 +08:00
TommyXin 33b041a31b Merge remote-tracking branch 'origin/release/0812_test' into release/0812_test 2021-08-19 10:40:27 +08:00
TommyXin 14dda58fac neulive uV 2021-08-19 10:40:12 +08:00
Jordan Hsu f9bf41980b [modify] neulive replay function name 2021-08-18 14:55:45 +08:00
Jordan Hsu 6b20902c74 [fix] neulive stimulation phasic bug 2021-08-18 14:16:45 +08:00
peterlu14 ced0362910 Merge remote-tracking branch 'origin/release/0812_test' into release/0812_test 2021-08-17 16:59:13 +08:00
peterlu14 467016140f [update] real-time axis setting & edf format 2021-08-17 16:58:40 +08:00
Jordan Hsu f6e642cd5f Merge remote-tracking branch 'origin/release/0812_test' into release/0812_test 2021-08-13 16:00:48 +08:00
Jordan Hsu 7c5aed4dbc [fix] sti t range check bug 2021-08-13 15:54:55 +08:00
peterlu14 c069354415 [fix] EIS download 2021-08-13 13:14:10 +08:00
Jordan Hsu 738b58fded [modify] speed up neulive replay 2021-08-12 18:59:19 +08:00
Jordan Hsu f7c89585ac [modify] elite chart sampling method to lttb algo. and fix overview scale bug 2021-08-12 18:06:34 +08:00
peterlu14 36ed59816d Merge branch '0809_release_version' into release/0812_test 2021-08-12 17:01:34 +08:00
Jordan Hsu 516d20333c Merge remote-tracking branch 'origin/0809_release_version' into 0809_release_version 2021-08-12 17:00:56 +08:00
Jordan Hsu 74b8472c1d [modify] replay resampling method 2021-08-12 17:00:34 +08:00
peterlu14 ecb9e02610 [update] about to setting 2021-08-12 16:54:44 +08:00
peterlu14 74dea74476 Merge remote-tracking branch 'origin/0809_release_version' into release/0812_test 2021-08-12 14:40:47 +08:00
TommyXin 588a791bc1 Merge remote-tracking branch 'origin/0809_release_version' into 0809_release_version 2021-08-12 14:20:48 +08:00
TommyXin cd3e6f08f5 time 500ms&neulive uV&device panel height 2021-08-12 14:20:06 +08:00
peterlu14 1370e5659e [update] axis data divide 100 2021-08-12 13:42:48 +08:00
peterlu14 e18fa916b5 Merge branch 'download_rebuild' into 0809_release_version 2021-08-12 13:11:04 +08:00
peterlu14 b5a920338a [update] remove old download routes 2021-08-12 13:10:19 +08:00
peterlu14 6c4660966c [update] adjust tooltip formatter 2021-08-12 12:57:27 +08:00
peterlu14 0db13d3404 [update] remove old download pages 2021-08-12 12:55:45 +08:00
TommyXin 8b96a7308c fix stop button 2021-08-12 11:06:05 +08:00
peterlu14 d7e69e250e Merge remote-tracking branch 'origin/0809_release_version' into download_rebuild 2021-08-12 10:30:25 +08:00
TommyXin 14217aa1ea fix EIS freq max 2021-08-12 09:50:50 +08:00
peterlu14 506080c518 [update] replay download url fix 2021-08-12 04:23:53 +08:00
peterlu14 794b71cc9f [update] rebuild download structure 2021-08-12 04:16:40 +08:00
Jordan Hsu 7e355448e0 [fix] replay change scale bug 2021-08-10 19:53:37 +08:00
TommyXin 1bcf0d99e9 Merge remote-tracking branch 'origin/0809_release_version' into 0809_release_version 2021-08-10 19:28:48 +08:00
TommyXin af094ad93a fix subplot deviceOpions lose time 2021-08-10 19:28:37 +08:00
Jordan Hsu 062023bd95 [add] replay overview sampling function 2021-08-10 18:43:20 +08:00
Jordan Hsu fcef23b199 [fix] delete bug 2021-08-10 17:59:31 +08:00
Jordan Hsu 56051c881a [fix] replay layout bug 2021-08-10 17:29:19 +08:00
TommyXin 9bc027b445 fix subplot multi device selection 2021-08-10 16:27:57 +08:00
TommyXin 06528addc7 remove some style 2021-08-10 16:17:24 +08:00
peterlu14 279a1056f4 Merge branch '0809_release_version' into feature/edf_format 2021-08-10 13:31:09 +08:00
peterlu14 0ef305c434 Merge remote-tracking branch 'origin/file_page_rebuild' into 0809_release_version 2021-08-10 00:21:45 +08:00
TommyXin 2161b37932 subplot add error mes 2021-08-09 23:20:24 +08:00
TommyXin 6b63b2b406 multi-device register 2021-08-09 21:09:36 +08:00
TommyXin ccdc193067 fix mlit-page start plot error 2021-08-09 17:47:02 +08:00
TommyXin 2ba4644a78 [api] collection add /file 2021-08-09 13:28:58 +08:00
Jordan Hsu 72dbb2abf5 [fix] both replay download bug by adding sleep function 2021-08-06 11:06:48 +08:00
Jordan Hsu 7f498c01ed [modify] pulse sensing cycle is unified to CYCLE_NUMBER and wait for elite 2021-08-06 10:46:50 +08:00
Jordan Hsu d9f7813a3c [fix] download bug by adding sleep function 2021-08-06 10:18:19 +08:00
peterlu14 35c436ee67 [update] data timestamp align 2021-08-05 18:21:39 +08:00
Jordan Hsu 2f82138097 [remove] redundant code 2021-08-05 15:16:53 +08:00
Jordan Hsu e4d2186d86 [fix] replay change cycle bug 2021-08-05 15:07:03 +08:00
Jordan Hsu 749fd86c65 Merge branch 'feature/DPV_UI' into 0726_test_version 2021-08-05 14:35:04 +08:00
Jordan Hsu 95bb4afa49 [fix] replay cycle bug 2021-08-05 13:51:06 +08:00
Jordan Hsu 6c5c832fde [add] neulive sti T range check point 2021-08-05 12:25:52 +08:00
Jordan Hsu 256070ae76 [fix] typo 2021-08-04 18:44:07 +08:00
TommyXin 7edde3d7b2 vuex download 2021-08-04 18:25:08 +08:00
TommyXin 8ba6bcb8cb [api] get meta by limit&offset 2021-08-04 17:17:32 +08:00
Jordan Hsu 1398ffad4c [modify] EIS VoltRange component path 2021-08-04 16:55:13 +08:00
Jordan Hsu e82d17ab4f [add] pulse sensing mode segment hover effect, [remove] replay exp display 2021-08-04 16:43:53 +08:00
TommyXin d116c9951a CV formula 2021-08-02 17:04:53 +08:00
TommyXin d3e02ee4db ppd NaN error 2021-08-02 16:39:51 +08:00
TommyXin 2f9cd9fae0 Merge branch 'debug_0722' into 0726_test_version 2021-08-02 15:49:02 +08:00
TommyXin cfca599408 [EIS] add CV mode & formula changing 2021-08-02 15:46:23 +08:00
Jordan Hsu fecbd4e4da [modify] neulive sti time range rule 2021-07-31 22:22:09 +08:00
peterlu14 08fcba3f58 [update] axis value divide 100 2021-07-28 16:03:13 +08:00
Jordan Hsu e4da226a03 [init] DPV UI 2021-07-27 21:08:33 +08:00
peterlu14 b68471eff6 [update] elite download update 2021-07-27 17:32:27 +08:00
peterlu14 5cf83f18c4 [update] download file split raw and acc data 2021-07-27 12:23:01 +08:00
peterlu14 11f4793a7a Merge remote-tracking branch 'origin/feature/replay' into 0726_test_version 2021-07-26 15:51:47 +08:00
peterlu14 7d615e0e53 Merge remote-tracking branch 'origin/debug_0722' into 0726_test_version 2021-07-26 10:29:04 +08:00
peterlu14 589727142c Merge remote-tracking branch 'origin/feature/pulse_sensing_UI' into 0726_test_version 2021-07-26 10:26:30 +08:00
peterlu14 230fb4f8a4 [update] fix delete data & delete multi data 2021-07-26 10:24:00 +08:00
peterlu14 058057dca4 [update] add mem_rf_set 2021-07-26 04:41:06 +08:00
Jordan Hsu 9a13720f04 [fix] typo 2021-07-23 16:35:58 +08:00
Jordan Hsu d7fd0426bd [add] segment_ui_order param 2021-07-23 13:31:12 +08:00
Jordan Hsu 5addbef71c adjust UI 2021-07-23 11:08:33 +08:00
Jordan Hsu 9f988edd63 [modify] segment order param for roy 2021-07-22 23:55:08 +08:00
TommyXin e5ff49333d clear task info while leave page 2021-07-22 22:38:38 +08:00
TommyXin 2b70a54a07 dev tool for EIS&clear task info 2021-07-22 22:38:03 +08:00
TommyXin 9b64a5484e add subplot 2021-07-22 21:54:11 +08:00
TommyXin e6dcb0d389 new chart grid unit 2021-07-22 21:34:54 +08:00
TommyXin 8a2f001f28 fix add chart repeat 2021-07-22 21:20:17 +08:00
TommyXin 4fa122c754 fix page height error 2021-07-22 21:05:58 +08:00
TommyXin 1ebfa0b343 elite grid 2021-07-22 20:49:07 +08:00
Jordan Hsu 076f8111eb change meaning of segment_order 2021-07-22 17:48:49 +08:00
Jordan Hsu dd895bb177 [fix] if delete segment, reset t_pulse to 0 2021-07-22 16:40:57 +08:00
Jordan Hsu e3b9a00071 [modify] pulse sensing mode UI for roy testing 2021-07-22 16:13:01 +08:00
Jordan Hsu 8697e94aa7 [add] ui for pulse sensing mode 2021-07-21 22:57:48 +08:00
TommyXin e786ce437d rec_ref 2021-07-19 16:03:54 +08:00
TommyXin 8b841a8524 Merge remote-tracking branch 'origin/EIS_UI_rough' into EIS_UI_rough 2021-07-19 13:11:20 +08:00
TommyXin fabeca30b6 [fix] send "delay" parameter error 2021-07-19 13:10:32 +08:00
Roy 23a430d7e4 Merge commit '5a8147476c4e7dbf5a9c0419c3aeab2bba381f1a' into EIS_UI_rough 2021-07-16 14:34:57 +08:00
TommyXin 979918b31b change parameter formula 2021-07-14 17:21:12 +08:00
Jordan Hsu cee179b1f7 [modify] default showed unit 2021-07-14 16:49:21 +08:00
Jordan Hsu 758aac1909 [modify] both replay will re-download data, elite default only download first cycle
To be tested: elite if scale = 100 or 1000, will close chart averaging
2021-07-14 16:38:37 +08:00
TommyXin f7a487d316 EIS UI done 2021-07-14 12:48:08 +08:00
peterlu14 cf648fe862 Merge branch '0701_test_version' 2021-07-12 07:23:13 +08:00
peterlu14 d3610b3430 [fix] elite download 2021-07-12 07:22:16 +08:00
Jordan Hsu 054a8a6382 [modify] no matter how both replay will re-download data 2021-07-01 21:02:59 +08:00
499 changed files with 61874 additions and 20872 deletions
+161 -16
View File
@@ -1168,6 +1168,16 @@
"minimist": "^1.2.0"
}
},
"@fontsource/source-code-pro": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@fontsource/source-code-pro/-/source-code-pro-4.5.0.tgz",
"integrity": "sha512-IKB+oQfwjj9DzEM2sc5rO70BZV7+ksmZbB+1KzyiZp2VroPw7Lm1ovXBU2JYWIWXmNY+gDudvyZXZHE+6cG47Q=="
},
"@fontsource/source-sans-pro": {
"version": "4.5.1",
"resolved": "https://registry.npmjs.org/@fontsource/source-sans-pro/-/source-sans-pro-4.5.1.tgz",
"integrity": "sha512-JYEldSfnqxoDVUL6QgqT8Fiyjh0p7WlKcqKNevzDylpWabdejVRyFzPhTk2ZceKZd02KEOaL+K462U6u0/PQiA=="
},
"@hapi/address": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
@@ -2341,6 +2351,12 @@
}
}
},
"@vue/composition-api": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/@vue/composition-api/-/composition-api-1.7.0.tgz",
"integrity": "sha512-hxOgLYR+wjuPX9bkP2pAPlqUs98XxBoa9DSLyp1z6+YR92wC42PZcZKs4d+VRtcv4udOv041Kss+F6ap5nj8YA==",
"dev": true
},
"@vue/eslint-config-standard": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/@vue/eslint-config-standard/-/eslint-config-standard-5.1.2.tgz",
@@ -4744,6 +4760,11 @@
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
"dev": true
},
"complex.js": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz",
"integrity": "sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg=="
},
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
@@ -5674,6 +5695,11 @@
"map-obj": "^1.0.0"
}
},
"decimal.js": {
"version": "10.3.1",
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz",
"integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ=="
},
"decode-uri-component": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
@@ -6189,11 +6215,19 @@
}
},
"echarts": {
"version": "4.9.0",
"resolved": "https://registry.npmjs.org/echarts/-/echarts-4.9.0.tgz",
"integrity": "sha512-+ugizgtJ+KmsJyyDPxaw2Br5FqzuBnyOWwcxPKO6y0gc5caYcfnEUIlNStx02necw8jmKmTafmpHhGo4XDtEIA==",
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/echarts/-/echarts-5.3.3.tgz",
"integrity": "sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==",
"requires": {
"zrender": "4.3.2"
"tslib": "2.3.0",
"zrender": "5.3.2"
},
"dependencies": {
"tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
}
}
},
"editorconfig": {
@@ -6475,6 +6509,11 @@
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
"dev": true
},
"escape-latex": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz",
"integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw=="
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -7536,6 +7575,11 @@
"schema-utils": "^2.5.0"
}
},
"file-saver": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
},
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
@@ -7732,6 +7776,11 @@
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
"dev": true
},
"fraction.js": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
"integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA=="
},
"fragment-cache": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
@@ -8580,6 +8629,11 @@
"integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"dev": true
},
"immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
"integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
},
"import-cwd": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
@@ -9379,6 +9433,11 @@
"html-escaper": "^2.0.0"
}
},
"javascript-natural-sort": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz",
"integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw=="
},
"javascript-stringify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.0.1.tgz",
@@ -10360,6 +10419,14 @@
"type-check": "~0.3.2"
}
},
"lie": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
"integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
"requires": {
"immediate": "~3.0.5"
}
},
"lines-and-columns": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
@@ -10924,6 +10991,14 @@
}
}
},
"localforage": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
"integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
"requires": {
"lie": "3.1.1"
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
@@ -11189,6 +11264,32 @@
"resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz",
"integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg=="
},
"mathjs": {
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/mathjs/-/mathjs-11.0.1.tgz",
"integrity": "sha512-Kgm+GcTxwD68zupr7BPK0yrlWpTh2q8sMH6VcBcQe5+JCBqcwOrBxBF11WPah7hVv0NCLDnJnFTiXtik1Phasg==",
"requires": {
"@babel/runtime": "^7.18.9",
"complex.js": "^2.1.1",
"decimal.js": "^10.3.1",
"escape-latex": "^1.2.0",
"fraction.js": "^4.2.0",
"javascript-natural-sort": "^0.7.1",
"seedrandom": "^3.0.5",
"tiny-emitter": "^2.1.0",
"typed-function": "^3.0.0"
},
"dependencies": {
"@babel/runtime": {
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
"integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
}
}
},
"mathml-tag-names": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
@@ -12106,6 +12207,11 @@
"set-blocking": "~2.0.0"
}
},
"nprogress": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
"integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E="
},
"nth-check": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
@@ -14144,9 +14250,9 @@
"dev": true
},
"resize-detector": {
"version": "0.1.10",
"resolved": "https://registry.npmjs.org/resize-detector/-/resize-detector-0.1.10.tgz",
"integrity": "sha512-iLcXC8A6Fb0DfA+TRiywrK/0A22bFqkhntjMJMEzXDA4XkcEkfwpNbv7W8iewUiD0xYIaeiXOfiEehTqGKsUFw=="
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/resize-detector/-/resize-detector-0.3.0.tgz",
"integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ=="
},
"resolve": {
"version": "1.17.0",
@@ -14434,6 +14540,11 @@
}
}
},
"seedrandom": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
"integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg=="
},
"select": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
@@ -16503,6 +16614,11 @@
"mime-types": "~2.1.24"
}
},
"typed-function": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/typed-function/-/typed-function-3.0.0.tgz",
"integrity": "sha512-mKJKkt2xYxJUuMD7jyfgUxfn5KCsCxkEKBVjep5yYellJJ5aEDO2QUAmIGdvcZmfQnIrplkzELIaG+5b1475qg=="
},
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
@@ -17060,14 +17176,18 @@
"vue": "^2.6.9"
}
},
"vue-demi": {
"version": "0.13.5",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.5.tgz",
"integrity": "sha512-tO3K2bML3AwiHmVHeKCq6HLef2st4zBXIV5aEkoJl6HZ+gJWxWv2O8wLH8qrA3SX3lDoTDHNghLX1xZg83MXvw=="
},
"vue-echarts": {
"version": "5.0.0-beta.0",
"resolved": "https://registry.npmjs.org/vue-echarts/-/vue-echarts-5.0.0-beta.0.tgz",
"integrity": "sha512-QZFKGXDAYFQo+F20REpzcdLx79nsl4kOorJRpN+08aYq4YiIlmtWss1Lxadm7Fo+NYyWm8nnT+h4xHv3uqWIDQ==",
"version": "6.2.3",
"resolved": "https://registry.npmjs.org/vue-echarts/-/vue-echarts-6.2.3.tgz",
"integrity": "sha512-xHzUvgsgk/asJTcNa8iVVwoovZU3iEUHvmBa3bzbiP3Y6OMxM1YXsoWOKVmVVaUusGs4ob4pSwjwNy2FemAz9w==",
"requires": {
"core-js": "^3.4.4",
"lodash": "^4.17.15",
"resize-detector": "^0.1.10"
"resize-detector": "^0.3.0",
"vue-demi": "^0.13.2"
}
},
"vue-epic-bus": {
@@ -17119,6 +17239,11 @@
}
}
},
"vue-final-modal": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/vue-final-modal/-/vue-final-modal-2.4.1.tgz",
"integrity": "sha512-tvkPaf94wzoANjNFNP8b40bXuCAk28jg0OkhRKL3oQ9VTTwhlX25gnWG5d2qyxLfnE2237E8ngwF3KNPf/bhrw=="
},
"vue-flatpickr-component": {
"version": "8.1.5",
"resolved": "https://registry.npmjs.org/vue-flatpickr-component/-/vue-flatpickr-component-8.1.5.tgz",
@@ -17206,6 +17331,11 @@
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.3.4.tgz",
"integrity": "sha512-SdKRBeoXUjaZ9R/8AyxsdTqkOfMcI5tWxPZOUX5Ie1BTL5rPSZ0O++pbiZCeYeythiZIdLEfkDiQPKIaWk5hDg=="
},
"vue-slicksort": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/vue-slicksort/-/vue-slicksort-1.2.0.tgz",
"integrity": "sha512-k1324l+AnYy6MrpySN7PYL165z2EkvZmMe+BS7H/EugzS8IrZYRtoqa3QxSSWB34C7cplV1hj3c+7peKpxpYxg=="
},
"vue-style-loader": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz",
@@ -17245,6 +17375,11 @@
"resolved": "https://registry.npmjs.org/vue-toasted/-/vue-toasted-1.1.28.tgz",
"integrity": "sha512-UUzr5LX51UbbiROSGZ49GOgSzFxaMHK6L00JV8fir/CYNJCpIIvNZ5YmS4Qc8Y2+Z/4VVYRpeQL2UO0G800Raw=="
},
"vue-toastification": {
"version": "1.7.14",
"resolved": "https://registry.npmjs.org/vue-toastification/-/vue-toastification-1.7.14.tgz",
"integrity": "sha512-khZR8t3NWZ/JJ2MZxXLbesHrRJ8AKa75PY5Zq8yMifF9x8lHq8ljYkC0d2PD9yahooygQB5tcFyRDkbbIPx8hw=="
},
"vue-worker": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/vue-worker/-/vue-worker-1.2.1.tgz",
@@ -18507,9 +18642,19 @@
}
},
"zrender": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/zrender/-/zrender-4.3.2.tgz",
"integrity": "sha512-bIusJLS8c4DkIcdiK+s13HiQ/zjQQVgpNohtd8d94Y2DnJqgM1yjh/jpDb8DoL6hd7r8Awagw8e3qK/oLaWr3g=="
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/zrender/-/zrender-5.3.2.tgz",
"integrity": "sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==",
"requires": {
"tslib": "2.3.0"
},
"dependencies": {
"tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
}
}
}
}
}
+13 -3
View File
@@ -5,7 +5,7 @@
"description": "Vue.js admin template",
"author": "smartapant <smartapant@gmail.com>",
"scripts": {
"serve": "vue-cli-service serve",
"serve": "vue-cli-service serve --mode development",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"lint:style": "stylelint --fix src/**/*.{vue,htm,html,css,sss,less,scss}",
@@ -13,6 +13,8 @@
"test:unit": "vue-cli-service test:unit"
},
"dependencies": {
"@fontsource/source-code-pro": "^4.5.0",
"@fontsource/source-sans-pro": "^4.5.1",
"@types/jest": "^24.0.11",
"amcharts3": "^3.21.14",
"ammap3": "^3.21.14",
@@ -23,18 +25,22 @@
"chart.js": "^2.9.3",
"core-js": "3",
"detect-browser": "^4.8.0",
"echarts": "^4.9.0",
"echarts": "^5.3.3",
"element-resize-detector": "^1.1.15",
"epic-spinners": "^1.1.0",
"extend": "3.0.2",
"file-saver": "^2.0.5",
"flag-icon-css": "^3.4.5",
"font-awesome": "^4.7.0",
"google-maps": "^3.3.0",
"ionicons": "^4.6.3",
"leaflet-map": "^0.2.1",
"localforage": "^1.10.0",
"lodash": "^4.17.21",
"mathjs": "^11.0.1",
"medium-editor": "^5.23.3",
"normalize.css": "^8.0.1",
"nprogress": "^0.2.0",
"popper.js": "^1.16.0",
"regenerator-runtime": "^0.13.3",
"register-service-worker": "^1.6.2",
@@ -48,11 +54,14 @@
"vue-clipboard2": "^0.3.1",
"vue-color": "^2.7.0",
"vue-ctk-date-time-picker": "^2.5.0",
"vue-echarts": "^5.0.0-beta.0",
"vue-echarts": "^6.2.3",
"vue-epic-bus": "^0.1.2",
"vue-final-modal": "^2.4.1",
"vue-gtm": "^2.2.0",
"vue-mqtt": "^2.0.3",
"vue-router": "^3.1.3",
"vue-slicksort": "^1.2.0",
"vue-toastification": "^1.7.14",
"vue-worker": "^1.2.1",
"vue-yandex-maps": "^0.9.0",
"vuedraggable": "^2.24.3",
@@ -69,6 +78,7 @@
"@vue/cli-plugin-pwa": "^4.0.5",
"@vue/cli-plugin-unit-jest": "^4.0.5",
"@vue/cli-service": "^4.0.5",
"@vue/composition-api": "^1.7.0",
"@vue/eslint-config-standard": "^5.0.0",
"@vue/test-utils": "^1.0.0-beta.29",
"autoprefixer": "^9.7.2",
Binary file not shown.
-3
View File
@@ -3,9 +3,6 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400" rel="stylesheet">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>BioPro Scientific</title>
+1 -1
View File
@@ -10,5 +10,5 @@ burn_to_raspberry.sh
```shell
sh ./burn_to_raspberry.sh <HOST> <PASSWORD>
e.g. sh ./burn_to_raspberry.sh pi@192.168.3.53 raspberry
e.g. sh ./burn_to_raspberry.sh pi@192.168.2.1 raspberry
```
+60 -11
View File
@@ -14,13 +14,7 @@ import YmapPlugin from 'vue-yandex-maps'
import VueClipboard from 'vue-clipboard2'
import ECharts from 'vue-echarts'
import 'echarts/lib/chart/line'
import 'echarts/lib/component/dataZoom'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/legend'
import 'echarts/lib/component/axisPointer'
import 'echarts/lib/component/grid'
import 'echarts/lib/component/markArea'
import { use } from 'echarts/core'
import VueMqtt from 'vue-mqtt'
import global_ from '../data/global/global'
@@ -28,17 +22,70 @@ import VueWorker from 'vue-worker'
import axios from 'axios'
import VueAxios from 'vue-axios'
import 'nprogress/nprogress.css'
import Toast from 'vue-toastification'
import 'vue-toastification/dist/index.css'
import api from '@/data/api/index'
import localforage from 'localforage'
import '../metrics'
import '../registerServiceWorker'
// import ECharts modules manually to reduce bundle size
import {
CanvasRenderer,
} from 'echarts/renderers'
import {
LineChart,
PieChart,
BarChart,
} from 'echarts/charts'
import {
GridComponent,
TooltipComponent,
LegendComponent,
TitleComponent,
DataZoomComponent,
BrushComponent,
ToolboxComponent,
} from 'echarts/components'
use([
CanvasRenderer,
LineChart,
BarChart,
PieChart,
GridComponent,
TooltipComponent,
ToolboxComponent,
LegendComponent,
TitleComponent,
DataZoomComponent,
BrushComponent,
])
localforage.config({ name: 'bioprovue' })
let MqttUrl
// for developer
if (process.env.NODE_ENV === 'development') {
MqttUrl = 'ws://192.168.5.66:8083'
// MqttUrl = 'ws://192.168.5.57:8083'
// MqttUrl = 'ws://192.168.5.57:8080'
} else {
// for user
MqttUrl = `ws://${location.href.split('/')[2]}:8083`
}
if (process.env.VUE_APP_BUILD_VERSION) {
// eslint-disable-next-line
const message = `%c${'Build_information:'}\n %c${'Version'}: %c${VERSION},\n %c${'Timestamp'}: %c${TIMESTAMP},\n %c${'Commit'}: %c${COMMIT}`
const message = `%c${'Build_information:'}\n %c${'Version'}: %c${VERSION},\n %c${'Timestamp'}: %c${TIMESTAMP},\n %c${'Commit'}: %c${COMMIT} %c${'Mqtt'}: %c${MqttUrl}`
// eslint-disable-next-line
console.info(
message,
'color: blue;', 'color: red;', 'color: blue;', 'color: red;', 'color: blue;', 'color: red;', 'color: blue;',
'color: blue;', 'color: red;', 'color: blue;', 'color: red;', 'color: blue;', 'color: red;', 'color: blue;', 'color: red;', 'color: blue;',
)
}
@@ -48,11 +95,13 @@ Vue.use(VueClipboard)
Vue.component('chart', ECharts)
Vue.use(VueWorker)
Vue.use(VueAxios, axios)
Vue.use(Toast)
// Vue.use(VueMqtt, 'ws://52.194.17.114:8083')
// Vue.use(VueMqtt, 'ws://' + location.href.split('/')[2] + ':8083')
Vue.use(VueMqtt, 'ws://' + '192.168.3.48' + ':8083')
// Vue.use(VueMqtt, 'ws://' + '192.168.151.125' + ':8083')
Vue.use(VueMqtt, MqttUrl)
Vue.prototype.API = api
Vue.prototype.GLOBAL = global_
Vue.use(ColorThemePlugin, {
+1
View File
@@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="sd-card" class="svg-inline--fa fa-sd-card fa-w-12" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="#6c7fee" d="M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z"></path></svg>

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

+530
View File
@@ -0,0 +1,530 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{font-family:'Arial-ItalicMT';}
.st17{font-size:23.5321px;}
.st18{fill:none;}
.st19{font-family:'ArialMT';}
.st20{font-size:48.0099px;}
.st21{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st22{font-size:57.6118px;}
.st23{font-size:28.8059px;}
.st24{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st25{fill:#CACACF;}
.st26{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st27{fill:url(#SVGID_1_);}
.st28{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st29{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st30{fill:#FF6B7A;stroke:#787879;stroke-width:1.5;stroke-miterlimit:10;}
.st31{fill:none;stroke:#787879;stroke-width:3;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="446.29" y="960.7" class="st0" width="100.36" height="144"/>
<rect x="148" y="960.45" class="st1" width="200.4" height="144.5"/>
<rect x="147" y="960.7" class="st2" width="610" height="144"/>
<line class="st3" x1="147" y1="1032.7" x2="757" y2="1032.7"/>
<line class="st3" x1="348.4" y1="960.45" x2="348.4" y2="1105.2"/>
<line class="st3" x1="446.29" y1="960.7" x2="446.29" y2="1104.7"/>
<line class="st3" x1="546.65" y1="960.7" x2="546.65" y2="1104.7"/>
<line class="st3" x1="651.01" y1="960.7" x2="651.01" y2="1104.7"/>
</g>
<text transform="matrix(1 0 0 1 482.9477 1084.599)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 378.1117 1016.2135)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 397.1932 1022.7993)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 572.3569 1017.1391)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 602.644 1022.9614)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 671.5264 1017.6255)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 697.4883 1024.1158)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 458.211 1016.7417)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 488.9029 1016.7417)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 376.3327 1083.5667)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 682.6434 1084.389)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 575.7955 1083.6689)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 191.4691 1013.8749)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 158.5342 1080.74)" class="st14 st8 st15 st13">Connect to</text>
<text transform="matrix(1 0 0 1 145.5029 1137.9326)" class="st4 st16 st17 st13">* CC-mode wire is recommended to use in constant current mode</text>
<rect x="803.03" y="1083.8" class="st18" width="0" height="0"/>
</g>
<g id="sample">
<path class="st1" d="M349.2,870.55V840.5c0-20.34,16.49-36.83,36.83-36.83h114.55c20.34,0,36.83,16.49,36.83,36.83v30.05
c0,20.34-16.49,36.83-36.83,36.83H386.03C365.69,907.37,349.2,890.89,349.2,870.55z"/>
<circle class="st1" cx="561.4" cy="853.83" r="13.2"/>
<circle class="st1" cx="324.24" cy="853.83" r="13.92"/>
<rect x="329.04" y="849.03" class="st1" width="228.53" height="9.6"/>
<text transform="matrix(1 0 0 1 365.9231 868.3369)" class="st14 st19 st20">sample</text>
<text transform="matrix(1 0 0 1 365.9231 868.3369)" class="st14 st19 st20">sample</text>
<text transform="matrix(1 0 0 1 304.9065 919.1484)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 540.8065 919.1484)" class="st11 st8 st12 st13">E2</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
AAA6QgIAAAAAdIQEAAAAAOgICQAAAADQERIAAAAAoCMkAAAAAEBHSAAAAACAjpAAAAAAAB0hAQAA
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" transform="matrix(0.8003 0 0 0.8003 153.1039 24)">
</image>
<g>
<path class="st21" d="M453.5,450.27c0,169.35,34.9,224.71,112.11,265.48c38.91,20.54,120.57,24.66,83.6,85.15"/>
<text transform="matrix(1 0 0 1 540.35 773.4848)" class="st4 st19 st22">V</text>
<text transform="matrix(1 0 0 1 571.4843 779.3071)" class="st4 st8 st23">in</text>
</g>
<g>
<path class="st21" d="M470.3,450.27c-4.2,91.34,42.92,215.78,122.42,249.2c150.62,63.32,37,125.56-21.61,150.53"/>
<g>
<path class="st24" d="M584.97,834.15c-8.45,7.26-14.88,13.14-23.57,20.6c1.09,2.26,1.68,3.89,1.68,3.89s11.69-3.61,29.64-7.53
c0.84,2.79,0.81,2.79,1.46,5.91c4.73-1.03,11.02-2.76,19.72-4.34c-1.82-4.99-2.59-6.89-4.38-12.39
c-12.68,3.62-25.23,5.93-37.73,10.79c11.45-8.36,20.5-15.57,31.95-23.93c-3.06-5.1-5.77-6.9-8.91-12.14
c-6.58,5.82-14.51,13.28-14.51,13.28S583.62,831.94,584.97,834.15z"/>
<path class="st25" d="M584.97,834.15c-8.45,7.26-14.88,13.14-23.57,20.6c1.09,2.26,1.68,3.89,1.68,3.89s11.69-3.61,29.64-7.53
c0.71,3.92,0.87,2.67,1.46,5.91c8.18-1.79,11.21-2.48,19.72-4.34c-1.77-4.32-2.5-7.77-4.38-12.39
c-12.68,3.62-25.23,5.93-37.73,10.79c11.45-8.36,20.5-15.57,31.95-23.93c-4.18-4.57-3.76-5.64-8.93-11.29
c-6.58,5.82-14.49,12.42-14.49,12.42S582.53,831.01,584.97,834.15z"/>
</g>
<text transform="matrix(1 0 0 1 631.1288 717.4971)" class="st4 st19 st22">V</text>
<text transform="matrix(1 0 0 1 661.7762 725.0928)" class="st4 st8 st23">out</text>
</g>
<g>
<path class="st21" d="M416.87,450.27c4.2,94.6-11.44,197.05-87.98,238.22c-147.23,79.19-37.2,151.26-10.45,161.52"/>
<path class="st24" d="M291.38,846.45c11.94,4.37,20.4,6.96,32.67,11.45c1.45-2.56,2.61-4.2,2.61-4.2s-10.49-10.06-25.1-26.52
c3.23-3.2,3.04-2.93,5.71-5.58c-5.92-6.67-8.63-9.61-14.96-17.92c-4.41,4.6-7.52,7.12-11.94,11.72
c11.12,11.1,21.75,23.72,33.92,33.86c-14.79-6.84-27.05-11.86-41.83-18.71c-2.9,6.41-4.36,9.1-7.34,15.69
c9.44,3.29,22.68,8.29,22.68,8.29S290.14,849.25,291.38,846.45z"/>
<path class="st25" d="M291.38,846.45c11.94,4.37,20.4,6.96,32.67,11.45c1.45-2.56,2.61-4.2,2.61-4.2s-10.49-10.06-25.1-26.52
c3.23-3.2,3.04-2.93,5.71-5.58c-5.92-6.67-8.63-9.61-14.96-17.92c-4.41,4.6-7.52,7.12-11.94,11.72
c11.12,11.1,21.75,23.72,33.92,33.86c-14.79-6.84-27.05-11.86-41.83-18.71c-2.9,6.41-4.36,9.1-7.34,15.69
c9.44,3.29,22.68,8.29,22.68,8.29S290.14,849.25,291.38,846.45z"/>
<text transform="matrix(1 0 0 1 205.6116 750.498)" class="st4 st19 st22">l</text>
<text transform="matrix(1 0 0 1 221.4627 756.6533)" class="st4 st8 st23">in</text>
</g>
<path class="st26" d="M247.05,380.27V136.19c0-38.66,31.34-70,70-70h244.08c38.66,0,70,31.34,70,70v244.08c0,38.66-31.34,70-70,70
H317.05C278.39,450.27,247.05,418.93,247.05,380.27z"/>
<radialGradient id="SVGID_1_" cx="510.0233" cy="311.428" r="219.0407" gradientTransform="matrix(0.8097 0 0 0.8097 26.1212 6.0655)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st27" d="M285.46,371.86V144.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H325.46C303.37,411.86,285.46,393.95,285.46,371.86z"/>
<path class="st28" d="M285.46,371.86V144.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H325.46C303.37,411.86,285.46,393.95,285.46,371.86z"/>
<path class="st26" d="M309.46,365.86V150.6c0-12.15,9.85-22,22-22h215.25c12.15,0,22,9.85,22,22v215.25c0,12.15-9.85,22-22,22
H331.46C319.31,387.86,309.46,378.01,309.46,365.86z"/>
<circle class="st29" cx="439.09" cy="188.25" r="31.21"/>
<path class="st30" d="M612.44,834.46c16.27-9.39,23.67-16.44,29.29-21.6c3.8-3.5,11.73-10.33,14.57-14.34
c0.95-1.34-1.1-3.5-2.31-4.63l-0.52-0.48c-1.34-1.25-3.49-1.19-4.77,0.13c-4.11,4.28-13.47,13.93-18.85,18.26
c-4.64,3.73-12.81,10.16-22.88,16.46C605.48,829.18,608.7,836.62,612.44,834.46z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

+553
View File
@@ -0,0 +1,553 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{fill:#FAFAFA;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st17{fill:#43DABF;stroke:#46DBC0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st18{fill:#FFFFFF;stroke:#46DBC0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st19{fill:#A6A6A6;stroke:#A6A6A6;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st20{fill:#505050;stroke:#505050;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st21{fill:#FFFFFF;stroke:#525252;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st22{fill:#FF8EA1;stroke:#FF8FA2;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st23{fill:#FFFFFF;stroke:#FF8FA2;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st24{opacity:0.349;fill:#75F1FF;}
.st25{fill:#FFFFFF;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st26{font-size:40px;}
.st27{font-size:34.8402px;}
.st28{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st29{fill:none;stroke:#707070;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st30{fill:#5E5E5E;}
.st31{font-family:'ArialMT';}
.st32{font-size:49.9451px;}
.st33{font-size:24.9725px;}
.st34{fill:none;stroke:#515152;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st35{fill:#0054A8;}
.st36{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st37{fill:#F2F2F2;}
.st38{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st39{fill:url(#SVGID_1_);}
.st40{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st41{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="444.29" y="969.2" class="st0" width="100.36" height="145.5"/>
<rect x="146" y="970.45" class="st1" width="200.4" height="144.5"/>
<rect x="145" y="970.7" class="st2" width="610" height="144"/>
<line class="st3" x1="145" y1="1042.7" x2="755" y2="1042.7"/>
<line class="st3" x1="346.4" y1="970.45" x2="346.4" y2="1115.2"/>
<line class="st3" x1="444.29" y1="970.7" x2="444.29" y2="1114.7"/>
<line class="st3" x1="544.65" y1="970.7" x2="544.65" y2="1114.7"/>
<line class="st3" x1="649.01" y1="970.7" x2="649.01" y2="1114.7"/>
</g>
<text transform="matrix(1 0 0 1 481.042 1091.1556)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 376.1117 1026.2135)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 395.1932 1032.7993)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 570.3569 1027.1392)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 600.644 1032.9614)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 669.5264 1027.6255)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 695.4883 1034.1158)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 456.211 1026.7417)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 486.9029 1026.7417)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 366.7726 1092.7039)" class="st11 st8 st12 st13">CE</text>
<text transform="matrix(1 0 0 1 671.6493 1091.5194)" class="st11 st8 st12 st13">WE</text>
<text transform="matrix(1 0 0 1 570.608 1093.1669)" class="st11 st8 st12 st13">RE</text>
<text transform="matrix(1 0 0 1 189.4691 1023.8749)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 156.5342 1090.74)" class="st14 st8 st15 st13">Connect to</text>
</g>
<g id="sample">
<path class="st16" d="M256.21,888.67V759.86h401.9v129.78c0,11.17-9.05,20.22-20.22,20.22H277.39
C265.69,909.86,256.21,900.37,256.21,888.67z"/>
<g>
<rect x="306.71" y="609.95" class="st17" width="11.22" height="263.29"/>
<circle class="st18" cx="312.32" cy="674.74" r="40"/>
</g>
<g>
<path class="st19" d="M437.97,868.95V670.02c0-3.31,2.69-6,6-6h16c3.31,0,6,2.69,6,6v198.93c0,3.31-2.69,6-6,6h-16
C440.66,874.95,437.97,872.26,437.97,868.95z"/>
<rect x="446.36" y="611.66" class="st20" width="11.22" height="263.29"/>
<circle class="st21" cx="453.16" cy="673.82" r="40"/>
</g>
<g>
<path class="st19" d="M573.78,867.24V690.08c0-3.31,2.69-6,6-6h16c3.31,0,6,2.69,6,6v177.16c0,3.31-2.69,6-6,6h-16
C576.47,873.24,573.78,870.55,573.78,867.24z"/>
<rect x="582.17" y="609.95" class="st22" width="11.22" height="263.29"/>
<circle class="st23" cx="590.29" cy="674.16" r="40"/>
</g>
<path class="st24" d="M257.36,888.67v-92.88h399.75v93.83c0,10.73-8.7,19.42-19.42,19.42H277.72
C266.48,909.04,257.36,899.92,257.36,888.67z"/>
<path class="st25" d="M249.16,761.86v-17c0-1.66,1.34-3,3-3h410c1.66,0,3,1.34,3,3v17c0,1.66-1.34,3-3,3h-410
C250.5,764.86,249.16,763.51,249.16,761.86z"/>
<text transform="matrix(1 0 0 1 286.5413 689.6758)" class="st11 st8 st26 st7">CE</text>
<text transform="matrix(1 0 0 1 563.9761 687.1454)" class="st11 st8 st27 st13">WE</text>
<text transform="matrix(1 0 0 1 427.375 688.757)" class="st11 st8 st26 st7">RE</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
wwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDD
CPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI
/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8
AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwA
AABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAA
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
wwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDD
CPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI
/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8
AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwA
AABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAA
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
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" transform="matrix(0.7031 0 0 0.7031 180.3587 43.3352)">
</image>
<g>
<path class="st28" d="M454.3,418.66c-3.19,48.39-1.61,60.37,5.29,75.02c10.92,23.19,18.1,54.57-3.55,107.73"/>
<path class="st29" d="M453.14,585.66c-1.38,10.65-2,18.17-3.42,29.12c2.09,1.09,3.46,2,3.46,2s5.75-9.77,15.55-23.52
c2.82,2.6,0.74,0.72,3.07,2.87c3.97-5.57,7.76-11.17,12.86-17.2c-4.17-2.87-5.89-3.77-10.39-6.47
c-6.42,10.37-14.17,22.07-19.72,33.29c2.76-13.29,4.57-24.26,7.32-37.55c-5.05-0.9-7.26-1.56-12.82-3.06
c-0.98,8.42-3.01,18.76-3.01,18.76S450.91,584.76,453.14,585.66z"/>
<path class="st30" d="M453.14,585.66c-1.38,10.65-2,18.17-3.42,29.12c2.09,1.09,3.46,2,3.46,2s5.75-9.77,15.55-23.52
c2.82,2.6,0.74,0.72,3.07,2.87c3.96-5.17,7.47-10.85,12.86-17.2c-5.29-3.38-5.69-3.47-10.39-6.47
c-6.42,10.37-14.17,22.07-19.72,33.29c2.76-13.29,4.57-24.26,7.32-37.55c-6.33-1.54-6.45-1.51-12.82-3.06
c-0.98,8.42-3.01,18.76-3.01,18.76S450.91,584.76,453.14,585.66z"/>
<text transform="matrix(1 0 0 1 413.4074 535.9145)" class="st4 st31 st32">V</text>
<text transform="matrix(1 0 0 1 440.4006 540.9643)" class="st4 st8 st33">in</text>
</g>
<g>
<path class="st28" d="M471.86,418.66c0,113.19,26.79,122.57,100.13,108.04c27.79-5.51,35.81,15.28,18.14,75.7"/>
<path class="st34" d="M584.86,584.98c-0.35,11.24-0.34,20.03-0.7,31.59c2.46,0.68,4.09,1.32,4.09,1.32s5.33-11.26,14.74-27.48
c2.68,1.22,2.66,1.24,5.46,2.83c2.48-4.27,5.51-10.19,10.32-17.84c-5.02-1.94-6.98-2.63-12.37-4.93
c-6.01,12.03-12.91,23.07-17.86,35.78c1.59-14.25,2.38-25.92,3.97-40.16c-5.95-1.08-9.18-0.22-15.3-1.34
c-0.15,8.86,0.02,19.85,0.02,19.85S582.27,584.53,584.86,584.98z"/>
<path class="st35" d="M584.86,584.98c-0.35,11.24-0.34,20.03-0.7,31.59c2.46,0.68,4.09,1.32,4.09,1.32s5.33-11.26,14.74-27.48
c3.44,2.07,2.61,1.12,5.46,2.83c4.29-7.39,5.86-10.15,10.32-17.84c-4.48-1.54-7.58-3.29-12.37-4.93
c-6.01,12.03-12.91,23.07-17.86,35.78c1.59-14.25,2.38-25.92,3.97-40.16c-6.33,0.12-6.85-0.9-14.67-0.75
c-0.15,8.86-0.61,19.26-0.61,19.26S580.82,584.74,584.86,584.98z"/>
<text transform="matrix(1 0 0 1 586.0758 527.6253)" class="st4 st31 st32">V</text>
<text transform="matrix(1 0 0 1 612.65 534.2132)" class="st4 st8 st33">out</text>
</g>
<g>
<path class="st28" d="M419.55,418.66c0,63.92-43.67,94.16-80.31,101.51c-49.68,9.97-36.38,42.94-26.47,83.34"/>
<path class="st36" d="M299.91,588.27c4.5,10.06,8,16.89,12.62,27.23c2.47-0.65,4.19-0.91,4.19-0.91s-0.08-12.6,1.32-31.63
c3.94,0.07,3.66,0.12,6.92,0.18c0.57-7.71,0.76-11.17,2.1-20.13c-5.53,0.04-8.97-0.38-14.5-0.34c-0.19,13.62-1.6,27.86-0.56,41.54
c-4.68-13.33-8.97-23.99-13.65-37.31c-5.74,2.07-8.29,2.79-14.19,4.92c3.66,7.86,8.55,19.11,8.55,19.11
S297.42,589.19,299.91,588.27z"/>
<path class="st37" d="M299.91,588.27c4.5,10.06,8,16.89,12.62,27.23c2.47-0.65,4.19-0.91,4.19-0.91s-0.08-12.6,1.32-31.63
c3.94,0.07,3.66,0.12,6.92,0.18c0.57-7.71,0.76-11.17,2.1-20.13c-5.53,0.04-8.97-0.38-14.5-0.34c-0.19,13.62-1.6,27.86-0.56,41.54
c-4.68-13.33-8.97-23.99-13.65-37.31c-5.74,2.07-8.29,2.79-14.19,4.92c3.66,7.86,8.55,19.11,8.55,19.11
S297.42,589.19,299.91,588.27z"/>
<text transform="matrix(1 0 0 1 262.1959 532.2694)" class="st4 st31 st32">l</text>
<text transform="matrix(1 0 0 1 275.94 537.6141)" class="st4 st8 st33">in</text>
</g>
<path class="st38" d="M272.32,348.66V155.69c0-38.66,31.34-70,70-70h192.97c38.66,0,70,31.34,70,70v192.97c0,38.66-31.34,70-70,70
H342.32C303.66,418.66,272.32,387.32,272.32,348.66z"/>
<radialGradient id="SVGID_1_" cx="523.9471" cy="314.7148" r="197.1902" gradientTransform="matrix(0.7797 0 0 0.7797 30.2671 6.7787)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st39" d="M305.62,345.36V158.99c0-22.09,17.91-40,40-40h186.37c22.09,0,40,17.91,40,40v186.37c0,22.09-17.91,40-40,40
H345.62C323.53,385.36,305.62,367.45,305.62,345.36z"/>
<path class="st40" d="M305.62,345.36V158.99c0-22.09,17.91-40,40-40h186.37c22.09,0,40,17.91,40,40v186.37c0,22.09-17.91,40-40,40
H345.62C323.53,385.36,305.62,367.45,305.62,345.36z"/>
<path class="st38" d="M326.43,342.55V161.8c0-12.15,9.85-22,22-22h180.75c12.15,0,22,9.85,22,22v180.75c0,12.15-9.85,22-22,22
H348.43C336.28,364.55,326.43,354.7,326.43,342.55z"/>
<circle class="st41" cx="438.81" cy="191.51" r="27.05"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 40 KiB

+527
View File
@@ -0,0 +1,527 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{font-family:'ArialMT';}
.st17{font-size:48.0099px;}
.st18{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st19{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st20{fill:#CACACF;}
.st21{font-size:57.6118px;}
.st22{font-size:28.8059px;}
.st23{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st24{fill:url(#SVGID_1_);}
.st25{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st26{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="454.72" y="998.7" class="st0" width="101.93" height="144"/>
<rect x="158" y="998.45" class="st1" width="200.4" height="144.5"/>
<rect x="157" y="998.7" class="st2" width="610" height="144"/>
<line class="st3" x1="157" y1="1070.7" x2="767" y2="1070.7"/>
<line class="st3" x1="358.4" y1="998.45" x2="358.4" y2="1143.2"/>
<line class="st3" x1="456.29" y1="998.7" x2="456.29" y2="1142.7"/>
<line class="st3" x1="556.65" y1="998.7" x2="556.65" y2="1142.7"/>
<line class="st3" x1="661.01" y1="998.7" x2="661.01" y2="1142.7"/>
</g>
<text transform="matrix(1 0 0 1 492.9477 1122.599)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 388.1117 1054.2135)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 407.1932 1060.7993)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 582.3569 1055.1392)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 612.644 1060.9614)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 681.5264 1055.6255)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 707.4883 1062.1158)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 468.211 1054.7417)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 498.9029 1054.7417)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 386.3327 1121.5667)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 692.6434 1122.389)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 585.7955 1121.6689)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 201.4691 1051.8749)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 168.5341 1118.74)" class="st14 st8 st15 st13">Connect to</text>
</g>
<g id="sample">
<path class="st1" d="M346.37,878.55V848.5c0-20.34,16.49-36.83,36.83-36.83h114.55c20.34,0,36.83,16.49,36.83,36.83v30.05
c0,20.34-16.49,36.83-36.83,36.83H383.2C362.86,915.37,346.37,898.89,346.37,878.55z"/>
<circle class="st1" cx="558.57" cy="861.83" r="13.2"/>
<circle class="st1" cx="321.41" cy="861.83" r="13.92"/>
<rect x="326.21" y="857.03" class="st1" width="228.53" height="9.6"/>
<text transform="matrix(1 0 0 1 363.092 876.3369)" class="st14 st16 st17">sample</text>
<text transform="matrix(1 0 0 1 363.092 876.3369)" class="st14 st16 st17">sample</text>
<text transform="matrix(1 0 0 1 302.0754 927.1484)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 537.9753 927.1484)" class="st11 st8 st12 st13">E2</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
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" transform="matrix(0.811 0 0 0.811 138.137 25.3352)">
</image>
<g>
<path class="st18" d="M450.67,458.27c0,169.35,36,238.46,70.7,266.48c40.91,33.05,121.58,51.36,46.08,122.02"/>
<path class="st19" d="M572.19,826.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.59-4.39,13-8.88,21.03-13.33c-3.47-4.63-5.01-6.23-8.91-10.8c-11.2,8.55-24.4,17.99-34.98,27.76
c8.31-13.02,14.66-23.95,22.97-36.97c-5.22-2.87-7.41-4.41-12.95-8.11c-4.41,8.54-10.75,18.72-10.75,18.72
S570.08,824.68,572.19,826.47z"/>
<path class="st20" d="M572.19,826.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.42-3.97,12.55-8.65,21.03-13.33c-4.51-5.59-4.91-5.84-8.91-10.8
c-11.2,8.55-24.4,17.99-34.98,27.76c8.31-13.02,14.66-23.95,22.97-36.97c-6.38-4.03-6.53-4.05-12.95-8.11
c-4.41,8.54-10.75,18.72-10.75,18.72S570.08,824.68,572.19,826.47z"/>
<text transform="matrix(1 0 0 1 481.6926 775.9326)" class="st4 st16 st21">V</text>
<text transform="matrix(1 0 0 1 512.8269 781.7549)" class="st4 st8 st22">in</text>
</g>
<g>
<path class="st18" d="M467.47,458.27c-4.2,91.34,42.92,215.78,122.42,249.2c150.62,63.32,29.95,132.44-21.61,151.89"/>
<path class="st19" d="M579.29,844.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.7,2.83,0.67,2.82,1.16,5.97c4.78-0.8,11.14-2.21,19.91-3.35c-1.57-5.07-2.24-7.01-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-2.8-5.24-5.42-7.18-8.3-12.57
c-6.86,5.48-15.15,12.54-15.15,12.54S578.05,842.29,579.29,844.56z"/>
<path class="st20" d="M579.29,844.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.51,3.95,0.74,2.71,1.16,5.97c8.26-1.38,11.32-1.92,19.91-3.35c-1.55-4.41-2.11-7.89-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-3.95-4.77-3.48-5.82-8.36-11.72
c-6.86,5.48-15.09,11.69-15.09,11.69S577.01,841.31,579.29,844.56z"/>
<text transform="matrix(1 0 0 1 645.7878 741.4971)" class="st4 st16 st21">V</text>
<text transform="matrix(1 0 0 1 676.4353 749.0928)" class="st4 st8 st22">out</text>
</g>
<g>
<path class="st18" d="M414.04,458.27c4.2,94.6-11.44,197.05-87.98,238.22c-147.23,79.19-38.2,155.09-11.45,165.35"/>
<path class="st19" d="M286.56,857.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S285.17,860.56,286.56,857.82z"/>
<path class="st20" d="M286.56,857.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S285.17,860.56,286.56,857.82z"/>
<text transform="matrix(1 0 0 1 202.7805 758.498)" class="st4 st16 st21">l</text>
<text transform="matrix(1 0 0 1 218.6316 764.6533)" class="st4 st8 st22">in</text>
</g>
<path class="st23" d="M244.22,388.27V144.19c0-38.66,31.34-70,70-70H558.3c38.66,0,70,31.34,70,70v244.08c0,38.66-31.34,70-70,70
H314.22C275.56,458.27,244.22,426.93,244.22,388.27z"/>
<radialGradient id="SVGID_1_" cx="506.5269" cy="321.3081" r="219.0407" gradientTransform="matrix(0.8097 0 0 0.8097 26.1212 6.0655)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st24" d="M282.63,379.86V152.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H322.63C300.54,419.86,282.63,401.95,282.63,379.86z"/>
<path class="st25" d="M282.63,379.86V152.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H322.63C300.54,419.86,282.63,401.95,282.63,379.86z"/>
<path class="st23" d="M306.63,373.86V158.6c0-12.15,9.85-22,22-22h215.25c12.15,0,22,9.85,22,22v215.25c0,12.15-9.85,22-22,22
H328.63C316.48,395.86,306.63,386.01,306.63,373.86z"/>
<circle class="st26" cx="436.26" cy="196.25" r="31.21"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

+553
View File
@@ -0,0 +1,553 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{fill:#FAFAFA;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st17{fill:#43DABF;stroke:#46DBC0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st18{fill:#FFFFFF;stroke:#46DBC0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st19{fill:#A6A6A6;stroke:#A6A6A6;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st20{fill:#505050;stroke:#505050;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st21{fill:#FFFFFF;stroke:#525252;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st22{fill:#FF8EA1;stroke:#FF8FA2;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st23{fill:#FFFFFF;stroke:#FF8FA2;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st24{opacity:0.349;fill:#75F1FF;}
.st25{fill:#FFFFFF;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st26{font-size:40px;}
.st27{font-size:34.8402px;}
.st28{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st29{fill:none;stroke:#707070;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st30{fill:#5E5E5E;}
.st31{font-family:'ArialMT';}
.st32{font-size:49.9451px;}
.st33{font-size:24.9725px;}
.st34{fill:none;stroke:#515152;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st35{fill:#0054A8;}
.st36{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st37{fill:#F2F2F2;}
.st38{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st39{fill:url(#SVGID_1_);}
.st40{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st41{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="444.29" y="969.2" class="st0" width="100.36" height="145.5"/>
<rect x="146" y="970.45" class="st1" width="200.4" height="144.5"/>
<rect x="145" y="970.7" class="st2" width="610" height="144"/>
<line class="st3" x1="145" y1="1042.7" x2="755" y2="1042.7"/>
<line class="st3" x1="346.4" y1="970.45" x2="346.4" y2="1115.2"/>
<line class="st3" x1="444.29" y1="970.7" x2="444.29" y2="1114.7"/>
<line class="st3" x1="544.65" y1="970.7" x2="544.65" y2="1114.7"/>
<line class="st3" x1="649.01" y1="970.7" x2="649.01" y2="1114.7"/>
</g>
<text transform="matrix(1 0 0 1 481.042 1091.1556)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 376.1117 1026.2135)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 395.1932 1032.7993)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 570.3569 1027.1392)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 600.644 1032.9614)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 669.5264 1027.6255)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 695.4883 1034.1158)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 456.211 1026.7417)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 486.9029 1026.7417)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 366.7726 1092.7039)" class="st11 st8 st12 st13">CE</text>
<text transform="matrix(1 0 0 1 671.6493 1091.5194)" class="st11 st8 st12 st13">WE</text>
<text transform="matrix(1 0 0 1 570.608 1093.1669)" class="st11 st8 st12 st13">RE</text>
<text transform="matrix(1 0 0 1 189.4691 1023.8749)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 156.5342 1090.74)" class="st14 st8 st15 st13">Connect to</text>
</g>
<g id="sample">
<path class="st16" d="M256.21,888.67V759.86h401.9v129.78c0,11.17-9.05,20.22-20.22,20.22H277.39
C265.69,909.86,256.21,900.37,256.21,888.67z"/>
<g>
<rect x="306.71" y="609.95" class="st17" width="11.22" height="263.29"/>
<circle class="st18" cx="312.32" cy="674.74" r="40"/>
</g>
<g>
<path class="st19" d="M437.97,868.95V670.02c0-3.31,2.69-6,6-6h16c3.31,0,6,2.69,6,6v198.93c0,3.31-2.69,6-6,6h-16
C440.66,874.95,437.97,872.26,437.97,868.95z"/>
<rect x="446.36" y="611.66" class="st20" width="11.22" height="263.29"/>
<circle class="st21" cx="453.16" cy="673.82" r="40"/>
</g>
<g>
<path class="st19" d="M573.78,867.24V690.08c0-3.31,2.69-6,6-6h16c3.31,0,6,2.69,6,6v177.16c0,3.31-2.69,6-6,6h-16
C576.47,873.24,573.78,870.55,573.78,867.24z"/>
<rect x="582.17" y="609.95" class="st22" width="11.22" height="263.29"/>
<circle class="st23" cx="590.29" cy="674.16" r="40"/>
</g>
<path class="st24" d="M257.36,888.67v-92.88h399.75v93.83c0,10.73-8.7,19.42-19.42,19.42H277.72
C266.48,909.04,257.36,899.92,257.36,888.67z"/>
<path class="st25" d="M249.16,761.86v-17c0-1.66,1.34-3,3-3h410c1.66,0,3,1.34,3,3v17c0,1.66-1.34,3-3,3h-410
C250.5,764.86,249.16,763.51,249.16,761.86z"/>
<text transform="matrix(1 0 0 1 286.5413 689.6758)" class="st11 st8 st26 st7">CE</text>
<text transform="matrix(1 0 0 1 563.9761 687.1454)" class="st11 st8 st27 st13">WE</text>
<text transform="matrix(1 0 0 1 427.375 688.757)" class="st11 st8 st26 st7">RE</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
wwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDD
CPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI
/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8
AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwA
AABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAA
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
wwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDD
CPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI
/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8
AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwA
AABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAA
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
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" transform="matrix(0.7031 0 0 0.7031 180.3587 43.3352)">
</image>
<g>
<path class="st28" d="M454.3,418.66c-3.19,48.39-1.61,60.37,5.29,75.02c10.92,23.19,18.1,54.57-3.55,107.73"/>
<path class="st29" d="M453.14,585.66c-1.38,10.65-2,18.17-3.42,29.12c2.09,1.09,3.46,2,3.46,2s5.75-9.77,15.55-23.52
c2.82,2.6,0.74,0.72,3.07,2.87c3.97-5.57,7.76-11.17,12.86-17.2c-4.17-2.87-5.89-3.77-10.39-6.47
c-6.42,10.37-14.17,22.07-19.72,33.29c2.76-13.29,4.57-24.26,7.32-37.55c-5.05-0.9-7.26-1.56-12.82-3.06
c-0.98,8.42-3.01,18.76-3.01,18.76S450.91,584.76,453.14,585.66z"/>
<path class="st30" d="M453.14,585.66c-1.38,10.65-2,18.17-3.42,29.12c2.09,1.09,3.46,2,3.46,2s5.75-9.77,15.55-23.52
c2.82,2.6,0.74,0.72,3.07,2.87c3.96-5.17,7.47-10.85,12.86-17.2c-5.29-3.38-5.69-3.47-10.39-6.47
c-6.42,10.37-14.17,22.07-19.72,33.29c2.76-13.29,4.57-24.26,7.32-37.55c-6.33-1.54-6.45-1.51-12.82-3.06
c-0.98,8.42-3.01,18.76-3.01,18.76S450.91,584.76,453.14,585.66z"/>
<text transform="matrix(1 0 0 1 413.4074 535.9145)" class="st4 st31 st32">V</text>
<text transform="matrix(1 0 0 1 440.4006 540.9643)" class="st4 st8 st33">in</text>
</g>
<g>
<path class="st28" d="M471.86,418.66c0,113.19,26.79,122.57,100.13,108.04c27.79-5.51,35.81,15.28,18.14,75.7"/>
<path class="st34" d="M584.86,584.98c-0.35,11.24-0.34,20.03-0.7,31.59c2.46,0.68,4.09,1.32,4.09,1.32s5.33-11.26,14.74-27.48
c2.68,1.22,2.66,1.24,5.46,2.83c2.48-4.27,5.51-10.19,10.32-17.84c-5.02-1.94-6.98-2.63-12.37-4.93
c-6.01,12.03-12.91,23.07-17.86,35.78c1.59-14.25,2.38-25.92,3.97-40.16c-5.95-1.08-9.18-0.22-15.3-1.34
c-0.15,8.86,0.02,19.85,0.02,19.85S582.27,584.53,584.86,584.98z"/>
<path class="st35" d="M584.86,584.98c-0.35,11.24-0.34,20.03-0.7,31.59c2.46,0.68,4.09,1.32,4.09,1.32s5.33-11.26,14.74-27.48
c3.44,2.07,2.61,1.12,5.46,2.83c4.29-7.39,5.86-10.15,10.32-17.84c-4.48-1.54-7.58-3.29-12.37-4.93
c-6.01,12.03-12.91,23.07-17.86,35.78c1.59-14.25,2.38-25.92,3.97-40.16c-6.33,0.12-6.85-0.9-14.67-0.75
c-0.15,8.86-0.61,19.26-0.61,19.26S580.82,584.74,584.86,584.98z"/>
<text transform="matrix(1 0 0 1 586.0758 527.6253)" class="st4 st31 st32">V</text>
<text transform="matrix(1 0 0 1 612.65 534.2132)" class="st4 st8 st33">out</text>
</g>
<g>
<path class="st28" d="M419.55,418.66c0,63.92-43.67,94.16-80.31,101.51c-49.68,9.97-36.38,42.94-26.47,83.34"/>
<path class="st36" d="M299.91,588.27c4.5,10.06,8,16.89,12.62,27.23c2.47-0.65,4.19-0.91,4.19-0.91s-0.08-12.6,1.32-31.63
c3.94,0.07,3.66,0.12,6.92,0.18c0.57-7.71,0.76-11.17,2.1-20.13c-5.53,0.04-8.97-0.38-14.5-0.34c-0.19,13.62-1.6,27.86-0.56,41.54
c-4.68-13.33-8.97-23.99-13.65-37.31c-5.74,2.07-8.29,2.79-14.19,4.92c3.66,7.86,8.55,19.11,8.55,19.11
S297.42,589.19,299.91,588.27z"/>
<path class="st37" d="M299.91,588.27c4.5,10.06,8,16.89,12.62,27.23c2.47-0.65,4.19-0.91,4.19-0.91s-0.08-12.6,1.32-31.63
c3.94,0.07,3.66,0.12,6.92,0.18c0.57-7.71,0.76-11.17,2.1-20.13c-5.53,0.04-8.97-0.38-14.5-0.34c-0.19,13.62-1.6,27.86-0.56,41.54
c-4.68-13.33-8.97-23.99-13.65-37.31c-5.74,2.07-8.29,2.79-14.19,4.92c3.66,7.86,8.55,19.11,8.55,19.11
S297.42,589.19,299.91,588.27z"/>
<text transform="matrix(1 0 0 1 262.1959 532.2694)" class="st4 st31 st32">l</text>
<text transform="matrix(1 0 0 1 275.94 537.6141)" class="st4 st8 st33">in</text>
</g>
<path class="st38" d="M272.32,348.66V155.69c0-38.66,31.34-70,70-70h192.97c38.66,0,70,31.34,70,70v192.97c0,38.66-31.34,70-70,70
H342.32C303.66,418.66,272.32,387.32,272.32,348.66z"/>
<radialGradient id="SVGID_1_" cx="523.9471" cy="314.7148" r="197.1902" gradientTransform="matrix(0.7797 0 0 0.7797 30.2671 6.7787)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st39" d="M305.62,345.36V158.99c0-22.09,17.91-40,40-40h186.37c22.09,0,40,17.91,40,40v186.37c0,22.09-17.91,40-40,40
H345.62C323.53,385.36,305.62,367.45,305.62,345.36z"/>
<path class="st40" d="M305.62,345.36V158.99c0-22.09,17.91-40,40-40h186.37c22.09,0,40,17.91,40,40v186.37c0,22.09-17.91,40-40,40
H345.62C323.53,385.36,305.62,367.45,305.62,345.36z"/>
<path class="st38" d="M326.43,342.55V161.8c0-12.15,9.85-22,22-22h180.75c12.15,0,22,9.85,22,22v180.75c0,12.15-9.85,22-22,22
H348.43C336.28,364.55,326.43,354.7,326.43,342.55z"/>
<circle class="st41" cx="438.81" cy="191.51" r="27.05"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 40 KiB

+553
View File
@@ -0,0 +1,553 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{fill:#FAFAFA;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st17{fill:#43DABF;stroke:#46DBC0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st18{fill:#FFFFFF;stroke:#46DBC0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st19{fill:#A6A6A6;stroke:#A6A6A6;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st20{fill:#505050;stroke:#505050;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st21{fill:#FFFFFF;stroke:#525252;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st22{fill:#FF8EA1;stroke:#FF8FA2;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st23{fill:#FFFFFF;stroke:#FF8FA2;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st24{opacity:0.349;fill:#75F1FF;}
.st25{fill:#FFFFFF;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st26{font-size:40px;}
.st27{font-size:34.8402px;}
.st28{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st29{fill:none;stroke:#707070;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st30{fill:#5E5E5E;}
.st31{font-family:'ArialMT';}
.st32{font-size:49.9451px;}
.st33{font-size:24.9725px;}
.st34{fill:none;stroke:#515152;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st35{fill:#0054A8;}
.st36{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st37{fill:#F2F2F2;}
.st38{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st39{fill:url(#SVGID_1_);}
.st40{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st41{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="444.29" y="969.2" class="st0" width="100.36" height="145.5"/>
<rect x="146" y="970.45" class="st1" width="200.4" height="144.5"/>
<rect x="145" y="970.7" class="st2" width="610" height="144"/>
<line class="st3" x1="145" y1="1042.7" x2="755" y2="1042.7"/>
<line class="st3" x1="346.4" y1="970.45" x2="346.4" y2="1115.2"/>
<line class="st3" x1="444.29" y1="970.7" x2="444.29" y2="1114.7"/>
<line class="st3" x1="544.65" y1="970.7" x2="544.65" y2="1114.7"/>
<line class="st3" x1="649.01" y1="970.7" x2="649.01" y2="1114.7"/>
</g>
<text transform="matrix(1 0 0 1 481.042 1091.1556)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 376.1117 1026.2135)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 395.1932 1032.7993)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 570.3569 1027.1392)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 600.644 1032.9614)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 669.5264 1027.6255)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 695.4883 1034.1158)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 456.211 1026.7417)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 486.9029 1026.7417)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 366.7726 1092.7039)" class="st11 st8 st12 st13">CE</text>
<text transform="matrix(1 0 0 1 671.6493 1091.5194)" class="st11 st8 st12 st13">WE</text>
<text transform="matrix(1 0 0 1 570.608 1093.1669)" class="st11 st8 st12 st13">RE</text>
<text transform="matrix(1 0 0 1 189.4691 1023.8749)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 156.5342 1090.74)" class="st14 st8 st15 st13">Connect to</text>
</g>
<g id="sample">
<path class="st16" d="M256.21,888.67V759.86h401.9v129.78c0,11.17-9.05,20.22-20.22,20.22H277.39
C265.69,909.86,256.21,900.37,256.21,888.67z"/>
<g>
<rect x="306.71" y="609.95" class="st17" width="11.22" height="263.29"/>
<circle class="st18" cx="312.32" cy="674.74" r="40"/>
</g>
<g>
<path class="st19" d="M437.97,868.95V670.02c0-3.31,2.69-6,6-6h16c3.31,0,6,2.69,6,6v198.93c0,3.31-2.69,6-6,6h-16
C440.66,874.95,437.97,872.26,437.97,868.95z"/>
<rect x="446.36" y="611.66" class="st20" width="11.22" height="263.29"/>
<circle class="st21" cx="453.16" cy="673.82" r="40"/>
</g>
<g>
<path class="st19" d="M573.78,867.24V690.08c0-3.31,2.69-6,6-6h16c3.31,0,6,2.69,6,6v177.16c0,3.31-2.69,6-6,6h-16
C576.47,873.24,573.78,870.55,573.78,867.24z"/>
<rect x="582.17" y="609.95" class="st22" width="11.22" height="263.29"/>
<circle class="st23" cx="590.29" cy="674.16" r="40"/>
</g>
<path class="st24" d="M257.36,888.67v-92.88h399.75v93.83c0,10.73-8.7,19.42-19.42,19.42H277.72
C266.48,909.04,257.36,899.92,257.36,888.67z"/>
<path class="st25" d="M249.16,761.86v-17c0-1.66,1.34-3,3-3h410c1.66,0,3,1.34,3,3v17c0,1.66-1.34,3-3,3h-410
C250.5,764.86,249.16,763.51,249.16,761.86z"/>
<text transform="matrix(1 0 0 1 286.5413 689.6758)" class="st11 st8 st26 st7">CE</text>
<text transform="matrix(1 0 0 1 563.9761 687.1454)" class="st11 st8 st27 st13">WE</text>
<text transform="matrix(1 0 0 1 427.375 688.757)" class="st11 st8 st26 st7">RE</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
wwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDD
CPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI
/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8
AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwA
AABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAA
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
wwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDD
CPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI
/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8
AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwA
AABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAA
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
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" transform="matrix(0.7031 0 0 0.7031 180.3587 43.3352)">
</image>
<g>
<path class="st28" d="M454.3,418.66c-3.19,48.39-1.61,60.37,5.29,75.02c10.92,23.19,18.1,54.57-3.55,107.73"/>
<path class="st29" d="M453.14,585.66c-1.38,10.65-2,18.17-3.42,29.12c2.09,1.09,3.46,2,3.46,2s5.75-9.77,15.55-23.52
c2.82,2.6,0.74,0.72,3.07,2.87c3.97-5.57,7.76-11.17,12.86-17.2c-4.17-2.87-5.89-3.77-10.39-6.47
c-6.42,10.37-14.17,22.07-19.72,33.29c2.76-13.29,4.57-24.26,7.32-37.55c-5.05-0.9-7.26-1.56-12.82-3.06
c-0.98,8.42-3.01,18.76-3.01,18.76S450.91,584.76,453.14,585.66z"/>
<path class="st30" d="M453.14,585.66c-1.38,10.65-2,18.17-3.42,29.12c2.09,1.09,3.46,2,3.46,2s5.75-9.77,15.55-23.52
c2.82,2.6,0.74,0.72,3.07,2.87c3.96-5.17,7.47-10.85,12.86-17.2c-5.29-3.38-5.69-3.47-10.39-6.47
c-6.42,10.37-14.17,22.07-19.72,33.29c2.76-13.29,4.57-24.26,7.32-37.55c-6.33-1.54-6.45-1.51-12.82-3.06
c-0.98,8.42-3.01,18.76-3.01,18.76S450.91,584.76,453.14,585.66z"/>
<text transform="matrix(1 0 0 1 413.4074 535.9145)" class="st4 st31 st32">V</text>
<text transform="matrix(1 0 0 1 440.4006 540.9643)" class="st4 st8 st33">in</text>
</g>
<g>
<path class="st28" d="M471.86,418.66c0,113.19,26.79,122.57,100.13,108.04c27.79-5.51,35.81,15.28,18.14,75.7"/>
<path class="st34" d="M584.86,584.98c-0.35,11.24-0.34,20.03-0.7,31.59c2.46,0.68,4.09,1.32,4.09,1.32s5.33-11.26,14.74-27.48
c2.68,1.22,2.66,1.24,5.46,2.83c2.48-4.27,5.51-10.19,10.32-17.84c-5.02-1.94-6.98-2.63-12.37-4.93
c-6.01,12.03-12.91,23.07-17.86,35.78c1.59-14.25,2.38-25.92,3.97-40.16c-5.95-1.08-9.18-0.22-15.3-1.34
c-0.15,8.86,0.02,19.85,0.02,19.85S582.27,584.53,584.86,584.98z"/>
<path class="st35" d="M584.86,584.98c-0.35,11.24-0.34,20.03-0.7,31.59c2.46,0.68,4.09,1.32,4.09,1.32s5.33-11.26,14.74-27.48
c3.44,2.07,2.61,1.12,5.46,2.83c4.29-7.39,5.86-10.15,10.32-17.84c-4.48-1.54-7.58-3.29-12.37-4.93
c-6.01,12.03-12.91,23.07-17.86,35.78c1.59-14.25,2.38-25.92,3.97-40.16c-6.33,0.12-6.85-0.9-14.67-0.75
c-0.15,8.86-0.61,19.26-0.61,19.26S580.82,584.74,584.86,584.98z"/>
<text transform="matrix(1 0 0 1 586.0758 527.6253)" class="st4 st31 st32">V</text>
<text transform="matrix(1 0 0 1 612.65 534.2132)" class="st4 st8 st33">out</text>
</g>
<g>
<path class="st28" d="M419.55,418.66c0,63.92-43.67,94.16-80.31,101.51c-49.68,9.97-36.38,42.94-26.47,83.34"/>
<path class="st36" d="M299.91,588.27c4.5,10.06,8,16.89,12.62,27.23c2.47-0.65,4.19-0.91,4.19-0.91s-0.08-12.6,1.32-31.63
c3.94,0.07,3.66,0.12,6.92,0.18c0.57-7.71,0.76-11.17,2.1-20.13c-5.53,0.04-8.97-0.38-14.5-0.34c-0.19,13.62-1.6,27.86-0.56,41.54
c-4.68-13.33-8.97-23.99-13.65-37.31c-5.74,2.07-8.29,2.79-14.19,4.92c3.66,7.86,8.55,19.11,8.55,19.11
S297.42,589.19,299.91,588.27z"/>
<path class="st37" d="M299.91,588.27c4.5,10.06,8,16.89,12.62,27.23c2.47-0.65,4.19-0.91,4.19-0.91s-0.08-12.6,1.32-31.63
c3.94,0.07,3.66,0.12,6.92,0.18c0.57-7.71,0.76-11.17,2.1-20.13c-5.53,0.04-8.97-0.38-14.5-0.34c-0.19,13.62-1.6,27.86-0.56,41.54
c-4.68-13.33-8.97-23.99-13.65-37.31c-5.74,2.07-8.29,2.79-14.19,4.92c3.66,7.86,8.55,19.11,8.55,19.11
S297.42,589.19,299.91,588.27z"/>
<text transform="matrix(1 0 0 1 262.1959 532.2694)" class="st4 st31 st32">l</text>
<text transform="matrix(1 0 0 1 275.94 537.6141)" class="st4 st8 st33">in</text>
</g>
<path class="st38" d="M272.32,348.66V155.69c0-38.66,31.34-70,70-70h192.97c38.66,0,70,31.34,70,70v192.97c0,38.66-31.34,70-70,70
H342.32C303.66,418.66,272.32,387.32,272.32,348.66z"/>
<radialGradient id="SVGID_1_" cx="523.9471" cy="314.7148" r="197.1902" gradientTransform="matrix(0.7797 0 0 0.7797 30.2671 6.7787)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st39" d="M305.62,345.36V158.99c0-22.09,17.91-40,40-40h186.37c22.09,0,40,17.91,40,40v186.37c0,22.09-17.91,40-40,40
H345.62C323.53,385.36,305.62,367.45,305.62,345.36z"/>
<path class="st40" d="M305.62,345.36V158.99c0-22.09,17.91-40,40-40h186.37c22.09,0,40,17.91,40,40v186.37c0,22.09-17.91,40-40,40
H345.62C323.53,385.36,305.62,367.45,305.62,345.36z"/>
<path class="st38" d="M326.43,342.55V161.8c0-12.15,9.85-22,22-22h180.75c12.15,0,22,9.85,22,22v180.75c0,12.15-9.85,22-22,22
H348.43C336.28,364.55,326.43,354.7,326.43,342.55z"/>
<circle class="st41" cx="438.81" cy="191.51" r="27.05"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 40 KiB

+533
View File
@@ -0,0 +1,533 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{font-size:57.9653px;}
.st17{font-size:34.8429px;}
.st18{font-size:26.1322px;}
.st19{font-family:'Arial-ItalicMT';}
.st20{font-family:'ArialMT';}
.st21{font-size:48.0099px;}
.st22{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st23{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st24{fill:#CACACF;}
.st25{font-size:57.6118px;}
.st26{font-size:28.8059px;}
.st27{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st28{fill:url(#SVGID_1_);}
.st29{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st30{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="461.57" y="956.12" class="st0" width="100.36" height="144"/>
<rect x="163.29" y="955.87" class="st1" width="200.4" height="144.5"/>
<rect x="162.29" y="956.12" class="st2" width="610" height="144"/>
<line class="st3" x1="162.29" y1="1028.12" x2="772.29" y2="1028.12"/>
<line class="st3" x1="363.68" y1="955.87" x2="363.68" y2="1100.62"/>
<line class="st3" x1="461.57" y1="956.12" x2="461.57" y2="1100.12"/>
<line class="st3" x1="561.94" y1="956.12" x2="561.94" y2="1100.12"/>
<line class="st3" x1="666.3" y1="956.12" x2="666.3" y2="1100.12"/>
</g>
<text transform="matrix(1 0 0 1 498.2354 1080.0178)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 393.3994 1011.6323)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 412.4809 1018.218)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 587.6445 1012.5579)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 617.9316 1018.3801)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 686.814 1013.0443)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 712.7759 1019.5347)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 473.4987 1012.1605)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 504.1906 1012.1605)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 391.6204 1078.9855)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 697.931 1079.8079)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 591.0832 1079.0878)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 206.7568 1009.2936)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 173.8218 1076.1588)" class="st14 st8 st15 st13">Connect to</text>
<text transform="matrix(1 0 0 1 635.3448 1005.8459)" class="st4 st8 st16">*</text>
<text transform="matrix(1 0 0 1 178.0569 1134.9473)"><tspan x="0" y="0" class="st4 st8 st17">*</tspan><tspan x="13.56" y="0" class="st4 st8 st18">: </tspan><tspan x="29.52" y="0" class="st4 st19 st18">Optional connection</tspan></text>
</g>
<g id="sample">
<path class="st1" d="M347.2,864.55V834.5c0-20.34,16.49-36.83,36.83-36.83h114.55c20.34,0,36.83,16.49,36.83,36.83v30.05
c0,20.34-16.49,36.83-36.83,36.83H384.03C363.69,901.37,347.2,884.89,347.2,864.55z"/>
<circle class="st1" cx="559.4" cy="847.83" r="13.2"/>
<circle class="st1" cx="322.24" cy="847.83" r="13.92"/>
<rect x="327.04" y="843.03" class="st1" width="228.53" height="9.6"/>
<text transform="matrix(1 0 0 1 363.9231 862.3369)" class="st14 st20 st21">sample</text>
<text transform="matrix(1 0 0 1 363.9231 862.3369)" class="st14 st20 st21">sample</text>
<text transform="matrix(1 0 0 1 302.9065 913.1484)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 538.8065 913.1484)" class="st11 st8 st12 st13">E2</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
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" transform="matrix(0.811 0 0 0.811 138.9681 11.3352)">
</image>
<g>
<path class="st22" d="M451.5,444.27c0,169.35,36,238.46,70.7,266.48c40.91,33.05,121.58,51.36,46.08,122.02"/>
<path class="st23" d="M573.03,812.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.59-4.39,13-8.88,21.03-13.33c-3.47-4.63-5.01-6.23-8.91-10.8c-11.2,8.55-24.4,17.99-34.98,27.76
c8.31-13.02,14.66-23.95,22.97-36.97c-5.22-2.87-7.41-4.41-12.95-8.11c-4.41,8.54-10.75,18.72-10.75,18.72
S570.91,810.68,573.03,812.47z"/>
<path class="st24" d="M573.03,812.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.42-3.97,12.55-8.65,21.03-13.33c-4.51-5.59-4.91-5.84-8.91-10.8
c-11.2,8.55-24.4,17.99-34.98,27.76c8.31-13.02,14.66-23.95,22.97-36.97c-6.38-4.03-6.53-4.05-12.95-8.11
c-4.41,8.54-10.75,18.72-10.75,18.72S570.91,810.68,573.03,812.47z"/>
<text transform="matrix(1 0 0 1 482.5237 761.9326)" class="st4 st20 st25">V</text>
<text transform="matrix(1 0 0 1 513.658 767.7549)" class="st4 st8 st26">in</text>
</g>
<g>
<path class="st22" d="M468.3,444.27c-4.2,91.34,42.92,215.78,122.42,249.2c150.62,63.32,29.95,132.44-21.61,151.89"/>
<path class="st23" d="M580.13,830.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.7,2.83,0.67,2.82,1.16,5.97c4.78-0.8,11.14-2.21,19.91-3.35c-1.57-5.07-2.24-7.01-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-2.8-5.24-5.42-7.18-8.3-12.57
c-6.86,5.48-15.15,12.54-15.15,12.54S578.89,828.29,580.13,830.56z"/>
<path class="st24" d="M580.13,830.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.51,3.95,0.74,2.71,1.16,5.97c8.26-1.38,11.32-1.92,19.91-3.35c-1.55-4.41-2.11-7.89-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-3.95-4.77-3.48-5.82-8.36-11.72
c-6.86,5.48-15.09,11.69-15.09,11.69S577.84,827.31,580.13,830.56z"/>
<text transform="matrix(1 0 0 1 646.619 727.4971)" class="st4 st20 st25">V</text>
<text transform="matrix(1 0 0 1 677.2664 735.0928)" class="st4 st8 st26">out</text>
</g>
<g>
<path class="st22" d="M414.87,444.27c4.2,94.6-11.44,197.05-87.98,238.22c-147.23,79.19-38.2,155.09-11.45,165.35"/>
<path class="st23" d="M287.39,843.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S286,846.56,287.39,843.82z"/>
<path class="st24" d="M287.39,843.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S286,846.56,287.39,843.82z"/>
<text transform="matrix(1 0 0 1 203.6116 744.498)" class="st4 st20 st25">l</text>
<text transform="matrix(1 0 0 1 219.4627 750.6533)" class="st4 st8 st26">in</text>
</g>
<path class="st27" d="M245.05,374.27V130.19c0-38.66,31.34-70,70-70h244.08c38.66,0,70,31.34,70,70v244.08c0,38.66-31.34,70-70,70
H315.05C276.39,444.27,245.05,412.93,245.05,374.27z"/>
<radialGradient id="SVGID_1_" cx="507.5533" cy="304.0179" r="219.0407" gradientTransform="matrix(0.8097 0 0 0.8097 26.1212 6.0655)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st28" d="M283.46,365.86V138.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H323.46C301.37,405.86,283.46,387.95,283.46,365.86z"/>
<path class="st29" d="M283.46,365.86V138.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H323.46C301.37,405.86,283.46,387.95,283.46,365.86z"/>
<path class="st27" d="M307.46,359.86V144.6c0-12.15,9.85-22,22-22h215.25c12.15,0,22,9.85,22,22v215.25c0,12.15-9.85,22-22,22
H329.46C317.31,381.86,307.46,372.01,307.46,359.86z"/>
<circle class="st30" cx="437.09" cy="182.25" r="31.21"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 39 KiB

+533
View File
@@ -0,0 +1,533 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{font-size:57.9653px;}
.st17{font-size:34.8429px;}
.st18{font-size:26.1322px;}
.st19{font-family:'Arial-ItalicMT';}
.st20{font-family:'ArialMT';}
.st21{font-size:48.0099px;}
.st22{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st23{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st24{fill:#CACACF;}
.st25{font-size:57.6118px;}
.st26{font-size:28.8059px;}
.st27{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st28{fill:url(#SVGID_1_);}
.st29{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st30{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="461.57" y="956.12" class="st0" width="100.36" height="144"/>
<rect x="163.29" y="955.87" class="st1" width="200.4" height="144.5"/>
<rect x="162.29" y="956.12" class="st2" width="610" height="144"/>
<line class="st3" x1="162.29" y1="1028.12" x2="772.29" y2="1028.12"/>
<line class="st3" x1="363.68" y1="955.87" x2="363.68" y2="1100.62"/>
<line class="st3" x1="461.57" y1="956.12" x2="461.57" y2="1100.12"/>
<line class="st3" x1="561.94" y1="956.12" x2="561.94" y2="1100.12"/>
<line class="st3" x1="666.3" y1="956.12" x2="666.3" y2="1100.12"/>
</g>
<text transform="matrix(1 0 0 1 498.2354 1080.0178)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 393.3994 1011.6323)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 412.4809 1018.218)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 587.6445 1012.5579)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 617.9316 1018.3801)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 686.814 1013.0443)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 712.7759 1019.5347)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 473.4987 1012.1605)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 504.1906 1012.1605)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 391.6204 1078.9855)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 697.931 1079.8079)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 591.0832 1079.0878)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 206.7568 1009.2936)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 173.8218 1076.1588)" class="st14 st8 st15 st13">Connect to</text>
<text transform="matrix(1 0 0 1 635.3448 1005.8459)" class="st4 st8 st16">*</text>
<text transform="matrix(1 0 0 1 178.0569 1134.9473)"><tspan x="0" y="0" class="st4 st8 st17">*</tspan><tspan x="13.56" y="0" class="st4 st8 st18">: </tspan><tspan x="29.52" y="0" class="st4 st19 st18">Optional connection</tspan></text>
</g>
<g id="sample">
<path class="st1" d="M347.2,864.55V834.5c0-20.34,16.49-36.83,36.83-36.83h114.55c20.34,0,36.83,16.49,36.83,36.83v30.05
c0,20.34-16.49,36.83-36.83,36.83H384.03C363.69,901.37,347.2,884.89,347.2,864.55z"/>
<circle class="st1" cx="559.4" cy="847.83" r="13.2"/>
<circle class="st1" cx="322.24" cy="847.83" r="13.92"/>
<rect x="327.04" y="843.03" class="st1" width="228.53" height="9.6"/>
<text transform="matrix(1 0 0 1 363.9231 862.3369)" class="st14 st20 st21">sample</text>
<text transform="matrix(1 0 0 1 363.9231 862.3369)" class="st14 st20 st21">sample</text>
<text transform="matrix(1 0 0 1 302.9065 913.1484)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 538.8065 913.1484)" class="st11 st8 st12 st13">E2</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
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" transform="matrix(0.811 0 0 0.811 138.9681 11.3352)">
</image>
<g>
<path class="st22" d="M451.5,444.27c0,169.35,36,238.46,70.7,266.48c40.91,33.05,121.58,51.36,46.08,122.02"/>
<path class="st23" d="M573.03,812.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.59-4.39,13-8.88,21.03-13.33c-3.47-4.63-5.01-6.23-8.91-10.8c-11.2,8.55-24.4,17.99-34.98,27.76
c8.31-13.02,14.66-23.95,22.97-36.97c-5.22-2.87-7.41-4.41-12.95-8.11c-4.41,8.54-10.75,18.72-10.75,18.72
S570.91,810.68,573.03,812.47z"/>
<path class="st24" d="M573.03,812.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.42-3.97,12.55-8.65,21.03-13.33c-4.51-5.59-4.91-5.84-8.91-10.8
c-11.2,8.55-24.4,17.99-34.98,27.76c8.31-13.02,14.66-23.95,22.97-36.97c-6.38-4.03-6.53-4.05-12.95-8.11
c-4.41,8.54-10.75,18.72-10.75,18.72S570.91,810.68,573.03,812.47z"/>
<text transform="matrix(1 0 0 1 482.5237 761.9326)" class="st4 st20 st25">V</text>
<text transform="matrix(1 0 0 1 513.658 767.7549)" class="st4 st8 st26">in</text>
</g>
<g>
<path class="st22" d="M468.3,444.27c-4.2,91.34,42.92,215.78,122.42,249.2c150.62,63.32,29.95,132.44-21.61,151.89"/>
<path class="st23" d="M580.13,830.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.7,2.83,0.67,2.82,1.16,5.97c4.78-0.8,11.14-2.21,19.91-3.35c-1.57-5.07-2.24-7.01-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-2.8-5.24-5.42-7.18-8.3-12.57
c-6.86,5.48-15.15,12.54-15.15,12.54S578.89,828.29,580.13,830.56z"/>
<path class="st24" d="M580.13,830.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.51,3.95,0.74,2.71,1.16,5.97c8.26-1.38,11.32-1.92,19.91-3.35c-1.55-4.41-2.11-7.89-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-3.95-4.77-3.48-5.82-8.36-11.72
c-6.86,5.48-15.09,11.69-15.09,11.69S577.84,827.31,580.13,830.56z"/>
<text transform="matrix(1 0 0 1 646.619 727.4971)" class="st4 st20 st25">V</text>
<text transform="matrix(1 0 0 1 677.2664 735.0928)" class="st4 st8 st26">out</text>
</g>
<g>
<path class="st22" d="M414.87,444.27c4.2,94.6-11.44,197.05-87.98,238.22c-147.23,79.19-38.2,155.09-11.45,165.35"/>
<path class="st23" d="M287.39,843.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S286,846.56,287.39,843.82z"/>
<path class="st24" d="M287.39,843.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S286,846.56,287.39,843.82z"/>
<text transform="matrix(1 0 0 1 203.6116 744.498)" class="st4 st20 st25">l</text>
<text transform="matrix(1 0 0 1 219.4627 750.6533)" class="st4 st8 st26">in</text>
</g>
<path class="st27" d="M245.05,374.27V130.19c0-38.66,31.34-70,70-70h244.08c38.66,0,70,31.34,70,70v244.08c0,38.66-31.34,70-70,70
H315.05C276.39,444.27,245.05,412.93,245.05,374.27z"/>
<radialGradient id="SVGID_1_" cx="507.5533" cy="304.0179" r="219.0407" gradientTransform="matrix(0.8097 0 0 0.8097 26.1212 6.0655)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st28" d="M283.46,365.86V138.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H323.46C301.37,405.86,283.46,387.95,283.46,365.86z"/>
<path class="st29" d="M283.46,365.86V138.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H323.46C301.37,405.86,283.46,387.95,283.46,365.86z"/>
<path class="st27" d="M307.46,359.86V144.6c0-12.15,9.85-22,22-22h215.25c12.15,0,22,9.85,22,22v215.25c0,12.15-9.85,22-22,22
H329.46C317.31,381.86,307.46,372.01,307.46,359.86z"/>
<circle class="st30" cx="437.09" cy="182.25" r="31.21"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 39 KiB

+527
View File
@@ -0,0 +1,527 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{font-family:'ArialMT';}
.st17{font-size:48.0099px;}
.st18{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st19{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st20{fill:#CACACF;}
.st21{font-size:57.6118px;}
.st22{font-size:28.8059px;}
.st23{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st24{fill:url(#SVGID_1_);}
.st25{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st26{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="454.72" y="998.7" class="st0" width="101.93" height="144"/>
<rect x="158" y="998.45" class="st1" width="200.4" height="144.5"/>
<rect x="157" y="998.7" class="st2" width="610" height="144"/>
<line class="st3" x1="157" y1="1070.7" x2="767" y2="1070.7"/>
<line class="st3" x1="358.4" y1="998.45" x2="358.4" y2="1143.2"/>
<line class="st3" x1="456.29" y1="998.7" x2="456.29" y2="1142.7"/>
<line class="st3" x1="556.65" y1="998.7" x2="556.65" y2="1142.7"/>
<line class="st3" x1="661.01" y1="998.7" x2="661.01" y2="1142.7"/>
</g>
<text transform="matrix(1 0 0 1 492.9477 1122.599)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 388.1117 1054.2135)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 407.1932 1060.7993)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 582.3569 1055.1392)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 612.644 1060.9614)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 681.5264 1055.6255)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 707.4883 1062.1158)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 468.211 1054.7417)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 498.9029 1054.7417)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 386.3327 1121.5667)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 692.6434 1122.389)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 585.7955 1121.6689)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 201.4691 1051.8749)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 168.5341 1118.74)" class="st14 st8 st15 st13">Connect to</text>
</g>
<g id="sample">
<path class="st1" d="M346.37,878.55V848.5c0-20.34,16.49-36.83,36.83-36.83h114.55c20.34,0,36.83,16.49,36.83,36.83v30.05
c0,20.34-16.49,36.83-36.83,36.83H383.2C362.86,915.37,346.37,898.89,346.37,878.55z"/>
<circle class="st1" cx="558.57" cy="861.83" r="13.2"/>
<circle class="st1" cx="321.41" cy="861.83" r="13.92"/>
<rect x="326.21" y="857.03" class="st1" width="228.53" height="9.6"/>
<text transform="matrix(1 0 0 1 363.092 876.3369)" class="st14 st16 st17">sample</text>
<text transform="matrix(1 0 0 1 363.092 876.3369)" class="st14 st16 st17">sample</text>
<text transform="matrix(1 0 0 1 302.0754 927.1484)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 537.9753 927.1484)" class="st11 st8 st12 st13">E2</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
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" transform="matrix(0.811 0 0 0.811 138.137 25.3352)">
</image>
<g>
<path class="st18" d="M450.67,458.27c0,169.35,36,238.46,70.7,266.48c40.91,33.05,121.58,51.36,46.08,122.02"/>
<path class="st19" d="M572.19,826.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.59-4.39,13-8.88,21.03-13.33c-3.47-4.63-5.01-6.23-8.91-10.8c-11.2,8.55-24.4,17.99-34.98,27.76
c8.31-13.02,14.66-23.95,22.97-36.97c-5.22-2.87-7.41-4.41-12.95-8.11c-4.41,8.54-10.75,18.72-10.75,18.72
S570.08,824.68,572.19,826.47z"/>
<path class="st20" d="M572.19,826.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.42-3.97,12.55-8.65,21.03-13.33c-4.51-5.59-4.91-5.84-8.91-10.8
c-11.2,8.55-24.4,17.99-34.98,27.76c8.31-13.02,14.66-23.95,22.97-36.97c-6.38-4.03-6.53-4.05-12.95-8.11
c-4.41,8.54-10.75,18.72-10.75,18.72S570.08,824.68,572.19,826.47z"/>
<text transform="matrix(1 0 0 1 481.6926 775.9326)" class="st4 st16 st21">V</text>
<text transform="matrix(1 0 0 1 512.8269 781.7549)" class="st4 st8 st22">in</text>
</g>
<g>
<path class="st18" d="M467.47,458.27c-4.2,91.34,42.92,215.78,122.42,249.2c150.62,63.32,29.95,132.44-21.61,151.89"/>
<path class="st19" d="M579.29,844.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.7,2.83,0.67,2.82,1.16,5.97c4.78-0.8,11.14-2.21,19.91-3.35c-1.57-5.07-2.24-7.01-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-2.8-5.24-5.42-7.18-8.3-12.57
c-6.86,5.48-15.15,12.54-15.15,12.54S578.05,842.29,579.29,844.56z"/>
<path class="st20" d="M579.29,844.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.51,3.95,0.74,2.71,1.16,5.97c8.26-1.38,11.32-1.92,19.91-3.35c-1.55-4.41-2.11-7.89-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-3.95-4.77-3.48-5.82-8.36-11.72
c-6.86,5.48-15.09,11.69-15.09,11.69S577.01,841.31,579.29,844.56z"/>
<text transform="matrix(1 0 0 1 645.7878 741.4971)" class="st4 st16 st21">V</text>
<text transform="matrix(1 0 0 1 676.4353 749.0928)" class="st4 st8 st22">out</text>
</g>
<g>
<path class="st18" d="M414.04,458.27c4.2,94.6-11.44,197.05-87.98,238.22c-147.23,79.19-38.2,155.09-11.45,165.35"/>
<path class="st19" d="M286.56,857.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S285.17,860.56,286.56,857.82z"/>
<path class="st20" d="M286.56,857.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S285.17,860.56,286.56,857.82z"/>
<text transform="matrix(1 0 0 1 202.7805 758.498)" class="st4 st16 st21">l</text>
<text transform="matrix(1 0 0 1 218.6316 764.6533)" class="st4 st8 st22">in</text>
</g>
<path class="st23" d="M244.22,388.27V144.19c0-38.66,31.34-70,70-70H558.3c38.66,0,70,31.34,70,70v244.08c0,38.66-31.34,70-70,70
H314.22C275.56,458.27,244.22,426.93,244.22,388.27z"/>
<radialGradient id="SVGID_1_" cx="506.5269" cy="321.3081" r="219.0407" gradientTransform="matrix(0.8097 0 0 0.8097 26.1212 6.0655)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st24" d="M282.63,379.86V152.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H322.63C300.54,419.86,282.63,401.95,282.63,379.86z"/>
<path class="st25" d="M282.63,379.86V152.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H322.63C300.54,419.86,282.63,401.95,282.63,379.86z"/>
<path class="st23" d="M306.63,373.86V158.6c0-12.15,9.85-22,22-22h215.25c12.15,0,22,9.85,22,22v215.25c0,12.15-9.85,22-22,22
H328.63C316.48,395.86,306.63,386.01,306.63,373.86z"/>
<circle class="st26" cx="436.26" cy="196.25" r="31.21"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

+553
View File
@@ -0,0 +1,553 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{fill:#FAFAFA;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st17{fill:#43DABF;stroke:#46DBC0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st18{fill:#FFFFFF;stroke:#46DBC0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st19{fill:#A6A6A6;stroke:#A6A6A6;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st20{fill:#505050;stroke:#505050;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st21{fill:#FFFFFF;stroke:#525252;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st22{fill:#FF8EA1;stroke:#FF8FA2;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st23{fill:#FFFFFF;stroke:#FF8FA2;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st24{opacity:0.349;fill:#75F1FF;}
.st25{fill:#FFFFFF;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st26{font-size:40px;}
.st27{font-size:34.8402px;}
.st28{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st29{fill:none;stroke:#707070;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st30{fill:#5E5E5E;}
.st31{font-family:'ArialMT';}
.st32{font-size:49.9451px;}
.st33{font-size:24.9725px;}
.st34{fill:none;stroke:#515152;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st35{fill:#0054A8;}
.st36{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st37{fill:#F2F2F2;}
.st38{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st39{fill:url(#SVGID_1_);}
.st40{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st41{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="444.29" y="969.2" class="st0" width="100.36" height="145.5"/>
<rect x="146" y="970.45" class="st1" width="200.4" height="144.5"/>
<rect x="145" y="970.7" class="st2" width="610" height="144"/>
<line class="st3" x1="145" y1="1042.7" x2="755" y2="1042.7"/>
<line class="st3" x1="346.4" y1="970.45" x2="346.4" y2="1115.2"/>
<line class="st3" x1="444.29" y1="970.7" x2="444.29" y2="1114.7"/>
<line class="st3" x1="544.65" y1="970.7" x2="544.65" y2="1114.7"/>
<line class="st3" x1="649.01" y1="970.7" x2="649.01" y2="1114.7"/>
</g>
<text transform="matrix(1 0 0 1 481.042 1091.1556)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 376.1117 1026.2135)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 395.1932 1032.7993)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 570.3569 1027.1392)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 600.644 1032.9614)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 669.5264 1027.6255)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 695.4883 1034.1158)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 456.211 1026.7417)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 486.9029 1026.7417)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 366.7726 1092.7039)" class="st11 st8 st12 st13">CE</text>
<text transform="matrix(1 0 0 1 671.6493 1091.5194)" class="st11 st8 st12 st13">WE</text>
<text transform="matrix(1 0 0 1 570.608 1093.1669)" class="st11 st8 st12 st13">RE</text>
<text transform="matrix(1 0 0 1 189.4691 1023.8749)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 156.5342 1090.74)" class="st14 st8 st15 st13">Connect to</text>
</g>
<g id="sample">
<path class="st16" d="M256.21,888.67V759.86h401.9v129.78c0,11.17-9.05,20.22-20.22,20.22H277.39
C265.69,909.86,256.21,900.37,256.21,888.67z"/>
<g>
<rect x="306.71" y="609.95" class="st17" width="11.22" height="263.29"/>
<circle class="st18" cx="312.32" cy="674.74" r="40"/>
</g>
<g>
<path class="st19" d="M437.97,868.95V670.02c0-3.31,2.69-6,6-6h16c3.31,0,6,2.69,6,6v198.93c0,3.31-2.69,6-6,6h-16
C440.66,874.95,437.97,872.26,437.97,868.95z"/>
<rect x="446.36" y="611.66" class="st20" width="11.22" height="263.29"/>
<circle class="st21" cx="453.16" cy="673.82" r="40"/>
</g>
<g>
<path class="st19" d="M573.78,867.24V690.08c0-3.31,2.69-6,6-6h16c3.31,0,6,2.69,6,6v177.16c0,3.31-2.69,6-6,6h-16
C576.47,873.24,573.78,870.55,573.78,867.24z"/>
<rect x="582.17" y="609.95" class="st22" width="11.22" height="263.29"/>
<circle class="st23" cx="590.29" cy="674.16" r="40"/>
</g>
<path class="st24" d="M257.36,888.67v-92.88h399.75v93.83c0,10.73-8.7,19.42-19.42,19.42H277.72
C266.48,909.04,257.36,899.92,257.36,888.67z"/>
<path class="st25" d="M249.16,761.86v-17c0-1.66,1.34-3,3-3h410c1.66,0,3,1.34,3,3v17c0,1.66-1.34,3-3,3h-410
C250.5,764.86,249.16,763.51,249.16,761.86z"/>
<text transform="matrix(1 0 0 1 286.5413 689.6758)" class="st11 st8 st26 st7">CE</text>
<text transform="matrix(1 0 0 1 563.9761 687.1454)" class="st11 st8 st27 st13">WE</text>
<text transform="matrix(1 0 0 1 427.375 688.757)" class="st11 st8 st26 st7">RE</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
wwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDD
CPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI
/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8
AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwA
AABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAA
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
wwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDD
CPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI
/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8
AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwA
AABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAA
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
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" transform="matrix(0.7031 0 0 0.7031 180.3587 43.3352)">
</image>
<g>
<path class="st28" d="M454.3,418.66c-3.19,48.39-1.61,60.37,5.29,75.02c10.92,23.19,18.1,54.57-3.55,107.73"/>
<path class="st29" d="M453.14,585.66c-1.38,10.65-2,18.17-3.42,29.12c2.09,1.09,3.46,2,3.46,2s5.75-9.77,15.55-23.52
c2.82,2.6,0.74,0.72,3.07,2.87c3.97-5.57,7.76-11.17,12.86-17.2c-4.17-2.87-5.89-3.77-10.39-6.47
c-6.42,10.37-14.17,22.07-19.72,33.29c2.76-13.29,4.57-24.26,7.32-37.55c-5.05-0.9-7.26-1.56-12.82-3.06
c-0.98,8.42-3.01,18.76-3.01,18.76S450.91,584.76,453.14,585.66z"/>
<path class="st30" d="M453.14,585.66c-1.38,10.65-2,18.17-3.42,29.12c2.09,1.09,3.46,2,3.46,2s5.75-9.77,15.55-23.52
c2.82,2.6,0.74,0.72,3.07,2.87c3.96-5.17,7.47-10.85,12.86-17.2c-5.29-3.38-5.69-3.47-10.39-6.47
c-6.42,10.37-14.17,22.07-19.72,33.29c2.76-13.29,4.57-24.26,7.32-37.55c-6.33-1.54-6.45-1.51-12.82-3.06
c-0.98,8.42-3.01,18.76-3.01,18.76S450.91,584.76,453.14,585.66z"/>
<text transform="matrix(1 0 0 1 413.4074 535.9145)" class="st4 st31 st32">V</text>
<text transform="matrix(1 0 0 1 440.4006 540.9643)" class="st4 st8 st33">in</text>
</g>
<g>
<path class="st28" d="M471.86,418.66c0,113.19,26.79,122.57,100.13,108.04c27.79-5.51,35.81,15.28,18.14,75.7"/>
<path class="st34" d="M584.86,584.98c-0.35,11.24-0.34,20.03-0.7,31.59c2.46,0.68,4.09,1.32,4.09,1.32s5.33-11.26,14.74-27.48
c2.68,1.22,2.66,1.24,5.46,2.83c2.48-4.27,5.51-10.19,10.32-17.84c-5.02-1.94-6.98-2.63-12.37-4.93
c-6.01,12.03-12.91,23.07-17.86,35.78c1.59-14.25,2.38-25.92,3.97-40.16c-5.95-1.08-9.18-0.22-15.3-1.34
c-0.15,8.86,0.02,19.85,0.02,19.85S582.27,584.53,584.86,584.98z"/>
<path class="st35" d="M584.86,584.98c-0.35,11.24-0.34,20.03-0.7,31.59c2.46,0.68,4.09,1.32,4.09,1.32s5.33-11.26,14.74-27.48
c3.44,2.07,2.61,1.12,5.46,2.83c4.29-7.39,5.86-10.15,10.32-17.84c-4.48-1.54-7.58-3.29-12.37-4.93
c-6.01,12.03-12.91,23.07-17.86,35.78c1.59-14.25,2.38-25.92,3.97-40.16c-6.33,0.12-6.85-0.9-14.67-0.75
c-0.15,8.86-0.61,19.26-0.61,19.26S580.82,584.74,584.86,584.98z"/>
<text transform="matrix(1 0 0 1 586.0758 527.6253)" class="st4 st31 st32">V</text>
<text transform="matrix(1 0 0 1 612.65 534.2132)" class="st4 st8 st33">out</text>
</g>
<g>
<path class="st28" d="M419.55,418.66c0,63.92-43.67,94.16-80.31,101.51c-49.68,9.97-36.38,42.94-26.47,83.34"/>
<path class="st36" d="M299.91,588.27c4.5,10.06,8,16.89,12.62,27.23c2.47-0.65,4.19-0.91,4.19-0.91s-0.08-12.6,1.32-31.63
c3.94,0.07,3.66,0.12,6.92,0.18c0.57-7.71,0.76-11.17,2.1-20.13c-5.53,0.04-8.97-0.38-14.5-0.34c-0.19,13.62-1.6,27.86-0.56,41.54
c-4.68-13.33-8.97-23.99-13.65-37.31c-5.74,2.07-8.29,2.79-14.19,4.92c3.66,7.86,8.55,19.11,8.55,19.11
S297.42,589.19,299.91,588.27z"/>
<path class="st37" d="M299.91,588.27c4.5,10.06,8,16.89,12.62,27.23c2.47-0.65,4.19-0.91,4.19-0.91s-0.08-12.6,1.32-31.63
c3.94,0.07,3.66,0.12,6.92,0.18c0.57-7.71,0.76-11.17,2.1-20.13c-5.53,0.04-8.97-0.38-14.5-0.34c-0.19,13.62-1.6,27.86-0.56,41.54
c-4.68-13.33-8.97-23.99-13.65-37.31c-5.74,2.07-8.29,2.79-14.19,4.92c3.66,7.86,8.55,19.11,8.55,19.11
S297.42,589.19,299.91,588.27z"/>
<text transform="matrix(1 0 0 1 262.1959 532.2694)" class="st4 st31 st32">l</text>
<text transform="matrix(1 0 0 1 275.94 537.6141)" class="st4 st8 st33">in</text>
</g>
<path class="st38" d="M272.32,348.66V155.69c0-38.66,31.34-70,70-70h192.97c38.66,0,70,31.34,70,70v192.97c0,38.66-31.34,70-70,70
H342.32C303.66,418.66,272.32,387.32,272.32,348.66z"/>
<radialGradient id="SVGID_1_" cx="523.9471" cy="314.7148" r="197.1902" gradientTransform="matrix(0.7797 0 0 0.7797 30.2671 6.7787)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st39" d="M305.62,345.36V158.99c0-22.09,17.91-40,40-40h186.37c22.09,0,40,17.91,40,40v186.37c0,22.09-17.91,40-40,40
H345.62C323.53,385.36,305.62,367.45,305.62,345.36z"/>
<path class="st40" d="M305.62,345.36V158.99c0-22.09,17.91-40,40-40h186.37c22.09,0,40,17.91,40,40v186.37c0,22.09-17.91,40-40,40
H345.62C323.53,385.36,305.62,367.45,305.62,345.36z"/>
<path class="st38" d="M326.43,342.55V161.8c0-12.15,9.85-22,22-22h180.75c12.15,0,22,9.85,22,22v180.75c0,12.15-9.85,22-22,22
H348.43C336.28,364.55,326.43,354.7,326.43,342.55z"/>
<circle class="st41" cx="438.81" cy="191.51" r="27.05"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 40 KiB

+553
View File
@@ -0,0 +1,553 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{fill:#FAFAFA;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st17{fill:#43DABF;stroke:#46DBC0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st18{fill:#FFFFFF;stroke:#46DBC0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st19{fill:#A6A6A6;stroke:#A6A6A6;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st20{fill:#505050;stroke:#505050;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st21{fill:#FFFFFF;stroke:#525252;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st22{fill:#FF8EA1;stroke:#FF8FA2;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st23{fill:#FFFFFF;stroke:#FF8FA2;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st24{opacity:0.349;fill:#75F1FF;}
.st25{fill:#FFFFFF;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st26{font-size:40px;}
.st27{font-size:34.8402px;}
.st28{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st29{fill:none;stroke:#707070;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st30{fill:#5E5E5E;}
.st31{font-family:'ArialMT';}
.st32{font-size:49.9451px;}
.st33{font-size:24.9725px;}
.st34{fill:none;stroke:#515152;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st35{fill:#0054A8;}
.st36{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st37{fill:#F2F2F2;}
.st38{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st39{fill:url(#SVGID_1_);}
.st40{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st41{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="444.29" y="969.2" class="st0" width="100.36" height="145.5"/>
<rect x="146" y="970.45" class="st1" width="200.4" height="144.5"/>
<rect x="145" y="970.7" class="st2" width="610" height="144"/>
<line class="st3" x1="145" y1="1042.7" x2="755" y2="1042.7"/>
<line class="st3" x1="346.4" y1="970.45" x2="346.4" y2="1115.2"/>
<line class="st3" x1="444.29" y1="970.7" x2="444.29" y2="1114.7"/>
<line class="st3" x1="544.65" y1="970.7" x2="544.65" y2="1114.7"/>
<line class="st3" x1="649.01" y1="970.7" x2="649.01" y2="1114.7"/>
</g>
<text transform="matrix(1 0 0 1 481.042 1091.1556)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 376.1117 1026.2135)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 395.1932 1032.7993)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 570.3569 1027.1392)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 600.644 1032.9614)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 669.5264 1027.6255)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 695.4883 1034.1158)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 456.211 1026.7417)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 486.9029 1026.7417)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 366.7726 1092.7039)" class="st11 st8 st12 st13">CE</text>
<text transform="matrix(1 0 0 1 671.6493 1091.5194)" class="st11 st8 st12 st13">WE</text>
<text transform="matrix(1 0 0 1 570.608 1093.1669)" class="st11 st8 st12 st13">RE</text>
<text transform="matrix(1 0 0 1 189.4691 1023.8749)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 156.5342 1090.74)" class="st14 st8 st15 st13">Connect to</text>
</g>
<g id="sample">
<path class="st16" d="M256.21,888.67V759.86h401.9v129.78c0,11.17-9.05,20.22-20.22,20.22H277.39
C265.69,909.86,256.21,900.37,256.21,888.67z"/>
<g>
<rect x="306.71" y="609.95" class="st17" width="11.22" height="263.29"/>
<circle class="st18" cx="312.32" cy="674.74" r="40"/>
</g>
<g>
<path class="st19" d="M437.97,868.95V670.02c0-3.31,2.69-6,6-6h16c3.31,0,6,2.69,6,6v198.93c0,3.31-2.69,6-6,6h-16
C440.66,874.95,437.97,872.26,437.97,868.95z"/>
<rect x="446.36" y="611.66" class="st20" width="11.22" height="263.29"/>
<circle class="st21" cx="453.16" cy="673.82" r="40"/>
</g>
<g>
<path class="st19" d="M573.78,867.24V690.08c0-3.31,2.69-6,6-6h16c3.31,0,6,2.69,6,6v177.16c0,3.31-2.69,6-6,6h-16
C576.47,873.24,573.78,870.55,573.78,867.24z"/>
<rect x="582.17" y="609.95" class="st22" width="11.22" height="263.29"/>
<circle class="st23" cx="590.29" cy="674.16" r="40"/>
</g>
<path class="st24" d="M257.36,888.67v-92.88h399.75v93.83c0,10.73-8.7,19.42-19.42,19.42H277.72
C266.48,909.04,257.36,899.92,257.36,888.67z"/>
<path class="st25" d="M249.16,761.86v-17c0-1.66,1.34-3,3-3h410c1.66,0,3,1.34,3,3v17c0,1.66-1.34,3-3,3h-410
C250.5,764.86,249.16,763.51,249.16,761.86z"/>
<text transform="matrix(1 0 0 1 286.5413 689.6758)" class="st11 st8 st26 st7">CE</text>
<text transform="matrix(1 0 0 1 563.9761 687.1454)" class="st11 st8 st27 st13">WE</text>
<text transform="matrix(1 0 0 1 427.375 688.757)" class="st11 st8 st26 st7">RE</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
wwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDD
CPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI
/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8
AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwA
AABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAA
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
wwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDD
CPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI
/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8
AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwA
AABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAA
AEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAA
QMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABAwwj8AAAAQMMI/AAAAEDDCPwAAABA
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" transform="matrix(0.7031 0 0 0.7031 180.3587 43.3352)">
</image>
<g>
<path class="st28" d="M454.3,418.66c-3.19,48.39-1.61,60.37,5.29,75.02c10.92,23.19,18.1,54.57-3.55,107.73"/>
<path class="st29" d="M453.14,585.66c-1.38,10.65-2,18.17-3.42,29.12c2.09,1.09,3.46,2,3.46,2s5.75-9.77,15.55-23.52
c2.82,2.6,0.74,0.72,3.07,2.87c3.97-5.57,7.76-11.17,12.86-17.2c-4.17-2.87-5.89-3.77-10.39-6.47
c-6.42,10.37-14.17,22.07-19.72,33.29c2.76-13.29,4.57-24.26,7.32-37.55c-5.05-0.9-7.26-1.56-12.82-3.06
c-0.98,8.42-3.01,18.76-3.01,18.76S450.91,584.76,453.14,585.66z"/>
<path class="st30" d="M453.14,585.66c-1.38,10.65-2,18.17-3.42,29.12c2.09,1.09,3.46,2,3.46,2s5.75-9.77,15.55-23.52
c2.82,2.6,0.74,0.72,3.07,2.87c3.96-5.17,7.47-10.85,12.86-17.2c-5.29-3.38-5.69-3.47-10.39-6.47
c-6.42,10.37-14.17,22.07-19.72,33.29c2.76-13.29,4.57-24.26,7.32-37.55c-6.33-1.54-6.45-1.51-12.82-3.06
c-0.98,8.42-3.01,18.76-3.01,18.76S450.91,584.76,453.14,585.66z"/>
<text transform="matrix(1 0 0 1 413.4074 535.9145)" class="st4 st31 st32">V</text>
<text transform="matrix(1 0 0 1 440.4006 540.9643)" class="st4 st8 st33">in</text>
</g>
<g>
<path class="st28" d="M471.86,418.66c0,113.19,26.79,122.57,100.13,108.04c27.79-5.51,35.81,15.28,18.14,75.7"/>
<path class="st34" d="M584.86,584.98c-0.35,11.24-0.34,20.03-0.7,31.59c2.46,0.68,4.09,1.32,4.09,1.32s5.33-11.26,14.74-27.48
c2.68,1.22,2.66,1.24,5.46,2.83c2.48-4.27,5.51-10.19,10.32-17.84c-5.02-1.94-6.98-2.63-12.37-4.93
c-6.01,12.03-12.91,23.07-17.86,35.78c1.59-14.25,2.38-25.92,3.97-40.16c-5.95-1.08-9.18-0.22-15.3-1.34
c-0.15,8.86,0.02,19.85,0.02,19.85S582.27,584.53,584.86,584.98z"/>
<path class="st35" d="M584.86,584.98c-0.35,11.24-0.34,20.03-0.7,31.59c2.46,0.68,4.09,1.32,4.09,1.32s5.33-11.26,14.74-27.48
c3.44,2.07,2.61,1.12,5.46,2.83c4.29-7.39,5.86-10.15,10.32-17.84c-4.48-1.54-7.58-3.29-12.37-4.93
c-6.01,12.03-12.91,23.07-17.86,35.78c1.59-14.25,2.38-25.92,3.97-40.16c-6.33,0.12-6.85-0.9-14.67-0.75
c-0.15,8.86-0.61,19.26-0.61,19.26S580.82,584.74,584.86,584.98z"/>
<text transform="matrix(1 0 0 1 586.0758 527.6253)" class="st4 st31 st32">V</text>
<text transform="matrix(1 0 0 1 612.65 534.2132)" class="st4 st8 st33">out</text>
</g>
<g>
<path class="st28" d="M419.55,418.66c0,63.92-43.67,94.16-80.31,101.51c-49.68,9.97-36.38,42.94-26.47,83.34"/>
<path class="st36" d="M299.91,588.27c4.5,10.06,8,16.89,12.62,27.23c2.47-0.65,4.19-0.91,4.19-0.91s-0.08-12.6,1.32-31.63
c3.94,0.07,3.66,0.12,6.92,0.18c0.57-7.71,0.76-11.17,2.1-20.13c-5.53,0.04-8.97-0.38-14.5-0.34c-0.19,13.62-1.6,27.86-0.56,41.54
c-4.68-13.33-8.97-23.99-13.65-37.31c-5.74,2.07-8.29,2.79-14.19,4.92c3.66,7.86,8.55,19.11,8.55,19.11
S297.42,589.19,299.91,588.27z"/>
<path class="st37" d="M299.91,588.27c4.5,10.06,8,16.89,12.62,27.23c2.47-0.65,4.19-0.91,4.19-0.91s-0.08-12.6,1.32-31.63
c3.94,0.07,3.66,0.12,6.92,0.18c0.57-7.71,0.76-11.17,2.1-20.13c-5.53,0.04-8.97-0.38-14.5-0.34c-0.19,13.62-1.6,27.86-0.56,41.54
c-4.68-13.33-8.97-23.99-13.65-37.31c-5.74,2.07-8.29,2.79-14.19,4.92c3.66,7.86,8.55,19.11,8.55,19.11
S297.42,589.19,299.91,588.27z"/>
<text transform="matrix(1 0 0 1 262.1959 532.2694)" class="st4 st31 st32">l</text>
<text transform="matrix(1 0 0 1 275.94 537.6141)" class="st4 st8 st33">in</text>
</g>
<path class="st38" d="M272.32,348.66V155.69c0-38.66,31.34-70,70-70h192.97c38.66,0,70,31.34,70,70v192.97c0,38.66-31.34,70-70,70
H342.32C303.66,418.66,272.32,387.32,272.32,348.66z"/>
<radialGradient id="SVGID_1_" cx="523.9471" cy="314.7148" r="197.1902" gradientTransform="matrix(0.7797 0 0 0.7797 30.2671 6.7787)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st39" d="M305.62,345.36V158.99c0-22.09,17.91-40,40-40h186.37c22.09,0,40,17.91,40,40v186.37c0,22.09-17.91,40-40,40
H345.62C323.53,385.36,305.62,367.45,305.62,345.36z"/>
<path class="st40" d="M305.62,345.36V158.99c0-22.09,17.91-40,40-40h186.37c22.09,0,40,17.91,40,40v186.37c0,22.09-17.91,40-40,40
H345.62C323.53,385.36,305.62,367.45,305.62,345.36z"/>
<path class="st38" d="M326.43,342.55V161.8c0-12.15,9.85-22,22-22h180.75c12.15,0,22,9.85,22,22v180.75c0,12.15-9.85,22-22,22
H348.43C336.28,364.55,326.43,354.7,326.43,342.55z"/>
<circle class="st41" cx="438.81" cy="191.51" r="27.05"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 40 KiB

+527
View File
@@ -0,0 +1,527 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{font-family:'ArialMT';}
.st17{font-size:48.0099px;}
.st18{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st19{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st20{fill:#CACACF;}
.st21{font-size:57.6118px;}
.st22{font-size:28.8059px;}
.st23{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st24{fill:url(#SVGID_1_);}
.st25{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st26{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="456.29" y="998.7" class="st0" width="100.36" height="144"/>
<rect x="158" y="998.45" class="st1" width="200.4" height="144.5"/>
<rect x="157" y="998.7" class="st2" width="610" height="144"/>
<line class="st3" x1="157" y1="1070.7" x2="767" y2="1070.7"/>
<line class="st3" x1="358.4" y1="998.45" x2="358.4" y2="1143.2"/>
<line class="st3" x1="456.29" y1="998.7" x2="456.29" y2="1142.7"/>
<line class="st3" x1="556.65" y1="998.7" x2="556.65" y2="1142.7"/>
<line class="st3" x1="661.01" y1="998.7" x2="661.01" y2="1142.7"/>
</g>
<text transform="matrix(1 0 0 1 492.9477 1122.599)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 388.1117 1054.2135)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 407.1932 1060.7993)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 582.3569 1055.1392)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 612.644 1060.9614)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 681.5264 1055.6255)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 707.4883 1062.1158)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 468.211 1054.7417)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 498.9029 1054.7417)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 386.3327 1121.5667)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 692.6434 1122.389)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 585.7955 1121.6689)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 201.4691 1051.8749)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 168.5341 1118.74)" class="st14 st8 st15 st13">Connect to</text>
</g>
<g id="sample">
<path class="st1" d="M346.37,878.55V848.5c0-20.34,16.49-36.83,36.83-36.83h114.55c20.34,0,36.83,16.49,36.83,36.83v30.05
c0,20.34-16.49,36.83-36.83,36.83H383.2C362.86,915.37,346.37,898.89,346.37,878.55z"/>
<circle class="st1" cx="558.57" cy="861.83" r="13.2"/>
<circle class="st1" cx="321.41" cy="861.83" r="13.92"/>
<rect x="326.21" y="857.03" class="st1" width="228.53" height="9.6"/>
<text transform="matrix(1 0 0 1 363.092 876.3369)" class="st14 st16 st17">sample</text>
<text transform="matrix(1 0 0 1 363.092 876.3369)" class="st14 st16 st17">sample</text>
<text transform="matrix(1 0 0 1 302.0754 927.1484)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 537.9753 927.1484)" class="st11 st8 st12 st13">E2</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAcAHDMJSqAB+GJAAAAADoDEkAAADA
FRvHsVQFaEYSAAAAcAE+eOfyIFwTkgAAAIAPwAw/PhJJAAAAwBXTMwicScA5kQQAAACcSS5QtzP/
rWcBbCJAMoBzIAkAAAAAOkMSgKxhGJpnKwAAuCc68z6O4zQTP47j0b+ovq6jy2w7p0it788QRGcM
arZdUwe3jyQAAACgEZfk4NaRBCCL2QAAAO4HyQsUSQAAAADQGZIAAACAjFs/K946+99aH7eJJAAA
AKADPriPbmpGP0gCUEQHAQDAT4yJuBckAQAAABU0AbiHGfRb33+cjiQAIvK2M4iefXw4HLLrAABw
j+zz/cdxlOVyWf3NwHZZ9J0BKvVNwNF3EMy5Zr/0HQKl/dH9n7NtXCeSAIRqDvKaOgAA3IvD4SD7
/b76y7rOIbqO35cxKYc5SAIgIq8dSdSB0ckAAHpkL/8ReZsElIL+mln7mjo5ubHZlp06hp+yj7hO
JAF4I3Wgn9qBAABwi/y9AMMwZMfE2oC5pl4uSchN3AElJAGdKV0DGKmpAwDAvfHj3+FwkMVikR0X
SwmCN2dcji4JspjMQw2SAIhIXcfgbxQGAKAHGlTv9/vs5bPWnPGyFNx7elailJQAEZKATkQB/JwO
CgCA3gzDIIfDQbbb7cWekhONyXYb595ei4/cNi6HJABFevCTNAAAemNvCt7tdnI4HORwOByNjece
H33QPef+g9QZgnPvK24XSUAn9BrG1KnD3OnEYRhksVjIfr8PywEAuFf28p/dbifL5VIWi8X03Tl+
/LTjrE8Qai/bSQXq/lIke1Yilzjoax3PfXnE7ruvy5mB+0ASgCalTgMAgHu03+9lt9tN72sDYR+4
p7SMr62X90YTfwBJALLs7IF9DwBAT3a7nWy32+qgPlWnZr0Wc8flc+8Hbg9JAIr0NOMwDFwSBADo
0na7nZ4OVLpG3wbYNmmIXp/D3PsS5uxDaZ1SOa4HSQAmqQ7EPgVBr4EEAKAX4zjKZrOZxkMbdKcC
+igRyPFJQmROsF+6vwD9IgnAkdxNTMPw8xFprR0QAAC37HA4yGazkcVicZQIWB8RVLdsM6rLeN43
kgBkpU5d0nEAAHqx3+/l5eXlKAkQqQ/CTxkza7eRO3uQe1+j9fPiNpAEIMvOdthToHM6EQAAbtF+
v59uCrZJwLW4tv3BbSAJuBOpaxJb+PV9Z6fPRd7v99NsCAAA9+75+fnoewFEZHrefjT+2smymrFS
28i1o/X0e39yM//RZb3Rfth2/D0OUftRGzWfD9eJJABNyYMN/lvWAwDg1mhAvdlswjJbJ+WUsTIX
kNs6/n1pHRGCd5AE3K1LHNzjOMpisZDdbneR9gEAuDb7/V6enp7Cy4BSY2EUmLfygXxpRt/+tMvn
bBt9IAlAk+VyyROCAABdGIZBttutvLy8HC0bhvx3BWi9luUpuUC+tS3AIgm4Y6UOqkaqDfvV6QAA
3KvNZjN9SVhuNj6Sqq/L9b4Czwf+9pKj1Kx/JLo3oNXc9XD9SAJQTTulxWIh+/2+uhMEAOAW7fd7
+fHjh4jEwbeOi7YsCpprl0VKY23pnoQaXDbUJ5KAO5e7dnAOvS+AJAAAcO+22618//49nNHPjaWn
BP219TT49wF87foASUAnTgnYfQejjwoFAOCe7fd72Ww2b5KA6CZhLzo7YNdJXSKUEu1D6cbkUpvo
G0nAnUkd8LYT8tcVRuv5jkr/6fWLy+VyemRa1AmdknQAAPDRDoeDfPv2TURez4LXXpdfc4nOMLx+
F48++z+6RyA1di8Wi6l+alt2P+x2onqW7pvn121NZHBdSAI6Z2cUouUi6dmMw+Egh8MhPOjpCAAA
1y43ibXf7+X79+8iEgfeXs24VwrWbbkfh+0Y3MJP6tWorYfbRhKA4sGuHY/t+PSSIPuUoFRCAQDA
NYqCbv359PQkP378mIJoP+lVM1OuUuNibmY9F/DXJgN+f2vbRx9IAlDFdo42IbBJAB0KAOCWpM5k
j+Mof//9t4zjeHTJzTiO0+NCc/ysfeqMemr7pfa93JkCXZ5LALSsdbvWKeviY5AEdKbmII06LpHj
WQQ9JaqXBEXrc0YAAHDNUoG6PhVotVpNy/WeAJ0My0kF+na5XxaV5xKCqK05Tl0ft4skAEeiziB1
jeJyuRSRn2cDCPgBALfIj1/jOMq3b99ks9kcPQ1PJ79KwXduNj61bG4gXpMs+Loi55n5t87VDt4X
SQBE5O0B7DuLYTg+lajXRi4WizAJqJkpAQDg2ux2O/nzzz+ncc9fRtMyW5+TazsK0nPbiC71idqq
2c/abbbUwXUiCUDxANaA3ncgmgTYLw7jjAAA4Fb4CatxHGW73cq3b9+ms9069h0Oh2mM07MDqYA5
mhizQX80VtqgPSqfM76Wxnf0jSTgDp3roLezCVGHN46vN0xtt9vk40IBALhGw/D2htnff/9dVqtV
8pIZnQCz7/3su584s+91fT+xlpuxj9ryyUKUYNQkDjYRsomIfe9f55bhdpAEoDhj4fkOarlcyn6/
51uEAQA363A4yNPTkzw/P4tIHPzP4QPsVLl9HyUCvq5/XdrOHKUkolSO60YS0KGog8gdyKWOa7Va
HX1nAJ0CAOAW/e///q9sNpvp/bkC69L6pcA/F/yfw5x2GOtvH0lAB1oP1NLsg/KnUPf7/fT85Dkd
CgAA70kvhRnHcboh+NRvBa6pk+PXj87Ml5KCUxKF1pgBt4skoHN29qHUkajoOsTlcimHw+FoBgUA
gGumY9nhcJA//vhDdrudLJfLN5NcuZ++nn2fWhaNuy1ySUGL6HOiHyQBODKnE9AkYBiGo3sDmE0A
AFwznfF/eXmRr1+/ymq1EpHjm2WtmsA/Wh6prZtKJqJ6KTXrezV1cNtIAtDMz2BoJ6qzJ5vNhicF
AQBugp4F0C8HiyawcrP8NbP6UVluO1Gb0fsapQSgZsKudlu4LSQBEJHyE4GU7ZhsZyXyMwlYLBay
3W6L7QAA8NHGcZSXlxf5+++/Zb1eH30R5qnjWDRWppKFXL0oiH/PoPw9t4X3RRLQiZabiux7f72g
TRb8fQGHw0FWq5UMwzA9Ys23AQDAe9IxyF7/b8v+85//yG63m8Y/+704uWA8Wmbr6/ZqgvlonPTj
bLR9/b4Bre/ZcTsqS435ucC/ZsIQt4Ek4E7VZu65A7m2DWU7Or0saBxfr6uk0wAAvDcb2B4Oh2mW
/3A4yLdv3+THjx9TMH04HI6+KVi1jIdRcG3L7E+/3C9r3W7007/2WraB+0ISgJOCc3vKVDss/y3C
itkDAMB7GsfXb7b3drud/O///q9st9umwPnUoNkH9zZp8AlELrCP2ouSi9T+Mh6DJOCOzemoSp1C
rqOxrxeLhRwOh6P7A3KdEQAAl6QJgY5Jf//9t3z//l1Wq9W0TB93rZNWpUTAj5lRIG/rt4yDucBf
l7dOruW23dIO7gNJQEdSnZW+jurlOgztgCztNPXLVrbb7fRNwqltAABwCcPw89HVSseep6cn+fr1
65QY2PEsFcBHr2uC/mjd6H1OaX9SY+qcS35z++yVynHdSALuXOkALZWX6mjQH3Vu+sjQ3W53dFkQ
AADvRS8H0rFqHEf573//Ky8vL7JcLmW/3x/dE6CvU0F7KSCP6pcC7tw4W1OnRu1+5zCBd19IAjqX
mvVv6RQs38ZqtZLdbjfdJCzymjgAAHBJOt7oZTOHw0H++usv+euvv6bHWtt6qiVozyUM/rVd5tsq
tZOqm1uPsRY5JAEIM/vajkM7n+iyIJHXLxDTbxJmFgEA8F78RNfLy4v8+9//FpHX6/9Xq9U0PumZ
AbuO/RnRcTCXOJSSCvs6Vz8nSiqAHJKADtiOIHdfgK2rp0RL66Q6G/t+tVrJfr+Xl5eXo1kZL5VI
AACQYscKnfFXdozabDby9etXeXl5kfV6PQX7/r6A1NOEbLCv/2xdf3msvtb9sev5dbzW8a8U8Pvy
VPtar2b7pW3i+pEEIMl2XDWihEA71OVyeXRZ0DAMb+4TyCUSAABEcmOFDWr//PNP+fr1qzw+Pk73
AeS0jkFRkO/L/evUuNcyHrbup8i8dXB/SAJQpdRh5Dq/YXidLdlsNrLdbt/UsWpmIAAA8FLj0Ldv
3+T333+fLvcZhiE5C+/b8BNbpfq15alt2GWpxCGVLPi6NU65JBi3jSQAb9Qc/KVAXdvQU7PD8PMm
4WEYpkTAXm5Uag8AgJTc5aTPz8/yr3/9S8ZxlNVqNZVHlw15Ptj2AbgP0qP6ltax/7xonVqntFdb
D/eDJKAT9mD2nWWqI/KzJKnXWjcK5m295XI53Yil9wdEbdHxAABq5RKA3W4n//73v+Xp6UmGYZgu
A9LLVFsC+Vy9aHxMlXtaXttmtD/WJcbQ2qQJt4UkAE1yB34qARiGn6ddD4fD1Onu93t5enpqvu8A
AAAvCtAPh4P8/vvv8u3bN1mv11OZ3qvm14/a8MF36r0ui9aP1vHLUlLl5x4zfXulfcJ9IAno3CmX
4eQ6zGi5ziRoIrDdbmWz2SS/SOyUfQMA3L/UOLHb7eSPP/6Qr1+/To+qXq1WUwKw3++rz4rngv1U
XRvk5+qmXpeSA+AcSAJwZG7gPQzDm29Z1Lb0sqLFYjF1wHpd5svLi+x2u6mdudsHAPTHBsr2kpUf
P37Iv/71LxF5feT1breTYXj9VuDcJampALwlMI8C+6hOTcLg67aoXSdVj3H5fpEEdMh2lFHnpz+H
4fXpCT6w951WdL1gqmPVenp69uXlRTabzVF7yrbpOyI6JgC4f3588TSw1zHm27dv8q9//etomR3L
dJyxlwSlAnEfpPs2/LJo/VR7kVQ7vo5/ndq2fvaovl/mx/tIrgy3hySgQ+95EJe2pZ3wy8uLvLy8
TMujzijVmQEA7lMqMB3H8ehb6HUs+fbtm/zjH/+Q/X4/PZFORQFwrZZ2omA8Wh7Vyalpt2ZbgCIJ
6EjUidaIZvhPCcZtfe249RuF9TsEcm3W7jcA4Lb5s8H2bLRegqrJwPPzs/zzn/+crvfXbwTW+v6n
/WfL7Do+wPbrR/VS6/qf0fZz27A/57DrMo5ChCQARq5zOaXDyHWEIjI9qk3k5/Oc7ZeJRZcZ6XIA
wH2zl+zoWQFLr+9/fn6Wf/zjH0ffQaM/c4F0NO5FQb0v93WjAD4q9+vXiPYntd8pNdusqYP7QhLQ
mdJBXir3Wjsiy3aI9tGherNw6jSwLiMRAIA+jOP4JiHQZfplYN+/f5fFYjHdC6BnCkTiRMCOLblg
3S+P2ouWpcYvW5bbhlezTf/6VIyz940koEO2g4gO8FRnkuugSp1OqR3ttJfLpex2O3l6ejp6alCk
tE0AwH2IgulhGOTHjx/yz3/+U/766y95eHiYvgxsGIbpcqAoOPft5OpY0fjl1/ev/Tq5sdTWaa07
pzz3eUkA7t+qVAH3LzrFOgztM+3ahm0v14avo52dXsu52WxkHH8+21lngKJ9BQDcLz+mDMPP+wB+
/PgxfRvwp0+fppuBNfjX7wUQyQe7viz66YP5VDtRedRObrlVuz1fP/fe/05qtdbH9eNMQMdqgvw5
B33U+aVouc7c6Ond5XIpm81Gnp+fk2cEavYfAHDbor7+x48f8p///Eeen5+nL/9aLpfTPQI2GUhJ
BeS2zP/z61/SudvPJRTo0zASSXWpdBmQ1olmYGxZxC7X19EyfW3b8m3qTV7r9VoeHx/ffNV76szA
3JkOAMD1iL7Y648//pDff//96GlyfpzyQXsqgE/9tBNTvr3S69oy/Rl9X4FIvA9RvZrX+t6PjVHb
fhz27eB+cDkQsnIHv+1QLsV+vftyuZSHhwcReRvk+/d0WgBwW/ykzvh/Z4Z1+eFwkK9fv04JgH7z
fC7wTZX7ZaVAOtWuX9eXleg4WrMPkZptqNTkX0sbuC8kAZ2aG8DbzkpfR7MGuWW+XDugqD37PQI/
fvyQ3W4nj4+P0yNF7Xr2vW0XAHD9huFnoC/yOguuyzebjXz9+lW+fv0qIiKPj4+y2+3ePAY0xwf0
uZ82OC6Vq9zy3M9WretHY26UeKA/JAEd8x1DbXlNIqBSZS3raMC/2+3k+flZDoeDfPr0abrpy3Zi
cxIbAMDHsf24fQiE9ufb7Vb+85//yB9//CHL5VIWi0UxASgF3KkA3pdF7aTqWqnt+7b9eFe7vyV+
O3Mnx1rr47aQBGDiA+qcUl3f6dj6qRkJW2aX6zWhDw8PstvtZLPZyOFwkMfHx+nyIJHXx4zatmo/
DwDg4/j+W8eAb9++yb///W95fn6Wx8dH2e/305gQifr8aFlqJjwVhEfLfF1tz7/3r31bqbLafSmN
c3Mnx0rt4vaRBHROO9qa8lLdSM06Wkc7nGh7Wq7Xh+52O9nv97Lf7+Xh4eHoMaIAgNuhQbAdK56f
n6cnAB0OB1kul7Lf76dxQMcCvXxI27E/U8v0vQ/QU8F3qW7Nayu3PV/XK5XXOlc7uG0kAciKTlNG
M/ktonV0WVSmj33Tzn65XE6JwPPzs+z3e/n06ZOs12sR4Z4AALglfuLn6elJvn79Kn/99ZcMw2vQ
r+OA3hCsZw903VSfHwXbtiwVvJfKW4J2v45fr7TvqWU15dGYqK/9GfPW8Ry3jSQAR53EOcxtT9fz
6/uzAPp+vV7LbreTl5cX2e128vnzZ3l4eOCMAADcEA1C9/u9/Pnnn/L161d5eXk5egCEnwTyCUDU
XrQsFcxH6/lg3a9Ts77n2/RBeE6q/dSYq+Ut20Bf+J4AZDuPqF7NmYCobq5cg3tbXirTZYfDYTpN
/PDwMN00rPtmO0IROkYAuBTfz9aUj+Pr7P/ff/8t4zhOs/+RUrDtA227zAfOdrldx9ZLlet7/5x/
u679Gd3IXGo7qu9f62fx5V6qHeXH61xbuA+cCcBRB/KRoo7MB/H+9TiO09Mi9vu9PD09yXa7lU+f
PsmnT5+Ozh74AYUODgBO4ydT7Ouo79Vyncnfbrfy559/yh9//CGbzUaWy+X05Df9FmCrFMimAujU
sigIt/Wi8tQ6dlntT9U6KXWpuugLZwIgInVnA/xsfEqqLFrf//T19RSwX9f/E3lNIg6Hw9Sh/vLL
L0eXCEVPELLr01kCwOl8v2z73GEYpu9+0Ut/9JGfduJGL/1RqQDaB+ipuqkgPbW+/Zcqs2rr1+xv
ro5/nVsWLY/q+TE41RbuC0kAJq2JgL63dXJBfVQeJQb2vQ3So5/RdvSpQeP4cwZqvV7Lp0+fkt82
nOM/HwAgzfeZ+jjP8f8maBaLhTw/Px9d+iPy81r/YRimfn0YhulmYJFyApAKkFMBuYrOUtigPbV+
bru+PGrDl0XlueW+TlQvGuui9WrGftwnkgAcqZkN8IG7rVObBOTq+iA/t469OUzPANi6er+Afs+A
PkWIDg4ATuef2R+NIfbSn//+97/yxx9/TI/91EBY+/rFYnHUp6e+EKw2YE4F2aXA3Nbxy1Nt5drL
ldV+Fr88tUxf+yQgWs/WU6l6uD8kAXjD/knUdBo1AX9ueS7QjxKFVLm91Gccx+lmYX2tg86nT5/k
8fHxaADy2xChIwSAknGM79tS+/1+uu7/zz//nPrlYRime7n0tfbXti9O3cvVEjCngu9UnVR5Szup
di3bbsvn8aJl0fKoHuNe30gC8MYpSYDW9x2559cvJQZ+WfTTnwkYhp/XneprkddLhVarlTw8PMjj
4yNfNAYAZ6bf7v7333/LX3/9JS8vL7JarabvfRH52W/b6/6jANr36TXB/DdZiwAAGGFJREFUchSs
p362LIv2L9pu1M7c/fNql0XL/XsSAJAEIFRKBGynHX1jow/SvZokQH/aNn0ioNvX11Ey4NvXL5zR
J0/oZUIPDw9vOmsAQB3tW5+fn+XPP/+Uv//+e/pyLztW+MuHUsGzTw5SAXAu+E6tX6rnX0frptqd
87O0zL/OLUuV+fckASAJQKg2CfDvta4PwtUwvD3da+uk1ouC+lSgb8vt9lJt7HY7ERF5eHiQz58/
T988rI8e9YNUSul3BgDnVuqfSuVz+DYPh4NsNhv58eOH/P333/L09DRdzx+dZa0JZqOAOKpr66Xq
+rIoELd17M/ociT7z39pmb+HwW+35nNG++LHWLu89nfk+TbRH5IAhPyfRdRJRH86qT+nmro2iE/V
q00A7HpRWbR8HMfpJmIRkcfHx+mf77xtx+sfO+rbp4MFcK1sn5jqw3z5OL4+dOHp6Ul+/Pgh379/
l81mM/WF9gbfSC5wTa2XKi8F16UAO7VMpP6LwGy5X5Za19fx9VN1csuisqhe7v8d/SAJQCj6s4g6
Cn8zru9YoqDbvk/Viera1zUBva/v64kcP1FIZ/31PgJ7hmC1Wsnj46Os1+vp1La2U+pAa3+XAHBJ
Nf1Vivaj+/1enp+f5fv37/L09CSbzeaoDy0FnzWiwDpaHv3MlafWSdWJ9sNvJ5Uk6Pvc+ql9j5bZ
dfX3rcv8GJP6XVh+rEafSAKQVBO82s7IB9++c8r9qaXq+aBdX0eBfqnctmX3W69jTbWlycAwDLJa
raabijU50DK7TjRYeHYf7HtVWr+W7s8pcv93/rPnygFcju9TorJSuZZpn7jb7WS328nLy4v8+PFD
np+fZbvdTv1K6RGekSgQTr32/ZdvN3rOf/Ra3+vraH99HV9my1Vq+/Z9bn1fL+LL7e9kGN7ePB29
ti411uD2kAQgq7az8PXsgJIK1qNlqXaigL5U19Yp/bRt2CdX2E7XJwta9vnzZ1mtVkdnCezvSduh
owVwLVJD/36/l81mIy8vL7LdbuXHjx+y2+1ku92KyOu9UiLHz/G3fb7ywWoNXy83027rRz91/IkC
cB8sR3VEyjP9/r1/nWs7quuX6Wsf6Gu5Xx69tmrHdPSBJABZ0Z9H1Gn4ASAK0n3daFkpsI+WlcpS
5To42ODedvjRGQL7z7evHbMmBA8PD9OAOQyv18j6Dt/eWGaXa/t00gBSUn2E75N1mf7TSyF1pv/5
+Vk2m41sNpvpe1W0b9LvVLFt2Of663ZsX6vltg/1+6Pvc31cKbDV9X09/ae/H9/v2te58tz3FJQ+
S9RutI5/HS3z44x+Nvs7T21D2bq5eugHSQCKoj+RqPPw9VJ/WqXltjyq6zu+6L0vi/ZNB0Lfyeb2
w/7Uf9oZ62Cng6v+W6/X01Mylsvl9E87cvva/l51Wx/dUc/pIj56n4Fe+H7C9j3j+DPIH8ef1/Jr
wK/fl6Kz/kr7ID9hYbejfZ7Iz0Bf+z0bgA7D66ObU0F0JCqr+bIwv8zve+t7uyy1Pf1nfx+pfYqW
R/VSy/z/sa0bjRN+G75urg76QhKAKtGfSdSJ6MCj5dFrrWfb8EG28rNIygfgdru2jq1bU57ax3Ec
3+yLX98v05/28qJoHXtNrR1YbDs5NXVySuuXyiMMMMD78UGhnYjwX5ho+xn7Xtf1xnF8s46IHAX5
utwnBP61VVoeBby2jl/ul/nPaJe3lNvP79dLvY/aisr1fbTM0t+zLbP/V7n2lf+/TdVDX0gC0KTU
kfhyG0jb99qxpup7Nmi29aL1o0A7tU4U2Kf2ybddUx7V8++jRCe1XtSuPtXIL0/ROtFgAuC+lII9
3x9ESmVRH1ITmNqyVCA8jm/vqSq91vq+LFU3VUckvicgtc+2Tq48+pmq78ui33fqd2eV/o/Qp1Wp
AtAi6qBE3nZA79H52M44FST78miZfqaori2361pRmW3PDjJRgO7bTHXm0T7WDBglrfVb1QQhAC5j
znGXWicKaFOTDLng15fZvtzXi9pJ1Y/q+WW5ctvuOX5vNW2kPnc0NqTqkwAghSQAZ6cdlMjxNaNa
JpIfGHIdVk1gHrXhO7yWoD3V2fq6uX33Scg5OuDU70KX2dep33fJOfcz5RzbAG7VKcenyOWPn1Kw
Wep7cq/9Z0/Vsfxyv05qX21Zbju+jegRoKl9StUplUf8OnYMyX1OjwQAOVwOhGalANvW0c4rF6RH
f4KpP0vfVvQ617avE30/QGkduw81+1JTx8q9j17r7z/1O/Nyv1tlB6radlNOXR9A2nsEdK3bsEGq
PnwhFzhHy0qBs3+dKrPltW3a+rn9jtpI1amtHy0bhrfJUrTMi/reqB76RRKAWfyfTW0H5DutVIAb
aQmsVepmXlte25bdblTP71e0rFTu66R+J7nfbfR/U/rdfqToTBGAn67xmMjtU6qsFOjm6uQC9uh1
1G6uTqr9VFtRG7489dr+1H659HuwdWvqq2gsACwuB8LFaMelHU8pEPUdXY5tM3qt7BfZaLkNvG39
aP1ITb1c5+478ygRSNXP1fG/b19uldp8T/4RgABelfqa91ban1R5tLy0LHrtf1rDkJ7xt+XRcitq
x9ZLtRPV9etFP3Oi/rsGCQBqkATgLHKzFLnZ7NoOLtV+ad2obq7TjhKE3HqphMC2ldqebTf1e/Dr
R/tW07n7NkoDV+n3Okcu0QFQ7yOPmZptp/rEnFKAHC2PXmt/6tnlpbZsfd9f+nZy/XNUR+uVfh+R
mt9r1M/O2Rb6QBKA2Wo6Mu1E7XuRt0G97TznBqCpdaO27X6kPkNqn1L7m2rH1tHt2Z++Xu734bdR
+v17rb/bmv/jEjtg5rbfum/AvSodc7b8vY4bu83U9qM6Lcm/7Sv88tSyXF9u+1Tftt/X1O+8tp6v
G71vlfodlcYcoBb3BOBk/k8o6phOCf58uX1vg+tI7gu+/PLaZfZn6nVLPdup5z6rf1/6vWmd0mBs
pepcerCp2TegJ6cec3pM5dqpOd5tH+LLonKvJjBOBeaRVDAfrRttO7cst32/bmobvrymrmW3k/o/
TLXj/z9rtoe+kQTgZNGfUNT5RPVyf36pslQ7ufZzgbp/bZfV1PV1ovLS9mve22Vzfm8lud93yyDv
zd0fAOW+tDYgTNWJ1i8d0zk1AWuqzpy6LeW5wDxVT9/n1vVK+xZpKav9Pz/l/xF9IAnAWdR2PqlA
19avCc5Ty3KBrC/3wbnn14nqp9r1y1rr+vLofe06JaX6YxAo2P+30volDFRAWsvxlToeTznGWtct
BaxRe7llqfVLy1NBfS7Az5XZZb5u62eK2G3Z/8Oa39+5/8/RD5IAnEXqz6jUYdlgMiqP3tfUq2lj
HOOZfl/H1y+1He1Hbjs1bUZlNftcI/d7U7n/n1Of7uMv2VLRgAjcG99HvsfxlTqeawLOklIbpUC4
5bV9nwvk7evS+jXrpNbzZaXl0Xv//1Hzf+D/ZmrWAUSEJADnE/0ppTqjVDBs+Q6xZh3fgUZfBhbV
jwJxWz63rl8vErVXWidV1lo/UhpQatsBUKbH13seV7VBou+DdVlOKdD1WoPy2npRuz6oHsfxTZLl
69Ru25e1LPO/55bfYev/D2DxdCCczZzBLBpkdPkcUeep7fvOP1UedcbjGD+HP1c3kvqsqd9DJPo8
KhpMattVvl37eaLPNvf/SrXuH3CPUsfRpY6vmnZb92lOm9H7mv7G//Svo/ot24760pJS+6llkZq+
mwQAp+JMAC6ipnPK/emlyuYu9+W596nX9n1Up2Ub+r7mdxDVKbWdU1vXDsSWvtfy1OU8tRi4gLTa
49WLguRUvWgb0fFfakul6pWC4lIQHy2vKZtbN6pTqqtlLctLdWrHz5r2AYszAXgX41h+3nw0GKUG
KM8PWFE7dnlp4LPvbZBb+gypAbPm86f2uUbN78kH77Vyg6bI6dcsA0grHa+pfrNFrv6cgFbLavYt
F/SO49vLdXyd1PLUT1+3pu9Uto3cfqfKI3b70f6U2qkZW4AUzgTgokoDQFQnKrODQulPttReVK7L
7f5FCUXqdap+aZ3UMrs8t070+4mW59ZVrQNJapsAPl7r8eyl+pA57ZYC8dz7aHn0OtdOLjivTTJS
++7HjGhbdrnvN+2y1HuV6mPn/J8AIiQBuLDoz6slEcj9ec4pqwnUU8tLwe44xglGdLlMbTJQs8wO
MC1JgH/d4pKDztx9Au7BRx1bPpiNlkfva+SC/1RZ1Ie1vk6V5ernlkVBfaq+1VpOEoD3QhKAizsl
EdDBwA8IUUBuB47cn7Wt49fxA6Gv49f3cgF27XqpOlF5qV5O6za92oGn9H9R2w7Qo1L/WXv8tBzf
c9rPiYJv/z7VF0Tr2Pb82FDzOveZfH3dr9p17Pto36J6pWXK/x+e4/8GfSMJwLsoDWSpetoJR51p
TRBbCkBz9XLtt6ybaie1bzWfK1d2yiHdsq4f6Er1UkrrAz079fipPU6t0jZTSsFuTbupgNq/rw2g
o0eARmq3m3rv+WRCJB7fSu2I1I+fQCuSALyL1J9ZqiOrCZA1QYjKovJUvXGse0qPf63va/b1lDp6
OVEuAbKifawZME7tCmo+o0j7YAogPTlQG9S2mrN+bp3aoN0vL63XUl5az5fpGFIbrFtRG8r/3+Xa
LvWfwCl4OhDeRSogT9GO7nA4TB1wtH5ueYpfx9fN7WdpXZG3HXwuCI/2P9fp+wGlFAhYNXVKos9e
2odooLOvoyQHwE/+ONPXtceLDz7nrCeS7hdTx7VqCaKjeqV+JVpWaqOmzVRbVtR/63L7M1Ve0jJm
AnNwJgDvriVoj+q2/MmW6vqBtbVObv9y28614wPt3HP4fd3S78sHBHOkkpTc76920AOQlzr+vNRx
ee5jsdReKYiO3pc+U2pZ6rVVSghK2/DLa/u32v1RLeMkMBdJAD5Eawen9bWOD4yj4FY757nBeOsy
XzaObY8zzQXRNct8eSk4t3VFygNMqZ1UndL/q16zW9M+gGOtx1xNuUh9v1AqV6ng2vfRtcFyLuCv
bcMva1lPl/skIBqLWtsVeTuOleoDc5AE4EP5P79SJ1cTENtBJeqEbX293MjW8etG60XvI6m2omWl
JCD1GUrrpZaVfteR3O8awG2Yc+yLpIPaXHulANgH0b48taxUXrss2o+W30+qrajcipan+tKW/QFa
kATgQ0V/fjWzI6VlkbnrlgLuXBulAH3Ouucqr1X6/F5NHQCXURMwloJpq5Tol9a3WgLiVHlNGy1J
SSlJiJTKVc2+WiQBeG8kAbgK0Qxzig9Kh+H1lLKfgckFsLa8dBj48jnBey6BKG3fs+uVBpRcnbla
9relLoD5ogDX94k5pb4iaqulzVJdKxXUtwT4ufI5wb+v4+vr78eOSal1LYJ/fBSSAFyF6M+wdjBK
Ldf1o0QgV2ZFHXnpfWmZ/Vy57dccmqlBO9Vu9LlrRfs9px0AlxMFplEQXnvsRn2gL6/RGrz7ZaXt
1NZvXZ4qz/0uW7fROv4B50ISgKswdybEBqOtA1ypTqlclRKJ3PJcee2ynCjx8OWl31tNogHguqWO
4cViUR3ERqJJhpTW4Li0POqb7HtNYHJJRqqNVN9pyzzfl+r7luBflX6XwDmQBOBqzO0Qx3EMO/Jo
cPLbiDp6H9Sn1rVS7Ub1atpLldcuO1XUZilZAPD+avsTkfgYPnewmWuvpiy3XzXrl+qdUp76XUf1
ta8vjV2R0v4B50ISgKs0p3M8NUCuqTunTil5yM0s+brnWN7qXO0AuD6nBpwtwbdlA+pS0J3j65TW
KZX7OqUkqzVZEalLIoD3wDcG46bZAUSD6WgGJtXp6vLczLctqwnYazr0mjZq6tTwz+H3n8cv81L7
Urt9AB9vTuCpx37r5IuV64dtua/XmhiUlkdtlvo/HUdS+x2NI34bflnp9wW8J84E4Kq1zL6o0p+0
LdfrYXPJgO3Ebaef205pH1rqlAYqW1e1DDqtCUBN8ADgerQe4768JOpvSkF5bd1cndZ9y/WlUYIw
DG+/sX3uftRsE3hvJAG4eudOBHLt+bI5h0frts+9Da+lbqtSAAHgY5UC3znHrw/ka4LZmjpea8A9
Zxsir+vlJk9qkpqUOWMY8B5IAnAz5nSkLQF5brDU5XZWqqa+1q2p11rm6+QGsFNE7UflAK7PJQLN
qK/x/Vztdkv1SuWWrev3x++Xb9e/r/0cc8afUpvAeyEJwE2Z26nOCbSj4N2+LgX3KaX6vrxUPyWV
HKQGOwD3LTr+S2r6i9Y2Lf+I0lJ/5evlgvVhKF/OmOrHc5+p5vOWxhXgGpAE4Obk/mRLHWxq3VyH
3bpOSet6pfql8kv4iG0COK9Sf3mqmvZ9H9uaBNQoBfS1iU3tNkkAcCtIAnCTSn+2tZ3t4XComukS
KZ8ZaDF3vcipSUrt5wdw/2r7A9sfniNQt+3kJl9a2hQ5rl/6bFF5bv3IKZNUwHsjCcDNO2Ww8DNQ
uQDfz1DllMpTom2W2iqV2zb8561xyu8XwG1L9YN+UiT1vlXrerZ/K60blft1fZ9balOEwB+3iyQA
Vy03y2TrpJTWVblA1z4iLjeI1C5XftBMKZVb0WCYSgLOpfZ3DOD9nXrMl4LiqI+2y3L9XKnvaAnw
vWifonL/+Xx5Ss3vtdQG8NFIAnA35nTkVu2h4Ovlvowrei9SHqByZX7dmudYqzmfsfQ7LJUD+Di1
x3yLlj5G+8dUean/sEmETwiidUt9a6o812Yk93utbQP4aCQBuCulP+dS51xaP6qTm+mqMXc9kboE
IxIF+an9KLVX2v9SOYD5SsdniV3/HIHt3D6p1ty2atarqSNynt8TcA1IAnDXzjEglQ6RUnkpyK5d
X6T8eUpt5dYvrTtX6+8bwPs65dgvzcbP7bN8v2TXSfUppW1FSuXWnPaBa0YSgLtW+vOu6cBLbXip
MwVRWY2WgWdO+yL59fzpfM9fjgTg/dT0YTmlPsO3n+vfcstUzfqnyLUX9cWlfR2G/MMZzr3/wHsi
CUA3SjNOLXKHTc0hVRpYrFISUGrn1M93avulcgDzlY7PFnOO1drtp5KJ0jb9GYGc2rZKzrEt4BaQ
BKArpT/3lo691JaaM/NVartUbpW219LWHJduH+hZ6fhu1dpey/FdO0vvlSZCatTWr/k8tW0B144k
AF0r/fnXdPalNlIzXqXkIFqvtK3InHVE6mfqSk5dH0Da3ONbnXqcl9Ybx7ePEI36tFL/qErbi5TW
qfkdltoAbhFJALpW8+ff2vlrm3Zw86e0awe4aADV5WoY6i8t+gjXvG/ArWvtn96T7ZtS++n7Mr/M
Lk/1o7btlt9HTd9UOkPRsj3g2pAEAP+n9lCo6fRr26qVa680SJW+xwAASqJ+pmYCojThUUoSSlrX
K+2vSHubwK0iCQCMmsNh7gBRart2sGzlB2q//6XPs9/vs+UlpfYBzDe3X1A6SZA6Tluf/mXbqZm8
KPV7rWUptb+nOW0Dt4okACgoHSJzBo1cUO7ZutF6pf3zStvzWut7rUEEgHqlR/iW1H7jeGs/o6Kz
BS2X7+TWrVHa79b2gHtCEgA0KB0ucwaUVJCv5rTZovSZSuUll95/oGeXPj5z5eN4+jXxpSB/Tvs1
v5M57QL3hiQAaFR7yJx7kKndbqtSu6d+jlL7AOY79/F5antWdBbAl5+qtX85xzaBe0ESAMww97CJ
BqBSW6VBq7S+lqdm2ErrA+hXqv+oVVqv1P/M6TOt0vaBnpEEAGcw5zA61+A0d9u6Xmn9c+0ngOtz
qUsQz9FGpNRfWZfaB+BekAQAZ9Z6SL33QOWD//fePoDb8dH9Q0t/+tH7CtwakgDgwuYcYgxmAHpA
/wh8HJIA4B3NOdxS1+4zEAK4dnP6PLvOOZ4WBCBGEgB8kHMdepceFM+1nwCuz0f3H6Xtc9kicDkk
AcAVuORhyOAJ4NzO1WeVgnz6L+BySAKAG5G6HOjSh/Cl2wfwcT46yP7o7QM9IwkA7typhziDNHC/
Prp/KG3/1PYBpJEEAPj/7dmxDYAwEARBy6L/nuiMjAjh/HcmvviltV9f58CJgLn23qcJMNR1GgAd
Xt0AoEEEAL+EAQDM4x8QAABiRAAAAMSIAAAAiBEBAAAQIwIAACBGBAAAQIwIAACAGBEAAAAxIgAA
AGJEAAAAxIgAAACIEQEAABAjAgAAIEYEAABAjAgAAIAYEQAAADEiAAAAYkQAAADEiAAAAIgRAQAA
ECMCAAAgRgQAAECMCAAAgBgRAAAAMSIAAABiRAAAAMSIAAAAiBEBAAAQIwIAACBGBAAAQIwIAACA
GBEAAAAxIgAAAGKutdZ9GgEAAHM82u1i1x0wI/wAAAAASUVORK5CYII=" transform="matrix(0.811 0 0 0.811 138.137 25.3352)">
</image>
<g>
<path class="st18" d="M450.67,458.27c0,169.35,36,238.46,70.7,266.48c40.91,33.05,121.58,51.36,46.08,122.02"/>
<path class="st19" d="M572.19,826.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.59-4.39,13-8.88,21.03-13.33c-3.47-4.63-5.01-6.23-8.91-10.8c-11.2,8.55-24.4,17.99-34.98,27.76
c8.31-13.02,14.66-23.95,22.97-36.97c-5.22-2.87-7.41-4.41-12.95-8.11c-4.41,8.54-10.75,18.72-10.75,18.72
S570.08,824.68,572.19,826.47z"/>
<path class="st20" d="M572.19,826.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.42-3.97,12.55-8.65,21.03-13.33c-4.51-5.59-4.91-5.84-8.91-10.8
c-11.2,8.55-24.4,17.99-34.98,27.76c8.31-13.02,14.66-23.95,22.97-36.97c-6.38-4.03-6.53-4.05-12.95-8.11
c-4.41,8.54-10.75,18.72-10.75,18.72S570.08,824.68,572.19,826.47z"/>
<text transform="matrix(1 0 0 1 481.6926 775.9326)" class="st4 st16 st21">V</text>
<text transform="matrix(1 0 0 1 512.8269 781.7549)" class="st4 st8 st22">in</text>
</g>
<g>
<path class="st18" d="M467.47,458.27c-4.2,91.34,42.92,215.78,122.42,249.2c150.62,63.32,29.95,132.44-21.61,151.89"/>
<path class="st19" d="M579.29,844.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.7,2.83,0.67,2.82,1.16,5.97c4.78-0.8,11.14-2.21,19.91-3.35c-1.57-5.07-2.24-7.01-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-2.8-5.24-5.42-7.18-8.3-12.57
c-6.86,5.48-15.15,12.54-15.15,12.54S578.05,842.29,579.29,844.56z"/>
<path class="st20" d="M579.29,844.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.51,3.95,0.74,2.71,1.16,5.97c8.26-1.38,11.32-1.92,19.91-3.35c-1.55-4.41-2.11-7.89-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-3.95-4.77-3.48-5.82-8.36-11.72
c-6.86,5.48-15.09,11.69-15.09,11.69S577.01,841.31,579.29,844.56z"/>
<text transform="matrix(1 0 0 1 645.7878 741.4971)" class="st4 st16 st21">V</text>
<text transform="matrix(1 0 0 1 676.4353 749.0928)" class="st4 st8 st22">out</text>
</g>
<g>
<path class="st18" d="M414.04,458.27c4.2,94.6-11.44,197.05-87.98,238.22c-147.23,79.19-38.2,155.09-11.45,165.35"/>
<path class="st19" d="M286.56,857.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S285.17,860.56,286.56,857.82z"/>
<path class="st20" d="M286.56,857.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S285.17,860.56,286.56,857.82z"/>
<text transform="matrix(1 0 0 1 202.7805 758.498)" class="st4 st16 st21">l</text>
<text transform="matrix(1 0 0 1 218.6316 764.6533)" class="st4 st8 st22">in</text>
</g>
<path class="st23" d="M244.22,388.27V144.19c0-38.66,31.34-70,70-70H558.3c38.66,0,70,31.34,70,70v244.08c0,38.66-31.34,70-70,70
H314.22C275.56,458.27,244.22,426.93,244.22,388.27z"/>
<radialGradient id="SVGID_1_" cx="506.5269" cy="321.3081" r="219.0407" gradientTransform="matrix(0.8097 0 0 0.8097 26.1212 6.0655)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st24" d="M282.63,379.86V152.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H322.63C300.54,419.86,282.63,401.95,282.63,379.86z"/>
<path class="st25" d="M282.63,379.86V152.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H322.63C300.54,419.86,282.63,401.95,282.63,379.86z"/>
<path class="st23" d="M306.63,373.86V158.6c0-12.15,9.85-22,22-22h215.25c12.15,0,22,9.85,22,22v215.25c0,12.15-9.85,22-22,22
H328.63C316.48,395.86,306.63,386.01,306.63,373.86z"/>
<circle class="st26" cx="436.26" cy="196.25" r="31.21"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

+529
View File
@@ -0,0 +1,529 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{font-size:57.9653px;}
.st17{font-family:'ArialMT';}
.st18{font-size:48.0099px;}
.st19{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st20{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st21{fill:#CACACF;}
.st22{font-size:57.6118px;}
.st23{font-size:28.8059px;}
.st24{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st25{fill:url(#SVGID_1_);}
.st26{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st27{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="447.59" y="980.12" class="st0" width="100.36" height="144"/>
<rect x="149.3" y="979.87" class="st1" width="200.4" height="144.5"/>
<rect x="148.3" y="980.12" class="st2" width="610" height="144"/>
<line class="st3" x1="148.3" y1="1052.12" x2="758.3" y2="1052.12"/>
<line class="st3" x1="349.7" y1="979.87" x2="349.7" y2="1124.62"/>
<line class="st3" x1="447.59" y1="980.12" x2="447.59" y2="1124.12"/>
<line class="st3" x1="547.95" y1="980.12" x2="547.95" y2="1124.12"/>
<line class="st3" x1="652.31" y1="980.12" x2="652.31" y2="1124.12"/>
</g>
<text transform="matrix(1 0 0 1 484.2485 1104.0178)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 379.4125 1035.6323)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 398.494 1042.218)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 573.6577 1036.5579)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 603.9448 1042.3801)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 672.8272 1037.0443)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 698.7891 1043.5347)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 459.5118 1036.1605)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 490.2037 1036.1605)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 377.6335 1102.9855)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 683.9442 1103.8079)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 577.0964 1103.0878)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 192.77 1033.2937)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 159.835 1100.1588)" class="st14 st8 st15 st13">Connect to</text>
<text transform="matrix(1 0 0 1 621.358 1029.8459)" class="st4 st8 st16">*</text>
</g>
<g id="sample">
<path class="st1" d="M359.2,884.55V854.5c0-20.34,16.49-36.83,36.83-36.83h114.55c20.34,0,36.83,16.49,36.83,36.83v30.05
c0,20.34-16.49,36.83-36.83,36.83H396.03C375.69,921.37,359.2,904.89,359.2,884.55z"/>
<circle class="st1" cx="571.4" cy="867.83" r="13.2"/>
<circle class="st1" cx="334.24" cy="867.83" r="13.92"/>
<rect x="339.04" y="863.03" class="st1" width="228.53" height="9.6"/>
<text transform="matrix(1 0 0 1 375.9231 882.3369)" class="st14 st17 st18">sample</text>
<text transform="matrix(1 0 0 1 375.9231 882.3369)" class="st14 st17 st18">sample</text>
<text transform="matrix(1 0 0 1 314.9065 933.1484)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 550.8065 933.1484)" class="st11 st8 st12 st13">E2</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
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" transform="matrix(0.811 0 0 0.811 150.9681 31.3352)">
</image>
<g>
<path class="st19" d="M463.5,464.27c0,169.35,36,238.46,70.7,266.48c40.91,33.05,121.58,51.36,46.08,122.02"/>
<path class="st20" d="M585.03,832.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.59-4.39,13-8.88,21.03-13.33c-3.47-4.63-5.01-6.23-8.91-10.8c-11.2,8.55-24.4,17.99-34.98,27.76
c8.31-13.02,14.66-23.95,22.97-36.97c-5.22-2.87-7.41-4.41-12.95-8.11c-4.41,8.54-10.75,18.72-10.75,18.72
S582.91,830.68,585.03,832.47z"/>
<path class="st21" d="M585.03,832.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.42-3.97,12.55-8.65,21.03-13.33c-4.51-5.59-4.91-5.84-8.91-10.8
c-11.2,8.55-24.4,17.99-34.98,27.76c8.31-13.02,14.66-23.95,22.97-36.97c-6.38-4.03-6.53-4.05-12.95-8.11
c-4.41,8.54-10.75,18.72-10.75,18.72S582.91,830.68,585.03,832.47z"/>
<text transform="matrix(1 0 0 1 494.5237 781.9326)" class="st4 st17 st22">V</text>
<text transform="matrix(1 0 0 1 525.658 787.7549)" class="st4 st8 st23">in</text>
</g>
<g>
<path class="st19" d="M480.3,464.27c-4.2,91.34,42.92,215.78,122.42,249.2c150.62,63.32,29.95,132.44-21.61,151.89"/>
<path class="st20" d="M592.13,850.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.7,2.83,0.67,2.82,1.16,5.97c4.78-0.8,11.14-2.21,19.91-3.35c-1.57-5.07-2.24-7.01-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-2.8-5.24-5.42-7.18-8.3-12.57
c-6.86,5.48-15.15,12.54-15.15,12.54S590.89,848.29,592.13,850.56z"/>
<path class="st21" d="M592.13,850.56c-8.8,6.83-15.51,12.38-24.56,19.4c0.98,2.31,1.48,3.96,1.48,3.96s11.85-3.02,29.98-6.05
c0.51,3.95,0.74,2.71,1.16,5.97c8.26-1.38,11.32-1.92,19.91-3.35c-1.55-4.41-2.11-7.89-3.76-12.59
c-12.85,2.99-25.49,4.67-38.22,8.91c11.85-7.78,21.25-14.54,33.1-22.31c-3.95-4.77-3.48-5.82-8.36-11.72
c-6.86,5.48-15.09,11.69-15.09,11.69S589.84,847.31,592.13,850.56z"/>
<text transform="matrix(1 0 0 1 658.619 747.4971)" class="st4 st17 st22">V</text>
<text transform="matrix(1 0 0 1 689.2664 755.0928)" class="st4 st8 st23">out</text>
</g>
<g>
<path class="st19" d="M426.87,464.27c4.2,94.6-11.44,197.05-87.98,238.22c-147.23,79.19-38.2,155.09-11.45,165.35"/>
<path class="st20" d="M299.39,863.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S298,866.56,299.39,863.82z"/>
<path class="st21" d="M299.39,863.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S298,866.56,299.39,863.82z"/>
<text transform="matrix(1 0 0 1 215.6116 764.498)" class="st4 st17 st22">l</text>
<text transform="matrix(1 0 0 1 231.4627 770.6533)" class="st4 st8 st23">in</text>
</g>
<path class="st24" d="M257.05,394.27V150.19c0-38.66,31.34-70,70-70h244.08c38.66,0,70,31.34,70,70v244.08c0,38.66-31.34,70-70,70
H327.05C288.39,464.27,257.05,432.93,257.05,394.27z"/>
<radialGradient id="SVGID_1_" cx="522.3735" cy="328.7182" r="219.0407" gradientTransform="matrix(0.8097 0 0 0.8097 26.1212 6.0655)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st25" d="M295.46,385.86V158.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H335.46C313.37,425.86,295.46,407.95,295.46,385.86z"/>
<path class="st26" d="M295.46,385.86V158.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H335.46C313.37,425.86,295.46,407.95,295.46,385.86z"/>
<path class="st24" d="M319.46,379.86V164.6c0-12.15,9.85-22,22-22h215.25c12.15,0,22,9.85,22,22v215.25c0,12.15-9.85,22-22,22
H341.46C329.31,401.86,319.46,392.01,319.46,379.86z"/>
<circle class="st27" cx="449.09" cy="202.25" r="31.21"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 39 KiB

+515
View File
@@ -0,0 +1,515 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="900px"
height="1200px" viewBox="0 0 900 1200" style="enable-background:new 0 0 900 1200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D4D4D4;}
.st1{fill:#46DBC0;}
.st2{fill:none;stroke:#BFBFBF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:none;stroke:#BFBFBF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#787879;}
.st5{font-family:'Noteworthy-Light';}
.st6{font-size:50.0861px;}
.st7{letter-spacing:-2;}
.st8{font-family:'Arial-BoldMT';}
.st9{font-size:50px;}
.st10{font-size:25px;}
.st11{fill:#00BBFF;}
.st12{font-size:38.4079px;}
.st13{letter-spacing:-1;}
.st14{fill:#FFFFFF;}
.st15{font-size:35.9491px;}
.st16{font-family:'ArialMT';}
.st17{font-size:48.0099px;}
.st18{fill:none;stroke:#787879;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
.st19{fill:none;stroke:#787879;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}
.st20{fill:#CACACF;}
.st21{font-size:57.4879px;}
.st22{font-size:28.744px;}
.st23{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st24{fill:url(#SVGID_1_);}
.st25{fill:none;stroke:#79797A;stroke-width:3;stroke-miterlimit:10;}
.st26{fill:#FFFFFF;stroke:#79797A;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Table">
<g>
<rect x="343.56" y="994.12" class="st0" width="97.89" height="144"/>
<rect x="646.18" y="994.12" class="st0" width="105.99" height="144"/>
<rect x="143.17" y="993.87" class="st1" width="200.4" height="144.5"/>
<rect x="142.17" y="994.12" class="st2" width="610" height="144"/>
<line class="st3" x1="142.17" y1="1066.12" x2="752.17" y2="1066.12"/>
<line class="st3" x1="343.56" y1="993.87" x2="343.56" y2="1138.62"/>
<line class="st3" x1="441.45" y1="994.12" x2="441.45" y2="1138.12"/>
<line class="st3" x1="541.82" y1="994.12" x2="541.82" y2="1138.12"/>
<line class="st3" x1="646.18" y1="994.12" x2="646.18" y2="1138.12"/>
</g>
<text transform="matrix(1 0 0 1 376.6109 1113.074)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 686.1163 1112.8851)" class="st4 st5 st6 st7">x</text>
<text transform="matrix(1 0 0 1 373.2803 1049.6323)" class="st4 st8 st9">l</text>
<text transform="matrix(1 0 0 1 392.3619 1056.218)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 567.5255 1050.5579)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 597.8126 1056.3801)" class="st4 st8 st10">in</text>
<text transform="matrix(1 0 0 1 666.695 1051.0443)" class="st4 st8 st9">V</text>
<text transform="matrix(1 0 0 1 692.6569 1057.5347)" class="st4 st8 st10">out</text>
<text transform="matrix(0.85 0 0 1 453.3796 1050.1605)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 484.0715 1050.1605)" class="st4 st8 st9">ef</text>
<text transform="matrix(1 0 0 1 471.1342 1117.0778)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 570.9642 1117.0878)" class="st11 st8 st12 st13">E2</text>
<text transform="matrix(1 0 0 1 186.6378 1047.2937)" class="st14 st8 st9 st7">Lead</text>
<text transform="matrix(1 0 0 1 153.7028 1114.1588)" class="st14 st8 st15 st13">Connect to</text>
</g>
<g id="sample">
<path class="st1" d="M353.07,880.55V850.5c0-20.34,16.49-36.83,36.83-36.83h114.55c20.34,0,36.83,16.49,36.83,36.83v30.05
c0,20.34-16.49,36.83-36.83,36.83H389.9C369.56,917.37,353.07,900.89,353.07,880.55z"/>
<circle class="st1" cx="565.27" cy="863.83" r="13.2"/>
<circle class="st1" cx="328.1" cy="863.83" r="13.92"/>
<rect x="332.91" y="859.03" class="st1" width="228.53" height="9.6"/>
<text transform="matrix(1 0 0 1 369.791 878.3369)" class="st14 st16 st17">sample</text>
<text transform="matrix(1 0 0 1 369.791 878.3369)" class="st14 st16 st17">sample</text>
<text transform="matrix(1 0 0 1 308.7744 929.1484)" class="st11 st8 st12 st13">E1</text>
<text transform="matrix(1 0 0 1 544.6743 929.1484)" class="st11 st8 st12 st13">E2</text>
</g>
<g id="Elite">
<image style="overflow:visible;" width="767" height="618" xlink:href="data:image/png;base64,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
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
AKAzJAEAAABAZ0gCAAAAgM6QBAAAAACdIQkAAAAAOkMSAAAAAHSGJAAAAADoDEkAAAAA0BmSAAAA
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" transform="matrix(0.811 0 0 0.811 144.8359 27.3352)">
</image>
<g>
<path class="st18" d="M467.37,460.27c0,169.35,35.98,207.01,73.9,230.48c69.48,43,103.68,87.22,32.88,158.02"/>
<path class="st19" d="M578.89,828.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.59-4.39,13-8.88,21.03-13.33c-3.47-4.63-5.01-6.23-8.91-10.8c-11.2,8.55-24.4,17.99-34.98,27.76
c8.31-13.02,14.66-23.95,22.97-36.97c-5.22-2.87-7.41-4.41-12.95-8.11c-4.41,8.54-10.75,18.72-10.75,18.72
S576.78,826.68,578.89,828.47z"/>
<path class="st20" d="M578.89,828.47c-5.75,10.75-9.41,18.48-15.31,29.53c1.87,1.95,3.03,3.43,3.03,3.43s10.23-8.15,26.5-18.99
c2.09,3.82,0.53,1.04,2.26,4.2c6.42-3.97,12.55-8.65,21.03-13.33c-4.51-5.59-4.91-5.84-8.91-10.8
c-11.2,8.55-24.4,17.99-34.98,27.76c8.31-13.02,14.66-23.95,22.97-36.97c-6.38-4.03-6.53-4.05-12.95-8.11
c-4.41,8.54-10.75,18.72-10.75,18.72S576.78,826.68,578.89,828.47z"/>
<text transform="matrix(1.0022 0 0 1 618.0433 766.2085)" class="st4 st16 st21">V</text>
<text transform="matrix(1.0022 0 0 1 649.1771 772.0132)" class="st4 st8 st22">in</text>
</g>
<g>
<path class="st18" d="M434.96,460.27c4.2,94.6-58.48,192.95-120.78,241.22c-76.31,59.13-63.1,127.1,0,162.35"/>
<path class="st19" d="M293.26,859.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.46,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S291.87,862.56,293.26,859.82z"/>
<path class="st20" d="M293.26,859.82c11.69,5,20,8.04,32.01,13.18c1.58-2.48,2.83-4.05,2.83-4.05s-9.94-10.61-23.65-27.83
c3.39-3.02,3.19-2.77,6-5.27c-5.55-6.97-8.1-10.06-13.98-18.69c-4.65,4.36-7.89,6.71-12.55,11.07
c10.51,11.68,20.45,24.85,32.06,35.62c-14.4-7.62-26.38-13.29-40.77-20.91c-3.24,6.25-4.84,8.85-8.17,15.28
c9.26,3.79,22.21,9.49,22.21,9.49S291.87,862.56,293.26,859.82z"/>
<text transform="matrix(0.85 0 0 1 165.8872 762.1967)" class="st4 st8 st9">R</text>
<text transform="matrix(0.9 0 0 1 196.5791 762.1967)" class="st4 st8 st9">ef</text>
</g>
<path class="st23" d="M250.92,390.27V146.19c0-38.66,31.34-70,70-70H565c38.66,0,70,31.34,70,70v244.08c0,38.66-31.34,70-70,70
H320.92C282.26,460.27,250.92,428.93,250.92,390.27z"/>
<radialGradient id="SVGID_1_" cx="514.8001" cy="323.7782" r="219.0407" gradientTransform="matrix(0.8097 0 0 0.8097 26.1212 6.0655)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#96FFD0"/>
<stop offset="1" style="stop-color:#7AFFAD"/>
</radialGradient>
<path class="st24" d="M289.33,381.86V154.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H329.33C307.24,421.86,289.33,403.95,289.33,381.86z"/>
<path class="st25" d="M289.33,381.86V154.6c0-22.09,17.91-40,40-40h227.26c22.09,0,40,17.91,40,40v227.26c0,22.09-17.91,40-40,40
H329.33C307.24,421.86,289.33,403.95,289.33,381.86z"/>
<path class="st23" d="M313.33,375.86V160.6c0-12.15,9.85-22,22-22h215.25c12.15,0,22,9.85,22,22v215.25c0,12.15-9.85,22-22,22
H335.33C323.18,397.86,313.33,388.01,313.33,375.86z"/>
<circle class="st26" cx="442.96" cy="198.25" r="31.21"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg width="55" height="30" viewBox="0 0 55 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="55" height="30" rx="15" fill="#45589E"/>
<path d="M10.8849 20V9.81818H13.0376V18.2251H17.4027V20H10.8849ZM22.2388 20.1491C21.4666 20.1491 20.7987 19.9851 20.2353 19.657C19.6751 19.3255 19.2426 18.8648 18.9377 18.2749C18.6328 17.6816 18.4803 16.9938 18.4803 16.2116C18.4803 15.4228 18.6328 14.7334 18.9377 14.1435C19.2426 13.5502 19.6751 13.0895 20.2353 12.7614C20.7987 12.4299 21.4666 12.2642 22.2388 12.2642C23.0111 12.2642 23.6773 12.4299 24.2374 12.7614C24.8008 13.0895 25.235 13.5502 25.54 14.1435C25.8449 14.7334 25.9973 15.4228 25.9973 16.2116C25.9973 16.9938 25.8449 17.6816 25.54 18.2749C25.235 18.8648 24.8008 19.3255 24.2374 19.657C23.6773 19.9851 23.0111 20.1491 22.2388 20.1491ZM22.2488 18.5085C22.6001 18.5085 22.8934 18.4091 23.1287 18.2102C23.3641 18.008 23.5414 17.733 23.6607 17.3849C23.7833 17.0369 23.8446 16.6409 23.8446 16.1967C23.8446 15.7526 23.7833 15.3565 23.6607 15.0085C23.5414 14.6605 23.3641 14.3854 23.1287 14.1832C22.8934 13.9811 22.6001 13.88 22.2488 13.88C21.8941 13.88 21.5958 13.9811 21.3539 14.1832C21.1152 14.3854 20.9346 14.6605 20.812 15.0085C20.6926 15.3565 20.633 15.7526 20.633 16.1967C20.633 16.6409 20.6926 17.0369 20.812 17.3849C20.9346 17.733 21.1152 18.008 21.3539 18.2102C21.5958 18.4091 21.8941 18.5085 22.2488 18.5085ZM30.8148 23.0227C30.1287 23.0227 29.5404 22.9283 29.0499 22.7393C28.5627 22.5537 28.1749 22.3002 27.8865 21.9787C27.5982 21.6572 27.4109 21.2959 27.3248 20.8949L29.2836 20.6314C29.3432 20.7839 29.4377 20.9264 29.5669 21.0589C29.6962 21.1915 29.8669 21.2976 30.079 21.3771C30.2944 21.46 30.5563 21.5014 30.8645 21.5014C31.3252 21.5014 31.7047 21.3887 32.003 21.1634C32.3046 20.9413 32.4554 20.5684 32.4554 20.0447V18.6477H32.3659C32.2731 18.8598 32.1339 19.0604 31.9483 19.2493C31.7627 19.4382 31.5241 19.5923 31.2324 19.7116C30.9408 19.831 30.5927 19.8906 30.1884 19.8906C29.615 19.8906 29.093 19.758 28.6223 19.4929C28.155 19.2244 27.7821 18.8151 27.5037 18.2649C27.2286 17.7114 27.0911 17.0121 27.0911 16.1669C27.0911 15.3018 27.2319 14.5793 27.5137 13.9993C27.7954 13.4193 28.1699 12.9851 28.6373 12.6967C29.1079 12.4084 29.6233 12.2642 30.1834 12.2642C30.611 12.2642 30.9689 12.3371 31.2573 12.483C31.5456 12.6255 31.7776 12.8045 31.9533 13.0199C32.1323 13.232 32.2698 13.4408 32.3659 13.6463H32.4455V12.3636H34.5485V20.0746C34.5485 20.7242 34.3894 21.2678 34.0712 21.7053C33.753 22.1428 33.3122 22.4709 32.7488 22.6896C32.1886 22.9117 31.544 23.0227 30.8148 23.0227ZM30.8596 18.2997C31.2009 18.2997 31.4893 18.2152 31.7246 18.0462C31.9632 17.8738 32.1455 17.6286 32.2715 17.3104C32.4007 16.9889 32.4654 16.6044 32.4654 16.157C32.4654 15.7095 32.4024 15.3217 32.2765 14.9936C32.1505 14.6622 31.9682 14.4053 31.7296 14.223C31.4909 14.0407 31.2009 13.9496 30.8596 13.9496C30.5115 13.9496 30.2182 14.044 29.9796 14.233C29.7409 14.4186 29.5603 14.6771 29.4377 15.0085C29.315 15.34 29.2537 15.7228 29.2537 16.157C29.2537 16.5978 29.315 16.9789 29.4377 17.3004C29.5636 17.6186 29.7443 17.8655 29.9796 18.0412C30.2182 18.2135 30.5115 18.2997 30.8596 18.2997ZM38.2921 9.81818L40.3453 13.2884H40.4249L42.4881 9.81818H44.9192L41.812 14.9091L44.9888 20H42.513L40.4249 16.5249H40.3453L38.2573 20H35.7914L38.9782 14.9091L35.851 9.81818H38.2921Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg width="55" height="30" viewBox="0 0 55 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="55" height="30" rx="15" fill="#E34A4A"/>
<path d="M10.8849 20V9.81818H13.0376V18.2251H17.4027V20H10.8849ZM22.2388 20.1491C21.4666 20.1491 20.7987 19.9851 20.2353 19.657C19.6751 19.3255 19.2426 18.8648 18.9377 18.2749C18.6328 17.6816 18.4803 16.9938 18.4803 16.2116C18.4803 15.4228 18.6328 14.7334 18.9377 14.1435C19.2426 13.5502 19.6751 13.0895 20.2353 12.7614C20.7987 12.4299 21.4666 12.2642 22.2388 12.2642C23.0111 12.2642 23.6773 12.4299 24.2374 12.7614C24.8008 13.0895 25.235 13.5502 25.54 14.1435C25.8449 14.7334 25.9973 15.4228 25.9973 16.2116C25.9973 16.9938 25.8449 17.6816 25.54 18.2749C25.235 18.8648 24.8008 19.3255 24.2374 19.657C23.6773 19.9851 23.0111 20.1491 22.2388 20.1491ZM22.2488 18.5085C22.6001 18.5085 22.8934 18.4091 23.1287 18.2102C23.3641 18.008 23.5414 17.733 23.6607 17.3849C23.7833 17.0369 23.8446 16.6409 23.8446 16.1967C23.8446 15.7526 23.7833 15.3565 23.6607 15.0085C23.5414 14.6605 23.3641 14.3854 23.1287 14.1832C22.8934 13.9811 22.6001 13.88 22.2488 13.88C21.8941 13.88 21.5958 13.9811 21.3539 14.1832C21.1152 14.3854 20.9346 14.6605 20.812 15.0085C20.6926 15.3565 20.633 15.7526 20.633 16.1967C20.633 16.6409 20.6926 17.0369 20.812 17.3849C20.9346 17.733 21.1152 18.008 21.3539 18.2102C21.5958 18.4091 21.8941 18.5085 22.2488 18.5085ZM30.8148 23.0227C30.1287 23.0227 29.5404 22.9283 29.0499 22.7393C28.5627 22.5537 28.1749 22.3002 27.8865 21.9787C27.5982 21.6572 27.4109 21.2959 27.3248 20.8949L29.2836 20.6314C29.3432 20.7839 29.4377 20.9264 29.5669 21.0589C29.6962 21.1915 29.8669 21.2976 30.079 21.3771C30.2944 21.46 30.5563 21.5014 30.8645 21.5014C31.3252 21.5014 31.7047 21.3887 32.003 21.1634C32.3046 20.9413 32.4554 20.5684 32.4554 20.0447V18.6477H32.3659C32.2731 18.8598 32.1339 19.0604 31.9483 19.2493C31.7627 19.4382 31.5241 19.5923 31.2324 19.7116C30.9408 19.831 30.5927 19.8906 30.1884 19.8906C29.615 19.8906 29.093 19.758 28.6223 19.4929C28.155 19.2244 27.7821 18.8151 27.5037 18.2649C27.2286 17.7114 27.0911 17.0121 27.0911 16.1669C27.0911 15.3018 27.2319 14.5793 27.5137 13.9993C27.7954 13.4193 28.1699 12.9851 28.6373 12.6967C29.1079 12.4084 29.6233 12.2642 30.1834 12.2642C30.611 12.2642 30.9689 12.3371 31.2573 12.483C31.5456 12.6255 31.7776 12.8045 31.9533 13.0199C32.1323 13.232 32.2698 13.4408 32.3659 13.6463H32.4455V12.3636H34.5485V20.0746C34.5485 20.7242 34.3894 21.2678 34.0712 21.7053C33.753 22.1428 33.3122 22.4709 32.7488 22.6896C32.1886 22.9117 31.544 23.0227 30.8148 23.0227ZM30.8596 18.2997C31.2009 18.2997 31.4893 18.2152 31.7246 18.0462C31.9632 17.8738 32.1455 17.6286 32.2715 17.3104C32.4007 16.9889 32.4654 16.6044 32.4654 16.157C32.4654 15.7095 32.4024 15.3217 32.2765 14.9936C32.1505 14.6622 31.9682 14.4053 31.7296 14.223C31.4909 14.0407 31.2009 13.9496 30.8596 13.9496C30.5115 13.9496 30.2182 14.044 29.9796 14.233C29.7409 14.4186 29.5603 14.6771 29.4377 15.0085C29.315 15.34 29.2537 15.7228 29.2537 16.157C29.2537 16.5978 29.315 16.9789 29.4377 17.3004C29.5636 17.6186 29.7443 17.8655 29.9796 18.0412C30.2182 18.2135 30.5115 18.2997 30.8596 18.2997ZM38.2921 9.81818L40.3453 13.2884H40.4249L42.4881 9.81818H44.9192L41.812 14.9091L44.9888 20H42.513L40.4249 16.5249H40.3453L38.2573 20H35.7914L38.9782 14.9091L35.851 9.81818H38.2921Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg width="55" height="30" viewBox="0 0 55 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="55" height="30" rx="15" fill="#6CB0A4"/>
<path d="M10.8849 20V9.81818H13.0376V18.2251H17.4027V20H10.8849ZM22.2388 20.1491C21.4666 20.1491 20.7987 19.9851 20.2353 19.657C19.6751 19.3255 19.2426 18.8648 18.9377 18.2749C18.6328 17.6816 18.4803 16.9938 18.4803 16.2116C18.4803 15.4228 18.6328 14.7334 18.9377 14.1435C19.2426 13.5502 19.6751 13.0895 20.2353 12.7614C20.7987 12.4299 21.4666 12.2642 22.2388 12.2642C23.0111 12.2642 23.6773 12.4299 24.2374 12.7614C24.8008 13.0895 25.235 13.5502 25.54 14.1435C25.8449 14.7334 25.9973 15.4228 25.9973 16.2116C25.9973 16.9938 25.8449 17.6816 25.54 18.2749C25.235 18.8648 24.8008 19.3255 24.2374 19.657C23.6773 19.9851 23.0111 20.1491 22.2388 20.1491ZM22.2488 18.5085C22.6001 18.5085 22.8934 18.4091 23.1287 18.2102C23.3641 18.008 23.5414 17.733 23.6607 17.3849C23.7833 17.0369 23.8446 16.6409 23.8446 16.1967C23.8446 15.7526 23.7833 15.3565 23.6607 15.0085C23.5414 14.6605 23.3641 14.3854 23.1287 14.1832C22.8934 13.9811 22.6001 13.88 22.2488 13.88C21.8941 13.88 21.5958 13.9811 21.3539 14.1832C21.1152 14.3854 20.9346 14.6605 20.812 15.0085C20.6926 15.3565 20.633 15.7526 20.633 16.1967C20.633 16.6409 20.6926 17.0369 20.812 17.3849C20.9346 17.733 21.1152 18.008 21.3539 18.2102C21.5958 18.4091 21.8941 18.5085 22.2488 18.5085ZM30.8148 23.0227C30.1287 23.0227 29.5404 22.9283 29.0499 22.7393C28.5627 22.5537 28.1749 22.3002 27.8865 21.9787C27.5982 21.6572 27.4109 21.2959 27.3248 20.8949L29.2836 20.6314C29.3432 20.7839 29.4377 20.9264 29.5669 21.0589C29.6962 21.1915 29.8669 21.2976 30.079 21.3771C30.2944 21.46 30.5563 21.5014 30.8645 21.5014C31.3252 21.5014 31.7047 21.3887 32.003 21.1634C32.3046 20.9413 32.4554 20.5684 32.4554 20.0447V18.6477H32.3659C32.2731 18.8598 32.1339 19.0604 31.9483 19.2493C31.7627 19.4382 31.5241 19.5923 31.2324 19.7116C30.9408 19.831 30.5927 19.8906 30.1884 19.8906C29.615 19.8906 29.093 19.758 28.6223 19.4929C28.155 19.2244 27.7821 18.8151 27.5037 18.2649C27.2286 17.7114 27.0911 17.0121 27.0911 16.1669C27.0911 15.3018 27.2319 14.5793 27.5137 13.9993C27.7954 13.4193 28.1699 12.9851 28.6373 12.6967C29.1079 12.4084 29.6233 12.2642 30.1834 12.2642C30.611 12.2642 30.9689 12.3371 31.2573 12.483C31.5456 12.6255 31.7776 12.8045 31.9533 13.0199C32.1323 13.232 32.2698 13.4408 32.3659 13.6463H32.4455V12.3636H34.5485V20.0746C34.5485 20.7242 34.3894 21.2678 34.0712 21.7053C33.753 22.1428 33.3122 22.4709 32.7488 22.6896C32.1886 22.9117 31.544 23.0227 30.8148 23.0227ZM30.8596 18.2997C31.2009 18.2997 31.4893 18.2152 31.7246 18.0462C31.9632 17.8738 32.1455 17.6286 32.2715 17.3104C32.4007 16.9889 32.4654 16.6044 32.4654 16.157C32.4654 15.7095 32.4024 15.3217 32.2765 14.9936C32.1505 14.6622 31.9682 14.4053 31.7296 14.223C31.4909 14.0407 31.2009 13.9496 30.8596 13.9496C30.5115 13.9496 30.2182 14.044 29.9796 14.233C29.7409 14.4186 29.5603 14.6771 29.4377 15.0085C29.315 15.34 29.2537 15.7228 29.2537 16.157C29.2537 16.5978 29.315 16.9789 29.4377 17.3004C29.5636 17.6186 29.7443 17.8655 29.9796 18.0412C30.2182 18.2135 30.5115 18.2997 30.8596 18.2997ZM35.677 9.81818H38.0882L40.41 14.2031H40.5094L42.8311 9.81818H45.2424L41.5286 16.4006V20H39.3908V16.4006L35.677 9.81818Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg width="55" height="30" viewBox="0 0 55 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="55" height="30" rx="15" fill="#E34A4A"/>
<path d="M10.8849 20V9.81818H13.0376V18.2251H17.4027V20H10.8849ZM22.2388 20.1491C21.4666 20.1491 20.7987 19.9851 20.2353 19.657C19.6751 19.3255 19.2426 18.8648 18.9377 18.2749C18.6328 17.6816 18.4803 16.9938 18.4803 16.2116C18.4803 15.4228 18.6328 14.7334 18.9377 14.1435C19.2426 13.5502 19.6751 13.0895 20.2353 12.7614C20.7987 12.4299 21.4666 12.2642 22.2388 12.2642C23.0111 12.2642 23.6773 12.4299 24.2374 12.7614C24.8008 13.0895 25.235 13.5502 25.54 14.1435C25.8449 14.7334 25.9973 15.4228 25.9973 16.2116C25.9973 16.9938 25.8449 17.6816 25.54 18.2749C25.235 18.8648 24.8008 19.3255 24.2374 19.657C23.6773 19.9851 23.0111 20.1491 22.2388 20.1491ZM22.2488 18.5085C22.6001 18.5085 22.8934 18.4091 23.1287 18.2102C23.3641 18.008 23.5414 17.733 23.6607 17.3849C23.7833 17.0369 23.8446 16.6409 23.8446 16.1967C23.8446 15.7526 23.7833 15.3565 23.6607 15.0085C23.5414 14.6605 23.3641 14.3854 23.1287 14.1832C22.8934 13.9811 22.6001 13.88 22.2488 13.88C21.8941 13.88 21.5958 13.9811 21.3539 14.1832C21.1152 14.3854 20.9346 14.6605 20.812 15.0085C20.6926 15.3565 20.633 15.7526 20.633 16.1967C20.633 16.6409 20.6926 17.0369 20.812 17.3849C20.9346 17.733 21.1152 18.008 21.3539 18.2102C21.5958 18.4091 21.8941 18.5085 22.2488 18.5085ZM30.8148 23.0227C30.1287 23.0227 29.5404 22.9283 29.0499 22.7393C28.5627 22.5537 28.1749 22.3002 27.8865 21.9787C27.5982 21.6572 27.4109 21.2959 27.3248 20.8949L29.2836 20.6314C29.3432 20.7839 29.4377 20.9264 29.5669 21.0589C29.6962 21.1915 29.8669 21.2976 30.079 21.3771C30.2944 21.46 30.5563 21.5014 30.8645 21.5014C31.3252 21.5014 31.7047 21.3887 32.003 21.1634C32.3046 20.9413 32.4554 20.5684 32.4554 20.0447V18.6477H32.3659C32.2731 18.8598 32.1339 19.0604 31.9483 19.2493C31.7627 19.4382 31.5241 19.5923 31.2324 19.7116C30.9408 19.831 30.5927 19.8906 30.1884 19.8906C29.615 19.8906 29.093 19.758 28.6223 19.4929C28.155 19.2244 27.7821 18.8151 27.5037 18.2649C27.2286 17.7114 27.0911 17.0121 27.0911 16.1669C27.0911 15.3018 27.2319 14.5793 27.5137 13.9993C27.7954 13.4193 28.1699 12.9851 28.6373 12.6967C29.1079 12.4084 29.6233 12.2642 30.1834 12.2642C30.611 12.2642 30.9689 12.3371 31.2573 12.483C31.5456 12.6255 31.7776 12.8045 31.9533 13.0199C32.1323 13.232 32.2698 13.4408 32.3659 13.6463H32.4455V12.3636H34.5485V20.0746C34.5485 20.7242 34.3894 21.2678 34.0712 21.7053C33.753 22.1428 33.3122 22.4709 32.7488 22.6896C32.1886 22.9117 31.544 23.0227 30.8148 23.0227ZM30.8596 18.2997C31.2009 18.2997 31.4893 18.2152 31.7246 18.0462C31.9632 17.8738 32.1455 17.6286 32.2715 17.3104C32.4007 16.9889 32.4654 16.6044 32.4654 16.157C32.4654 15.7095 32.4024 15.3217 32.2765 14.9936C32.1505 14.6622 31.9682 14.4053 31.7296 14.223C31.4909 14.0407 31.2009 13.9496 30.8596 13.9496C30.5115 13.9496 30.2182 14.044 29.9796 14.233C29.7409 14.4186 29.5603 14.6771 29.4377 15.0085C29.315 15.34 29.2537 15.7228 29.2537 16.157C29.2537 16.5978 29.315 16.9789 29.4377 17.3004C29.5636 17.6186 29.7443 17.8655 29.9796 18.0412C30.2182 18.2135 30.5115 18.2997 30.8596 18.2997ZM35.677 9.81818H38.0882L40.41 14.2031H40.5094L42.8311 9.81818H45.2424L41.5286 16.4006V20H39.3908V16.4006L35.677 9.81818Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

+9
View File
@@ -0,0 +1,9 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30 15C30 23.2843 23.2843 30 15 30C6.71573 30 0 23.2843 0 15C0 6.71573 6.71573 0 15 0C23.2843 0 30 6.71573 30 15Z" fill="#D6860F"/>
<mask id="mask0_4_143" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="5" y="5" width="20" height="19">
<rect x="5" y="5" width="20" height="19" fill="#D9D9D9"/>
</mask>
<g mask="url(#mask0_4_143)">
<path d="M20.8334 11.3333V9.75001H19.1667V8.16668H20.8334V6.58334H22.5V8.16668H24.1667V9.75001H22.5V11.3333H20.8334ZM7.50004 22.4167C7.04171 22.4167 6.64949 22.2618 6.32337 21.952C5.99671 21.6416 5.83337 21.2688 5.83337 20.8333V11.3333C5.83337 10.8979 5.99671 10.5253 6.32337 10.2155C6.64949 9.90518 7.04171 9.75001 7.50004 9.75001H10.125L11.6667 8.16668H16.6667V9.75001H12.3959L10.875 11.3333H7.50004V20.8333H20.8334V13.7083H22.5V20.8333C22.5 21.2688 22.337 21.6416 22.0109 21.952C21.6842 22.2618 21.2917 22.4167 20.8334 22.4167H7.50004ZM14.1667 19.6458C15.2084 19.6458 16.0939 19.2996 16.8234 18.6072C17.5523 17.9142 17.9167 17.0729 17.9167 16.0833C17.9167 15.0938 17.5523 14.2525 16.8234 13.5595C16.0939 12.8671 15.2084 12.5208 14.1667 12.5208C13.125 12.5208 12.2395 12.8671 11.51 13.5595C10.7812 14.2525 10.4167 15.0938 10.4167 16.0833C10.4167 17.0729 10.7812 17.9142 11.51 18.6072C12.2395 19.2996 13.125 19.6458 14.1667 19.6458ZM14.1667 18.0625C13.5834 18.0625 13.0903 17.8712 12.6875 17.4886C12.2848 17.1059 12.0834 16.6375 12.0834 16.0833C12.0834 15.5292 12.2848 15.0608 12.6875 14.6781C13.0903 14.2955 13.5834 14.1042 14.1667 14.1042C14.75 14.1042 15.2431 14.2955 15.6459 14.6781C16.0487 15.0608 16.25 15.5292 16.25 16.0833C16.25 16.6375 16.0487 17.1059 15.6459 17.4886C15.2431 17.8712 14.75 18.0625 14.1667 18.0625Z" fill="white"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

+6
View File
@@ -0,0 +1,6 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="15" cy="15" r="15" fill="#8D8D8D"/>
<path d="M6.61364 12.0888C6.19934 12.0888 5.8241 11.9822 5.48793 11.7692C5.15412 11.5537 4.88897 11.2377 4.69247 10.821C4.49834 10.402 4.40128 9.88826 4.40128 9.27983C4.40128 8.65483 4.50189 8.13518 4.70312 7.72088C4.90436 7.30421 5.17188 6.9929 5.50568 6.78693C5.84186 6.5786 6.20999 6.47443 6.61009 6.47443C6.91548 6.47443 7.16998 6.52652 7.37358 6.63068C7.57955 6.73248 7.74527 6.86032 7.87074 7.0142C7.99858 7.16572 8.09564 7.31487 8.16193 7.46165H8.2081V4.72727H9.71733V12H8.22585V11.1264H8.16193C8.09091 11.2779 7.99029 11.4283 7.86009 11.5774C7.73224 11.7242 7.56534 11.8461 7.35938 11.9432C7.15578 12.0402 6.9072 12.0888 6.61364 12.0888ZM7.09304 10.8849C7.33688 10.8849 7.54285 10.8187 7.71094 10.6861C7.88139 10.5511 8.0116 10.3629 8.10156 10.1214C8.19389 9.87997 8.24006 9.59706 8.24006 9.27273C8.24006 8.94839 8.19508 8.66667 8.10511 8.42756C8.01515 8.18845 7.88494 8.00379 7.71449 7.87358C7.54403 7.74337 7.33688 7.67827 7.09304 7.67827C6.84446 7.67827 6.63494 7.74574 6.46449 7.88068C6.29403 8.01562 6.16501 8.20265 6.07741 8.44176C5.98982 8.68087 5.94602 8.95786 5.94602 9.27273C5.94602 9.58996 5.98982 9.8705 6.07741 10.1143C6.16738 10.3558 6.2964 10.5452 6.46449 10.6825C6.63494 10.8175 6.84446 10.8849 7.09304 10.8849ZM11.8951 14.0455C11.7033 14.0455 11.5234 14.0301 11.3553 13.9993C11.1896 13.9709 11.0523 13.9342 10.9434 13.8892L11.2843 12.7599C11.4618 12.8144 11.6216 12.844 11.7637 12.8487C11.9081 12.8535 12.0324 12.8203 12.1365 12.7493C12.2431 12.6783 12.3295 12.5575 12.3958 12.3871L12.4846 12.1562L10.5279 6.54545H12.1188L13.248 10.5511H13.3049L14.4448 6.54545H16.0463L13.9263 12.5895C13.8245 12.883 13.686 13.1387 13.5108 13.3565C13.338 13.5767 13.119 13.746 12.8539 13.8643C12.5887 13.9851 12.2691 14.0455 11.8951 14.0455Z" fill="white"/>
<path d="M15.6136 25.0888C15.1993 25.0888 14.8241 24.9822 14.4879 24.7692C14.1541 24.5537 13.889 24.2377 13.6925 23.821C13.4983 23.402 13.4013 22.8883 13.4013 22.2798C13.4013 21.6548 13.5019 21.1352 13.7031 20.7209C13.9044 20.3042 14.1719 19.9929 14.5057 19.7869C14.8419 19.5786 15.21 19.4744 15.6101 19.4744C15.9155 19.4744 16.17 19.5265 16.3736 19.6307C16.5795 19.7325 16.7453 19.8603 16.8707 20.0142C16.9986 20.1657 17.0956 20.3149 17.1619 20.4616H17.2081V17.7273H18.7173V25H17.2259V24.1264H17.1619C17.0909 24.2779 16.9903 24.4283 16.8601 24.5774C16.7322 24.7242 16.5653 24.8461 16.3594 24.9432C16.1558 25.0402 15.9072 25.0888 15.6136 25.0888ZM16.093 23.8849C16.3369 23.8849 16.5429 23.8187 16.7109 23.6861C16.8814 23.5511 17.0116 23.3629 17.1016 23.1214C17.1939 22.88 17.2401 22.5971 17.2401 22.2727C17.2401 21.9484 17.1951 21.6667 17.1051 21.4276C17.0152 21.1884 16.8849 21.0038 16.7145 20.8736C16.544 20.7434 16.3369 20.6783 16.093 20.6783C15.8445 20.6783 15.6349 20.7457 15.4645 20.8807C15.294 21.0156 15.165 21.2027 15.0774 21.4418C14.9898 21.6809 14.946 21.9579 14.946 22.2727C14.946 22.59 14.9898 22.8705 15.0774 23.1143C15.1674 23.3558 15.2964 23.5452 15.4645 23.6825C15.6349 23.8175 15.8445 23.8849 16.093 23.8849ZM21.2253 19.5455L22.2267 21.4524L23.253 19.5455H24.8049L23.2246 22.2727L24.8475 25H23.3027L22.2267 23.1143L21.1685 25H19.606L21.2253 22.2727L19.6628 19.5455H21.2253Z" fill="white"/>
<line x1="6.81281" y1="22.7756" x2="21.9396" y2="7.02154" stroke="white" stroke-width="1.5" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

+6
View File
@@ -0,0 +1,6 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="15" cy="15" r="15" fill="#E34A4A"/>
<path d="M6.61364 12.0888C6.19934 12.0888 5.8241 11.9822 5.48793 11.7692C5.15412 11.5537 4.88897 11.2377 4.69247 10.821C4.49834 10.402 4.40128 9.88826 4.40128 9.27983C4.40128 8.65483 4.50189 8.13518 4.70312 7.72088C4.90436 7.30421 5.17188 6.9929 5.50568 6.78693C5.84186 6.5786 6.20999 6.47443 6.61009 6.47443C6.91548 6.47443 7.16998 6.52652 7.37358 6.63068C7.57955 6.73248 7.74527 6.86032 7.87074 7.0142C7.99858 7.16572 8.09564 7.31487 8.16193 7.46165H8.2081V4.72727H9.71733V12H8.22585V11.1264H8.16193C8.09091 11.2779 7.99029 11.4283 7.86009 11.5774C7.73224 11.7242 7.56534 11.8461 7.35938 11.9432C7.15578 12.0402 6.9072 12.0888 6.61364 12.0888ZM7.09304 10.8849C7.33688 10.8849 7.54285 10.8187 7.71094 10.6861C7.88139 10.5511 8.0116 10.3629 8.10156 10.1214C8.19389 9.87997 8.24006 9.59706 8.24006 9.27273C8.24006 8.94839 8.19508 8.66667 8.10511 8.42756C8.01515 8.18845 7.88494 8.00379 7.71449 7.87358C7.54403 7.74337 7.33688 7.67827 7.09304 7.67827C6.84446 7.67827 6.63494 7.74574 6.46449 7.88068C6.29403 8.01562 6.16501 8.20265 6.07741 8.44176C5.98982 8.68087 5.94602 8.95786 5.94602 9.27273C5.94602 9.58996 5.98982 9.8705 6.07741 10.1143C6.16738 10.3558 6.2964 10.5452 6.46449 10.6825C6.63494 10.8175 6.84446 10.8849 7.09304 10.8849ZM11.8951 14.0455C11.7033 14.0455 11.5234 14.0301 11.3553 13.9993C11.1896 13.9709 11.0523 13.9342 10.9434 13.8892L11.2843 12.7599C11.4618 12.8144 11.6216 12.844 11.7637 12.8487C11.9081 12.8535 12.0324 12.8203 12.1365 12.7493C12.2431 12.6783 12.3295 12.5575 12.3958 12.3871L12.4846 12.1562L10.5279 6.54545H12.1188L13.248 10.5511H13.3049L14.4448 6.54545H16.0463L13.9263 12.5895C13.8245 12.883 13.686 13.1387 13.5108 13.3565C13.338 13.5767 13.119 13.746 12.8539 13.8643C12.5887 13.9851 12.2691 14.0455 11.8951 14.0455Z" fill="white"/>
<path d="M15.6136 25.0888C15.1993 25.0888 14.8241 24.9822 14.4879 24.7692C14.1541 24.5537 13.889 24.2377 13.6925 23.821C13.4983 23.402 13.4013 22.8883 13.4013 22.2798C13.4013 21.6548 13.5019 21.1352 13.7031 20.7209C13.9044 20.3042 14.1719 19.9929 14.5057 19.7869C14.8419 19.5786 15.21 19.4744 15.6101 19.4744C15.9155 19.4744 16.17 19.5265 16.3736 19.6307C16.5795 19.7325 16.7453 19.8603 16.8707 20.0142C16.9986 20.1657 17.0956 20.3149 17.1619 20.4616H17.2081V17.7273H18.7173V25H17.2259V24.1264H17.1619C17.0909 24.2779 16.9903 24.4283 16.8601 24.5774C16.7322 24.7242 16.5653 24.8461 16.3594 24.9432C16.1558 25.0402 15.9072 25.0888 15.6136 25.0888ZM16.093 23.8849C16.3369 23.8849 16.5429 23.8187 16.7109 23.6861C16.8814 23.5511 17.0116 23.3629 17.1016 23.1214C17.1939 22.88 17.2401 22.5971 17.2401 22.2727C17.2401 21.9484 17.1951 21.6667 17.1051 21.4276C17.0152 21.1884 16.8849 21.0038 16.7145 20.8736C16.544 20.7434 16.3369 20.6783 16.093 20.6783C15.8445 20.6783 15.6349 20.7457 15.4645 20.8807C15.294 21.0156 15.165 21.2027 15.0774 21.4418C14.9898 21.6809 14.946 21.9579 14.946 22.2727C14.946 22.59 14.9898 22.8705 15.0774 23.1143C15.1674 23.3558 15.2964 23.5452 15.4645 23.6825C15.6349 23.8175 15.8445 23.8849 16.093 23.8849ZM21.2253 19.5455L22.2267 21.4524L23.253 19.5455H24.8049L23.2246 22.2727L24.8475 25H23.3027L22.2267 23.1143L21.1685 25H19.606L21.2253 22.2727L19.6628 19.5455H21.2253Z" fill="white"/>
<line x1="6.81281" y1="22.7756" x2="21.9396" y2="7.02154" stroke="white" stroke-width="1.5" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="15" cy="15" r="15" fill="#4597B1"/>
<path d="M15.0199 20.2131C14.8021 21.5199 14.3073 22.5213 13.5355 23.2173C12.7637 23.9134 11.7576 24.2614 10.517 24.2614C10.2424 24.2614 9.98911 24.2495 9.7571 24.2259C9.52036 24.2022 9.28835 24.1619 9.06108 24.1051L9.60085 21.7685C9.72396 21.7969 9.86127 21.8229 10.0128 21.8466C10.1643 21.8703 10.3442 21.8821 10.5526 21.8821C10.9976 21.8821 11.3456 21.759 11.5966 21.5128C11.8523 21.2713 12.0204 20.8949 12.1009 20.3835L13.9972 8.94886C14.2197 7.6089 14.7334 6.58144 15.5384 5.86648C16.3433 5.15151 17.392 4.79403 18.6847 4.79403C18.9356 4.79403 19.1889 4.81297 19.4446 4.85085C19.7003 4.884 19.9702 4.93845 20.2543 5.0142L19.6364 7.27983C19.4991 7.25142 19.3168 7.23011 19.0895 7.21591C18.867 7.2017 18.642 7.1946 18.4148 7.1946C17.9886 7.1946 17.6548 7.30824 17.4134 7.53551C17.1766 7.76278 17.018 8.1179 16.9375 8.60085L15.0199 20.2131Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1010 B

@@ -0,0 +1,4 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="15" cy="15" r="15" fill="#E34A4A"/>
<path d="M15.0199 20.2131C14.8021 21.5199 14.3073 22.5213 13.5355 23.2173C12.7637 23.9134 11.7576 24.2614 10.517 24.2614C10.2424 24.2614 9.98911 24.2495 9.7571 24.2259C9.52036 24.2022 9.28835 24.1619 9.06108 24.1051L9.60085 21.7685C9.72396 21.7969 9.86127 21.8229 10.0128 21.8466C10.1643 21.8703 10.3442 21.8821 10.5526 21.8821C10.9976 21.8821 11.3456 21.759 11.5966 21.5128C11.8523 21.2713 12.0204 20.8949 12.1009 20.3835L13.9972 8.94886C14.2197 7.6089 14.7334 6.58144 15.5384 5.86648C16.3433 5.15151 17.392 4.79403 18.6847 4.79403C18.9356 4.79403 19.1889 4.81297 19.4446 4.85085C19.7003 4.884 19.9702 4.93845 20.2543 5.0142L19.6364 7.27983C19.4991 7.25142 19.3168 7.23011 19.0895 7.21591C18.867 7.2017 18.642 7.1946 18.4148 7.1946C17.9886 7.1946 17.6548 7.30824 17.4134 7.53551C17.1766 7.76278 17.018 8.1179 16.9375 8.60085L15.0199 20.2131Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1010 B

+4 -4
View File
@@ -60,7 +60,7 @@ export default {
data () {
return {
isTopBar: false,
minimized: false,
minimized: true,
mobileWidth: 767,
}
},
@@ -136,7 +136,7 @@ export default {
</style>
<style lang='scss'>
.layout.gutter--xl {
padding: 0.75rem;
}
// .layout.gutter--xl {
// padding: 0.5rem;
// }
</style>
+1 -1
View File
@@ -29,7 +29,7 @@ export default {
},
updateSidebarState () {
if (this.checkIsDesktop()) {
this.$emit('update:minimized', false)
this.$emit('update:minimized', true)
} else {
this.$emit('update:minimized', true)
}
@@ -44,15 +44,6 @@
contact@bioproweb.com
</a>
</span>
<!-- <va-button
href="https://github.com/epicmaxco/vuestic-admin"
color="#000000"
class="app-navbar__button"
icon="fa fa-github"
target="_blank"
>
{{$t('navbar.repository')}}
</va-button> -->
</div>
<app-navbar-actions
class="app-navbar__actions md5 lg4"
@@ -1,13 +1,15 @@
<template>
<div class="app-navbar-actions">
<!-- <color-dropdown class="app-navbar-actions__item"/> -->
<!-- <message-dropdown class="app-navbar-actions__item"/>
<notification-dropdown class="app-navbar-actions__item"/> -->
<!-- <settings-dropdown
<!-- <color-dropdown class="app-navbar-actions__item"/>
<message-dropdown class="app-navbar-actions__item"/>
<notification-dropdown class="app-navbar-actions__item"/>
<settings-dropdown
:is-top-bar.sync="isTopBarProxy"
class="app-navbar-actions__item"
/> -->
<!-- <language-dropdown class="app-navbar-actions__item"/> -->
/>
<language-dropdown class="app-navbar-actions__item"/> -->
<license-check-button :ref="'license_check_button_ref'" @updateLicense="updateLicense"/>
<license-update-modal :title="'Update'" :ref="'license_update_modal_ref'" @refresh="refresh"/>
<profile-dropdown class="app-navbar-actions__item app-navbar-actions__item--profile">
<span>{{userName}}</span>
</profile-dropdown>
@@ -16,11 +18,13 @@
<script>
// import LanguageDropdown from './dropdowns/LanguageDropdown'
import ProfileDropdown from './dropdowns/ProfileDropdown'
// import NotificationDropdown from './dropdowns/NotificationDropdown'
// import MessageDropdown from './dropdowns/MessageDropdown'
// import ColorDropdown from './dropdowns/ColorDropdown'
// import SettingsDropdown from './dropdowns/SettingsDropdown'
import ProfileDropdown from './dropdowns/ProfileDropdown'
import LicenseUpdateModal from './modals/LicenseUpdateModal'
import LicenseCheckButton from './buttons/LicenseCheckButton'
import { ColorThemeMixin } from '../../../../services/vuestic-ui'
export default {
@@ -33,6 +37,8 @@ export default {
// MessageDropdown,
// NotificationDropdown,
// LanguageDropdown,
LicenseCheckButton,
LicenseUpdateModal,
ProfileDropdown,
},
props: {
@@ -55,6 +61,16 @@ export default {
},
},
},
methods: {
updateLicense () {
this.$refs.license_update_modal_ref.show()
this.$refs.license_update_modal_ref.licenseUpdate()
},
refresh () {
this.$refs.license_check_button_ref.refresh()
this.$refs.license_update_modal_ref.hide()
},
},
}
</script>
@@ -0,0 +1,96 @@
<template>
<div v-if="!licenseCheck">
<va-button color="warning" class="mb-2" @click="licenseUpdateModalShow" small>
Update
</va-button>
</div>
</template>
<script>
import api from '@/data/api/index'
import { mapFields } from 'vuex-map-fields'
export default {
name: 'license-check-button',
components: {
},
computed: {
...mapFields('', [
'licenseCheck',
]),
},
data () {
return {
popoverShow: true,
licenseCheckObj: {
pass: true,
outdated: false,
fail: false,
},
authText: {
outdated: 'New version released. Update by pressing the button above.',
fail: 'System file is missing, contact us by following as: contact@bioproweb.com.',
},
toastOptions: {
theme: 'none',
position: 'bottom-center',
className: 'vuestic-toast',
iconPack: 'fontawesome',
duration: 2500,
},
}
},
methods: {
licenseUpdateModalShow () {
this.$emit('updateLicense')
},
showNotify (licenseCheckResponse) {
this.$toast(this.authText[licenseCheckResponse], {
closeButtonClassName: 'my-button-class',
containerClassName: 'my-container-class',
toastClassName: 'my-custom-toast-class',
timeout: false,
icon: 'fa fa-exclamation',
})
},
closeNotify () {
this.$toast.clear()
},
async refresh () {
this.closeNotify()
const licenseCheckResponse = await api.auth.licenseCheck()
this.licenseCheck = this.licenseCheckObj[licenseCheckResponse.data]
if (this.licenseCheck === false) {
this.showNotify(licenseCheckResponse.data)
}
},
},
async mounted () {
// await this.refresh()
},
destroyed () {
},
}
</script>
<style>
.Vue-Toastification__toast--default.my-custom-toast-class {
background-color: rgba(255, 214, 82, 1);
color: black;
}
.Vue-Toastification__container.top-right {
top: 3rem !important;
}
.my-button-class {
opacity: 1 !important;
color: black !important;
}
.custom-toast {
background-color: rgba(255, 214, 82, 1) !important;
transform: translateX(50px) translateY(-75px) !important;
color: black !important;
}
</style>
@@ -0,0 +1,74 @@
<template>
<va-modal
class="flex sm12 xl12 md12 xs12"
v-model="showModal"
:title="title"
noOutsideDismiss
hideDefaultActions
>
<div v-if="loading" class="row flex sm12 xl12 md12 xs12">
<div class="flex-center spinner-box mt-4 mb-5">
<fulfilling-bouncing-circle-spinner
:animation-duration="3000"
:color="'#6c7fee'"
:size="60"
>
</fulfilling-bouncing-circle-spinner>
</div>
</div>
<div v-else class="row flex sm12 xl12 md12 xs12">
{{ modalMessage }}
<div class="row flex-center sm12 xl12 md12 xs12 mt-2">
<va-button small @click="hide">close</va-button>
</div>
</div>
</va-modal>
</template>
<script>
import api from '@/data/api/index'
import { FulfillingBouncingCircleSpinner } from 'epic-spinners'
export default {
name: 'license-check-modal',
components: {
FulfillingBouncingCircleSpinner,
},
props: {
title: {
type: String,
default: '',
},
},
data () {
return {
showModal: false,
hideDefaultActions: false,
loading: true,
modalMessage: '',
}
},
methods: {
show () {
this.showModal = true
},
hide () {
this.showModal = false
},
async licenseUpdate () {
this.hideDefaultActions = true
this.loading = true
const updateResponse = await api.auth.licenseUpdate()
console.log('updateResponse', updateResponse)
setTimeout(() => {
if (updateResponse.status === 200) {
this.loading = false
this.$emit('refresh')
} else if (updateResponse.status === 202 || updateResponse.status === 203) {
this.loading = false
this.modalMessage = 'An unknown error occurred while updating, please contact us by following as: contact@bioproweb.com'
}
}, 5000)
},
},
}
</script>
@@ -40,6 +40,13 @@ export const navigationRoutes = {
// },
// ],
},
// {
// name: 'task-content-g-m',
// displayName: 'Gimer',
// meta: {
// iconClass: 'vuestic-iconset vuestic-iconset-statistics',
// },
// },
{
name: 'file',
displayName: 'File',
@@ -54,6 +61,14 @@ export const navigationRoutes = {
iconClass: 'vuestic-iconset vuestic-iconset-settings',
},
},
{
name: 'project',
displayName: 'Scheduler',
meta: {
iconClass: 'vuestic-iconset vuestic-iconset-tables',
// iconClass: 'vuestic-iconset vuestic-iconset-browse-gallery',
},
},
// {
// name: 'forms',
// displayName: 'menu.forms',
@@ -11,12 +11,26 @@
:to="to"
:target="target"
>
<va-icon
v-if="icon"
class="app-sidebar-link__item-icon"
:style="computedIconStyles"
:name="icon"
/>
<template v-if="title == 'Gimer'">
<img
v-if="this.isHovered || this.isActive"
class="app-sidebar-link__item-icon"
src="@/assets/img/gimer_white.png"
>
<img
v-else
class="app-sidebar-link__item-icon"
src="@/assets/img/gimer_gray.png"
>
</template>
<template v-else>
<va-icon
v-if="icon"
class="app-sidebar-link__item-icon"
:style="computedIconStyles"
:name="icon"
/>
</template>
<div class="app-sidebar-link__item-title" v-if="title">
<slot>
{{title}}
@@ -140,6 +154,21 @@ export default {
color: 'white',
}
},
computedGimerIcon () {
if (this.contextConfig.invertedColor) {
if (this.isHovered || this.isActive) {
return 'gimer_white.png'
}
return 'gimer_gray.png'
}
if (this.isHovered || this.isActive) {
return 'gimer_white.png'
}
return 'gimer_white.png'
},
},
methods: {
updateHoverState (isHovered) {
@@ -1,7 +1,7 @@
<template>
<div>
<div class="row row-equal">
<div class="flex md12 xl3 xs12 sm12 area-style">
<div class="flex md12 xl3 xs12 sm12">
<div class="row">
<div class="flex sm12 xl12 md12 xs12">
<va-accordion>
@@ -9,8 +9,11 @@
<span slot="header">Control Panel</span>
<div slot="body">
<div>
<top-control-panel :ref="'top_control_panel'" @refreshChart="setOption" @changeAxis="changeAxis"/>
<top-control-panel :ref="'top_control_panel'" @refreshChart="setOption" @changeAxis="changeAxis" @changeOverviewDataZoom="changeOverviewDataZoom" @changeFunctional="changeFunctional" @setBrushBoundary="setBrushBoundary"/>
</div>
<!-- <div>
{{ this.specificIntegral }}
</div> -->
</div>
</va-collapse>
</va-accordion>
@@ -18,11 +21,12 @@
</div>
</div>
<div :class="chartAreaClass" class="area-style">
<div :class="chartAreaClass">
<div class="row" >
<div class="flex sm12 xl12 md12 xs12">
<!-- <chart :style="'width: auto; height: 88vhvh;'" :option="options"></chart> -->
<elite-replay-overview-chart v-show="showOverviewChart" :ref="'chart_overview'" class="mb-1" :cardheight="'7vh'" :data="chartOverviewData" @dataZoomEvent="dataZoomEvent($event)"/>
<elite-replay-chart :ref="'chart_detail'" @dblclick.native="distribute()" :cardheight="'88vh'" :data="chartDetailData" />
<elite-replay-chart :ref="'chart_detail'" :cardheight="'90vh'" :chartheight="detailchartheight" :data="chartDetailData" @updateIntegralBoundary="updateIntegralBoundary" />
<change-channel-value-min-max :ref="'set_min_max'"/>
</div>
</div>
@@ -41,7 +45,6 @@ import api from '@/data/api/index'
import { download } from '@/data/download/Download'
import types from '@/store/modules/analysis/replay/types'
import { mapFields } from 'vuex-map-fields'
import { newChartMode } from '@/factories/chart/chartFactory'
export default {
name: 'elite-data-replay',
@@ -52,16 +55,31 @@ export default {
ChangeChannelValueMinMax,
},
computed: {
displayType () {
return {
x: this.axisXLabelScale.description === 'Log' ? 'log' : 'value',
y: this.axisYLabelScale.description === 'Log' ? 'log' : 'value',
}
},
...mapFields('replay', [
'metaList',
'chartData',
'chartOverviewData',
'chartDetailData',
'currentScale',
'startTime',
'endTime',
'windowLength',
'axisXDataType',
'axisYDataType',
'axisXLabelScale',
'axisYLabelScale',
'absToggleStatus',
'startTimeCurrent',
'endTimeCurrent',
'sampleMethod',
'controlPanel',
]),
},
props: {
@@ -87,13 +105,36 @@ export default {
data () {
return {
showOverviewChart: false,
detailchartheight: '88vh',
dataInfo: {},
maxTime: 0,
startTime: 0,
endTime: 0,
zoomTime: 0,
initDone: false,
chartAreaClass: ['flex', 'xs12', 'sm12', 'md12', 'xl9', 'pa-0'],
xfunctional: 'Linear',
yfunctional: 'Linear',
options: {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
},
yAxis: {
type: 'value',
},
series: [
{
data: [120, 200, 150, 80, 70, 110, 130],
type: 'bar',
showBackground: true,
backgroundStyle: {
color: 'rgba(180, 180, 180, 0.2)',
},
},
],
brush: {
},
},
specificIntegral: 0,
}
},
mqtt: {
@@ -106,10 +147,10 @@ export default {
this.$refs.chart_detail.turnOffAxisEventHandler(eventName, handler, attr)
},
showMinMaxPanel (params) {
this.$refs.set_min_max.showPanel(params)
return this.$refs.set_min_max.showPanel(params)
},
setOption (options) {
this.$refs.chart_detail.mergeOptions(options)
this.$refs.chart_detail.setOptions(options)
},
showChartLoading: function (chart) {
const loadStyle = {
@@ -155,12 +196,12 @@ export default {
})
let _gridNumber = 0
const register = this.metaList.map(meta => {
const setting = newChartMode(meta.parameter_set.MODE)
const setting = this.GLOBAL.getDefaultChartTypeByMode(meta.parameter_set.MODE, meta.device.library_name)
const xType = setting[0] // Elite or Time
const yType = setting[2] // Elite or Time
const xValue = setting[1] // 1: I, 2: V, 3: R
const yValue = setting[3] // 1: I, 2: V, 3: R
console.log(setting)
// console.log(setting)
this.registerChart({
chartAllData: this.chartData,
chartID: this.chartDetailData.chartID,
@@ -183,6 +224,8 @@ export default {
channelY: ch,
})
})
// disable overviewData legend
this.chartOverviewData.legend.show = false
this.chartDetailData.xAxis[_gridNumber].axisLabel.show = true
if (this.maxTime < parseInt(meta.time_duration)) {
this.maxTime = parseInt(meta.time_duration)
@@ -219,21 +262,73 @@ export default {
e.batch.forEach(dataZoom => {
const id = parseInt(dataZoom.dataZoomId.substr(dataZoom.dataZoomId.length - 3, dataZoom.dataZoomId.length - 1))
if (id === 1) {
this.startTime = this.maxTime * dataZoom.start / 100
this.endTime = this.maxTime * dataZoom.end / 100
// console.log(this.startTime, this.endTime)
this.startTime = parseInt(this.maxTime * dataZoom.start / 100)
this.endTime = parseInt(this.maxTime * dataZoom.end / 100)
this.windowLength = this.endTime - this.startTime
this.chartOverviewData.dataZoom[0].start = dataZoom.start
this.chartOverviewData.dataZoom[0].end = dataZoom.end
}
})
} else {
const id = parseInt(e.dataZoomId.substr(e.dataZoomId.length - 3, e.dataZoomId.length - 1))
if (id === 0) {
this.startTime = this.maxTime * e.start / 100
this.endTime = this.maxTime * e.end / 100
// console.log(this.startTime, this.endTime)
this.startTime = parseInt(this.maxTime * e.start / 100)
this.endTime = parseInt(this.maxTime * e.end / 100)
this.windowLength = this.endTime - this.startTime
this.chartOverviewData.dataZoom[0].start = e.start
this.chartOverviewData.dataZoom[0].end = e.end
}
}
this.zoomTime = 0
},
changeOverviewDataZoom () {
this.chartOverviewData.dataZoom[0].start = this.startTime * 100 / this.maxTime
this.chartOverviewData.dataZoom[0].end = this.endTime * 100 / this.maxTime
this.$refs.chart_overview.setOptions(this.chartOverviewData)
},
async computeResampleScale (meta, duration) {
const sampleRate = meta.parameter_set.SAMPLE_RATE / 10
const dataPointNum = (parseInt(duration) / 1e6) * sampleRate // us -> s: /1e6
let scale
if (dataPointNum > 2e6) { // 2000 (points) * 1000 (resample) = 2e6
scale = '1000'
} else if (dataPointNum > 2e5) { // 2000 (points) * 100 (resample) = 2e5
scale = '100'
} else if (dataPointNum > 2e4) { // 2000 (points) * 10 (resample) = 2e4
scale = '10'
} else {
scale = '1'
}
let dataExist = false
while (dataExist === false) {
if (scale === '1') {
break
} else {
let status
for (const ch in Object.keys(meta.mini_data)) {
let earlyStopFlag = false
const dataIDArray = meta.mini_data[ch][scale]
for (let i = 0; i < dataIDArray.length; i++) {
const dataID = dataIDArray[i]
const result = await download.getMiniExistOrNotByID(dataID, ch)
status = result.data
if (status === false) {
earlyStopFlag = true
scale = String(parseInt(scale) / 10)
break
}
}
if (earlyStopFlag === true) {
break
}
}
if (status === true) {
dataExist = true // break
}
}
}
return scale
},
drawOverviewData: async function () {
this.showChartLoading('overview')
for (const meta in this.dataInfo) {
@@ -243,24 +338,10 @@ export default {
metaInfo = _meta
}
})
let scale = '100'
let scale = '1'
if (this.axisXDataType.description === 'Time') {
const sampleRate = metaInfo.parameter_set.SAMPLE_RATE / 10
scale = (((metaInfo.time_duration / 100000) * sampleRate) / 4000) * 0.1
if (scale > 500) {
scale = '1000'
} else if (scale > 200) {
scale = '100'
} else if (scale > 30) {
scale = '10'
} else {
scale = '1'
}
} else {
scale = '1' // [TODO] select by user
scale = await this.computeResampleScale(metaInfo, metaInfo.time_duration)
}
console.log('overview scale:', scale)
const sampleMethod = 'mean'
// download data
const getAllData = async function (_this) {
for (const ch in _this.dataInfo[meta]) {
@@ -272,7 +353,7 @@ export default {
metaID: meta,
channel: ch,
scale: scale,
data: await _this.getData(parseInt(scale), sampleMethod, dataList[i].id, ch, metaInfo),
data: await _this.getData(parseInt(scale), _this.sampleMethod, dataList[i].id, ch, metaInfo),
})
}
}
@@ -282,6 +363,7 @@ export default {
// push downloaded data to chart series
let seriesIndex = 0
for (const ch in this.dataInfo[meta]) {
this.chartOverviewData.series[seriesIndex].data.length = 0
const dataList = this.dataInfo[meta][ch][scale]
for (let i = 0; i < dataList.length; i++) {
this.chartOverviewData.series[seriesIndex].data.push(...dataList[i].data)
@@ -292,6 +374,14 @@ export default {
this.hideChartLoading()
},
drawDetailData: async function () {
// brush setting write at here, due to mounted won't show the brush
this.chartDetailData.brush = {
toolbox: ['rect', 'clear'],
// toolbox: ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'],
xAxisIndex: 0,
// throttleType: 'debounce',
// throttleDelay: 5,
}
this.showChartLoading('detail')
const timeDur = this.endTimeCurrent - this.startTimeCurrent
let _gridNumber = 0
@@ -302,95 +392,202 @@ export default {
metaInfo = _meta
}
})
let scale = '100'
if (this.axisXDataType.description === 'Time') {
const sampleRate = metaInfo.parameter_set.SAMPLE_RATE / 10
scale = (((timeDur / 100000) * sampleRate) / 4000) * 0.1
if (scale > 500) {
scale = '1000'
} else if (scale > 200) {
scale = '100'
} else if (scale > 30) {
scale = '10'
} else {
scale = '1'
}
} else {
scale = '1' // [TODO] select by user
let scale = '1'
if (this.controlPanel.x.type === 'Time') {
scale = await this.computeResampleScale(metaInfo, timeDur)
}
// elite的sample rate不像neulive這麼高,因此試試scale = 100 or 1000時不要再sampling一次了,不然有些形狀(e.g. peak)會不一樣
if (scale === '100' || scale === '1000') {
this.updateChartSamplingChart({ chartID: this.chartDetailData.chartID, seriesIndex: _gridNumber, method: null })
} else {
this.updateChartSamplingChart({ chartID: this.chartDetailData.chartID, seriesIndex: _gridNumber, method: 'lttb' })
}
if (metaInfo.device.library_name.includes('EIS') && metaInfo.parameter_set.MODE === 0) {
this.chartDetailData.series[this.chartDetailData.series.length - 1].showSymbol = true
this.chartDetailData.series[this.chartDetailData.series.length - 1].showAllSymbol = true
this.chartDetailData.series[this.chartDetailData.series.length - 1].symbolSize = 6
}
this.currentScale = scale
const sampleMethod = 'mean'
this.chartDetailData.series[_gridNumber].data.length = 0
let dataListX
const channelX = parseInt(this.axisXDataType.id)
if (this.axisXDataType.description !== 'Time') {
const channelX = parseInt(this.controlPanel.x.channel)
if (this.controlPanel.x.type !== 'Time') {
dataListX = this.dataInfo[meta][channelX][scale]
}
const channelY = parseInt(this.axisYDataType.id)
const channelY = parseInt(this.controlPanel.y.channel)
const dataListY = this.dataInfo[meta][channelY][scale]
const isThisModeHasCycle = this.GLOBAL.hasCycleMode(metaInfo.parameter_set.MODE, metaInfo.device.library_name)
let _startTime
let _endTime
if (isThisModeHasCycle === true) {
const cycleDataID = 3 // recorded cycle 所在的channel index
const dataCycleList = this.dataInfo[meta][cycleDataID][this.currentScale]
const cycleDataList = []
for (let i = 0; i < dataCycleList.length; i++) {
if (dataCycleList[i].data.length === 0) {
const data = await this.getData(parseInt(this.currentScale), this.sampleMethod, dataCycleList[i].id, cycleDataID, metaInfo)
cycleDataList.push({ data: data })
} else {
cycleDataList.push({ data: dataCycleList[i].data })
}
}
const cycleDict = this.getCycleDictRec()(cycleDataList)
_startTime = cycleDict[1][0] // [1]: 第一圈
_endTime = cycleDict[1][1] // [1]: 第一圈
} else {
_startTime = this.startTimeCurrent
_endTime = this.endTimeCurrent
}
let startIndex = 0
let endIndex = 0
// get the subfile index
for (let i = 0; i < dataListY.length; i++) {
if (this.startTimeCurrent >= parseInt(dataListY[i].start_time) && this.startTimeCurrent <= parseInt(dataListY[i].end_time)) {
if (_startTime >= parseInt(dataListY[i].start_time) && _startTime <= parseInt(dataListY[i].end_time)) {
startIndex = i
}
if (this.endTimeCurrent >= parseInt(dataListY[i].start_time) && this.endTimeCurrent <= parseInt(dataListY[i].end_time)) {
if (_endTime >= parseInt(dataListY[i].start_time) && _endTime <= parseInt(dataListY[i].end_time)) {
endIndex = i
}
}
// download and push into chart
// due to the (endIndex - startIndex) may more than 1, need to record variables outside the loop
var integralResult = 0
var curXData = 0
var curYData = 0
var prevXData = 0
var prevYData = 0
for (let i = startIndex; i <= endIndex; i++) {
let data
if (dataListY[i].data.length === 0) {
data = await this.getData(parseInt(scale), sampleMethod, dataListY[i].id, channelY, metaInfo)
this.intoDataRec({
index: i,
metaID: meta,
channel: channelY,
scale: scale,
data: data,
})
} else {
data = JSON.parse(JSON.stringify(this.dataInfo[meta][channelY][scale][i].data))
}
const data = await this.getData(parseInt(scale), this.sampleMethod, dataListY[i].id, channelY, metaInfo)
let dataX
if (this.axisXDataType.description !== 'Time') {
if (dataListX[i].data.length === 0) {
dataX = await this.getData(parseInt(scale), sampleMethod, dataListX[i].id, channelX, metaInfo)
this.intoDataRec({
index: i,
metaID: meta,
channel: channelX,
scale: scale,
data: dataX,
})
} else {
dataX = JSON.parse(JSON.stringify(this.dataInfo[meta][channelX][scale][i].data))
}
if (this.controlPanel.x.type !== 'Time') {
dataX = await this.getData(parseInt(scale), this.sampleMethod, dataListX[i].id, channelX, metaInfo)
}
var deltaX = 0
var diffResult = 0
var logZero = false
var lastXinThisTable
for (let j = 0, len = data.length; j < len; j++) {
// check which channel and push processed data (i.e. merge two channel data, now data is (time, value) format)
if (parseInt(data[j][0]) >= this.startTimeCurrent && parseInt(data[j][0]) <= this.endTimeCurrent) {
const processedData = JSON.parse(JSON.stringify(data[j]))
if (parseInt(data[j][0]) >= _startTime && parseInt(data[j][0]) <= _endTime) {
const processedData = data[j]
logZero = false
// cases without time
if (dataX !== undefined) {
processedData[0] = dataX[j][1]
// add time on the chart
// TODO: not sure the time is right or not?
processedData[2] = parseFloat(dataX[j][0])
}
// console.log(data)
this.chartDetailData.series[_gridNumber].data.push(processedData)
// below is the original version for the log
/* if (this.displayType.x === 'log' || this.absToggleStatus.x === true) {
processedData[0] = Math.abs(processedData[0])
}
if (this.displayType.y === 'log' || this.absToggleStatus.y === true) {
processedData[1] = Math.abs(processedData[1])
} */
if (this.xfunctional === 'Log') {
// avoid log10(0) cases
if (Math.abs(processedData[0]) === 0) logZero = true
processedData[0] = Math.log10(Math.abs(processedData[0]))
}
if (this.yfunctional === 'Log') {
if (Math.abs(processedData[1]) === 0) logZero = true
processedData[1] = Math.log10(Math.abs(processedData[1]))
} else if (this.yfunctional === 'Integral') {
if (j === 0) {
// TODO: need to change the series[deviceID]
// TODO: change the time index(dynamic changing)
curYData = parseFloat(processedData[1])
// integral only when I-T & C-A, so writen as [0] directly
prevYData = parseFloat(data[j][1])
// initial integral as 0
if (i === 0) processedData[1] = 0
else {
if (dataX !== undefined) {
// e.g. I-V: deltaX is V
deltaX = parseFloat(dataX[j][1]) - lastXinThisTable
} else {
// e.g. I-T: deltaX is T
deltaX = parseFloat(data[j][0]) - lastXinThisTable
}
integralResult += parseFloat((Math.abs(curYData) + Math.abs(prevYData)) * Math.abs(deltaX) / 2)
processedData[1] = integralResult
}
} else {
curYData = parseFloat(data[j][1])
if (dataX !== undefined) {
// e.g. I-V: deltaX is V
deltaX = parseFloat(dataX[j][1]) - parseFloat(dataX[j - 1][1])
lastXinThisTable = parseFloat(dataX[j][1])
} else {
// e.g. I-T: deltaX is T
deltaX = parseFloat(data[j][0]) - parseFloat(data[j - 1][0])
lastXinThisTable = parseFloat(data[j][0])
}
integralResult += parseFloat((Math.abs(curYData) + Math.abs(prevYData)) * Math.abs(deltaX) / 2)
// assign here is due to the fetch the modify value
prevYData = curYData
processedData[1] = integralResult
}
} else if (this.yfunctional === 'Differential') {
if (j === 0) {
// TODO: need to change the series[deviceID]
// TODO: change the time index(dynamic changing)
curXData = parseFloat(processedData[0])
curYData = parseFloat(processedData[1])
deltaX = parseFloat(dataX[j + 1][0]) - parseFloat(dataX[j][0])
if (i === 0) logZero = true
// due to the limitation of the getData table, the number of page may > 1
else {
diffResult = parseFloat((curYData - prevYData) / (curXData - prevXData))
processedData[0] = curXData
processedData[1] = diffResult
}
prevXData = parseFloat(processedData[0])
prevYData = parseFloat(processedData[1])
} else {
curXData = parseFloat(processedData[0])
curYData = parseFloat(processedData[1])
diffResult = parseFloat((curYData - prevYData) / (curXData - prevXData))
prevXData = curXData
prevYData = curYData
processedData[0] = curXData
processedData[1] = diffResult
}
}
// avoid pushing the infinity data into the chart
if (!logZero) this.chartDetailData.series[_gridNumber].data.push(processedData)
}
}
}
if (this.axisXDataType.description === 'Time') {
this.chartDetailData.xAxis[_gridNumber].min = this.startTimeCurrent
this.chartDetailData.xAxis[_gridNumber].max = this.endTimeCurrent
if (this.controlPanel.x.type === 'Time') {
this.chartDetailData.xAxis[_gridNumber].min = _startTime
this.chartDetailData.xAxis[_gridNumber].max = _endTime
} else {
this.chartDetailData.xAxis[_gridNumber].min = 'dataMin'
this.chartDetailData.xAxis[_gridNumber].max = 'dataMax'
}
_gridNumber += 1
}
console.log(this.chartDetailData)
if (this.controlPanel.x.type !== 'Time') {
this.showOverviewChart = false
this.detailchartheight = '88vh'
// this.$refs.chart_detail.updateChartHeight()
this.turnOnAxisEventHandler('click', 'xAxis', this.showMinMaxPanel, { axis: 'x' })
} else {
this.showOverviewChart = true
this.detailchartheight = '80vh'
this.turnOffAxisEventHandler('click', this.showMinMaxPanel, { axis: 'x' })
this.turnOnAxisEventHandler('click', 'yAxis', this.showMinMaxPanel, { axis: 'y' })
}
this.hideChartLoading()
},
checkDataZoom: function () {
@@ -400,80 +597,137 @@ export default {
this.startTimeCurrent = this.startTime
this.endTimeCurrent = this.endTime
this.drawDetailData()
this.$refs.top_control_panel.resetScale()
}
}
},
changeFunctional (axis, functional) {
if (axis === 'x') {
this.xfunctional = functional
} else {
this.yfunctional = functional
}
},
changeAxis (gridIndex) {
// if (this.initDone) {
// const libName = this.metaList[gridIndex].device.library_name
// let xType
// let xValue
// if (this.axisXDataType.description === 'Time') {
// xType = 'Time'
// } else {
// if (libName === 'EliteZM15' || libName.includes('Elite_EDC')) {
// xType = 'Elite'
// } else if (libName.includes('EIS')) {
// xType = 'EliteEIS'
// }
// xValue = this.axisXDataType.id + 1
// }
// this.updateRegisteredChart({
// chartAllData: this.chartData,
// chartID: this.chartDetailData.chartID,
// gridIndex: gridIndex,
// deviceNameX: xType,
// deviceIDX: this.metaList[gridIndex].name,
// channelX: xValue,
// deviceNameY: libName.includes('EIS') ? 'EliteEIS' : 'Elite',
// deviceIDY: '',
// channelY: this.axisYDataType.id + 1,
// })
// console.log({
// chartAllData: this.chartData,
// chartID: this.chartDetailData.chartID,
// gridIndex: gridIndex,
// deviceNameX: xType,
// deviceIDX: this.metaList[gridIndex].name,
// channelX: xValue,
// deviceNameY: libName.includes('EIS') ? 'EliteEIS' : 'Elite',
// deviceIDY: '',
// channelY: this.axisYDataType.id + 1,
// })
// }
// if (this.axisXDataType.description === 'Time') {
// this.drawOverviewData()
// }
// this.drawDetailData() // reDraw
// tang
if (this.initDone) {
let xType
let xValue // 1: I, 2: V, 3: R
if (this.axisXDataType.description === 'Time') {
xType = 'Time'
} else {
xType = 'Elite'
xValue = this.axisXDataType.id + 1
}
const libName = this.metaList[gridIndex].device.library_name
const xType = (this.controlPanel.x.type === 'Time') ? 'Time' : ((libName === 'EliteZM15' || libName.includes('Elite_EDC') ? 'Elite' : 'EliteEIS'))
const xChannel = (this.controlPanel.x.channel === -1) ? undefined : this.controlPanel.x.channel + 1
this.updateRegisteredChart({
chartAllData: this.chartData,
chartID: this.chartDetailData.chartID,
gridIndex: gridIndex,
deviceNameX: xType,
deviceIDX: this.metaList[gridIndex].name,
channelX: xValue,
deviceNameY: 'Elite',
channelX: xChannel,
deviceNameY: libName.includes('EIS') ? 'EliteEIS' : 'Elite',
deviceIDY: '',
channelY: this.axisYDataType.id + 1,
channelY: this.controlPanel.y.channel + 1,
})
}
this.drawDetailData() // reDraw
if (this.axisXDataType.description !== 'Time') {
this.showOverviewChart = false
this.turnOnAxisEventHandler('click', 'xAxis.axisLabel', this.showMinMaxPanel, { axis: 'x' })
} else {
this.showOverviewChart = true
this.turnOffAxisEventHandler('click', this.showMinMaxPanel, { axis: 'x' })
this.turnOnAxisEventHandler('click', 'yAxis.axisLabel', this.showMinMaxPanel, { axis: 'y' })
if (this.controlPanel.x.type === 'Time') {
this.drawOverviewData()
}
this.drawDetailData() // reDraw
},
distribute: function () {
// if (this.chartDetailData.grid.length === 1) {
// this.chartDetailData.xAxis[0].axisLabel.show = false
// this.updateGridListChart({
// chartAllData: this.chartData,
// chartID: this.chartDetailData.chartID,
// gridLength: this.chartDetailData.series.length,
// })
// this.chartDetailData.series.forEach((series, index) => {
// series.xAxisIndex = index
// series.yAxisIndex = index
// })
// this.chartDetailData.xAxis[this.chartDetailData.xAxis.length - 1].axisLabel.show = true
// } else {
// this.updateGridListChart({
// chartAllData: this.chartData,
// chartID: this.chartDetailData.chartID,
// gridLength: 1,
// })
// this.chartDetailData.series.forEach(series => {
// series.xAxisIndex = 0
// series.yAxisIndex = 0
// })
// this.chartDetailData.xAxis[0].axisLabel.show = true
// }
updateIntegralBoundary (boundary) {
var rawData = JSON.parse(JSON.stringify(this.chartDetailData.series[0].data))
var deltaX
var averageY
var area
var prevIndex
this.specificIntegral = 0
for (let index = 0, len = rawData.length; index < len; index++) {
prevIndex = index - 1
if (index === 0) {
if (rawData[len - 1][0] >= boundary.x_start && rawData[len - 1][0] <= boundary.x_end &&
rawData[index][0] >= boundary.x_start && rawData[index][0] <= boundary.x_end) {
prevIndex = len - 1
} else continue
}
if (rawData[prevIndex][0] >= boundary.x_start && rawData[prevIndex][0] <= boundary.x_end &&
rawData[index][0] >= boundary.x_start && rawData[index][0] <= boundary.x_end) {
deltaX = Math.abs(Number(rawData[index][0]) - Number(rawData[prevIndex][0]))
if (rawData[index][1] > boundary.y_end) rawData[index][1] = boundary.y_end
else if (rawData[index][1] < boundary.y_start) {
continue
}
averageY = (Number(rawData[index][1]) + Number(rawData[prevIndex][1])) / 2 - boundary.y_start
area = deltaX * averageY
if (!isNaN(area)) {
this.specificIntegral += area
}
}
}
// this.specificIntegral = (this.specificIntegral * 1e-15).toFixed(4) + 'W'
this.$refs.top_control_panel.$refs.specific_integral.getSpecificIntegral(this.specificIntegral, boundary)
},
...mapActions('replay', [types.chart.init, types.chart.register, types.chart.clear, types.chart.updateGridList, types.chart.updateDataZoom]),
setBrushBoundary (boundary) {
this.$refs.chart_detail.$refs.chart_ref.chart.dispatchAction({
type: 'brush',
areas: [
{
xAxisIndex: 0,
brushType: 'rect',
coordRange: [
[boundary.x_start, boundary.x_end],
[boundary.y_start, boundary.y_end],
],
},
],
})
},
...mapActions('replay', [types.chart.init, types.chart.register, types.chart.clear, types.chart.updateGridList, types.chart.updateDataZoom, types.chart.setAxisDisplay]),
...mapActions('replay', [types.meta.init]),
...mapActions('replay', [types.rec.init, types.rec.intoData, types.rec.initDisplaySetting, types.rec.updateDisplaySetting]),
...mapMutations('replay', [types.chart.updateRegistered]),
...mapMutations('replay', [types.chart.updateRegistered, types.chart.updateAxisSplitNumber, types.chart.updateChartSampling, types.chart.setOverviewDataZoomStartAndEnd]),
...mapMutations('replay', [types.meta.updateByIndex]),
...mapGetters('replay', [types.meta.getAll]),
...mapGetters('replay', [types.rec.getAll]),
},
// use watch because va-select with @change will have bug
watch: {
...mapGetters('replay', [types.rec.getAll, types.rec.getCycleDict]),
},
async mounted () {
this.showChartLoading()
@@ -482,16 +736,19 @@ export default {
this.metaList = this.getAllMeta()
await this.initRec({ api: api })
this.dataInfo = this.getAllRec()
console.log(this.metaList)
console.log(this.dataInfo)
// console.log(this.metaList)
// console.log(this.dataInfo)
await this.register()
this.setOverviewDataZoomStartAndEndChart()
this.$refs.top_control_panel.init() // will call changeAxis() here
this.$refs.set_min_max.init()
this.turnOnAxisEventHandler('click', 'yAxis.axisLabel', this.showMinMaxPanel, { axis: 'y' })
this.drawOverviewData()
this.turnOnAxisEventHandler('click', 'yAxis', this.showMinMaxPanel, { axis: 'y' })
this.updateAxisSplitNumberChart({ chartID: this.chartDetailData.chartID, axis: 'x' })
this.updateAxisSplitNumberChart({ chartID: this.chartDetailData.chartID, axis: 'y' })
this.dataZoomTimer = setInterval(this.checkDataZoom, 1000)
this.initDone = true
console.log(this.chartDetailData)
// console.log(this.chartOverviewData)
// console.log(this.chartDetailData)
},
beforeDestroy () {
this.$refs.chart_overview.clear()
@@ -503,27 +760,12 @@ export default {
delete this.chartData[id]
}
this.clearChart({ chartAllData: this.chartData })
this.startTime = 0
this.endTime = 0
this.windowLength = 0
},
destroyed () {
clearInterval(this.dataZoomTimer)
},
}
</script>
<style lang="scss">
.area-style {
height: auto;
overflow-y: hidden;
overflow-x: hidden;
@include media-breakpoint-only(xl) {
height: 88vh;
overflow-y: scroll;
overflow-x: hidden;
}
}
.layout.gutter--xl .row .flex {
padding: 0.4rem 0.5rem 0.1rem 0.5rem;
}
</style>
@@ -1,7 +1,14 @@
<template>
<div class="flex" :class="cardclass">
<va-card :style="'height: ' + cardheight + ';'">
<chart :ref="'chart_ref'" :style="'width: '+ cardwidth + '; height: ' + cardheight + ';'" :options="data" @dataZoom="updateZoom" :auto-resize="true"></chart>
<chart
:ref="'chart_ref'"
:style="'width: '+ cardwidth + '; height: ' + chartheight + ';'"
:option="data"
:auto-resize="true"
:loading="loading"
@dataZoom="updateZoom"
></chart>
</va-card>
</div>
</template>
@@ -9,7 +16,6 @@
<script>
import { mapMutations } from 'vuex'
import types from '@/store/modules/analysis/replay/types'
// import { chartData } from '../../../../data/task/ChartsManagement'
export default {
name: 'elite-replay-chart',
@@ -30,17 +36,22 @@ export default {
},
cardheight: {
type: String,
default: '82vh',
default: '88vh',
},
cardwidth: {
type: String,
default: 'auto',
},
chartheight: {
type: String,
default: '88vh',
},
},
created () {
},
data () {
return {
loading: false,
}
},
computed: {
@@ -56,8 +67,8 @@ export default {
updateZoom: function (e) {
this.$emit('dataZoomEvent', e)
},
mergeOptions (options) {
this.$refs.chart_ref.mergeOptions(options)
setOptions (options) {
this.$refs.chart_ref.setOption(options)
},
turnOnAxisEventHandler (eventName, query, handler, attr) {
const chartID = 1
@@ -67,7 +78,7 @@ export default {
status: 'on',
})
// doc: https://echarts.apache.org/zh/api.html#echartsInstance.on
this.$refs.chart_ref.chart._zr.on(eventName, query, handler)
this.$refs.chart_ref.chart.on(eventName, query, handler)
},
turnOffAxisEventHandler (eventName, handler, attr) {
const chartID = 1
@@ -77,22 +88,42 @@ export default {
status: 'off',
})
// doc: https://echarts.apache.org/zh/api.html#echartsInstance.off
this.$refs.chart_ref.chart._zr.off(eventName, handler)
this.$refs.chart_ref.chart.off(eventName, handler)
},
showLoading (options) {
this.$refs.chart_ref.showLoading(options)
this.loading = true
},
hideLoading () {
this.$refs.chart_ref.hideLoading()
this.loading = false
},
clear () {
this.$refs.chart_ref.clear()
},
updateBoundary (boundary) {
this.$emit('updateIntegralBoundary', boundary)
},
...mapMutations('replay', [types.chart.updateAxisEventHandler]),
},
async mounted () {
this.resizeTimer = setInterval(this.resize, 1000)
// brush set at here won't work
/* this.data.brush = {
toolbox: ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'],
xAxisIndex: 0,
throttleType: 'debounce',
throttleDelay: 5,
} */
this.$refs.chart_ref.chart.on('brushSelected', (params) => {
if (params.batch[0] && params.batch[0].areas.length !== 0) {
var boundary = {
x_start: Number(params.batch[0].areas[0].coordRange[0][0].toFixed(4)),
x_end: Number(params.batch[0].areas[0].coordRange[0][1].toFixed(4)),
y_start: Number(params.batch[0].areas[0].coordRange[1][0].toFixed(4)),
y_end: Number(params.batch[0].areas[0].coordRange[1][1].toFixed(4)),
}
this.updateBoundary(boundary)
}
})
},
destroyed () {
clearInterval(this.resizeTimer)
@@ -1,13 +1,20 @@
<template>
<div class="flex" :class="cardclass">
<va-card :style="'height: 8vh;'">
<chart :ref="'chart_ref'" :style="'width: '+ cardwidth + '; height: ' + cardheight + ';'" :options="data" @dataZoom="updateZoom" :auto-resize="true"></chart>
<chart
:ref="'chart_ref'"
:style="'width: '+ cardwidth + '; height: ' + cardheight + ';'"
:option="data"
:auto-resize="true"
:loading="loading"
@dataZoom="updateZoom"
>
</chart>
</va-card>
</div>
</template>
<script>
// import { chartData } from '../../../../data/task/ChartsManagement'
export default {
name: 'elite-replay-overview-chart',
@@ -39,6 +46,7 @@ export default {
},
data () {
return {
loading: false,
}
},
computed: {
@@ -54,11 +62,14 @@ export default {
updateZoom: function (e) {
this.$emit('dataZoomEvent', e)
},
setOptions (options) {
this.$refs.chart_ref.setOption(options)
},
showLoading (options) {
this.$refs.chart_ref.showLoading(options)
this.loading = true
},
hideLoading () {
this.$refs.chart_ref.hideLoading()
this.loading = false
},
clear () {
this.$refs.chart_ref.clear()
@@ -1,49 +1,175 @@
<template>
<div>
<va-card>
<edit-file-name style="display: inline;" :ref="'edit_file_name'"/>
<download-file style="display: inline;"/>
<delete-file style="display: inline;"/>
<br/>
<change-axis class="box_inline-block" :ref="'change_axis_x'" deviceName="elite" axis="x" @changeAxis="changeAxis" @changeUnit="changeUnit" @clearCycle="clearCycle" @resetScale="resetScale"/>
<change-unit class="box_inline-block" :ref="'change_unit_x'" deviceName="elite" axis="x" @refreshChart="refreshChart"/>
<change-scale class="box_inline-block" :ref="'change_scale_x'" deviceName="elite" axis="x" @refreshChart="refreshChart"/>
<br/>
<change-axis class="box_inline-block" :ref="'change_axis_y'" deviceName="elite" axis="y" @changeAxis="changeAxis" @changeUnit="changeUnit" @clearCycle="clearCycle" @resetScale="resetScale"/>
<change-unit class="box_inline-block" :ref="'change_unit_y'" deviceName="elite" axis="y" @refreshChart="refreshChart"/>
<change-scale class="box_inline-block" :ref="'change_scale_y'" deviceName="elite" axis="y" @refreshChart="refreshChart"/>
<change-cycle style="margin: 3px;" :ref="'change_cycle'" @refreshChart="refreshChart"/>
<show-resample-rate style="margin: 3px;"/>
<show-parameter style="margin: 3px;" :ref="'show_param'" deviceName="elite"/>
<div class="flex-container mb-1">
<div class="flex sm8 xl8 md8 xs8 px-0 py-0">
<edit-file-name :ref="'edit_file_name'"/>
</div>
<div class="flex sm2 xl2 md2 xs2 px-0 py-0">
<download-file style="float: right;" />
</div>
<div class="flex sm2 xl2 md2 xs2 px-0 py-0">
<delete-file />
</div>
</div>
<!-- <div class="flex-container mb-2" v-show='false'>
<div class="flex sm2 xl2 md2 xs2 px-0 py-0">
<p class="display-6"> X-axis </p>
</div>
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-axis :ref="'change_axis_x'" axis="x" @changeAxis="changeAxis" @changeUnit="changeUnit" @clearCycle="clearCycle"/>
</div>
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-unit :ref="'change_unit_x'" axis="x" @refreshChart="refreshChart"/>
</div>
</div>
<div class="flex-container mb-2" v-show='false'>
<div class="flex sm2 xl2 md2 xs2 px-0 py-0" />
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-scale :ref="'change_scale_x'" axis="x" @refreshChart="refreshChart" @clearCycle="clearCycle" @changeAxis="changeAxis" @changeFunctional="changeFunctional"/>
</div>
<div class="flex sm5 xl5 md5 xs5 px-0 py-0">
<abs-toggle :ref="'abs_x'" axis="x" @changeAxis="changeAxis"/>
</div>
</div> -->
<!-- <div class="flex-container mb-2" v-show='false'>
<div class="flex sm2 xl2 md2 xs2 px-0 py-0">
<p class="display-6"> Y-axis </p>
</div>
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-axis :ref="'change_axis_y'" axis="y" @changeAxis="changeAxis" @changeUnit="changeUnit" @clearCycle="clearCycle"/>
</div>
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-unit :ref="'change_unit_y'" axis="y" @refreshChart="refreshChart"/>
</div>
</div>
<div class="flex-container mb-2" v-show='false'>
<div class="flex sm2 xl2 md2 xs2 px-0 py-0" />
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-scale :ref="'change_scale_y'" axis="y" @refreshChart="refreshChart" @clearCycle="clearCycle" @changeAxis="changeAxis" @changeFunctional="changeFunctional"/>
</div>
<div class="flex sm5 xl5 md5 xs5 px-0 py-0">
<abs-toggle :ref="'abs_y'" axis="y" @changeAxis="changeAxis"/>
</div>
</div> -->
<!-- <va-button @click="switchCollapse"></va-button>
<va-collapse class="mb-2" :isOpenDefault="false" v-model="innerCollapse">
<span slot="header">Specific Integral</span>
<div slot="body">
<div>
<specific-integral :ref="'specific_integral'" @setBrushBoundary="setBrushBoundary" />
</div>
</div>
</va-collapse> -->
<!-- tang -->
<div class="flex-container mb-2">
<div class="flex sm2 xl2 md2 xs2 px-0 py-0">
<p class="display-6"> X-Axis </p>
</div>
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-axis-b :ref="'axis_x'" axis="x" @changeAxis="changeAxis"/>
</div>
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-unit-b
:ref="'unit_x'"
axis="x"
@changeUnit="refreshFormatter"
/>
</div>
</div>
<div class="flex-container mb-2">
<div class="flex sm2 xl2 md2 xs2 px-0 py-0" />
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-funct-b :ref="'funct_x'" axis="x" @changeFunct="changeFunct"/>
</div>
</div>
<div class="flex-container mb-2">
<div class="flex sm2 xl2 md2 xs2 px-0 py-0">
<p class="display-6"> Y-Axis </p>
</div>
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-axis-b
:ref="'axis_y'"
axis="y"
@changeAxis="changeAxis"
/>
</div>
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-unit-b
:ref="'unit_y'"
axis="y"
@changeUnit="refreshFormatter"/>
</div>
</div>
<div class="flex-container mb-2">
<div class="flex sm2 xl2 md2 xs2 px-0 py-0" />
<div class="flex sm5 xl5 md5 xs5 pl-1 pr-0 py-0">
<change-funct-b :ref="'funct_y'" axis="y" @changeFunct="changeFunct"/>
</div>
</div>
<specific-integral :ref="'specific_integral'" @setBrushBoundary="setBrushBoundary"/>
<div class="flex-container mb-2">
<div class="flex sm10 xl10 md10 xs10 px-0 py-0">
<change-window-start-and-size :ref="'change_window_start_and_size'" @changeOverviewDataZoom="changeOverviewDataZoom"/>
</div>
<div class="flex sm1 xl1 md1 xs1 px-0 py-0">
<lock-data-zoom :chartID="0"/>
</div>
</div>
<change-cycle v-show="showCyclePanel" :ref="'change_cycle'" @refreshChart="refreshChart"/>
<show-resample-rate/>
<show-parameter :ref="'show_param'"/>
</va-card>
</div>
</template>
<script>
import ShowResampleRate from '@/components/analysis/replay/toolbox/ShowResampleRate.vue'
import ChangeAxis from '@/components/analysis/replay/toolbox/ChangeAxis.vue'
import ChangeUnit from '@/components/analysis/replay/toolbox/ChangeUnit.vue'
import ChangeScale from '@/components/analysis/replay/toolbox/ChangeScale.vue'
// import ChangeAxis from '@/components/analysis/replay/toolbox/ChangeAxis.vue'
import ChangeAxisB from '@/components/analysis/replay/toolbox/ChangeAxisB.vue'
// import ChangeUnit from '@/components/analysis/replay/toolbox/ChangeUnit.vue'
import ChangeUnitB from '@/components/analysis/replay/toolbox/ChangeUnitB.vue'
// import ChangeScale from '@/components/analysis/replay/toolbox/ChangeScale.vue'
import ChangeFunctB from '@/components/analysis/replay/toolbox/ChangeFunctB.vue'
import ChangeCycle from '@/components/analysis/replay/toolbox/ChangeCycle.vue'
// import AbsToggle from '@/components/analysis/replay/toolbox/AbsToggle.vue'
import SpecificIntegral from '@/components/analysis/replay/toolbox/SpecificIntegral.vue'
import DownloadFile from '@/components/analysis/replay/toolbox/DownloadFile.vue'
import DeleteFile from '@/components/analysis/replay/toolbox/DeleteFile.vue'
import EditFileName from '@/components/analysis/replay/toolbox/EditFileName.vue'
import ShowParameter from '@/components/analysis/replay/toolbox/ShowParameter.vue'
import LockDataZoom from '@/components/analysis/replay/toolbox/LockDataZoom.vue'
import ChangeWindowStartAndSize from '@/components/analysis/replay/toolbox/ChangeWindowStartAndSize.vue'
import { mapMutations } from 'vuex'
import { mapFields } from 'vuex-map-fields'
import { tableRouter } from '@/components/analysis/replay/toolbox/EliteReplayTable'
import types from '@/store/modules/analysis/replay/types'
export default {
name: 'top-control-panel',
components: {
ShowResampleRate,
ChangeAxis,
ChangeUnit,
ChangeScale,
ChangeAxisB,
ChangeUnitB,
ChangeFunctB,
ChangeCycle,
SpecificIntegral,
DownloadFile,
DeleteFile,
EditFileName,
ShowParameter,
LockDataZoom,
ChangeWindowStartAndSize,
},
computed: {
...mapFields('replay', [
'chartData',
'metaList',
'showCyclePanel',
'controlPanel',
]),
},
props: {
},
@@ -51,26 +177,89 @@ export default {
},
data () {
return {
deviceName: '',
showCycle: false,
innerCollapse: false,
tableRouter,
}
},
mqtt: {
},
methods: {
...mapMutations('replay', [types.chart.updateAxisLabel]),
refreshFormatter (axis) {
this.updateAxisLabelChart({
chartID: 1,
axis: axis,
axisIndex: 0,
})
},
changeFunct (axis) {
this.refreshUnit()
this.refreshFormatter(axis)
this.$emit('changeFunctional', axis, this.controlPanel[axis].funct)
this.$emit('changeAxis', 0)
},
refreshAxis () {
const xType = this.controlPanel.x.type
const yType = this.controlPanel.y.type
const xFunct = this.controlPanel.x.funct
const yFunct = this.controlPanel.y.funct
this.$refs.axis_x.refreshAxis(xType, xFunct, yType, yFunct)
this.$refs.axis_y.refreshAxis(xType, xFunct, yType, yFunct)
},
refreshUnit (axis) {
const xType = this.controlPanel.x.type
const yType = this.controlPanel.y.type
const xFunct = this.controlPanel.x.funct
const yFunct = this.controlPanel.y.funct
if (axis === 'x') {
this.$refs.unit_x.refreshUnit(xType, xFunct, yType, yFunct)
} else {
this.$refs.unit_y.refreshUnit(xType, xFunct, yType, yFunct)
}
},
init () {
this.$refs.change_axis_x.init()
this.$refs.change_axis_y.init()
this.$refs.change_unit_x.init()
this.$refs.change_unit_y.init()
this.$refs.change_scale_x.init()
this.$refs.change_scale_y.init()
//
this.deviceName = this.metaList[0].device.library_name
// tang
this.initDefaultControlPanel()
this.$refs.axis_x.init()
this.$refs.funct_x.init()
this.$refs.unit_x.init(this.controlPanel.x.type)
this.$refs.axis_y.init()
this.$refs.funct_y.init()
this.$refs.unit_y.init(this.controlPanel.y.type)
// prev
// this.$refs.change_unit_x.init(this.deviceName)
// this.$refs.change_unit_y.init(this.deviceName)
// this.$refs.change_axis_x.init(this.deviceName)
// this.$refs.change_axis_y.init(this.deviceName)
// this.$refs.change_scale_x.init(this.deviceName)
// this.$refs.change_scale_y.init(this.deviceName)
// this.$refs.abs_x.init(this.deviceName)
// this.$refs.abs_y.init(this.deviceName)
this.$refs.change_cycle.init()
this.$refs.edit_file_name.init()
this.$refs.show_param.init()
this.$refs.show_param.init(this.deviceName)
this.$refs.change_window_start_and_size.init()
},
changeOverviewDataZoom () {
this.$emit('changeOverviewDataZoom')
},
refreshChart (options) {
this.$emit('refreshChart', options)
},
changeFunctional (axis, functional) {
this.$emit('changeFunctional', axis, functional)
},
changeAxis (gridIndex) {
this.$refs.funct_x.init()
this.$refs.funct_y.init()
this.$refs.unit_x.init(this.controlPanel.x.type)
this.$refs.unit_y.init(this.controlPanel.y.type)
this.refreshFormatter('x')
this.refreshFormatter('y')
this.$emit('changeFunctional', 'x', 'Linear')
this.$emit('changeFunctional', 'y', 'Linear')
this.$emit('changeAxis', gridIndex)
},
changeUnit (axis) {
@@ -83,13 +272,119 @@ export default {
clearCycle () {
this.$refs.change_cycle.clear()
},
resetScale () {
this.$refs.change_scale_x.reset()
this.$refs.change_scale_y.reset()
setBrushBoundary (boundary) {
this.$emit('setBrushBoundary', boundary)
},
/* switchCollapse () {
this.innerCollapse = this.innerCollapse ? false : true
console.log(this.innerCollapse)
}, */
initDefaultControlPanel () {
// use state meta to decide which default unit need to be used (like check I-V mode...)
const setting = this.GLOBAL.getDefaultChartTypeByMode(this.metaList[0].parameter_set.MODE, this.deviceName)
// x-axis
let settingType = setting[0]
let settingValue = setting[1]
if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC')) {
if (settingType === 'Elite') {
// 1: I, 2: V, 3: R, 4: cycle
if (settingValue === 1) {
this.controlPanel.x.type = 'Current'
this.controlPanel.x.channel = 0
} else if (settingValue === 2) {
this.controlPanel.x.type = 'Voltage'
this.controlPanel.x.channel = 1
} else if (settingValue === 3) {
this.controlPanel.x.type = 'Resistance'
this.controlPanel.x.channel = 2
} else if (settingValue === 4) {
this.controlPanel.x.type = 'Cycle'
this.controlPanel.x.channel = 3
}
} else if (settingType === 'Time') {
this.controlPanel.x.type = 'Time'
this.controlPanel.x.channel = undefined
}
} else if (this.deviceName.includes('EIS')) {
if (settingType.includes('EIS')) {
if (settingValue === 3) {
this.controlPanel.x.type = 'Frequency'
} else if (settingValue === 5 || settingValue === 6 || settingValue === 7) {
this.controlPanel.x.type = 'Impedance'
} else if (settingValue === 8) {
this.controlPanel.x.type = 'Phase'
} else if (settingValue === 9) {
this.controlPanel.x.type = 'Current'
} else if (settingValue === 10) {
this.controlPanel.x.type = 'Default'
}
} else if (settingType === 'Elite') {
// 1: I, 2: V, 3: R
if (settingValue === 1) {
this.controlPanel.x.type = 'Current'
} else if (settingValue === 2) {
this.dataTcontrolPanel.xype = 'Voltage'
} else if (settingValue === 3) {
this.controlPanel.x.type = 'Resistance'
}
} else if (settingType === 'Time') {
this.controlPanel.x.type = 'Time'
}
}
// y-axis
settingType = setting[2]
settingValue = setting[3]
if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC')) {
if (settingType === 'Elite') {
// 1: I, 2: V, 3: R, 4: cycle
if (settingValue === 1) {
this.controlPanel.y.type = 'Current'
this.controlPanel.y.channel = 0
} else if (settingValue === 2) {
this.controlPanel.y.type = 'Voltage'
this.controlPanel.y.channel = 1
} else if (settingValue === 3) {
this.controlPanel.y.type = 'Resistance'
this.controlPanel.y.channel = 2
} else if (settingValue === 4) {
this.controlPanel.y.type = 'Cycle'
this.controlPanel.y.channel = 3
}
} else if (settingType === 'Time') {
this.controlPanel.y.type = 'Time'
this.controlPanel.y.channel = undefined
}
} else if (this.deviceName.includes('EIS')) {
if (settingType.includes('EIS')) {
if (settingValue === 3) {
this.controlPanel.y.type = 'Frequency'
} else if (settingValue === 5 || settingValue === 6 || settingValue === 7) {
this.controlPanel.y.type = 'Impedance'
} else if (settingValue === 8) {
this.controlPanel.y.type = 'Phase'
} else if (settingValue === 9) {
this.controlPanel.y.type = 'Current'
} else if (settingValue === 10) {
this.controlPanel.y.type = 'Default'
}
} else if (settingType === 'Elite') {
// 1: I, 2: V, 3: R
if (settingValue === 1) {
this.controlPanel.y.type = 'Current'
} else if (settingValue === 2) {
this.dataTcontrolPanel.xype = 'Voltage'
} else if (settingValue === 3) {
this.controlPanel.y.type = 'Resistance'
}
} else if (settingType === 'Time') {
this.controlPanel.y.type = 'Time'
}
}
},
},
// use watch because va-select with @change will have bug
watch: {
},
mounted () {
},
@@ -97,9 +392,8 @@ export default {
</script>
<style lang="scss">
.box_inline-block {
padding: 2px;
margin: 2px;
display: inline-block;
.flex-container {
display: flex;
align-items: center;
}
</style>
@@ -1,7 +1,7 @@
<template>
<div>
<div class="row row-equal">
<div class="flex md12 xl3 xs12 sm12 area-style">
<div class="flex md12 xl3 xs12 sm12">
<div class="row">
<div class="flex sm12 xl12 md12 xs12">
<va-accordion>
@@ -9,7 +9,7 @@
<span slot="header">Control Panel</span>
<div slot="body">
<div>
<top-control-panel :ref="'top_control_panel'" @refreshChart="setOption"/>
<top-control-panel :ref="'top_control_panel'" @refreshChart="setOption" @changeOverviewDataZoom="changeOverviewDataZoom"/>
</div>
</div>
</va-collapse>
@@ -18,7 +18,7 @@
</div>
</div>
<div :class="chartAreaClass" class="area-style">
<div :class="chartAreaClass">
<div class="row" >
<div class="flex sm12 xl12 md12 xs12">
<neulive-replay-overview-chart :ref="'chart_overview'" class="mb-1" :cardheight="'7vh'" :data="chartOverviewData" @dataZoomEvent="dataZoomEvent($event)"/>
@@ -51,13 +51,27 @@ export default {
ChangeChannelValueMinMax,
},
computed: {
displayType () {
return {
x: this.axisXLabelScale.description === 'Log' ? 'log' : 'value',
y: this.axisYLabelScale.description === 'Log' ? 'log' : 'value',
}
},
...mapFields('replay', [
'chartData',
'chartOverviewData',
'chartDetailData',
'currentScale',
'startTime',
'endTime',
'windowLength',
'axisXLabelScale',
'axisYLabelScale',
'startTimeCurrent',
'endTimeCurrent',
'sampleMethod',
'useSdCardData',
]),
},
props: {
@@ -85,8 +99,6 @@ export default {
metaList: null,
dataInfo: {},
maxTime: 0,
startTime: 0,
endTime: 0,
zoomTime: 0,
chartAreaClass: ['flex', 'xs12', 'sm12', 'md12', 'xl9', 'pa-0'],
dataZoomStart: 0,
@@ -132,7 +144,12 @@ export default {
},
getData: async function (scale, sampleMethod, id, channel, meta) {
if (scale === 1) {
return await download.rawByIDChannels(id, channel, meta)
// [TODO] 0: assume first meta temporarily
if (this.useSdCardData && (this.metaList[0].sd_data_uploaded === true)) {
return await download.rawSdDataByIDChannels(id, channel, meta)
} else {
return await download.rawByIDChannels(id, channel, meta)
}
} else {
if (sampleMethod === 'mean') {
return await download.miniMeanByIDChannel(id, channel, meta)
@@ -203,7 +220,7 @@ export default {
})
},
updateMarkArea: function (e) {
console.log(e)
// console.log(e)
if (e.batch != null) {
// console.log(e.batch)
e.batch.forEach(dataZoom => {
@@ -238,16 +255,22 @@ export default {
e.batch.forEach(dataZoom => {
const id = parseInt(dataZoom.dataZoomId.substr(dataZoom.dataZoomId.length - 3, dataZoom.dataZoomId.length - 1))
if (id === 1) {
this.startTime = this.maxTime * dataZoom.start / 100
this.endTime = this.maxTime * dataZoom.end / 100
this.startTime = parseInt(this.maxTime * dataZoom.start / 100)
this.endTime = parseInt(this.maxTime * dataZoom.end / 100)
this.windowLength = this.endTime - this.startTime
this.chartOverviewData.dataZoom[0].start = dataZoom.start
this.chartOverviewData.dataZoom[0].end = dataZoom.end
// console.log(this.startTime, this.endTime)
}
})
} else {
const id = parseInt(e.dataZoomId.substr(e.dataZoomId.length - 3, e.dataZoomId.length - 1))
if (id === 0) {
this.startTime = this.maxTime * e.start / 100
this.endTime = this.maxTime * e.end / 100
this.startTime = parseInt(this.maxTime * e.start / 100)
this.endTime = parseInt(this.maxTime * e.end / 100)
this.windowLength = this.endTime - this.startTime
this.chartOverviewData.dataZoom[0].start = e.start
this.chartOverviewData.dataZoom[0].end = e.end
// console.log(this.startTime, this.endTime)
}
}
@@ -255,7 +278,14 @@ export default {
this.chartOverviewData.series[0].markArea.data[0][1].xAxis = this.startTime + ((this.endTime - this.startTime) * (this.dataZoomEnd / 100))
this.zoomTime = 0
},
drawOverviewData: async function () {
changeOverviewDataZoom () {
this.chartOverviewData.dataZoom[0].start = this.startTime * 100 / this.maxTime
this.chartOverviewData.dataZoom[0].end = this.endTime * 100 / this.maxTime
this.chartOverviewData.series[0].markArea.data[0][0].xAxis = this.startTime + ((this.endTime - this.startTime) * (this.dataZoomStart / 100))
this.chartOverviewData.series[0].markArea.data[0][1].xAxis = this.startTime + ((this.endTime - this.startTime) * (this.dataZoomEnd / 100))
this.$refs.chart_overview.mergeOptions(this.chartOverviewData)
},
drawInitData: async function () {
this.showChartLoading('overview')
for (const meta in this.dataInfo) {
let metaInfo
@@ -264,44 +294,39 @@ export default {
metaInfo = _meta
}
})
const sampleRate = (800000 / metaInfo.parameter_set.ADC_CLOCK)
let scale = (((metaInfo.time_duration / 100000) * sampleRate) / 4000) * 0.1
if (scale > 500) {
let scale = '1000'
const sampleRate = (metaInfo.parameter_set.SAMPLE_RATE === 0) ? parseInt(8e5 / metaInfo.parameter_set.ADC_CLOCK) : metaInfo.parameter_set.SAMPLE_RATE // Hz
const dataPointNum = (parseInt(metaInfo.time_duration) / 1e6) * sampleRate // us -> s: /1e6
if (dataPointNum > 2e6) { // 2000 (points) * 1000 (resample) = 2e6
scale = '1000'
} else if (scale > 200) {
} else if (dataPointNum > 2e5) { // 2000 (points) * 100 (resample) = 2e5
scale = '100'
} else if (scale > 30) {
} else if (dataPointNum > 2e4) { // 2000 (points) * 10 (resample) = 2e4
scale = '10'
} else {
scale = '1'
}
this.currentScale = scale
console.log('overview scale:', scale)
const sampleMethod = 'mean'
const getAllData = async function (_this) {
let seriesIndex = 0
for (const ch in _this.dataInfo[meta]) {
const dataList = _this.dataInfo[meta][ch][scale]
for (let i = 0; i < dataList.length; i++) {
if (dataList[i].data.length === 0) {
_this.intoDataRec({
index: i,
metaID: meta,
channel: ch,
scale: scale,
data: await _this.getData(parseInt(scale), sampleMethod, dataList[i].id, ch, metaInfo),
})
}
_this.intoDataRec({
index: i,
metaID: meta,
channel: ch,
scale: scale,
data: await _this.getData(parseInt(scale), _this.sampleMethod, dataList[i].id, ch, metaInfo),
})
_this.chartOverviewData.series[seriesIndex].data.push(...dataList[i].data)
_this.chartDetailData.series[seriesIndex].data.push(...dataList[i].data)
}
seriesIndex++
}
}
await getAllData(this)
let seriesIndex = 0
for (const ch in this.dataInfo[meta]) {
const dataList = this.dataInfo[meta][ch][scale]
for (let i = 0; i < dataList.length; i++) {
this.chartOverviewData.series[seriesIndex].data.push(...dataList[i].data)
}
seriesIndex++
}
}
this.hideChartLoading()
},
@@ -315,20 +340,21 @@ export default {
metaInfo = _meta
}
})
const sampleRate = (800000 / metaInfo.parameter_set.ADC_CLOCK)
let scale = (((timeDur / 100000) * sampleRate) / 4000) * 0.1
if (scale > 500) {
let scale = '1000'
const sampleRate = (metaInfo.parameter_set.SAMPLE_RATE === 0) ? parseInt(8e5 / metaInfo.parameter_set.ADC_CLOCK) : metaInfo.parameter_set.SAMPLE_RATE // Hz
const dataPointNum = (timeDur / 1e6) * sampleRate // us -> s: /1e6
if (dataPointNum > 2e6) { // 2000 (points) * 1000 (resample) = 2e6
scale = '1000'
} else if (scale > 200) {
} else if (dataPointNum > 2e5) { // 2000 (points) * 100 (resample) = 2e5
scale = '100'
} else if (scale > 30) {
} else if (dataPointNum > 2e4) { // 2000 (points) * 10 (resample) = 2e4
scale = '10'
} else {
scale = '1'
}
this.currentScale = scale
const sampleMethod = 'mean'
let seriesIndex = 0
this.updateChartSamplingChart({ chartID: this.chartDetailData.chartID, seriesIndex: seriesIndex, method: function (frame) { return frame[0] } })
for (const ch in this.dataInfo[meta]) {
this.chartDetailData.series[seriesIndex].data.length = 0
const dataList = this.dataInfo[meta][ch][scale]
@@ -344,24 +370,30 @@ export default {
}
}
// download and push into chart
let endFlag = false // because data is sorted by time, so if current processed data piece exceeds endTimeCurrent, can early stop
for (let i = startIndex; i <= endIndex; i++) {
let data
if (dataList[i].data.length === 0) {
data = await this.getData(parseInt(scale), sampleMethod, dataList[i].id, ch, metaInfo)
this.intoDataRec({
index: i,
metaID: meta,
channel: ch,
scale: scale,
data: data,
})
} else {
data = JSON.parse(JSON.stringify(this.dataInfo[meta][ch][scale][i].data))
}
const data = await this.getData(parseInt(scale), this.sampleMethod, dataList[i].id, ch, metaInfo)
for (let j = 0, len = data.length; j < len; j++) {
if (parseInt(data[j][0]) >= this.startTimeCurrent && parseInt(data[j][0]) <= this.endTimeCurrent) {
this.chartDetailData.series[seriesIndex].data.push(data[j])
const processedData = data[j]
if (this.displayType.x === 'log') {
processedData[0] = Math.abs(processedData[0])
}
if (this.displayType.y === 'log') {
processedData[1] = Math.abs(processedData[1])
}
this.chartDetailData.series[seriesIndex].data.push(processedData)
}
// early stop
if (parseInt(data[j][0]) > this.endTimeCurrent) {
endFlag = true
break
}
}
// early stop
if (endFlag === true) {
break
}
}
for (let i = 0, len = this.chartDetailData.xAxis.length; i < len; i++) {
@@ -380,7 +412,6 @@ export default {
this.startTimeCurrent = this.startTime
this.endTimeCurrent = this.endTime
this.drawDetailData()
this.$refs.top_control_panel.resetScale()
}
}
},
@@ -453,7 +484,7 @@ export default {
...mapActions('replay', [types.meta.init]),
...mapActions('replay', [types.rec.init, types.rec.intoData, types.rec.initDisplaySetting, types.rec.updateDisplaySetting]),
...mapMutations('replay', [types.chart.updateAxisLabel]),
...mapMutations('replay', [types.chart.updateAxisLabel, types.chart.updateChartSampling, types.chart.setOverviewDataZoomStartAndEnd]),
...mapMutations('replay', [types.meta.updateByIndex]),
...mapGetters('replay', [types.meta.getAll]),
@@ -472,12 +503,13 @@ export default {
console.log(this.metaList)
console.log(this.dataInfo)
await this.register()
this.drawOverviewData()
this.drawDetailData()
this.setOverviewDataZoomStartAndEndChart()
await this.drawInitData()
this.dataZoomTimer = setInterval(this.checkDataZoom, 1000)
this.$refs.top_control_panel.init()
this.$refs.set_min_max.init()
this.turnOnAxisEventHandler('click', 'yAxis.axisLabel', this.showMinMaxPanel, { axis: 'y' })
console.log(this.chartOverviewData)
console.log(this.chartDetailData)
},
beforeDestroy () {
@@ -496,21 +528,3 @@ export default {
},
}
</script>
<style lang="scss">
.area-style {
height: auto;
overflow-y: hidden;
overflow-x: hidden;
@include media-breakpoint-only(xl) {
height: 93vh;
overflow-y: scroll;
overflow-x: hidden;
}
}
.layout.gutter--xl .row .flex {
padding: 0.75rem 0.5rem 0.1rem 0.5rem;
}
</style>
@@ -9,7 +9,6 @@
<script>
import { mapMutations } from 'vuex'
import types from '@/store/modules/analysis/replay/types'
// import { chartData } from '../../../../data/task/ChartsManagement'
export default {
name: 'neulive-replay-chart',
@@ -7,7 +7,6 @@
</template>
<script>
// import { chartData } from '../../../../data/task/ChartsManagement'
export default {
name: 'neulive-replay-overview-chart',
@@ -54,6 +53,9 @@ export default {
updateZoom: function (e) {
this.$emit('dataZoomEvent', e)
},
mergeOptions (options) {
this.$refs.chart_ref.mergeOptions(options)
},
showLoading (options) {
this.$refs.chart_ref.showLoading(options)
},
@@ -1,16 +1,23 @@
<template>
<div>
<va-card>
<edit-file-name style="display: inline;" :ref="'edit_file_name'"/>
<download-file style="display: inline;"/>
<delete-file style="display: inline;"/>
<div class="flex-container">
<edit-file-name class="flex-child" :ref="'edit_file_name'"/>
<download-file class="flex-child2"/>
<delete-file class="flex-child2"/>
</div>
<show-resample-rate/>
<change-axis v-show="showXAxis" :ref="'change_axis_x'" deviceName="neulive" axis="x"/>
<change-axis v-show="showYAxis" :ref="'change_axis_y'" deviceName="neulive" axis="y"/>
<change-unit v-show="showXUnit" :ref="'change_unit_x'" deviceName="neulive" axis="x" @refreshChart="refreshChart"/>
<change-unit :ref="'change_unit_y'" deviceName="neulive" axis="y" @refreshChart="refreshChart"/>
<change-scale :ref="'change_scale_y'" deviceName="neulive" axis="y" @refreshChart="refreshChart"/>
<show-parameter :ref="'show_param'" deviceName="neulive"/>
<div class="flex-container">
<change-window-start-and-size class="flex-child" :ref="'change_window_start_and_size'" @changeOverviewDataZoom="changeOverviewDataZoom"/>
<lock-data-zoom class="flex-child2" :chartID="0"/>
</div>
<change-axis v-show="showXAxis" :ref="'change_axis_x'" axis="x"/>
<change-axis v-show="showYAxis" :ref="'change_axis_y'" axis="y"/>
<change-unit v-show="showXUnit" :ref="'change_unit_x'" axis="x" @refreshChart="refreshChart"/>
<change-unit :ref="'change_unit_y'" class="box_inline-block" axis="y" @refreshChart="refreshChart"/>
<change-scale :ref="'change_scale_y'" class="box_inline-block" axis="y"/>
<sd-card-toggle :ref="'sd_card_toggle'" :metaIndex="0"/>
<show-parameter :ref="'show_param'"/>
</va-card>
</div>
</template>
@@ -24,6 +31,10 @@ import DownloadFile from '@/components/analysis/replay/toolbox/DownloadFile.vue'
import DeleteFile from '@/components/analysis/replay/toolbox/DeleteFile.vue'
import EditFileName from '@/components/analysis/replay/toolbox/EditFileName.vue'
import ShowParameter from '@/components/analysis/replay/toolbox/ShowParameter.vue'
import SdCardToggle from '@/components/analysis/replay/toolbox/SdCardToggle.vue'
import LockDataZoom from '@/components/analysis/replay/toolbox/LockDataZoom.vue'
import ChangeWindowStartAndSize from '@/components/analysis/replay/toolbox/ChangeWindowStartAndSize.vue'
import { mapFields } from 'vuex-map-fields'
export default {
name: 'top-control-panel',
@@ -36,15 +47,21 @@ export default {
DeleteFile,
EditFileName,
ShowParameter,
SdCardToggle,
LockDataZoom,
ChangeWindowStartAndSize,
},
computed: {
},
props: {
...mapFields('replay', [
'metaList',
'showCyclePanel',
]),
},
async created () {
},
data () {
return {
deviceName: '',
showXAxis: false,
showYAxis: false,
showXUnit: false,
@@ -54,20 +71,23 @@ export default {
},
methods: {
init () {
this.$refs.change_axis_x.init()
this.$refs.change_axis_y.init()
this.$refs.change_unit_x.init()
this.$refs.change_unit_y.init()
this.$refs.change_scale_y.init()
this.deviceName = this.metaList[0].device.library_name
this.$refs.change_axis_x.init(this.deviceName)
this.$refs.change_axis_y.init(this.deviceName)
this.$refs.change_unit_x.init(this.deviceName)
this.$refs.change_unit_y.init(this.deviceName)
this.$refs.change_scale_y.init(this.deviceName)
this.$refs.edit_file_name.init()
this.$refs.show_param.init()
this.$refs.show_param.init(this.deviceName)
this.$refs.change_window_start_and_size.init()
this.$refs.sd_card_toggle.init()
},
changeOverviewDataZoom () {
this.$emit('changeOverviewDataZoom')
},
refreshChart (options) {
this.$emit('refreshChart', options)
},
resetScale () {
this.$refs.change_scale_y.reset()
},
},
// use watch because va-select with @change will have bug
watch: {
@@ -78,4 +98,29 @@ export default {
</script>
<style lang="scss">
.box_inline-block {
padding: 2px;
margin: 2px;
display: inline-block;
}
.flex-container {
display: flex;
}
.flex-child {
flex: 2;
}
.flex-child1 {
flex: 1;
}
.flex-child2 {
flex: 0;
}
.flex-child:first-child {
margin-right: 1px;
}
</style>
@@ -0,0 +1,118 @@
<template>
<div>
<va-button
:color="buttonColor"
:key="clickTime"
v-model="absToggleStatus[axis]"
@click="performABS()"
class="round-button px-1 py-1"
>
ABS
</va-button>
</div>
</template>
<script>
import { mapActions, mapMutations } from 'vuex'
import { mapFields } from 'vuex-map-fields'
import types from '@/store/modules/analysis/replay/types'
export default {
name: 'AbsToggle',
components: {
},
computed: {
displayType () {
return {
x: this.axisXLabelScale.description === 'Log' ? 'log' : 'value',
y: this.axisYLabelScale.description === 'Log' ? 'log' : 'value',
}
},
...mapFields('replay', [
'chartData',
'metaList',
'absToggleStatus',
]),
},
props: {
chartID: {
type: Number, // detail data
default: 1,
},
axis: {
type: String, // x or y
},
metaIndex: {
type: Number, // which meta file
default: 0,
},
},
created () {
},
data () {
return {
metaID: 0,
metaInfo: null,
buttonColor: 'gray',
clickTime: 0,
}
},
mqtt: {
},
methods: {
init (deviceName) {
this.deviceName = deviceName
this.metaInfo = this.metaList[this.metaIndex]
this.metaID = this.metaInfo.id
this.absToggleStatus[this.axis] = false
},
performABS () {
this.absToggleStatus[this.axis] = !this.absToggleStatus[this.axis]
if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC') || this.deviceName.includes('EIS')) {
this.calculateHelper(this.metaIndex) // [TODO] elite tmp use metaIndex for grid index
}
this.clickTime++
this.buttonColor = this.clickTime % 2 === 1 ? 'success' : 'gray'
},
async calculateHelper (gridIndex) {
let seriesData
if (this.absToggleStatus[this.axis]) {
seriesData = JSON.parse(JSON.stringify(this.chartData[this.chartID].series[gridIndex].data))
for (let i = 0; i < seriesData.length; i++) {
if (this.axis === 'x') {
seriesData[i][0] = Math.abs(seriesData[i][0])
} else if (this.axis === 'y') {
seriesData[i][1] = Math.abs(seriesData[i][1])
}
}
this.updateSeriesChart({
chartID: this.chartID,
seriesIndex: gridIndex,
data: seriesData,
})
} else {
if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC') || this.deviceName.includes('EIS')) {
this.$emit('changeAxis', this.metaIndex) // [TODO] elite tmp use metaIndex for grid index
}
}
},
...mapActions('replay', [types.chart.setAxisDisplay]),
...mapMutations('replay', [types.chart.updateSeries]),
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
<style lang="scss">
.round-button {
border-radius: 12px;
}
</style>
@@ -0,0 +1,332 @@
<template>
<div>
<va-button v-if="integralClicked && (mode_name==='Chronoamperometric' || mode_name==='I-T Graph')" color="danger" class="mb-2" @click="clickIntegral" small>
To Raw Mode
</va-button>
<va-button v-if="!integralClicked && (mode_name==='Chronoamperometric' || mode_name==='I-T Graph')" color="primary" class="mb-2" @click="clickIntegral" small>
To Integral Mode
</va-button>
<va-button v-if="xlogClicked && (mode_name==='Linear Sweep Voltammetry' || mode_name==='I-V Curve')" color="danger" class="mb-2" @click="clickXLog" small>
To Raw Mode
</va-button>
<va-button :disabled="disableLog" v-if="!xlogClicked && (mode_name==='Linear Sweep Voltammetry' || mode_name==='I-V Curve')" color="primary" class="mb-2" @click="clickXLog" small>
To log Mode (x-axis)
</va-button>
<va-button v-if="ylogClicked && (mode_name==='Linear Sweep Voltammetry' || mode_name==='I-V Curve')" color="danger" class="mb-2" @click="clickYLog" small>
To Raw Mode
</va-button>
<va-button :disabled="disableLog" v-if="!ylogClicked && (mode_name==='Linear Sweep Voltammetry' || mode_name==='I-V Curve')" color="primary" class="mb-2" @click="clickYLog" small>
To log Mode (y-axis)
</va-button>
<va-button v-if="diffClicked && (mode_name==='Linear Sweep Voltammetry' || mode_name==='I-V Curve')" color="danger" class="mb-2" @click="clickDiff" small>
To Raw Mode
</va-button>
<va-button :disabled="disableDiff" v-if="!diffClicked && (mode_name==='Linear Sweep Voltammetry' || mode_name==='I-V Curve')" color="primary" class="mb-2" @click="clickDiff" small>
To Differential Mode
</va-button>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
import { mapActions } from 'vuex'
import taskTypes from '@/store/modules/task/content/types'
import paramTable from '@/data/config-table/index'
import { getTimeFormatter } from '@/store/modules/task/content/actions/chartAct'
export default {
name: 'CanvasChartReplayCalculation',
components: {
},
props: {
chartID: {
type: [Number, String],
required: true,
},
},
computed: {
...mapFields('', [
'developerMode',
]),
...mapFields('taskContent', [
'chartData',
'taskContentChartKey',
'deviceListNew',
]),
},
data () {
return {
info: null,
paramTable: paramTable,
rawData: null,
mode_name: '',
xName: '',
yName: '',
obj: null,
integralClicked: false,
xlogClicked: false,
ylogClicked: false,
diffClicked: false,
disableDiff: false,
disableLog: false,
}
},
// watch rawData is use for detect whether the chartData is changed
watch: {
rawData: {
deep: true,
handler: function () {
// avoid getting null data
if (this.rawData.series.length > 0) {
this.watchHandler()
}
},
},
},
methods: {
// Do arithmetic operations triggered by button(raw, integral, log)
watchHandler: function () {
// this.data need to be deep copy from rawData, since we don't want to modify the source(chartData[])
// this.data = Object.assign({}, this.rawData)
this.data = JSON.parse(JSON.stringify(this.rawData))
this.addSource()
var curXData = 0
var curYData = 0
var prevXData = 0
var prevYData = 0
var timeGap = 0
var curTime = 0
var integralResult = 0
var diffResult = 0
var index = 0
var timeIndex = this.getTimeIndex()
var _data = []
const dataLength = this.data.series[0].data.length
const seriesData = this.data.series[0].data
if (this.integralClicked) {
for (index = 0; index < dataLength; index++) {
if (index === 0) {
// TODO: need to change the series[deviceID]
// TODO: change the time index(dynamic changing)
curYData = parseFloat(seriesData[index][1])
timeGap = seriesData[index + 1][timeIndex] - seriesData[index][timeIndex]
curTime = seriesData[index][timeIndex]
_data.push([curTime, 0])
} else {
prevYData = parseFloat(seriesData[index - 1][1])
curYData = parseFloat(seriesData[index][1])
integralResult += parseFloat((Math.abs(curYData) + Math.abs(prevYData)) * timeGap / 2)
curTime += timeGap
_data.push([curTime, integralResult])
}
}
} else if (this.xlogClicked || this.ylogClicked) {
if (this.xlogClicked && this.ylogClicked) {
for (index = 0; index < dataLength; index++) {
if (index === 0) {
curXData = parseFloat(seriesData[index][0])
curYData = parseFloat(seriesData[index][1])
timeGap = seriesData[index + 1][timeIndex] - seriesData[index][timeIndex]
curTime = seriesData[index][timeIndex]
if (curXData !== 0 && curYData !== 0) {
_data.push([Math.log10(Math.abs(curXData)), Math.log10(Math.abs(curYData)), curTime])
}
} else {
curXData = parseFloat(seriesData[index][0])
curYData = parseFloat(seriesData[index][1])
curTime += timeGap
if (curXData !== 0 && curYData !== 0) {
_data.push([Math.log10(Math.abs(curXData)), Math.log10(Math.abs(curYData)), curTime])
}
}
}
} else if (this.xlogClicked && !(this.ylogClicked)) {
for (index = 0; index < dataLength; index++) {
if (index === 0) {
curXData = parseFloat(seriesData[index][0])
curYData = parseFloat(seriesData[index][1])
timeGap = seriesData[index + 1][timeIndex] - seriesData[index][timeIndex]
curTime = seriesData[index][timeIndex]
if (curXData !== 0) {
_data.push([Math.log10(Math.abs(curXData)), curYData, curTime])
}
} else {
curXData = parseFloat(seriesData[index][0])
curYData = parseFloat(seriesData[index][1])
curTime += timeGap
if (curXData !== 0) {
_data.push([Math.log10(Math.abs(curXData)), curYData, curTime])
}
}
}
} else if (!(this.xlogClicked) && this.ylogClicked) {
for (index = 0; index < dataLength; index++) {
if (index === 0) {
curXData = parseFloat(seriesData[index][0])
curYData = parseFloat(seriesData[index][1])
timeGap = seriesData[index + 1][timeIndex] - seriesData[index][timeIndex]
curTime = seriesData[index][timeIndex]
if (curYData !== 0) {
_data.push([curXData, Math.log10(Math.abs(curYData)), curTime])
}
} else {
curXData = parseFloat(seriesData[index][0])
curYData = parseFloat(seriesData[index][1])
curTime += timeGap
if (curYData !== 0) {
_data.push([curXData, Math.log10(Math.abs(curYData)), curTime])
}
}
}
}
} else if (this.diffClicked) {
for (index = 0; index < dataLength; index++) {
if (index === 0) {
// TODO: need to change the series[deviceID]
// TODO: change the time index(dynamic changing)
curXData = parseFloat(seriesData[index][0])
curYData = parseFloat(seriesData[index][1])
timeGap = seriesData[index + 1][timeIndex] - seriesData[index][timeIndex]
curTime = seriesData[index][timeIndex]
// _data.push([curTime, 0, curTime])
} else {
curXData = parseFloat(seriesData[index][0])
curYData = parseFloat(seriesData[index][1])
prevXData = parseFloat(seriesData[index - 1][0])
prevYData = parseFloat(seriesData[index - 1][1])
curTime += timeGap
diffResult = parseFloat((curYData - prevYData) / (curXData - prevXData))
_data.push([curXData, diffResult, curTime])
}
}
}
// decide feed in raw data / modified one
if (this.integralClicked || this.xlogClicked || this.ylogClicked || this.diffClicked) {
// console.log(_data)
this.data.series[0].data = _data
}
this.data.xAxis[0].type = 'value'
if (this.integralClicked) {
this.$emit('switchModeButton', 'Integral')
} else if (this.xlogClicked || this.ylogClicked) {
this.$emit('switchModeButton', 'log')
} else if (this.diffClicked) {
this.$emit('switchModeButton', 'Differential')
} else {
this.$emit('switchModeButton', '')
}
// TODO: modify the redundant code
if (this.xName === 'TIME') {
this.data.xAxis[0].axisLabel.formatter = function (val) {
return getTimeFormatter(val)
}
}
this.$emit('refreshData', this.data)
},
// resetClicked: function () {
// this.integralClicked = false
// this.xlogClicked = false
// this.ylogClicked = false
// this.diffClicked = false
// this.disableDiff = false
// this.disableLog = false
// },
clickIntegral: function () {
this.integralClicked = !(this.integralClicked)
const device = this.deviceListNew.find(ele => String(ele.memory_board) === String(this.data.mappingID))
if (device !== undefined) {
if (device.status === 0) {
this.watchHandler()
}
}
},
clickXLog: function () {
if (this.xlogClicked) {
this.xlogClicked = false
if (this.ylogClicked) {
this.disableDiff = true
} else {
this.disableDiff = false
}
} else {
this.xlogClicked = true
this.disableDiff = true
}
const device = this.deviceListNew.find(ele => String(ele.memory_board) === String(this.data.mappingID))
if (device !== undefined) {
if (device.status === 0) {
this.watchHandler()
}
}
},
clickYLog: function () {
if (this.ylogClicked) {
this.ylogClicked = false
if (this.xlogClicked) {
this.disableDiff = true
} else {
this.disableDiff = false
}
} else {
this.ylogClicked = true
this.disableDiff = true
}
const device = this.deviceListNew.find(ele => String(ele.memory_board) === String(this.data.mappingID))
if (device !== undefined) {
if (device.status === 0) {
this.watchHandler()
}
}
},
clickDiff: function () {
this.diffClicked = !(this.diffClicked)
this.disableLog = !(this.disableLog)
const device = this.deviceListNew.find(ele => String(ele.memory_board) === String(this.data.mappingID))
if (device !== undefined) {
if (device.status === 0) {
this.watchHandler()
}
}
},
addSource () {
if (this.data.gridSource.length > 0) {
const xAxisName = this.data.gridSource[0][0].xAxis
const yAxisName = this.data.gridSource[0][0].yAxis
this.xName = (xAxisName.split(' ')).pop()
this.yName = (yAxisName.split(' ')).pop()
if ((this.xName === 'VOLTAGE' && this.yName === 'CURRENT') || (this.xName === 'CURRENT' && this.yName === 'VOLTAGE')) {
this.mode_name = 'I-V Curve' // integration
} else if (this.xName === 'TIME' && this.yName === 'CURRENT') {
this.mode_name = 'I-T Graph' // differential and log
}
}
},
// index 0 is for the mode which x-axis is represent time, 2 is for the other mode(s)
getTimeIndex: function () {
let xAxisName = this.rawData.gridSource[0][0].xAxis
xAxisName = (xAxisName.split(' ')).pop()
return (xAxisName === 'TIME') ? 0 : 2
},
// these function below are using for print out the data (debug)
getAlldata: function () {
return this.data.series[0].data[(this.data.series[0].data).length - 1]
},
getXdata: function () {
var value = this.data.series[0].data[(this.data.series[0].data).length - 1][0]
return this.xName + ': ' + value + ' ' + this.xUnit
},
getYdata: function () {
var value = this.data.series[0].data[(this.data.series[0].data).length - 1][1]
return this.yName + ': ' + value + ' ' + this.yUnit
},
...mapActions('taskContent', [
taskTypes.chart.saveToCache,
]),
},
async mounted () {
this.rawData = this.chartData[this.chartID]
},
}
</script>
@@ -1,35 +1,60 @@
<template>
<div>
<span> {{ axis }} axis: </span>
<div v-if="axis === 'x'" style="display: inline;">
<select v-model="channelFormat" @change="changeAxis()">
<option v-for="option in channelOptions" :key="option.id" :value="option">
{{ option.description }}
</option>
</select>
<div v-if="axis === 'x'">
<va-select
@input="changeAxis()"
:label="''"
v-if="deviceName!=='EliteEIS' || (deviceName==='EliteEIS' && metaList[metaIndex].parameter_set.MODE === 1)"
v-model="channelFormat"
textBy="description"
class="va-select-without-margin"
:options="channelOptions"
:noClear='true'
/>
<va-select
@input="changeAxis()"
:label="''"
v-if="deviceName==='EliteEIS' && metaList[metaIndex].parameter_set.MODE !== 1"
v-model="channelFormat"
textBy="description"
class="va-select-without-margin"
:options="eisChannelOptions"
:noClear='true'
/>
</div>
<div v-if="axis === 'y'" style="display: inline;">
<select v-model="channelFormat" @change="changeAxis()">
<option v-for="option in channelYOptions" :key="option.id" :value="option">
{{ option.description }}
</option>
</select>
<div v-if="axis === 'y'">
<va-select
@input="changeAxis()"
:label="''"
v-if="deviceName!=='EliteEIS'"
v-model="channelFormat"
textBy="description"
class="va-select-without-margin"
:options="channelYOptions"
:noClear='true'
/>
<va-select
@input="changeAxis()"
:label="''"
v-if="deviceName==='EliteEIS'"
v-model="channelFormat"
textBy="description"
class="va-select-without-margin"
:options="eisChannelYOptions"
:noClear='true'
/>
</div>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
import { newChartMode } from '@/factories/chart/chartFactory'
export default {
name: 'change-axis',
components: {
},
props: {
deviceName: {
type: String, // elite or neulive
},
axis: {
type: String, // x or y
},
@@ -46,20 +71,22 @@ export default {
'metaList',
'axisXDataType',
'axisYDataType',
'showCyclePanel',
]),
},
methods: {
init () {
if (this.deviceName === 'neulive') {
init (deviceName) {
this.deviceName = deviceName
if (this.deviceName.startsWith('Neulive')) {
// now neulive only v-t
if (this.axis === 'x') {
this.axisXDataType = this.channelOptions[3]
} else if (this.axis === 'y') {
this.axisYDataType = this.channelOptions[1]
}
} else if (this.deviceName === 'elite') {
} else if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC')) {
// use state meta to decide which default unit need to be used (like check I-V mode...)
const setting = newChartMode(this.metaList[this.metaIndex].parameter_set.MODE)
const setting = this.GLOBAL.getDefaultChartTypeByMode(this.metaList[this.metaIndex].parameter_set.MODE, this.deviceName)
const xType = setting[0]
const xValue = setting[1]
const yType = setting[2]
@@ -70,6 +97,53 @@ export default {
settingType = xType
settingValue = xValue
if (settingType === 'Elite') {
// 1: I, 2: V, 3: R
if (settingValue === 1) {
this.axisXDataType = this.channelOptions[0]
} else if (settingValue === 2) {
this.axisXDataType = this.channelOptions[1]
} else if (settingValue === 3) {
this.axisXDataType = this.channelOptions[2]
} else if (settingValue === 4) {
this.axisXDataType = this.channelOptions[3]
}
} else if (settingType === 'Time') {
this.axisXDataType = this.channelOptions[4]
}
this.channelFormat = this.axisXDataType
} else if (this.axis === 'y') {
settingType = yType
settingValue = yValue
if (settingType === 'Elite') {
// 1: I, 2: V, 3: R
if (settingValue === 1) {
this.axisYDataType = this.channelOptions[0]
} else if (settingValue === 2) {
this.axisYDataType = this.channelOptions[1]
} else if (settingValue === 3) {
this.axisYDataType = this.channelOptions[2]
} else if (settingValue === 4) {
this.axisXDataType = this.channelOptions[3]
}
} else if (settingType === 'Time') {
this.axisYDataType = this.channelOptions[4]
}
this.channelFormat = this.axisYDataType
}
} else if (this.deviceName.includes('EIS')) {
const setting = this.GLOBAL.getDefaultChartTypeByMode(this.metaList[this.metaIndex].parameter_set.MODE, this.deviceName)
const xType = setting[0]
const xValue = setting[1]
const yType = setting[2]
const yValue = setting[3]
let settingType
let settingValue
if (this.axis === 'x') {
settingType = xType
settingValue = xValue
if (settingType.includes('EIS')) {
this.axisXDataType = this.eisChannelOptions.find(element => element.id === parseInt(settingValue) - 1)
} else if (settingType === 'Elite') {
// 1: I, 2: V, 3: R
if (settingValue === 1) {
this.axisXDataType = this.channelOptions[0]
@@ -85,7 +159,9 @@ export default {
} else if (this.axis === 'y') {
settingType = yType
settingValue = yValue
if (settingType === 'Elite') {
if (settingType.includes('EIS')) {
this.axisYDataType = this.eisChannelOptions.find(element => element.id === parseInt(settingValue) - 1)
} else if (settingType === 'Elite') {
// 1: I, 2: V, 3: R
if (settingValue === 1) {
this.axisYDataType = this.channelOptions[0]
@@ -105,26 +181,34 @@ export default {
}
},
changeAxis () {
if (this.deviceName === 'neulive') {
if (this.deviceName.startsWith('Neulive')) {
// for elite now, cuz neulive now only have v-t graph, for future neulive replay need to adjust'
console.log('(Last updated: 2021/06/19)')
} else if (this.deviceName === 'elite') {
// console.log('(Last updated: 2021/06/19)')
} else if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC') || this.deviceName.includes('EIS')) {
if (this.axis === 'x') {
this.axisXDataType = this.channelFormat
} else if (this.axis === 'y') {
this.axisYDataType = this.channelFormat
}
if (this.metaList[this.metaIndex].parameter_set.CYCLE_NUMBER > 0) {
this.showCyclePanel = true
} else {
this.showCyclePanel = false
}
this.$emit('changeAxis', this.metaIndex) // temporarily use metaIndex for gridIndex
this.$emit('changeUnit', this.axis)
this.$emit('resetScale')
this.$emit('clearCycle')
}
},
getChannelByAxis () {
return this.channelFormat.description
},
},
mounted () {
},
data () {
return {
deviceName: '',
channelFormat: {},
channelOptions: [
{
@@ -139,6 +223,10 @@ export default {
id: 2,
description: 'Resistance',
},
{
id: 3,
description: 'Cycle',
},
{
id: 100, // no usage, so assign a large number to avoid conflicting with existing channel data
description: 'Time',
@@ -157,6 +245,74 @@ export default {
id: 2,
description: 'Resistance',
},
{
id: 3,
description: 'Cycle',
},
],
eisChannelOptions: [ // id 0 (Raw Imag), 1 (Raw Real), 3 (Cycle) 不用給user選
{
id: 2,
description: 'Frequency',
},
{
id: 4,
description: 'Z_imag',
},
{
id: 5,
description: 'Z_real',
},
{
id: 6,
description: 'Impedance',
},
{
id: 7,
description: 'Phase',
},
{
id: 8,
description: 'Current',
},
{
id: 9,
description: 'Gain Level',
},
{
id: 100, // no usage, so assign a large number to avoid conflicting with existing channel data
description: 'Time',
},
],
eisChannelYOptions: [ // id 0 (Raw Imag), 1 (Raw Real), 3 (Cycle) 不用給user選
{
id: 2,
description: 'Frequency',
},
{
id: 4,
description: 'Z_imag',
},
{
id: 5,
description: 'Z_real',
},
{
id: 6,
description: 'Impedance',
},
{
id: 7,
description: 'Phase',
},
{
id: 8,
description: 'Current',
},
{
id: 9,
description: 'Gain Level',
},
],
}
},
@@ -165,3 +321,11 @@ export default {
}
</script>
<style lang="scss">
.va-select-without-margin {
.va-select {
margin-bottom: 0;
}
}
</style>
@@ -0,0 +1,81 @@
<template>
<div>
<va-select
v-model="controlPanel[axis].type"
testBy="name"
class="va-select-without-margin"
:options="typeOption"
:noClear='true'
@input="changeAxis()"
/>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
import { tableRouter } from '@/components/analysis/replay/toolbox/EliteReplayTable'
export default {
name: 'change-axis-b',
props: {
axis: {
type: String, // x or y
},
},
data () {
return {
typeOption: [],
tableRouter,
}
},
computed: {
...mapFields('replay', [
'controlPanel',
]),
},
methods: {
init (type) {
if (this.axis === 'x') {
this.typeOption = [
'Time',
'Current',
'Voltage',
'Resistance',
]
} else {
this.typeOption = [
'Current',
'Voltage',
'Resistance',
]
}
// init call change Axis
if (this.axis === 'y') {
this.$emit('changeAxis', 0) // temporarily use metaIndex for gridIndex
}
},
refreshAxis (xType, xFunct, yType, yFunct) {
const [xTable, yTable] = this.tableRouter.getTable(xType, xFunct, yType, yFunct)
if (this.axis === 'x') {
this.controlPanel[this.axis].type = xTable.name
this.controlPanel[this.axis].channel = xTable.channel
} else {
this.controlPanel[this.axis].type = yTable.name
this.controlPanel[this.axis].channel = yTable.channel
}
},
changeAxis () {
this.controlPanel[this.axis].channel = tableRouter.getChannel(this.controlPanel[this.axis].type)
this.$emit('changeAxis', 0)
},
},
}
</script>
<style lang="scss">
.va-select-without-margin {
.va-select {
margin-bottom: 0;
}
}
</style>
@@ -64,13 +64,13 @@ export default {
}
},
showPanel (params) {
if (params.target !== undefined) {
if (params.target.eventData.componentType === 'xAxis' && params.target.eventData.targetType === 'axisLabel') {
this.gridIndex = params.target.eventData.xAxisIndex
if (params.targetType !== undefined) {
if (params.componentType === 'xAxis' && params.targetType === 'axisLabel') {
this.gridIndex = params.xAxisIndex
this.axis = 'x'
this.position = 'bottom'
} else if (params.target.eventData.componentType === 'yAxis' && params.target.eventData.targetType === 'axisLabel') {
this.gridIndex = params.target.eventData.yAxisIndex
} else if (params.componentType === 'yAxis' && params.targetType === 'axisLabel') {
this.gridIndex = params.yAxisIndex
this.axis = 'y'
this.position = 'left'
}
@@ -1,5 +1,5 @@
<template>
<div v-show="showPanel">
<div v-if="showPanel">
<va-input
v-model="showWhichCycles"
@change="setCycle"
@@ -9,9 +9,10 @@
</template>
<script>
import { mapMutations } from 'vuex'
import { mapMutations, mapGetters } from 'vuex'
import { mapFields } from 'vuex-map-fields'
import types from '@/store/modules/analysis/replay/types'
import { download } from '@/data/download/Download'
export default {
name: 'change-cycle',
@@ -31,15 +32,32 @@ export default {
},
data () {
return {
showPanel: true,
showPanel: false,
metaID: 0,
showWhichCycles: '',
cycleNum: 0,
cycleDataID: 3, // [TODO] manage by data type factory
}
},
computed: {
slices: function () {
...mapFields('replay', [
'chartData',
'recInfo',
'metaList',
'currentScale',
'sampleMethod',
'axisXDataType',
'axisYDataType',
'axisXLabelScale',
'axisYLabelScale',
'showCyclePanel',
'showWhichCycles',
'controlPanel',
]),
},
watch: {
},
methods: {
slices () {
const cycleList = this.showWhichCycles.split(',')
if (cycleList.length === 1 && cycleList[0] === '') {
return ''
@@ -55,106 +73,113 @@ export default {
}
}
}
// console.log(cycleList)
return cycleList
const cycleSet = new Set(cycleList)
const sortedCycleList = [...cycleSet].sort() // ref: https://stackoverflow.com/questions/33089695/how-can-i-sort-an-es6-set
return sortedCycleList
},
...mapFields('replay', [
'chartData',
'recInfo',
'metaList',
'currentScale',
'axisXDataType',
'axisYDataType',
]),
},
watch: {
},
methods: {
init () {
this.cycleNum = this.metaList[this.metaIndex].parameter_set.CYCLE_NUMBER
this.metaID = this.metaList[this.metaIndex].id
if (this.cycleNum === 0) {
const meta = this.metaList[this.metaIndex]
this.metaID = meta.id
this.isThisModeHasCycle = this.GLOBAL.hasCycleMode(this.metaList[this.metaIndex].parameter_set.MODE, meta.device.library_name)
if (this.isThisModeHasCycle === true) {
this.showCyclePanel = true
this.showPanel = true
} else {
this.showCyclePanel = false
this.showPanel = false
}
},
clear () {
this.showWhichCycles = ''
this.showWhichCycles = '1'
},
setCycle () {
console.log('setCycle')
if (this.cycleNum !== 0) {
// get cycle data
const scaleDataNum = this.recInfo[this.metaID][this.cycleDataID][this.currentScale].length
// console.log(scaleDataNum)
let allCycleData = []
for (let i = 0; i < scaleDataNum; i++) {
const cycleDataArray = this.recInfo[this.metaID][this.cycleDataID][this.currentScale][i].data
allCycleData = allCycleData.concat(cycleDataArray)
}
var cycleDict = {}
var cycleStartIndex = 0
var cycleEndIndex = 0
var currentCycleIndex = 0
for (let index = 0; index < allCycleData.length; index++) {
const value = allCycleData[index]
const cycleIndex = parseInt(value[1])
if (cycleIndex === currentCycleIndex) {
if (currentCycleIndex in cycleDict) {
cycleEndIndex = index
cycleDict[cycleIndex][1] = cycleEndIndex
} else {
cycleDict[cycleIndex] = [cycleStartIndex, cycleEndIndex]
}
async setCycle () {
if (this.isThisModeHasCycle === true) {
const dataCycleList = this.recInfo[this.metaID][this.cycleDataID][this.currentScale]
const cycleDataList = []
for (let i = 0; i < dataCycleList.length; i++) {
if (dataCycleList[i].data.length === 0) {
const data = await this.getData(parseInt(this.currentScale), this.sampleMethod, dataCycleList[i].id, this.cycleDataID, this.metaList[this.metaIndex])
cycleDataList.push({ data: data })
} else {
cycleStartIndex = index
currentCycleIndex++
cycleDataList.push({ data: dataCycleList[i].data })
}
}
// get recording data
let allXData = []
if (this.axisXDataType.description !== 'Time') {
for (let i = 0; i < scaleDataNum; i++) {
const xDataArray = this.recInfo[this.metaID][this.axisXDataType.id][this.currentScale][i].data
allXData = allXData.concat(xDataArray)
}
const cycleDict = this.getCycleDictRec()(cycleDataList)
this.cycleNum = Object.keys(cycleDict).length
let dataXList
if (this.controlPanel.x.type !== 'Time') {
dataXList = this.recInfo[this.metaID][this.controlPanel.x.channel][this.currentScale]
}
let allYData = []
for (let i = 0; i < scaleDataNum; i++) {
const cycleDataArray = this.recInfo[this.metaID][this.axisYDataType.id][this.currentScale][i].data
allYData = allYData.concat(cycleDataArray)
}
const data = []
const dataYList = this.recInfo[this.metaID][this.controlPanel.y.channel][this.currentScale]
const filteredData = []
let counter = 0
for (let sliceIndex = 0; sliceIndex < this.cycleNum; sliceIndex++) {
// console.log(this.slices)
if (this.slices === '' || this.slices.includes((sliceIndex + 1).toString())) {
if (this.slices() === '' || this.slices().includes((sliceIndex + 1).toString())) {
// slice data
const value = cycleDict[sliceIndex + 1]
const start = value[0]
const end = value[1] + 1
const sliceYData = allYData.slice(start, end)
const sliceLen = sliceYData.length
if (allXData.length !== 0) {
const sliceXData = allXData.slice(start, end)
for (let j = 0; j < sliceLen; j++) {
data.push([sliceXData[j][1], sliceYData[j][1]])
const startTime = value[0]
const endTime = value[1]
let startIndex = 0
let endIndex = 0
for (let i = 0; i < dataYList.length; i++) {
if (startTime >= parseInt(dataYList[i].start_time) && startTime <= parseInt(dataYList[i].end_time)) {
startIndex = i
}
} else {
const sliceYData = allYData.slice(start, end)
for (let j = 0; j < sliceLen; j++) {
data.push(sliceYData[j])
if (endTime >= parseInt(dataYList[i].start_time) && endTime <= parseInt(dataYList[i].end_time)) {
endIndex = i
}
}
for (let i = startIndex; i <= endIndex; i++) {
const dataY = await this.getData(parseInt(this.currentScale), this.sampleMethod, dataYList[i].id, this.controlPanel.y.channel, this.metaList[this.metaIndex])
if (this.controlPanel.x.type !== 'Time') {
const dataX = await this.getData(parseInt(this.currentScale), this.sampleMethod, dataXList[i].id, this.controlPanel.x.channel, this.metaList[this.metaIndex])
for (let j = 0, len = dataY.length; j < len; j++) {
if (parseInt(dataY[j][0]) >= startTime && parseInt(dataY[j][0]) <= endTime) {
filteredData.push([dataX[j][1], dataY[j][1]])
}
}
} else {
for (let j = 0, len = dataY.length; j < len; j++) {
if (parseInt(dataY[j][0]) >= startTime && parseInt(dataY[j][0]) <= endTime) {
filteredData.push(dataY[j])
}
}
}
}
this.updateSeriesChart({
chartID: this.chartID,
seriesIndex: this.metaIndex,
data: filteredData,
})
if (this.controlPanel.x.type === 'Time') {
if (counter === 0) {
this.chartData[this.chartID].xAxis[this.metaIndex].min = startTime
}
this.chartData[this.chartID].xAxis[this.metaIndex].max = endTime
counter++
}
// this.$emit('refreshChart', this.chartData[this.chartID])
}
}
this.updateSeriesChart({
chartID: this.chartID,
seriesIndex: this.metaIndex,
data: JSON.parse(JSON.stringify(data)),
})
}
this.$emit('refreshChart', this.chartData[this.chartID])
},
getData: async function (scale, sampleMethod, id, channel, meta) {
if (scale === 1) {
return await download.rawByIDChannels(id, channel, meta)
} else {
if (sampleMethod === 'mean') {
return await download.miniMeanByIDChannel(id, channel, meta)
} else if (sampleMethod === 'random') {
return await download.miniRandomByIDChannel(id, channel, meta)
}
}
},
...mapMutations('replay', [types.chart.updateSeries]),
...mapGetters('replay', [types.rec.getCycleDict]),
},
mounted () {
@@ -0,0 +1,55 @@
<template>
<div>
<va-radio-button
v-for="(funct, index) in functOption"
:key="index"
v-model="controlPanel[axis].funct"
:option="funct"
@input="changeFunct()"
/>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
import { tableRouter } from '@/components/analysis/replay/toolbox/EliteReplayTable'
export default {
name: 'change-funct-b',
props: {
axis: {
type: String, // x or y
},
},
data () {
return {
funct: '',
functOption: [],
tableRouter,
}
},
computed: {
...mapFields('replay', [
'controlPanel',
]),
},
methods: {
init () {
this.controlPanel[this.axis].funct = 'Linear'
this.functOption = this.tableRouter.getFunct(this.axis)
},
changeFunct () {
this.$emit('changeFunct', this.axis)
},
},
}
</script>
<style lang="scss">
.va-select-without-margin {
.va-select {
margin-bottom: 0;
}
}
</style>
@@ -1,26 +1,29 @@
<!-- eslint-disable prefer-const -->
<template>
<div>
<select v-model="scaleFormat" @change="changeScale()">
<option v-for="option in scaleOptions" :key="option.id" :value="option">
{{ option.description }}
</option>
</select>
<va-select
@input="changeScale()"
:label="''"
v-model="scaleFormat"
textBy="description"
class="va-select-without-margin"
:options="scaleOptions"
:noClear='true'
/>
</div>
</template>
<script>
import { mapMutations } from 'vuex'
import { mapActions, mapMutations, mapGetters } from 'vuex'
import { mapFields } from 'vuex-map-fields'
import types from '@/store/modules/analysis/replay/types'
import { download } from '@/data/download/Download'
export default {
name: 'change-scale',
components: {
},
props: {
deviceName: {
type: String, // elite or neulive
},
chartID: {
type: Number, // detail data
default: 1,
@@ -36,6 +39,13 @@ export default {
created () {
},
computed: {
displayType () {
return {
x: this.axisXLabelScale.description === 'Log' ? 'log' : 'value',
y: this.axisYLabelScale.description === 'Log' ? 'log' : 'value',
}
},
...mapFields('replay', [
'chartData',
'recInfo',
@@ -44,14 +54,18 @@ export default {
'axisYLabelScale',
'axisXDataType',
'axisYDataType',
'absToggleStatus',
'startTimeCurrent',
'endTimeCurrent',
'currentScale',
'sampleMethod',
]),
},
methods: {
init () {
this.metaID = this.metaList[this.metaIndex].id
init (deviceName) {
this.deviceName = deviceName
this.metaInfo = this.metaList[this.metaIndex]
this.metaID = this.metaInfo.id
if (this.axis === 'x') {
this.axisXLabelScale = this.scaleOptions[0] // 0 mean use default unit
this.scaleFormat = this.axisXLabelScale
@@ -66,60 +80,125 @@ export default {
} else if (this.axis === 'y') {
this.axisYLabelScale = this.scaleFormat
}
if (this.deviceName === 'neulive') {
const keys = Object.keys(this.metaList[this.metaIndex].mini_data)
if (this.deviceName.startsWith('Neulive')) {
const keys = Object.keys(this.metaInfo.mini_data)
for (let gridIndex = 0; gridIndex < keys.length; gridIndex++) {
const ch = keys[gridIndex]
if (parseInt(ch) < 256) { // 256: x, 257: y, 258: z, 259: mag
this.calculateScaleHelper(gridIndex, ch)
}
}
} else if (this.deviceName === 'elite') {
} else if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC') || this.deviceName.includes('EIS')) {
this.calculateScaleHelper(this.metaIndex, -1) // [TODO] elite tmp use metaIndex for grid index
}
this.$emit('refreshChart', this.chartData[this.chartID])
},
calculateScaleHelper (gridIndex, ch) {
// console.log(this.recInfo)
let seriesData
if (this.scaleFormat.description === 'Log') {
seriesData = JSON.parse(JSON.stringify(this.chartData[this.chartID].series[gridIndex].data))
for (let i = 0; i < seriesData.length; i++) {
if (this.axis === 'x') {
seriesData[i][0] = Math.log10(Math.abs(seriesData[i][0]))
} else if (this.axis === 'y') {
seriesData[i][1] = Math.log10(Math.abs(seriesData[i][1]))
async calculateScaleHelper (gridIndex, ch) {
// console.log('desc', this.scaleFormat.description)
/* var _dataDiff = []
var _dataIntegral = []
var _dataLog = []
// this.$emit('changeAxis', this.metaIndex)
// this.$emit('clearCycle')
if (this.scaleFormat.description === 'Differential') {
// await this.reDrawChart()
// eslint-disable-next-line prefer-const
let seriesData = JSON.parse(JSON.stringify(this.chartData[this.chartID].series[gridIndex].data))
// console.log('diff')
var curXData = 0
var curYData = 0
var prevXData = 0
var prevYData = 0
var timeGap = 0
var curTime = 0
_dataDiff = []
var diffResult = 0
for (let index = 0; index < seriesData.length; index++) {
if (index === 0) {
curXData = parseFloat(seriesData[index][0])
curYData = parseFloat(seriesData[index][1])
// timeGap = seriesData[index + 1][timeIndex] - seriesData[index][timeIndex]
// curTime = seriesData[index][timeIndex]
// _data.push([curTime, 0, curTime])
} else {
curXData = parseFloat(seriesData[index][0])
curYData = parseFloat(seriesData[index][1])
prevXData = parseFloat(seriesData[index - 1][0])
prevYData = parseFloat(seriesData[index - 1][1])
curTime += timeGap
diffResult = parseFloat((curYData - prevYData) / (curXData - prevXData))
_dataDiff.push([curXData, diffResult])
}
}
} else if (this.scaleFormat.description === 'Linear') {
if (this.deviceName === 'neulive') {
// [Region] get the subfile index
const dataList = this.recInfo[this.metaID][ch][this.currentScale]
let startIndex = 0
let endIndex = 0
for (let i = 0; i < dataList.length; i++) {
if (this.startTimeCurrent >= parseInt(dataList[i].start_time) && this.startTimeCurrent <= parseInt(dataList[i].end_time)) {
startIndex = i
}
if (this.endTimeCurrent >= parseInt(dataList[i].start_time) && this.endTimeCurrent <= parseInt(dataList[i].end_time)) {
endIndex = i
}
this.updateSeriesChart({
chartID: this.chartID,
seriesIndex: gridIndex,
data: _dataDiff,
})
} else if (this.scaleFormat.description === 'Integral') {
// await this.reDrawChart()
// eslint-disable-next-line prefer-const
let seriesData = JSON.parse(JSON.stringify(this.chartData[this.chartID].series[gridIndex].data))
var curYDataIntegral = 0
var prevYDataIntegral = 0
var timeGapIntegral = 0
var curTimeIntegral = 0
var integralResult = 0
_dataIntegral = []
for (let index = 0; index < seriesData.length; index++) {
if (index === 0) {
curYDataIntegral = parseFloat(seriesData[index][1])
timeGapIntegral = seriesData[index + 1][0] - seriesData[index][0]
curTimeIntegral = seriesData[index][0]
_dataIntegral.push([curTime, 0])
} else {
prevYDataIntegral = parseFloat(seriesData[index - 1][1])
curYDataIntegral = parseFloat(seriesData[index][1])
integralResult += parseFloat((Math.abs(curYDataIntegral) + Math.abs(prevYDataIntegral)) * timeGapIntegral / 2)
curTimeIntegral += timeGapIntegral
_dataIntegral.push([curTimeIntegral, integralResult])
}
// [EndRegion]
const allYData = []
for (let i = startIndex; i <= endIndex; i++) {
const data = dataList[i].data
for (let j = 0, len = data.length; j < len; j++) {
if (parseInt(data[j][0]) >= this.startTimeCurrent && parseInt(data[j][0]) <= this.endTimeCurrent) {
allYData.push(data[j])
}
this.updateSeriesChart({
chartID: this.chartID,
seriesIndex: gridIndex,
data: _dataIntegral,
})
} else if (this.scaleFormat.description === 'Log') {
await this.reDrawChart()
setTimeout(() => {
// eslint-disable-next-line prefer-const
let seriesData = JSON.parse(JSON.stringify(this.chartData[this.chartID].series[gridIndex].data))
_dataLog = seriesData
for (let i = 0; i < seriesData.length; i++) {
if (this.axis === 'x') {
seriesData[i][0] = parseFloat(seriesData[i][0])
if (seriesData[i][0] !== 0) {
// seriesData[i][0] = Math.log10(Math.abs(seriesData[i][0]))
_dataLog[i][0] = Math.log10(Math.abs(seriesData[i][0]))
}
} else if (this.axis === 'y') {
seriesData[i][1] = parseFloat(seriesData[i][1])
if (seriesData[i][1] !== 0) {
// seriesData[i][1] = Math.log10(Math.abs(seriesData[i][1]))
_dataLog[i][1] = Math.log10(Math.abs(seriesData[i][1]))
}
}
}
// [TODO] for future, neulive may need to change x axis
seriesData = JSON.parse(JSON.stringify(allYData))
} else if (this.deviceName === 'elite') {
this.updateSeriesChart({
chartID: this.chartID,
seriesIndex: gridIndex,
data: _dataLog,
})
console.log('done')
}, 2000)
// eslint-disable-next-line prefer-const
} else if (this.scaleFormat.description === 'Linear') {
if (this.deviceName.startsWith('Neulive')) {
console.log('inside neulive')
// [Region] get the subfile index
const dataYList = this.recInfo[this.metaID][this.axisYDataType.id][this.currentScale]
// eslint-disable-next-line prefer-const
let seriesData = []
const dataYList = this.recInfo[this.metaID][ch][this.currentScale]
let startIndex = 0
let endIndex = 0
for (let i = 0; i < dataYList.length; i++) {
@@ -131,60 +210,72 @@ export default {
}
}
// [EndRegion]
const allXData = []
const allYData = []
for (let i = startIndex; i <= endIndex; i++) {
if (this.axisXDataType.description !== 'Time') {
const dataX = this.recInfo[this.metaID][this.axisXDataType.id][this.currentScale][i].data
for (let j = 0, len = dataX.length; j < len; j++) {
if (parseInt(dataX[j][0]) >= this.startTimeCurrent && parseInt(dataX[j][0]) <= this.endTimeCurrent) {
allXData.push(dataX[j])
const data = await this.getData(parseInt(this.currentScale), this.sampleMethod, dataYList[i].id, ch, this.metaInfo)
for (let j = 0, len = data.length; j < len; j++) {
if (parseInt(data[j][0]) >= this.startTimeCurrent && parseInt(data[j][0]) <= this.endTimeCurrent) {
const processedData = data[j]
if (this.displayType.x === 'log' || this.absToggleStatus.x === true) {
processedData[0] = Math.abs(processedData[0])
}
}
}
const dataY = this.recInfo[this.metaID][this.axisYDataType.id][this.currentScale][i].data
for (let j = 0, len = dataY.length; j < len; j++) {
if (parseInt(dataY[j][0]) >= this.startTimeCurrent && parseInt(dataY[j][0]) <= this.endTimeCurrent) {
allYData.push(dataY[j])
if (this.displayType.y === 'log' || this.absToggleStatus.y === true) {
processedData[1] = Math.abs(processedData[1])
}
seriesData.push(processedData)
}
}
}
seriesData = []
for (let i = 0, len = allYData.length; i < len; i++) {
if (parseInt(allYData[i][0]) >= this.startTimeCurrent && parseInt(allYData[i][0]) <= this.endTimeCurrent) {
const processedData = JSON.parse(JSON.stringify(allYData[i]))
if (allXData.length !== 0) {
processedData[0] = allXData[i][1]
}
seriesData.push(processedData)
}
}
} else if (this.deviceName === 'EliteZM15' || this.deviceName === 'EliteEIS') {
console.log('inside Elite')
// this.$emit('changeAxis', this.metaIndex)
// this.$emit('clearCycle')
this.reDrawChart()
}
} */
// console.log('inside changeScale: ', this.scaleFormat.description)
this.reDrawChart()
this.setAxisDisplayChart({ type: this.displayType[this.axis], axis: this.axis, chartID: this.chartID, gridIndex: gridIndex })
},
reDrawChart: function () {
// console.log('die here')
this.$emit('changeFunctional', this.axis, this.scaleFormat.description)
// console.log('reDrawChart: ', this.axis, this.scaleFormat.description)
this.$emit('changeAxis', this.metaIndex)
this.$emit('clearCycle')
},
getData: async function (scale, sampleMethod, id, channel, meta) {
if (scale === 1) {
return await download.rawByIDChannels(id, channel, meta)
} else {
if (sampleMethod === 'mean') {
return await download.miniMeanByIDChannel(id, channel, meta)
} else if (sampleMethod === 'random') {
return await download.miniRandomByIDChannel(id, channel, meta)
}
}
this.updateSeriesChart({
chartID: this.chartID,
seriesIndex: gridIndex,
data: JSON.parse(JSON.stringify(seriesData)),
})
},
reset () {
if (this.axis === 'x') {
this.axisXLabelScale = this.scaleOptions[0] // 0 mean use default unit
this.scaleFormat = this.axisXLabelScale
} else if (this.axis === 'y') {
this.axisYLabelScale = this.scaleOptions[0] // 0 mean use default unit
this.scaleFormat = this.axisYLabelScale
}
getScaleByAxis () {
return this.scaleFormat.description
},
...mapActions('replay', [types.chart.setAxisDisplay]),
...mapMutations('replay', [types.chart.updateSeries]),
...mapGetters('replay', [types.rec.getCycleDict]),
},
mounted () {
if (this.axis === 'x') {
this.scaleOptions = this.scaleXOptions
} else if (this.axis === 'y') {
this.scaleOptions = this.scaleYOptions
}
},
data () {
return {
deviceName: '',
metaID: 0,
metaInfo: null,
scaleFormat: { id: 0, description: 'Linear' },
scaleOptions: [
scaleOptions: [],
scaleXOptions: [
{
id: 0,
description: 'Linear',
@@ -194,6 +285,24 @@ export default {
description: 'Log',
},
],
scaleYOptions: [
{
id: 0,
description: 'Linear',
},
{
id: 1,
description: 'Log',
},
{
id: 2,
description: 'Integral',
},
{
id: 3,
description: 'Differential',
},
],
}
},
destroyed () {
@@ -201,3 +310,11 @@ export default {
}
</script>
<style lang="scss">
.va-select-without-margin {
.va-select {
margin-bottom: 0;
}
}
</style>
@@ -1,10 +1,25 @@
<template>
<div>
<select v-model="valueFormat" @change="changeUnit()">
<option v-for="option in valueFormatOptions[dataType]" :key="option.id" :value="option">
{{ option.unit }}
</option>
</select>
<va-select
@input="changeUnit()"
:label="''"
v-if="deviceName!=='EliteEIS'"
v-model="valueFormat"
textBy="unit"
class="va-select-without-margin"
:options="valueFormatOptions[dataType]"
:noClear='true'
/>
<va-select
@input="changeUnit()"
:label="''"
v-if="deviceName==='EliteEIS'"
v-model="valueFormat"
textBy="unit"
class="va-select-without-margin"
:options="eisValueFormatOptions[dataType]"
:noClear='true'
/>
</div>
</template>
@@ -12,16 +27,12 @@
import { mapMutations } from 'vuex'
import { mapFields } from 'vuex-map-fields'
import types from '@/store/modules/analysis/replay/types'
import { newChartMode } from '@/factories/chart/chartFactory'
export default {
name: 'change-unit',
components: {
},
props: {
deviceName: {
type: String, // elite or neulive
},
axis: {
type: String, // x or y
},
@@ -43,17 +54,35 @@ export default {
]),
},
methods: {
init () {
if (this.deviceName === 'neulive') {
initDefaultUnit (axis) {
if (this.deviceName.startsWith('Neulive')) {
if (axis === 'x') {
return this.valueFormatOptions[this.dataType].find(function (item, index, array) {
return item.unit === 'auto'
})
} else if (axis === 'y') {
return this.valueFormatOptions[this.dataType].find(function (item, index, array) {
return item.unit === 'uV'
})
}
} else if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC')) {
return this.valueFormatOptions[this.dataType][0]
} else if (this.deviceName.includes('EIS')) {
return this.eisValueFormatOptions[this.dataType][0]
}
},
init (deviceName) {
this.deviceName = deviceName
if (this.deviceName.startsWith('Neulive')) {
// now neulive only v-t
if (this.axis === 'x') {
this.dataType = 'time'
} else if (this.axis === 'y') {
this.dataType = 'voltage'
}
} else if (this.deviceName === 'elite') {
} else if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC')) {
// use state meta to decide which default unit need to be used (like check I-V mode...)
const setting = newChartMode(this.metaList[this.metaIndex].parameter_set.MODE)
const setting = this.GLOBAL.getDefaultChartTypeByMode(this.metaList[this.metaIndex].parameter_set.MODE, this.deviceName)
const xType = setting[0]
const xValue = setting[1]
const yType = setting[2]
@@ -69,6 +98,48 @@ export default {
}
if (settingType === 'Elite') {
// 1: I, 2: V, 3: R
if (settingValue === 1) {
this.dataType = 'current'
} else if (settingValue === 2) {
this.dataType = 'voltage'
} else if (settingValue === 3) {
this.dataType = 'resistance'
} else if (settingValue === 4) {
this.dataType = 'cycle'
}
} else if (settingType === 'Time') {
this.dataType = 'time'
}
} else if (this.deviceName.includes('EIS')) {
const setting = this.GLOBAL.getDefaultChartTypeByMode(this.metaList[this.metaIndex].parameter_set.MODE, this.deviceName)
const xType = setting[0]
const xValue = setting[1]
const yType = setting[2]
const yValue = setting[3]
let settingType
let settingValue
if (this.axis === 'x') {
settingType = xType
settingValue = xValue
} else if (this.axis === 'y') {
settingType = yType
settingValue = yValue
}
if (settingType.includes('EIS')) {
if (settingValue === 3) {
this.dataType = 'frequency'
} else if (settingValue === 5 || settingValue === 6 || settingValue === 7) {
this.dataType = 'impedance'
} else if (settingValue === 8) {
this.dataType = 'phase'
} else if (settingValue === 9) {
this.dataType = 'current'
} else if (settingValue === 10) {
this.dataType = 'default'
}
} else if (settingType === 'Elite') {
// 1: I, 2: V, 3: R
if (settingValue === 1) {
this.dataType = 'current'
@@ -82,10 +153,10 @@ export default {
}
}
if (this.axis === 'x') {
this.valueFormatX = this.valueFormatOptions[this.dataType][0]
this.valueFormatX = this.initDefaultUnit(this.axis)
this.valueFormat = this.valueFormatX
} else if (this.axis === 'y') {
this.valueFormatY = this.valueFormatOptions[this.dataType][0] // 0 mean use default unit (i.e. unitScale = 1)
this.valueFormatY = this.initDefaultUnit(this.axis)
this.valueFormat = this.valueFormatY
}
this.changeUnit()
@@ -97,7 +168,7 @@ export default {
this.valueFormatY = this.valueFormat
}
const chartID = 1 // detail data
if (this.deviceName === 'neulive') {
if (this.deviceName.startsWith('Neulive')) {
const keys = Object.keys(this.metaList[this.metaIndex].mini_data)
for (let axisIndex = 0; axisIndex < keys.length; axisIndex++) {
const key = keys[axisIndex]
@@ -108,7 +179,7 @@ export default {
channel: parseInt(key),
})
}
} else if (this.deviceName === 'elite') {
} else if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC') || this.deviceName.includes('EIS')) {
this.updateAxisLabelChart({
chartID: chartID,
axis: this.axis,
@@ -128,6 +199,16 @@ export default {
this.dataType = 'resistance'
} else if (this.axisXDataType.description === 'Time') {
this.dataType = 'time'
} else if (this.axisXDataType.description === 'Cycle') {
this.dataType = 'cycle'
} else if (this.axisXDataType.description === 'Frequency') {
this.dataType = 'frequency'
} else if (this.axisXDataType.description === 'Z_imag' || this.axisXDataType.description === 'Z_real' || this.axisXDataType.description === 'Impedance') {
this.dataType = 'impedance'
} else if (this.axisXDataType.description === 'Phase') {
this.dataType = 'phase'
} else if (this.axisXDataType.description === 'Gain Level') {
this.dataType = 'default'
}
} else if (this.axis === 'y') {
if (this.axisYDataType.description === 'Current') {
@@ -136,11 +217,32 @@ export default {
this.dataType = 'voltage'
} else if (this.axisYDataType.description === 'Resistance') {
this.dataType = 'resistance'
} else if (this.axisYDataType.description === 'Cycle') {
this.dataType = 'cycle'
} else if (this.axisYDataType.description === 'Frequency') {
this.dataType = 'frequency'
} else if (this.axisYDataType.description === 'Z_imag' || this.axisYDataType.description === 'Z_real' || this.axisYDataType.description === 'Impedance') {
this.dataType = 'impedance'
} else if (this.axisYDataType.description === 'Phase') {
this.dataType = 'phase'
} else if (this.axisYDataType.description === 'Gain Level') {
this.dataType = 'default'
}
}
this.valueFormat = this.valueFormatOptions[this.dataType][0]
if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC')) {
this.valueFormat = this.valueFormatOptions[this.dataType][0]
} else if (this.deviceName.includes('EIS')) {
this.valueFormat = this.eisValueFormatOptions[this.dataType][0]
}
this.changeUnit()
},
getUnitByAxis () {
// console.log('valueFormat: ', this.valueFormat.unit)
if (this.valueFormat.unit === undefined) {
return 'auto'
}
return this.valueFormat.unit
},
// call vuex to mutate chart label formatter by unit and axis
...mapMutations('replay', [types.chart.updateAxisLabel]),
},
@@ -148,20 +250,21 @@ export default {
},
data () {
return {
deviceName: '',
dataType: '',
valueFormat: {},
valueFormatOptions: { // below id: 0 mean default
current: [
{
id: 0,
unit: 'nA',
unitScale: 1,
},
{
id: 1,
unit: 'uA',
unitScale: 1000,
},
{
id: 0,
unit: 'nA',
unitScale: 1,
},
{
id: 2,
unit: 'mA',
@@ -169,16 +272,16 @@ export default {
},
],
voltage: [ // Voltage
{
id: 0,
unit: 'uV',
unitScale: 1,
},
{
id: 1,
unit: 'mV',
unitScale: 1000,
},
{
id: 0,
unit: 'uV',
unitScale: 1,
},
{
id: 2,
unit: 'V',
@@ -186,16 +289,16 @@ export default {
},
],
resistance: [ // Resistance
{
id: 0,
unit: 'mΩ',
unitScale: 1,
},
{
id: 1,
unit: 'Ω',
unitScale: 1000,
},
{
id: 0,
unit: 'mΩ',
unitScale: 1,
},
{
id: 2,
unit: 'kΩ',
@@ -207,6 +310,13 @@ export default {
unitScale: 1000000000,
},
],
cycle: [ // Time
{
id: 0,
unit: 'cycle',
unitScale: 1,
},
],
time: [ // Time
{
id: 0,
@@ -215,6 +325,102 @@ export default {
},
],
},
eisValueFormatOptions: { // below id: 0 mean default
default: [
{
id: 0,
unit: 'default',
unitScale: 1,
},
],
current: [
{
id: 0,
unit: 'nA',
unitScale: 1,
},
{
id: 1,
unit: 'uA',
unitScale: 1e3,
},
{
id: 2,
unit: 'mA',
unitScale: 1e6,
},
],
voltage: [ // Voltage
{
id: 1,
unit: 'mV',
unitScale: 1000,
},
{
id: 0,
unit: 'uV',
unitScale: 1,
},
{
id: 2,
unit: 'V',
unitScale: 1000000,
},
],
frequency: [ // Frequency
{
id: 0,
unit: 'mHz',
unitScale: 1,
},
{
id: 1,
unit: 'Hz',
unitScale: 1e3,
},
{
id: 2,
unit: 'kHz',
unitScale: 1e6,
},
],
impedance: [ // Impedance
{
id: 1,
unit: 'Ω',
unitScale: 1,
},
{
id: 0,
unit: 'mΩ',
unitScale: 1e-3,
},
{
id: 2,
unit: 'kΩ',
unitScale: 1e3,
},
{
id: 3,
unit: 'MΩ',
unitScale: 1e6,
},
],
time: [ // Time
{
id: 0,
unit: 'auto',
unitScale: 1,
},
],
phase: [ // Phase
{
id: 0,
unit: '°',
unitScale: 1,
},
],
},
}
},
destroyed () {
@@ -222,3 +428,11 @@ export default {
}
</script>
<style lang="scss">
.va-select-without-margin {
.va-select {
margin-bottom: 0;
}
}
</style>
@@ -0,0 +1,65 @@
<template>
<div>
<va-select
@input="changeUnit()"
v-model="controlPanel[axis].unit"
class="va-select-without-margin"
:options="unitOption"
:noClear='true'
/>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
import { tableRouter } from '@/components/analysis/replay/toolbox/EliteReplayTable'
export default {
name: 'change-unit-b',
props: {
axis: {
type: String, // x or y
},
},
data () {
return {
unit: '',
unitOption: [],
tableRouter,
}
},
computed: {
...mapFields('replay', [
'controlPanel',
]),
},
methods: {
init (type) {
this.controlPanel[this.axis].unit = this.tableRouter.getDefaultUnit(type)
this.unitOption = Object.keys(this.tableRouter.getOption(type))
},
refreshUnit (xType, xFunct, yType, yFunct) {
const [xTable, yTable] = this.tableRouter.getTable(xType, xFunct, yType, yFunct)
if (this.axis === 'x') {
this.controlPanel[this.axis].unit = xTable.defaultUnit
this.unitOption = Object.keys(xTable.option)
} else {
this.controlPanel[this.axis].unit = yTable.defaultUnit
this.unitOption = Object.keys(yTable.option)
}
},
changeUnit () {
this.$emit('changeUnit', this.axis)
},
},
}
</script>
<style lang="scss">
.va-select-without-margin {
.va-select {
margin-bottom: 0;
}
}
</style>
@@ -0,0 +1,60 @@
<template>
<div class="row flex sm12 xl12 md12 xs12 align--center my-0 py-0">
<div class="flex sm4 xl4 md4 xs4 px-0 mx-0">
<p class="display-6">Window size<p/>
</div>
<div class="flex sm8 xl8 md8 xs8 px-0 mx-0">
<va-input
@keyup.enter="itemChange(windowSize)"
@blur="itemChange(windowSize)"
v-model="windowSize"
class="mb-0"
>
<p slot="append" style="margin-right: 0;" small>
µs
</p>
</va-input>
</div>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
export default {
name: 'ChangeWindowSize',
components: {
},
computed: {
...mapFields('replay', [
'startTimeCurrent',
'endTimeCurrent',
'windowSize',
]),
},
props: {
},
created () {
},
data () {
return {
}
},
mqtt: {
},
methods: {
itemChange (val) {
this.windowSize = parseInt(val)
// this.endTimeCurrent = this.startTimeCurrent + parseInt(val)
// this.$emit('reDraw')
},
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
@@ -0,0 +1,118 @@
<template>
<div class="row flex sm12 xl12 md12 xs12 px-0 py-0 mx-0 my-0">
<div class="flex sm6 xl6 md6 xs6 px-0 mx-0">
<p class="display-6"> Window Start <p/>
<va-input
@keyup.enter="startItemChange(startTimeInput)"
@blur="startItemChange(startTimeInput)"
v-model="startTimeInput"
class="mb-0 flex-child"
>
<p slot="append" style="margin-right: 0;" small>
ms
</p>
</va-input>
</div>
<div class="flex sm6 xl6 md6 xs6 px-0 mx-0">
<p class="display-6"> Window Size <p/>
<va-input
@keyup.enter="lenItemChange(windowLengthInput)"
@blur="lenItemChange(windowLengthInput)"
v-model="windowLengthInput"
class="mb-0 flex-child"
>
<p slot="append" style="margin-right: 0;" small>
ms
</p>
</va-input>
</div>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
export default {
name: 'change-window-start-and-size',
components: {
},
props: {
},
computed: {
startTimeInput: {
get () {
return this.startTime / 1e3
},
set (val) {
this.startTime = val * 1e3
this.endTime = this.startTime + this.windowLength
},
},
windowLengthInput: {
get () {
return this.windowLength / 1e3
},
set (val) {
this.windowLength = val * 1e3
this.endTime = this.startTime + this.windowLength
},
},
...mapFields('replay', [
'startTime',
'endTime',
'windowLength',
]),
},
created () {
},
data () {
return {
}
},
mqtt: {
},
methods: {
init () {
this.windowLength = parseInt(this.endTime) - parseInt(this.startTime)
},
startItemChange (val) {
this.startTime = parseInt(val * 1e3) // us
this.windowLength = parseInt(this.windowLength)
this.endTime = this.startTime + this.windowLength
this.$emit('changeOverviewDataZoom')
},
lenItemChange (val) {
this.startTime = parseInt(this.startTime)
this.windowLength = parseInt(val * 1e3) // us
this.endTime = this.startTime + this.windowLength
this.$emit('changeOverviewDataZoom')
},
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
<style lang="scss">
.flex-container {
display: flex;
}
.flex-child {
flex: 2;
}
.flex-child2 {
flex: 0;
}
.flex-child:first-child {
margin-right: 1px;
}
</style>
@@ -1,6 +1,6 @@
<template>
<div>
<va-button flat small class="resize-va-button" color="gray" icon="fa fa-trash" @click.stop="deleteFileConfirm()"/>
<va-button flat small color="gray" icon="fa fa-trash" @click.stop="deleteFileConfirm()"/>
<va-modal
v-model="showModal.deleteFile"
size="small"
@@ -71,20 +71,8 @@ export default {
deleteFile: async function () {
for (let i = 0; i < this.deleteInfoList.length; i++) {
const deleteInfo = this.deleteInfoList[i]
for (const item of deleteInfo.rawChannelAndIDArrays) {
const channel = item[0]
const id = item[1]
await api.raw.update(channel, id, { deleted: true })
await api.raw.clearDel(channel, id)
}
for (const item of deleteInfo.miniChannelAndIDArrays) {
const channel = item[0]
const id = item[1]
await api.mini.update(channel, id, { deleted: true })
await api.mini.clearDel(channel, id)
}
await api.meta.update(deleteInfo.metaID, { deleted: true })
await api.meta.clearDel(deleteInfo.metaID)
await api.meta.clearDel()
}
await this.deleteFileDone()
},
@@ -102,15 +90,3 @@ export default {
}
</script>
<style lang="scss">
.resize-va-button {
.va-button {
margin: 0.375rem 0.5rem 0.375rem 0.1px;
}
.va-button--small {
padding: 0.1px;
}
}
</style>
@@ -1,12 +1,13 @@
<template>
<div>
<va-button flat small class="resize-va-button" color="gray" icon="fa fa-download" @click.stop="downloadCSV()"/>
<va-button flat small color="gray" icon="fa fa-download" @click.stop="downloadFile()"/>
</div>
</template>
<script>
// import { download } from '@/data/download/Download'
// import { exportData } from '@/data/export/export'
import api from '@/data/api/index'
import { mapFields } from 'vuex-map-fields'
export default {
@@ -29,10 +30,24 @@ export default {
watch: {
},
methods: {
downloadCSV: async function () {
downloadFile: async function () {
const href = location.href.split('/')[2]
const connectCheck = await api.connection.check()
for (let i = 0; i < this.metaList.length; i++) {
const meta = this.metaList[i]
window.open('http://' + location.href.split('/')[2].split(':')[0] + '/#/admin/download/neulive/csv/' + meta.id, '_blank', 'width=500,height=100,left=200,top=200')
if (meta.device.library_name.indexOf('Elite') >= 0) {
if (connectCheck.status === 200) {
window.open('http://' + href + '/#/download/online/excel/' + meta.id)
} else {
window.open('http://' + href + '/#/download/offline/excel/' + meta.id)
}
} else if (meta.device.library_name.indexOf('Neulive') >= 0) {
if (connectCheck.status === 200) {
window.open('http://' + href + '/#/download/online/csv-edf/' + meta.id)
} else {
window.open('http://' + href + '/#/download/offline/csv-edf/' + meta.id)
}
}
}
},
},
@@ -43,15 +58,3 @@ export default {
}
</script>
<style lang="scss">
.resize-va-button {
.va-button {
margin: 0.375rem 0.5rem 0.375rem 0.1px;
}
.va-button--small {
padding: 0.1px;
}
}
</style>
@@ -1,6 +1,6 @@
<template>
<div>
<va-button flat small class="resize-va-button" color="gray" icon="fa fa-file-text-o" @click.stop="editFileConfirm()"> {{ filename }} </va-button>
<va-button flat small color="gray" icon="fa fa-file-text-o" @click.stop="editFileConfirm()"> {{ filename }} </va-button>
<va-modal
class="flex sm12 xl12 md12 xs12"
v-model="showModal.editFile"
@@ -80,7 +80,7 @@ export default {
// [TODO] 0: not sure future UX design
const meta = this.metaList[0]
file.clearFileList()
const files = await api.meta.getCollectionByParent('folder', meta.parent.folder[0])
const files = await api.meta.getAttrByParent('folder', meta.parent.folder[0], 'id-path-name-parent-description-size-time_duration-uuid-device-channels-created_at')
file.updateFileList(files)
const tmpFiles = file.getFileList()
for (let i = 0; i < tmpFiles.length; i++) {
@@ -139,15 +139,3 @@ export default {
}
</script>
<style lang="scss">
.resize-va-button {
.va-button {
margin: 0.375rem 0.5rem 0.375rem 0.1px;
}
.va-button--small {
padding: 0.1px;
}
}
</style>
@@ -0,0 +1,163 @@
const chartTable = {
// axis type
Time: {
name: 'Time',
channel: -1,
option: {
auto: 1,
},
defaultUnit: 'auto',
downloadUnit: 'auto',
},
Current: {
name: 'Current',
channel: 0,
option: {
nA: 1,
uA: 1e3,
mA: 1e6,
A: 1e9,
},
defaultUnit: 'mA',
downloadUnit: 'A',
},
Voltage: {
name: 'Voltage',
channel: 1,
option: {
uV: 1,
mV: 1e3,
V: 1e6,
},
defaultUnit: 'mV',
downloadUnit: 'V',
},
Resistance: {
name: 'Resistance',
channel: 2,
option: {
: 1,
Ω: 1e3,
: 1e6,
: 1e9,
},
defaultUnit: 'Ω',
downloadUnit: 'Ω',
},
Cycle: {
name: 'Cycle',
channel: 3,
option: {
cycle: 1,
},
defaultUnit: 'cycle',
downloadUnit: 'cycle',
},
Charge: {
name: 'Charge',
channel: -1,
option: {
nC: 1e6,
uC: 1e9,
mC: 1e12,
C: 1e15,
},
defaultUnit: 'C',
downloadUnit: 'C',
},
Power: {
name: 'Power',
channel: -1,
option: {
mW: 1e12,
W: 1e15,
kW: 1e18,
},
defaultUnit: 'W',
downloadUnit: 'W',
},
Transconductance: {
name: 'Transconductance',
channel: -1,
option: {
'mA/V': 1,
'A/V': 1e3,
'kA/V': 1e6,
},
defaultUnit: 'A/V',
downloadUnit: 'A/V',
},
Idiot: {
name: 'not support',
channel: -1,
option: {
'not support': 1,
},
defaultUnit: 'not support',
downloadUnit: 'not support',
},
}
export const tableRouter = {
getChannel: (axis) => {
return chartTable[axis].channel
},
getDefaultUnit: (axis) => {
return chartTable[axis].defaultUnit
},
getOption: (axis) => {
return chartTable[axis].option
},
getTable: (xAxis, xFunct, yAxis, yFunct) => {
var xTable = chartTable[xAxis]
var yTable = chartTable.Idiot
if (yFunct === 'Linear' || yFunct === 'Log') {
yTable = chartTable[yAxis]
} else if (yFunct === 'Integral') {
if (xAxis === 'Time' && yAxis === 'Current') {
yTable = chartTable.Charge
} else if (xAxis === 'Current' && yAxis === 'Voltage') {
yTable = chartTable.Power
} else if (xAxis === 'Voltage' && yAxis === 'Current') {
yTable = chartTable.Power
}
} else if (yFunct === 'Differential') {
if (xAxis === 'Current' && yAxis === 'Voltage') {
yTable = chartTable.Resistance
} else if (xAxis === 'Voltage' && yAxis === 'Current') {
yTable = chartTable.Transconductance
}
}
return [xTable, yTable]
},
getFunct (axis) {
if (axis === 'x') {
return ['Linear', 'Log']
} else {
return ['Linear', 'Log', 'Integral', 'Differential']
}
},
// axisLabel formatter
autoTimeFormatter (val) {
let label = ''
const hour = parseInt(val / 3.6e9)
const minute = parseInt((val % 3.6e9) / 1000000 / 60)
const second = parseInt((val % 6e7) / 1000000)
const millisecond = parseInt((val % 1e6) / 1000)
if (hour > 0) {
label += hour + ' h '
}
if (minute > 0) {
label += minute + ' m '
}
if (second > 0) {
label += second + ' s '
}
if (millisecond > 0) {
label += millisecond + ' ms '
}
if (hour === 0 && minute === 0 && second === 0 && millisecond === 0) {
label += ' 0 ms '
}
return label
},
}
@@ -0,0 +1,60 @@
<template>
<div>
<va-button :icon="icon" @click="lockDataZoom"/>
</div>
</template>
<script>
import { mapMutations } from 'vuex'
import types from '@/store/modules/analysis/replay/types'
import { mapFields } from 'vuex-map-fields'
export default {
name: 'lock-data-zoom',
components: {
},
props: {
chartID: {
type: Number, // detail data
default: 0,
},
},
created () {
},
data () {
return {
icon: 'fa fa-unlock',
}
},
computed: {
...mapFields('replay', [
'chartData',
'isLockDataZoom',
]),
},
watch: {
},
methods: {
lockDataZoom () {
this.isLockDataZoom = !this.isLockDataZoom
this.lockDataZoomChart({
chartAllData: this.chartData,
chartID: 0,
zoomLock: this.isLockDataZoom,
})
if (this.isLockDataZoom === true) {
this.icon = 'fa fa-lock'
} else if (this.isLockDataZoom === false) {
this.icon = 'fa fa-unlock'
}
},
...mapMutations('replay', [types.chart.lockDataZoom]),
},
mounted () {
},
destroyed () {
},
}
</script>
@@ -0,0 +1,62 @@
<template>
<div>
<span class="box_inline-block"> use SD card data </span>
<va-toggle :disable="disableToggle" flat small class="box_inline-block" v-model="useSdCardData"/>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
export default {
name: 'SdCardToggle',
components: {
},
computed: {
...mapFields('replay', [
'metaList',
'useSdCardData',
]),
},
props: {
metaIndex: {
type: Number,
default: 0,
},
},
created () {
},
data () {
return {
disableToggle: true,
}
},
mqtt: {
},
methods: {
init () {
if (this.metaList[this.metaIndex].sd_data_uploaded === true) {
this.disableToggle = false
} else {
this.disableToggle = true
this.useSdCardData = false
}
},
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
<style lang="scss">
.box_inline-block {
padding: 1px;
margin: 1px;
display: inline-block;
}
</style>
@@ -8,15 +8,13 @@
<script>
import { mapFields } from 'vuex-map-fields'
import paramTable from '@/data/config-table/index.js'
export default {
name: 'show-parameter',
components: {
},
props: {
deviceName: {
type: String, // elite or neulive
},
metaIndex: {
type: Number, // which meta file
default: 0,
@@ -26,7 +24,10 @@ export default {
},
data () {
return {
deviceName: '',
mode: -1,
content: '',
showDict: {},
// [region] for neulive
ampGainOptions: [
{
@@ -46,38 +47,6 @@ export default {
description: '800',
},
],
neuliveSampleRateOptions: [
{
id: 0,
value: 800,
description: '1k',
},
{
id: 1,
value: 400,
description: '2k',
},
{
id: 2,
value: 200,
description: '4k',
},
{
id: 3,
value: 160,
description: '5k',
},
{
id: 4,
value: 100,
description: '8k',
},
{
id: 5,
value: 80,
description: '10k',
},
],
stimulateElectrodeOptions: [
{
label: 'Monopolar',
@@ -271,19 +240,20 @@ export default {
watch: {
},
methods: {
init () {
init (deviceName) {
this.deviceName = deviceName
const meta = this.metaList[this.metaIndex]
const params = meta.parameter_set
this.content += 'Duration: ' + parseInt(parseInt(meta.time_duration / 1000000) / 60) + ' m ' + parseInt((meta.time_duration % 60000000) / 1000000) + ' s<br/>'
this.content += 'Duration: ' + parseInt(parseInt(meta.time_duration / 1e6) / 60) + ' m ' + parseInt((meta.time_duration % 6e7) / 1e6) + ' s<br/>'
this.content += '<br/>Parameter: <br/>'
this.content += '<br/> Recording: <br/>'
if (this.deviceName === 'neulive') {
if (this.deviceName.startsWith('Neulive')) {
// recording param
this.content += '<br/> Recording: <br/>'
for (const [key, value] of Object.entries(params)) {
if (!(key.includes('sti') || key.includes('STI'))) {
let showKey = ''
let showValue = value
if (key === 'RECORDING_CH' || key === 'AXIS_CH' || key === 'AMP_GAIN' || key === 'ADC_CLOCK') {
if (key === 'RECORDING_CH' || key === 'AXIS_CH' || key === 'AMP_GAIN' || key === 'SAMPLE_RATE') {
if (key === 'RECORDING_CH') {
showKey = 'Channels'
// convert decimal to binary
@@ -328,13 +298,9 @@ export default {
showValue = this.ampGainOptions[i].description
}
}
} else if (key === 'ADC_CLOCK') {
} else if (key === 'SAMPLE_RATE') {
showKey = 'Sample Rate'
for (let i = 0; i < this.neuliveSampleRateOptions.length; i++) {
if (this.neuliveSampleRateOptions[i].value === value) {
showValue = this.neuliveSampleRateOptions[i].description
}
}
showValue = value
}
this.content += ' ' + showKey + ': ' + showValue + '<br/>'
}
@@ -412,103 +378,56 @@ export default {
this.content += ' Frequency: ' + String(1000 / period) + ' Hz' + '<br/>' // 1000 is cuz 1s = 1000ms
this.content += ' Period: ' + String(period) + ' ms' + '<br/>'
}
} else if (this.deviceName === 'elite') {
for (const [key, value] of Object.entries(params)) {
let showKey = ''
let showValue = value
if (key === 'MODE') {
showKey = 'MODE'
for (let i = 0; i < this.workingModeOptions.length; i++) {
if (this.workingModeOptions[i].id === value) {
showValue = this.workingModeOptions[i].description
} else if (this.deviceName === 'EliteZM15' || this.deviceName.includes('Elite_EDC') || this.deviceName.includes('EIS')) {
const mode = this.mode = params.MODE
const config = paramTable.getConfig(this.deviceName)
const modeConfig = paramTable.getModeConfig(this.deviceName, mode)
const modeName = modeConfig.name
const showParams = modeConfig.showParameter
this.showDict.MODE = modeName
if (modeName === 'Pulse Sensing') {
const duplicateParam = ['V_initial', 't_pulse', 'CURR_REC']
for (let i = 0; i < 4; i++) {
const key = 'segment_order'
const order = config[key].outputReadabilityData(params[key], 1, i)
if (parseInt(order) >= 0) { // if === -1, 代表沒有使用這個block
for (const key of duplicateParam) {
this.fillShowDict(key, config[key].outputReadabilityData(params[key], 1, i), i)
}
}
} else if (key === 'ADC_LEVEL') {
showKey = 'Current Range'
for (let i = 0; i < this.currentRangeOptions.length; i++) {
if (this.currentRangeOptions[i].value === value) {
showValue = this.currentRangeOptions[i].label
}
}
} else if (key === 'VOLT_ORIGIN') {
showKey = 'Volt start'
showValue = (value / 5000) - 5 + 'V'
} else if (key === 'VOLT_FINAL') {
showKey = 'Volt stop'
showValue = (value / 5000) - 5 + 'V'
} else if (key === 'VOLT_STEP') {
showKey = 'Volt step'
showValue = ((value * 2) + 2) / 10 + 'mV'
} else if (key === 'STEP_TIME') {
showKey = 'Step time'
for (let i = 0; i < this.stepTimeOptions.length; i++) {
if (this.stepTimeOptions[i].value === value) {
showValue = this.stepTimeOptions[i].label
}
}
} else if (key === 'CYCLE_NUMBER') {
showKey = 'Cycle number'
showValue = value
} else if (key === 'DAC_VOLT') {
showKey = 'Volt out'
showValue = (value / 5000) - 5 + 'V'
} else if (key === 'Resister_LEVEL') {
showKey = 'Resister Range'
for (let i = 0; i < this.resisterRangeOptions.length; i++) {
if (this.resisterRangeOptions[i].value === value) {
showValue = this.resisterRangeOptions[i].label
}
}
} else if (key === 'SAMPLE_RATE') {
showKey = 'Sample rate'
for (let i = 0; i < this.eliteSampleRateOptions.length; i++) {
if (this.eliteSampleRateOptions[i].value === value) {
showValue = this.eliteSampleRateOptions[i].label
}
}
} else if (key === 'Const_Current_value') {
showKey = 'Current'
showValue = value + 'μA'
} else if (key === 'VOLTSTOP_MAX') {
showKey = 'Volt max stop'
showValue = (value / 5000) - 5 + 'V'
} else if (key === 'VOLTSTOP_MIN') {
showKey = 'Volt min stop'
showValue = (value / 5000) - 5 + 'V'
} else if (key === 'Charge') {
showKey = 'Charge'
for (let i = 0; i < this.chargeOptions.length; i++) {
if (this.chargeOptions[i].value === value) {
showValue = this.chargeOptions[i].label
}
}
} else if (key === 'VOLT_INITIAL') {
showKey = 'E-Initial'
showValue = (value / 5000) - 5 + 'V'
} else if (key === 'VOLT_MAX') {
showKey = 'Volt max stop'
showValue = (value / 5000) - 5 + 'V'
} else if (key === 'VOLT_MIN') {
showKey = 'Volt min stop'
showValue = (value / 5000) - 5 + 'V'
} else if (key === 'Scan_Rate') {
showKey = 'ScanRate'
showValue = (value / 100) + 0.01 + 'mV/s'
} else if (key === 'Data_Resolution_Scan') {
showKey = 'Resolution'
showValue = (value / 10) + 0.1 + 'sps'
} else if (key === 'VOLT_EFINAL') {
showKey = 'E-Final'
showValue = (value / 5000) - 5 + 'V'
} else if (key === 'VOLT_VSCAN') {
showKey = 'VScan'
showValue = (value / 5000) - 5 + 'V'
} else {
continue
}
this.content += ' ' + showKey + ': ' + showValue + '<br/>'
const remainParams = showParams.filter((e) => { // 差集
return duplicateParam.indexOf(e) === -1
})
for (const key of remainParams) {
this.fillShowDict(key, params[key])
}
} else {
for (const key of showParams) {
this.fillShowDict(key, params[key])
}
}
}
this.dump()
},
fillShowDict (key, value, index = -1) {
const config = paramTable.getConfig(this.deviceName)
const expVal = config[key].defaultUnit
? config[key].outputReadabilityData(value, config[key].unit[config[key].defaultUnit])
: config[key].outputReadabilityData(value)
let name = typeof (config[key].showName) === 'function'
? config[key].showName(this.mode)
: config[key].showName
if (index >= 0) {
name += ` ${index + 1}`
}
const unit = config[key].defaultUnit
this.showDict[name] = unit !== undefined ? expVal.toString() + unit : expVal.toString()
},
dump () {
for (const [showKey, showValue] of Object.entries(this.showDict)) {
this.content += ' ' + showKey + ': ' + showValue + '<br/>'
}
},
},
}
@@ -1,6 +1,6 @@
<template>
<div>
<span> Resample: {{ currentScale }} to 1 </span>
<p class="display-6"> Resample: {{ currentScale }} to 1 <p/>
</div>
</template>
@@ -0,0 +1,171 @@
<template>
<div>
<div class="flex-container mb-2">
<va-input
v-model="this.specificIntegral"
:label="$t('Specific Integral')"
/>
<div class="flex sm5 xl5 md5 xs5 px-0 py-0">
<va-button
v-if="!keyBoundary"
v-model="this.keyBoundary"
@click="switchBoundary()"
class="round-button px-1 py-1"
>
Draw
</va-button>
<va-button
v-if="keyBoundary"
v-model="this.keyBoundary"
@click="switchBoundary()"
class="round-button px-1 py-1"
>
Input
</va-button>
</div>
</div>
<div v-if="!keyBoundary">
<div class="flex-container mb-2">
<div class="flex sm2 xl2 md2 xs2 px-0 py-0" />
<va-input
v-model="this.boundary.x_start"
:label="$t('X Start')"
/>
<va-input
v-model="this.boundary.x_end"
:label="$t('X End')"
/>
</div>
<div class="flex-container mb-2">
<div class="flex sm2 xl2 md2 xs2 px-0 py-0" />
<va-input
v-model="this.boundary.y_start"
:label="$t('Y Start')"
/>
<va-input
v-model="this.boundary.y_end"
:label="$t('Y End')"
/>
</div>
<div class="flex-container mb-2">
<div class="flex sm2 xl2 md2 xs2 px-0 py-0" />
<va-button class="mb-2" @click="setBrushBoundary" small>
Set Integral Boundary
</va-button>
</div>
</div>
<div v-if="keyBoundary">
<div class="flex-container mb-2">
<div class="flex sm2 xl2 md2 xs2 px-0 py-0" />
<va-input
@keyup.enter="setBrushBoundary()"
@blur="setBrushBoundary()"
v-model="boundaryXstart"
:label="$t('X Start')"
/>
<va-input
@keyup.enter="setBrushBoundary()"
@blur="setBrushBoundary()"
v-model="boundaryXend"
:label="$t('X End')"
/>
</div>
<div class="flex-container mb-2">
<div class="flex sm2 xl2 md2 xs2 px-0 py-0" />
<va-input
@keyup.enter="setBrushBoundary()"
@blur="setBrushBoundary()"
v-model="boundaryYstart"
:label="$t('Y Start')"
/>
<va-input
@keyup.enter="setBrushBoundary()"
@blur="setBrushBoundary()"
v-model="boundaryYend"
:label="$t('Y End')"
/>
</div>
<div class="flex-container mb-2">
<div class="flex sm2 xl2 md2 xs2 px-0 py-0" />
<va-button class="mb-2" @click="setBrushBoundary" small>
Set Integral Boundary
</va-button>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'SpecificIntegral',
components: {
},
computed: {
displayType () {
return {
x: this.axisXLabelScale.description === 'Log' ? 'log' : 'value',
y: this.axisYLabelScale.description === 'Log' ? 'log' : 'value',
}
},
},
props: {
},
created () {
},
data () {
return {
specificIntegral: 0,
boundary: {},
boundaryXstart: 0,
boundaryXend: 0,
boundaryYstart: 0,
boundaryYend: 0,
keyBoundary: false,
}
},
mqtt: {
},
methods: {
getSpecificIntegral (specificIntegral, boundary) {
this.specificIntegral = specificIntegral
this.specificIntegral = (this.specificIntegral * 1e-12).toFixed(4) + 'mW'
// this.specificIntegral = (this.specificIntegral * 1e-15).toFixed(4) + 'W'
if (!this.keyBoundary) {
this.boundary = boundary
}
},
switchBoundary () {
this.keyBoundary = !this.keyBoundary
// if (this.boundary !== {})
this.boundaryXstart = this.boundary.x_start
this.boundaryXend = this.boundary.x_end
this.boundaryYstart = this.boundary.y_start
this.boundaryYend = this.boundary.y_end
},
setBrushBoundary () {
var boundary = {
x_start: Number(this.boundaryXstart),
x_end: Number(this.boundaryXend),
y_start: Number(this.boundaryYstart),
y_end: Number(this.boundaryYend),
}
this.$emit('setBrushBoundary', boundary)
},
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
<style lang="scss">
/* .round-button {
border-radius: 12px;
} */
</style>
@@ -0,0 +1,115 @@
<template>
<div>
<va-card>
<p style="font-size: 125%; text-decoration: underline;"> Channel </p>
<channels/>
<p style="font-size: 125%; text-decoration: underline;"> Detect </p>
<p :style="{color: this.$themes.primary}" class="display-6"> High pass filter </p>
<cutoff-freq/>
<filter-order/>
<filter-button ref="filterButtonRef" @loadFilterData="loadFilterData"/>
<p :style="{color: this.$themes.danger}" class="display-6"> Threshold </p>
<threshold/>
<br/>
<p class="display-6"> Waveform </p>
<wave-length/>
<prethreshold/>
<refractory-period/>
<detect-button ref="detectButtonRef" @loadThresholdData="loadThresholdData"/>
</va-card>
</div>
</template>
<script>
import Channels from '@/components/analysis/spike/item/Channels.vue'
import CutoffFreq from '@/components/analysis/spike/item/CutoffFreq.vue'
import FilterOrder from '@/components/analysis/spike/item/FilterOrder.vue'
import Prethreshold from '@/components/analysis/spike/item/Prethreshold.vue'
import RefractoryPeriod from '@/components/analysis/spike/item/RefractoryPeriod.vue'
import Threshold from '@/components/analysis/spike/item/Threshold.vue'
import WaveLength from '@/components/analysis/spike/item/WaveLength.vue'
import DetectButton from '@/components/analysis/spike/item/DetectButton.vue'
import FilterButton from '@/components/analysis/spike/item/FilterButton.vue'
export default {
name: 'control-panel',
components: {
Channels,
CutoffFreq,
FilterOrder,
FilterButton,
Prethreshold,
RefractoryPeriod,
Threshold,
WaveLength,
DetectButton,
},
props: {
},
async created () {
},
data () {
return {
}
},
mqtt: {
},
methods: {
init () {
this.enableFilterButton()
},
refreshChart (options) {
this.$emit('refreshChart', options)
},
loadThresholdData () {
this.$emit('loadThresholdData')
},
loadFilterData () {
this.$emit('loadFilterData')
},
enableFilterButton () {
this.$refs.filterButtonRef.enableButton()
},
disableFilterButton () {
this.$refs.filterButtonRef.disableButton()
},
enableDetectButton () {
this.$refs.detectButtonRef.enableButton()
},
disableDetectButton () {
this.$refs.detectButtonRef.disableButton()
},
},
// use watch because va-select with @change will have bug
watch: {
},
mounted () {
},
}
</script>
<style lang="scss">
.flex-container {
display: flex;
}
.flex-child {
flex: 2;
}
.flex-child1 {
flex: 1;
}
.flex-child2 {
flex: 0;
}
.flex-child:first-child {
margin-right: 1px;
}
.right {
float: right;
}
</style>
+436
View File
@@ -0,0 +1,436 @@
<template>
<div>
<div class="row row-equal">
<div class="flex md12 xl3 xs12 sm12">
<div class="row">
<div class="flex sm12 xl12 md12 xs12">
<va-accordion>
<va-collapse class="mb-2" :isOpenDefault="true">
<span slot="header">Control Panel</span>
<div slot="body">
<div>
<control-panel
:ref="'control_panel'"
@loadFilterData="loadFilterData"
@loadThresholdData="loadThresholdData"
/>
</div>
</div>
</va-collapse>
</va-accordion>
</div>
</div>
</div>
<div :class="chartAreaClass">
<div class="row" >
<div class="flex sm12 xl12 md12 xs12">
<spike-overview-chart :ref="'chart_overview'" :cardheight="'30vh'" :data="chartOverviewData"/>
<spike-chart :ref="'chart_detail'" :cardheight="'60vh'" :data="chartDetailData"/>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { mapActions, mapGetters, mapMutations } from 'vuex'
import SpikeOverviewChart from './SpikeOverviewChart.vue'
import SpikeChart from './SpikeChart.vue'
import ControlPanel from './ControlPanel.vue'
import api from '@/data/api/index'
import { taskInfo } from '@/data/task/TaskInfo'
import types from '@/store/modules/analysis/spike/types'
import { mapFields } from 'vuex-map-fields'
import newSeries from '@/factories/chart/seriesFactory'
export default {
name: 'spike-data-replay',
components: {
SpikeOverviewChart,
SpikeChart,
ControlPanel,
},
computed: {
...mapFields('spike', [
'chartData',
'chartOverviewData',
'chartDetailData',
'metaList',
'selectedChannel',
'cutoffFreq',
'filterOrder',
'selectedThreshold',
'upperThreshold',
'lowerThreshold',
'waveLength',
'preThreshold',
'refractoryPeriod',
]),
},
props: {
},
async created () {
this.chartOverviewData = await this.initChart({
chartAllData: this.chartData,
chartID: 0,
gridLength: 1,
type: 'overview',
device: 'neulive',
mode: 0,
})
this.chartDetailData = await this.initChart({
chartAllData: this.chartData,
chartID: 1,
gridLength: 1,
type: 'detail',
device: 'neulive',
mode: 0,
})
},
data () {
return {
dataInfo: {},
maxTime: 0,
chartAreaClass: ['flex', 'xs12', 'sm12', 'md12', 'xl9', 'pa-0'],
randomColorArray: [],
controllerList: [],
}
},
mqtt: {
async '+/analysis/spike_detect/+/+/+' (data, topic) {
const topicSplitArray = topic.split('/')
if (this.metaList.some(e => e.id === parseInt(topicSplitArray[4]))) {
if (topicSplitArray[3] === 'data') {
const utf8decoder = new TextDecoder()
const dataStr = utf8decoder.decode(data)
const dataArray = JSON.parse(dataStr)
this.chartOverviewData.series[0].data.push(...dataArray)
} else if (topicSplitArray[3] === 'time_mark') {
const utf8decoder = new TextDecoder()
const timeMarkStr = JSON.parse(utf8decoder.decode(data))
const timeMarkObj = timeMarkStr.split(' ')
this.drawTimeMark(timeMarkObj)
} else if (topicSplitArray[3] === 'detect_signal') {
const utf8decoder = new TextDecoder()
const detectSignalStr = utf8decoder.decode(data)
const detectSignalObj = Object.values(JSON.parse(detectSignalStr))
this.drawThresholdData(detectSignalObj)
}
}
},
},
methods: {
getControllerList: async function () {
const update = async () => {
this.controllerList.push({
id: taskInfo.getTaskInfo().controllerID,
mac: '',
status: 'loading',
isScan: true,
})
}
await update()
},
mqttSub: function (val) {
this.$mqtt.subscribe(val)
},
mqttUnSub: function (val) {
this.$mqtt.unsubscribe(val)
},
mqttPub: function (topic, mes) {
this.$mqtt.publish(topic, mes)
},
pageMqttSub: function (id) {
this.mqttSub(id + '/analysis/spike_detect/+/+/+')
},
pageMqttUnSub: function (id) {
this.mqttUnSub(id + '/analysis/spike_detect/+/+')
},
showChartLoading: function (chart) {
const loadStyle = {
text: '',
color: '#cccccc',
maskColor: 'rgba(255, 255, 255, 0.8)',
zlevel: 0,
}
switch (chart) {
case 'overview':
this.$refs.chart_overview.showLoading(loadStyle)
break
case 'detail':
this.$refs.chart_detail.showLoading(loadStyle)
break
default:
this.$refs.chart_overview.showLoading(loadStyle)
this.$refs.chart_detail.showLoading(loadStyle)
break
}
},
hideChartLoading: function (chart) {
switch (chart) {
case 'overview':
this.$refs.chart_overview.hideLoading()
break
case 'detail':
this.$refs.chart_detail.hideLoading()
break
default:
this.$refs.chart_overview.hideLoading()
this.$refs.chart_detail.hideLoading()
break
}
},
register: async function () {
const gridLength = 1
this.updateGridListChart({
chartAllData: this.chartData,
chartID: this.chartDetailData.chartID,
gridLength: gridLength,
})
const register = this.metaList.map(meta => {
this.registerChart({
chartAllData: this.chartData,
chartID: this.chartOverviewData.chartID,
gridIndex: 0,
deviceNameX: 'Time',
deviceNameY: 'Neulive',
deviceIDY: meta.name,
channelY: this.selectedChannel,
})
this.registerChart({
chartAllData: this.chartData,
chartID: this.chartDetailData.chartID,
gridIndex: 0,
deviceNameX: 'Time',
deviceNameY: 'Neulive',
deviceIDY: meta.name,
channelY: this.selectedChannel,
})
if (this.maxTime < parseInt(meta.time_duration)) {
this.maxTime = parseInt(meta.time_duration)
}
})
await Promise.all(register)
for (let i = 0; i < 2; i++) {
// ID 0 = overview, ID 1 = detail
this.updateAxisLabelChart({
chartID: i,
axis: 'x',
axisIndex: 0,
channel: this.selectedChannel,
})
this.updateAxisLabelChart({
chartID: i,
axis: 'y',
axisIndex: 0,
channel: this.selectedChannel,
})
this.updateDataZoomChart({
chartAllData: this.chartData,
chartID: i,
})
}
// this.updateChartSamplingChart({ chartID: this.chartOverviewData.chartID, seriesIndex: 0, method: function (frame) { return frame[0] } })
this.chartOverviewData.xAxis[0].min = 0
this.chartOverviewData.xAxis[0].max = this.maxTime
},
loadFilterData: async function () {
this.showChartLoading('overview')
this.$refs.chart_detail.clear()
this.$refs.control_panel.disableDetectButton()
for (const meta in this.dataInfo) {
// reset overview chart
this.chartOverviewData.series[0].data.length = 0
this.chartOverviewData.series[0].markArea.data.length = 0
this.chartOverviewData.color = ['#000000'] // black
await api.analysis.spikeDetect({
controller_id: this.controllerList[0].id,
meta_id: meta,
channel: this.selectedChannel,
filter_order: this.filterOrder,
cut_off_freq: this.cutoffFreq,
data_type: 'filter_data',
})
this.hideChartLoading('overview')
this.$refs.control_panel.enableDetectButton()
console.log(this.chartOverviewData)
}
},
loadThresholdData: async function () {
this.showChartLoading('detail')
for (const meta in this.dataInfo) {
let thresholdValue
if (this.selectedThreshold === 'over') {
thresholdValue = this.upperThreshold
} else if (this.selectedThreshold === 'bellow') {
thresholdValue = this.lowerThreshold
}
for (let i = 0; i < this.chartDetailData.series.length; i++) {
this.chartDetailData.series[i].name = ''
this.chartDetailData.series[i].data.length = 0
}
await api.analysis.spikeDetect({
controller_id: this.controllerList[0].id,
meta_id: meta,
channel: this.selectedChannel,
cut_off_freq: this.cutoffFreq,
filter_order: this.filterOrder,
threshold: [
`'${this.selectedThreshold}'`,
thresholdValue,
],
waveForm: [this.waveLength, this.preThreshold, this.refractoryPeriod],
ret_data_type: 'threshold_data',
})
}
this.hideChartLoading('detail')
},
drawThresholdData (detailSignalArray) {
if (detailSignalArray.length <= 8) {
this.chartDetailData.tooltip.show = true
} else {
this.chartDetailData.tooltip.show = false
}
this.chartDetailData.legend.data.length = 0
this.chartDetailData.legend.type = 'scroll'
this.chartDetailData.legend.top = '0.25%'
// this.chartDetailData.legendpageButtonPosition = 'start'
this.chartDetailData.animation = false
this.chartDetailData.color = []
for (let i = 0; i < detailSignalArray.length; i++) {
const detailSignal = detailSignalArray[i].split(' ')
const arrayLength = detailSignal.length
const step = parseInt(this.waveLength) / (arrayLength - 1)
const xAxisIndex = 0
const yAxisIndex = 0
const legendName = 'T_' + String(i + 1)
if (this.chartDetailData.series.length <= i) {
const _series = newSeries('line', legendName, xAxisIndex, yAxisIndex, [-1, -1], ['metaInfo.name', this.selectedChannel], null, null)
this.chartDetailData.series.push(_series)
}
for (let j = 0; j < arrayLength; j++) {
this.chartDetailData.series[i].data.push([j * step, detailSignal[j]])
}
// push legendName
this.chartDetailData.legend.data.push(legendName)
this.chartDetailData.series[i].name = legendName
// set legend and series color
this.chartDetailData.color.push(this.randomColorArray[i])
}
this.chartDetailData.xAxis[0].min = 0
this.chartDetailData.xAxis[0].max = parseInt(this.waveLength)
this.chartDetailData.xAxis[0].axisLabel.show = true
},
drawTimeMark (timeMarkArray, period) {
// reset overview
this.chartOverviewData.series[0].markArea.data.length = 0
const timeMarkLength = timeMarkArray.length
for (let i = 0; i < timeMarkLength; i++) {
// generate color array for overview markArea and detail chart series
const randomColor = '#' + Math.floor(Math.random() * 16777215).toString(16) // ref: https://css-tricks.com/snippets/javascript/random-hex-color/
this.randomColorArray.push(randomColor)
if (Number.isInteger(parseInt(timeMarkArray[i]))) { // cuz maybe is '' if no any match after filtering
const timeMark = parseInt(timeMarkArray[i])
let startTime = timeMark - parseInt(this.preThreshold)
let endTime = timeMark + parseInt(this.refractoryPeriod)
if (startTime < 0) {
startTime = 0
}
if (endTime > timeMark) {
endTime = timeMark
}
const overviewSignal = this.chartOverviewData.series[0].data
let startIndex = 0
let endIndex = 0
for (let i = 0; i < overviewSignal.length; i++) {
if (startTime <= overviewSignal[i][0]) {
startIndex = i
break
}
}
for (let i = 0; i < overviewSignal.length; i++) {
if (endTime <= overviewSignal[i][0]) {
endIndex = i
break
}
}
this.chartOverviewData.series[0].markArea.data.push([
{
itemStyle: {
color: randomColor,
borderColor: randomColor,
borderWidth: 1,
},
name: String(i + 1),
xAxis: overviewSignal[startIndex][0],
},
{
xAxis: overviewSignal[endIndex][0],
},
])
}
}
},
...mapActions('spike', [types.chart.init, types.chart.initSelectedChannel, types.chart.register, types.chart.clear, types.chart.updateGridList, types.chart.updateDataZoom]),
...mapActions('spike', [types.meta.init]),
...mapActions('spike', [types.rec.init, types.rec.intoData, types.rec.initDisplaySetting, types.rec.updateDisplaySetting]),
...mapMutations('spike', [types.chart.updateAxisLabel, types.chart.updateChartSampling]),
...mapMutations('spike', [types.meta.updateByIndex]),
...mapGetters('spike', [types.meta.getAll]),
...mapGetters('spike', [types.rec.getAll]),
},
// use watch because va-select with @change will have bug
watch: {
},
async mounted () {
this.getControllerList()
this.pageMqttSub(this.controllerList[0].id)
const metaIDList = this.$route.params.metaList.split('-')
await this.initMeta({ metaIDList: metaIDList, api: api })
this.metaList = this.getAllMeta()
this.initSelectedChannelChart({ metaIndex: 0 })
await this.initRec({ api: api })
this.dataInfo = this.getAllRec()
console.log(this.metaList)
console.log(this.dataInfo)
await this.register()
this.$refs.control_panel.init()
},
beforeDestroy () {
this.pageMqttUnSub(this.controllerList[0].id)
this.$refs.chart_detail.clear()
for (const id in this.chartData) {
for (const _series of this.chartData[id].series) {
_series.length = 0
}
delete this.chartData[id]
}
this.clearChart({ chartAllData: this.chartData })
},
}
</script>
@@ -0,0 +1,109 @@
<template>
<div class="flex" :class="cardclass">
<va-card :style="'height: ' + cardheight + ';'">
<chart :ref="'chart_ref'" :style="'width: '+ cardwidth + '; height: ' + cardheight + ';'" :options="data" @dataZoom="updateZoom" :auto-resize="true"></chart>
</va-card>
</div>
</template>
<script>
import { mapMutations } from 'vuex'
import types from '@/store/modules/analysis/spike/types'
export default {
name: 'spike-replay-chart',
components: {
},
props: {
data: {
type: Object,
default: function () {
return {}
},
},
cardclass: {
type: Array,
default: function () {
return ['xs12', 'md12', 'xl12', 'sm12']
},
},
cardheight: {
type: String,
default: '82vh',
},
cardwidth: {
type: String,
default: 'auto',
},
},
created () {
},
data () {
return {
}
},
computed: {
},
watch: {
},
methods: {
resize: function () {
if (this.$refs.chart_ref != null) {
this.$refs.chart_ref.resize()
}
},
updateZoom: function (e) {
this.$emit('dataZoomEvent', e)
},
mergeOptions (options) {
this.$refs.chart_ref.mergeOptions(options)
},
turnOnAxisEventHandler (eventName, query, handler, attr) {
const chartID = 1
this.updateAxisEventHandlerChart({
chartID: chartID,
axis: attr.axis,
status: 'on',
})
// doc: https://echarts.apache.org/zh/api.html#echartsInstance.on
this.$refs.chart_ref.chart._zr.on(eventName, query, handler)
},
turnOffAxisEventHandler (eventName, handler, attr) {
const chartID = 1
this.updateAxisEventHandlerChart({
chartID: chartID,
axis: attr.axis,
status: 'off',
})
// doc: https://echarts.apache.org/zh/api.html#echartsInstance.off
this.$refs.chart_ref.chart._zr.off(eventName, handler)
},
showLoading (options) {
this.$refs.chart_ref.showLoading(options)
},
hideLoading () {
this.$refs.chart_ref.hideLoading()
},
clear () {
this.$refs.chart_ref.clear()
},
...mapMutations('spike', [types.chart.updateAxisEventHandler]),
},
async mounted () {
this.resizeTimer = setInterval(this.resize, 1000)
},
destroyed () {
clearInterval(this.resizeTimer)
},
}
</script>
<style lang='scss'>
.va-card {
&__body {
padding-top: 0.25rem;
}
}
</style>
@@ -0,0 +1,85 @@
<template>
<div class="flex" :class="cardclass">
<va-card :style="'height: ' + cardheight + ';'">
<chart :ref="'chart_ref'" :style="'width: '+ cardwidth + '; height: ' + cardheight + ';'" :options="data" @dataZoom="updateZoom" :auto-resize="true"></chart>
</va-card>
</div>
</template>
<script>
export default {
name: 'spike-overview-chart',
components: {
},
props: {
data: {
type: Object,
default: function () {
return {}
},
},
cardclass: {
type: Array,
default: function () {
return ['xs12', 'md12', 'xl12', 'sm12']
},
},
cardheight: {
type: String,
default: '82vh',
},
cardwidth: {
type: String,
default: 'auto',
},
},
created () {
},
data () {
return {
}
},
computed: {
},
watch: {
},
methods: {
resize: function () {
if (this.$refs.chart_ref != null) {
this.$refs.chart_ref.resize()
}
},
mergeOptions (options) {
this.$refs.chart_ref.mergeOptions(options)
},
updateZoom: function (e) {
this.$emit('dataZoomEvent', e)
},
showLoading (options) {
this.$refs.chart_ref.showLoading(options)
},
hideLoading () {
this.$refs.chart_ref.hideLoading()
},
clear () {
this.$refs.chart_ref.clear()
},
},
async mounted () {
this.resizeTimer = setInterval(this.resize, 1000)
},
destroyed () {
clearInterval(this.resizeTimer)
},
}
</script>
<style lang='scss'>
.va-card {
&__body {
padding-top: 0.25rem;
}
}
</style>
@@ -0,0 +1,43 @@
<template>
<div>
<va-button-toggle small flat v-model="selectedChannel" :options="selectedChannelOptions" @click.native="reloadData(selectedChannel)"/>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
export default {
name: 'Channels',
components: {
},
computed: {
...mapFields('spike', [
'selectedChannel',
'selectedChannelOptions',
]),
},
props: {
},
created () {
},
data () {
return {
}
},
mqtt: {
},
methods: {
reloadData (val) {
this.selectedChannel = val
},
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
@@ -0,0 +1,57 @@
<template>
<div class="row flex sm12 xl12 md12 xs12 align--center my-0 py-0">
<div class="flex sm6 xl6 md6 xs6 px-0 mx-0">
<p>Cut-off Freq<p/>
</div>
<div class="flex sm6 xl6 md6 xs6 px-0 mx-0">
<va-input
@mouseleave.native="itemChange(cutoffFreq)"
@keyup.enter="itemChange(cutoffFreq)"
@blur="itemChange(cutoffFreq)"
v-model="cutoffFreq"
class="mb-0"
>
<p slot="append" style="margin-right: 0;" small>
Hz
</p>
</va-input>
</div>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
export default {
name: 'CutoffFreq',
components: {
},
computed: {
...mapFields('spike', [
'cutoffFreq',
]),
},
props: {
},
created () {
},
data () {
return {
}
},
mqtt: {
},
methods: {
itemChange (val) {
this.cutoffFreq = val
},
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
@@ -0,0 +1,56 @@
<template>
<div>
<va-button class="right" small @click="startDetect" :disabled="isDisable">
Start Detect
</va-button>
</div>
</template>
<script>
import types from '@/store/modules/analysis/spike/types'
import { mapFields } from 'vuex-map-fields'
import { mapMutations } from 'vuex'
export default {
name: 'Channels',
components: {
},
computed: {
...mapFields('spike', [
'chartDetailData',
'selectedChannel',
'waveLength',
]),
},
props: {
},
created () {
},
data () {
return {
isDisable: true,
}
},
mqtt: {
},
methods: {
startDetect () {
this.$emit('loadThresholdData')
},
enableButton () {
this.isDisable = false
},
disableButton () {
this.isDisable = true
},
...mapMutations('spike', [types.chart.updateAxisLabel]),
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
@@ -0,0 +1,56 @@
<template>
<div class="flex xl12 md12 sm12 xs12 mb-4">
<va-button class="right" small @click="startFilter" :disabled="isDisable">
Start Filter
</va-button>
</div>
</template>
<script>
import types from '@/store/modules/analysis/spike/types'
import { mapFields } from 'vuex-map-fields'
import { mapMutations } from 'vuex'
export default {
name: 'FilterButton',
components: {
},
computed: {
...mapFields('spike', [
'chartDetailData',
'selectedChannel',
'waveLength',
]),
},
props: {
},
created () {
},
data () {
return {
isDisable: true,
}
},
mqtt: {
},
methods: {
startFilter () {
this.$emit('loadFilterData')
},
enableButton () {
this.isDisable = false
},
disableButton () {
this.isDisable = true
},
...mapMutations('spike', [types.chart.updateAxisLabel]),
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
@@ -0,0 +1,54 @@
<template>
<div class="row flex sm12 xl12 md12 xs12 align--center my-0 py-0">
<div class="flex sm6 xl6 md6 xs6 px-0 mx-0">
<p>Filter order<p/>
</div>
<div class="flex sm6 xl6 md6 xs6 px-0 mx-0">
<va-input
@mouseleave.native="itemChange(filterOrder)"
@keyup.enter="itemChange(filterOrder)"
@blur="itemChange(filterOrder)"
v-model="filterOrder"
class="mb-0"
>
</va-input>
</div>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
export default {
name: 'FilterOrder',
components: {
},
computed: {
...mapFields('spike', [
'filterOrder',
]),
},
props: {
},
created () {
},
data () {
return {
}
},
mqtt: {
},
methods: {
itemChange (val) {
this.filterOrder = val
},
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
@@ -0,0 +1,57 @@
<template>
<div class="row flex sm12 xl12 md12 xs12 align--center my-0 py-0">
<div class="flex sm6 xl6 md6 xs6 px-0 mx-0">
<p>Prethreshold<p/>
</div>
<div class="flex sm6 xl6 md6 xs6 px-0 mx-0">
<va-input
@mouseleave.native="itemChange(preThreshold)"
@keyup.enter="itemChange(preThreshold)"
@blur="itemChange(preThreshold)"
v-model="preThreshold"
class="mb-0"
>
<p slot="append" style="margin-right: 0;" small>
µs
</p>
</va-input>
</div>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
export default {
name: 'Prethreshold',
components: {
},
computed: {
...mapFields('spike', [
'preThreshold',
]),
},
props: {
},
created () {
},
data () {
return {
}
},
mqtt: {
},
methods: {
itemChange (val) {
this.preThreshold = val
},
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
@@ -0,0 +1,57 @@
<template>
<div class="row flex sm12 xl12 md12 xs12 align--center my-0 py-0">
<div class="flex sm7 xl7 md7 xs7 px-0 mx-0">
<p>Refractory period<p/>
</div>
<div class="flex sm5 xl5 md5 xs5 px-0 mx-0">
<va-input
@mouseleave.native="itemChange(refractoryPeriod)"
@keyup.enter="itemChange(refractoryPeriod)"
@blur="itemChange(refractoryPeriod)"
v-model="refractoryPeriod"
class="mb-0"
>
<p slot="append" style="margin-right: 0;" small>
µs
</p>
</va-input>
</div>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
export default {
name: 'RefractoryPeriod',
components: {
},
computed: {
...mapFields('spike', [
'refractoryPeriod',
]),
},
props: {
},
created () {
},
data () {
return {
}
},
mqtt: {
},
methods: {
itemChange (val) {
this.refractoryPeriod = val
},
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
@@ -0,0 +1,83 @@
<template>
<div class="row flex sm12 xl12 md12 xs12 align--center my-0 py-0">
<va-radio-button
v-for="(option, index) in options"
:key="index"
v-model="selectedThreshold"
:option="option"
:label="`${option}`"
/>
<va-input
v-if="selectedThreshold === 'over'"
@mouseleave.native="itemChange(upperThreshold, 'upper')"
@keyup.enter="itemChange(upperThreshold, 'upper')"
@blur="itemChange(upperThreshold, 'upper')"
v-model="upperThreshold"
class="mb-0"
>
<p slot="append" style="margin-right: 0;" small>
µV
</p>
</va-input>
<va-input
v-if="selectedThreshold === 'bellow'"
@mouseleave.native="itemChange(lowerThreshold, 'lower')"
@keyup.enter="itemChange(lowerThreshold, 'lower')"
@blur="itemChange(lowerThreshold, 'lower')"
v-model="lowerThreshold"
class="mb-0"
>
<p slot="append" style="margin-right: 0;" small>
µV
</p>
</va-input>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
export default {
name: 'Threshold',
components: {
},
computed: {
...mapFields('spike', [
'selectedThreshold',
'upperThreshold',
'lowerThreshold',
]),
},
props: {
},
created () {
},
data () {
return {
options: [
// 'Auto',
'over',
'bellow',
],
}
},
mqtt: {
},
methods: {
itemChange (val, type) {
if (type === 'upper') {
this.upperThreshold = val
} else if (type === 'lower') {
this.lowerThreshold = val
}
},
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
@@ -0,0 +1,57 @@
<template>
<div class="row flex sm12 xl12 md12 xs12 align--center my-0 py-0">
<div class="flex sm7 xl7 md7 xs7 px-0 mx-0">
<p>Waveform length<p/>
</div>
<div class="flex sm5 xl5 md5 xs5 px-0 mx-0">
<va-input
@mouseleave.native="itemChange(waveLength)"
@keyup.enter="itemChange(waveLength)"
@blur="itemChange(waveLength)"
v-model="waveLength"
class="mb-0"
>
<p slot="append" style="margin-right: 0;" small>
µs
</p>
</va-input>
</div>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
export default {
name: 'WaveLength',
components: {
},
computed: {
...mapFields('spike', [
'waveLength',
]),
},
props: {
},
created () {
},
data () {
return {
}
},
mqtt: {
},
methods: {
itemChange (val) {
this.waveLength = val
},
},
async mounted () {
},
destroyed () {
},
watch: {
},
}
</script>
@@ -0,0 +1,37 @@
<template>
<div>
<span> Resample: {{ currentScale }} to 1 </span>
</div>
</template>
<script>
import { mapFields } from 'vuex-map-fields'
export default {
name: 'show-resample-rate',
components: {
},
props: {
},
created () {
},
data () {
return {
}
},
computed: {
...mapFields('spike', [
'currentScale',
]),
},
watch: {
},
methods: {
},
mounted () {
},
destroyed () {
},
}
</script>
@@ -0,0 +1,37 @@
<template>
<!-- <va-card
class="horizontal-bars"
> -->
<div class="row">
<div class="flex md12 xs12">
<va-progress-bar
:value="value"
>
{{ value }} %
</va-progress-bar>
</div>
</div>
<!-- </va-card> -->
</template>
<script>
export default {
name: 'progress-bar',
data () {
return {
}
},
props: {
value: {
type: Number,
required: true,
},
},
methods: {
},
mounted () {
},
destroyed () {
},
}
</script>
@@ -0,0 +1,56 @@
<template>
<va-modal
class="flex sm12 xl12 md12 xs12"
v-model="showProgressModal"
size="small"
:title="title"
hide-default-actions
>
<progressBar
:value="value"
:ref="'progressBarRef'"
/>
</va-modal>
</template>
<script>
import progressBar from '@/components/common/progressBarByValueModal/progressBar.vue'
export default {
name: 'progress-bar-modal',
components: {
progressBar,
},
data () {
return {
showProgressModal: false,
value: 0,
title: '',
}
},
methods: {
show () {
this.showProgressModal = true
},
hide () {
this.showProgressModal = false
},
setTitle (title) {
this.title = title
},
setValue (value) {
this.value = value
},
addValue () {
this.value += 1
},
reset () {
this.value = 0
},
progressDone () {
this.$refs.progressBarRef.progressDone()
this.hide()
},
},
}
</script>
@@ -0,0 +1,54 @@
<template>
<!-- <va-card
class="horizontal-bars"
> -->
<div class="row">
<div class="flex md12 xs12 mb-2 mt-2">
<va-progress-bar
:value="progressValue"
>
{{ progressValue }} %
</va-progress-bar>
</div>
</div>
<!-- </va-card> -->
</template>
<script>
export default {
name: 'progress-bar',
data () {
return {
progressValue: 0,
timeInterval: null,
}
},
props: {
// unit: sec
time: {
type: String,
required: true,
},
},
methods: {
animateValues () {
this.timeInterval = setInterval(() => {
this.progressValue += 1
if (this.progressValue === 99) {
clearInterval(this.timeInterval)
}
}, parseInt(this.time * 10))
},
progressDone () {
this.progressValue = 100
},
},
mounted () {
this.animateValues()
},
destroyed () {
clearInterval(this.timeInterval)
},
}
</script>
@@ -0,0 +1,56 @@
<template>
<va-modal
class="flex sm12 xl12 md12 xs12"
v-model="showProgressModal"
size="small"
:title="title"
:noOutsideDismiss="true"
hide-default-actions
>
<progressBar
:time="time"
:ref="'progressBarRef'"
/>
<div class="flex-center sm12 xl12 md12 xs12">
<va-button @click="hide">Cancel</va-button>
</div>
</va-modal>
</template>
<script>
import progressBar from '@/components/common/progressBarModal/progressBar.vue'
export default {
name: 'progress-bar-modal',
components: {
progressBar,
},
props: {
title: {
type: String,
default: '',
},
// unit: sec
time: {
type: String,
required: true,
},
},
data () {
return {
showProgressModal: false,
}
},
methods: {
show () {
this.showProgressModal = true
},
hide () {
this.showProgressModal = false
},
progressDone () {
this.$refs.progressBarRef.progressDone()
this.hide()
},
},
}
</script>
+60
View File
@@ -0,0 +1,60 @@
<template>
<div>
<p>aaa</p>
<chart class="chart" :option="option" />
</div>
</template>
<script>
export default {
data () {
return {
option: {
title: {
text: 'Traffic Sources',
left: 'center',
},
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)',
},
legend: {
orient: 'vertical',
left: 'left',
data: ['Direct', 'Email', 'Ad Networks', 'Video Ads', 'Search Engines'],
},
series: [
{
name: 'Traffic Sources',
type: 'pie',
radius: '55%',
center: ['50%', '60%'],
data: [
{ value: 335, name: 'Direct' },
{ value: 310, name: 'Email' },
{ value: 234, name: 'Ad Networks' },
{ value: 135, name: 'Video Ads' },
{ value: 1548, name: 'Search Engines' },
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)',
},
},
},
],
brush: {
},
},
}
},
}
</script>
<style>
.chart {
height: 100vh;
}
</style>
+115
View File
@@ -0,0 +1,115 @@
<template>
<va-card class="flex xl3 md3 sm12 xs12" title="MQTT">
<div class="row ma-1 text-center">
<va-button @click="getControllerID">Controller-ID</va-button>
<div class="flex-center">
{{ controllerID }}
</div>
</div>
<div class="row ma-1 text-start" v-if="controllerID !== ''">
<va-button @click="getHardwareInfo">HardwareInfo</va-button>
<div class="">
{{ responseMessage }}
</div>
</div>
</va-card>
</template>
<script>
import api from '@/data/api'
export default {
name: 'Developer',
components: {
},
data () {
return {
controllerID: '',
responseMessage: '',
}
},
mqtt: {
async '+/get_device_info_all/+' (data, topic) {
console.log('get_device_info_all', String.fromCharCode.apply(null, data))
},
async '+/hardware_device/+' (data, topic) {
console.log('hardware_device', String.fromCharCode.apply(null, data))
},
async '+/hardware_datetime/+' (data, topic) {
console.log('hardware_datetime', String.fromCharCode.apply(null, data))
},
async '+/hardware_info/+' (data, topic) {
console.log('hardware_info', String.fromCharCode.apply(null, data))
this.responseMessage = String.fromCharCode.apply(null, data)
},
async '+/broadcast/+' (data, topic) {
console.log('broadcast', String.fromCharCode.apply(null, data))
},
},
methods: {
mqttPub: function (topic, mes) {
this.$mqtt.publish(topic, mes)
},
mqttSub: function (val) {
this.$mqtt.subscribe(val)
},
mqttUnSub: function (val) {
this.$mqtt.unsubscribe(val)
},
pageMqttSub: function (id) {
this.mqttSub(id + '/hardware_datetime/+')
this.mqttSub(id + '/hardware_device/+')
this.mqttSub(id + '/hardware_info/+')
this.mqttSub(id + '/broadcast')
this.mqttSub(id + '/get_device_info_all/+')
},
pageMqttUnSub: function (id) {
this.mqttUnSub(id + '/hardware_datetime/+')
this.mqttUnSub(id + '/hardware_device/+')
this.mqttUnSub(id + '/hardware_info/+')
this.mqttUnSub(id + '/broadcast')
this.mqttUnSub(id + '/get_device_info_all/+')
},
getControllerID: async function () {
try {
const response = await api.controller.getAll()
if (response.status === 200) {
if (response.data.length > 0) {
this.controllerID = response.data[0].mqtt_id
this.pageMqttSub(this.controllerID)
return true
}
this.controllerID = 'No Controller Info'
return false
}
this.controllerID = 'Wrong status ' + response.status
} catch (e) {
console.log(e)
this.controllerID = e
}
},
getHardwareDatetime: function () {
this.mqttPub(this.controllerID + '_user', JSON.stringify({
header: 'hardware_datetime/0',
content: String(Date.now()),
}))
},
getHardwareInfo: function () {
this.mqttPub(this.controllerID + '_user', JSON.stringify({
header: 'hardware_info/0',
}))
},
},
async mounted () {
},
destroyed () {
if (this.controllerID !== '') {
this.pageMqttUnSub(this.controllerID)
}
},
}
</script>
<style>
</style>
+58
View File
@@ -0,0 +1,58 @@
<template>
<va-card class="" title="LED">
<div class="row ma-1">
<va-button v-for="color in colors" :key="color" :color="colorMapping[color]" @click="changeLedColor(color)">
{{color}}
</va-button>
<va-button :color="'gray'" @click="testLed()">test</va-button>
</div>
</va-card>
</template>
<script>
import { taskInfo } from '@/data/task/TaskInfo'
export default {
name: 'Developer',
components: {
},
data () {
return {
colors: ['red', 'orange', 'yellow', 'green', 'blue', 'cyan', 'magenta'],
colorMapping: {
red: 'danger',
orange: 'Orange',
blue: 'primary',
yellow: 'warning',
green: 'success',
cyan: 'info',
magenta: 'violet',
},
}
},
methods: {
mqttPub: function (topic, mes) {
this.$mqtt.publish(topic, mes)
},
testLed: function () {
this.changeLedColor('red')
setTimeout(() => { this.changeLedColor('blue') }, 2000)
setTimeout(() => { this.changeLedColor('green') }, 4000)
},
changeLedColor: function (color) {
this.mqttPub(taskInfo.getTaskInfo().controllerID + '_user', JSON.stringify({
header: 'hardware_send/0',
command: 'led',
state: color,
}))
},
},
async mounted () {
await taskInfo.updateTaskInfo(this.$route.params.taskID)
},
}
</script>
<style>
</style>
+12 -3
View File
@@ -138,7 +138,7 @@
<script>
import api from '@/data/api/index'
import { taskInfo } from '../../data/task/TaskInfo'
import { taskInfo } from '@/data/task/TaskInfo'
import { FulfillingBouncingCircleSpinner } from 'epic-spinners'
export default {
@@ -189,6 +189,7 @@ export default {
battery: device.battery,
library_name: device.library_name,
library_version: device.library_version,
record_in_sd: device.record_in_sd,
status: device.status,
pic: taskInfo.getDevicePic(device.device_name),
loading: false,
@@ -287,6 +288,10 @@ export default {
header: 'device_update_calibration/0',
device: parseInt(mes[1]),
}))
this.mqttPub(topicSplit[0] + '_user', JSON.stringify({
header: 'device_sd_card_status/0',
device: parseInt(mes[1]),
}))
// this.mqttPub(topicSplit[0] + '_user', JSON.stringify({
// header: 'device_parent/0',
// device: parseInt(mes[1]),
@@ -341,14 +346,14 @@ export default {
default:
break
}
console.log(String.fromCharCode.apply(null, data), topic)
// console.log(String.fromCharCode.apply(null, data), topic)
},
},
methods: {
getControllerList: async function () {
const update = async () => {
this.controllerList.push({
id: 'tommy_test',
id: taskInfo.getTaskInfo().controllerID,
mac: '',
status: 'loading',
isScan: true,
@@ -398,6 +403,9 @@ export default {
this.mqttPub(controller.id + '_user', JSON.stringify({
header: 'hardware_info/0',
}))
// this.mqttPub(controller.id + '_user', JSON.stringify({
// header: 'device_update_usb/0',
// }))
this.createInitialCollection('admin')
})
},
@@ -508,6 +516,7 @@ export default {
watch: {
},
async mounted () {
await taskInfo.updateTaskInfo()
await this.getControllerList()
this.pageMqttSub()
+216 -539
View File
@@ -1,143 +1,28 @@
<template>
<div>
<va-modal
class="flex sm12 xl12 md12 xs12 pa-0 ma-0"
v-model="showDownload"
size="small"
:hideDefaultActions="true"
:mobileFullscreen="false"
>
<template slot="header">
<div class="row mb-2">
<va-icon name="fa fa-download mr-3 " color="primary"/>
<h5 class="mt-0 mb-0">{{'Download'}}</h5>
</div>
</template>
<div class="downloadOptionsList">
<template v-for="(downloadOptions, i) in downloadOptionsList">
<va-accordion :key="downloadOptions.filename">
<va-collapse>
<va-item :key="downloadOptions.filename" slot="header" clickable>
<va-item-section avatar>
<va-item-label>
{{ downloadOptions.filename }}
</va-item-label>
</va-item-section>
<va-item-section>
<!-- <va-item-label>
{{ downloadInfo.minTime }}
</va-item-label>
<va-item-label caption>
{{ downloadInfo.maxTime }}
</va-item-label> -->
</va-item-section>
<va-item-section v-if="downloadOptions.download.status == 'idle'" side>
<va-icon name="fa fa-play" color="gray" @click.native.stop="confirmDownload(downloadOptions.metaPath)"/>
</va-item-section>
<va-item-section v-else side class="md4 offset--md8">
<div class="row flex sm12 xl12 md12 xs12">
<div class="flex-center spinner-box">
<fulfilling-bouncing-circle-spinner
:animation-duration="3000"
:color="'#6c7fee'"
:size="20"
>
</fulfilling-bouncing-circle-spinner>
<span class="ml-3">{{loaded}}</span>
</div>
</div>
</va-item-section>
</va-item>
<div slot="body">
<div v-if="downloadOptions.download.status == 'downloading'" class="row flex sm12 xl12 md12 xs12">
<div class="row flex sm12 xl12 md12 xs12">
<div class="flex-center spinner-box mt-4 mb-5">
<fulfilling-bouncing-circle-spinner
:animation-duration="3000"
:color="'#6c7fee'"
:size="60"
>
</fulfilling-bouncing-circle-spinner>
</div>
</div>
</div>
<div v-else>
<div class="mb-5">
<va-item class="flex sm12 xl12 md12 xs12 mr-1 pa-0">
<va-icon
class="flex sm1 xl1 md1 xs1 start "
name="glyphicon glyphicon-filter"
size="1.0rem"
:fixedWidth = "Boolean('true')"
/>
<div class="flex sm11 xl11 md11 xs11 row">
<div v-for="(item,index) in downloadOptions.channel" :key="item.channel" class="filter-button">
<va-button
class="mx-1 px-1"
v-if="item.checked"
@click="channelUnchecked(index,downloadOptions.metaPath)"
small
>
{{item.alias}}
</va-button>
<va-button
class="mx-1 px-1"
v-else
@click="channelChecked(index,downloadOptions.metaPath)"
small outline
>
{{item.alias}}
</va-button>
</div>
</div>
</va-item>
</div>
<div class="mb-5">
<va-item class="flex sm12 xl12 md12 xs12 pa-0">
<va-icon
class="flex sm1 xl1 md1 xs1 mr-4"
:fixedWidth="true"
name="va-icon glyphicon glyphicon-time"
size="1.0rem"
/>
<div class="flex">
<va-slider
class="flex sm11 xl11 md11 xs11 filter-button"
value-visible
range
v-model="downloadOptions.timeRange"
@click.native="timeRangeChange(downloadOptions.timeRange,downloadOptions.metaPath)"
@mouseup.native="timeRangeChange(downloadOptions.timeRange,downloadOptions.metaPath)"
@mouseleave.native="timeRangeChange(downloadOptions.timeRange,downloadOptions.metaPath)"
@touchend.native="timeRangeChange(downloadOptions.timeRange,downloadOptions.metaPath)"
:min="downloadOptions.minTime"
:max="downloadOptions.maxTime"
/>
<span> {{ transTime(downloadOptions.timeRange) }} </span>
</div>
</va-item>
</div>
</div>
</div>
</va-collapse>
</va-accordion>
<va-list-separator v-if="i < downloadOptionsList.length - 1" :key="'separator' + downloadOptions.filename" />
</template>
<div class="row flex sm12 xl12 md12 xs12" style="height: 100vh;">
<div class="flex-center spinner-box mt-4 mb-5">
<fulfilling-bouncing-circle-spinner
:animation-duration="3000"
:color="'#6c7fee'"
:size="60"
>
</fulfilling-bouncing-circle-spinner>
</div>
</va-modal>
</div>
</div>
</template>
<script>
import { file } from '../../data/file/File'
import { download } from '../../data/download/Download'
import { exportData } from '../../data/export/export'
import api from '@/data/api/index'
import types from '@/store/modules/download/types'
import { mapActions, mapMutations } from 'vuex'
import { FulfillingBouncingCircleSpinner } from 'epic-spinners'
import { mapFields } from 'vuex-map-fields'
import newDownload from '@/factories/file/downloadFactory'
import newChannel from '@/factories/file/channelFactory'
import { taskInfo } from '@/data/task/TaskInfo'
import configTable from '@/data/config-table/index'
export default {
name: 'Download',
@@ -146,391 +31,21 @@ export default {
},
data: () => {
return {
showDownload: false,
controllerList: [],
downloadList: [],
downloadListRecord: [],
downloadOptionsList: [],
// downloadInfo: {
// metaPath: '',
// previousPath: '',
// filenameWithType: '',
// filename: '',
// channel: [],
// timeRange: [0, 0],
// minTime: 0,
// maxTime: 0,
// status: 'idle',
// device: '',
// },
currentlyDownloadInfo: {
metaPath: '',
previousPath: '',
filenameWithType: '',
filename: '',
channel: [],
timeRange: [0, 0],
minTime: 0,
maxTime: 0,
download: {
status: 'idle',
rate: 0,
},
device: '',
},
estimatedTime: 0,
fileSegmentIndex: 0,
fileSegmentMax: 0,
totoalFileSize: 0,
loadingPercent: 0,
loadTime: 0,
interval: null,
data: '',
}
},
computed: {
// transTime (min,max) {
// return this.getTimeInFormat(min) + ' - ' + this.getTimeInFormat(max)
// },
loaded () {
return this.loadingPercent + '%'
},
...mapFields('download', [
'metaList',
'downloadInfo',
'metaInfo',
]),
},
// mqtt: {
// async '+/file_segment/+' (data, topic) {
// console.log('file_segment')
// console.log(String.fromCharCode.apply(null, data))
// // console.log(navigator.connection.downlink)
// // console.log(this.fileNum)
// // console.log(this.downloadOptionsList.length)
// // console.log(JSON.parse(String.fromCharCode.apply(null, data)).data.file_size)
// if (this.downloadOptionsList.length > 0) {
// await download.updateFileSegmentInfo(String.fromCharCode.apply(null, data))
// this.fileSegmentMax = download.getFileSegmentMaxIndex()
// this.checkFileSegmentGetOrNot()
// }
// },
// async '+/file_segment_get/+' (data, topic) {
// console.log('file_segment_get')
// console.log(JSON.parse(new TextDecoder('utf-8').decode(data)))
// if (this.downloadOptionsList.length > 0) {
// const segmentData = atob(JSON.parse(new TextDecoder('utf-8').decode(data)).data.segment)
// this.data += segmentData
// this.fileSegmentIndex += 1
// this.checkFileSegmentGetOrNot()
// }
// },
// },
methods: {
transTime (timeRange) {
return this.getTimeInFormat(timeRange[0]) + ' - ' + this.getTimeInFormat(timeRange[1])
},
notify (name) {
this.showToast(`done ${name}`, {
position: 'bottom-right',
})
},
showDownloadModal: function () {
this.showDownload = true
},
channelChecked: function (channelIndex, path) {
download.getDownloadOptions(path).channel[channelIndex].checked = true
this.refresh()
},
channelUnchecked: function (channelIndex, path) {
download.getDownloadOptions(path).channel[channelIndex].checked = false
this.refresh()
},
getTimeInFormat: function (time) {
if (time < 60) {
const second = time
return `${second}s`
} else if (time < 3600) {
const second = time % 60
const minute = parseInt(time / 60)
return `${minute}m${second}s`
} else {
const hour = parseInt(time / 3600)
const hourRemain = time % 3600
const minute = parseInt(hourRemain / 60)
const second = hourRemain % 60
return `${hour}h${minute}m${second}s`
}
},
getCurrentFullPathName: function () {
return this.currentlyDownloadInfo.previousPath + '/' + this.currentlyDownloadInfo.filenameWithType
},
downloading: async function (info) {
this.$emit('download')
},
addDownloadTask: async function (info) {
this.downloading()
/*
** download all
*/
if (parseInt(info.time_duration) < 18e8) {
const rawData = await download.getAllRawDatas(info)
exportData.exportCSV(info, rawData)
} else {
for (const channelID in info.raw_data) {
const rawDataIDList = info.raw_data[channelID]
while (rawDataIDList.length > 1000) {
const _list = rawDataIDList.splice(0, 1000)
const rawData = await download.getIndexRawDatas(info, channelID, _list)
exportData.exportCSV(info, rawData)
}
const rawData = await download.getIndexRawDatas(info, channelID, rawDataIDList)
exportData.exportCSV(info, rawData, channelID)
rawData[channelID].length = 0
// const rawData = await download.getAllRawDatas(info)
// console.timeEnd('download')
}
}
// console.time('download')
// const rawData = await download.getAllRawDatas(info)
// console.timeEnd('download')
// exportData.exportCSV(info, rawData)
/*
** download split
*/
this.downloading()
},
_addDownloadTask: function (downloadPath) {
if (Array.isArray(downloadPath)) {
downloadPath.forEach(path => {
this.downloadList.push(path.path)
this.updateDownloadInfo(path.path)
})
} else {
this.downloadList.push(downloadPath)
this.updateDownloadInfo(downloadPath)
}
this.confirmDownload()
},
refresh: function () {
this.downloadOptionsList = download.getDownloadOptionsList()
console.log(this.downloadOptionsList)
},
confirmDownload: function (path) {
console.log('confirmDownload')
console.log(download.getDownloadOptionsList())
console.log(download.isFileDownloading())
console.log(download.downloadTaskRemain())
if (!download.isFileDownloading() && download.downloadTaskRemain()) {
const downloadOptionsIndex = download.getDownloadOptionsList().findIndex(downloadInfo => downloadInfo.metaPath === path)
// this.downloadBlockList[downloadInfoIndex].status = 'downloading'
this.currentlyDownloadInfo = download.getDownloadOptionsList()[downloadOptionsIndex]
this.currentlyDownloadInfo.download.status = 'downloading'
console.log(this.currentlyDownloadInfo)
console.log(download.getDownloadOptionsList())
download.updateDownloadSubFileList(
this.currentlyDownloadInfo.metaPath,
this.currentlyDownloadInfo.channel,
this.currentlyDownloadInfo.timeRange,
)
this.calculateFileSize(this.currentlyDownloadInfo.metaPath)
console.log('getactualsize')
this.subfileListRemain()
}
// if (this.downloadList.length > 0 && this.currentlyDownloadInfo.status === 'idle') {
// this.showDownload()
// this.updateDownloadSubFileList(this.downloadList[0])
// } else {
// /* TODO If file downloading then waiting */
// console.log('no download task or file downloading')
// }
},
_confirmDownload: function () {
console.log('confirmDownload')
console.log(download.getDownloadOptionsList())
// if (this.downloadList.length > 0 && this.currentlyDownloadInfo.status === 'idle') {
// this.showDownload()
// this.updateDownloadSubFileList(this.downloadList[0])
// } else {
// /* TODO If file downloading then waiting */
// console.log('no download task or file downloading')
// }
},
downloadAllSubFileList: async function (path) {
this.currentlyDownloadInfo = this.downloadInfo
download.downloadAllSubFileList(path)
this.subfileListRemain()
},
// updateDownloadInfo: function (path) {
// console.log(path)
// const metaInfo = file.getMetaInfo(path)
// const downloadInfoIndex = this.downloadBlockList.findIndex(downloadInfo => downloadInfo.metaPath === path)
// if (downloadInfoIndex === -1) {
// this.downloadInfo.library = metaInfo.configuration._LIBRARY_
// this.downloadInfo.channel = metaInfo.channel.map(ch => {
// let channel = ''
// if (this.downloadInfo.library.includes('Elite')) {
// channel = (ch === 0) ? 'current' : (ch === 1) ? 'voltage' : (ch === 2) ? 'resistance' : ''
// } else {
// channel = 'channel' + ch
// }
// return {
// alias: channel,
// channel: ch,
// checked: true,
// }
// })
// this.downloadInfo.metaPath = path
// this.downloadInfo.previousPath = path.split('/').slice(0, -1).join('/')
// this.downloadInfo.filename = path.split(/[\/.]+/).slice(0, -1).pop()
// this.downloadInfo.minTime = parseInt([...new Set(metaInfo['start-time'])][0] / 1000)
// this.downloadInfo.maxTime = parseInt(metaInfo.time_duration / 1000)
// this.downloadInfo.timeRange = [this.downloadInfo.minTime, this.downloadInfo.maxTime]
// this.downloadInfo.status = 'idle'
// this.downloadBlockList.push(JSON.parse(JSON.stringify(this.downloadInfo)))
// } else {
// for (var item in this.downloadInfo) {
// this.downloadInfo[item] = this.downloadBlockList[downloadInfoIndex][item]
// }
// }
// },
updatecurrentlyDownloadInfo: function () {
const downloadInfoIndex = this.downloadBlockList.findIndex(downloadInfo => downloadInfo.metaPath === this.currentlyDownloadInfo.metaPath)
if (downloadInfoIndex !== -1) {
for (var item in this.downloadBlockList[downloadInfoIndex]) {
this.downloadBlockList[downloadInfoIndex][item] = this.currentlyDownloadInfo[item]
}
}
},
updateMetaDownloadInfo: function () {
download.updateDownloadSubFileList(
this.currentlyDownloadInfo.metaPath,
this.currentlyDownloadInfo.channel,
this.currentlyDownloadInfo.timeRange,
)
},
updateDownloadSubFileList: function (path) {
console.log('updateDownloadSubFileList')
const downloadOptionsIndex = this.downloadBlockList.findIndex(downloadInfo => downloadInfo.metaPath === path)
this.downloadBlockList[downloadOptionsIndex].status = 'downloading'
this.currentlyDownloadInfo = this.downloadBlockList[downloadOptionsIndex]
this.updatecurrentlyDownloadInfo()
download.updateDownloadSubFileList(
this.currentlyDownloadInfo.metaPath,
this.currentlyDownloadInfo.channel,
this.currentlyDownloadInfo.timeRange,
)
this.subfileListRemain()
},
_updateDownloadSubFileList: function (path) {
console.log(path)
console.log(this.downloadInfo)
const downloadOptionsIndex = this.downloadBlockList.findIndex(downloadInfo => downloadInfo.metaPath === path)
this.downloadBlockList[downloadOptionsIndex].status = 'downloading'
this.currentlyDownloadInfo = this.downloadBlockList[downloadOptionsIndex]
// this.updatecurrentlyDownloadInfo()
download.updateDownloadSubFileList(
this.currentlyDownloadInfo.metaPath,
this.currentlyDownloadInfo.channel,
this.currentlyDownloadInfo.timeRange,
)
this.subfileListRemain()
},
subfileListRemain: function () {
console.log('subfileListRemain')
if (download.checkDownloadSubFileList(this.currentlyDownloadInfo.metaPath)) {
this.currentlyDownloadInfo.filenameWithType = download.getFirstSubfile(this.currentlyDownloadInfo.metaPath)
} else {
this.loadingPercent = 100
console.log(this.currentlyDownloadInfo.filenameWithType + ' download complete')
console.log(performance.now())
this.exportCSV()
this.test(this.downloadDone)
// this.currentlyDownloadInfo.status = this.currentlyDownloadInfo.status = 'idle'
// this.updatecurrentlyDownloadInfo()
// this.loadingPercent = 0
}
},
checkFileSegmentGetOrNot: function () {
console.log('checkFileSegmentGetOrNot')
if (this.fileSegmentIndex >= this.fileSegmentMax) {
const subfile = file.shiftDownloadSubFileList(this.currentlyDownloadInfo.metaPath)
file.pushDownloadData(this.currentlyDownloadInfo.metaPath, subfile, this.data)
this.data = ''
this.fileSegmentIndex = 0
this.subfileListRemain()
} else {
}
},
exportCSV: function () {
exportData.exportCSV(this.currentlyDownloadInfo)
},
exportTXT: function () {
},
timeRangeChange: function (timeRange, path) {
download.getDownloadOptions(path).timeRange = timeRange
this.refresh()
},
calculateFileSize: function () {
this.totoalFileSize = file.getFileSize(this.currentlyDownloadInfo.metaPath)
// const allSubfile = download.getAllSubfile(this.currentlyDownloadInfo.metaPath)
// this.fileNum = allSubfile.length
const downlinkSpeed = this.getNetSpeed('data:image/png;base64,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', 3)
// this.totoalFileSize = (allSubfile.length) * 1000000
console.log(downlinkSpeed)
console.log(this.totoalFileSize)
this.estimatedTime = this.totoalFileSize / (downlinkSpeed * 1024)
if (this.totoalFileSize >= 1 * 1024 * 1024) {
console.log('size big')
this.estimatedTime = this.estimatedTime * 10
}
console.log(this.estimatedTime)
this.loadTime = parseInt((this.estimatedTime / 1000) % 60) * 100
console.log(this.loadTime)
this.doProgress()
// allSubfile.forEach(subfile => {
// console.log(subfile)
// this.currentlyDownloadInfo.filenameWithType = subfile
// })
},
doProgress () {
const step = this.estimatedTime / 100 * 1000
this.interval = setInterval(() => {
if (this.loadingPercent >= 99) {
console.log('complete')
clearInterval(this.interval)
this.estimatedTime = 0
} else {
this.loadingPercent++
}
}, step)
},
getNetSpeed (url, times) {
const connection = window.navigator.connection
if (connection && connection.downlink) {
return connection.downlink * 1024 / 8
}
},
test: async function (fn) {
return await setTimeout(async function () {
await fn()
}, 1000)
},
downloadDone: function () {
download.getDownloadOptionsList().shift()
this.loadingPercent = 0
this.refresh()
this.confirmDownload()
},
getControllerList: async function () {
const update = async () => {
this.controllerList.push({
id: 'tommy_test',
id: taskInfo.getTaskInfo().controllerID,
mac: '',
status: 'loading',
isScan: true,
@@ -539,43 +54,205 @@ export default {
}
await update()
},
mqttPub: function (topic, mes) {
this.$mqtt.publish(topic, mes)
},
mqttSub: function (val) {
this.$mqtt.subscribe(val)
},
mqttUnSub: function (val) {
this.$mqtt.unsubscribe(val)
},
pageMqttSub: function () {
this.controllerList.forEach(controller => {
// this.mqttSub(controller.id + '/broadcast')
this.mqttSub(controller.id + '/file_meta_info/+')
this.mqttSub(controller.id + '/file_segment/+')
this.mqttSub(controller.id + '/file_segment_get/+')
notify (name) {
this.showToast(`done ${name}`, {
position: 'bottom-right',
})
},
pageMqttUnSub: function () {
this.controllerList.forEach(controller => {
// this.mqttUnSub(controller.id + '/broadcast')
this.mqttUnSub(controller.id + '/file_meta_info/+')
this.mqttUnSub(controller.id + '/file_segment/+')
this.mqttUnSub(controller.id + '/file_segment_get/+')
})
chunkArray (rawDataIDArray, chunkSize) {
const arrayLength = rawDataIDArray.length
const results = []
for (let index = 0; index < arrayLength; index += chunkSize) {
results.push(rawDataIDArray.slice(index, index + chunkSize))
}
return results
},
...mapActions('download',
[
types.raw.rawDataByID,
types.raw.rawDataByIDs,
types.raw.rawSdDataByID,
types.export.setHeader,
types.export.setTitle,
types.export.setData,
types.download.closeWriter,
types.download.setStream,
types.download.setSampleRate,
types.download.setIDList,
types.download.clearStream,
],
),
...mapMutations('download',
[
types.download.clearIDList,
],
),
},
watch: {
},
// watch: {
// loadingPercent(val) {
// if (val >= 100) {
// console.log('complete');
// clearInterval(this.interval)
// }
// }
// },
async mounted () {
await this.getControllerList()
this.pageMqttSub()
// TODO authorization
const format = this.$route.params.format.split('-')[0]
const allChannel = this.$route.params.format.split('-')[1]
this.metaList = this.$route.params.metaList.split('-')
const sd = this.$route.params.sd
while (this.metaList.length !== 0) {
let meta
const metaID = this.metaList.pop()
const ret = await api.meta.getByID(metaID)
if (ret.status === 200) {
meta = ret.data[0]
}
if (meta !== undefined) {
this.metaInfo = meta
const channelParamObj = configTable.getModeConfig(meta.device.library_name, meta.parameter_set.MODE).channels
const channelArray = allChannel === 'all' ? JSON.parse(this.metaInfo.channels) : Object.keys(channelParamObj).filter(ele => ele !== 'time')
const channelList = []
// split to different subfile by channel
if (meta.device.library_name.indexOf('Neulive') >= 0) {
if (channelArray.some(el => el >= 256)) {
channelList.push(channelArray.filter(el => (el >= 256 && el <= 259)))
channelList.push(channelArray.filter(el => el < 256))
} else {
channelList.push(channelArray)
}
} else if (meta.device.library_name.indexOf('Elite') >= 0) {
channelList.push(channelArray)
}
while (channelList.length > 0) {
const channels = channelList.pop()
let maxSplitFiles = 1
let fileIndex = 0
// find max raw data need sub file
for (const rawDataIndex of channels) {
const dataLength = meta.raw_data[rawDataIndex].length
maxSplitFiles = Math.max(maxSplitFiles, Math.ceil(meta.raw_data[rawDataIndex].length / dataLength))
meta.raw_data[rawDataIndex] = this.chunkArray(meta.raw_data[rawDataIndex], dataLength)
}
while (fileIndex < maxSplitFiles) {
// create new download info & add channel
if (this.downloadInfo === null) {
this.downloadInfo = newDownload()
}
this.downloadInfo.channel = channels
// download format
this.downloadInfo.format = format
// download device and filename
if (meta.device.library_name.indexOf('Neulive') >= 0) {
this.downloadInfo.device = [meta.device.library_name.slice(0, 7), meta.device.library_name.slice(7)]
if (this.downloadInfo.channel.some(el => el >= 256 && el <= 259)) {
this.downloadInfo.filename = meta.name + '-accerlate'
this.downloadInfo.filename += (sd !== undefined) ? '-sd' : ''
this.downloadInfo.size = parseInt(parseInt(meta.size) / (76 * (maxSplitFiles)))
} else {
this.downloadInfo.filename = meta.name
this.downloadInfo.filename += (sd !== undefined) ? '-sd' : ''
this.downloadInfo.size = parseInt(meta.size / (maxSplitFiles))
}
} else if (meta.device.library_name.indexOf('Elite') >= 0) {
this.downloadInfo.device = [meta.device.library_name.slice(0, 5), meta.device.library_name.slice(5)]
this.downloadInfo.filename = meta.name
this.downloadInfo.size = parseInt(meta.size / (maxSplitFiles))
}
// create new channel info & get sample rate
for (const channel of this.downloadInfo.channel) {
if (this.downloadInfo.channelInfo[channel] === undefined) {
this.downloadInfo.channelInfo[channel] = newChannel()
this.setSampleRateDownload({ channel: channel })
}
}
// set download ID list
this.clearIDListDownload()
for (const channel of this.downloadInfo.channel) {
this.setIDListDownload({ channel: channel, fileIndex: fileIndex })
}
// if create writer
this.clearStreamDownload()
this.setStreamDownload()
// set Header
if (this.downloadInfo.format !== 'csv-edf') {
await this.setHeaderExport()
}
await this.setTitleExport()
// start download data
let rowIndex = 0
let columnNum = 0
const requestArray = []
console.time('download')
// console.log(this.downloadInfo)
while (rowIndex - 10 < this.downloadInfo.maxRows) {
// console.log('rowIndex < this.downloadInfo.maxRows', rowIndex, this.downloadInfo.maxRows)
for (const channel of this.downloadInfo.channel) {
columnNum = this.downloadInfo.channelInfo[channel].downloadIDList.length
for (const idx in this.downloadInfo.channelInfo[channel].downloadIDList) {
const _idx = parseInt(idx)
if (this.downloadInfo.channelInfo[channel].downloadDataBuffer[idx] === undefined) {
this.downloadInfo.channelInfo[channel].downloadDataBuffer[idx] = []
}
// const rawID = this.downloadInfo.channelInfo[channel].downloadIDList[_idx][rowIndex]
const rawIDList = this.downloadInfo.channelInfo[channel].downloadIDList[_idx].slice(rowIndex, rowIndex + 10)
// console.log(channel, rawIDList)
rawIDList.length > 0 && requestArray.push(api.raw.getAttrByIDs(channel, rawIDList, 'id-channel-size-serial_number-start_time-end_time-data'))
if (rawIDList.length === 0) columnNum -= 1
}
}
const responseArray = await Promise.all(requestArray)
// console.log('responseArray', responseArray)
for (const responseIndex in responseArray) {
const response = responseArray[responseIndex]
// console.log('response', response)
const idx = responseIndex % columnNum
for (const data of response.data) {
const timeUnitScale = channelParamObj.time.unit[channelParamObj.time.downloadUnit]
const channelUnitScale = channelParamObj[data.channel]?.unit[channelParamObj[data.channel]?.downloadUnit]
// console.log('data', data)
const dataArray = data.data.split('"***"').slice(0, -1)
// console.log('dataArray', dataArray)
for (const raw of dataArray) {
const rawArray = raw.split(' ')
const newArray = rawArray[0] === '' ? [] : rawArray.map((ele, index) => {
// console.log((parseInt(ele) / timeUnitScale).toFixed(Math.log10(timeUnitScale)))
return (index % 2 === 0) ? String((parseInt(ele) / timeUnitScale).toFixed(Math.log10(timeUnitScale))) : channelUnitScale ? String((parseInt(ele) / channelUnitScale).toFixed(Math.log10(channelUnitScale))) : ele
})
this.downloadInfo.channelInfo[data.channel].downloadDataBuffer[idx].push(...newArray)
// console.log('rawArray', rawArray)
}
}
}
requestArray.length = 0
// console.log('this.downloadInfo.channelInfo', this.downloadInfo.channelInfo)
// console.log('this.downloadInfo.maxRows', this.downloadInfo.maxRows)
await this.setDataExport({ last: (rowIndex >= this.downloadInfo.maxRows - 1) })
rowIndex += 10
}
this.closeWriterDownload()
fileIndex += 1
}
console.timeEnd('download')
}
}
}
await new Promise(resolve => setTimeout(resolve, 2000)) // sleep 2s prevent window close
window.close()
},
destroyed () {
this.pageMqttUnSub()
+264
View File
@@ -0,0 +1,264 @@
<template>
<div>
<div class="row flex sm12 xl12 md12 xs12" style="height: 100vh;">
<div class="flex-center spinner-box mt-4 mb-5">
<fulfilling-bouncing-circle-spinner
:animation-duration="3000"
:color="'#6c7fee'"
:size="60"
>
</fulfilling-bouncing-circle-spinner>
<progress-modal
:ref="'progressModalRef'"
/>
</div>
</div>
</div>
</template>
<script>
import api from '@/data/api/index'
import types from '@/store/modules/download/types'
import { mapActions, mapMutations } from 'vuex'
import { FulfillingBouncingCircleSpinner } from 'epic-spinners'
import { mapFields } from 'vuex-map-fields'
import newDownload from '@/factories/file/downloadFactory'
import newChannel from '@/factories/file/channelFactory'
import progressModal from '@/components/common/progressBarByValueModal/progressModal.vue'
import { taskInfo } from '@/data/task/TaskInfo'
import configTable from '@/data/config-table/index'
export default {
name: 'DownloadOffline',
components: {
FulfillingBouncingCircleSpinner,
progressModal,
},
data: () => {
return {
controllerList: [],
}
},
computed: {
...mapFields('download', [
'metaList',
'downloadInfo',
'metaInfo',
]),
},
methods: {
getControllerList: async function () {
const update = async () => {
this.controllerList.push({
id: taskInfo.getTaskInfo().controllerID,
mac: '',
status: 'loading',
isScan: true,
files: [],
})
}
await update()
},
notify (name) {
this.showToast(`done ${name}`, {
position: 'bottom-right',
})
},
chunkArray (rawDataIDArray, chunkSize) {
const arrayLength = rawDataIDArray.length
const results = []
for (let index = 0; index < arrayLength; index += chunkSize) {
results.push(rawDataIDArray.slice(index, index + chunkSize))
}
return results
},
...mapActions('download',
[
types.raw.rawDataByID,
types.raw.rawDataByIDs,
types.raw.rawSdDataByID,
types.export.setHeader,
types.export.setTitle,
types.export.setData,
types.export.setAll,
types.download.closeWriter,
types.download.setStream,
types.download.setSampleRate,
types.download.setIDList,
],
),
...mapMutations('download',
[
types.download.clearIDList,
],
),
},
watch: {
},
async mounted () {
await this.getControllerList()
// TODO authorization
const format = this.$route.params.format.split('-')[0]
const allChannel = this.$route.params.format.split('-')[1]
this.metaList = this.$route.params.metaList.split('-')
const sd = this.$route.params.sd
while (this.metaList.length !== 0) {
let meta
const metaID = this.metaList.pop()
const ret = await api.meta.getByID(metaID)
if (ret.status === 200) {
meta = ret.data[0]
}
if (meta !== undefined) {
this.metaInfo = meta
const channelParamObj = configTable.getModeConfig(meta.device.library_name, meta.parameter_set.MODE).channels
const channelArray = allChannel === 'all' ? JSON.parse(this.metaInfo.channels) : Object.keys(channelParamObj).filter(ele => ele !== 'time')
const channelList = []
if (meta.device.library_name.indexOf('Neulive') >= 0) {
if (channelArray.some(el => el >= 256)) {
channelList.push(channelArray.filter(el => (el >= 256 && el <= 259)))
channelList.push(channelArray.filter(el => el < 256))
} else {
channelList.push(channelArray)
}
} else if (meta.device.library_name.indexOf('Elite') >= 0) {
channelList.push(channelArray)
}
this.$refs.progressModalRef.show()
while (channelList.length > 0) {
const channels = channelList.pop()
let maxSplitFiles = 1
let fileIndex = 0
// find max raw data need sub file
for (const rawDataIndex of Object.keys(meta.raw_data)) {
let dataLength = 0
if (rawDataIndex >= 256) {
dataLength = meta.raw_data[rawDataIndex].length
} else {
dataLength = 10000
}
maxSplitFiles = Math.max(maxSplitFiles, Math.ceil(meta.raw_data[rawDataIndex].length / dataLength))
meta.raw_data[rawDataIndex] = this.chunkArray(meta.raw_data[rawDataIndex], dataLength)
}
while (fileIndex < maxSplitFiles) {
if (this.downloadInfo === null) {
this.downloadInfo = newDownload()
}
this.downloadInfo.channel = channels
// download format
this.downloadInfo.format = format
// download device and filename
if (meta.device.library_name.indexOf('Neulive') >= 0) {
this.downloadInfo.device = [meta.device.library_name.slice(0, 7), meta.device.library_name.slice(7)]
if (this.downloadInfo.channel.some(el => el >= 256 && el <= 259)) {
this.downloadInfo.filename = meta.name + '-accerlate-' + format
this.downloadInfo.filename += (sd !== undefined) ? '-sd' : ''
this.downloadInfo.size = parseInt(parseInt(meta.size) / 76)
} else {
this.downloadInfo.filename = meta.name + '-' + format
this.downloadInfo.filename += (sd !== undefined) ? '-sd' : ''
this.downloadInfo.size = parseInt(meta.size)
}
} else if (meta.device.library_name.indexOf('Elite') >= 0) {
this.downloadInfo.device = [meta.device.library_name.slice(0, 5), meta.device.library_name.slice(5)]
this.downloadInfo.filename = meta.name + '-' + (fileIndex + 1).toString()
this.downloadInfo.size = parseInt(meta.size)
}
this.$refs.progressModalRef.setTitle(this.downloadInfo.filename)
// get sampleRate && downloadList
for (const channel of this.downloadInfo.channel) {
if (this.downloadInfo.channelInfo[channel] === undefined) {
this.downloadInfo.channelInfo[channel] = newChannel()
this.setSampleRateDownload({ channel: channel })
}
}
this.clearIDListDownload()
for (const channel of this.downloadInfo.channel) {
this.setIDListDownload({ channel: channel, fileIndex: fileIndex })
}
// start download data
fileIndex += 1
let rowIndex = 0
let columnNum = 0
const requestArray = []
console.time('download')
while (rowIndex - 10 < this.downloadInfo.maxRows) {
this.$refs.progressModalRef.setValue(parseInt((rowIndex / this.downloadInfo.maxRows) * 100))
// console.log('rowIndex < this.downloadInfo.maxRows', rowIndex, this.downloadInfo.maxRows)
for (const channel of this.downloadInfo.channel) {
columnNum = this.downloadInfo.channelInfo[channel].downloadIDList.length
for (const idx in this.downloadInfo.channelInfo[channel].downloadIDList) {
const _idx = parseInt(idx)
if (this.downloadInfo.channelInfo[channel].downloadDataBuffer[idx] === undefined) {
this.downloadInfo.channelInfo[channel].downloadDataBuffer[idx] = []
}
// const rawID = this.downloadInfo.channelInfo[channel].downloadIDList[_idx][rowIndex]
const rawIDList = this.downloadInfo.channelInfo[channel].downloadIDList[_idx].slice(rowIndex, rowIndex + 10)
// console.log(channel, rawIDList)
rawIDList.length > 0 && requestArray.push(api.raw.getAttrByIDs(channel, rawIDList, 'id-channel-size-serial_number-start_time-end_time-data'))
if (rawIDList.length === 0) columnNum -= 1
}
}
const responseArray = await Promise.all(requestArray)
// console.log('responseArray', responseArray)
for (const responseIndex in responseArray) {
const response = responseArray[responseIndex]
// console.log('response', response)
const idx = responseIndex % columnNum
// console.log('response', response)
for (const data of response.data) {
const timeUnitScale = channelParamObj.time.unit[channelParamObj.time.downloadUnit]
const channelUnitScale = channelParamObj[data.channel]?.unit[channelParamObj[data.channel]?.downloadUnit]
// console.log('data', data)
const dataArray = data.data.split('"***"').slice(0, -1)
// console.log('dataArray', dataArray)
for (const raw of dataArray) {
const rawArray = raw.split(' ')
const newArray = rawArray[0] === '' ? [] : rawArray.map((ele, index) => {
return (index % 2 === 0) ? String((parseInt(ele) / timeUnitScale).toFixed(Math.log10(timeUnitScale))) : channelUnitScale ? String((parseInt(ele) / channelUnitScale).toFixed(Math.log10(channelUnitScale))) : ele
})
this.downloadInfo.channelInfo[data.channel].downloadDataBuffer[idx].push(...newArray)
// console.log('rawArray', rawArray)
}
}
}
requestArray.length = 0
// console.log('this.downloadInfo.channelInfo', this.downloadInfo.channelInfo)
// console.log('this.downloadInfo.maxRows', this.downloadInfo.maxRows)
// await this.setDataExport({ last: (rowIndex >= this.downloadInfo.maxRows - 1) })
rowIndex += 10
}
await this.setAllExport({ last: (rowIndex >= this.downloadInfo.maxRows - 1) })
this.$refs.progressModalRef.setValue(100)
}
}
}
}
await new Promise(resolve => setTimeout(resolve, 2000)) // sleep
window.close()
},
destroyed () {
},
}
</script>
<style>
.filter-button {
text-align: center;
}
</style>
@@ -1,159 +0,0 @@
<template>
<div>
</div>
</template>
<script>
import api from '@/data/api/index'
import types from '@/store/modules/file/elite/csv/types'
import { mapActions, mapGetters, mapMutations } from 'vuex'
// import { FulfillingBouncingCircleSpinner } from 'epic-spinners'
export default {
name: 'Download',
components: {
// FulfillingBouncingCircleSpinner,
},
data: () => {
return {
controllerList: [],
spliceDataNumsLimit: 20,
}
},
computed: {
getByIndex (index) {
return this.getByIndexDownload(index)
},
getDownloading () {
return this.getDownloadingDownload()
},
getRemainIDLength (index) {
return this.getRemainIDLengthDownload(index)
},
},
methods: {
getControllerList: async function () {
const update = async () => {
this.controllerList.push({
id: 'tommy_test',
mac: '',
status: 'loading',
isScan: true,
files: [],
})
}
await update()
},
mqttPub: function (topic, mes) {
this.$mqtt.publish(topic, mes)
},
mqttSub: function (val) {
this.$mqtt.subscribe(val)
},
mqttUnSub: function (val) {
this.$mqtt.unsubscribe(val)
},
pageMqttSub: function () {
this.controllerList.forEach(controller => {
// this.mqttSub(controller.id + '/broadcast')
this.mqttSub(controller.id + '/file_meta_info/+')
this.mqttSub(controller.id + '/file_segment/+')
this.mqttSub(controller.id + '/file_segment_get/+')
})
},
pageMqttUnSub: function () {
this.controllerList.forEach(controller => {
// this.mqttUnSub(controller.id + '/broadcast')
this.mqttUnSub(controller.id + '/file_meta_info/+')
this.mqttUnSub(controller.id + '/file_segment/+')
this.mqttUnSub(controller.id + '/file_segment_get/+')
})
},
notify (name) {
this.showToast(`done ${name}`, {
position: 'bottom-right',
})
},
...mapActions('eliteCsv',
[
types.download.init,
types.download.rawDataByIDs,
types.export.createHeadersString,
types.export.createTitlesString,
types.export.createDataString,
types.export.closeFileStream,
],
),
...mapMutations('eliteCsv',
[
types.download.setDownloading,
types.download.removeDownloadBuffer,
],
),
...mapGetters('eliteCsv',
[
types.download.getByIndex,
types.download.getDownloading,
types.download.getAll,
types.download.getRemainIDLength,
],
),
},
watch: {
},
async mounted () {
await this.getControllerList()
// TODO authorization
this.pageMqttSub()
const metaIDList = this.$route.params.metaList.split('-')
const recoverData = this.$route.params.recover
await this.initDownload({ metaIDList: metaIDList, api: api })
// let first file download in download List
this.setDownloadingDownload()
const downloadingFile = this.getDownloading
downloadingFile.recoverData = recoverData
let spliceDataNums = 0
// console.log('downloadingFile', downloadingFile)
// console.log(this.getRemainIDLength(0))
// create headers and title
this.createHeadersStringExport()
this.createTitlesStringExport()
// loop until each channel's rawID List empty
while (this.getRemainIDLength(0)) {
// forEach channel in raw_data
for (const channel in downloadingFile.raw_data) {
// get spliceDataNumsLimit numbers of ID to download once time
if (downloadingFile.raw_data[channel].length >= this.spliceDataNumsLimit) {
spliceDataNums = this.spliceDataNumsLimit
} else {
spliceDataNums = downloadingFile.raw_data[channel].length
}
const rawID = downloadingFile.raw_data[channel].splice(0, spliceDataNums)
// console.log('rawID', channel, rawID)
// download data and save into dataBuffer by rawDataIDList
await this.rawDataByIDsDownload({
channel: channel,
rawDataIDList: rawID,
api: api,
})
}
// export data
this.createDataStringExport()
// this.removeDownloadBufferDownload()
}
this.closeFileStreamExport()
},
destroyed () {
this.pageMqttUnSub()
},
}
</script>
<style>
.filter-button {
text-align: center;
}
</style>
@@ -1,207 +0,0 @@
<template>
<div>
</div>
</template>
<script>
import api from '@/data/api/index'
import types from '@/store/modules/file/elite/excel/types'
import { mapActions, mapGetters, mapMutations } from 'vuex'
// import { file } from '../../data/file/File'
// import { download } from '../../data/download/Download'
// import { exportData } from '../../data/export/export'
// import { FulfillingBouncingCircleSpinner } from 'epic-spinners'
export default {
name: 'Download',
components: {
// FulfillingBouncingCircleSpinner,
},
data: () => {
return {
controllerList: [],
}
},
computed: {
getByIndex (index) {
return this.getByIndexDownload(index)
},
getDownloading () {
return this.getDownloadingDownload()
},
getRemainIDLength (index) {
return this.getRemainIDLengthDownload(index)
},
// transTime (min,max) {
// return this.getTimeInFormat(min) + ' - ' + this.getTimeInFormat(max)
// },
loaded () {
return this.loadingPercent + '%'
},
},
methods: {
transTime (timeRange) {
return this.getTimeInFormat(timeRange[0]) + ' - ' + this.getTimeInFormat(timeRange[1])
},
notify (name) {
this.showToast(`done ${name}`, {
position: 'bottom-right',
})
},
getControllerList: async function () {
const update = async () => {
this.controllerList.push({
id: 'tommy_test',
mac: '',
status: 'loading',
isScan: true,
files: [],
})
}
await update()
},
mqttPub: function (topic, mes) {
this.$mqtt.publish(topic, mes)
},
mqttSub: function (val) {
this.$mqtt.subscribe(val)
},
mqttUnSub: function (val) {
this.$mqtt.unsubscribe(val)
},
pageMqttSub: function () {
this.controllerList.forEach(controller => {
// this.mqttSub(controller.id + '/broadcast')
this.mqttSub(controller.id + '/file_meta_info/+')
this.mqttSub(controller.id + '/file_segment/+')
this.mqttSub(controller.id + '/file_segment_get/+')
})
},
pageMqttUnSub: function () {
this.controllerList.forEach(controller => {
// this.mqttUnSub(controller.id + '/broadcast')
this.mqttUnSub(controller.id + '/file_meta_info/+')
this.mqttUnSub(controller.id + '/file_segment/+')
this.mqttUnSub(controller.id + '/file_segment_get/+')
})
},
...mapActions('eliteExcel',
[
types.download.init,
types.download.rawDataByIDs,
types.export.createHeadersString,
types.export.createTitlesString,
types.export.createDataString,
types.export.closeFileStream,
],
),
...mapMutations('eliteExcel',
[
types.download.setDownloading,
types.download.removeDownloadBuffer,
],
),
...mapGetters('eliteExcel',
[
types.download.getByIndex,
types.download.getDownloading,
types.download.getAll,
types.download.getRemainIDLength,
],
),
},
openPortal () {
this.windowRef = window.open('', '', 'width=600,height=400,left=200,top=200')
this.windowRef.document.body.appendChild(this.$el)
// copyStyles(window.document, this.windowRef.document)
this.windowRef.addEventListener('beforeunload', this.closePortal)
},
closePortal () {
if (this.windowRef) {
this.windowRef.close()
this.windowRef = null
this.$emit('close')
}
},
// watch: {
// loadingPercent(val) {
// if (val >= 100) {
// console.log('complete');
// clearInterval(this.interval)
// }
// }
// },
async mounted () {
await this.getControllerList()
// TODO authorization
this.pageMqttSub()
const metaIDList = this.$route.params.metaList.split('-')
await this.initDownload({ metaIDList: metaIDList, api: api })
this.setDownloadingDownload()
const downloadingFile = this.getDownloading
console.log('downloadingFile', downloadingFile)
console.log(this.getRemainIDLength(0))
// create headers and title
this.createHeadersStringExport()
this.createTitlesStringExport()
// let spliceDataNums = 0
let rowIndex = 0
// let columnIndex = 0
// // while (this.getRemainIDLength(0)) {
while (rowIndex < downloadingFile.needRows) {
for (const channel in downloadingFile.downloadIDList) {
const rawID = downloadingFile.downloadIDList[channel][rowIndex]
// console.log('rawID', channel, rawID)
if (rawID !== undefined) {
await this.rawDataByIDsDownload({
channel: channel,
rawDataIDList: rawID,
api: api,
})
}
}
this.createDataStringExport()
this.removeDownloadBufferDownload()
// console.log('end', downloadingFile)
rowIndex += 1
}
this.closeFileStreamExport()
// }
// if (downloadingFile.raw_data[channel].length >= 10) {
// spliceDataNums = 10
// } else {
// spliceDataNums = downloadingFile.raw_data[channel].length
// }
// const rawID = downloadingFile.raw_data[channel].splice(0, spliceDataNums)
// console.log('rawID', channel, rawID)
// await this.rawDataByIDsDownload({
// channel: channel,
// rawDataIDList: rawID,
// api: api,
// })
// }
// // console.log('end', downloadingFile)
// // export data
// this.createDataStringExport({})
// this.removeDownloadBufferDownload()
// }
// const rawData = await download.getAllRawDatas(meta.data[0])
// exportData.exportCSV(meta.data[0], rawData)
// await this.initMeta({ metaIDList: metaIDList, api: api })
},
destroyed () {
this.pageMqttUnSub()
},
}
</script>
<style>
.filter-button {
text-align: center;
}
</style>

Some files were not shown because too many files have changed in this diff Show More