68class CPWindow1 :
public CPWindow {
74 CFileDialog filedialog1;
82 CPMenu menu1_Microcontroller;
86 CItemMenu menu1_File_LoadHex;
87 CItemMenu menu1_File_ReloadLast;
88 CItemMenu menu1_File_SaveHex;
89 CItemMenu menu1_File_Configure;
90 CItemMenu menu1_File_SaveWorkspace;
91 CItemMenu menu1_File_LoadWorkspace;
92 CItemMenu menu1_File_LoadBoardDemo;
93 CItemMenu menu1_File_Exit;
94 CItemMenu menu1_Modules_Oscilloscope;
95 CItemMenu menu1_Modules_Spareparts;
96 CItemMenu menu1_Tools_SerialTerm;
97 CItemMenu menu1_Tools_SerialRemoteTank;
98 CItemMenu menu1_Tools_Esp8266ModemSimulator;
99 CItemMenu menu1_Tools_ArduinoBootloader;
100 CItemMenu menu1_Tools_MPLABXDebuggerPlugin;
101 CItemMenu menu1_Tools_PinViewer;
102 CItemMenu menu1_Help_Contents;
103 CItemMenu menu1_Help_Board;
104 CItemMenu menu1_Help_Examples;
105 CItemMenu menu1_Help_About_Board;
106 CItemMenu menu1_Help_About_PICSimLab;
107 CItemMenu menu1_Help_Check_for_Update;
108 CStatusbar statusbar1;
109 CToggleButton togglebutton1;
110 CFileDialog filedialog2;
112 void _EvOnCreate(CControl* control);
113 void _EvOnDestroy(CControl* control);
114 void _EvOnShow(CControl* control);
115 void _EvOnDropFile(CControl* control,
const std::string fname);
116 void timer1_EvOnTime(CControl* control);
117 void timer2_EvOnTime(CControl* control);
118 void filedialog1_EvOnClose(
const int retId);
119 void draw1_EvMouseMove(CControl* control,
const unsigned int button,
const unsigned int x,
const unsigned int y,
120 const unsigned int state);
121 void draw1_EvMouseButtonPress(CControl* control,
const unsigned int button,
const unsigned int x,
122 const unsigned int y,
const unsigned int state);
123 void draw1_EvMouseButtonRelease(CControl* control,
const unsigned int button,
const unsigned int x,
124 const unsigned int y,
const unsigned int state);
125 void draw1_EvKeyboardPress(CControl* control,
const unsigned int key,
const unsigned int hkey,
126 const unsigned int mask);
127 void draw1_EvKeyboardRelease(CControl* control,
const unsigned int key,
const unsigned int hkey,
128 const unsigned int mask);
129 void combo1_EvOnComboChange(CControl* control);
130 void menu1_File_LoadHex_EvMenuActive(CControl* control);
131 void menu1_File_ReloadLast_EvMenuActive(CControl* control);
132 void menu1_File_SaveHex_EvMenuActive(CControl* control);
133 void menu1_File_Configure_EvMenuActive(CControl* control);
134 void menu1_File_SaveWorkspace_EvMenuActive(CControl* control);
135 void menu1_File_LoadWorkspace_EvMenuActive(CControl* control);
136 void menu1_File_LoadBoardDemo_EvMenuActive(CControl* control);
137 void menu1_File_Exit_EvMenuActive(CControl* control);
138 void menu1_Modules_Oscilloscope_EvMenuActive(CControl* control);
139 void menu1_Modules_Spareparts_EvMenuActive(CControl* control);
140 void menu1_Tools_SerialTerm_EvMenuActive(CControl* control);
141 void menu1_Tools_SerialRemoteTank_EvMenuActive(CControl* control);
142 void menu1_Tools_Esp8266ModemSimulator_EvMenuActive(CControl* control);
143 void menu1_Tools_ArduinoBootloader_EvMenuActive(CControl* control);
144 void menu1_Tools_MPLABXDebuggerPlugin_EvMenuActive(CControl* control);
145 void menu1_Tools_PinViewer_EvMenuActive(CControl* control);
146 void menu1_Help_Contents_EvMenuActive(CControl* control);
147 void menu1_Help_Examples_EvMenuActive(CControl* control);
148 void menu1_Help_Board_EvMenuActive(CControl* control);
149 void menu1_Help_About_Board_EvMenuActive(CControl* control);
150 void menu1_Help_About_PICSimLab_EvMenuActive(CControl* control);
151 void menu1_Help_Check_for_Update_EvMenuActive(CControl* control);
152 void togglebutton1_EvOnToggleButton(CControl* control);
153 void filedialog2_EvOnClose(
const int retId);
161 void board_Event(CControl* control);
162 void board_ButtonEvent(CControl* control,
unsigned int button,
unsigned int x,
unsigned int y,
unsigned int state);
163 void thread1_EvThreadRun(CControl* control);
164 void thread2_EvThreadRun(CControl* control);
165 void thread3_EvThreadRun(CControl* control);
167 void menu1_EvBoard(CControl* control);
168 void menu1_EvMicrocontroller(CControl* control);
169 void DrawBoard(
void);
170 static void OnUpdateStatus(
const int field,
const std::string msg);
171 static void OnConfigure(
void);
172 static void OnClockSet(
const float clk,
const int update);
173 static void OnReadPreferences(
const char* name,
const char* value,
const int create);
174 static void OnSavePrefs(
void);
175 static void OnLoadHexFile(
const std::string fname);
176 static void OnOpenLoadHexFileDialog(
void);
177 static void OnEndSimulation(
void);
178 static void* OnUpdateGUI(
const int id,
const PICSimlabGUIType type,
const PICSimlabGUIAction action,
180 static void OnConfigMenuGUI(
const PICSimlabGUIMenu type);
182 static int OnWindowCmd(
const int id,
const char* ControlName,
const PICSimLabWindowAction action,
const char* Value,
184 static int OnSystemCmd(
const PICSimLabSystemCmd cmd,
const char* Arg,
void* ReturnBuff);
186 void Configure(
void);
187 int GetNeedClkUpdate(
void) {
return need_clkupdate; };
188 void SetNeedClkUpdate(
const int ncu) { need_clkupdate = ncu; };
190 lxBitmap* Bitmaps[BITMAPS_MAX];
191 CPWindow* Windows[BOARDS_MAX];
192 lxMutex* Mutexs[MUTEX_MAX];
193 lxaudio* AudioChannels[MAX_AUDIO];
195 int WinCmd(CControl* ctrl,
const PICSimLabWindowAction action,
const char* Value,
void* ReturnBuff);
198 CItemMenu MBoard[BOARDS_MAX];
199 CItemMenu MMicro[MAX_MIC];
211 std::mutex cpu_mutex;
212 std::condition_variable cpu_cond;