Repository navigation
Expand file tree
/
Copy pathRemotePlusMain.h
More file actions
executable file
·188 lines (148 loc) · 6.76 KB
/
Copy pathRemotePlusMain.h
File metadata and controls
executable file
·188 lines (148 loc) · 6.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
//----------------------------------------------------------------------------//
// Application: Remote Plus for AXIOM Cameras //
// //
// Author: Phil Kerr //
// Company: Plus24 Systems Ltd. //
// Website: www.plus24systems.com/RemotePlus //
// Copyright (C) 2016 Phil Kerr - Plus24 Systems Ltd. //
// //
// 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 <http://www.gnu.org/licenses/>. //
// //
// //
//----------------------------------------------------------------------------//
#ifndef REMOTEPLUSMAIN_H
#define REMOTEPLUSMAIN_H
#include <wx/wx.h>
#include <wx/thread.h>
#include <wx/dynarray.h>
#include <wx/numdlg.h>
#include <wx/progdlg.h>
#include <wx/event.h>
#include <wx/notebook.h>
#include <wx/panel.h>
#include <wx/frame.h>
#include <wx/gbsizer.h>
#include <wx/filename.h>
#include "MenuWidget.h"
#include "ConnectionWidget.h"
#include "AxiomSystemWidget.h"
#include "TemperatureWidget.h"
#include "RemotePlusDefines.h"
//----------------------------------------------------------------------------//
wxDECLARE_EVENT (UART_TX, wxCommandEvent);
wxDECLARE_EVENT (GPIO_EVENT, wxCommandEvent);
//----------------------------------------------------------------------------//
class RemotePlusMain;
class RemotePlusUARTThread : public wxThread
{
public:
RemotePlusUARTThread (RemotePlusMain *widget) : wxThread (wxTHREAD_JOINABLE)
{
uart_widget = widget;
}
virtual ExitCode Entry () wxOVERRIDE;
void uart_tx (int data);
void uart_tx (wxCommandEvent& event);
private:
RemotePlusMain *uart_widget;
int uart0;
};
//----------------------------------------------------------------------------//
class RemotePlusMain : public wxFrame, private wxLog
{
public:
RemotePlusMain (const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size);
virtual ~RemotePlusMain ();
void OnSize (wxSizeEvent& event);
void OnPaint (wxPaintEvent& event);
// Used for testing on PC, not used on Remote
void OnKeyDown (wxKeyEvent& event);
// Event handler for the two events above
void MenuEventDispatch (int item);
// Used to reset the menu states prior to activating a menu
void ResetMenus ();
private:
static const long ID_MAIN;
static const long ID_CONFIG;
static const long ID_DEBUG;
static const long ID_NOTEBOOKMAIN;
static const long ID_MIDDLE;
static const long ID_CONFIGMIDDLE;
static const long ID_TMENU1;
static const long ID_TMENU2;
static const long ID_TMENU3;
static const long ID_TMENU4;
static const long ID_BMENU1;
static const long ID_BMENU2;
static const long ID_BMENU3;
static const long ID_BMENU4;
static const long ID_CSPANEL;
static const long ID_CSBOX;
//Connection Status Widget
static const long ID_CONSTAT;
//Temp Status Widget
static const long ID_TEMP;
// AXIOM Firmware Widget
static const long ID_SYSTEM;
// This is the main wx widget for the app
wxNotebook* MainNotebook;
// This panel is the main camera settings view
wxPanel* MainSettings;
// This panel contains the Remote Plus config settings view
wxPanel* ConfigSettings;
wxPanel* MainMiddle;
wxPanel* ConfigMain;
wxPanel* ConfigData;
// Function Button Icons - Main
static const long ID_CancelBitmap;
static const long ID_OKBitmap;
static const long ID_NextBitmap;
static const long ID_BackBitmap;
static const long ID_ConfigBitmap;
static const long ID_HomeBitmap;
// Function Button Icons - Config
static const long ID_ConfigCancelBitmap;
static const long ID_ConfigOKBitmap;
static const long ID_ConfigNextBitmap;
static const long ID_ConfigBackBitmap;
static const long ID_ConfigConfigBitmap;
static const long ID_ConfigHomeBitmap;
wxStaticBitmap* CancelBitmap;
wxStaticBitmap* OKBitmap;
wxStaticBitmap* NextBitmap;
wxStaticBitmap* BackBitmap;
wxStaticBitmap* ConfigBitmap;
wxStaticBitmap* HomeBitmap;
wxStaticBitmap* ConfigCancelBitmap;
wxStaticBitmap* ConfigOKBitmap;
wxStaticBitmap* ConfigNextBitmap;
wxStaticBitmap* ConfigBackBitmap;
wxStaticBitmap* ConfigConfigBitmap;
wxStaticBitmap* ConfigHomeBitmap;
MenuWidget* TopMenu1;
MenuWidget* TopMenu2;
MenuWidget* TopMenu3;
MenuWidget* TopMenu4;
MenuWidget* BotMenu1;
MenuWidget* BotMenu2;
MenuWidget* BotMenu3;
MenuWidget* BotMenu4;
ConnectionWidget* ConStat;
AxiomSystemWidget* AxiomSystem;
RemotePlusUARTThread uart_thread;
int activeMenu;
int keyactive;
};
//----------------------------------------------------------------------------//
#endif // REMOTEPLUSMAIN_H