-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathForm1.cs
235 lines (194 loc) · 8.78 KB
/
Form1.cs
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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TimerGenerator
{
public partial class Form1 : Form
{
private enum E_T_FORMAT : ushort {MICROSEC, MINISEC, SEC};
private E_T_FORMAT T_FORMAT;
public Form1()
{
InitializeComponent();
// Le format de base est en us
T_FORMAT = E_T_FORMAT.MICROSEC;
m_input_time_format.SelectedIndex = 0;
}
private void m_rich_code_printer_MouseDoubleClick(object sender, MouseEventArgs e)
{
Clipboard.SetData(DataFormats.Text, m_rich_code_printer.Text);
MessageBox.Show("Copier");
}
private void m_input_timer_duration_Validated(object sender, EventArgs e)
{
try
{
double value = (T_FORMAT == E_T_FORMAT.MICROSEC) ? value = int.Parse(m_input_timer_duration.Text): double.Parse(m_input_timer_duration.Text);
if (value < 0)
{
MessageBox.Show("La durée dois être positive.", "Erreur de durée", MessageBoxButtons.OK, MessageBoxIcon.Error);
m_input_timer_duration.Text = "0";
}
else
m_input_timer_duration.Text = value.ToString();
}
catch
{
MessageBox.Show("La durée n'est pas correct.", "Erreur de durée", MessageBoxButtons.OK, MessageBoxIcon.Error);
m_input_timer_duration.Text = "0";
}
}
private void m_input_max_nop_Validated(object sender, EventArgs e)
{
try
{
int value = int.Parse(m_input_max_nop.Text);
if (value < 0)
m_input_max_nop.Text = "0";
else
m_input_max_nop.Text = value.ToString();
} catch
{
MessageBox.Show("Le nombre de NOP n'est pas correct", "Erreur du nombre de NOP", MessageBoxButtons.OK, MessageBoxIcon.Error);
m_input_max_nop.Text = "0";
}
}
private void m_input_frequence_Validated(object sender, EventArgs e)
{
try
{
double value = double.Parse(m_input_frequence.Text);
if (value < 0)
m_input_frequence.Text = "0";
else
m_input_frequence.Text = value.ToString();
} catch
{
m_input_frequence.Text = "0";
MessageBox.Show("La fréquence n'est pas corrcet.", "Erreur de fréquence", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void m_rad_btn_two_boucle_CheckedChanged(object sender, EventArgs e)
{
m_lbl_name_boucle_2.Enabled = m_rad_btn_two_boucle.Checked;
m_input_name_boucle_2.Enabled = m_rad_btn_two_boucle.Checked;
m_lbl_var_loop_2.Enabled = m_rad_btn_two_boucle.Checked;
m_input_var_loop_2.Enabled = m_rad_btn_two_boucle.Checked;
}
private void m_input_name_boucle_1_Validated(object sender, EventArgs e)
{
m_input_name_boucle_1.Text = m_input_name_boucle_1.Text.Replace(" ", "_");
}
private void m_input_var_loop_1_Validated(object sender, EventArgs e)
{
m_input_var_loop_1.Text = m_input_var_loop_1.Text.Replace(" ", "_");
}
private void m_input_name_boucle_2_Validated(object sender, EventArgs e)
{
m_input_name_boucle_2.Text = m_input_name_boucle_2.Text.Replace(" ", "_");
}
private void m_input_var_loop_2_Validated(object sender, EventArgs e)
{
m_input_var_loop_2.Text = m_input_var_loop_2.Text.Replace(" ", "_");
}
private void m_input_procedure_name_Validated(object sender, EventArgs e)
{
m_input_procedure_name.Text = m_input_procedure_name.Text.Replace(" ", "_");
}
private void m_input_time_format_SelectedIndexChanged(object sender, EventArgs e)
{
switch (m_input_time_format.SelectedIndex)
{
case 0:
if (T_FORMAT == E_T_FORMAT.MINISEC)
m_input_timer_duration.Text = (double.Parse(m_input_timer_duration.Text) * 1000).ToString();
else if (T_FORMAT == E_T_FORMAT.SEC)
m_input_timer_duration.Text = (double.Parse(m_input_timer_duration.Text) * 1000000).ToString();
T_FORMAT = E_T_FORMAT.MICROSEC;
break;
case 1:
if (T_FORMAT == E_T_FORMAT.MICROSEC)
m_input_timer_duration.Text = (double.Parse(m_input_timer_duration.Text) / 1000).ToString();
else if (T_FORMAT == E_T_FORMAT.SEC)
m_input_timer_duration.Text = (double.Parse(m_input_timer_duration.Text) * 1000).ToString();
T_FORMAT = E_T_FORMAT.MINISEC;
break;
case 2:
if (T_FORMAT == E_T_FORMAT.MICROSEC)
m_input_timer_duration.Text = (double.Parse(m_input_timer_duration.Text) / 1000000).ToString();
else if (T_FORMAT == E_T_FORMAT.MINISEC)
m_input_timer_duration.Text = (double.Parse(m_input_timer_duration.Text) / 1000).ToString();
T_FORMAT = E_T_FORMAT.SEC;
break;
break;
}
}
/////////////////////////////////////////////////////////////////////////////////
/// //
/// LANCEMENT DU CALCUL DU TEMPS //
/// //
/////////////////////////////////////////////////////////////////////////////////
private void m_btn_start_generation_Click(object sender, EventArgs e)
{
// Vérification des données fournies
int max_nop = int.Parse(m_input_max_nop.Text);
double duree = double.Parse(m_input_timer_duration.Text);
double frequence = double.Parse(m_input_frequence.Text);
// Transformation de la durée en micro seconde
if (T_FORMAT != E_T_FORMAT.MICROSEC)
{
if (T_FORMAT == E_T_FORMAT.MINISEC) duree *= 1000;
else duree *= 1000000;
}
if (duree == 0 || frequence == 0)
{
MessageBox.Show("Les données fournies ne sont pas correct.",
"Erreur de donnée",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
return;
}
// Check le type de structure
if (m_rad_btn_one_boucle.Checked)
{
string result;
if (Generate.GenerateOneLoop(duree, frequence, max_nop, out result,
m_input_name_boucle_1.Text, m_input_var_loop_1.Text, m_input_procedure_name.Text))
{
m_rich_code_printer.Text = result;
} else
{
// Pas de solutioj trouvée
MessageBox.Show("Pas de solution trouvée",
"Insolvable",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
} else
{
string result;
if (Generate.GenerateTwoLoop(duree, frequence, max_nop, out result,
m_input_name_boucle_1.Text, m_input_var_loop_1.Text,
m_input_procedure_name.Text, m_input_name_boucle_2.Text,
m_input_var_loop_2.Text))
{
m_rich_code_printer.Text = result;
}
else
{
// Pas de solutioj trouvée
MessageBox.Show("Pas de solution trouvée",
"Insolvable",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
}
}