@@ -101,6 +101,8 @@ public String toString() {
101101 private JTextField ramp_end ;
102102 private JTextField ramp_start ;
103103 private JTextField flt_tqCalibrationFactor ;
104+ private JTextField txtX4MinRange ;
105+ private JTextField txtX4MaxRange ;
104106 private JTextField p_factor ;
105107 private JTextField i_factor ;
106108 private JTextField GearRatio ;
@@ -250,6 +252,29 @@ public void loadSettings(File f) throws IOException {
250252 txtAngle5 .setText (tmp );
251253 }
252254 flt_tqCalibrationFactor .setText (in .readLine ());
255+
256+ // Load X4 range values if they exist in the file
257+ try {
258+ tmp = in .readLine ();
259+ if (tmp != null && tmp .trim ().length () > 0 ) {
260+ txtX4MinRange .setText (tmp );
261+ } else {
262+ txtX4MinRange .setText ("43" ); // default value
263+ }
264+ } catch (Exception e ) {
265+ txtX4MinRange .setText ("43" ); // default value
266+ }
267+
268+ try {
269+ tmp = in .readLine ();
270+ if (tmp != null && tmp .trim ().length () > 0 ) {
271+ txtX4MaxRange .setText (tmp );
272+ } else {
273+ txtX4MaxRange .setText ("182" ); // default value
274+ }
275+ } catch (Exception e ) {
276+ txtX4MaxRange .setText ("182" ); // default value
277+ }
253278
254279 int acaFlags = Integer .parseInt (in .readLine ());
255280 cbAssistLevelInfluencesThrottle .setSelected ((acaFlags & 1 ) > 0 );
@@ -828,6 +853,28 @@ public void actionPerformed(ActionEvent arg0) {
828853 flt_tqCalibrationFactor .setBounds (350 , 270 , 50 , 20 );
829854 contentPane .add (flt_tqCalibrationFactor );
830855
856+ JLabel lblX4MinRange = new JLabel ("Min, Torque x4" );
857+ lblX4MinRange .setBounds (415 , 250 , 100 , 14 );
858+ lblX4MinRange .setForeground (Color .GRAY );
859+ contentPane .add (lblX4MinRange );
860+
861+ txtX4MinRange = new JTextField ();
862+ txtX4MinRange .setText ("43" );
863+ txtX4MinRange .setColumns (10 );
864+ txtX4MinRange .setBounds (530 , 250 , 50 , 20 );
865+ contentPane .add (txtX4MinRange );
866+
867+ JLabel lblX4MaxRange = new JLabel ("Max, Torque x4" );
868+ lblX4MaxRange .setBounds (415 , 270 , 100 , 14 );
869+ lblX4MaxRange .setForeground (Color .GRAY );
870+ contentPane .add (lblX4MaxRange );
871+
872+ txtX4MaxRange = new JTextField ();
873+ txtX4MaxRange .setText ("182" );
874+ txtX4MaxRange .setColumns (10 );
875+ txtX4MaxRange .setBounds (530 , 270 , 50 , 20 );
876+ contentPane .add (txtX4MaxRange );
877+
831878 JLabel lblRampEnd = new JLabel ("Ramp end" );
832879 lblRampEnd .setBounds (250 , 290 , 80 , 14 );
833880 lblRampEnd .setForeground (Color .GRAY );
@@ -1297,6 +1344,15 @@ public void actionPerformed(ActionEvent arg0) {
12971344 text_to_save = "#define TQS_CALIB " + flt_tqCalibrationFactor .getText ();
12981345 iWriter .println (flt_tqCalibrationFactor .getText ());
12991346 pWriter .println (text_to_save );
1347+
1348+ // Save X4 range values
1349+ iWriter .println (txtX4MinRange .getText ());
1350+ iWriter .println (txtX4MaxRange .getText ());
1351+
1352+ text_to_save = "#define X4_MIN_RANGE " + txtX4MinRange .getText ();
1353+ pWriter .println (text_to_save );
1354+ text_to_save = "#define X4_MAX_RANGE " + txtX4MaxRange .getText ();
1355+ pWriter .println (text_to_save );
13001356
13011357 int acaFlags = 128 ;
13021358 acaFlags |= (cbAssistLevelInfluencesThrottle .isSelected () ? 1 : 0 );
0 commit comments