Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 61930d6

Browse files
committed
Added backend for PID parameters, sending and storage in file, too the GUI has support for PID input parameters and Plot
1 parent 545d05f commit 61930d6

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

ThreadServer.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ public class ThreadServer extends Thread
1010
{
1111
private int usbPort;
1212
private double ts;
13-
private double step_time;
1413
private double setpoint;
14+
private double Kp;
15+
private double Ki;
16+
private double Kd;
1517
private int server_answer = 2958;
1618
private int valid_client_request = 45862;
1719
private int finish = 0;
@@ -105,6 +107,7 @@ public void terminate()
105107
// option to save the captured data
106108
double[][] logged_signal = this.gui.process_output.toArray();
107109
double[][] control_signal = this.gui.process_input.toArray();
110+
double[][] setpoint_signal = this.gui.process_setpoint.toArray();
108111

109112
// Dialogo para seleccionar donde almacenar el archivo
110113
JFileChooser fileChooser = new JFileChooser();
@@ -114,9 +117,8 @@ public void terminate()
114117
if (userSelection == JFileChooser.APPROVE_OPTION)
115118
{
116119
File fileToSave = fileChooser.getSelectedFile();
117-
System.out.println("Save as file: " + fileToSave.getAbsolutePath());
118120
FileManager fileSaving = new FileManager(fileToSave.getAbsolutePath());
119-
fileSaving.save_array(logged_signal, control_signal);
121+
fileSaving.save_pid_signals(setpoint_signal, logged_signal, control_signal);
120122
System.out.println("Archivo guardado");
121123
}
122124
else
@@ -129,22 +131,26 @@ public void terminate()
129131
public void run()
130132
{
131133
double output_process_val = 0.0;
132-
double input_process_val = 0.0;
134+
double input_process_val = 0.0; //PID computed values
133135
double time_value = 0.0;
134136

135137
// get user parameters
136138
this.usbPort = Integer.parseInt(this.gui.txt_port.getText());
137139
this.ts = Double.parseDouble(this.gui.txt_sample_time.getText());
138140
this.setpoint = Double.parseDouble(this.gui.txt_setpoint.getText());
139-
this.step_time = Double.parseDouble(this.gui.txt_step_time.getText());
141+
this.Kp = Double.parseDouble(this.gui.txt_kp.getText());
142+
this.Ki = Double.parseDouble(this.gui.txt_ki.getText());
143+
this.Kd = Double.parseDouble(this.gui.txt_kd.getText());
140144

141145
// Send parámeters
142146
try
143147
{
144148
out.writeInt(this.usbPort);
145149
out.writeDouble(this.ts);
146150
out.writeDouble(this.setpoint);
147-
out.writeDouble(this.step_time);
151+
out.writeDouble(this.Kp);
152+
out.writeDouble(this.Ki);
153+
out.writeDouble(this.Kd);
148154
}
149155
catch (IOException e)
150156
{
@@ -162,13 +168,14 @@ public void run()
162168
input_process_val = this.in.readDouble();
163169
time_value = this.in.readDouble();
164170
out.writeInt(this.finish);
165-
} catch (IOException e)
171+
} catch (IOException e)
166172
{
167173
System.out.println("No se pudo hacer la lectura de la señal o la transferencia del finish");
168174
e.printStackTrace();
169175
}
170176
this.gui.process_output.add(time_value, output_process_val);
171177
this.gui.process_input.add(time_value, input_process_val);
178+
this.gui.process_setpoint.add(time_value, this.setpoint);
172179
}
173180
try
174181
{

0 commit comments

Comments
 (0)