|
204 | 204 | </v-layout>
|
205 | 205 | </v-container>
|
206 | 206 | </v-tab-item>
|
| 207 | + <v-tab-item> |
| 208 | + <v-container grid-list-md text-xs-center> |
| 209 | + <v-layout row wrap> |
| 210 | + <!-- Column A --> |
| 211 | + <v-flex xs12 md6 offset-md3> |
| 212 | + <h3 class="text-xs-left">{{ $t('message.settings_camera_title') }}</h3> |
| 213 | + <v-card> |
| 214 | + <div class="cardContent"> |
| 215 | + <v-select |
| 216 | + v-model="settings.camera_exposure_mode" |
| 217 | + :items="cameraExposureModes" |
| 218 | + item-text="text" |
| 219 | + item-value="key" |
| 220 | + v-bind:label="$t('message.settings_camera_exposure_mode')" |
| 221 | + single-line |
| 222 | + ></v-select> |
| 223 | + {{ $t("message.settings_camera_framerate") }}: |
| 224 | + <span v-text="settings.camera_framerate"></span> |
| 225 | + <v-slider v-model="settings.camera_framerate" min="5" max="30" step="5" /> |
| 226 | + {{ $t("message.settings_camera_jpeg_bitrate") }}: |
| 227 | + <span v-text="settings.camera_jpeg_bitrate"></span> |
| 228 | + <v-slider v-model="settings.camera_jpeg_bitrate" min="1000000" max="10000000" step="1000000" |
| 229 | + v-bind:label="$t('message.settings_camera_jpeg_bitrate')" /> |
| 230 | + {{ $t("message.settings_camera_jpeg_quality") }}: |
| 231 | + <span v-text="settings.camera_jpeg_quality"></span> |
| 232 | + <v-slider v-model="settings.camera_jpeg_quality" min="1" max="100" step="1" |
| 233 | + v-bind:label="$t('message.settings_camera_jpeg_quality')" /> |
| 234 | + </div> |
| 235 | + </v-card> |
| 236 | + <br><br> |
| 237 | + <h3 class="text-xs-left">{{ $t('message.settings_camera_cv_title') }}</h3> |
| 238 | + <v-card> |
| 239 | + <div class="cardContent"> |
| 240 | + {{ $t("message.settings_camera_cv_image_factor") }}: |
| 241 | + <span v-text="settings.cv_image_factor"></span> |
| 242 | + <v-slider v-model="settings.cv_image_factor" min="1" max="4" step="1" /> |
| 243 | + <v-text-field v-model="settings.camera_color_object_size_max" |
| 244 | + v-bind:label="$t('message.settings_camera_color_object_size_max')" /> |
| 245 | + <v-text-field v-model="settings.camera_color_object_size_min" |
| 246 | + v-bind:label="$t('message.settings_camera_color_object_size_min')" /> |
| 247 | + <v-text-field v-model="settings.camera_path_object_size_max" |
| 248 | + v-bind:label="$t('message.settings_camera_path_object_size_max')" /> |
| 249 | + <v-text-field v-model="settings.camera_path_object_size_min" |
| 250 | + v-bind:label="$t('message.settings_camera_path_object_size_min')" /> |
| 251 | + <v-select |
| 252 | + v-model="settings.cnn_default_model" |
| 253 | + :items="cnnModels" |
| 254 | + item-text="text" |
| 255 | + item-value="key" |
| 256 | + v-bind:label="$t('message.settings_camera_cnn_default_model')" /> |
| 257 | + </div> |
| 258 | + </v-card> |
| 259 | + </v-flex> |
| 260 | + </v-layout> |
| 261 | + </v-container> |
| 262 | + </v-tab-item> |
207 | 263 | <v-tab-item>
|
208 | 264 | <v-container grid-list-md text-xs-center>
|
209 | 265 | <v-layout row wrap>
|
|
507 | 563 | </v-layout>
|
508 | 564 | </v-container>
|
509 | 565 | </v-tab-item>
|
510 |
| - |
511 | 566 | </v-tabs-items>
|
512 |
| - <!--</template> |
513 |
| - <template v-else> |
514 |
| - <br> |
515 |
| - In attesa che CoderBot torni online...<br> |
516 |
| - <v-icon large>signal_wifi_off</v-icon> |
517 |
| - </template>--> |
518 | 567 | </v-main>
|
519 | 568 | <!-- Notification Snackbar -->
|
520 | 569 | <v-snackbar v-model="snackbar">
|
@@ -542,6 +591,7 @@ export default {
|
542 | 591 | this.getInfoAndStatus();
|
543 | 592 | this.prepopulate();
|
544 | 593 | this.loadMusicPackages();
|
| 594 | + this.loadCNNModels(); |
545 | 595 | },
|
546 | 596 | methods: {
|
547 | 597 | pickFile() {
|
@@ -572,6 +622,18 @@ export default {
|
572 | 622 | });
|
573 | 623 | });
|
574 | 624 | },
|
| 625 | + loadCNNModels() { |
| 626 | + this.$axios.get(`${this.CB}/listCNNModels`).then((result) => { |
| 627 | + this.cnnModels = []; |
| 628 | + const cnn_models = JSON.parse(result.data); |
| 629 | + Object.entries(cnn_models).forEach((entry) => { |
| 630 | + console.log(entry); |
| 631 | + const model_key = entry[0]; |
| 632 | + // const model_data = entry[1]; |
| 633 | + this.cnnModels.push({ key: model_key, text: model_key }); |
| 634 | + }); |
| 635 | + }); |
| 636 | + }, |
575 | 637 | uploadPackage() {
|
576 | 638 | /*
|
577 | 639 | const qs = this.$qs;
|
@@ -766,47 +828,21 @@ export default {
|
766 | 828 | const data = this.settings;
|
767 | 829 | console.log(response.data);
|
768 | 830 | const remoteConfig = response.data;
|
769 |
| - /* |
770 |
| - button_func: "none" |
771 |
| - camera_color_object_size_max: "160000" |
772 |
| - camera_color_object_size_min: "4000" |
773 |
| - camera_exposure_mode: "auto" |
774 |
| - camera_framerate: "30" |
775 |
| - camera_jpeg_bitrate: "1000000" |
776 |
| - camera_jpeg_quality: "5" |
777 |
| - camera_path_object_size_max: "160000" |
778 |
| - camera_path_object_size_min: "4000" |
779 |
| - cnn_default_model: "" |
780 |
| - ctrl_fw_elapse: "-1" |
781 |
| - ctrl_fw_speed: "99" |
782 |
| - ctrl_hud_image: "" |
783 |
| - ctrl_tr_elapse: "-1" |
784 |
| - ctrl_tr_speed: "80" |
785 |
| - cv_image_factor: "2" |
786 |
| - load_at_start: "" |
787 |
| - move_fw_elapse: "1" |
788 |
| - move_fw_speed: "100" |
789 |
| - move_motor_mode: "dc" |
790 |
| - move_motor_trim: "1" |
791 |
| - move_power_angle_1: "45" |
792 |
| - move_power_angle_2: "60" |
793 |
| - move_power_angle_3: "60" |
794 |
| - move_tr_elapse: "0.5" |
795 |
| - move_tr_speed: "85" |
796 |
| - prog_level: "adv" |
797 |
| - prog_maxblocks: "-1" |
798 |
| - prog_scrollbars: "true" |
799 |
| - show_control_move_commands: "true" |
800 |
| - show_page_control: "true" |
801 |
| - show_page_prefs: "true" |
802 |
| - show_page_program: "true" |
803 |
| - sound_shutter: "$shutter.mp3" |
804 |
| - sound_start: "$startup.mp3" |
805 |
| - sound_stop: "$shutdown.mp3" |
806 |
| - */ |
807 | 831 | data.power = [remoteConfig.move_power_angle_1, remoteConfig.move_power_angle_2, remoteConfig
|
808 | 832 | .move_power_angle_3
|
809 | 833 | ];
|
| 834 | + data.ctrl_hud_image = remoteConfig.ctrl_hud_image; |
| 835 | + data.cv_image_factor = remoteConfig.cv_image_factor; |
| 836 | + data.camera_color_object_size_max = remoteConfig.camera_color_object_size_max; |
| 837 | + data.camera_color_object_size_min = remoteConfig.camera_color_object_size_min; |
| 838 | + data.camera_exposure_mode = remoteConfig.camera_exposure_mode; |
| 839 | + data.camera_framerate = remoteConfig.camera_framerate; |
| 840 | + data.camera_jpeg_bitrate = remoteConfig.camera_jpeg_bitrate; |
| 841 | + data.camera_jpeg_quality = remoteConfig.camera_jpeg_quality; |
| 842 | + data.camera_path_object_size_max = remoteConfig.camera_path_object_size_max; |
| 843 | + data.camera_path_object_size_min = remoteConfig.camera_path_object_size_min; |
| 844 | + data.cnn_default_model = remoteConfig.cnn_default_model; |
| 845 | + data.prog_maxblocks = remoteConfig.prog_maxblocks; |
810 | 846 | data.btnFun = remoteConfig.button_func;
|
811 | 847 | data.wifiMode = remoteConfig.wifi_mode;
|
812 | 848 | data.wifiSSID = remoteConfig.wifi_ssid;
|
@@ -840,6 +876,18 @@ export default {
|
840 | 876 | const data = this.settings;
|
841 | 877 | if (selectedTab != 4) {
|
842 | 878 | const legacySettings = qs.stringify({
|
| 879 | + ctrl_hud_image: data.ctrl_hud_image, |
| 880 | + cv_image_factor: data.cv_image_factor, |
| 881 | + camera_color_object_size_max: data.camera_color_object_size_max, |
| 882 | + camera_color_object_size_min: data.camera_color_object_size_min, |
| 883 | + camera_exposure_mode: data.camera_exposure_mode, |
| 884 | + camera_framerate: data.camera_framerate, |
| 885 | + camera_jpeg_bitrate: data.camera_jpeg_bitrate, |
| 886 | + camera_jpeg_quality: data.camera_jpeg_quality, |
| 887 | + camera_path_object_size_max: data.camera_path_object_size_max, |
| 888 | + camera_path_object_size_min: data.camera_path_object_size_min, |
| 889 | + cnn_default_model: data.cnn_default_model, |
| 890 | + prog_maxblocks: data.prog_maxblocks, |
843 | 891 | wifi_mode: data.wifiMode,
|
844 | 892 | wifi_ssid: data.wifiSSID,
|
845 | 893 | wifi_psk: data.wifiPsw,
|
@@ -920,6 +968,18 @@ export default {
|
920 | 968 | updateStatus: 0,
|
921 | 969 | // TODO: Prepopulate this
|
922 | 970 | settings: {
|
| 971 | + ctrl_hud_image: null, |
| 972 | + cv_image_factor: null, |
| 973 | + camera_color_object_size_max: null, |
| 974 | + camera_color_object_size_min: null, |
| 975 | + camera_exposure_mode: null, |
| 976 | + camera_framerate: null, |
| 977 | + camera_jpeg_bitrate: null, |
| 978 | + camera_jpeg_quality: null, |
| 979 | + camera_path_object_size_max: null, |
| 980 | + camera_path_object_size_min: null, |
| 981 | + cnn_default_model: null, |
| 982 | + prog_maxblocks: null, |
923 | 983 |
|
924 | 984 | cbName: 'CoderBot',
|
925 | 985 | power: [null, null, null],
|
@@ -991,13 +1051,23 @@ export default {
|
991 | 1051 | tabs: [
|
992 | 1052 | this.$i18n.t('message.settings_tabs_general'),
|
993 | 1053 | this.$i18n.t('message.settings_tabs_movement'),
|
| 1054 | + this.$i18n.t('message.settings_tabs_camera'), |
994 | 1055 | this.$i18n.t('message.settings_tabs_sounds'),
|
995 | 1056 | this.$i18n.t('message.settings_tabs_advanced'),
|
996 | 1057 | this.$i18n.t('message.settings_tabs_network'),
|
997 | 1058 | this.$i18n.t('message.settings_tabs_test'),
|
998 | 1059 | this.$i18n.t('message.settings_tabs_audio'),
|
999 | 1060 | this.$i18n.t('message.settings_tabs_music_packages')
|
1000 | 1061 | ],
|
| 1062 | + cameraExposureModes: [ |
| 1063 | + { text: 'Auto', key: 'auto' }, |
| 1064 | + { text: 'Sports', key: 'sports' }, |
| 1065 | + { text: 'Night', key: 'night' }, |
| 1066 | + { text: 'Fixed FPS', key: 'fixedfps' }, |
| 1067 | + { text: 'Anti shake', key: 'antishake' }, |
| 1068 | + { text: 'Very long', key: 'verylong' } |
| 1069 | + ], |
| 1070 | + cnnModels: [] |
1001 | 1071 | };
|
1002 | 1072 | },
|
1003 | 1073 | };
|
|
0 commit comments