/* *************************************************************************** * * Author: Teunis van Beelen * * Copyright (C) 2015 - 2023 Teunis van Beelen * * Email: teuniz@protonmail.com * *************************************************************************** * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * *************************************************************************** */ #ifndef UI_VIEW_MAINFORM_H #define UI_VIEW_MAINFORM_H #include #include #include #include #include #include #include #include #include #include "qt_headers.h" #include "global.h" #include "about_dialog.h" #include "utils.h" #include "connection.h" #include "tmc_dev.h" #include "tled.h" #include "edflib.h" #include "signalcurve.h" #include "settings_dialog.h" #include "screen_thread.h" #include "lan_connect_thread.h" #include "read_settings_thread.h" #include "save_data_thread.h" #include "decode_dialog.h" #include "tdial.h" #include "wave_dialog.h" #include "playback_dialog.h" #include "third_party/kiss_fft/kiss_fftr.h" class SignalCurve; class UI_Mainwindow : public QMainWindow { Q_OBJECT public: UI_Mainwindow(); ~UI_Mainwindow(); char recent_dir[MAX_PATHLEN], recent_savedir[MAX_PATHLEN]; void read_settings(void); void write_settings(void); void set_cue_cmd(const char *); void set_cue_cmd(const char *, char *); void serial_decoder(struct device_settings *); void save_wave_inspector_buffer_to_edf(struct device_settings *); struct device_settings devparms; QLabel *statusLabel; QFont *appfont; int adjDialFunc, navDialFunc; QTimer *scrn_timer, *label_timer; screen_thread *scrn_thread; private: QMenuBar *menubar; QMenu *devicemenu, *settingsmenu, *helpmenu; QTimer *adjdial_timer, *navDial_timer, *horPosDial_timer, *trigAdjDial_timer, *vertOffsDial_timer, *horScaleDial_timer, *vertScaleDial_timer, *test_timer; QStatusBar *statusBar; QLabel *adjDialLabel, *horScaleLabel, *horPosLabel, *vertScaleLabel, *vertOffsetLabel, *trigLevelLabel, *trigModeLabel, *ch1InputLabel, *ch2InputLabel, *ch3InputLabel, *ch4InputLabel; QDockWidget *dockPanelRight; QWidget *DPRwidget; QGroupBox *verticalGrpBox, *horizontalGrpBox, *triggerGrpBox, *menuGrpBox, *quickGrpBox; QPushButton *ch1Button, *ch2Button, *ch3Button, *ch4Button, *chanMenuButton, *clearButton, *autoButton, *runButton, *singleButton, *horMenuButton, *trigModeButton, *trigMenuButton, *trigForceButton, *trig50pctButton, *acqButton, *cursButton, *saveButton, *dispButton, *utilButton, *helpButton, *playpauseButton, *stopButton, *recordButton, *measureButton, *mathMenuButton; TDial *adjDial, *horScaleDial, *horPosDial, *vertScaleDial, *vertOffsetDial, *trigAdjustDial, *navDial; QString def_stylesh; QImage screenXpm; QAction *former_page_act, *shift_page_left_act, *shift_page_right_act, *next_page_act, *zoom_in_act, *zoom_out_act, *chan_scale_plus_act, *chan_scale_plus_all_channels_act, *chan_scale_minus_act, *chan_scale_minus_all_channels_act, *shift_trace_up_act, *shift_trace_down_act, *select_chan1_act, *select_chan2_act, *select_chan3_act, *select_chan4_act, *toggle_fft_act, *center_trigger_act, *center_position_act, *save_screenshot_act, *save_app_screenshot_act; struct tmcdev *device; TLed *trigModeAutoLed, *trigModeNormLed, *trigModeSingLed; SignalCurve *waveForm; int parse_preamble(char *, int, struct waveform_preamble *, int); int get_metric_factor(double); void get_device_model(const char *); double get_stepsize_divide_by_1000(double); inline unsigned char reverse_bitorder_8(unsigned char); inline unsigned int reverse_bitorder_32(unsigned int); int get_device_settings(int delay=0); private slots: void scrn_timer_handler(); void screenUpdate(); void adjdial_timer_handler(); void label_timer_handler(); void test_timer_handler(); void horPosDial_timer_handler(); void trigAdjDial_timer_handler(); void vertOffsDial_timer_handler(); void horScaleDial_timer_handler(); void vertScaleDial_timer_handler(); void show_about_dialog(); void show_howto_operate(); void open_connection(); void close_connection(); void open_settings_dialog(); void save_screen_waveform(); void get_deep_memory_waveform(); void save_screenshot(); void save_app_screenshot(); void adjDialChanged(int); void trigAdjustDialChanged(int); void horScaleDialChanged(int); void horPosDialChanged(int); void vertOffsetDialChanged(int); void vertScaleDialChanged(int); void ch1ButtonClicked(); void ch2ButtonClicked(); void ch3ButtonClicked(); void ch4ButtonClicked(); void clearButtonClicked(); void autoButtonClicked(); void runButtonClicked(); void singleButtonClicked(); void horMenuButtonClicked(); void trigModeButtonClicked(); void trigMenuButtonClicked(); void trigForceButtonClicked(); void trig50pctButtonClicked(); void acqButtonClicked(); void cursButtonClicked(); void saveButtonClicked(); void dispButtonClicked(); void utilButtonClicked(); void helpButtonClicked(); void measureButtonClicked(); void horizontal_delayed_toggle(); void horizontal_delayed_on(); void horizontal_delayed_off(); void counter_off(); void counter_ch1(); void counter_ch2(); void counter_ch3(); void counter_ch4(); void trigger_source_ch1(); void trigger_source_ch2(); void trigger_source_ch3(); void trigger_source_ch4(); void trigger_source_ext(); void trigger_source_ext5(); void trigger_source_acl(); void trigger_source_la_d0(void); void trigger_source_la_d1(void); void trigger_source_la_d2(void); void trigger_source_la_d3(void); void trigger_source_la_d4(void); void trigger_source_la_d5(void); void trigger_source_la_d6(void); void trigger_source_la_d7(void); void trigger_source_la_d8(void); void trigger_source_la_d9(void); void trigger_source_la_d10(void); void trigger_source_la_d11(void); void trigger_source_la_d12(void); void trigger_source_la_d13(void); void trigger_source_la_d14(void); void trigger_source_la_d15(void); void trigger_source_la(int); void trigger_coupling_dc(); void trigger_coupling_ac(); void trigger_coupling_lfreject(); void trigger_coupling_hfreject(); void trigger_slope_pos(); void trigger_slope_neg(); void trigger_slope_rfal(); void trigger_setting_holdoff(); void horPosDialClicked(QPoint); void vertOffsetDialClicked(QPoint); void horScaleDialClicked(QPoint); void vertScaleDialClicked(QPoint); void trigAdjustDialClicked(QPoint); void adjustDialClicked(QPoint); void navDialReleased(); void navDial_timer_handler(); void navDialChanged(int); void set_grid_type_vectors(); void set_grid_type_dots(); void set_grid_full(); void set_grid_half(); void set_grid_none(); void set_grading_min(); void set_grading_005(); void set_grading_01(); void set_grading_02(); void set_grading_05(); void set_grading_1(); void set_grading_2(); void set_grading_5(); void set_grading_10(); void set_grading_20(); void set_grading_inf(); void chan_coupling_ac(); void chan_coupling_dc(); void chan_coupling_gnd(); void chan_bwl_off(); void chan_bwl_20(); void chan_bwl_100(); void chan_bwl_200(); void chan_bwl_250(); void chan_invert_on(); void chan_invert_off(); void chan_probe_001(); void chan_probe_002(); void chan_probe_005(); void chan_probe_01(); void chan_probe_02(); void chan_probe_05(); void chan_probe_1(); void chan_probe_2(); void chan_probe_5(); void chan_probe_10(); void chan_probe_20(); void chan_probe_50(); void chan_probe_100(); void chan_probe_200(); void chan_probe_500(); void chan_probe_1000(); void chan_unit_v(); void chan_unit_w(); void chan_unit_a(); void chan_unit_u(); void chan_menu(); void math_menu(); void set_acq_normal(); void set_acq_average(); void set_acq_peak(); void set_acq_hres(); void set_memdepth(int); void set_memdepth_auto(); void set_memdepth_12k(); void set_memdepth_120k(); void set_memdepth_1200k(); void set_memdepth_12m(); void set_memdepth_24m(); void set_memdepth_6k(); void set_memdepth_60k(); void set_memdepth_600k(); void set_memdepth_6m(); void set_memdepth_3k(); void set_memdepth_30k(); void set_memdepth_300k(); void set_memdepth_3m(); void set_memdepth_7k(); void set_memdepth_70k(); void set_memdepth_700k(); void set_memdepth_7m(); void set_memdepth_70m(); void set_memdepth_14k(); void set_memdepth_140k(); void set_memdepth_1400k(); void set_memdepth_14m(); void set_memdepth_140m(); void set_memdepth_28m(); void set_memdepth_56m(); void former_page(); void shift_page_left(); void shift_page_right(); void next_page(); void zoom_in(); void zoom_out(); void chan_scale_plus(); void chan_scale_plus_all(); void chan_scale_minus_all(); void chan_scale_minus(); void shift_trace_up(); void shift_trace_down(); void center_trigger(); void set_to_factory(); void toggle_fft(); void toggle_fft_split(); void toggle_fft_unit(); void select_fft_ch1(); void select_fft_ch2(); void select_fft_ch3(); void select_fft_ch4(); void select_fft_hzdiv_20(); void select_fft_hzdiv_40(); void select_fft_hzdiv_80(); void select_fft_hzdiv_100(); void select_fft_hzdiv_200(); void set_fft_hzdiv(double); void select_fft_ctr_5(); void select_fft_ctr_6(); void select_fft_ctr_7(); void select_fft_ctr_8(); void select_fft_ctr_9(); void select_fft_ctr_10(); void select_fft_ctr_11(); void select_fft_ctr_12(); void select_fft_vscale1(); void select_fft_vscale2(); void select_fft_vscale5(); void select_fft_vscale10(); void select_fft_vscale20(); void set_fft_vscale(); void select_fft_voffsetp4(); void select_fft_voffsetp3(); void select_fft_voffsetp2(); void select_fft_voffsetp1(); void select_fft_voffset0(); void select_fft_voffsetm1(); void select_fft_voffsetm2(); void select_fft_voffsetm3(); void select_fft_voffsetm4(); void set_fft_voffset(); void show_decode_window(); void show_playback_window(); void playpauseButtonClicked(); void stopButtonClicked(); void recordButtonClicked(); void updateLabels(); protected: void closeEvent(QCloseEvent *); }; #endif